<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/doc/NEWS-1.9.3, branch v2_1_5</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>* doc/NEWS-*: Update NEWS from their respective branches</title>
<updated>2013-02-22T23:57:58+00:00</updated>
<author>
<name>marcandre</name>
<email>marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-02-22T23:57:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=143a2f7ef1a16e22709af87a227e9a6323aefd84'/>
<id>143a2f7ef1a16e22709af87a227e9a6323aefd84</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* .document:  Add NEWS for `ri ruby:NEWS`</title>
<updated>2012-12-03T19:12:03+00:00</updated>
<author>
<name>drbrain</name>
<email>drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-12-03T19:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f8f5a9eb4e628814803f98bceb9e4437241a7746'/>
<id>f8f5a9eb4e628814803f98bceb9e4437241a7746</id>
<content type='text'>
* NEWS:  Set format as rdoc
* doc/NEWS-1.8.7:  ditto
* doc/NEWS-1.9.1:  ditto
* doc/NEWS-1.9.2:  ditto
* doc/NEWS-1.9.3:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* NEWS:  Set format as rdoc
* doc/NEWS-1.8.7:  ditto
* doc/NEWS-1.9.1:  ditto
* doc/NEWS-1.9.2:  ditto
* doc/NEWS-1.9.3:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>remove unbalanced parenthesis</title>
<updated>2012-02-22T03:50:02+00:00</updated>
<author>
<name>kazu</name>
<email>kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-02-22T03:50:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=86716b9768e1e6636321421bc7d0b2b0f9265bb2'/>
<id>86716b9768e1e6636321421bc7d0b2b0f9265bb2</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>	* ext/date/date_core.c (date_strftime_alloc): followed the change</title>
<updated>2011-08-13T00:12:05+00:00</updated>
<author>
<name>tadf</name>
<email>tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2011-08-13T00:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0acaab201a821bc6591598775ffc6b6c4980ba9d'/>
<id>0acaab201a821bc6591598775ffc6b6c4980ba9d</id>
<content type='text'>
	  of r32885.
	* doc/NEWS-1.9.3: followed the above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	  of r32885.
	* doc/NEWS-1.9.3: followed the above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>updated news for minitest</title>
<updated>2011-07-11T09:56:55+00:00</updated>
<author>
<name>ryan</name>
<email>ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2011-07-11T09:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f078ced91f188f992931b0f0c30c0ef2e0c2f952'/>
<id>f078ced91f188f992931b0f0c30c0ef2e0c2f952</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* doc/NEWS-1.9.3: describe the improvement of BigDecimal#power and</title>
<updated>2011-07-10T15:40:07+00:00</updated>
<author>
<name>mrkn</name>
<email>mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2011-07-10T15:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0b2db1ab4c92be307305821a5392b5ac2c75ba46'/>
<id>0b2db1ab4c92be307305821a5392b5ac2c75ba46</id>
<content type='text'>
  BigDecimal#**.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  BigDecimal#**.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* docs/NEWS-1.9.3: moved from NEWS.</title>
<updated>2011-07-10T14:54:03+00:00</updated>
<author>
<name>yugui</name>
<email>yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2011-07-10T14:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a4f423f18bd60312c7e6e503c60e368c064abbd1'/>
<id>a4f423f18bd60312c7e6e503c60e368c064abbd1</id>
<content type='text'>
* docs/ChangeLog-1.9.3: merged ChangeLog for 1.9.3.

* NEWS: NEWS for 1.9.4 that describes changes since 1.9.3

* ChangeLog: new ChangeLog for 1.9.4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* docs/ChangeLog-1.9.3: merged ChangeLog for 1.9.3.

* NEWS: NEWS for 1.9.4 that describes changes since 1.9.3

* ChangeLog: new ChangeLog for 1.9.4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
ass='add'><a href='/ruby.git/diff/.gitattributes?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>.gitattributes</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>.gitignore</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.indent.pro?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>.indent.pro</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.travis.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>.travis.yml</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/BSDL?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>BSDL</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/CONTRIBUTING.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>CONTRIBUTING.md</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/COPYING?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>COPYING</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/COPYING.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>COPYING.ja</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ChangeLog?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ChangeLog</a></td><td class='right'>20419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 22.0%;'/><td class='none' style='width: 78.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/GPL?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>GPL</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/KNOWNBUGS.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>KNOWNBUGS.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/LEGAL?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>LEGAL</a></td><td class='right'>668</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/LGPL?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>LGPL</a></td><td class='right'>504</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/Makefile.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>Makefile.in</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/NEWS?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>NEWS</a></td><td class='right'>594</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/README.EXT?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README.EXT</a></td><td class='right'>1160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/README.EXT.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README.EXT.ja</a></td><td class='right'>1259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/README.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README.ja</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/README.ja.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README.ja.md</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>README.md</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ToDo?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ToDo</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/acinclude.m4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>acinclude.m4</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/aclocal.m4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>aclocal.m4</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/addr2line.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>addr2line.c</a></td><td class='right'>1234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/addr2line.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>addr2line.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/appveyor.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>appveyor.yml</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/array.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>array.c</a></td><td class='right'>6425</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.2%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 93.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/basictest/runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>basictest/runner.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/basictest/test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>basictest/test.rb</a></td><td class='right'>2367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/bcc32/Makefile.sub?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/Makefile.sub</a></td><td class='right'>499</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/bcc32/README.bcc32?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/README.bcc32</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bcc32/configure.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/configure.bat</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bcc32/mkexports.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/mkexports.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/bcc32/setup.mak?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/setup.mak</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_answer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_answer.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_aobench.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_aobench.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_erb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_erb.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_factorial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_factorial.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_fib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_fib.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_lc_fizzbuzz.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_lc_fizzbuzz.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_mandelbrot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_mandelbrot.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_pentomino.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_pentomino.rb</a></td><td class='right'>259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_raise.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_raise.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_strconcat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_strconcat.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_tak.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_tak.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_tarai.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_tarai.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_app_uri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_app_uri.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k_10.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k_10.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k_11.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k_11.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k__100.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k__100.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k__1k.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k__1k.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k__6k.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k__6k.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k___10k.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k___10k.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sample_100k___50k.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sample_100k___50k.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_shift.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_shift.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_small_and.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_small_and.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_small_diff.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_small_diff.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_small_or.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_small_or.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sort_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sort_block.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_array_sort_float.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_array_sort_float.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_bighash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_bighash.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_dir_empty_p.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_dir_empty_p.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_erb_render.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_erb_render.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_file_chmod.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_file_chmod.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_file_rename.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_file_rename.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_dsym.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_dsym.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_dsym_long.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_dsym_long.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_fix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_fix.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_flo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_flo.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_miss.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_miss.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_str.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_str.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_sym.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_sym.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_aref_sym_long.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_aref_sym_long.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_flatten.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_flatten.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_ident_flo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_ident_flo.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_ident_num.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_ident_num.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_ident_obj.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_ident_obj.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_ident_str.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_ident_str.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_ident_sym.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_ident_sym.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_keys.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_keys.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_long.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_long.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_shift.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_shift.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_shift_u16.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_shift_u16.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_shift_u24.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_shift_u24.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_shift_u32.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_shift_u32.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_small2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_small2.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_small4.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_small4.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_small8.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_small8.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_to_proc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_to_proc.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_hash_values.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_hash_values.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_int_quo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_int_quo.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_copy_stream_write.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_copy_stream_write.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_copy_stream_write_socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_copy_stream_write_socket.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_file_create.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_file_create.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_file_read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_file_read.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_file_write.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_file_write.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_nonblock_noex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_nonblock_noex.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_nonblock_noex2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_nonblock_noex2.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_pipe_rw.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_pipe_rw.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_select.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_select.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_select2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_select2.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_io_select3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_io_select3.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_loop_for.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_loop_for.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_loop_generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_loop_generator.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_loop_times.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_loop_times.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_loop_whileloop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_loop_whileloop.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_loop_whileloop2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_loop_whileloop2.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_marshal_dump_flo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_marshal_dump_flo.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_marshal_dump_load_geniv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_marshal_dump_load_geniv.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_marshal_dump_load_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_marshal_dump_load_time.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_require.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_require_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_require_thread.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_securerandom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_securerandom.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_ackermann.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_ackermann.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_array.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_binary_trees.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_binary_trees.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_concatenate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_concatenate.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_count_words.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_count_words.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_exception.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_fannkuch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_fannkuch.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_fasta.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_fasta.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_k_nucleotide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_k_nucleotide.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_lists.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_lists.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_mandelbrot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_mandelbrot.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_matrix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_matrix.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_meteor_contest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_meteor_contest.rb</a></td><td class='right'>563</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_nbody.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_nbody.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_nested_loop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_nested_loop.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_nsieve.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_nsieve.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_nsieve_bits.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_nsieve_bits.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_object.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_partial_sums.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_partial_sums.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_pidigits.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_pidigits.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_random.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_random.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_reverse_complement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_reverse_complement.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_sieve.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_sieve.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_spectralnorm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_so_spectralnorm.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_string_index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_string_index.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_string_scan_re.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_string_scan_re.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_string_scan_str.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_string_scan_str.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_time_subsec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_time_subsec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_attr_ivar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_attr_ivar.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_attr_ivar_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_attr_ivar_set.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_block.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_blockparam.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_blockparam.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_blockparam_call.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_blockparam_call.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_blockparam_pass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_blockparam_pass.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_blockparam_yield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_blockparam_yield.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_const.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_const.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_ensure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_ensure.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_float_simple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_float_simple.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_short_lived.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_short_lived.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_short_with_complex_long.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_short_with_complex_long.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_short_with_long.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_short_with_long.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_short_with_symbol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_short_with_symbol.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_wb_ary.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_wb_ary.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_wb_ary_promoted.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_wb_ary_promoted.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_wb_obj.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_wb_obj.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_gc_wb_obj_promoted.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_gc_wb_obj_promoted.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_ivar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_ivar.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_ivar_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_ivar_set.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_length.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_lvar_init.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_lvar_init.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_lvar_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_lvar_set.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_neq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_neq.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_not.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_not.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_rescue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_rescue.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_simplereturn.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_simplereturn.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_swap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_swap.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_yield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm1_yield.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_array.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_bigarray.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_bigarray.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_bighash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_bighash.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_case.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_case_lit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_case_lit.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_defined_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_defined_method.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_dstr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_dstr.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_eval.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_fiber_switch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_fiber_switch.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_method.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_method_missing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_method_missing.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_method_with_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_method_with_block.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_module_ann_const_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_module_ann_const_set.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_module_const_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_module_const_set.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_mutex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_mutex.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_newlambda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_newlambda.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_poly_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_poly_method.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_poly_method_ov.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_poly_method_ov.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_poly_singleton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_poly_singleton.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_proc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_proc.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_raise1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_raise1.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_raise2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_raise2.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_regexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_regexp.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_send.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_send.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_string_literal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_string_literal.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_aref_hi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_aref_hi.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_aref_lo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_aref_lo.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_aset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_aset.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_href_hi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_href_hi.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_href_lo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_href_lo.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_big_hset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_big_hset.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_small_aref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_small_aref.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_small_aset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_small_aset.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_small_href.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_small_href.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_struct_small_hset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_struct_small_hset.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_super.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_super.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_unif1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_unif1.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm2_zsuper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm2_zsuper.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_backtrace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_backtrace.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_clearmethodcache.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_clearmethodcache.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_gc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_gc.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_gc_old_full.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_gc_old_full.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_gc_old_immediate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_gc_old_immediate.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_gc_old_lazy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm3_gc_old_lazy.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_symbol_block_pass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_symbol_block_pass.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_alive_check1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_alive_check1.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_close.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_close.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_condvar1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_condvar1.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_condvar2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_condvar2.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_create_join.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_create_join.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_mutex1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_mutex1.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_mutex2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_mutex2.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_mutex3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_mutex3.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_pass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_pass.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_pass_flood.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_pass_flood.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_pipe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_pipe.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_queue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_queue.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_sized_queue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_sized_queue.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_sized_queue2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_sized_queue2.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_sized_queue3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_sized_queue3.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm_thread_sized_queue4.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/bm_vm_thread_sized_queue4.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/driver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/driver.rb</a></td><td class='right'>441</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/aobench.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/aobench.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/binary_trees.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/binary_trees.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/gcbench.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/gcbench.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/hash1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/hash1.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/hash2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/hash2.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/null.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/null.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/pentomino.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/pentomino.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/rdoc.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/redblack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/redblack.rb</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/gc/ring.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/gc/ring.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/make_fasta_output.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/make_fasta_output.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/memory_wrapper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/memory_wrapper.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/ack.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/ack.pl</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/ack.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/ack.py</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/ack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/ack.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/ack.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/ack.scm</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/eval.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fact.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fact.pl</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fact.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fact.py</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fact.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fact.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fact.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fact.scm</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fib.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fib.pl</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fib.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fib.py</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fib.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/fib.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/fib.scm</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/loop.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/loop.pl</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/loop.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/loop.py</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/loop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/loop.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/loop.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/loop.scm</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/loop2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/loop2.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/tak.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/tak.pl</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/tak.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/tak.py</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/tak.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/tak.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/other-lang/tak.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/other-lang/tak.scm</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/prepare_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/prepare_require.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/prepare_require_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/prepare_require_thread.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/prepare_so_count_words.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/prepare_so_count_words.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/prepare_so_k_nucleotide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/prepare_so_k_nucleotide.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/prepare_so_reverse_complement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/prepare_so_reverse_complement.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/report.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/report.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/run.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/run.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/runc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/runc.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/wc.input.base?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>benchmark/wc.input.base</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bignum.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bignum.c</a></td><td class='right'>7861</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.9%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 91.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/bin/erb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/erb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bin/gem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/gem</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/bin/irb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/irb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/bin/rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/rdoc</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/bin/ri?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/ri</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/testrb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bin/testrb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/pending.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/pending.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bootstraptest/runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/runner.rb</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_attr.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_autoload.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_block.rb</a></td><td class='right'>613</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_class.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_env.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_env.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_eval.rb</a></td><td class='right'>324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_exception.rb</a></td><td class='right'>432</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_finalizer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_finalizer.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_flip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_flip.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_flow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_flow.rb</a></td><td class='right'>601</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_fork.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_fork.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_gc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_gc.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_insns.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_insns.rb</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_io.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_io.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_jump.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_jump.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_literal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_literal.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_literal_suffix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_literal_suffix.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_load.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_marshal.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_massign.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_massign.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_method.rb</a></td><td class='right'>1192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_objectspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_objectspace.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_proc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_proc.rb</a></td><td class='right'>483</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_string.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_struct.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_syntax.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_syntax.rb</a></td><td class='right'>904</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>bootstraptest/test_thread.rb</a></td><td class='right'>484</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/build_assert/build_assert.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/build_assert/build_assert.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/check_type/check_type.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/check_type/check_type.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/container_of/container_of.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/container_of/container_of.h</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/licenses/BSD-MIT?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/licenses/BSD-MIT</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/licenses/CC0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/licenses/CC0</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/list/list.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/list/list.h</a></td><td class='right'>773</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ccan/str/str.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ccan/str/str.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/class.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>class.c</a></td><td class='right'>2047</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/common.mk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>common.mk</a></td><td class='right'>2931</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.9%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/compar.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>compar.c</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/compile.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>compile.c</a></td><td class='right'>9599</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 10.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 89.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/complex.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>complex.c</a></td><td class='right'>2352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/config.guess?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>config.guess</a></td><td class='right'>1459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/config.sub?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>config.sub</a></td><td class='right'>1537</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/configure.ac?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>configure.ac</a></td><td class='right'>4591</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/configure.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>configure.in</a></td><td class='right'>1692</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/constant.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>constant.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/cont.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>cont.c</a></td><td class='right'>2009</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coverage/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>coverage/README</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/cygwin/GNUmakefile.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>cygwin/GNUmakefile.in</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/debug.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>debug.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/debug_counter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>debug_counter.c</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/debug_counter.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>debug_counter.h</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/defines.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defines.h</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/gmake.mk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/gmake.mk</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/id.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/id.def</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/keywords?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/keywords</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/known_errors.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/known_errors.def</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/lex.c.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/lex.c.src</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/opt_insn_unif.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/opt_insn_unif.def</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/opt_operand.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/opt_operand.def</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/defs/separated_version.mk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>defs/separated_version.mk</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dir.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dir.c</a></td><td class='right'>2687</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/distruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>distruby.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/djgpp/GNUmakefile.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/GNUmakefile.in</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/djgpp/README.djgpp?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/README.djgpp</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/djgpp/config.hin?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/config.hin</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/djgpp/config.sed?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/config.sed</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/djgpp/configure.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/configure.bat</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/djgpp/mkver.sed?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/mkver.sed</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dln.c</a></td><td class='right'>900</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dln.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/dln_find.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dln_find.c</a></td><td class='right'>290</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dmydln.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dmydln.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/dmyenc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dmyenc.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dmyext.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>dmyext.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/.document</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-0.06_to_0.52?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-0.06_to_0.52</a></td><td class='right'>1147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-0.50_to_0.60?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-0.50_to_0.60</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-0.60_to_1.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-0.60_to_1.1</a></td><td class='right'>3955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-1.8.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-1.8.0</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-1.9.3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-1.9.3</a></td><td class='right'>92772</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 100.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 0.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2.0.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2.0.0</a></td><td class='right'>24015</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 25.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 74.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2.1.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2.1.0</a></td><td class='right'>18060</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 19.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 80.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2.2.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2.2.0</a></td><td class='right'>12157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 13.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 86.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2.3.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2.3.0</a></td><td class='right'>12187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 13.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 86.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2.4.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2.4.0</a></td><td class='right'>9492</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 10.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 89.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-2016?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-2016</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ChangeLog-YARV?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-YARV</a></td><td class='right'>6917</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-1.8.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-1.8.0</a></td><td class='right'>837</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-1.8.7?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-1.8.7</a></td><td class='right'>669</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-1.9.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-1.9.1</a></td><td class='right'>429</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-1.9.2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-1.9.2</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-1.9.3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-1.9.3</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-2.0.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-2.0.0</a></td><td class='right'>531</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-2.1.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-2.1.0</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-2.2.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-2.2.0</a></td><td class='right'>361</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-2.3.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-2.3.0</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS-2.4.0?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/NEWS-2.4.0</a></td><td class='right'>397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/contributing.rdoc</a></td><td class='right'>460</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributors.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/contributors.rdoc</a></td><td class='right'>793</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/dtrace_probes.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/dtrace_probes.rdoc</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/etc.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/etc.rd.ja</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/extension.ja.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/extension.ja.rdoc</a></td><td class='right'>1833</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/extension.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/extension.rdoc</a></td><td class='right'>1959</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/forwardable.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/forwardable.rd</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/forwardable.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/forwardable.rd.ja</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/globals.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/globals.rdoc</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/images/boottime-classes.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/images/boottime-classes.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 28677 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/irb/irb-tools.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/irb/irb-tools.rd.ja</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/irb/irb.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/irb/irb.rd</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/irb/irb.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/irb/irb.rd.ja</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/keywords.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/keywords.rdoc</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/maintainers.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/maintainers.rdoc</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/marshal.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/marshal.rdoc</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/pty/README.expect.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/pty/README.expect.ja</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/pty/README.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/pty/README.ja</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/regexp.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/regexp.rdoc</a></td><td class='right'>704</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/security.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/security.rdoc</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/shell.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/shell.rd</a></td><td class='right'>348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/shell.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/shell.rd.ja</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/standard_library.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/standard_library.rdoc</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax.rdoc</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/assignment.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/assignment.rdoc</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/calling_methods.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/calling_methods.rdoc</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/control_expressions.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/control_expressions.rdoc</a></td><td class='right'>499</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/exceptions.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/exceptions.rdoc</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/literals.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/literals.rdoc</a></td><td class='right'>368</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/methods.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/methods.rdoc</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/miscellaneous.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/miscellaneous.rdoc</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/modules_and_classes.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/modules_and_classes.rdoc</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/precedence.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/precedence.rdoc</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/refinements.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>doc/syntax/refinements.rdoc</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/Makefile.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/Makefile.in</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/ascii.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/ascii.c</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/big5.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/big5.c</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/cp949.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/cp949.c</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/depend</a></td><td class='right'>754</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/ebcdic.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/ebcdic.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/emacs_mule.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/emacs_mule.c</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/encdb.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/encdb.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/encinit.c.erb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/encinit.c.erb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/euc_jp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/euc_jp.c</a></td><td class='right'>616</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/euc_kr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/euc_kr.c</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/euc_tw.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/euc_tw.c</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/gb18030.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/gb18030.c</a></td><td class='right'>603</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/gb2312.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/gb2312.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/gbk.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/gbk.c</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_2022_jp.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_2022_jp.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859.h</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_1.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_1.c</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_10.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_10.c</a></td><td class='right'>294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_11.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_11.c</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_13.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_13.c</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_14.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_14.c</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_15.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_15.c</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_16.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_16.c</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_2.c</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_3.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_3.c</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_4.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_4.c</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_5.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_5.c</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_6.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_6.c</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_7.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_7.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_8.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_8.c</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/iso_8859_9.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/iso_8859_9.c</a></td><td class='right'>290</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/jis/props.h.blt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/jis/props.h.blt</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/jis/props.kwd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/jis/props.kwd</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/jis/props.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/jis/props.src</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/koi8_r.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/koi8_r.c</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/koi8_u.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/koi8_u.c</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/enc/make_encmake.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/make_encmake.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/mktable.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/mktable.c</a></td><td class='right'>1184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/shift_jis.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/shift_jis.c</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/shift_jis.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/shift_jis.h</a></td><td class='right'>546</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/CP932UDA%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/CP932UDA%UCS.src</a></td><td class='right'>1912</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/CP932VDC@IBM%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/CP932VDC@IBM%UCS.src</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/CP932VDC@NEC_IBM%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/CP932VDC@NEC_IBM%UCS.src</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/UCS%25CP932UDA.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/UCS%CP932UDA.src</a></td><td class='right'>1912</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/UCS%25CP932VDC@IBM.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/UCS%CP932VDC@IBM.src</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/CP/UCS%25CP932VDC@NEC_IBM.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/CP/UCS%CP932VDC@NEC_IBM.src</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src</a></td><td class='right'>496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI-UNDOC.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-DOCOMO.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-KDDI-UNDOC.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-KDDI.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-SOFTBANK.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src</a></td><td class='right'>496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/GB/GB12345%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/GB/GB12345%UCS.src</a></td><td class='right'>7567</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/GB/GB2312%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/GB/GB2312%UCS.src</a></td><td class='right'>7470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/GB/UCS%25GB12345.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/GB/UCS%GB12345.src</a></td><td class='right'>7569</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/GB/UCS%25GB2312.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/GB/UCS%GB2312.src</a></td><td class='right'>7466</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0201-KANA%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0201-KANA%UCS.src</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0208@1990%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0208@1990%UCS.src</a></td><td class='right'>6964</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0208@MS%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0208@MS%UCS.src</a></td><td class='right'>6893</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0208UDC%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0208UDC%UCS.src</a></td><td class='right'>954</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0208VDC@NEC%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0208VDC@NEC%UCS.src</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0212%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0212%UCS.src</a></td><td class='right'>6159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0212@MS%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0212@MS%UCS.src</a></td><td class='right'>6081</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0212UDC%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0212UDC%UCS.src</a></td><td class='right'>954</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0212VDC@IBM%25UCS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0212VDC@IBM%UCS.src</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0213-1%25UCS@BMP.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0213-1%UCS@BMP.src</a></td><td class='right'>1926</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0213-1%25UCS@SIP.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0213-1%UCS@SIP.src</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0213-2%25UCS@BMP.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0213-2%UCS@BMP.src</a></td><td class='right'>2193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/JISX0213-2%25UCS@SIP.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/JISX0213-2%UCS@SIP.src</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0201-KANA.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0201-KANA.src</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0208@1990.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0208@1990.src</a></td><td class='right'>6965</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0208@MS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0208@MS.src</a></td><td class='right'>6894</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0208UDC.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0208UDC.src</a></td><td class='right'>955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0208VDC@NEC.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0208VDC@NEC.src</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0212.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0212.src</a></td><td class='right'>6163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0212@MS.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0212@MS.src</a></td><td class='right'>6082</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 93.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0212UDC.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0212UDC.src</a></td><td class='right'>955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0212VDC@IBM.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS%JISX0212VDC@IBM.src</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS@BMP%25JISX0213-1.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS@BMP%JISX0213-1.src</a></td><td class='right'>1922</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS@BMP%25JISX0213-2.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS@BMP%JISX0213-2.src</a></td><td class='right'>2189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS@SIP%25JISX0213-1.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS@SIP%JISX0213-1.src</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/JIS/UCS@SIP%25JISX0213-2.src?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/JIS/UCS@SIP%JISX0213-2.src</a></td><td class='right'>307</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/big5-hkscs-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/big5-hkscs-tbl.rb</a></td><td class='right'>37302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 40.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 59.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/big5-uao-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/big5-uao-tbl.rb</a></td><td class='right'>19784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 21.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 78.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/big5.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/big5.trans</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/chinese.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/chinese.trans</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/cp850-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/cp850-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/cp852-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/cp852-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/cp855-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/cp855-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/cp949-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/cp949-tbl.rb</a></td><td class='right'>8831</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 90.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ebcdic.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ebcdic.trans</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji-exchange-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji-exchange-tbl.rb</a></td><td class='right'>8407</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 90.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji.trans</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji_iso2022_kddi.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji_iso2022_kddi.trans</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji_sjis_docomo.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji_sjis_docomo.trans</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji_sjis_kddi.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji_sjis_kddi.trans</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/emoji_sjis_softbank.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/emoji_sjis_softbank.trans</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/escape.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/escape.trans</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/euckr-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/euckr-tbl.rb</a></td><td class='right'>8230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/gb18030-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/gb18030-tbl.rb</a></td><td class='right'>63362</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 68.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 31.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/gb18030.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/gb18030.trans</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/gbk-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/gbk-tbl.rb</a></td><td class='right'>21794</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 23.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 76.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/gbk.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/gbk.trans</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm437-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm437-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm737-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm737-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm775-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm775-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm852-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm852-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm855-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm855-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm857-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm857-tbl.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm860-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm860-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm861-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm861-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm862-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm862-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm863-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm863-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm865-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm865-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm866-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm866-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm869-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ibm869-tbl.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-1-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-1-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-10-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-10-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-11-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-11-tbl.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-13-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-13-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-14-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-14-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-15-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-15-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-16-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-16-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-2-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-2-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-3-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-3-tbl.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-4-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-4-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-5-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-5-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-6-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-6-tbl.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-7-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-7-tbl.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-8-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-8-tbl.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso-8859-9-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso-8859-9-tbl.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/iso2022.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/iso2022.trans</a></td><td class='right'>567</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/japanese.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/japanese.trans</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/japanese_euc.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/japanese_euc.trans</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/japanese_sjis.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/japanese_sjis.trans</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/koi8-r-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/koi8-r-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/koi8-u-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/koi8-u-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/korean.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/korean.trans</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/maccroatian-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/maccroatian-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/maccyrillic-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/maccyrillic-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/macgreek-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/macgreek-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/maciceland-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/maciceland-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/macroman-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/macroman-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/macromania-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/macromania-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/macturkish-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/macturkish-tbl.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/macukraine-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/macukraine-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/newline.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/newline.trans</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/single_byte.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/single_byte.trans</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/tis-620-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/tis-620-tbl.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/transdb.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/transdb.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ucm/glibc-BIG5-2.3.3.ucm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ucm/glibc-BIG5-2.3.3.ucm</a></td><td class='right'>14087</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 15.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 84.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm</a></td><td class='right'>18332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 19.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 80.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ucm/windows-950-2000.ucm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ucm/windows-950-2000.ucm</a></td><td class='right'>20379</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 22.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 78.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ucm/windows-950_hkscs-2001.ucm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/ucm/windows-950_hkscs-2001.ucm</a></td><td class='right'>23446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 25.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 74.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/utf8_mac-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/utf8_mac-tbl.rb</a></td><td class='right'>23154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 25.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 75.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/utf8_mac.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/utf8_mac.trans</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/utf_16_32.trans?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/utf_16_32.trans</a></td><td class='right'>556</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1250-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1250-tbl.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1251-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1251-tbl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1252-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1252-tbl.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1253-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1253-tbl.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1254-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1254-tbl.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1255-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1255-tbl.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1256-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1256-tbl.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-1257-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-1257-tbl.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/windows-874-tbl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/trans/windows-874-tbl.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/unicode.c</a></td><td class='right'>803</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/10.0.0/casefold.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/unicode/10.0.0/casefold.h</a></td><td class='right'>7044</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/10.0.0/name2ctype.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/unicode/10.0.0/name2ctype.h</a></td><td class='right'>38381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 41.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 58.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/enc/unicode/case-folding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/unicode/case-folding.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/us_ascii.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/us_ascii.c</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_16_32.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_16_32.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_16be.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_16be.c</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_16le.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_16le.c</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_32be.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_32be.c</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_32le.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_32le.c</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_7.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_7.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/utf_8.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/utf_8.c</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1250.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1250.c</a></td><td class='right'>271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1251.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1251.c</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1252.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1252.c</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1253.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1253.c</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1254.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1254.c</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_1257.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_1257.c</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/windows_31j.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/windows_31j.c</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/x_emoji.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enc/x_emoji.h</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/encindex.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>encindex.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/encoding.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>encoding.c</a></td><td class='right'>1978</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enum.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enum.c</a></td><td class='right'>4092</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enumerator.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>enumerator.c</a></td><td class='right'>2444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/env.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>env.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/error.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>error.c</a></td><td class='right'>3035</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/eval.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>eval.c</a></td><td class='right'>13734</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 13.5%;'/><td class='none' style='width: 85.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/eval_error.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>eval_error.c</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/eval_intern.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>eval_intern.h</a></td><td class='right'>334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/eval_jump.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>eval_jump.c</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/resize/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/array/resize/depend</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/resize/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/array/resize/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/resize/resize.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/array/resize/resize.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/auto_ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/auto_ext.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/big2str.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/big2str.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/bigzero.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/bigzero.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/depend</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/div.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/div.c</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/intpack.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/intpack.c</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/mul.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/mul.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bignum/str2big.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bignum/str2big.c</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-3571/bug.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug-3571/bug.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-3571/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug-3571/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-5832/bug.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug-5832/bug.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-5832/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug-5832/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug_reporter/bug_reporter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug_reporter/bug_reporter.c</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug_reporter/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/bug_reporter/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/class/class2name.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/class/class2name.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/class/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/class/depend</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/class/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/class/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/class/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/class/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/debug/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/debug/depend</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/debug/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/debug/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/debug/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/debug/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/debug/inspector.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/debug/inspector.c</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/debug/profile_frames.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/debug/profile_frames.c</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/dln/empty/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/dln/empty/depend</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/dln/empty/empty.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/dln/empty/empty.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/dln/empty/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/dln/empty/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/dataerror.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/dataerror.c</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/depend</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/enc_raise.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/enc_raise.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/ensured.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/ensured.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/exception/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/exception/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/fatal/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/fatal/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/fatal/rb_fatal.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/fatal/rb_fatal.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/file/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/file/depend</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/file/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/file/extconf.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/file/fs.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/file/fs.c</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/file/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/file/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/file/stat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/file/stat.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/float/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/float/depend</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/float/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/float/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/float/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/float/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/float/nextafter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/float/nextafter.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/funcall/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/funcall/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/funcall/funcall.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/funcall/funcall.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/gvl/call_without_gvl/call_without_gvl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/gvl/call_without_gvl/call_without_gvl.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/gvl/call_without_gvl/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/gvl/call_without_gvl/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/gvl/call_without_gvl/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/gvl/call_without_gvl/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/hash/delete.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/hash/delete.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/hash/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/hash/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/hash/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/hash/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/integer/core_ext.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/integer/core_ext.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/integer/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/integer/depend</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/integer/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/integer/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/integer/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/integer/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/integer/my_integer.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/integer/my_integer.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iseq_load/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iseq_load/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iseq_load/iseq_load.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iseq_load/iseq_load.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iter/break.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iter/break.c</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iter/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iter/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iter/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iter/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iter/yield.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/iter/yield.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/dot.dot/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/load/dot.dot/depend</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/dot.dot/dot.dot.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/load/dot.dot/dot.dot.c</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/dot.dot/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/load/dot.dot/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/protect/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/load/protect/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/protect/protect.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/load/protect/protect.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/compat/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/compat/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/compat/usrcompat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/compat/usrcompat.c</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/internal_ivar/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/internal_ivar/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/internal_ivar/internal_ivar.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/internal_ivar/internal_ivar.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/usr/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/usr/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/usr/usrmarshal.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/marshal/usr/usrmarshal.c</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_status/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/memory_status/extconf.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_status/memory_status.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/memory_status/memory_status.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/method/arity.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/method/arity.c</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/method/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/method/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/method/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/method/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/notimplement/bug.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/notimplement/bug.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/notimplement/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/notimplement/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/num2int/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/num2int/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/num2int/num2int.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/num2int/num2int.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/path_to_class/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/path_to_class/extconf.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/path_to_class/path_to_class.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/path_to_class/path_to_class.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/popen_deadlock/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/popen_deadlock/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/popen_deadlock/infinite_loop_dlsym.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/popen_deadlock/infinite_loop_dlsym.c</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/postponed_job/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/postponed_job/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/postponed_job/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/postponed_job/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/postponed_job/postponed_job.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/postponed_job/postponed_job.c</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/printf/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/printf/depend</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/printf/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/printf/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/printf/printf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/printf/printf.c</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/proc/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/proc/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/proc/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/proc/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/proc/receiver.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/proc/receiver.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/proc/super.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/proc/super.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rational/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/rational/depend</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rational/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/rational/extconf.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rational/rat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/rational/rat.c</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/recursion/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/recursion/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/recursion/recursion.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/recursion/recursion.c</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/regexp/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/regexp/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/regexp/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/regexp/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/regexp/parse_depth_limit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/regexp/parse_depth_limit.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/-test-/scan_args/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/scan_args/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/scan_args/scan_args.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/scan_args/scan_args.c</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/foreach/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/foreach/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/foreach/foreach.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/foreach/foreach.c</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/numhash/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/numhash/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/numhash/numhash.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/numhash/numhash.c</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/update/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/update/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/update/update.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/st/update/update.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/capacity.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/capacity.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/coderange.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/coderange.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/cstr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/cstr.c</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/depend</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/ellipsize.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/ellipsize.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/enc_associate.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/enc_associate.c</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/enc_str_buf_cat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/enc_str_buf_cat.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/fstring.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/fstring.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/modify.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/modify.c</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/new.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/new.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/nofree.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/nofree.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/normalize.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/normalize.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/qsort.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/qsort.c</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/rb_str_dup.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/rb_str_dup.c</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/set_len.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/string/set_len.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/depend</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/duplicate.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/duplicate.c</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/len.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/len.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/struct/member.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/struct/member.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/symbol/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/symbol/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/symbol/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/symbol/init.c</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/symbol/type.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/symbol/type.c</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/thread_fd_close/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/thread_fd_close/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/thread_fd_close.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/thread_fd_close/thread_fd_close.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/time/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/time/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/time/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/time/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/time/new.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/time/new.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/tracepoint/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/tracepoint/depend</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/tracepoint/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/tracepoint/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/tracepoint/gc_hook.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/tracepoint/gc_hook.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/tracepoint/tracepoint.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/tracepoint/tracepoint.c</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/typeddata/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/typeddata/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/typeddata/typeddata.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/typeddata/typeddata.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/vm/at_exit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/vm/at_exit.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/vm/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/vm/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/vm/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/vm/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/wait_for_single_fd/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/wait_for_single_fd/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/wait_for_single_fd.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/wait_for_single_fd/wait_for_single_fd.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/console/attribute.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/console/attribute.c</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/console/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/console/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/console/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/console/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/console/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/console/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/dln/depend</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/dlntest.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/dln/dlntest.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/dln/extconf.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/libdlntest.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/dln/libdlntest.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/libdlntest.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/dln/libdlntest.def</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/fd_setsize/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/fd_setsize/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/fd_setsize/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/fd_setsize/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/win32/fd_setsize/fd_setsize.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/-test-/win32/fd_setsize/fd_setsize.c</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/.document</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup.atheos?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup.atheos</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Setup.dj?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup.dj</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Setup.emx?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup.emx</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup.nt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup.nt</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Setup.x68?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Setup.x68</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/Win32API.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/Win32API.c</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/extconf.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/getch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/getch.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/lib/win32/registry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/lib/win32/registry.rb</a></td><td class='right'>831</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/lib/win32/resolv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/lib/win32/resolv.rb</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/Win32API/point.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/Win32API/point.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/README</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal.c</a></td><td class='right'>7149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.8%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal.def</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal.gemspec</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal.h</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal_en.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal_en.html</a></td><td class='right'>796</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal_ja.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/bigdecimal_ja.html</a></td><td class='right'>799</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/depend</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/extconf.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/jacobian.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/lib/bigdecimal/jacobian.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/ludcmp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/lib/bigdecimal/ludcmp.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/math.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/lib/bigdecimal/math.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/newton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/lib/bigdecimal/newton.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/lib/bigdecimal/util.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/sample/linear.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/sample/linear.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/sample/nlsolve.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/sample/nlsolve.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/sample/pi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/bigdecimal/sample/pi.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/cgi/escape/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/cgi/escape/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/cgi/escape/escape.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/cgi/escape/escape.c</a></td><td class='right'>422</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/cgi/escape/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/cgi/escape/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/continuation/continuation.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/continuation/continuation.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/continuation/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/continuation/depend</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/continuation/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/continuation/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/coverage/coverage.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/coverage/coverage.c</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/coverage/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/coverage/depend</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/coverage/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/coverage/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/curses.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/curses.c</a></td><td class='right'>2101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/extconf.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/hello.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/hello.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/mouse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/mouse.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/rain.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/rain.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/view.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/view.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/curses/view2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/curses/view2.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date_core.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date_core.c</a></td><td class='right'>9671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 10.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 89.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date_parse.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date_parse.c</a></td><td class='right'>2998</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date_strftime.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date_strftime.c</a></td><td class='right'>638</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date_strptime.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date_strptime.c</a></td><td class='right'>703</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/date_tmx.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/date_tmx.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/depend</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/extconf.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/lib/date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/lib/date.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/prereq.mk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/prereq.mk</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/zonetab.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/zonetab.h</a></td><td class='right'>895</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/zonetab.list?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/date/zonetab.list</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dbm/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dbm/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/dbm/dbm.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dbm/dbm.c</a></td><td class='right'>769</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/dbm/dbm.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dbm/dbm.gemspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/dbm/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dbm/depend</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/dbm/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dbm/extconf.rb</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/bubblebabble/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/bubblebabble/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/bubblebabble.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/bubblebabble/bubblebabble.c</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/bubblebabble/depend</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/bubblebabble/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/defs.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/defs.h</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/digest.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/digest.c</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/digest.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/digest.h</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/digest_conf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/digest_conf.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/lib/digest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/lib/digest.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/lib/md5.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/lib/md5.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/lib/sha1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/lib/sha1.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/md5/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/depend</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/extconf.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/md5/md5cc.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5cc.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5init.c</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/md5/md5ossl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5ossl.c</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5ossl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/md5/md5ossl.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/rmd160/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/depend</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/extconf.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/rmd160.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/rmd160.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/rmd160init.c</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160ossl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/rmd160ossl.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160ossl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/rmd160/rmd160ossl.h</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/sha1/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/depend</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/extconf.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/sha1.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/sha1.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/sha1/sha1cc.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1cc.h</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/sha1init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1init.c</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/sha1/sha1ossl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1ossl.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/sha1ossl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha1/sha1ossl.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/sha2/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/depend</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/extconf.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/lib/sha2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/lib/sha2.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/sha2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/sha2.c</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/sha2.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/sha2.h</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/sha2/sha2cc.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/sha2cc.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/sha2init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/sha2init.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/sha2/sha2ossl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/digest/sha2/sha2ossl.h</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/.cvsignore</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/depend</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/dl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/dl.c</a></td><td class='right'>728</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/dl.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/dl.def</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/dl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/dl.h</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/doc/dl.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/doc/dl.txt</a></td><td class='right'>266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/extconf.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/h2rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/h2rb</a></td><td class='right'>500</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/handle.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/handle.c</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/install.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/install.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/lib/dl/import.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/lib/dl/import.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/lib/dl/struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/lib/dl/struct.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/lib/dl/types.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/lib/dl/types.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/lib/dl/win32.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/lib/dl/win32.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/mkcall.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/mkcall.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/mkcallback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/mkcallback.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/mkcbtable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/mkcbtable.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/ptr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/ptr.c</a></td><td class='right'>1058</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/c++sample.C?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/c++sample.C</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/c++sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/c++sample.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/drives.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/drives.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/getch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/getch.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/libc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/libc.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/msgbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/msgbox.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/msgbox2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/msgbox2.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sample/stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sample/stream.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/sym.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/sym.c</a></td><td class='right'>992</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/test/libtest.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/test/libtest.def</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/test/test.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/test/test.c</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/test/test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/test/test.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dl/type.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/dl/type.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/enumerator/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/enumerator/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/enumerator/enumerator.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/enumerator/enumerator.c</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/enumerator/enumerator.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/enumerator/enumerator.txt</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/enumerator/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/enumerator/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/etc/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/depend</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/etc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/etc.c</a></td><td class='right'>1057</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/etc/etc.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/etc.gemspec</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/etc/etc.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/etc.txt</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/etc/etc.txt.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/etc.txt.ja</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/extconf.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/etc/mkconstants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/etc/mkconstants.rb</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/ext/extmk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/extmk.rb</a></td><td class='right'>597</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/fcntl/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fcntl/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fcntl/depend</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fcntl/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/fcntl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fcntl/fcntl.c</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fcntl/fcntl.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fcntl/fcntl.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiber/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiber/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiber/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiber/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiber/fiber.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiber/fiber.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/closure.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/closure.c</a></td><td class='right'>345</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/closure.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/closure.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/conversions.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/conversions.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/conversions.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/conversions.h</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/depend</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/extconf.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/extlibs?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/extlibs</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/fiddle.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/fiddle.c</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/fiddle.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/fiddle.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/fiddle.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/fiddle.h</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/function.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/function.c</a></td><td class='right'>315</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/function.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/function.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/handle.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/handle.c</a></td><td class='right'>479</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/closure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/closure.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/cparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/cparser.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/function.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/function.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/import.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/import.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/pack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/pack.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/struct.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/types.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/types.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/lib/fiddle/value.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/pointer.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/pointer.c</a></td><td class='right'>721</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/win32/fficonfig.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/win32/fficonfig.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/win32/libffi-3.2.1-mswin.patch?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/win32/libffi-3.2.1-mswin.patch</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/win32/libffi-config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/win32/libffi-config.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/win32/libffi.mk.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/fiddle/win32/libffi.mk.tmpl</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/gdbm/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/gdbm/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/gdbm/depend</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/gdbm/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/gdbm/extconf.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/gdbm/gdbm.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/gdbm/gdbm.c</a></td><td class='right'>547</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/gdbm/gdbm.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/gdbm/gdbm.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/iconv/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/iconv/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/iconv/charset_alias.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/iconv/charset_alias.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/iconv/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/iconv/depend</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/iconv/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/iconv/extconf.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/iconv/iconv.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/iconv/iconv.c</a></td><td class='right'>913</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/io/console/buildgem.sh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/buildgem.sh</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/console.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/console.c</a></td><td class='right'>1012</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/depend</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/extconf.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/io-console.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/io-console.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/lib/console/size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/lib/console/size.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/win32_vk.chksum?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/win32_vk.chksum</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/win32_vk.inc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/win32_vk.inc</a></td><td class='right'>1391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/console/win32_vk.list?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/console/win32_vk.list</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/nonblock/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/nonblock/depend</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/nonblock/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/nonblock/extconf.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/nonblock/nonblock.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/nonblock/nonblock.c</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/io/wait/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/wait/.cvsignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/wait/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/wait/depend</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/wait/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/wait/extconf.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/io/wait/lib/nonblock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/wait/lib/nonblock.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/wait/wait.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/io/wait/wait.c</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/fbuffer/fbuffer.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/fbuffer/fbuffer.h</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/generator/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/generator/depend</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/generator/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/generator/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/generator/generator.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/generator/generator.c</a></td><td class='right'>1443</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/generator/generator.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/generator/generator.h</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/json.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/json.gemspec</a></td><td class='right'>bin</td><td class='graph'>0 -> 5474 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/bigdecimal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/bigdecimal.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/complex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/complex.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/core.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/date.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/date_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/date_time.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/exception.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/ostruct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/ostruct.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/range.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/range.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/rational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/rational.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/regexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/regexp.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/struct.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/symbol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/symbol.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/add/time.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/common.rb</a></td><td class='right'>456</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/ext.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/generic_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/generic_object.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/lib/json/version.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/depend</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/extconf.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/parser.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/parser.c</a></td><td class='right'>2109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/parser.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/parser.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/parser.rl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/parser.rl</a></td><td class='right'>869</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/parser/prereq.mk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/json/parser/prereq.mk</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/nkf/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/depend</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/lib/kconv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/lib/kconv.rb</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/config.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf-utf8/config.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/nkf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf-utf8/nkf.c</a></td><td class='right'>10014</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.0%;'/><td class='rem' style='width: 4.8%;'/><td class='none' style='width: 89.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/nkf.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf-utf8/nkf.h</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/utf8tbl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf-utf8/utf8tbl.c</a></td><td class='right'>7346</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.3%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 92.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/utf8tbl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf-utf8/utf8tbl.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/nkf/nkf.c</a></td><td class='right'>402</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/depend</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/object_tracing.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/object_tracing.c</a></td><td class='right'>492</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/objspace.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/objspace.c</a></td><td class='right'>975</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/objspace.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/objspace.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/objspace_dump.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/objspace/objspace_dump.c</a></td><td class='right'>516</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/.cvsignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/History.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/History.md</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/depend</a></td><td class='right'>1154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/deprecation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/deprecation.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/extconf.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/lib/net/ftptls.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/net/ftptls.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/lib/net/telnets.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/net/telnets.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/bn.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/bn.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/buffering.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/buffering.rb</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/cipher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/cipher.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/config.rb</a></td><td class='right'>474</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/digest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/digest.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/pkcs5.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/pkcs5.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/pkey.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/pkey.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/ssl.rb</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/x509.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/lib/openssl/x509.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/openssl.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/openssl.gemspec</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/openssl_missing.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/openssl_missing.c</a></td><td class='right'>371</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/openssl_missing.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/openssl_missing.h</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl.c</a></td><td class='right'>1239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl.h</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_asn1.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_asn1.c</a></td><td class='right'>1588</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_asn1.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_asn1.h</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bio.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_bio.c</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bio.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_bio.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bn.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_bn.c</a></td><td class='right'>731</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bn.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_bn.h</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_cipher.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_cipher.c</a></td><td class='right'>882</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_cipher.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_cipher.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_config.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_config.c</a></td><td class='right'>451</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_config.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_config.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_digest.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_digest.c</a></td><td class='right'>456</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_digest.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_digest.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_engine.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_engine.c</a></td><td class='right'>388</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_engine.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_engine.h</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_hmac.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_hmac.c</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_hmac.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_hmac.h</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_kdf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_kdf.c</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_kdf.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_kdf.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ns_spki.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ns_spki.c</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ns_spki.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ns_spki.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ocsp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ocsp.c</a></td><td class='right'>1647</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ocsp.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ocsp.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs12.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkcs12.c</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs12.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkcs12.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs5.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkcs5.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs7.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkcs7.c</a></td><td class='right'>357</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs7.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkcs7.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey.c</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey.h</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_dh.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey_dh.c</a></td><td class='right'>519</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_dsa.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey_dsa.c</a></td><td class='right'>472</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_ec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey_ec.c</a></td><td class='right'>1798</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_rsa.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_pkey_rsa.c</a></td><td class='right'>748</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_rand.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_rand.c</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_rand.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_rand.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ssl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ssl.c</a></td><td class='right'>2923</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.7%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ssl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ssl.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_ssl_session.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_ssl_session.c</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_version.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_version.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509attr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509attr.c</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509cert.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509cert.c</a></td><td class='right'>539</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509crl.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509crl.c</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509ext.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509ext.c</a></td><td class='right'>259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509name.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509name.c</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509req.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509req.c</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509revoked.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509revoked.c</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509store.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ossl_x509store.c</a></td><td class='right'>598</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ruby_missing.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/openssl/ruby_missing.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/pathname/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pathname/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/pathname/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pathname/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/pathname/lib/pathname.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pathname/lib/pathname.rb</a></td><td class='right'>593</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/pathname/pathname.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pathname/pathname.c</a></td><td class='right'>1675</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/.gitignore</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/depend</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/extconf.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych.rb</a></td><td class='right'>546</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/class_loader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/class_loader.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/coder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/coder.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/core_ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/core_ext.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/exception.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/handler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/handler.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/handlers/document_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/handlers/document_stream.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/handlers/recorder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/handlers/recorder.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/json/ruby_events.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/json/ruby_events.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/json/stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/json/stream.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/json/tree_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/json/tree_builder.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/json/yaml_events.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/json/yaml_events.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/alias.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/alias.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/document.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/mapping.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/node.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/node.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/scalar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/scalar.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/sequence.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/sequence.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/nodes/stream.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/omap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/omap.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/parser.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/scalar_scanner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/scalar_scanner.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/set.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/stream.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/streaming.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/streaming.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/syntax_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/syntax_error.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/tree_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/tree_builder.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/versions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/versions.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/depth_first.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/depth_first.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/emitter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/emitter.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/json_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/json_tree.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/to_ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/to_ruby.rb</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/visitor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/visitor.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/yaml_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/visitors/yaml_tree.rb</a></td><td class='right'>551</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/lib/psych/y.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/lib/psych/y.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych.gemspec</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych.h</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_emitter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_emitter.c</a></td><td class='right'>554</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_emitter.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_emitter.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_parser.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_parser.c</a></td><td class='right'>591</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_parser.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_parser.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_to_ruby.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_to_ruby.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_to_ruby.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_to_ruby.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_yaml_tree.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_yaml_tree.c</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/psych_yaml_tree.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/psych_yaml_tree.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/api.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/api.c</a></td><td class='right'>1392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/config.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/config.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/dumper.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/dumper.c</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/emitter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/emitter.c</a></td><td class='right'>2329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/loader.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/loader.c</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/parser.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/parser.c</a></td><td class='right'>1370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/reader.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/reader.c</a></td><td class='right'>469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/scanner.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/scanner.c</a></td><td class='right'>3574</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/writer.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/writer.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/yaml.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/yaml.h</a></td><td class='right'>1971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/yaml/yaml_private.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/psych/yaml/yaml_private.h</a></td><td class='right'>662</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/README</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/README.expect?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/README.expect</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/README.expect.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/README.expect.ja</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/README.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/README.ja</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/depend</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/expect_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/expect_sample.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/extconf.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/lib/expect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/lib/expect.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/pty.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/pty.c</a></td><td class='right'>855</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/script.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/pty/shl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/pty/shl.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/purelib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/purelib.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/racc/cparse/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/racc/cparse/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/racc/cparse/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/racc/cparse/README</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/cparse.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/racc/cparse/cparse.c</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/racc/cparse/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/racc/cparse/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/rbconfig/sizeof/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/rbconfig/sizeof/depend</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/rbconfig/sizeof/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/rbconfig/sizeof/extconf.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/readline/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/README</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/README.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/README.ja</a></td><td class='right'>393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/depend</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/extconf.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/readline.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/readline/readline.c</a></td><td class='right'>2036</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/README</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/depend</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/eventids2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/eventids2.c</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/extconf.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/lib/ripper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/lib/ripper.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/lib/ripper/core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/lib/ripper/core.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/lib/ripper/filter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/lib/ripper/filter.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/lib/ripper/lexer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/lib/ripper/lexer.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/ripper/lib/ripper/sexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/lib/ripper/sexp.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/generate-param-macros.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/tools/generate-param-macros.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/generate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/tools/generate.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/preproc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/tools/preproc.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/strip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/ripper/tools/strip.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/rubyvm/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/rubyvm/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/rubyvm/lib/forwardable/impl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/rubyvm/lib/forwardable/impl.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/sdbm/_sdbm.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/_sdbm.c</a></td><td class='right'>283</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/sdbm/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/depend</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/sdbm/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/sdbm/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/init.c</a></td><td class='right'>765</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/sdbm/sdbm.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/sdbm.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/sdbm/sdbm.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/sdbm/sdbm.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/socket/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/.document</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/addrinfo.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/addrinfo.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/ancdata.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/ancdata.c</a></td><td class='right'>1734</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/basicsocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/basicsocket.c</a></td><td class='right'>757</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/constants.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/constants.c</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/depend</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/extconf.rb</a></td><td class='right'>702</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/getaddrinfo.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/getaddrinfo.c</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/getnameinfo.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/getnameinfo.c</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/ifaddr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/ifaddr.c</a></td><td class='right'>477</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/init.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/init.c</a></td><td class='right'>806</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/ipsocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/ipsocket.c</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/lib/socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/lib/socket.rb</a></td><td class='right'>1356</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/mkconstants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/mkconstants.rb</a></td><td class='right'>805</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/option.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/option.c</a></td><td class='right'>1477</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/raddrinfo.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/raddrinfo.c</a></td><td class='right'>2627</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/rubysocket.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/rubysocket.h</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/socket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/socket.c</a></td><td class='right'>5235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 4.2%;'/><td class='none' style='width: 94.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/sockport.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/sockport.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/sockssocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/sockssocket.c</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/tcpserver.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/tcpserver.c</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/tcpsocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/tcpsocket.c</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/udpsocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/udpsocket.c</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/unixserver.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/unixserver.c</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/socket/unixsocket.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/socket/unixsocket.c</a></td><td class='right'>570</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/stringio/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/stringio/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/README</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/stringio/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/README.md</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/depend</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/stringio.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/stringio.c</a></td><td class='right'>1276</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/stringio/stringio.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/stringio/stringio.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/strscan/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/strscan/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/strscan/depend</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/strscan/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/strscan.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/strscan/strscan.c</a></td><td class='right'>498</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/strscan/strscan.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/strscan/strscan.gemspec</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/bytecode.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/bytecode.c</a></td><td class='right'>1166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/depend</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/emitter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/emitter.c</a></td><td class='right'>1242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/gram.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/gram.c</a></td><td class='right'>1894</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/gram.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/gram.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/handler.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/handler.c</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/implicit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/implicit.c</a></td><td class='right'>2990</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.2%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/node.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/node.c</a></td><td class='right'>408</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/rubyext.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/rubyext.c</a></td><td class='right'>2366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.6%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/syck.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/syck.c</a></td><td class='right'>504</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/syck.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/syck.h</a></td><td class='right'>458</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/token.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/token.c</a></td><td class='right'>2725</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.9%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/yaml2byte.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/yaml2byte.c</a></td><td class='right'>257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syck/yamlbyte.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syck/yamlbyte.h</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syslog/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/depend</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/syslog/lib/syslog/logger.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/lib/syslog/logger.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/syslog.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/syslog.c</a></td><td class='right'>398</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/syslog.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/syslog.txt</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/syslog/test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/syslog/test.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/thread/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/thread/extconf.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/thread/lib/thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/thread/lib/thread.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/thread/thread.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/thread/thread.c</a></td><td class='right'>1203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/ChangeLog.tkextlib?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/ChangeLog.tkextlib</a></td><td class='right'>918</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/MANUAL_tcltklib.eng?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/MANUAL_tcltklib.eng</a></td><td class='right'>445</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/MANUAL_tcltklib.eucj?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/MANUAL_tcltklib.eucj</a></td><td class='right'>557</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/README.1st?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/README.1st</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/README.ActiveTcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/README.ActiveTcl</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/README.fork?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/README.fork</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/README.macosx-aqua?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/README.macosx-aqua</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/README.tcltklib?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/README.tcltklib</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/depend</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/extconf.rb</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/README</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/multi-tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/multi-tk.rb</a></td><td class='right'>3233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.5%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/remote-tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/remote-tk.rb</a></td><td class='right'>526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tcltk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tcltk.rb</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk.rb</a></td><td class='right'>4617</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/after.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/after.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/autoload.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/bgerror.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/bgerror.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/bindtag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/bindtag.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/button.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/button.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/canvas.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/canvas.rb</a></td><td class='right'>759</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/canvastag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/canvastag.rb</a></td><td class='right'>375</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/checkbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/checkbutton.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/clipboard.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/clipboard.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/clock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/clock.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/composite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/composite.rb</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/console.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/console.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/dialog.rb</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/encodedstr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/encodedstr.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/entry.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/event.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/event.rb</a></td><td class='right'>488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/font.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/font.rb</a></td><td class='right'>1762</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/frame.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/frame.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/grid.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/grid.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/image.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/itemconfig.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/itemconfig.rb</a></td><td class='right'>1061</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/itemfont.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/itemfont.rb</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/kinput.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/kinput.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/label.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/labelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/labelframe.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/listbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/listbox.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/macpkg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/macpkg.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/menu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/menu.rb</a></td><td class='right'>632</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/menubar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/menubar.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/menuspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/menuspec.rb</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/message.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/message.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/mngfocus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/mngfocus.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/msgcat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/msgcat.rb</a></td><td class='right'>292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/namespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/namespace.rb</a></td><td class='right'>500</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/optiondb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/optiondb.rb</a></td><td class='right'>371</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/optionobj.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/optionobj.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/pack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/pack.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/package.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/package.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/palette.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/palette.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/panedwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/panedwindow.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/place.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/place.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/radiobutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/radiobutton.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/root.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/root.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/scale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/scale.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/scrollable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/scrollable.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/scrollbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/scrollbar.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/scrollbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/scrollbox.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/selection.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/selection.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/spinbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/spinbox.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/tagfont.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/tagfont.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/text.rb</a></td><td class='right'>1550</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.7%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/textimage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/textimage.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/textmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/textmark.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/texttag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/texttag.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/textwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/textwindow.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/timer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/timer.rb</a></td><td class='right'>634</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/toplevel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/toplevel.rb</a></td><td class='right'>257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/txtwin_abst.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/txtwin_abst.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/validation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/validation.rb</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/variable.rb</a></td><td class='right'>1651</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/virtevent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/virtevent.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/winfo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/winfo.rb</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/winpkg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/winpkg.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/wm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/wm.rb</a></td><td class='right'>360</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tk/xim.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tk/xim.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkafter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkafter.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkbgerror.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkbgerror.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkcanvas.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkcanvas.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkclass.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkconsole.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkconsole.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkdialog.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkentry.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/ICONS.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/ICONS.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/ICONS/icons.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/ICONS/icons.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/ICONS/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/ICONS/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/SUPPORT_STATUS?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/SUPPORT_STATUS</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/barchart.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/barchart.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/bitmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/bitmap.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/busy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/busy.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/component.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/component.rb</a></td><td class='right'>1835</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/container.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/container.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/cutbuffer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/cutbuffer.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/dragdrop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/dragdrop.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/eps.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/eps.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/graph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/graph.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/htext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/htext.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/spline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/spline.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/stripchart.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/stripchart.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/table.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/table.rb</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tabnotebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tabnotebook.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tabset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tabset.rb</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/ted.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/ted.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/button.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/button.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/checkbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/checkbutton.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/frame.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/frame.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/label.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/radiobutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/radiobutton.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/scrollbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/scrollbar.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/toplevel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tile/toplevel.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/tree.rb</a></td><td class='right'>923</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/treeview.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/treeview.rb</a></td><td class='right'>1146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/unix_dnd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/unix_dnd.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/vector.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/vector.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/watch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/watch.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/win_printer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/win_printer.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/winop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/blt/winop.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/arrowbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/arrowbutton.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/bitmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/bitmap.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/button.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/button.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/buttonbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/buttonbox.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/combobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/combobox.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/dialog.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dragsite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/dragsite.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dropsite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/dropsite.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/dynamichelp.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/entry.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/label.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/labelentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/labelentry.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/labelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/labelframe.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/listbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/listbox.rb</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/mainframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/mainframe.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/messagedlg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/messagedlg.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/notebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/notebook.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/pagesmanager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/pagesmanager.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/panedwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/panedwindow.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/panelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/panelframe.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/passwddlg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/passwddlg.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/progressbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/progressbar.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/progressdlg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/progressdlg.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/scrollableframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/scrollableframe.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/scrolledwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/scrolledwindow.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/scrollview.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/scrollview.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/selectcolor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/selectcolor.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/selectfont.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/selectfont.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/separator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/separator.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/spinbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/spinbox.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/statusbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/statusbar.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/titleframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/titleframe.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/tree.rb</a></td><td class='right'>434</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/widget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/bwidget/widget.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itcl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itcl.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itcl/incr_tcl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itcl/incr_tcl.rb</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itcl/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itcl/setup.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itk.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itk/incr_tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itk/incr_tk.rb</a></td><td class='right'>428</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itk/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/itk/setup.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/buttonbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/buttonbox.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/calendar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/calendar.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/canvasprintbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/canvasprintbox.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/canvasprintdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/canvasprintdialog.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/checkbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/checkbox.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/combobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/combobox.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/dateentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/dateentry.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/datefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/datefield.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/dialog.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/dialogshell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/dialogshell.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/disjointlistbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/disjointlistbox.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/entryfield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/entryfield.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/extbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/extbutton.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/extfileselectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/extfileselectionbox.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/extfileselectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/extfileselectiondialog.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/feedback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/feedback.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/fileselectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/fileselectionbox.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/fileselectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/fileselectiondialog.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/finddialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/finddialog.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/hierarchy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/hierarchy.rb</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/hyperhelp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/hyperhelp.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/labeledframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/labeledframe.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/labeledwidget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/labeledwidget.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/mainwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/mainwindow.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/menubar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/menubar.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/messagebox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/messagebox.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/messagedialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/messagedialog.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/notebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/notebook.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/optionmenu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/optionmenu.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/panedwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/panedwindow.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/promptdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/promptdialog.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/pushbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/pushbutton.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/radiobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/radiobox.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scopedobject.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scopedobject.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb</a></td><td class='right'>347</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledframe.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledhtml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledhtml.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb</a></td><td class='right'>538</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledwidget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/scrolledwidget.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/selectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/selectionbox.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/shell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/shell.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spindate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/spindate.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spinint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/spinint.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spinner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/spinner.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spintime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/spintime.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/tabset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/tabset.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/timeentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/timeentry.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/timefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/timefield.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/toolbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/toolbar.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/watch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/iwidgets/watch.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/pkg_checker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/pkg_checker.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/README</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/autoscroll.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/autoscroll.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/ctext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/ctext.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/cursor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/cursor.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/datefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/datefield.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/dialog.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/getstring.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/getstring.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/history.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/history.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/ico.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/ico.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/ip_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/ip_entry.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/panelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/panelframe.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/plotchart.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/plotchart.rb</a></td><td class='right'>865</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/ruler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/ruler.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/screenruler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/screenruler.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/scrollwin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/scrollwin.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/style.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/style.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/superframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/superframe.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/swaplist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/swaplist.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/tablelist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/tablelist.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/tablelist_core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/tablelist_core.rb</a></td><td class='right'>770</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/tkpiechart.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/tkpiechart.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/tooltip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/tooltip.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/widget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tcllib/widget.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tclx.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tclx.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tclx/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tclx/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tclx/tclx.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tclx/tclx.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile.rb</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/dialog.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/sizegrip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/sizegrip.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/style.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/style.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tbutton.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tcheckbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tcheckbutton.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tcombobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tcombobox.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tentry.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tframe.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tlabel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tlabel.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tlabelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tlabelframe.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tmenubutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tmenubutton.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tnotebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tnotebook.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tpaned.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tpaned.rb</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tprogressbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tprogressbar.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tradiobutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tradiobutton.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/treeview.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/treeview.rb</a></td><td class='right'>1133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tscale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tscale.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tscrollbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tscrollbar.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tseparator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tseparator.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/tsquare.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tile/tsquare.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkDND.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkDND/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND/shape.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkDND/shape.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND/tkdnd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkDND/tkdnd.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkHTML.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkHTML.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkHTML/htmlwidget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkHTML/htmlwidget.rb</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkHTML/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkHTML/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/README</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/bmp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/bmp.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/gif.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/gif.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ico.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/ico.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/jpeg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/jpeg.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/pcx.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/pcx.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/pixmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/pixmap.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/png.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/png.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ppm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/ppm.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ps.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/ps.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/sgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/sgi.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/sun.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/sun.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/tga.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/tga.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/tiff.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/tiff.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/window.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/window.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/xbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/xbm.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/xpm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tkimg/xpm.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktable.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktable/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable/tktable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktable/tktable.rb</a></td><td class='right'>839</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktrans.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktrans.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktrans/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktrans/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktrans/tktrans.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/tktrans/tktrans.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/treectrl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/treectrl.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/treectrl/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/treectrl/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/treectrl/tktreectrl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/treectrl/tktreectrl.rb</a></td><td class='right'>2311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/trofs.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/trofs/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs/trofs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/trofs/trofs.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/version.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/bargraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/bargraph.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/charts.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/charts.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/dial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/dial.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/pie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/pie.rb</a></td><td class='right'>235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/spinbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/vu/spinbox.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/winico.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico/setup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/winico/setup.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico/winico.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkextlib/winico/winico.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkfont.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkfont.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkmacpkg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkmacpkg.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkmenubar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkmenubar.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkmngfocus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkmngfocus.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkpalette.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkpalette.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkscrollbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkscrollbox.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tktext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tktext.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkvirtevent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkvirtevent.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/lib/tkwinpkg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/lib/tkwinpkg.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/old-README.tcltklib.eucj?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/old-README.tcltklib.eucj</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/24hr_clock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/24hr_clock.rb</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/binding_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/binding_sample.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/bindtag_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/bindtag_sample.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/binstr_usage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/binstr_usage.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/btn_with_frame.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/btn_with_frame.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/cd_timer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/cd_timer.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/cmd_res_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/cmd_res_test.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/cmd_resource?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/cmd_resource</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ChangeLog?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ChangeLog</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ChangeLog.prev?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ChangeLog.prev</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/README</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/README.1st?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/README.1st</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/README.tkencoding?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/README.tkencoding</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/anilabel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/anilabel.rb</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/aniwave.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/aniwave.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/arrow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/arrow.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/bind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/bind.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/bitmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/bitmap.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/browse1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/browse1</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/browse2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/browse2</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/button.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/button.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/check.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/check.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/check2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/check2.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/clrpick.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/clrpick.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/colors.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/colors.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/cscroll.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/cscroll.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ctext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ctext.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/dialog1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/dialog1.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/dialog2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/dialog2.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/doc.org/README</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/README.JP?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/doc.org/README.JP</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/README.tk80?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/doc.org/README.tk80</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/license.terms?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/doc.org/license.terms</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/license.terms.tk80?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/doc.org/license.terms.tk80</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/entry1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/entry1.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/entry2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/entry2.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/entry3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/entry3.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/filebox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/filebox.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/floor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/floor.rb</a></td><td class='right'>1721</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/floor2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/floor2.rb</a></td><td class='right'>1720</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/form.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/form.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/goldberg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/goldberg.rb</a></td><td class='right'>1999</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/hello?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/hello</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/hscale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/hscale.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/icon.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/icon.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/image1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/image1.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/image2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/image2.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/image3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/image3.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/items.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/items.rb</a></td><td class='right'>374</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ixset?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ixset</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ixset2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ixset2</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/label.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/labelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/labelframe.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/menu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/menu.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/menu84.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/menu84.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/menubu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/menubu.rb</a></td><td class='right'>235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/msgbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/msgbox.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/paned1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/paned1.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/paned2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/paned2.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/patch_1.1c1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/patch_1.1c1</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/pendulum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/pendulum.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/plot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/plot.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/puzzle.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/puzzle.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/radio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/radio.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/radio2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/radio2.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/radio3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/radio3.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/rmt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/rmt</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/rolodex?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/rolodex</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/rolodex-j?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/rolodex-j</a></td><td class='right'>323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ruler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/ruler.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/sayings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/sayings.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/search.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/search.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/spin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/spin.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/square?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/square</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/states.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/states.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/style.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/style.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/tcolor?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/tcolor</a></td><td class='right'>526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/text.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/timer?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/timer</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/tkencoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/tkencoding.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/twind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/twind.rb</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/twind2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/twind2.rb</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/unicodeout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/unicodeout.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/vscale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/vscale.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-en/widget?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-en/widget</a></td><td class='right'>944</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/README</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/README.1st?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/README.1st</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/anilabel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/anilabel.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/aniwave.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/aniwave.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/arrow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/arrow.rb</a></td><td class='right'>236</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/bind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/bind.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/bitmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/bitmap.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/browse1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/browse1</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/browse2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/browse2</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/button.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/button.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/check.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/check.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/check2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/check2.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/clrpick.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/clrpick.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/colors.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/colors.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/cscroll.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/cscroll.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/ctext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/ctext.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/dialog1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/dialog1.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/dialog2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/dialog2.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/doc.org/README</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/README.JP?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/doc.org/README.JP</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/README.tk80?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/doc.org/README.tk80</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/license.terms?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/doc.org/license.terms</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/license.terms.tk80?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/doc.org/license.terms.tk80</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/entry1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/entry1.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/entry2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/entry2.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/entry3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/entry3.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/filebox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/filebox.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/floor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/floor.rb</a></td><td class='right'>1718</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/floor2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/floor2.rb</a></td><td class='right'>1716</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/form.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/form.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/goldberg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/goldberg.rb</a></td><td class='right'>2003</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/hello?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/hello</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/hscale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/hscale.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/icon.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/icon.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/image1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/image1.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/image2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/image2.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/image3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/image3.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/items.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/items.rb</a></td><td class='right'>371</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/ixset?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/ixset</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/ixset2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/ixset2</a></td><td class='right'>368</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/label.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/labelframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/labelframe.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/menu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/menu.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/menu84.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/menu84.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/menu8x.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/menu8x.rb</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/menubu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/menubu.rb</a></td><td class='right'>235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/msgbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/msgbox.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/paned1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/paned1.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/paned2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/paned2.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/pendulum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/pendulum.rb</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/plot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/plot.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/puzzle.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/puzzle.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/radio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/radio.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/radio2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/radio2.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/radio3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/radio3.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/rmt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/rmt</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/rolodex?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/rolodex</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/rolodex-j?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/rolodex-j</a></td><td class='right'>299</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/ruler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/ruler.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/sayings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/sayings.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/search.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/search.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/spin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/spin.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/square?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/square</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/states.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/states.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/style.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/style.rb</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/tcolor?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/tcolor</a></td><td class='right'>533</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/text.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/timer?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/timer</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/twind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/twind.rb</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/twind2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/twind2.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/unicodeout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/unicodeout.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/vscale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/vscale.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/widget?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/demos-jp/widget</a></td><td class='right'>973</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/editable_listbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/editable_listbox.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/encstr_usage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/encstr_usage.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/earth.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/earth.gif</a></td><td class='right'>bin</td><td class='graph'>51712 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/earthris.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/earthris.gif</a></td><td class='right'>bin</td><td class='graph'>6343 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/face.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/face.xbm</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/flagdown.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/flagdown.xbm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/flagup.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/flagup.xbm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/gray25.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/gray25.xbm</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/grey.25?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/grey.25</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/grey.5?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/grey.5</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/letters.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/letters.xbm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/noletter.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/noletter.xbm</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/pattern.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/pattern.xbm</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/tcllogo.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/tcllogo.gif</a></td><td class='right'>bin</td><td class='graph'>2341 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/images/teapot.ppm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/images/teapot.ppm</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/irbtk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/irbtk.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/irbtkw.rbw?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/irbtkw.rbw</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/iso2022-kr.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/iso2022-kr.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/menubar1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/menubar1.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/menubar2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/menubar2.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/README</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/cs.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/cs.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/de.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/de.msg</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/el.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/el.msg</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/en.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/en.msg</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/en_gb.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/en_gb.msg</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/eo.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/eo.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/es.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/es.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/fr.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/fr.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/it.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/it.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/ja.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/ja.msg</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/nl.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/nl.msg</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/pl.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/pl.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/ru.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb/ru.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb2/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb2/README</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb2/de.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb2/de.msg</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb2/ja.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_rb2/ja.msg</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/README</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/cs.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/cs.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/de.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/de.msg</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/el.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/el.msg</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/en.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/en.msg</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/en_gb.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/en_gb.msg</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/eo.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/eo.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/es.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/es.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/fr.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/fr.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/it.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/it.msg</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/ja.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/ja.msg</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/license.terms?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/license.terms</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/nl.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/nl.msg</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/pl.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/pl.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/ru.msg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/msgs_tk/ru.msg</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/multi-ip_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/multi-ip_sample.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/multi-ip_sample2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/multi-ip_sample2.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/optobj_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/optobj_sample.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/propagate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/propagate.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/remote-ip_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/remote-ip_sample.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/remote-ip_sample2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/remote-ip_sample2.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/resource.en?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/resource.en</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/resource.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/resource.ja</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/safe-tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/safe-tk.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/scrollframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/scrollframe.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/batsu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/batsu.gif</a></td><td class='right'>bin</td><td class='graph'>538 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines0.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/lines0.tcl</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/lines1.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/lines2.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/lines3.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines4.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/lines4.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/maru.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/maru.gif</a></td><td class='right'>bin</td><td class='graph'>481 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/safeTk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/safeTk.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/sample0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/sample0.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/sample1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/sample1.rb</a></td><td class='right'>634</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/sample2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tcltklib/sample2.rb</a></td><td class='right'>451</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkalignbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkalignbox.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkballoonhelp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkballoonhelp.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkbiff.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkbiff.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkbrowse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkbrowse.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkcombobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkcombobox.rb</a></td><td class='right'>426</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkdialog.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/ICONS/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/ICONS/Orig_LICENSE.txt</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/ICONS/tkIcons?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/ICONS/tkIcons</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/ICONS/tkIcons-sample.kde?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/ICONS/tkIcons-sample.kde</a></td><td class='right'>658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/ICONS/tkIcons.kde?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/ICONS/tkIcons.kde</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/ICONS/viewIcons.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/ICONS/viewIcons.rb</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/barchart5.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/barchart5.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/calendar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/calendar.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph6.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/graph6.rb</a></td><td class='right'>2222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph7.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/graph7.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph7a.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/graph7a.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph7b.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/graph7b.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph7c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/graph7c.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/buckskin.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/images/buckskin.gif</a></td><td class='right'>bin</td><td class='graph'>7561 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/chalk.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/images/chalk.gif</a></td><td class='right'>bin</td><td class='graph'>4378 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/qv100.t.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/images/qv100.t.gif</a></td><td class='right'>bin</td><td class='graph'>2694 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/rain.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/images/rain.gif</a></td><td class='right'>bin</td><td class='graph'>3785 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/sample.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/images/sample.gif</a></td><td class='right'>bin</td><td class='graph'>186103 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/pareto.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/pareto.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/plot1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/plot1.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/plot1b.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/plot1b.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/readme.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/readme.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/scripts/stipples.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/scripts/stipples.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/winop1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/winop1.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/winop2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/blt/winop2.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/Orig_LICENSE.txt</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/basic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/basic.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/bwidget.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/bwidget.xbm</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/demo.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/dnd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/dnd.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/manager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/manager.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/select.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/select.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/tmpldlg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/tmpldlg.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/tree.rb</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/x1.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/bwidget/x1.xbm</a></td><td class='right'>2258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.4%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif</a></td><td class='right'>bin</td><td class='graph'>279 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/close.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/close.gif</a></td><td class='right'>bin</td><td class='graph'>249 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif</a></td><td class='right'>bin</td><td class='graph'>269 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif</a></td><td class='right'>bin</td><td class='graph'>179 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif</a></td><td class='right'>bin</td><td class='graph'>396 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/find.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/find.gif</a></td><td class='right'>bin</td><td class='graph'>386 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/help.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/help.gif</a></td><td class='right'>bin</td><td class='graph'>591 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif</a></td><td class='right'>bin</td><td class='graph'>183 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/new.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/new.gif</a></td><td class='right'>bin</td><td class='graph'>212 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/open.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/open.gif</a></td><td class='right'>bin</td><td class='graph'>258 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif</a></td><td class='right'>bin</td><td class='graph'>376 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif</a></td><td class='right'>bin</td><td class='graph'>141 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/print.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/print.gif</a></td><td class='right'>bin</td><td class='graph'>263 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif</a></td><td class='right'>bin</td><td class='graph'>174 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/save.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/save.gif</a></td><td class='right'>bin</td><td class='graph'>270 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/select.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/select.gif</a></td><td class='right'>bin</td><td class='graph'>124 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/finddialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/finddialog.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/hierarchy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/hierarchy.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/hyperhelp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/hyperhelp.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/labeledframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/labeledframe.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/mainwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/mainwindow.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/menubar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/menubar.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/menubar2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/menubar2.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/messagebox1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/messagebox1.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/messagebox2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/messagebox2.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/messagedialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/messagedialog.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/notebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/notebook.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/notebook2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/notebook2.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/optionmenu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/optionmenu.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/panedwindow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/panedwindow.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/panedwindow2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/panedwindow2.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/promptdialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/promptdialog.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/pushbutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/pushbutton.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/radiobox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/radiobox.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/scrolledframe.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledhtml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/scrolledhtml.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledtext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/scrolledtext.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/selectionbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/selectionbox.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/selectiondialog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/selectiondialog.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/shell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/shell.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spindate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/spindate.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spinint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/spinint.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spinner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/spinner.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spintime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/spintime.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook2.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/timeentry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/timeentry.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/timefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/timefield.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/toolbar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/toolbar.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/watch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/iwidgets/sample/watch.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/Orig_LICENSE.txt</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/datefield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/datefield.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/plotdemos1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/plotdemos1.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/plotdemos2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/plotdemos2.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/plotdemos3.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/xyplot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tcllib/xyplot.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/Orig_LICENSE.txt</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/demo.rb</a></td><td class='right'>972</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/iconlib.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/iconlib.tcl</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/readme.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/readme.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/repeater.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/repeater.tcl</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue.tcl</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif</a></td><td class='right'>bin</td><td class='graph'>315 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>312 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif</a></td><td class='right'>bin</td><td class='graph'>313 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif</a></td><td class='right'>bin</td><td class='graph'>329 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>327 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif</a></td><td class='right'>bin</td><td class='graph'>323 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif</a></td><td class='right'>bin</td><td class='graph'>330 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>327 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright.gif</a></td><td class='right'>bin</td><td class='graph'>324 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif</a></td><td class='right'>bin</td><td class='graph'>309 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>313 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup.gif</a></td><td class='right'>bin</td><td class='graph'>314 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>696 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>770 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.xcf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.xcf</a></td><td class='right'>bin</td><td class='graph'>1942 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>769 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>254 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>234 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>249 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>229 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>1098 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif</a></td><td class='right'>bin</td><td class='graph'>626 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>389 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif</a></td><td class='right'>bin</td><td class='graph'>401 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif</a></td><td class='right'>bin</td><td class='graph'>343 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif</a></td><td class='right'>bin</td><td class='graph'>316 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif</a></td><td class='right'>bin</td><td class='graph'>333 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif</a></td><td class='right'>bin</td><td class='graph'>308 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/slider-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/slider-p.gif</a></td><td class='right'>bin</td><td class='graph'>182 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/slider.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/slider.gif</a></td><td class='right'>bin</td><td class='graph'>182 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif</a></td><td class='right'>bin</td><td class='graph'>183 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider.gif</a></td><td class='right'>bin</td><td class='graph'>283 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/pkgIndex.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/blue/pkgIndex.tcl</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik.tcl</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif</a></td><td class='right'>bin</td><td class='graph'>273 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>258 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif</a></td><td class='right'>bin</td><td class='graph'>292 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>272 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif</a></td><td class='right'>bin</td><td class='graph'>274 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>258 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif</a></td><td class='right'>bin</td><td class='graph'>286 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>271 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif</a></td><td class='right'>bin</td><td class='graph'>1266 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>896 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>881 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>625 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif</a></td><td class='right'>bin</td><td class='graph'>859 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif</a></td><td class='right'>bin</td><td class='graph'>434 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif</a></td><td class='right'>bin</td><td class='graph'>423 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>401 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif</a></td><td class='right'>bin</td><td class='graph'>395 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>592 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif</a></td><td class='right'>bin</td><td class='graph'>1116 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif</a></td><td class='right'>bin</td><td class='graph'>61 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif</a></td><td class='right'>bin</td><td class='graph'>1057 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif</a></td><td class='right'>bin</td><td class='graph'>1095 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif</a></td><td class='right'>bin</td><td class='graph'>695 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif</a></td><td class='right'>bin</td><td class='graph'>686 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif</a></td><td class='right'>bin</td><td class='graph'>383 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif</a></td><td class='right'>bin</td><td class='graph'>878 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif</a></td><td class='right'>bin</td><td class='graph'>907 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif</a></td><td class='right'>bin</td><td class='graph'>238 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif</a></td><td class='right'>bin</td><td class='graph'>927 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>405 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif</a></td><td class='right'>bin</td><td class='graph'>399 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>587 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc.tcl</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>522 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>554 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>548 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>281 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>273 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>303 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>294 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>652 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif</a></td><td class='right'>bin</td><td class='graph'>644 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>632 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif</a></td><td class='right'>bin</td><td class='graph'>621 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik.tcl</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif</a></td><td class='right'>bin</td><td class='graph'>362 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>250 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif</a></td><td class='right'>bin</td><td class='graph'>378 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>267 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif</a></td><td class='right'>bin</td><td class='graph'>379 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>266 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif</a></td><td class='right'>bin</td><td class='graph'>363 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>251 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>439 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>443 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>302 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>169 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>170 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>235 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>226 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif</a></td><td class='right'>bin</td><td class='graph'>169 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>269 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>342 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>178 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif</a></td><td class='right'>bin</td><td class='graph'>179 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>236 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif</a></td><td class='right'>bin</td><td class='graph'>178 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif</a></td><td class='right'>bin</td><td class='graph'>178 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>366 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>336 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/toolbutton.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tile/toolbutton.tcl</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/README</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/hv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/hv.rb</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image1</a></td><td class='right'>bin</td><td class='graph'>8995 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image10?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image10</a></td><td class='right'>bin</td><td class='graph'>3095 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image11?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image11</a></td><td class='right'>bin</td><td class='graph'>1425 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image12?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image12</a></td><td class='right'>bin</td><td class='graph'>2468 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image13?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image13</a></td><td class='right'>bin</td><td class='graph'>4073 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image14?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image14</a></td><td class='right'>bin</td><td class='graph'>53 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image2</a></td><td class='right'>bin</td><td class='graph'>42 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image3</a></td><td class='right'>bin</td><td class='graph'>3473 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image4</a></td><td class='right'>bin</td><td class='graph'>1988 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image5?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image5</a></td><td class='right'>bin</td><td class='graph'>973 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image6?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image6</a></td><td class='right'>bin</td><td class='graph'>2184 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image7?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image7</a></td><td class='right'>bin</td><td class='graph'>2022 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image8?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image8</a></td><td class='right'>bin</td><td class='graph'>1186 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image9?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/image9</a></td><td class='right'>bin</td><td class='graph'>139 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/index.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page1/index.html</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image1</a></td><td class='right'>bin</td><td class='graph'>1966 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image10?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image10</a></td><td class='right'>bin</td><td class='graph'>255 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image11?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image11</a></td><td class='right'>bin</td><td class='graph'>590 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image12?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image12</a></td><td class='right'>bin</td><td class='graph'>254 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image13?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image13</a></td><td class='right'>bin</td><td class='graph'>493 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image14?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image14</a></td><td class='right'>bin</td><td class='graph'>195 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image15?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image15</a></td><td class='right'>bin</td><td class='graph'>68 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image16?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image16</a></td><td class='right'>bin</td><td class='graph'>157 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image17?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image17</a></td><td class='right'>bin</td><td class='graph'>81 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image18?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image18</a></td><td class='right'>bin</td><td class='graph'>545 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image19?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image19</a></td><td class='right'>bin</td><td class='graph'>53 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image2</a></td><td class='right'>bin</td><td class='graph'>49 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image20?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image20</a></td><td class='right'>bin</td><td class='graph'>533 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image21?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image21</a></td><td class='right'>bin</td><td class='graph'>564 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image22?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image22</a></td><td class='right'>bin</td><td class='graph'>81 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image23?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image23</a></td><td class='right'>bin</td><td class='graph'>539 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image24?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image24</a></td><td class='right'>bin</td><td class='graph'>151 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image25?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image25</a></td><td class='right'>bin</td><td class='graph'>453 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image26?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image26</a></td><td class='right'>bin</td><td class='graph'>520 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image27?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image27</a></td><td class='right'>bin</td><td class='graph'>565 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image28?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image28</a></td><td class='right'>bin</td><td class='graph'>416 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image29?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image29</a></td><td class='right'>bin</td><td class='graph'>121 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image3</a></td><td class='right'>bin</td><td class='graph'>10835 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image30?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image30</a></td><td class='right'>bin</td><td class='graph'>663 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image31?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image31</a></td><td class='right'>bin</td><td class='graph'>78 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image32?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image32</a></td><td class='right'>bin</td><td class='graph'>556 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image33?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image33</a></td><td class='right'>bin</td><td class='graph'>598 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image34?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image34</a></td><td class='right'>bin</td><td class='graph'>496 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image35?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image35</a></td><td class='right'>bin</td><td class='graph'>724 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image36?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image36</a></td><td class='right'>bin</td><td class='graph'>404 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image37?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image37</a></td><td class='right'>bin</td><td class='graph'>124 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image38?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image38</a></td><td class='right'>bin</td><td class='graph'>8330 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image39?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image39</a></td><td class='right'>bin</td><td class='graph'>369 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image4</a></td><td class='right'>bin</td><td class='graph'>268 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image5?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image5</a></td><td class='right'>bin</td><td class='graph'>492 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image6?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image6</a></td><td class='right'>bin</td><td class='graph'>246 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image7?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image7</a></td><td class='right'>bin</td><td class='graph'>551 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image8?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image8</a></td><td class='right'>bin</td><td class='graph'>497 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image9?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/image9</a></td><td class='right'>bin</td><td class='graph'>492 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/index.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page2/index.html</a></td><td class='right'>433</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image1</a></td><td class='right'>bin</td><td class='graph'>113 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image10?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image10</a></td><td class='right'>bin</td><td class='graph'>5088 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image11?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image11</a></td><td class='right'>bin</td><td class='graph'>4485 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image12?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image12</a></td><td class='right'>bin</td><td class='graph'>3579 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image13?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image13</a></td><td class='right'>bin</td><td class='graph'>5119 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image14?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image14</a></td><td class='right'>bin</td><td class='graph'>3603 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image2</a></td><td class='right'>bin</td><td class='graph'>74 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image3</a></td><td class='right'>bin</td><td class='graph'>681 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image4</a></td><td class='right'>bin</td><td class='graph'>3056 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image5?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image5</a></td><td class='right'>bin</td><td class='graph'>2297 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image6?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image6</a></td><td class='right'>bin</td><td class='graph'>79 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image7?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image7</a></td><td class='right'>bin</td><td class='graph'>1613 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image8?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image8</a></td><td class='right'>bin</td><td class='graph'>864 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image9?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/image9</a></td><td class='right'>bin</td><td class='graph'>2379 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/index.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page3/index.html</a></td><td class='right'>2787</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image1</a></td><td class='right'>bin</td><td class='graph'>42 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image2?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image2</a></td><td class='right'>bin</td><td class='graph'>14343 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image3?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image3</a></td><td class='right'>bin</td><td class='graph'>17750 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image4</a></td><td class='right'>bin</td><td class='graph'>61 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image5?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image5</a></td><td class='right'>bin</td><td class='graph'>201 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image6?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image6</a></td><td class='right'>bin</td><td class='graph'>214 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image7?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image7</a></td><td class='right'>bin</td><td class='graph'>149 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image8?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image8</a></td><td class='right'>bin</td><td class='graph'>203 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image9?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/image9</a></td><td class='right'>bin</td><td class='graph'>1504 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/index.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/page4/index.html</a></td><td class='right'>768</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/ss.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkHTML/ss.rb</a></td><td class='right'>436</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkimg/demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkimg/demo.rb</a></td><td class='right'>1478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkimg/license_terms_of_Img_extension?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkimg/license_terms_of_Img_extension</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkimg/readme.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tkimg/readme.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/Orig_LICENSE.txt</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/basic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/basic.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/buttons.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/buttons.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/command.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/debug.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/debug.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/dynarows.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/dynarows.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/maxsize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/maxsize.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/spreadsheet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/spreadsheet.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/tcllogo.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/tcllogo.gif</a></td><td class='right'>bin</td><td class='graph'>2341 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/valid.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/tktable/valid.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/bitmaps.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/bitmaps.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/demo.rb</a></td><td class='right'>1310</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/explorer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/explorer.rb</a></td><td class='right'>430</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/help.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/help.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/imovie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/imovie.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/layout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/layout.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/mailwasher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/mailwasher.rb</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/outlook-folders.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/outlook-folders.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb</a></td><td class='right'>448</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-dll.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/big-dll.gif</a></td><td class='right'>bin</td><td class='graph'>437 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-exe.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/big-exe.gif</a></td><td class='right'>bin</td><td class='graph'>368 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-file.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/big-file.gif</a></td><td class='right'>bin</td><td class='graph'>466 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-folder.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/big-folder.gif</a></td><td class='right'>bin</td><td class='graph'>459 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-txt.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/big-txt.gif</a></td><td class='right'>bin</td><td class='graph'>392 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/checked.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/checked.gif</a></td><td class='right'>bin</td><td class='graph'>78 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/file.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/file.gif</a></td><td class='right'>bin</td><td class='graph'>279 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/folder-closed.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/folder-closed.gif</a></td><td class='right'>bin</td><td class='graph'>111 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/folder-open.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/folder-open.gif</a></td><td class='right'>bin</td><td class='graph'>120 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-book-closed.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/help-book-closed.gif</a></td><td class='right'>bin</td><td class='graph'>115 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-book-open.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/help-book-open.gif</a></td><td class='right'>bin</td><td class='graph'>128 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-page.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/help-page.gif</a></td><td class='right'>bin</td><td class='graph'>132 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-01.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-01.gif</a></td><td class='right'>bin</td><td class='graph'>5406 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-02.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-02.gif</a></td><td class='right'>bin</td><td class='graph'>5912 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-03.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-03.gif</a></td><td class='right'>bin</td><td class='graph'>4696 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-04.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-04.gif</a></td><td class='right'>bin</td><td class='graph'>5783 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-05.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-05.gif</a></td><td class='right'>bin</td><td class='graph'>3238 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-06.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-06.gif</a></td><td class='right'>bin</td><td class='graph'>3509 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-07.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/imovie-07.gif</a></td><td class='right'>bin</td><td class='graph'>2091 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-check-off.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-check-off.gif</a></td><td class='right'>bin</td><td class='graph'>70 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-check-on.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-check-on.gif</a></td><td class='right'>bin</td><td class='graph'>76 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-print.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-print.gif</a></td><td class='right'>bin</td><td class='graph'>124 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-radio-off.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-radio-off.gif</a></td><td class='right'>bin</td><td class='graph'>68 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-radio-on.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-radio-on.gif</a></td><td class='right'>bin</td><td class='graph'>71 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-search.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-search.gif</a></td><td class='right'>bin</td><td class='graph'>114 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-security.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/internet-security.gif</a></td><td class='right'>bin</td><td class='graph'>108 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/mac-collapse.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/mac-collapse.gif</a></td><td class='right'>bin</td><td class='graph'>275 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/mac-expand.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/mac-expand.gif</a></td><td class='right'>bin</td><td class='graph'>277 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-arrow.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-arrow.gif</a></td><td class='right'>bin</td><td class='graph'>73 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-clip.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-clip.gif</a></td><td class='right'>bin</td><td class='graph'>73 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-deleted.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-deleted.gif</a></td><td class='right'>bin</td><td class='graph'>138 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-draft.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-draft.gif</a></td><td class='right'>bin</td><td class='graph'>134 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-folder.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-folder.gif</a></td><td class='right'>bin</td><td class='graph'>133 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-group.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-group.gif</a></td><td class='right'>bin</td><td class='graph'>144 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-inbox.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-inbox.gif</a></td><td class='right'>bin</td><td class='graph'>133 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-local.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-local.gif</a></td><td class='right'>bin</td><td class='graph'>146 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-main.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-main.gif</a></td><td class='right'>bin</td><td class='graph'>174 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-outbox.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-outbox.gif</a></td><td class='right'>bin</td><td class='graph'>136 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-read-2.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-read-2.gif</a></td><td class='right'>bin</td><td class='graph'>343 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-read.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-read.gif</a></td><td class='right'>bin</td><td class='graph'>304 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-sent.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-sent.gif</a></td><td class='right'>bin</td><td class='graph'>132 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-server.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-server.gif</a></td><td class='right'>bin</td><td class='graph'>163 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-unread.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-unread.gif</a></td><td class='right'>bin</td><td class='graph'>303 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-watch.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/outlook-watch.gif</a></td><td class='right'>bin</td><td class='graph'>98 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/sky.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/sky.gif</a></td><td class='right'>bin</td><td class='graph'>6454 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-dll.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/small-dll.gif</a></td><td class='right'>bin</td><td class='graph'>311 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-exe.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/small-exe.gif</a></td><td class='right'>bin</td><td class='graph'>115 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-file.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/small-file.gif</a></td><td class='right'>bin</td><td class='graph'>338 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-folder.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/small-folder.gif</a></td><td class='right'>bin</td><td class='graph'>307 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-txt.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/small-txt.gif</a></td><td class='right'>bin</td><td class='graph'>302 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/unchecked.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/pics/unchecked.gif</a></td><td class='right'>bin</td><td class='graph'>72 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/random.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/random.rb</a></td><td class='right'>508</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/readme.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/readme.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/www-options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/treectrl/www-options.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/Orig_LICENSE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/Orig_LICENSE.txt</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/README.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/README.txt</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/canvItems.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/canvItems.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/canvSticker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/canvSticker.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/canvSticker2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/canvSticker2.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/dial_demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/dial_demo.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/m128_000.xbm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/m128_000.xbm</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/oscilloscope.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/oscilloscope.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/pie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/pie.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/vu/vu_demo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkextlib/vu/vu_demo.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkfrom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkfrom.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkhello.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkhello.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkline.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmenubutton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmenubutton.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmsgcat-load_rb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmsgcat-load_rb.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmsgcat-load_rb2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmsgcat-load_rb2.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmsgcat-load_tk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmsgcat-load_tk.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmulticolumnlist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmulticolumnlist.rb</a></td><td class='right'>743</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmultilistbox.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmultilistbox.rb</a></td><td class='right'>654</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkmultilistframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkmultilistframe.rb</a></td><td class='right'>940</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkoptdb-safeTk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkoptdb-safeTk.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkoptdb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkoptdb.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tkrttimer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tkrttimer.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktextframe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktextframe.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktextio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktextio.rb</a></td><td class='right'>1050</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktimer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktimer.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktimer2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktimer2.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktimer3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktimer3.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktree.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/sample/tktree.tcl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/sample/tktree.tcl</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/stubs.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/stubs.c</a></td><td class='right'>516</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/stubs.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/stubs.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/tcltklib.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/tcltklib.c</a></td><td class='right'>8152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 8.8%;'/><td class='none' style='width: 91.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/tkutil/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/tkutil/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/tkutil/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/tkutil/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/tkutil/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/tkutil/extconf.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/tk/tkutil/tkutil.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/tk/tkutil/tkutil.c</a></td><td class='right'>1639</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/Win32API.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/Win32API.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/win32/importer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/win32/importer.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/win32/registry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/win32/registry.rb</a></td><td class='right'>913</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/win32/resolv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/win32/resolv.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/win32/resolv9x.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/win32/resolv9x.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/lib/win32/sspi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/lib/win32/sspi.rb</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/resolv/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/resolv/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/resolv/resolv.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32/resolv/resolv.c</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/.cvsignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/doc/win32ole.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/doc/win32ole.rd</a></td><td class='right'>294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/extconf.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/lib/win32ole.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/lib/win32ole.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/lib/win32ole/property.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/lib/win32ole/property.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/excel1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/excel1.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/excel2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/excel2.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/excel3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/excel3.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/ie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/ie.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/ieconst.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/ieconst.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/ienavi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/ienavi.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/sample/ienavi2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/ienavi2.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/oledirs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/oledirs.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/olegen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/olegen.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/xml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/sample/xml.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/oleserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/oleserver.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testNIL2VTEMPTY.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testNIL2VTEMPTY.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testOLEEVENT.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testOLEEVENT.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testOLEMETHOD.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testOLEMETHOD.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testOLEPARAM.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testOLEPARAM.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testOLETYPE.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testOLETYPE.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testOLEVARIABLE.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testOLEVARIABLE.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testVARIANT.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testVARIANT.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testWIN32OLE.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testWIN32OLE.rb</a></td><td class='right'>372</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/test_ole_methods.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/test_ole_methods.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/test_propertyputref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/test_propertyputref.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/test_word.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/test_word.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32ole/tests/testall.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/tests/testall.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole.c</a></td><td class='right'>6515</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 4.7%;'/><td class='none' style='width: 93.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole.h</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_error.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_error.c</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_error.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_error.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_event.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_event.c</a></td><td class='right'>1280</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_event.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_event.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_method.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_method.c</a></td><td class='right'>950</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_method.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_method.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_param.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_param.c</a></td><td class='right'>438</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_param.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_param.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_record.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_record.c</a></td><td class='right'>604</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_record.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_record.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_type.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_type.c</a></td><td class='right'>915</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_type.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_type.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_typelib.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_typelib.c</a></td><td class='right'>844</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_typelib.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_typelib.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variable.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variable.c</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variable.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variable.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variant.c</a></td><td class='right'>732</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variant.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant_m.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variant_m.c</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant_m.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/win32ole/win32ole_variant_m.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/zlib/.cvsignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/.cvsignore</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/zlib/depend?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/depend</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/zlib/doc/zlib.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/doc/zlib.rd</a></td><td class='right'>911</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/extconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/extconf.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/zlib.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/zlib.c</a></td><td class='right'>3265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.5%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/zlib/zlib.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ext/zlib/zlib.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/file.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>file.c</a></td><td class='right'>5321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.8%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 94.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/gc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>gc.c</a></td><td class='right'>10453</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.8%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 88.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gc.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>gc.h</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gem_prelude.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>gem_prelude.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gems/bundled_gems?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>gems/bundled_gems</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/golf_prelude.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>golf_prelude.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/goruby.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>goruby.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/hash.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>hash.c</a></td><td class='right'>4469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.6%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ia64.s?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ia64.s</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/id_table.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>id_table.c</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/id_table.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>id_table.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/classext.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward/classext.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/rubyio.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward/rubyio.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/rubysig.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward/rubysig.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/st.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward/st.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/util.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/backward/util.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/debug.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/debug.h</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/defines.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/defines.h</a></td><td class='right'>388</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/encoding.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/encoding.h</a></td><td class='right'>423</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/intern.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/intern.h</a></td><td class='right'>960</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/io.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/io.h</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/missing.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/missing.h</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/onigmo.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/onigmo.h</a></td><td class='right'>935</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/oniguruma.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/oniguruma.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/re.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/re.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/regex.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/regex.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/ruby.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/ruby.h</a></td><td class='right'>2561</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/st.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/st.h</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/subst.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/subst.h</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/thread.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/thread.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/thread_native.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/thread_native.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/util.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/util.h</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/version.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/version.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/vm.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/vm.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/win32.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>include/ruby/win32.h</a></td><td class='right'>824</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/inits.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>inits.c</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/insns.def?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>insns.def</a></td><td class='right'>1699</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/instruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>instruby.rb</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/intern.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>intern.h</a></td><td class='right'>508</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>internal.h</a></td><td class='right'>2036</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/io.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>io.c</a></td><td class='right'>13430</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 11.2%;'/><td class='rem' style='width: 3.3%;'/><td class='none' style='width: 85.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/iseq.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>iseq.c</a></td><td class='right'>2754</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/iseq.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>iseq.h</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/keywords?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>keywords</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lex.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lex.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lex.c.blt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lex.c.blt</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/.document</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/English.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/English.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/Env.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/Env.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/README</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/abbrev.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/abbrev.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/base64.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/base64.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/benchmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/benchmark.rb</a></td><td class='right'>476</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/cgi-lib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi-lib.rb</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi.rb</a></td><td class='right'>2213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 2.3%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/cgi/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/.document</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/cookie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/cookie.rb</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/core.rb</a></td><td class='right'>888</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/html.rb</a></td><td class='right'>1035</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/session.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/session.rb</a></td><td class='right'>290</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/session/pstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/session/pstore.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cgi/util.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cmath.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cmath.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cmath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/cmath.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/complex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/complex.rb</a></td><td class='right'>631</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/csv.gemspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/csv.rb</a></td><td class='right'>3057</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/date.rb</a></td><td class='right'>1708</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/date/format.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/date/format.rb</a></td><td class='right'>1088</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/date2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/date2.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/debug.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/debug.rb</a></td><td class='right'>1730</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/delegate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/delegate.rb</a></td><td class='right'>559</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/acl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/acl.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/drb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/drb.rb</a></td><td class='right'>752</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/eq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/eq.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/extserv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/extserv.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/extservm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/extservm.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/gw.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/gw.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/invokemethod.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/invokemethod.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/observer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/observer.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/ssl.rb</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/timeridconv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/timeridconv.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/unix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/drb/unix.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/e2mmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/e2mmap.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/erb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/erb.rb</a></td><td class='right'>959</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/eregex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/eregex.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/fileutils.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/fileutils.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/fileutils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/fileutils.rb</a></td><td class='right'>1101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/finalize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/finalize.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/find.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/find.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/forwardable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/forwardable.rb</a></td><td class='right'>330</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/forwardable/impl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/forwardable/impl.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/ftools.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/ftools.rb</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/generator.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/getoptlong.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/getoptlong.rb</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/getopts.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/getopts.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/gserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/gserver.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/importenv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/importenv.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ipaddr.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/ipaddr.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/ipaddr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/ipaddr.rb</a></td><td class='right'>772</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb.rb</a></td><td class='right'>724</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/chws.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/chws.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/fork.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/fork.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/help.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/help.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/load.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/nop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/nop.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/pushws.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/pushws.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/subirb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/cmd/subirb.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/completion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/completion.rb</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/context.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/context.rb</a></td><td class='right'>327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/change-ws.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/change-ws.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/history.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/history.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/loader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/loader.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/irb/ext/math-mode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/math-mode.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/multi-irb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/multi-irb.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/save-history.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/save-history.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/tracer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/tracer.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/use-loader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/use-loader.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/workspaces.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ext/workspaces.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/extend-command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/extend-command.rb</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/frame.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/frame.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/help.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/help.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/init.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/init.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/input-method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/input-method.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/inspector.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/inspector.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/lc/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/.document</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/error.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/help-message?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/help-message</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/lc/ja/encoding_aliases.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/ja/encoding_aliases.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/ja/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/ja/error.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/ja/help-message?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/lc/ja/help-message</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/locale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/locale.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/magic-file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/magic-file.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/notifier.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/notifier.rb</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/output-method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/output-method.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ruby-lex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ruby-lex.rb</a></td><td class='right'>831</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ruby-token.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ruby-token.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/slex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/slex.rb</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/src_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/src_encoding.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/version.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/workspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/workspace.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ws-for-case-2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/ws-for-case-2.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/xmp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/irb/xmp.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/jcode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/jcode.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/logger.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/logger.rb</a></td><td class='right'>708</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/mailread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/mailread.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/mathn.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/mathn.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/matrix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/matrix.rb</a></td><td class='right'>2080</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/matrix/eigenvalue_decomposition.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/matrix/eigenvalue_decomposition.rb</a></td><td class='right'>883</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/matrix/lup_decomposition.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/matrix/lup_decomposition.rb</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/mkmf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/mkmf.rb</a></td><td class='right'>3664</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.6%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/monitor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/monitor.rb</a></td><td class='right'>398</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/mutex_m.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/mutex_m.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/ftp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/ftp.rb</a></td><td class='right'>1436</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http.rb</a></td><td class='right'>2755</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/backward.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/backward.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/exceptions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/exceptions.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/generic_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/generic_request.rb</a></td><td class='right'>338</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/header.rb</a></td><td class='right'>494</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/proxy_delta.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/proxy_delta.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/request.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/requests.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/requests.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/response.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/response.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/responses.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/responses.rb</a></td><td class='right'>299</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/status.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/http/status.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/https.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/https.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/imap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/imap.rb</a></td><td class='right'>1764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/pop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/pop.rb</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/protocol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/protocol.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/smtp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/smtp.rb</a></td><td class='right'>847</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/net/telnet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/net/telnet.rb</a></td><td class='right'>749</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/observer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/observer.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/open-uri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/open-uri.rb</a></td><td class='right'>478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/open3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/open3.rb</a></td><td class='right'>702</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/optionparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optionparser.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse.rb</a></td><td class='right'>801</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/optparse/ac.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/ac.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/date.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/optparse/kwargs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/kwargs.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/shellwords.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/shellwords.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/time.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/uri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/uri.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/optparse/version.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/ostruct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/ostruct.rb</a></td><td class='right'>354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/parsearg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/parsearg.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/parsedate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/parsedate.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/pathname.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/pathname.rb</a></td><td class='right'>1062</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/ping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/ping.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/pp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/pp.rb</a></td><td class='right'>478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/prettyprint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/prettyprint.rb</a></td><td class='right'>780</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/prime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/prime.rb</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/profile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/profile.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/profiler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/profiler.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/pstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/pstore.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/racc/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/racc/parser.rb</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/rdoc/grammar.en.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/racc/rdoc/grammar.en.rdoc</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rational.rb</a></td><td class='right'>530</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/README</a></td><td class='right'>489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/alias.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/alias.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/anon_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/anon_class.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/any_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/any_method.rb</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/attr.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/class_module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/class_module.rb</a></td><td class='right'>802</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/code_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/code_object.rb</a></td><td class='right'>421</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/code_objects.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/code_objects.rb</a></td><td class='right'>767</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/comment.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/constant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/constant.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/context.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/context.rb</a></td><td class='right'>1235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/context/section.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/context/section.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/cross_reference.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/cross_reference.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/diagram.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/diagram.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/dot/dot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/dot/dot.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/encoding.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/erb_partial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/erb_partial.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/erbio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/erbio.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/extend.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/extend.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/darkfish.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/darkfish.rb</a></td><td class='right'>786</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/json_index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/json_index.rb</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/markup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/markup.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/pot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/pot.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/pot/message_extractor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/pot/message_extractor.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/pot/po.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/pot/po.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/pot/po_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/pot/po_entry.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/ri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/ri.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/.document</a> (renamed from install-sh)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_footer.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_footer.rhtml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_head.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_head.rhtml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/class.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/class.rhtml</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/css/fonts.css?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/css/fonts.css</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/css/rdoc.css?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/css/rdoc.css</a></td><td class='right'>611</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 94668 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 94196 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 96184 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 95316 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 71200 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf</a></td><td class='right'>bin</td><td class='graph'>0 -> 71692 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/add.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/add.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 733 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/arrow_up.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/arrow_up.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 372 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/brick.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/brick.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 452 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/brick_link.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/brick_link.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 764 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/bug.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/bug.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 774 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/bullet_black.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/bullet_black.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 211 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 207 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 209 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/date.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/date.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 626 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/delete.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/delete.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 715 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/find.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/find.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 659 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 5886 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/macFFBgHack.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/macFFBgHack.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 207 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/package.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/package.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 853 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/page_green.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/page_green.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 621 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/page_white_text.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/page_white_text.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 342 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/page_white_width.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/page_white_width.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 309 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/plugin.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/plugin.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 591 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/ruby.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/ruby.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 592 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/tag_blue.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/tag_blue.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 1880 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/tag_green.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/tag_green.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 613 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/transparent.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/transparent.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 97 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/wrench.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/wrench.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 610 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/wrench_orange.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/wrench_orange.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 584 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/images/zoom.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/images/zoom.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 692 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/index.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/index.rhtml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/js/darkfish.js?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/js/darkfish.js</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/js/search.js?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/js/search.js</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/page.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/page.rhtml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/servlet_root.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/servlet_root.rhtml</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/darkfish/table_of_contents.rhtml</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/json_index/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/json_index/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/json_index/js/navigation.js?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/json_index/js/navigation.js</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/generator/template/json_index/js/searcher.js?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generator/template/json_index/js/searcher.js</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/chm_generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/chm_generator.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/html_generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/html_generator.rb</a></td><td class='right'>1509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/ri_generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/ri_generator.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/chm/chm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/chm/chm.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/html/hefss.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/html/hefss.rb</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/html/html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/html/html.rb</a></td><td class='right'>711</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/html/kilmer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/html/kilmer.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/html/old_html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/html/old_html.rb</a></td><td class='right'>728</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/html/one_page_html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/html/one_page_html.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/xml/rdf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/xml/rdf.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/template/xml/xml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/template/xml/xml.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generators/xml_generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/generators/xml_generator.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ghost_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ghost_method.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/i18n.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/i18n.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/i18n/locale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/i18n/locale.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/i18n/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/i18n/text.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/include.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/known_classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/known_classes.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markdown.rb</a></td><td class='right'>16286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 17.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 82.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markdown/entities.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markdown/entities.rb</a></td><td class='right'>2132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markdown/literals.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markdown/literals.rb</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup.rb</a></td><td class='right'>870</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/.document</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/attr_changer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/attr_changer.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/attr_span.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/attr_span.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/attribute_manager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/attribute_manager.rb</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/attributes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/attributes.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/blank_line.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/blank_line.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/block_quote.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/block_quote.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/document.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/formatter.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/formatter_test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/formatter_test_case.rb</a></td><td class='right'>764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/hard_break.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/hard_break.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/heading.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/heading.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/include.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/indented_paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/indented_paragraph.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/inline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/inline.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/list.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/list_item.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/list_item.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/paragraph.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/parser.rb</a></td><td class='right'>543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/pre_process.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/pre_process.rb</a></td><td class='right'>295</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/raw.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/raw.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/rule.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/rule.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/sample/rdoc2latex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/sample/rdoc2latex.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/sample/sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/sample/sample.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup.rb</a></td><td class='right'>476</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/fragments.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/fragments.rb</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/inline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/inline.rb</a></td><td class='right'>340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/lines.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/lines.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/preprocess.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/preprocess.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/to_flow.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/to_flow.rb</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/to_html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/to_html.rb</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/simple_markup/to_latex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/simple_markup/to_latex.rb</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/special.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/special.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/test/AllTests.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/test/AllTests.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/test/TestInline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/test/TestInline.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/test/TestParse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/test/TestParse.rb</a></td><td class='right'>503</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/text_formatter_test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/text_formatter_test_case.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_ansi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_ansi.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_bs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_bs.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_html.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_html_crossref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_html_crossref.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_html_snippet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_html_snippet.rb</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_joined_paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_joined_paragraph.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_label.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_markdown.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_rdoc.rb</a></td><td class='right'>334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_table_of_contents.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_table_of_contents.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_test.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/to_tt_only.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/to_tt_only.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/verbatim.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/markup/verbatim.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/meta_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/meta_method.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/method_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/method_attr.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/mixin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/mixin.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/normal_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/normal_class.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/normal_module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/normal_module.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/options.rb</a></td><td class='right'>1641</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/c.rb</a></td><td class='right'>1268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/changelog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/changelog.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/markdown.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/rd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/rd.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/ripper_state_lex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/ripper_state_lex.rb</a></td><td class='right'>605</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/ruby.rb</a></td><td class='right'>2232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/ruby_tools.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/ruby_tools.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/simple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/simple.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/parser/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parser/text.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/parsers/parse_c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parsers/parse_c.rb</a></td><td class='right'>773</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/parsers/parse_f95.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parsers/parse_f95.rb</a></td><td class='right'>1841</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/parsers/parse_rb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parsers/parse_rb.rb</a></td><td class='right'>2605</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/parsers/parse_simple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parsers/parse_simple.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/parsers/parserfactory.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/parsers/parserfactory.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rd.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rd/block_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rd/block_parser.rb</a></td><td class='right'>1055</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rd/inline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rd/inline.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rd/inline_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rd/inline_parser.rb</a></td><td class='right'>1207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rdoc.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rdoc.gemspec</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rdoc.rb</a></td><td class='right'>729</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/require.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri/driver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/driver.rb</a></td><td class='right'>1547</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri/formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/formatter.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri/paths.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/paths.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_cache.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_cache.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_descriptions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_descriptions.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_display.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_display.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_driver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_driver.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_formatter.rb</a></td><td class='right'>672</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_options.rb</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_paths.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_paths.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_reader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_reader.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_util.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/ri/ri_writer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/ri_writer.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri/store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/store.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/ri/task.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/ri/task.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/rubygems_hook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/rubygems_hook.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/servlet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/servlet.rb</a></td><td class='right'>442</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/single_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/single_class.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/stats.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/stats.rb</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/stats/normal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/stats/normal.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/stats/quiet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/stats/quiet.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/stats/verbose.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/stats/verbose.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/store.rb</a></td><td class='right'>968</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/task.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/task.rb</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/template.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/template.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/test_case.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/text.rb</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/token_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/token_stream.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/tokenstream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/tokenstream.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/tom_doc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/tom_doc.rb</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/top_level.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/top_level.rb</a></td><td class='right'>283</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/usage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rdoc/usage.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/readbytes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/readbytes.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/resolv-replace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/resolv-replace.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/resolv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/resolv.rb</a></td><td class='right'>2027</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/attlistdecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/attlistdecl.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/attribute.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/attribute.rb</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/cdata.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/cdata.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/child.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/child.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/comment.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/doctype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/doctype.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/document.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/dtd/attlistdecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/dtd/attlistdecl.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/dtd/dtd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/dtd/dtd.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/dtd/elementdecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/dtd/elementdecl.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/dtd/entitydecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/dtd/entitydecl.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/dtd/notationdecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/dtd/notationdecl.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/element.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encoding.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/CP-1252.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/CP-1252.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/EUC-JP.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/EUC-JP.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/ICONV.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/ICONV.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/ISO-8859-1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/ISO-8859-1.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/ISO-8859-15.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/ISO-8859-15.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/SHIFT-JIS.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/SHIFT-JIS.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/SHIFT_JIS.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/SHIFT_JIS.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/UNILE.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/UNILE.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/US-ASCII.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/US-ASCII.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/UTF-16.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/UTF-16.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encodings/UTF-8.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/encodings/UTF-8.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/entity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/entity.rb</a></td><td class='right'>292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/formatters/default.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/formatters/default.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/formatters/pretty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/formatters/pretty.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/formatters/transitive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/formatters/transitive.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/functions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/functions.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/instruction.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/instruction.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/light/node.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/light/node.rb</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/namespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/namespace.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/node.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/node.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/output.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/output.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parent.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parseexception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parseexception.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/baseparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/baseparser.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/lightparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/lightparser.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/pullparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/pullparser.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/sax2parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/sax2parser.rb</a></td><td class='right'>433</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/streamparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/streamparser.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/treeparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/treeparser.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/ultralightparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/ultralightparser.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/parsers/xpathparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/parsers/xpathparser.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/quickpath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/quickpath.rb</a></td><td class='right'>496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/rexml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/rexml.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/sax2listener.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/sax2listener.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rexml/security.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/security.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/source.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/streamlistener.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/streamlistener.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/syncenumerator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/syncenumerator.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/text.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/undefinednamespaceexception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/undefinednamespaceexception.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/validation/relaxng.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/validation/relaxng.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/validation/validation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/validation/validation.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/validation/validationexception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/validation/validationexception.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/xmldecl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/xmldecl.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/xmltokens.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/xmltokens.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/xpath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/xpath.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rexml/xpath_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rexml/xpath_parser.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rinda/rinda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rinda/rinda.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rinda/ring.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rinda/ring.rb</a></td><td class='right'>367</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rinda/tuplespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rinda/tuplespace.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/0.9.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/0.9.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/1.0.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/2.0.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/atom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/atom.rb</a></td><td class='right'>1025</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/content.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/content.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/content/1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/content/1.0.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/content/2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/content/2.0.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/converter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/converter.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/dublincore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/dublincore.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/dublincore/1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/dublincore/1.0.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/dublincore/2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/dublincore/2.0.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/dublincore/atom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/dublincore/atom.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/image.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/itunes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/itunes.rb</a></td><td class='right'>413</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/0.9.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/0.9.rb</a></td><td class='right'>451</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/1.0.rb</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/2.0.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/maker/atom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/atom.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/base.rb</a></td><td class='right'>969</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/content.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/content.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/dublincore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/dublincore.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/maker/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/entry.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/maker/feed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/feed.rb</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/image.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/maker/itunes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/itunes.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/maker/slash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/slash.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/syndication.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/syndication.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/taxonomy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/taxonomy.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/maker/trackback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/maker/trackback.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/parser.rb</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/rexmlparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/rexmlparser.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/rss.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/rss.rb</a></td><td class='right'>815</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/slash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/slash.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/syndication.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/syndication.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/taxonomy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/taxonomy.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/trackback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/trackback.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/utils.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/xml-stylesheet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/xml-stylesheet.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rss/xml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/xml.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/xmlparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/xmlparser.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rss/xmlscanner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rss/xmlscanner.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems.rb</a></td><td class='right'>1405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/available_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/available_set.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/basic_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/basic_specification.rb</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/bundler_version_finder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/bundler_version_finder.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/command.rb</a></td><td class='right'>602</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/command_manager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/command_manager.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/build_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/build_command.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/cert_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/cert_command.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/check_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/check_command.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/cleanup_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/cleanup_command.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/contents_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/contents_command.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/dependency_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/dependency_command.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/environment_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/environment_command.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/fetch_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/fetch_command.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/generate_index_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/generate_index_command.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/help_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/help_command.rb</a></td><td class='right'>375</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/install_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/install_command.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/list_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/list_command.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/lock_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/lock_command.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/mirror_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/mirror_command.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/open_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/open_command.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/outdated_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/outdated_command.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/owner_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/owner_command.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/pristine_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/pristine_command.rb</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/push_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/push_command.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/query_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/query_command.rb</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/rdoc_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/rdoc_command.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/search_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/search_command.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/server_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/server_command.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/setup_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/setup_command.rb</a></td><td class='right'>589</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/signin_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/signin_command.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/signout_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/signout_command.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/sources_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/sources_command.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/specification_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/specification_command.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/stale_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/stale_command.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/uninstall_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/uninstall_command.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/unpack_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/unpack_command.rb</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/update_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/update_command.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/which_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/which_command.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/yank_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/commands/yank_command.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/compatibility.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/compatibility.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/config_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/config_file.rb</a></td><td class='right'>487</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/core_ext/kernel_gem.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/core_ext/kernel_gem.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/core_ext/kernel_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/core_ext/kernel_require.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/defaults.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/defaults.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/dependency.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/dependency.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/dependency_installer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/dependency_installer.rb</a></td><td class='right'>495</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/dependency_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/dependency_list.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/deprecate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/deprecate.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/doctor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/doctor.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/errors.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/errors.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/exceptions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/exceptions.rb</a></td><td class='right'>276</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/build_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/build_error.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/builder.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/cmake_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/cmake_builder.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/configure_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/configure_builder.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/ext_conf_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/ext_conf_builder.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/rake_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ext/rake_builder.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/gem_runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/gem_runner.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/gemcutter_utilities.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/gemcutter_utilities.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/indexer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/indexer.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/install_default_message.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/install_default_message.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/install_message.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/install_message.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/install_update_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/install_update_options.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/installer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/installer.rb</a></td><td class='right'>905</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/installer_test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/installer_test_case.rb</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/local_remote_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/local_remote_options.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/mock_gem_ui.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/mock_gem_ui.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/name_tuple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/name_tuple.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package.rb</a></td><td class='right'>668</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/digest_io.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/digest_io.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/file_source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/file_source.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/io_source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/io_source.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/old.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/old.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/source.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/tar_header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/tar_header.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/tar_reader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/tar_reader.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/tar_reader/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/tar_reader/entry.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/tar_test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/tar_test_case.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package/tar_writer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package/tar_writer.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/package_task.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/package_task.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/path_support.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/path_support.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/platform.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/platform.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/psych_additions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/psych_additions.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/psych_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/psych_tree.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/rdoc.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/remote_fetcher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/remote_fetcher.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request.rb</a></td><td class='right'>294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request/connection_pools.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request/connection_pools.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request/http_pool.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request/http_pool.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request/https_pool.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request/https_pool.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request_set.rb</a></td><td class='right'>441</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request_set/gem_dependency_api.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request_set/gem_dependency_api.rb</a></td><td class='right'>849</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request_set/lockfile.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request_set/lockfile/parser.rb</a></td><td class='right'>354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile/tokenizer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/request_set/lockfile/tokenizer.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/requirement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/requirement.rb</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver.rb</a></td><td class='right'>348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/activation_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/activation_request.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/api_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/api_set.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/api_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/api_specification.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/best_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/best_set.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/composed_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/composed_set.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/conflict.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/conflict.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/current_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/current_set.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/dependency_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/dependency_request.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/git_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/git_set.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/git_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/git_specification.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/index_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/index_set.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/index_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/index_specification.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/installed_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/installed_specification.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/installer_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/installer_set.rb</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/local_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/local_specification.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/lock_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/lock_set.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/lock_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/lock_specification.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb</a></td><td class='right'>494</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/molinillo/lib/molinillo/state.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/requirement_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/requirement_list.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/set.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/source_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/source_set.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/spec_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/spec_specification.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/specification.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/stats.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/stats.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/vendor_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/vendor_set.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/vendor_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/resolver/vendor_specification.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/safe_yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/safe_yaml.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security.rb</a></td><td class='right'>603</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security/policies.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security/policies.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security/policy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security/policy.rb</a></td><td class='right'>295</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security/signer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security/signer.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security/trust_dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security/trust_dir.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/security_option.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/security_option.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/server.rb</a></td><td class='right'>878</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/git.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/git.rb</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/installed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/installed.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/local.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/local.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/lock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/lock.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/specific_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/specific_file.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source/vendor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source/vendor.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source_list.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source_local.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source_local.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/source_specific_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/source_specific_file.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/spec_fetcher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/spec_fetcher.rb</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/specification.rb</a></td><td class='right'>3090</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ssl_certs/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/stub_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/stub_specification.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/syck_hack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/syck_hack.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/test_case.rb</a></td><td class='right'>1538</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/test_utilities.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/test_utilities.rb</a></td><td class='right'>384</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/text.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/uninstaller.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/uninstaller.rb</a></td><td class='right'>346</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/uri_formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/uri_formatter.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/user_interaction.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/user_interaction.rb</a></td><td class='right'>705</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/util.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/util/licenses.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/util/licenses.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/util/list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/util/list.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/validator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/validator.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/version.rb</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/version_option.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubygems/version_option.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubyunit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/rubyunit.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/assert.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/assert.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/cui/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/cui/testrunner.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/error.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/testcase.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/testresult.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/testresult.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/testsuite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/testsuite.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/runit/topublic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/runit/topublic.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/scanf.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/scanf.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/scanf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/scanf.rb</a></td><td class='right'>784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/securerandom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/securerandom.rb</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/set.rb</a></td><td class='right'>1403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell.rb</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/builtin-command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/builtin-command.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/command-processor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/command-processor.rb</a></td><td class='right'>727</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/error.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/filter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/filter.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/process-controller.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/process-controller.rb</a></td><td class='right'>349</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/system-command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/system-command.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shell/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shell/version.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shellwords.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/shellwords.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/singleton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/singleton.rb</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/attachment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/attachment.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/baseData.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/baseData.rb</a></td><td class='right'>942</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/element.rb</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/encodingstyle/aspDotNetHandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/encodingstyle/aspDotNetHandler.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/encodingstyle/handler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/encodingstyle/handler.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/encodingstyle/literalHandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/encodingstyle/literalHandler.rb</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/encodingstyle/soapHandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/encodingstyle/soapHandler.rb</a></td><td class='right'>582</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/generator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/generator.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/header/handler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/header/handler.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/header/handlerset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/header/handlerset.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/header/simplehandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/header/simplehandler.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/httpconfigloader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/httpconfigloader.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/factory.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/factory.rb</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/mapping.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/registry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/registry.rb</a></td><td class='right'>541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/rubytypeFactory.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/rubytypeFactory.rb</a></td><td class='right'>475</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/typeMap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/typeMap.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/wsdlencodedregistry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/wsdlencodedregistry.rb</a></td><td class='right'>280</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mapping/wsdlliteralregistry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mapping/wsdlliteralregistry.rb</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/marshal.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/mimemessage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/mimemessage.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/netHttpClient.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/netHttpClient.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/parser.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/processor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/processor.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/property.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/property.rb</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/cgistub.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/cgistub.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/driver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/driver.rb</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/element.rb</a></td><td class='right'>325</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/httpserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/httpserver.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/proxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/proxy.rb</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/router.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/router.rb</a></td><td class='right'>594</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/rpc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/rpc.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/soaplet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/soaplet.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/rpc/standaloneServer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/rpc/standaloneServer.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/soap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/soap.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/streamHandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/streamHandler.rb</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/soap/wsdlDriver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/soap/wsdlDriver.rb</a></td><td class='right'>575</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/sync.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/sync.rb</a></td><td class='right'>346</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tempfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/tempfile.rb</a></td><td class='right'>407</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit.rb</a></td><td class='right'>280</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/assertionfailederror.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/assertionfailederror.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/assertions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/assertions.rb</a></td><td class='right'>622</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/autorunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/autorunner.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/collector.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/collector.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/collector/dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/collector/dir.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/collector/objectspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/collector/objectspace.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/error.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/failure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/failure.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/testcase.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/testresult.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/testresult.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/testsuite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/testsuite.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/console/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/console/testrunner.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/fox/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/fox/testrunner.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/gtk/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/gtk/testrunner.rb</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/gtk2/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/gtk2/testrunner.rb</a></td><td class='right'>465</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/testrunnermediator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/testrunnermediator.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/testrunnerutilities.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/testrunnerutilities.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/ui/tk/testrunner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/ui/tk/testrunner.rb</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/util/backtracefilter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/util/backtracefilter.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/util/observable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/util/observable.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/test/unit/util/procwrapper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/test/unit/util/procwrapper.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/thread.rb</a></td><td class='right'>479</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/thwait.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/thwait.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/time.rb</a></td><td class='right'>829</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/timeout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/timeout.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tmpdir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/tmpdir.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tracer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/tracer.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tsort.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/tsort.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/un.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/un.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/unicode_normalize/normalize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/unicode_normalize/normalize.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/unicode_normalize/tables.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/unicode_normalize/tables.rb</a></td><td class='right'>1170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/common.rb</a></td><td class='right'>839</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/ftp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/ftp.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/generic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/generic.rb</a></td><td class='right'>1091</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/http.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/http.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/https.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/https.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/ldap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/ldap.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/ldaps.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/ldaps.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/mailto.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/mailto.rb</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/rfc2396_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/rfc2396_parser.rb</a></td><td class='right'>544</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/rfc3986_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/uri/rfc3986_parser.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/weakref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/weakref.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick.rb</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/webrick/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/.document</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/accesslog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/accesslog.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/cgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/cgi.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/compat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/compat.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/config.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/cookie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/cookie.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/htmlutils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/htmlutils.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/authenticator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/authenticator.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/basicauth.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/basicauth.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/digestauth.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/digestauth.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/htdigest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/htdigest.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/htgroup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/htgroup.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/htpasswd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/htpasswd.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpauth/userdb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpauth/userdb.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpproxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpproxy.rb</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httprequest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httprequest.rb</a></td><td class='right'>343</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpresponse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpresponse.rb</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/https.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/https.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpserver.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/abstract.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/abstract.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/cgi_runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/cgi_runner.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/cgihandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/cgihandler.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/erbhandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/erbhandler.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/filehandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/filehandler.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpservlet/prochandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpservlet/prochandler.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpstatus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpstatus.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httputils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httputils.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/httpversion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/httpversion.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/log.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/log.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/server.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/ssl.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/utils.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/webrick/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/version.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/webrick/webrick.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/webrick/webrick.gemspec</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/binding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/binding.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/data.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/definitions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/definitions.rb</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/documentation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/documentation.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/import.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/import.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/importer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/importer.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/info.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/info.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/message.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/message.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/operation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/operation.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/operationBinding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/operationBinding.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/param.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/param.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/parser.rb</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/part.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/part.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/port.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/port.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/portType.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/portType.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/service.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/service.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/address.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/address.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/binding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/binding.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/body.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/body.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/cgiStubCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/cgiStubCreator.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/classDefCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/classDefCreator.rb</a></td><td class='right'>314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/classDefCreatorSupport.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/classDefCreatorSupport.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/clientSkeltonCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/clientSkeltonCreator.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/complexType.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/complexType.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/data.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/definitions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/definitions.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/driverCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/driverCreator.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/element.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/fault.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/fault.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/header.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/headerfault.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/headerfault.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/mappingRegistryCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/mappingRegistryCreator.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/methodDefCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/methodDefCreator.rb</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/operation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/operation.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/servantSkeltonCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/servantSkeltonCreator.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/standaloneServerStubCreator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/standaloneServerStubCreator.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/soap/wsdl2ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/soap/wsdl2ruby.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/types.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/types.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/wsdl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/wsdl.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/all.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/all.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/annotation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/annotation.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/any.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/any.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/attribute.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/attribute.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/choice.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/choice.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/complexContent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/complexContent.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/complexType.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/complexType.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/content.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/content.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/data.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/element.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/enumeration.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/enumeration.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/import.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/import.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/importer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/importer.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/include.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/length.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/parser.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/pattern.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/pattern.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/schema.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/schema.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/sequence.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/sequence.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/simpleContent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/simpleContent.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/simpleExtension.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/simpleExtension.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/simpleRestriction.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/simpleRestriction.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/simpleType.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/simpleType.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/unique.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/unique.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/wsdl/xmlSchema/xsd2ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/wsdl/xmlSchema/xsd2ruby.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/.document?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/README.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/README.txt</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/base64.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/base64.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/client.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/client.rb</a></td><td class='right'>619</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/config.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/create.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/create.rb</a></td><td class='right'>290</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/datetime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/datetime.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/httpserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/httpserver.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/marshal.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/parser.rb</a></td><td class='right'>813</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/server.rb</a></td><td class='right'>780</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xmlrpc/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xmlrpc/utils.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/charset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/charset.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen/classdef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen/classdef.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen/commentdef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen/commentdef.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen/gensupport.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen/gensupport.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen/methoddef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen/methoddef.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/codegen/moduledef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/codegen/moduledef.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/datatypes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/datatypes.rb</a></td><td class='right'>1269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/datatypes1999.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/datatypes1999.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/iconvcharset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/iconvcharset.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/mapping.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/namedelements.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/namedelements.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/ns.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/ns.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/qname.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/qname.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/xmlparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/xmlparser.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/xmlparser/parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/xmlparser/parser.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/xmlparser/rexmlparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/xmlparser/rexmlparser.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/xmlparser/xmlparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/xmlparser/xmlparser.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/xsd/xmlparser/xmlscanner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/xsd/xmlparser/xmlscanner.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml.rb</a></td><td class='right'>470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/baseemitter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/baseemitter.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/basenode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/basenode.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/constants.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/yaml/dbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/dbm.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/encoding.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/error.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/loader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/loader.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/rubytypes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/rubytypes.rb</a></td><td class='right'>408</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/yaml/store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/store.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/stream.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/stringio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/stringio.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/syck.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/syck.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/tag.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/types.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/types.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/yamlnode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/yamlnode.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/yaml/ypath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>lib/yaml/ypath.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/load.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>load.c</a></td><td class='right'>1208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/loadpath.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>loadpath.c</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/localeinit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>localeinit.c</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/main.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>main.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/erb.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>man/erb.1</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/goruby.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>man/goruby.1</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/irb.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>man/irb.1</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/ri.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>man/ri.1</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/ruby.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>man/ruby.1</a></td><td class='right'>661</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/marshal.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>marshal.c</a></td><td class='right'>2028</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/math.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>math.c</a></td><td class='right'>969</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/mdoc2man.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>mdoc2man.rb</a></td><td class='right'>465</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/method.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>method.h</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/miniinit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>miniinit.c</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/README</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/inf-ruby.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/inf-ruby.el</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/misc/lldb_cruby.py?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/lldb_cruby.py</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/rb_optparse.bash?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/rb_optparse.bash</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/misc/rb_optparse.zsh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/rb_optparse.zsh</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/misc/rdebug.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/rdebug.el</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/rdoc-mode.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/rdoc-mode.el</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/ruby-additional.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/ruby-additional.el</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/ruby-electric.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/ruby-electric.el</a></td><td class='right'>693</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/ruby-mode.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/ruby-mode.el</a></td><td class='right'>1919</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/ruby-style.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/ruby-style.el</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/rubydb3x.el?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/rubydb3x.el</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/test_lldb_cruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>misc/test_lldb_cruby.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing.h</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/acosh.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/acosh.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/alloca.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/alloca.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/cbrt.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/cbrt.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/close.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/close.c</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/crt_externs.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/crt_externs.h</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/crypt.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/crypt.c</a></td><td class='right'>651</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/crypt.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/crypt.h</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/des_tables.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/des_tables.c</a></td><td class='right'>1616</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/dup2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/dup2.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/erf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/erf.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/explicit_bzero.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/explicit_bzero.c</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/ffs.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/ffs.c</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/file.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/file.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/finite.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/finite.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/flock.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/flock.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/hypot.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/hypot.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/isinf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/isinf.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/isnan.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/isnan.c</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/langinfo.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/langinfo.c</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/lgamma_r.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/lgamma_r.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/memcmp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/memcmp.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/memmove.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/memmove.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/nextafter.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/nextafter.c</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/os2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/os2.c</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/setproctitle.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/setproctitle.c</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/signbit.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/signbit.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/stdbool.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/stdbool.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strcasecmp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strcasecmp.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/strchr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strchr.c</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/strerror.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strerror.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strftime.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strftime.c</a></td><td class='right'>903</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/strlcat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strlcat.c</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/strlcpy.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strlcpy.c</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strncasecmp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strncasecmp.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/strstr.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strstr.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strtod.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strtod.c</a></td><td class='right'>271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strtol.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strtol.c</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/strtoul.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/strtoul.c</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/tgamma.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/tgamma.c</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/vsnprintf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/vsnprintf.c</a></td><td class='right'>1135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/x68.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/x68.c</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/x86_64-chkstk.s?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>missing/x86_64-chkstk.s</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/mkconfig.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>mkconfig.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/node.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>node.c</a></td><td class='right'>1186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/node.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>node.h</a></td><td class='right'>480</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/numeric.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>numeric.c</a></td><td class='right'>5542</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.4%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 94.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/object.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>object.c</a></td><td class='right'>4037</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.9%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/pack.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>pack.c</a></td><td class='right'>2161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/parse.y?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>parse.y</a></td><td class='right'>13090</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 10.3%;'/><td class='rem' style='width: 3.8%;'/><td class='none' style='width: 85.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/prec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>prec.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/prelude.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>prelude.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/probes.d?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>probes.d</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/probes_helper.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>probes_helper.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/proc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>proc.c</a></td><td class='right'>3228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/process.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>process.c</a></td><td class='right'>7122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.2%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 92.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/random.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>random.c</a></td><td class='right'>1706</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/range.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>range.c</a></td><td class='right'>1384</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/rational.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>rational.c</a></td><td class='right'>2794</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/re.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>re.c</a></td><td class='right'>4121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.2%;'/><td class='rem' style='width: 1.3%;'/><td class='none' style='width: 95.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/re.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>re.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regcomp.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regcomp.c</a></td><td class='right'>6740</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regenc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regenc.c</a></td><td class='right'>1012</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regenc.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regenc.h</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regerror.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regerror.c</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/regex.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regex.c</a></td><td class='right'>4661</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/regex.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regex.h</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regexec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regexec.c</a></td><td class='right'>4620</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regint.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regint.h</a></td><td class='right'>938</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regparse.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regparse.c</a></td><td class='right'>7052</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regparse.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regparse.h</a></td><td class='right'>370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regsyntax.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>regsyntax.c</a></td><td class='right'>388</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ruby-runner.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby-runner.c</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ruby.1?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby.1</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ruby.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby.c</a></td><td class='right'>2512</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ruby.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby.h</a></td><td class='right'>759</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ruby_assert.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby_assert.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ruby_atomic.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>ruby_atomic.h</a></td><td class='right'>233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/rubyio.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>rubyio.h</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/rubysig.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>rubysig.h</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/rubystub.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>rubystub.c</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/rubytest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>rubytest.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/runruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>runruby.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/safe.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>safe.c</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/README</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/benchmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/benchmark.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/biorhythm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/biorhythm.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/cal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/cal.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/cbreak.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/cbreak.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/cgi-session-pstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/cgi-session-pstore.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/coverage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/coverage.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/dbmtest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/dbmtest.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/delegate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/delegate.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/dir.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/drb/README.ja.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/README.ja.rdoc</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/drb/README.rd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/README.rd</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/drb/README.rd.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/README.rd.ja</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/drb/README.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/README.rdoc</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/drb/acl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/acl.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/darray.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/darray.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/darrayc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/darrayc.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dbiff.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dbiff.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dchatc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dchatc.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dchats.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dchats.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dhasen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dhasen.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dhasenc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dhasenc.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dlogc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dlogc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dlogd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dlogd.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dqin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dqin.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dqout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dqout.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dqueue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/dqueue.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbch.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbm.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbmc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbmc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbs-acl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbs-acl.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/drbs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/drbs.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/extserv_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/extserv_test.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/gw_cu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/gw_cu.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/holderc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/holderc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/holders.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/holders.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/http0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/http0.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/http0serv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/http0serv.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/name.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/namec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/namec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/old_tuplespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/old_tuplespace.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/ring_echo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/ring_echo.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/ring_place.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/ring_place.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/simpletuple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/simpletuple.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/speedc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/speedc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/speeds.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/drb/speeds.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/dualstack-fetch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/dualstack-fetch.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/dualstack-httpd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/dualstack-httpd.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/eval.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/export.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/export.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/exyacc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/exyacc.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/fib.awk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/fib.awk</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/fib.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/fib.pl</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/fib.scm?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/fib.scm</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/freq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/freq.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/from.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/from.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/fullpath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/fullpath.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/getopts.test?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/getopts.test</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/goodfriday.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/goodfriday.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/iseq_loader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/iseq_loader.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/list.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/list2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/list2.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/list3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/list3.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/logger/app.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/logger/app.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/sample/mine.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/mine.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/mkproto.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/mkproto.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/mrshtest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/mrshtest.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/net-imap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/net-imap.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/observ.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/observ.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/occur.pl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/occur.pl</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/occur.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/occur.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/occur2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/occur2.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/open3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/open3.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/c_rehash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/c_rehash.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/openssl/cert_store_view.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/cert_store_view.rb</a></td><td class='right'>911</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/certstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/certstore.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/cipher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/cipher.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/crlstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/crlstore.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/echo_cli.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/echo_cli.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/echo_svr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/echo_svr.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/gen_csr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/gen_csr.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/smime_read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/smime_read.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/smime_write.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/smime_write.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/wget.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/openssl/wget.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/sample/optparse/opttest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/optparse/opttest.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/philos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/philos.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/pstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/pstore.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/pty/expect_sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/pty/expect_sample.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/pty/script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/pty/script.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/pty/shl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/pty/shl.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/rcs.awk?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rcs.awk</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/rdoc/markup/rdoc2latex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rdoc/markup/rdoc2latex.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/rdoc/markup/sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rdoc/markup/sample.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/regx.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/regx.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/rinda-ring.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rinda-ring.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/ripper/ruby2html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/ripper/ruby2html.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/ripper/strip-comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/ripper/strip-comment.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/sample/rss/blend.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rss/blend.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/sample/rss/convert.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rss/convert.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/sample/rss/list_description.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rss/list_description.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/sample/rss/re_read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rss/re_read.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/sample/rss/rss_recent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/rss/rss_recent.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/simple-bench.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/simple-bench.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/svr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/svr.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/tempfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/tempfile.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/sample/test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/test.rb</a></td><td class='right'>2041</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.2%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/time.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/timeout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/timeout.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/README.md</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/kinaba/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/kinaba/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/kinaba/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/kinaba/entry.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/kinaba/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/kinaba/remarks.markdown</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/mame/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/mame/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/mame/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/mame/entry.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/mame/music-box.mp4?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/mame/music-box.mp4</a></td><td class='right'>bin</td><td class='graph'>0 -> 580724 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/mame/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/mame/remarks.markdown</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/shinh/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/shinh/authors.markdown</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/shinh/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/shinh/entry.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/shinh/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/shinh/remarks.markdown</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/yhara/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/yhara/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/yhara/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/yhara/entry.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/yhara/remarks.en.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/yhara/remarks.en.markdown</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2013/yhara/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2013/yhara/remarks.markdown</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/README.md</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/eregon/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/eregon/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/eregon/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/eregon/entry.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/eregon/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/eregon/remarks.markdown</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/kinaba/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/kinaba/authors.markdown</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/kinaba/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/kinaba/entry.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/kinaba/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/kinaba/remarks.markdown</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_1/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_1/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_1/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_1/entry.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_1/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_1/remarks.markdown</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/abnormal.cnf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/abnormal.cnf</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/entry.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/quinn.cnf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/quinn.cnf</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/remarks.markdown</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/sample.cnf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/sample.cnf</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/uf20-01.cnf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/uf20-01.cnf</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/ksk_2/unsat.cnf?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/ksk_2/unsat.cnf</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/monae/authors.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/monae/authors.markdown</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/monae/entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/monae/entry.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2015/monae/remarks.markdown?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trick2015/monae/remarks.markdown</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trojan.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/trojan.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/tsvr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/tsvr.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/weakref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/weakref.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/webrick/httpproxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sample/webrick/httpproxy.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/signal.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>signal.c</a></td><td class='right'>1521</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/siphash.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>siphash.c</a></td><td class='right'>482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/siphash.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>siphash.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sparc.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sparc.c</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/README.md</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/default.mspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/default.mspec</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/.gitignore</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/.travis.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/.travis.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/Gemfile?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/Gemfile</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/Gemfile.lock?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/Gemfile.lock</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/LICENSE?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/LICENSE</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/README.md</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/Rakefile?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/Rakefile</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mkspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mkspec</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mkspec.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mkspec.bat</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-ci?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-ci</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-ci.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-ci.bat</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-run?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-run</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-run.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-run.bat</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-tag?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-tag</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec-tag.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec-tag.bat</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/bin/mspec.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/bin/mspec.bat</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mkspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/commands/mkspec.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-ci.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/commands/mspec-ci.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-run.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/commands/mspec-run.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/commands/mspec-tag.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/commands/mspec.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/expectations.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/expectations.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/expectations/expectations.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/expectations/expectations.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/expectations/should.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/expectations/should.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/block_device.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/block_device.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/bug.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/bug.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/conflict.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/conflict.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/endian.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/endian.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/feature.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/feature.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/guard.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/guard.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/platform.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/platform.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/quarantine.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/quarantine.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/superuser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/superuser.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/support.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/support.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/guards/version.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/argf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/argf.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/argv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/argv.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/datetime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/datetime.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/fixture.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/flunk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/flunk.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/frozen_error_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/frozen_error_class.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/fs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/fs.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/io.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/io.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/mock_to_path.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/mock_to_path.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/numeric.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/numeric.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/ruby_exe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/ruby_exe.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/scratch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/scratch.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/tmp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/tmp.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/warning.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/helpers/warning.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/base.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_an_instance_of.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_ancestor_of.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_close.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_close.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_computed_by.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_computed_by.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_empty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_empty.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_false.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_false.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_kind_of.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_kind_of.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_nan.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_nan.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_nil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_nil.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_true.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_true.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_true_or_false.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/be_true_or_false.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/block_caller.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/block_caller.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/complain.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/complain.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/eql.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/equal.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/equal_element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/equal_element.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_class_variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_class_variable.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_constant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_constant.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_instance_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_instance_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_instance_variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_instance_variable.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_private_instance_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_private_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_private_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_public_instance_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_singleton_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/have_singleton_method.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/include.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/infinity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/infinity.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/match_yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/match_yaml.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/method.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/output.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/output.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/output_to_fd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/output_to_fd.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/raise_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/raise_error.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/respond_to.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/respond_to.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/signed_zero.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/signed_zero.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/matchers/variable.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/mocks.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/mock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/mocks/mock.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/mocks/object.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/proxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/mocks/proxy.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/filter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/filter.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/leakchecker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/leakchecker.rb</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/tag.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/taglist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/taglist.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/tagpurge.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/tagpurge.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/tally.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/tally.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/timer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/actions/timer.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/context.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/context.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/evaluate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/evaluate.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/example.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/example.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/exception.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/filters.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/filters.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/filters/match.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/filters/match.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/filters/profile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/filters/profile.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/filters/regexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/filters/regexp.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/filters/tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/filters/tag.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/describe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/describe.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/dotted.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/dotted.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/file.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/html.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/junit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/junit.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/method.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/multi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/multi.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/profile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/profile.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/specdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/specdoc.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/spinner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/spinner.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/summary.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/summary.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/unit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/unit.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/formatters/yaml.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/mspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/mspec.rb</a></td><td class='right'>408</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/object.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/shared.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/shared.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/tag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/runner/tag.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/deprecate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/deprecate.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/name_map.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/name_map.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/options.rb</a></td><td class='right'>481</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/script.rb</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/version.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/warnings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/utils/warnings.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/lib/mspec/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/spec/mspec/spec/commands/fixtures/four.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/fixtures/four.txt</a> (renamed from test/wsdl/datetime/datetime.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/fixtures/level2/three_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/fixtures/level2/three_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/fixtures/one_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/fixtures/one_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/fixtures/three.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/fixtures/three.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/fixtures/two_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/fixtures/two_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/mkspec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/mkspec_spec.rb</a></td><td class='right'>363</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_ci_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/mspec_ci_spec.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_run_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/mspec_run_spec.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/mspec_spec.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_tag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/commands/mspec_tag_spec.rb</a></td><td class='right'>414</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/expectations/expectations_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/expectations/expectations_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/expectations/should.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/expectations/should.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/expectations/should_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/expectations/should_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/a_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/b_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/b_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/config.mspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/config.mspec</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/my_ruby?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/my_ruby</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/object_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/object_methods_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/print_interpreter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/print_interpreter_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/tagging_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/fixtures/tagging_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/block_device_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/block_device_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/bug_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/bug_spec.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/conflict_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/conflict_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/endian_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/endian_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/feature_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/feature_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/guard_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/guard_spec.rb</a></td><td class='right'>421</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/platform_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/platform_spec.rb</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/quarantine_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/quarantine_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/superuser_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/superuser_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/support_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/support_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/user_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/user_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/guards/version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/guards/version_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/argf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/argf_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/argv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/argv_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/datetime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/datetime_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/fixture_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/fixture_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/flunk_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/flunk_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/fs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/fs_spec.rb</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/io_spec.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/mock_to_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/mock_to_path_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/numeric_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/numeric_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/ruby_exe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/ruby_exe_spec.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/scratch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/scratch_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/suppress_warning_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/suppress_warning_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/helpers/tmp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/helpers/tmp_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/integration/interpreter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/integration/interpreter_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/integration/object_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/integration/object_methods_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/integration/run_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/integration/run_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/integration/tag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/integration/tag_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/base_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/base_spec.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_an_instance_of_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_an_instance_of_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_ancestor_of_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_ancestor_of_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_close_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_computed_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_computed_by_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_empty_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_false_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_false_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_kind_of_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_kind_of_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_nan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_nan_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_nil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_nil_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_true_or_false_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_true_or_false_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_true_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/be_true_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/block_caller_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/block_caller_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/complain_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/complain_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/eql_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/equal_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/equal_element_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/equal_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_class_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_class_variable_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_constant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_constant_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_instance_method_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_instance_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_instance_variable_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_method_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_private_instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_private_instance_method_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_private_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_private_method_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_protected_instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_protected_instance_method_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_public_instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_public_instance_method_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_singleton_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/have_singleton_method_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/include_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/infinity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/infinity_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/match_yaml_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/match_yaml_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/output_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/output_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/output_to_fd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/output_to_fd_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/raise_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/raise_error_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/respond_to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/respond_to_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/matchers/signed_zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/matchers/signed_zero_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/mocks/mock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/mocks/mock_spec.rb</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/mocks/proxy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/mocks/proxy_spec.rb</a></td><td class='right'>405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/filter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/filter_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/tag_spec.rb</a></td><td class='right'>315</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/taglist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/taglist_spec.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tagpurge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/tagpurge_spec.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tally_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/tally_spec.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/timer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/actions/timer_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/context_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/context_spec.rb</a></td><td class='right'>1041</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/example_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/example_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/exception_spec.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/a.yaml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/a.yaml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/b.yaml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/b.yaml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/match_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/profile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/profile_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/regexp_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/tag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/filters/tag_spec.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/describe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/describe_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/dotted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/dotted_spec.rb</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/file_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/html_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/html_spec.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/junit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/junit_spec.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/method_spec.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/multi_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/multi_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/specdoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/specdoc_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/spinner_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/spinner_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/summary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/summary_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/unit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/unit_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/yaml_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/formatters/yaml_spec.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/mspec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/mspec_spec.rb</a></td><td class='right'>595</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/shared_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/shared_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/tag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/tag_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/runner/tags.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/runner/tags.txt</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/spec_helper.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/utils/deprecate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/utils/deprecate_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/utils/name_map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/utils/name_map_spec.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/utils/options_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/utils/options_spec.rb</a></td><td class='right'>1285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/utils/script_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/utils/script_spec.rb</a></td><td class='right'>475</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/utils/version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/spec/utils/version_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/find.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/tool/find.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/remove_old_guards.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/tool/remove_old_guards.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/sync/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/tool/sync/.gitignore</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/sync/sync-rubyspec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/mspec/tool/sync/sync-rubyspec.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/.gitignore</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/.rubocop.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/.rubocop.yml</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/.rubocop_todo.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/.rubocop_todo.yml</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/.travis.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/.travis.yml</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/CHANGES.before-2008-05-10?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/CHANGES.before-2008-05-10</a></td><td class='right'>17796</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 19.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 80.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/CONTRIBUTING.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/CONTRIBUTING.md</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/LICENSE?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/LICENSE</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/README.md?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/README.md</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/TODO?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/TODO</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/appveyor.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/appveyor.yml</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_a_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_c_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_d_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_d_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_e_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_n_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_n_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_p_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_p_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_r_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_s_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_c_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_e_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_f_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_i_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_k_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_k_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_s_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_u_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_u_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_w_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_upper_w_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_v_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_v_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_w_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_w_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_x_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/dash_x_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/error_message_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/error_message_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bad_syntax.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bad_syntax.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/bad_embedded_ruby.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bin/bad_embedded_ruby.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/dash_s_fail?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bin/dash_s_fail</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/embedded_ruby.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bin/embedded_ruby.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/launcher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/bin/launcher.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/conditional_range.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/conditional_range.txt</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/dash_s_script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/dash_s_script.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/dash_upper_c_script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/dash_upper_c_script.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/debug.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/debug.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/debug_info.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/debug_info.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_across_files.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_across_files.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_across_files_diff_enc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_across_files_diff_enc.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_one_literal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_one_literal.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_required.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_required.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_required_diff_enc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_required_diff_enc.rb</a></td><td class='right'>bin</td><td class='graph'>0 -> 121 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_two_literals.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/freeze_flag_two_literals.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/full_names.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/full_names.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/loadpath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/loadpath.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/names.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/names.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/passwd_file.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/passwd_file.txt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/require.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/rubyopt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/rubyopt.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/test_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/test_file.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/verbose.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/fixtures/verbose.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/frozen_strings_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/frozen_strings_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/rubyopt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/rubyopt_spec.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/shared/verbose.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/shared/verbose.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/syntax_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/command_line/syntax_error_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/argf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/argf_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/argv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/argv_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/binmode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/binmode_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/bytes_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/chars_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/chars_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/close_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/closed_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/codepoints_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/codepoints_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/each_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/each_byte_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/each_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/each_char_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/each_codepoint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/each_codepoint_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/each_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/each_line_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/each_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/eof_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/eof_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/file_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/filename_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/filename_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fileno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fileno_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/bin_file.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/bin_file.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/file1.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/file1.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/file2.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/file2.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/filename.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/filename.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/lineno.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/lineno.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/rewind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/rewind.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/fixtures/stdin.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/fixtures/stdin.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/getc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/getc_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/gets_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/lineno_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/lines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/lines_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/path_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/pos_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/read_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/read_nonblock_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/read_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/readchar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/readchar_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/readline_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/readlines_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/readpartial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/readpartial_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/rewind_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/seek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/seek_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/set_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/set_encoding_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/each_byte.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/each_byte.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/each_char.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/each_char.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/each_codepoint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/each_codepoint.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/each_line.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/each_line.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/eof.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/eof.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/filename.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/filename.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/fileno.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/fileno.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/getc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/getc.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/gets.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/gets.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/pos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/pos.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/read.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/readlines.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/shared/readlines.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/skip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/skip_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/tell_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/to_a_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/to_i_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/to_io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/to_io_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/argf/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/argf/to_s_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/allocate_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/any_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/any_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/append_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/array_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/array_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/assoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/assoc_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/at_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/bsearch_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/bsearch_index_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/bsearch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/bsearch_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/clear_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/clone_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/collect_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/combination_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/combination_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/compact_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/compact_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/comparison_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/concat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/concat_spec.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/constructor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/constructor_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/count_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/count_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/cycle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/cycle_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/delete_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/delete_at_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/delete_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/delete_if_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/delete_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/dig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/dig_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/drop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/drop_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/drop_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/drop_while_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/dup_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/each_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/each_index_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/each_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/element_reference_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/element_set_spec.rb</a></td><td class='right'>417</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/eql_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/equal_value_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/fetch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/fetch_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/fill_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/fill_spec.rb</a></td><td class='right'>317</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/find_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/find_index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/first_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/first_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/fixtures/classes.rb</a></td><td class='right'>525</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/fixtures/encoded_strings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/fixtures/encoded_strings.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/flatten_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/flatten_spec.rb</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/frozen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/frozen_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/hash_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/include_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/initialize_spec.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/insert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/insert_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/intersection_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/intersection_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/join_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/keep_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/keep_if_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/last_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/last_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/map_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/max_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/max_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/min_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/min_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/minus_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/multiply_spec.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/new_spec.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/a_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/at_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/b_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/b_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/buffer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/buffer_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/c_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/comment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/comment_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/d_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/d_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/e_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/empty_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/f_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/g_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/g_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/h_spec.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/i_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/j_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/j_spec.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/l_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/l_spec.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/m_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/m_spec.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/n_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/n_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/p_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/p_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/percent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/percent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/q_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/q_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/s_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/basic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/basic.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/encodings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/encodings.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/float.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/float.rb</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/integer.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/numeric_basic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/numeric_basic.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/string.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/unicode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/shared/unicode.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/u_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/u_spec.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/v_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/v_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/w_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/w_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/x_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/x_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pack/z_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pack/z_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/partition_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/partition_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/permutation_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/permutation_spec.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/plus_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/pop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/pop_spec.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/prepend_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/prepend_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/product_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/product_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/push_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/push_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/rassoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/rassoc_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/reject_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/repeated_combination_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/repeated_combination_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/repeated_permutation_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/repeated_permutation_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/replace_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/reverse_each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/reverse_each_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/reverse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/reverse_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/rindex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/rindex_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/rotate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/rotate_spec.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/sample_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/sample_spec.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/select_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/clone.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/clone.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/collect.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/delete_if.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/delete_if.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/enumeratorize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/enumeratorize.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/eql.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/index.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/inspect.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/join.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/join.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/keep_if.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/keep_if.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/length.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/push.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/push.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/replace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/replace.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/slice.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/slice.rb</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/unshift.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shared/unshift.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shift_spec.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shuffle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/shuffle_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/slice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/slice_spec.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/sort_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/sort_by_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/sort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/sort_spec.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/sum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/sum_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/take_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/take_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/take_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/take_while_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/to_a_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/to_ary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/to_ary_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/to_h_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/transpose_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/transpose_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/try_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/try_convert_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/union_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/union_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/uniq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/uniq_spec.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/unshift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/unshift_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/values_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/values_at_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/zip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/array/zip_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/__id__spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/__id__spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/__send___spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/__send___spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/basicobject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/basicobject_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/equal_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/equal_value_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/fixtures/classes.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/fixtures/common.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/fixtures/remove_method_missing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/fixtures/remove_method_missing.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/fixtures/singleton_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/fixtures/singleton_method.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/initialize_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/instance_eval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/instance_eval_spec.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/instance_exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/instance_exec_spec.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/method_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/method_missing_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/not_equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/not_equal_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/not_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/not_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/singleton_method_added_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/singleton_method_added_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/singleton_method_removed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/singleton_method_removed_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/basicobject/singleton_method_undefined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/basicobject/singleton_method_undefined_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/abs_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/bignum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/bignum_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/bit_and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/bit_and_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/bit_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/bit_length_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/bit_or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/bit_or_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/bit_xor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/bit_xor_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/case_compare_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/coerce_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/comparison_spec.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/complement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/complement_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/div_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/div_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/divide_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/divmod_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/element_reference_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/eql_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/even_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/even_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/exponent_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/fdiv_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/gt_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/gte_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/hash_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/left_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/left_shift_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/lt_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/lte_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/magnitude_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/minus_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/modulo_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/multiply_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/odd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/odd_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/plus_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/remainder_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/remainder_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/right_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/right_shift_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/shared/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/shared/abs.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/shared/divide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/shared/divide.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/shared/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/shared/equal.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/shared/modulo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/shared/modulo.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/size_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/to_f_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/to_s_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/bignum/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/bignum/uminus_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/clone_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/dup_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/eval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/eval_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/fixtures/classes.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/local_variable_defined_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/local_variable_get_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/local_variable_set_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/local_variables_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/location_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/location_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/receiver_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/receiver_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/shared/clone.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/binding/shared/clone.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/builtin_constants/builtin_constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/builtin_constants/builtin_constants_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/allocate_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/dup_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/fixtures/classes.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/inherited_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/inherited_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/initialize_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/new_spec.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/superclass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/superclass_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/class/to_s_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/between_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/between_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/clamp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/clamp_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/equal_value_spec.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/fixtures/classes.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/gt_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/gte_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/lt_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/comparable/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/comparable/lte_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/abs2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/abs2_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/abs_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/angle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/angle_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/arg_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/arg_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/coerce_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/conj_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/conj_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/conjugate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/conjugate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/constants_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/denominator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/denominator_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/divide_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/eql_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/equal_value_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/exponent_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/fdiv_spec.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/finite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/finite_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/imag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/imag_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/imaginary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/imaginary_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/infinite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/infinite_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/inspect_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/integer_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/magnitude_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/marshal_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/marshal_dump_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/minus_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/multiply_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/negative_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/negative_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/numerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/numerator_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/phase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/phase_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/plus_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/polar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/polar_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/positive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/positive_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/quo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/quo_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/rationalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/rationalize_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/real_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/rect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/rect_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/rectangular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/rectangular_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/to_f_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/to_i_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/to_r_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/to_s_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/complex/uminus_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/chdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/chdir_spec.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/children_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/children_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/chroot_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/chroot_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/close_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/delete_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/dir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/dir_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/each_child_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/each_child_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/each_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/element_reference_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/empty_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/entries_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/entries_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/exist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/exist_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/exists_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/exists_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/fileno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/fileno_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/fixtures/common.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/foreach_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/foreach_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/getwd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/getwd_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/glob_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/glob_spec.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/home_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/home_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/initialize_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/inspect_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/mkdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/mkdir_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/open_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/path_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/pos_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/pwd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/pwd_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/read_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/rewind_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/rmdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/rmdir_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/seek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/seek_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/chroot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/chroot.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/closed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/closed.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/delete.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/delete.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/exist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/exist.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/glob.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/glob.rb</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/open.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/open.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/path.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/path.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/pos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/pos.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/pwd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/shared/pwd.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/tell_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/to_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/to_path_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/dir/unlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/dir/unlink_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/_dump_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/_load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/_load_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/aliases_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/aliases_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/ascii_compatible_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/ascii_compatible_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/compatible_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/compatible_spec.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/asciicompat_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/asciicompat_encoding_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/constants_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/convert_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/convpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/convpath_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/destination_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/destination_encoding_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/finish_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/finish_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/insert_output_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/insert_output_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/inspect_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/last_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/last_error_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/new_spec.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/primitive_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/primitive_convert_spec.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/primitive_errinfo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/primitive_errinfo_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/putback_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/putback_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/replacement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/replacement_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/search_convpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/search_convpath_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/source_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/converter/source_encoding_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/default_external_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/default_external_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/default_internal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/default_internal_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/dummy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/dummy_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/find_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/find_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/fixtures/classes.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/inspect_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/list_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/locale_charmap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/locale_charmap_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/name_list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/name_list_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/name_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/names_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/names_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/replicate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/replicate_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/shared/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/shared/name.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/error_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/undefined_conversion_error/error_char_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/source_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/encoding/undefined_conversion_error/source_encoding_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/all_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/all_spec.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/any_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/any_spec.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/chunk_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/chunk_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/chunk_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/chunk_while_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/collect_concat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/collect_concat_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/collect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/count_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/count_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/cycle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/cycle_spec.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/detect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/detect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/drop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/drop_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/drop_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/drop_while_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_cons_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/each_cons_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_entry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/each_entry_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_slice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/each_slice_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_with_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/each_with_index_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_with_object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/each_with_object_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/entries_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/entries_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/find_all_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/find_all_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/find_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/find_index_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/find_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/find_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/first_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/first_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/fixtures/classes.rb</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/flat_map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/flat_map_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/grep_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/grep_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/grep_v_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/grep_v_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/group_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/group_by_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/include_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/inject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/inject_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/lazy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/lazy_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/map_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/max_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/max_by_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/max_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/max_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/member_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/min_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/min_by_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/min_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/min_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/minmax_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/minmax_by_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/minmax_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/minmax_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/none_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/none_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/one_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/one_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/partition_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/partition_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/reduce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/reduce_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/reject_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/reverse_each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/reverse_each_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/select_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/collect.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/collect_concat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/collect_concat.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/entries.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/entries.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/enumerable_enumeratorized.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/enumerable_enumeratorized.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/enumeratorized.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/enumeratorized.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/find.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/find.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/find_all.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/find_all.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/include.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/inject.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/inject.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/take.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/shared/take.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_after_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/slice_after_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_before_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/slice_before_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_when_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/slice_when_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/sort_by_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/sort_by_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/sort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/sort_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/sum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/sum_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/take_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/take_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/take_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/take_while_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/to_a_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/to_h_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/uniq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/uniq_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/zip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerable/zip_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/each_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/each_with_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/each_with_index_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/each_with_object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/each_with_object_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/enum_for_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/enum_for_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/enumerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/enumerator_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/feed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/feed_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/first_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/first_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/fixtures/common.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/generator/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/generator/each_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/generator/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/generator/initialize_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/initialize_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/inject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/inject_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/inspect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/collect_concat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/collect_concat_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/collect_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/drop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/drop_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/drop_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/drop_while_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/enum_for_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/enum_for_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/find_all_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/find_all_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/fixtures/classes.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/flat_map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/flat_map_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/force_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/force_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/grep_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/grep_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/grep_v_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/grep_v_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/initialize_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/lazy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/lazy_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/map_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/reject_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/select_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/shared/collect.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/shared/collect_concat.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/select.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/shared/select.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/to_enum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/shared/to_enum.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/take_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/take_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/take_while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/take_while_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/to_enum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/to_enum_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/uniq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/uniq_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/zip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/lazy/zip_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/next_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/next_values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/next_values_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/peek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/peek_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/peek_values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/peek_values_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/rewind_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/size_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/to_enum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/to_enum_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/with_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/with_index_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/with_object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/with_object_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/yielder/append_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/yielder/initialize_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/yield_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/enumerator/yielder/yield_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/assoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/assoc_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/clear_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/delete_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/delete_if_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/delete_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/each_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/each_key_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/each_pair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/each_pair_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/each_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/each_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/each_value_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/element_reference_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/element_set_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/empty_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/fetch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/fetch_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/has_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/has_key_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/has_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/has_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/include_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/indexes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/indexes_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/indices_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/indices_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/inspect_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/invert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/invert_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/keep_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/keep_if_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/key_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/keys_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/keys_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/length_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/member_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/rassoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/rassoc_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/rehash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/rehash_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/reject_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/replace_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/select_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/each.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/include.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/key.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/key.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/length.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/store.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/to_hash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/to_hash.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shared/value.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/shift_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/store_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/store_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/to_a_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/to_h_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/to_hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/to_hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/update_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/values_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/values_at_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/env/values_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/args_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/args_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/arguments_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/arguments_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/backtrace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/backtrace_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/case_compare_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/cause_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/cause_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/destination_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/destination_encoding_name_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/destination_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/destination_encoding_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/equal_value_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/errno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/errno_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/error_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/error_bytes_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/error_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/error_char_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/exception_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/exit_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/exit_value_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/fixtures/common.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/incomplete_input_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/incomplete_input_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/initialize_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/inspect_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/interrupt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/interrupt_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/io_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/io_error_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/load_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/load_error_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/message_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/message_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/name_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/name_error_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/name_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/new_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/no_method_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/no_method_error_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/range_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/range_error_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/readagain_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/readagain_bytes_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/reason_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/reason_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/receiver_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/receiver_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/result_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/result_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/script_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/script_error_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/set_backtrace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/set_backtrace_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/shared/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/shared/new.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/signal_exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/signal_exception_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/signm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/signm_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/signo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/signo_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/source_encoding_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/source_encoding_name_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/source_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/source_encoding_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/standard_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/standard_error_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/status_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/status_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/success_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/success_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/system_call_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/system_call_error_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/system_stack_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/system_stack_error_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/to_s_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/uncaught_throw_error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/exception/uncaught_throw_error_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/and_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/dup_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/falseclass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/falseclass_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/or_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/xor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/false/xor_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fiber/new_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/resume_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fiber/resume_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/yield_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fiber/yield_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/absolute_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/absolute_path_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/atime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/atime_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/basename_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/basename_spec.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/birthtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/birthtime_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/blockdev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/blockdev_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/chardev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/chardev_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/chmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/chmod_spec.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/chown_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/chown_spec.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/constants/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/constants/constants_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/constants_spec.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/ctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/ctime_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/delete_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/directory_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/directory_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/dirname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/dirname_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/empty_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/executable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/executable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/executable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/executable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/exist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/exist_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/exists_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/exists_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/expand_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/expand_path_spec.rb</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/extname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/extname_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/file_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/fixtures/common.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/fixtures/do_not_remove?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/fixtures/do_not_remove</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/fixtures/file_types.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/fixtures/file_types.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/flock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/flock_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/fnmatch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/fnmatch_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/ftype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/ftype_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/grpowned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/grpowned_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/identical_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/identical_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/initialize_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/inspect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/join_spec.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/lchmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/lchmod_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/lchown_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/lchown_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/link_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/link_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/lstat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/lstat_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/mkfifo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/mkfifo_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/mtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/mtime_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/new_spec.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/null_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/null_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/open_spec.rb</a></td><td class='right'>678</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/owned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/owned_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/path_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/pipe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/pipe_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/printf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/printf_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/read_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/readable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/readable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/readable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/readlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/readlink_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/realdirpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/realdirpath_spec.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/realpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/realpath_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/rename_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/rename_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/reopen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/reopen_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/setgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/setgid_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/setuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/setuid_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/shared/fnmatch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/shared/fnmatch.rb</a></td><td class='right'>241</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/shared/open.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/shared/open.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/shared/read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/shared/read.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/shared/stat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/shared/stat.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/shared/unlink.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/shared/unlink.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/size_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/socket_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/socket_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/split_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/split_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/atime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/atime_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/birthtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/birthtime_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/blksize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/blksize_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/blockdev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/blockdev_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/blocks_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/blocks_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/chardev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/chardev_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/comparison_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/ctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/ctime_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/dev_major_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/dev_major_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/dev_minor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/dev_minor_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/dev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/dev_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/directory_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/directory_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/executable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/executable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/executable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/executable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/file_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/fixtures/classes.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/ftype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/ftype_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/gid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/gid_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/grpowned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/grpowned_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/ino_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/ino_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/inspect_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/mode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/mode_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/mtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/mtime_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/new_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/nlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/nlink_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/owned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/owned_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/pipe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/pipe_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/rdev_major_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/rdev_major_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/rdev_minor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/rdev_minor_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/rdev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/rdev_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/readable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/readable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/readable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/setgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/setgid_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/setuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/setuid_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/size_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/socket_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/socket_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/sticky_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/sticky_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/symlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/symlink_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/uid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/uid_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/world_readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/world_readable_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/world_writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/world_writable_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/writable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/writable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/writable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat/zero_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/stat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/stat_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/sticky_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/sticky_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/symlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/symlink_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/to_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/to_path_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/truncate_spec.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/umask_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/umask_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/unlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/unlink_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/utime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/utime_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/world_readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/world_readable_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/world_writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/world_writable_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/writable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/writable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/writable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/file/zero_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/blockdev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/blockdev_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/chardev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/chardev_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/directory_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/directory_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/executable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/executable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/executable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/executable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/exist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/exist_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/exists_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/exists_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/file_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/grpowned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/grpowned_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/identical_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/identical_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/owned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/owned_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/pipe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/pipe_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/readable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/readable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/readable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/setgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/setgid_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/setuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/setuid_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/size_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/socket_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/socket_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/sticky_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/sticky_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/symlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/symlink_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/world_readable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/world_readable_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/world_writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/world_writable_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/writable_real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/writable_real_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/writable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/writable_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/filetest/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/filetest/zero_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/abs_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/bit_and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/bit_and_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/bit_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/bit_length_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/bit_or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/bit_or_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/bit_xor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/bit_xor_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/case_compare_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/coerce_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/comparison_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/complement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/complement_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/div_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/div_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/divide_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/divmod_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/element_reference_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/even_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/even_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/exponent_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/fdiv_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/fixnum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/fixnum_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/gt_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/gte_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/hash_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/left_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/left_shift_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/lt_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/lte_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/magnitude_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/minus_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/modulo_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/multiply_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/odd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/odd_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/plus_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/right_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/right_shift_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/shared/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/shared/abs.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/shared/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/shared/equal.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/shared/modulo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/shared/modulo.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/size_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/succ_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/to_f_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/to_s_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/uminus_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fixnum/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/fixnum/zero_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/abs_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/angle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/angle_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/arg_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/arg_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/case_compare_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/ceil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/ceil_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/coerce_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/comparison_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/constants_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/denominator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/denominator_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/divide_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/divmod_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/dup_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/eql_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/exponent_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/fdiv_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/finite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/finite_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/fixtures/coerce.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/fixtures/coerce.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/float_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/floor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/floor_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/gt_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/gte_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/hash_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/infinite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/infinite_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/lt_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/lte_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/magnitude_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/minus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/modulo_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/multiply_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/nan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/nan_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/next_float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/next_float_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/numerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/numerator_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/phase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/phase_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/plus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/prev_float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/prev_float_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/quo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/quo_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/rationalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/rationalize_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/round_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/shared/abs.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/shared/equal.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/modulo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/shared/modulo.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/quo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/shared/quo.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/to_i.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/shared/to_i.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/to_f_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/to_i_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/to_int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/to_int_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/to_r_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/to_s_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/truncate_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/uminus_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/uplus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/uplus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/float/zero_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/count_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/count_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/disable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/disable_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/enable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/enable_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/garbage_collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/garbage_collect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/clear_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/disable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/disable_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/enable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/enable_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/enabled_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/enabled_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/report_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/report_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/result_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/result_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/total_time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/profiler/total_time_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/start_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/stress_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/gc/stress_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/allocate_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/any_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/any_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/assoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/assoc_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/clear_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/clone_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/compact_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/compact_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/compare_by_identity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/compare_by_identity_spec.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/constructor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/constructor_spec.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/default_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/default_proc_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/default_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/default_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/delete_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/delete_if_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/delete_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/dig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/dig_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/each_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/each_key_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/each_pair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/each_pair_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/each_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/each_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/each_value_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/element_reference_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/element_set_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/empty_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/eql_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/equal_value_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/fetch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/fetch_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/fetch_values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/fetch_values_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/fixtures/classes.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/flatten_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/flatten_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/gt_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/gte_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/has_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/has_key_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/has_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/has_value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/hash_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/include_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/index_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/initialize_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/invert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/invert_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/keep_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/keep_if_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/key_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/keys_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/keys_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/lt_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/lte_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/member_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/merge_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/new_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/rassoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/rassoc_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/rehash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/rehash_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/reject_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/replace_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/select_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/comparison.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/comparison.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/each.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/eql.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/equal.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/greater_than.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/greater_than.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/index.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/iteration.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/iteration.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/key.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/key.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/length.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/less_than.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/less_than.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/replace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/replace.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/store.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/to_s.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/update.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/value.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/values_at.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shared/values_at.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/shift_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/slice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/slice_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/sort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/sort_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/store_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/store_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/to_a_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/to_h_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/to_hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/to_hash_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/to_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/to_proc_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/transform_keys_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/transform_keys_spec.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/transform_values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/transform_values_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/try_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/try_convert_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/values_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/values_at_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/hash/values_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/allbits_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/allbits_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/anybits_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/anybits_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/ceil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/ceil_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/chr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/chr_spec.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/denominator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/denominator_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/digits_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/digits_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/downto_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/downto_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/dup_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/even_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/even_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/floor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/floor_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/gcd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/gcd_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/gcdlcm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/gcdlcm_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/integer_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/lcm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/lcm_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/next_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/nobits_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/nobits_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/numerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/numerator_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/odd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/odd_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/ord_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/ord_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/pred_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/pred_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/rationalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/rationalize_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/round_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/integer_rounding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/shared/integer_rounding.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/next.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/shared/next.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/to_i.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/shared/to_i.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/sqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/sqrt_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/succ_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/times_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/times_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/to_i_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/to_int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/to_int_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/to_r_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/truncate_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/upto_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/integer/upto_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/advise_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/advise_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/binmode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/binmode_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/binread_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/binread_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/binwrite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/binwrite_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/bytes_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/chars_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/chars_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/close_on_exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/close_on_exec_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/close_read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/close_read_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/close_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/close_write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/close_write_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/closed_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/codepoints_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/codepoints_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/constants_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/copy_stream_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/copy_stream_spec.rb</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/dup_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/each_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/each_byte_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/each_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/each_char_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/each_codepoint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/each_codepoint_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/each_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/each_line_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/each_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/eof_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/eof_spec.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/external_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/external_encoding_spec.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fcntl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fcntl_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fdatasync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fdatasync_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fileno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fileno_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/bom_UTF-16BE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/bom_UTF-16BE.txt</a></td><td class='right'>bin</td><td class='graph'>0 -> 20 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/bom_UTF-16LE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/bom_UTF-16LE.txt</a></td><td class='right'>bin</td><td class='graph'>0 -> 20 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/bom_UTF-32BE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/bom_UTF-32BE.txt</a></td><td class='right'>bin</td><td class='graph'>0 -> 40 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/bom_UTF-32LE.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/bom_UTF-32LE.txt</a></td><td class='right'>bin</td><td class='graph'>0 -> 40 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/bom_UTF-8.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/bom_UTF-8.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/classes.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/copy_stream.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/copy_stream.txt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/empty.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/empty.txt</a> (renamed from test/wsdl/qualified/lp.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/incomplete.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/incomplete.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/lines.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/lines.txt</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/no_bom_UTF-8.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/no_bom_UTF-8.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/numbered_lines.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/numbered_lines.txt</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/one_byte.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/one_byte.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/read_binary.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/read_binary.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/read_euc_jp.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/read_euc_jp.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/read_text.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/read_text.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/reopen_stdout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fixtures/reopen_stdout.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/flush_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/flush_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/for_fd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/for_fd_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/foreach_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/foreach_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fsync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/fsync_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/getbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/getbyte_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/getc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/getc_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/gets_spec.rb</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/initialize_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/inspect_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/internal_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/internal_encoding_spec.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/io_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/ioctl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/ioctl_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/isatty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/isatty_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/lineno_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/lines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/lines_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/new_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/open_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/output_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/output_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/pid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/pid_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/pipe_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/pipe_spec.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/popen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/popen_spec.rb</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/pos_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/print_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/printf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/printf_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/putc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/putc_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/puts_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/puts_spec.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/read_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/read_nonblock_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/read_spec.rb</a></td><td class='right'>616</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/readbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/readbyte_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/readchar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/readchar_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/readline_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/readlines_spec.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/readpartial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/readpartial_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/reopen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/reopen_spec.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/rewind_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/seek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/seek_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/select_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/set_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/set_encoding_spec.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/binwrite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/binwrite.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/chars.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/chars.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/codepoints.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/codepoints.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/each.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/gets_ascii.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/gets_ascii.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/new.rb</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/pos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/pos.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/readlines.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/readlines.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/tty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/tty.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/shared/write.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/shared/write.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/stat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/stat_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/sync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/sync_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/sysopen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/sysopen_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/sysread_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/sysread_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/sysseek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/sysseek_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/syswrite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/syswrite_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/tell_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/to_i_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/to_io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/to_io_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/try_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/try_convert_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/tty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/tty_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/ungetbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/ungetbyte_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/ungetc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/ungetc_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/write_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/write_nonblock_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/io/write_spec.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Array_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Array_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Complex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Complex_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Float_spec.rb</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Hash_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Integer_spec.rb</a></td><td class='right'>697</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/Rational_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/Rational_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/String_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/String_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/__callee___spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/__callee___spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/__dir___spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/__dir___spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/__method___spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/__method___spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/abort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/abort_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/at_exit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/at_exit_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/autoload_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/autoload_spec.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/backtick_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/backtick_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/binding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/binding_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/block_given_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/block_given_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/caller_locations_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/caller_locations_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/caller_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/caller_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/case_compare_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/catch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/catch_spec.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/chomp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/chomp_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/chop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/chop_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/class_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/clone_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/comparison_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/define_singleton_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/define_singleton_method_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/display_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/display_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/dup_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/enum_for_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/enum_for_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/eql_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/equal_value_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/eval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/eval_spec.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/exec_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/exit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/exit_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/extend_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/extend_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fail_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fail_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/__callee__.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/__callee__.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/__method__.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/__method__.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/autoload_b.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/autoload_b.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/autoload_c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/autoload_c.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/autoload_d.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/autoload_d.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/autoload_frozen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/autoload_frozen.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/caller.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/caller.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/caller_locations.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/caller_locations.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/chomp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/chomp.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/chomp_f.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/chomp_f.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/chop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/chop.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/chop_f.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/chop_f.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/classes.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/eval_locals.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/eval_locals.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/eval_return_with_lambda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/eval_return_with_lambda.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/eval_return_without_lambda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/eval_return_without_lambda.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fixtures/test.rb</a></td><td class='right'>362</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fork_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/fork_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/format_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/format_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/freeze_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/freeze_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/frozen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/frozen_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/gets_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/global_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/global_variables_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/gsub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/gsub_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/inspect_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_of_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/instance_of_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/instance_variable_defined_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/instance_variable_get_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/instance_variable_set_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/instance_variables_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/is_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/is_a_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/iterator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/iterator_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/itself_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/itself_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/kind_of_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/kind_of_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/lambda_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/lambda_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/load_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/local_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/local_variables_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/loop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/loop_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/match_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/method_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/methods_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/nil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/nil_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/not_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/not_match_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/object_id_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/object_id_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/open_spec.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/p_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/p_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/print_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/printf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/printf_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/private_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/private_methods_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/proc_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/protected_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/protected_methods_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/public_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/public_method_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/public_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/public_methods_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/public_send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/public_send_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/putc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/putc_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/puts_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/puts_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/raise_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/raise_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/rand_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/rand_spec.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/readline_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/readlines_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/remove_instance_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/remove_instance_variable_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/require_relative_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/require_relative_spec.rb</a></td><td class='right'>349</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/require_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/require_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/respond_to_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/respond_to_missing_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/respond_to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/respond_to_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/select_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/send_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/set_trace_func_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/set_trace_func_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/dup_clone.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/dup_clone.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/kind_of.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/kind_of.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/lambda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/lambda.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/load.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/method.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/require.rb</a></td><td class='right'>703</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/sprintf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/sprintf.rb</a></td><td class='right'>871</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/sprintf_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/shared/sprintf_encoding.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/singleton_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/singleton_class_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/singleton_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/singleton_method_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/singleton_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/singleton_methods_spec.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/sleep_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/sleep_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/spawn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/spawn_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/sprintf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/sprintf_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/srand_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/srand_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/sub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/sub_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/syscall_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/syscall_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/system_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/system_spec.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/taint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/taint_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/tainted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/tainted_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/tap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/tap_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/test_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/test_spec.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/throw_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/throw_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/to_enum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/to_enum_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/to_s_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/trace_var_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/trace_var_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/trap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/trap_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/trust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/trust_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/untaint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/untaint_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/untrace_var_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/untrace_var_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/untrust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/untrust_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/untrusted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/untrusted_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/warn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/warn_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/yield_self_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/kernel/yield_self_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/define_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/define_method_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/fixtures/classes.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/string_refinement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/fixtures/string_refinement.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/string_refinement_user.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/fixtures/string_refinement_user.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/wrapped_include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/fixtures/wrapped_include.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/include_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/private_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/private_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/public_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/public_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/using_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/main/using_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/dump_spec.rb</a></td><td class='right'>582</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/fixtures/marshal_data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/fixtures/marshal_data.rb</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/fixtures/random.dump?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/fixtures/random.dump</a></td><td class='right'>bin</td><td class='graph'>0 -> 2520 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/float_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/load_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/major_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/major_version_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/minor_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/minor_version_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/restore_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/restore_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/shared/load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/marshal/shared/load.rb</a></td><td class='right'>830</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/begin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/begin_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/captures_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/captures_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/element_reference_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/end_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/end_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/hash_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/inspect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/length_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/named_captures_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/named_captures_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/names_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/names_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/offset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/offset_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/post_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/post_match_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/pre_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/pre_match_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/regexp_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/shared/eql.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/shared/length.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/string_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/to_a_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/values_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/matchdata/values_at_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/acos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/acos_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/acosh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/acosh_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/asin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/asin_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/asinh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/asinh_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/atan2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/atan2_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/atan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/atan_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/atanh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/atanh_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/cbrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/cbrt_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/constants_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/cos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/cos_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/cosh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/cosh_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/erf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/erf_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/erfc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/erfc_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/exp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/exp_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/fixtures/classes.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/frexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/frexp_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/gamma_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/gamma_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/hypot_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/hypot_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/ldexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/ldexp_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/lgamma_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/lgamma_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/log10_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/log10_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/log2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/log2_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/log_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/log_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/sin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/sin_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/sinh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/sinh_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/sqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/sqrt_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/tan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/tan_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/math/tanh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/math/tanh_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/arity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/arity_spec.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/call_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/call_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/clone_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/curry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/curry_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/element_reference_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/fixtures/classes.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/hash_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/name_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/owner_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/owner_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/parameters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/parameters_spec.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/receiver_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/receiver_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/shared/call.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/shared/call.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/shared/eql.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/shared/to_s.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/source_location_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/source_location_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/super_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/super_method_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/to_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/to_proc_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/unbind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/method/unbind_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/alias_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/alias_method_spec.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/allocate_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/ancestors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/ancestors_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/append_features_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/append_features_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/attr_accessor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/attr_accessor_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/attr_reader_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/attr_reader_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/attr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/attr_spec.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/attr_writer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/attr_writer_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/autoload_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/autoload_spec.rb</a></td><td class='right'>508</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/case_compare_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_eval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_eval_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_exec_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_variable_defined_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_variable_get_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_variable_set_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/class_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/class_variables_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/comparison_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/const_defined_spec.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/const_get_spec.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/const_missing_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/const_set_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/constants_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/define_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/define_method_spec.rb</a></td><td class='right'>633</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/define_singleton_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/define_singleton_method_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/deprecate_constant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/deprecate_constant_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/eql_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/equal_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/equal_value_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/extend_object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/extend_object_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/extended_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/extended_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_abc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_abc.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_c.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_concur.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_concur.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_d.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_d.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_e.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_e.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_empty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_empty.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_ex1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_ex1.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_f.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_f.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_g.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_g.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_h.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_h.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_i.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_i.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_j.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_j.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_k.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_k.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_lm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_lm.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_never_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_never_set.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_o.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_o.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_r.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_r.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_s.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_scope.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_scope.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_subclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_subclass.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_t.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_t.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_v.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_v.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_w.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_w.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_w2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_w2.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_x.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_x.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_z.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/autoload_z.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/classes.rb</a></td><td class='right'>605</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/constant_unicode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/constant_unicode.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/module.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/name.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/path1/load_path.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/path1/load_path.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/path2/load_path.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/path2/load_path.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/refine.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/refine.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/repeated_concurrent_autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/fixtures/repeated_concurrent_autoload.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/freeze_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/freeze_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/gt_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/gte_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/include_spec.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/included_modules_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/included_modules_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/included_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/included_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/initialize_copy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/initialize_copy_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/initialize_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/instance_method_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/instance_methods_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/lt_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/lte_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/method_added_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/method_added_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/method_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/method_defined_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/method_removed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/method_removed_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/method_undefined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/method_undefined_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/module_eval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/module_eval_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/module_exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/module_exec_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/module_function_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/module_function_spec.rb</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/name_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/nesting_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/nesting_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/new_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/prepend_features_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/prepend_features_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/prepend_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/prepend_spec.rb</a></td><td class='right'>361</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/prepended_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/prepended_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/private_class_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/private_class_method_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/private_constant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/private_constant_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/private_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/private_instance_methods_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/private_method_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/private_method_defined_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/private_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/private_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/protected_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/protected_instance_methods_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/protected_method_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/protected_method_defined_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/protected_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/protected_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_class_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_class_method_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_constant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_constant_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_instance_method_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_instance_methods_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_method_defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_method_defined_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/public_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/public_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/refine_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/refine_spec.rb</a></td><td class='right'>657</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/remove_class_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/remove_class_variable_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/remove_const_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/remove_const_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/remove_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/remove_method_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/shared/class_eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/shared/class_eval.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/shared/class_exec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/shared/class_exec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/shared/equal_value.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/shared/set_visibility.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/shared/set_visibility.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/singleton_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/singleton_class_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/to_s_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/undef_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/undef_method_spec.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/using_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/module/using_spec.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/lock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/lock_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/locked_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/locked_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/owned_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/owned_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/sleep_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/sleep_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/synchronize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/synchronize_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/try_lock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/try_lock_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/mutex/unlock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/mutex/unlock_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/and_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/dup_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/nil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/nil_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/nilclass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/nilclass_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/or_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/rationalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/rationalize_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_a_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_c_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_f_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_h_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_i_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_r_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/xor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/nil/xor_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/abs2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/abs2_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/abs_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/angle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/angle_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/arg_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/arg_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/ceil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/ceil_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/coerce_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/comparison_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/conj_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/conj_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/conjugate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/conjugate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/denominator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/denominator_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/div_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/div_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/divmod_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/eql_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/fdiv_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/finite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/finite_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/fixtures/classes.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/floor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/floor_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/i_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/imag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/imag_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/imaginary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/imaginary_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/infinite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/infinite_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/integer_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/magnitude_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/modulo_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/negative_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/negative_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/nonzero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/nonzero_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/numerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/numerator_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/numeric_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/numeric_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/phase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/phase_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/polar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/polar_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/positive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/positive_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/quo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/quo_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/real_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/rect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/rect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/rectangular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/rectangular_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/remainder_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/remainder_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/round_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/shared/abs.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/quo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/shared/quo.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/rect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/shared/rect.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/step.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/shared/step.rb</a></td><td class='right'>425</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/singleton_method_added_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/singleton_method_added_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/step_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/step_spec.rb</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/to_c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/to_c_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/to_int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/to_int_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/truncate_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/uminus_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/uplus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/uplus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/numeric/zero_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/_id2ref_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/_id2ref_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/add_finalizer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/add_finalizer_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/call_finalizer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/call_finalizer_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/count_objects_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/count_objects_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/define_finalizer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/define_finalizer_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/each_object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/each_object_spec.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/finalizers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/finalizers_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/fixtures/classes.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/garbage_collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/garbage_collect_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/remove_finalizer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/remove_finalizer_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/undefine_finalizer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/objectspace/undefine_finalizer_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/allocate_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/arity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/arity_spec.rb</a></td><td class='right'>640</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/binding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/binding_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/block_pass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/block_pass_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/call_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/call_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/case_compare_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/clone_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/curry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/curry_spec.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/dup_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/element_reference_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/fixtures/common.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/fixtures/source_location.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/fixtures/source_location.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/hash_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/lambda_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/lambda_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/new_spec.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/parameters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/parameters_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/call.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/shared/call.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/call_arguments.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/shared/call_arguments.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/dup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/shared/dup.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/shared/equal.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/shared/to_s.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/source_location_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/source_location_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/to_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/to_proc_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/yield_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/proc/yield_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/abort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/abort_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/constants_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/daemon_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/daemon_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/detach_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/detach_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/egid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/egid_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/euid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/euid_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/exec_spec.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/exit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/exit_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fixtures/common.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/daemon.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fixtures/daemon.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/kill.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fixtures/kill.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/map_fd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fixtures/map_fd.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/setpriority.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fixtures/setpriority.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fork_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/fork_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/getpgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/getpgid_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/getpgrp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/getpgrp_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/getpriority_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/getpriority_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/getrlimit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/getrlimit_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/change_privilege_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/change_privilege_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/eid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/eid_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/grant_privilege_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/grant_privilege_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/re_exchange_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/re_exchange_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/re_exchangeable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/re_exchangeable_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/rid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/rid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/sid_available_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/sid_available_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid/switch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid/switch_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/gid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/gid_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/groups_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/groups_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/initgroups_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/initgroups_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/kill_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/kill_spec.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/maxgroups_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/maxgroups_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/pid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/pid_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/ppid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/ppid_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/set_proctitle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/set_proctitle_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/setpgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/setpgid_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/setpgrp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/setpgrp_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/setpriority_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/setpriority_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/setrlimit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/setrlimit_spec.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/setsid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/setsid_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/spawn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/spawn_spec.rb</a></td><td class='right'>636</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/bit_and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/bit_and_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/coredump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/coredump_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/equal_value_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/exited_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/exited_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/exitstatus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/exitstatus_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/inspect_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/pid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/pid_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/right_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/right_shift_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/signaled_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/signaled_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/stopped_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/stopped_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/stopsig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/stopsig_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/success_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/success_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/termsig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/termsig_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/to_i_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/to_int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/to_int_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/status/to_s_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/getegid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/getegid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/geteuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/geteuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/getgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/getgid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/getuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/getuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/issetugid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/issetugid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setegid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setegid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/seteuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/seteuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setgid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setregid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setregid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setresgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setresgid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setresuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setresuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setreuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setreuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setrgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setrgid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setruid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setruid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/sys/setuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/sys/setuid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/times_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/times_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/change_privilege_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/change_privilege_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/eid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/eid_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/grant_privilege_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/grant_privilege_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/re_exchange_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/re_exchange_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/re_exchangeable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/re_exchangeable_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/rid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/rid_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/sid_available_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/sid_available_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid/switch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid/switch_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/uid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/uid_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/wait2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/wait2_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/wait_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/wait_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/waitall_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/waitall_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/waitpid2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/waitpid2_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/waitpid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/process/waitpid_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/bytes_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/default_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/default_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/equal_value_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/new_seed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/new_seed_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/new_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/rand_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/rand_spec.rb</a></td><td class='right'>216</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/raw_seed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/raw_seed_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/seed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/seed_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/shared/urandom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/shared/urandom.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/srand_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/srand_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/urandom_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/random/urandom_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/begin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/begin_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/bsearch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/bsearch_spec.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/case_compare_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/cover_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/cover_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/dup_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/each_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/end_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/end_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/eql_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/equal_value_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/exclude_end_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/exclude_end_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/first_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/first_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/fixtures/classes.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/hash_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/include_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/initialize_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/inspect_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/last_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/last_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/max_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/max_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/member_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/min_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/min_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/new_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/range_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/range_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/begin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/begin.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/cover.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/cover.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/cover_and_include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/cover_and_include.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/end.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/end.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/equal_value.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/shared/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/shared/include.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/size_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/step_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/step_spec.rb</a></td><td class='right'>347</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/to_a_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/range/to_s_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/abs_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/ceil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/ceil_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/coerce_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/comparison_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/denominator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/denominator_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/div_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/div_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/divide_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/divmod_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/equal_value_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/exponent_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/fdiv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/fdiv_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/floor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/floor_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/hash_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/inspect_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/integer_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/magnitude_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/magnitude_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/marshal_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/marshal_dump_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/minus_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/modulo_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/multiply_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/numerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/numerator_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/plus_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/quo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/quo_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/rational_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/rational_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/rationalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/rationalize_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/remainder_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/remainder_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/round_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/to_f_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/to_i_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/to_r_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/to_s_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/truncate_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/rational/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/rational/zero_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/case_compare_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/casefold_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/casefold_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/compile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/compile_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/encoding_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/escape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/escape_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/fixed_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/fixed_encoding_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/hash_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/initialize_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/inspect_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/last_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/last_match_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/match_spec.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/named_captures_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/named_captures_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/names_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/names_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/new_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/options_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/options_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/quote_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/quote_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/shared/equal_value.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/new_ascii.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/shared/new_ascii.rb</a></td><td class='right'>464</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/new_ascii_8bit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/shared/new_ascii_8bit.rb</a></td><td class='right'>553</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/quote.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/shared/quote.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/source_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/source_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/to_s_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/try_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/try_convert_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/union_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/regexp/union_spec.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/signal/list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/signal/list_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/signal/signame_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/signal/signame_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/signal/trap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/signal/trap_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/allocate_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/append_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/ascii_only_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/ascii_only_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/b_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/b_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/bytes_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/bytesize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/bytesize_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/byteslice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/byteslice_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/capitalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/capitalize_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/case_compare_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/casecmp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/casecmp_spec.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/center_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/center_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/chars_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/chars_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/chomp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/chomp_spec.rb</a></td><td class='right'>387</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/chop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/chop_spec.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/chr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/chr_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/clear_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/clone_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/codepoints_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/codepoints_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/comparison_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/concat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/concat_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/count_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/count_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/crypt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/crypt_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/delete_prefix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/delete_prefix_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/delete_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/delete_suffix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/delete_suffix_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/downcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/downcase_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/dump_spec.rb</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/dup_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/each_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/each_byte_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/each_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/each_char_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/each_codepoint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/each_codepoint_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/each_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/each_line_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/element_reference_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/element_set_spec.rb</a></td><td class='right'>612</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/empty_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/encode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/encode_spec.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/encoding_spec.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/end_with_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/end_with_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/eql_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/equal_value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/fixtures/classes.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/freeze_magic_comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/fixtures/freeze_magic_comment.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/iso-8859-9-encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/fixtures/iso-8859-9-encoding.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/utf-8-encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/fixtures/utf-8-encoding.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/force_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/force_encoding_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/freeze_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/freeze_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/getbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/getbyte_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/gsub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/gsub_spec.rb</a></td><td class='right'>696</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/hash_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/hex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/hex_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/include_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/index_spec.rb</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/initialize_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/insert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/insert_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/inspect_spec.rb</a></td><td class='right'>492</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/intern_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/intern_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/lines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/lines_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/ljust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/ljust_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/lstrip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/lstrip_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/match_spec.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/modulo_spec.rb</a></td><td class='right'>789</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/multiply_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/new_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/next_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/oct_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/oct_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/ord_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/ord_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/partition_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/partition_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/percent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/percent_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/plus_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/prepend_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/prepend_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/replace_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/reverse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/reverse_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/rindex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/rindex_spec.rb</a></td><td class='right'>368</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/rjust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/rjust_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/rpartition_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/rpartition_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/rstrip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/rstrip_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/scan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/scan_spec.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/scrub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/scrub_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/setbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/setbyte_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/chars.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/chars.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/codepoints.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/codepoints.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/concat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/concat.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/each_char_without_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/each_char_without_block.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/each_codepoint_without_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/each_codepoint_without_block.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/each_line.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/each_line.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/each_line_without_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/each_line_without_block.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/encode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/encode.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/eql.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/equal_value.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/length.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/replace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/replace.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/slice.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/slice.rb</a></td><td class='right'>557</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/succ.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/succ.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/to_a.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/to_a.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/to_s.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/to_sym.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/shared/to_sym.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/slice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/slice_spec.rb</a></td><td class='right'>476</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/split_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/split_spec.rb</a></td><td class='right'>405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/squeeze_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/squeeze_spec.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/start_with_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/start_with_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/string_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/strip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/strip_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/sub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/sub_spec.rb</a></td><td class='right'>571</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/succ_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/sum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/sum_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/swapcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/swapcase_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_c_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_f_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_i_spec.rb</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_r_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_str_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_str_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/to_sym_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/to_sym_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/tr_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/tr_s_spec.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/tr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/tr_spec.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/try_convert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/try_convert_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/uminus_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unicode_normalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unicode_normalize_spec.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unicode_normalized_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unicode_normalized_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/a_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/at_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/b_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/b_spec.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/c_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/c_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/comment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/comment_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/d_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/d_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/e_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/f_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/g_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/g_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/h_spec.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/i_spec.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/j_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/j_spec.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/l_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/l_spec.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/m_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/m_spec.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/n_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/n_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/p_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/p_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/percent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/percent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/q_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/q_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/s_spec.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/basic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/shared/basic.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/float.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/shared/float.rb</a></td><td class='right'>271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/shared/integer.rb</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/shared/string.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/unicode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/shared/unicode.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/u_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/u_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/v_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/v_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/w_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/w_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/x_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/x_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/z_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack/z_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack1_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/unpack1_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/upcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/upcase_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/uplus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/uplus_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/upto_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/upto_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/valid_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/string/valid_encoding_spec.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/dig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/dig_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/dup_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/each_pair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/each_pair_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/each_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/element_reference_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/element_set_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/eql_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/equal_value_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/fixtures/classes.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/hash_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/initialize_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/inspect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/instance_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/instance_variables_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/members_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/members_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/new_spec.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/select_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/shared/accessor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/shared/accessor.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/shared/equal_value.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/shared/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/shared/inspect.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/size_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/struct_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/struct_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/cstime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/cstime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/cutime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/cutime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/element_reference_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/members_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/members_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/new_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/stime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/stime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/tms/utime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/tms/utime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/to_a_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/to_h_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/to_s_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/values_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/values_at_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/values_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/struct/values_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/all_symbols_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/all_symbols_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/capitalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/capitalize_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/case_compare_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/casecmp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/casecmp_spec.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/comparison_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/downcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/downcase_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/dup_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/element_reference_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/empty_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/encoding_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/equal_value_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/fixtures/classes.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/id2name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/id2name_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/inspect_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/intern_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/intern_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/length_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/match_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/next_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/id2name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/shared/id2name.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/shared/length.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/slice.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/shared/slice.rb</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/succ.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/shared/succ.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/slice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/slice_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/succ_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/swapcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/swapcase_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/symbol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/symbol_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/to_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/to_proc_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/to_sym_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/to_sym_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/upcase_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/symbol/upcase_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/systemexit/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/systemexit/initialize_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/systemexit/success_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/systemexit/success_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/abort_on_exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/abort_on_exception_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/add_trace_func_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/add_trace_func_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/alive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/alive_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/allocate_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/base_label_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/base_label_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/fixtures/classes.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/main.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/fixtures/main.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/inspect_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/label_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/label_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/lineno_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/path_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace/location/to_s_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/backtrace_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/current_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/current_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/element_reference_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/element_set_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/exclusive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/exclusive_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/exit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/exit_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/fixtures/classes.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/fork_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/fork_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/group_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/group_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/initialize_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/inspect_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/join_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/key_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/keys_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/keys_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/kill_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/kill_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/list_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/main_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/main_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/name_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/new_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/pass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/pass_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/priority_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/priority_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/raise_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/raise_spec.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/report_on_exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/report_on_exception_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/run_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/run_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/set_trace_func_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/set_trace_func_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/exit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/shared/exit.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/start.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/shared/start.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/wakeup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/shared/wakeup.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/start_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/status_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/status_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/stop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/stop_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/terminate_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/thread_variable_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/thread_variable_get_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/thread_variable_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/thread_variable_set_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/thread_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/thread_variable_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/thread_variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/thread_variables_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/value_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/wakeup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/thread/wakeup_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/add_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/default_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/default_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/enclose_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/enclose_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/enclosed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/enclosed_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/threadgroup/list_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/_dump_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/_load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/_load_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/asctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/asctime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/at_spec.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/comparison_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/ctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/ctime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/day_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/day_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/dst_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/dst_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/dup_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/eql_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/fixtures/classes.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/friday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/friday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/getgm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/getgm_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/getlocal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/getlocal_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/getutc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/getutc_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/gm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/gm_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/gmt_offset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/gmt_offset_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/gmt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/gmt_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/gmtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/gmtime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/gmtoff_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/gmtoff_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/hash_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/hour_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/hour_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/isdst_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/isdst_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/local_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/local_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/localtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/localtime_spec.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/mday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/mday_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/min_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/min_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/minus_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/mktime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/mktime_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/mon_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/mon_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/monday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/monday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/month_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/new_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/now_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/now_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/nsec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/nsec_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/plus_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/round_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/saturday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/saturday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/sec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/sec_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/asctime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/asctime.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/day.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/day.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/getgm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/getgm.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/gm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/gm.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/gmt_offset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/gmt_offset.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/gmtime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/gmtime.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/inspect.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/isdst.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/isdst.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/local.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/local.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/month.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/month.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/now.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/now.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/time_params.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/time_params.rb</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/shared/to_i.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/shared/to_i.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/strftime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/strftime_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/subsec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/subsec_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/succ_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/sunday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/sunday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/thursday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/thursday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/time_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/to_a_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/to_f_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/to_i_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/to_r_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/tuesday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/tuesday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/tv_nsec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/tv_nsec_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/tv_sec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/tv_sec_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/tv_usec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/tv_usec_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/usec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/usec_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/utc_offset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/utc_offset_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/utc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/utc_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/wday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/wday_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/wednesday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/wednesday_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/yday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/yday_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/year_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/year_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/zone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/time/zone_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/binding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/binding_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/callee_id_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/callee_id_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/defined_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/defined_class_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/disable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/disable_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/enable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/enable_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/enabled_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/enabled_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/event_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/event_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/fixtures/classes.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/inspect_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/lineno_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/method_id_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/method_id_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/new_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/path_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/raised_exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/raised_exception_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/return_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/return_value_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/self_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/self_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/trace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/tracepoint/trace_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/and_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/dup_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/or_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/trueclass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/trueclass_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/xor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/true/xor_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/arity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/arity_spec.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/bind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/bind_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/clone_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/eql_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/equal_value_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/fixtures/classes.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/hash_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/name_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/owner_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/owner_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/parameters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/parameters_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/shared/to_s.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/source_location_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/source_location_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/super_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/super_method_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/unboundmethod/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/warning/warn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/core/warning/warn_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/default.mspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/default.mspec</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/basicobject/method_missing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/basicobject/method_missing.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/class.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/class_variables.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/class_variables.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/a/load_fixture.bundle?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/a/load_fixture.bundle</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/a/load_fixture.dll?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/a/load_fixture.dll</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/a/load_fixture.so?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/a/load_fixture.so</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/b/load_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/b/load_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/concurrent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/concurrent.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/concurrent2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/concurrent2.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/concurrent3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/concurrent3.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/file_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/file_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/gem/load_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/gem/load_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/line_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/line_fixture.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_ext_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_ext_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.bundle?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.bundle</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.dll?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.dll</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.ext</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext.bundle?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.ext.bundle</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext.dll?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.ext.dll</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.ext.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext.so?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.ext.so</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.so?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_fixture.so</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_wrap_method_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/load_wrap_method_fixture.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/methods_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/methods_fixture.rb</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/raise_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/raise_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/recursive_load_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/recursive_load_fixture.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/recursive_require_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/recursive_require_fixture.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/symlink/symlink1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/symlink/symlink1.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/symlink/symlink2/symlink2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/symlink/symlink2/symlink2.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/wrap_fixture.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code/wrap_fixture.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code_loading.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/code_loading.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/constants.rb</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/enumerator/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/enumerator/classes.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/math/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/math/common.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/rational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/rational.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/reflection.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/fixtures/reflection.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/BEGIN_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/BEGIN_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/README</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/alias_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/alias_spec.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/and_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/and_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/array_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/array_spec.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/block_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/block_spec.rb</a></td><td class='right'>865</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/break_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/break_spec.rb</a></td><td class='right'>365</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/case_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/case_spec.rb</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/class_spec.rb</a></td><td class='right'>330</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/class_variable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/class_variable_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/constants_spec.rb</a></td><td class='right'>668</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/def_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/def_spec.rb</a></td><td class='right'>714</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/defined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/defined_spec.rb</a></td><td class='right'>1140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/encoding_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/ensure_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/ensure_spec.rb</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/execution_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/execution_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/file_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/argv_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/argv_encoding.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/array.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/begin_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/begin_file.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/binary_symbol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/binary_symbol.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/block.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/break.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/break_lambda_toplevel.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/break_lambda_toplevel_block.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/break_lambda_toplevel_method.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/classes.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/coding_us_ascii.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/coding_us_ascii.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/coding_utf_8.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/coding_utf_8.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/constant_visibility.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/constant_visibility.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/constants_sclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/constants_sclass.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/def.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/def.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/defined.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/defined.rb</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/dollar_zero.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/dollar_zero.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/ensure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/ensure.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/file.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_across_files.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_across_files.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_across_files_diff_enc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_across_files_diff_enc.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_across_files_no_comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_across_files_no_comment.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_one_literal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_one_literal.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_required.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_required.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_required_diff_enc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_required_diff_enc.rb</a></td><td class='right'>bin</td><td class='graph'>0 -> 181 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_required_no_comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_required_no_comment.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_two_literals.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/freeze_magic_comment_two_literals.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/hash_strings_ascii8bit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/hash_strings_ascii8bit.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/hash_strings_usascii.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/hash_strings_usascii.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/hash_strings_utf8.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/hash_strings_utf8.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/match_operators.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/match_operators.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/metaclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/metaclass.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/module.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/next.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/next.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/precedence.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/precedence.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/private.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/private.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/rescue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/rescue.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/return.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/return.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/send.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/send.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/squiggly_heredoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/squiggly_heredoc.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/super.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/super.rb</a></td><td class='right'>664</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/variables.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/variables.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/yield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/fixtures/yield.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/for_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/for_spec.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/hash_spec.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/heredoc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/heredoc_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/if_spec.rb</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/lambda_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/lambda_spec.rb</a></td><td class='right'>573</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/line_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/loop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/loop_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/magic_comment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/magic_comment_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/match_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/metaclass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/metaclass_spec.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/method_spec.rb</a></td><td class='right'>1296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/module_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/module_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/next_spec.rb</a></td><td class='right'>410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/not_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/not_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/numbers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/numbers_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/optional_assignments_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/optional_assignments_spec.rb</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/or_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/or_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/order_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/order_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/precedence_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/precedence_spec.rb</a></td><td class='right'>448</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/data_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data1.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data2.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data3.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data4.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data4.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data5.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data5.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/data_only.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/data_only.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined/fixtures/print_data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined/fixtures/print_data.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/predefined_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/predefined_spec.rb</a></td><td class='right'>1240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/private_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/private_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/proc_spec.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/redo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/redo_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/anchors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/anchors_spec.rb</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/back-references_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/back-references_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/character_classes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/character_classes_spec.rb</a></td><td class='right'>633</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/encoding_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/escapes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/escapes_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/grouping_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/grouping_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/interpolation_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/interpolation_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/modifiers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/modifiers_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/repetition_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp/repetition_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/regexp_spec.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/rescue_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/rescue_spec.rb</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/retry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/retry_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/return_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/return_spec.rb</a></td><td class='right'>483</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/safe_navigator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/safe_navigator_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/send_spec.rb</a></td><td class='right'>521</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/shared/__FILE__.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/shared/__FILE__.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/shared/__LINE__.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/shared/__LINE__.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/singleton_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/singleton_class_spec.rb</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/string_spec.rb</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/super_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/super_spec.rb</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/symbol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/symbol_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/throw_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/throw_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/undef_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/undef_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/unless_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/unless_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/until_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/until_spec.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/variables_spec.rb</a></td><td class='right'>760</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/while_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/while_spec.rb</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/yield_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/language/yield_spec.rb</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/English/English_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/English/English_spec.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/abbrev/abbrev_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/abbrev/abbrev_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/decode64_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/base64/decode64_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/encode64_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/base64/encode64_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/urlsafe_decode64_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/base64/urlsafe_decode64_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/urlsafe_encode64_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/base64/urlsafe_encode64_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/abs_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/add_spec.rb</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/case_compare_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/ceil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/ceil_spec.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/coerce_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/comparison_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/div_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/div_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/divide_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/divmod_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/divmod_spec.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/double_fig_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/double_fig_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/equal_value_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/exponent_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/finite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/finite_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/fix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/fix_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/fixtures/classes.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/floor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/floor_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/frac_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/frac_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/gt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/gt_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/gte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/gte_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/infinite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/infinite_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/inspect_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/limit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/limit_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/lt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/lt_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/lte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/lte_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/minus_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/mode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/mode_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/modulo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/modulo_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/mult_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/mult_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/multiply_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/nan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/nan_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/new_spec.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/nonzero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/nonzero_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/plus_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/power_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/power_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/precs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/precs_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/quo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/quo_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/remainder_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/remainder_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/round_spec.rb</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/eql.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/modulo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/modulo.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/mult.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/mult.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/power.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/power.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/quo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/quo.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/to_int.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/shared/to_int.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/sign_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/sign_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/split_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/split_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/sqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/sqrt_spec.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/sub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/sub_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_f_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/to_f_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_i_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/to_i_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/to_int_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/to_r_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/to_s_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/truncate_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/uminus_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/uplus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/uplus_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/ver_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/ver_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigdecimal/zero_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigmath/log_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/bigmath/log_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/domain_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/domain_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/expires_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/expires_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/initialize_spec.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/name_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/parse_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/path_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/secure_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/secure_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/to_s_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/cookie/value_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/escapeElement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/escapeElement_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/escapeHTML_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/escapeHTML_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/escape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/escape_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/a_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/base_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/base_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/blockquote_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/blockquote_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/br_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/br_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/caption_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/caption_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/checkbox_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/checkbox_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/doctype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/doctype_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/file_field_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/file_field_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/fixtures/common.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/form_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/form_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/frame_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/frame_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/frameset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/frameset_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/hidden_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/hidden_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/html_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/html_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/image_button_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/image_button_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/img_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/img_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/password_field_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/password_field_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/radio_button_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/radio_button_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/radio_group_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/radio_group_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/reset_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/shared/popup_menu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/shared/popup_menu.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/submit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/submit_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/text_field_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/text_field_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/htmlextension/textarea_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/htmlextension/textarea_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/http_header_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/http_header_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/initialize_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/out_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/out_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/parse_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/pretty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/pretty_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/print_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/accept_charset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/accept_charset_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/accept_language_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/accept_language_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/accept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/accept_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/auth_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/auth_type_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/cache_control_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/cache_control_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/content_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/content_length_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/content_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/content_type_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/cookies_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/cookies_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/element_reference_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/from_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/from_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/has_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/has_key_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/host_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/host_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/include_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/key_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/keys_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/keys_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/multipart_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/multipart_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/negotiate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/negotiate_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/params_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/path_info_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/path_info_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/path_translated_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/path_translated_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/pragma_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/pragma_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/query_string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/query_string_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/referer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/referer_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/remote_addr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/remote_addr_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/remote_host_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/remote_host_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/remote_ident_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/remote_ident_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/remote_user_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/remote_user_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/request_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/request_method_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/script_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/script_name_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/server_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/server_name_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/server_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/server_port_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/server_protocol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/server_protocol_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/server_software_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/server_software_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/shared/has_key.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/shared/has_key.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/queryextension/user_agent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/queryextension/user_agent_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/rfc1123_date_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/rfc1123_date_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/shared/http_header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/shared/http_header.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/unescapeElement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/unescapeElement_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/unescapeHTML_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/unescapeHTML_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/cgi/unescape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/cgi/unescape_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/acos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/acos_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/acosh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/acosh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/asin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/asin_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/asinh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/asinh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atan2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/atan2_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/atan_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atanh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/atanh_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/cos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/cos_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/cosh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/cosh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/exp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/exp_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/fixtures/classes.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/log10_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/log10_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/log_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/log_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/acos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/acos.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/acosh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/acosh.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/asin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/asin.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/asinh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/asinh.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atan.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/atan.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atan2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/atan2.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atanh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/atanh.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/cos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/cos.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/cosh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/cosh.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/exp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/exp.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/log.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/log.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/log10.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/log10.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/sin.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sinh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/sinh.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sqrt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/sqrt.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/tan.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/tan.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/tanh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/shared/tanh.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/sin_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sinh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/sinh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/sqrt_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/tan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/tan_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/math/tanh_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/math/tanh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/complex/numeric/im_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/complex/numeric/im_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/broadcast_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/conditionvariable/broadcast_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/marshal_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/conditionvariable/marshal_dump_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/signal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/conditionvariable/signal_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/wait_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/conditionvariable/wait_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/second_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/fixtures/second_class.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/some_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/fixtures/some_class.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/fixtures/spec_helper.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/start_coverage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/fixtures/start_coverage.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/peek_result_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/peek_result_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/result_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/result_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/coverage/start_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/basicwriter/close_on_terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/basicwriter/close_on_terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/basicwriter/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/basicwriter/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/basicwriter/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/basicwriter/terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/cell/data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/cell/data_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/cell/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/cell/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/fixtures/one_line.csv?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/fixtures/one_line.csv</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/foreach_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/foreach_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/generate_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/generate_line_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/generate_row_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/generate_row_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/generate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/generate_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/iobuf/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/iobuf/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/iobuf/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/iobuf/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/iobuf/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/iobuf/read_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/iobuf/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/iobuf/terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/ioreader/close_on_terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/ioreader/close_on_terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/ioreader/get_row_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/ioreader/get_row_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/ioreader/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/ioreader/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/ioreader/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/ioreader/terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/liberal_parsing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/liberal_parsing_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/open_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/parse_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/read_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/readlines_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/add_buf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/add_buf_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/buf_size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/buf_size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/drop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/drop_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/element_reference_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/get_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/idx_is_eos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/idx_is_eos_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/is_eos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/is_eos_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/read_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/rel_buf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/rel_buf_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/streambuf/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/streambuf/terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/stringreader/get_row_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/stringreader/get_row_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/stringreader/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/stringreader/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/add_row_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/add_row_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/append_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/create_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/create_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/generate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/generate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/csv/writer/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/csv/writer/terminate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/accessor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/accessor_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/add_month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/add_month_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/add_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ajd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ajd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ajd_to_amjd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ajd_to_amjd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ajd_to_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ajd_to_jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/amjd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/amjd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/amjd_to_ajd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/amjd_to_ajd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/append_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/asctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/asctime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/boat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/boat_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/case_compare_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/civil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/civil_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/commercial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/commercial_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/commercial_to_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/commercial_to_jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/comparison_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/constants_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/conversions_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/conversions_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ctime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ctime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/cwday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/cwday_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/cweek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/cweek_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/cwyear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/cwyear_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/day_fraction_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/day_fraction_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/day_fraction_to_time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/day_fraction_to_time_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/day_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/day_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/downto_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/downto_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/england_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/england_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/eql_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/format/bag/method_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/format/bag/method_missing_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/format/bag/to_hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/format/bag/to_hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/friday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/friday_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/gregorian_leap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/gregorian_leap_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/gregorian_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/gregorian_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/hash_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/abs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/abs_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/coerce_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/comparison_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/d_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/d_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/finite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/finite_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/infinite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/infinite_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/nan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/nan_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/uminus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/uminus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/uplus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/uplus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity/zero_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/infinity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/infinity_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/italy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/italy_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_ajd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_ajd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_civil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_civil_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_commercial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_commercial_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_ld_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_ld_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_mjd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_mjd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_ordinal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_ordinal_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/jd_to_wday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/jd_to_wday_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/julian_leap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/julian_leap_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/julian_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/julian_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ld_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ld_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ld_to_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ld_to_jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/leap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/leap_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/mday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/mday_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/minus_month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/minus_month_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/minus_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/mjd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/mjd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/mjd_to_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/mjd_to_jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/mon_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/mon_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/monday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/monday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/month_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/new_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/new_start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/new_start_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/next_day_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/next_day_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/next_month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/next_month_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/next_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/next_year_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/next_year_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ordinal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ordinal_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/ordinal_to_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/ordinal_to_jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/parse_spec.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/plus_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/prev_day_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/prev_day_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/prev_month_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/prev_month_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/prev_year_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/prev_year_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/relationship_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/relationship_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/right_shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/right_shift_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/saturday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/saturday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/civil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/civil.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/commercial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/commercial.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/jd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/jd.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/new_bang.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/new_bang.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/ordinal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/ordinal.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/parse.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/parse_eu.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/parse_eu.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/parse_us.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/parse_us.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/valid_civil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/valid_civil.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/valid_commercial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/valid_commercial.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/valid_jd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/valid_jd.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/shared/valid_ordinal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/shared/valid_ordinal.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/start_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/step_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/step_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/strftime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/strftime_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/strptime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/strptime_spec.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/succ_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/sunday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/sunday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/thursday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/thursday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/time_to_day_fraction_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/time_to_day_fraction_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/today_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/today_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/tuesday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/tuesday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/upto_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/upto_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_civil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_civil_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_commercial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_commercial_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_date_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_date_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_jd_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_ordinal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_ordinal_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/valid_time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/valid_time_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/wday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/wday_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/wednesday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/wednesday_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/yday_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/yday_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/year_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/year_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/zone_to_diff_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/date/zone_to_diff_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/_strptime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/_strptime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/civil_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/civil_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/commercial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/commercial_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/hour_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/hour_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/httpdate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/httpdate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/iso8601_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/iso8601_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/jd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/jd_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/jisx0301_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/jisx0301_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/min_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/min_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/minute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/minute_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/new_offset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/new_offset_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/new_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/now_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/now_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/offset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/offset_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/ordinal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/ordinal_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/parse_spec.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/rfc2822_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/rfc2822_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/rfc3339_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/rfc3339_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/rfc822_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/rfc822_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/sec_fraction_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/sec_fraction_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/sec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/sec_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/second_fraction_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/second_fraction_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/second_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/second_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/shared/min.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/shared/min.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/shared/sec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/shared/sec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/strftime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/strftime_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/strptime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/strptime_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_date_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/to_date_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_datetime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/to_datetime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/to_s_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/to_time_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/xmlschema_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/xmlschema_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/datetime/zone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/datetime/zone_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/instance_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/instance_method_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/instance_methods_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/private_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/private_instance_methods_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/protected_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/protected_instance_methods_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/public_instance_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/public_instance_methods_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/respond_to_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegate_class/respond_to_missing_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/case_compare_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/compare_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/complement_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/complement_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/eql_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/equal_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/equal_value_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/frozen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/frozen_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/hash_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/marshal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/marshal_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/method_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/methods_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/not_equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/not_equal_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/not_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/not_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/private_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/private_methods_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/protected_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/protected_methods_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/public_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/public_methods_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/send_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/taint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/taint_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/tap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/tap_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/trust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/trust_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/untaint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/untaint_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/untrust_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/delegator/untrust_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/delegate/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/delegate/fixtures/classes.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/bubblebabble_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/bubblebabble_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/hexencode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/hexencode_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/block_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/block_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/digest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/digest_bang_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/digest_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/digest_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/digest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/equal_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/file_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/hexdigest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/hexdigest_bang_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/hexdigest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/hexdigest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/inspect_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/length_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/reset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/shared/constants.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/shared/length.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/shared/sample.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/shared/sample.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/shared/update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/shared/update.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/size_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/to_s_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/md5/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha1/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha1/digest_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha1/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha1/file_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha1/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha1/shared/constants.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/block_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/block_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/digest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/digest_bang_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/digest_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/digest_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/digest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/equal_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/file_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/hexdigest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/hexdigest_bang_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/hexdigest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/hexdigest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/inspect_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/length_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/reset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/shared/constants.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/shared/length.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/shared/update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/shared/update.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/size_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/to_s_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha256/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/block_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/block_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/digest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/digest_bang_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/digest_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/digest_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/digest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/equal_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/file_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/hexdigest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/hexdigest_bang_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/hexdigest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/hexdigest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/inspect_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/length_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/reset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/shared/constants.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/shared/length.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/shared/update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/shared/update.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/size_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/to_s_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha384/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/block_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/block_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/digest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/digest_bang_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/digest_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/digest_length_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/digest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/equal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/equal_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/file_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/hexdigest_bang_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/hexdigest_bang_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/hexdigest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/hexdigest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/inspect_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/length_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/reset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/shared/constants.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/shared/length.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/shared/update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/shared/update.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/size_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/to_s_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/update_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/digest/sha512/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/drb/fixtures/test_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/drb/fixtures/test_server.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/drb/start_service_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/drb/start_service_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/def_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/def_class_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/def_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/def_method_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/def_module_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/def_module_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/defmethod/def_erb_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/defmethod/def_erb_method_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/filename_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/filename_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/new_spec.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/result_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/result_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/run_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/run_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/src_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/src_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/h_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/html_escape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/html_escape_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/shared/html_escape.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/shared/html_escape.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/shared/url_encode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/shared/url_encode.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/u_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/u_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/erb/util/url_encode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/erb/util/url_encode_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/endgrent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/endgrent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/endpwent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/endpwent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getgrent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getgrent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getgrgid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getgrgid_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getgrnam_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getgrnam_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getlogin_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getlogin_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getpwent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getpwent_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getpwnam_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getpwnam_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/getpwuid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/getpwuid_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/group_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/group_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/nprocessors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/nprocessors_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/shared/windows.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/shared/windows.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/struct_group_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/struct_group_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/etc/struct_passwd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/etc/struct_passwd_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/expect/expect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/expect/expect_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/fiber/alive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/fiber/alive_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/fiber/current_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/fiber/current_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/fiber/resume_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/fiber/resume_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/fiber/transfer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/fiber/transfer_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/find/find_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/find/find_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/find/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/find/fixtures/common.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/find/prune_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/find/prune_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/each_option_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/each_option_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/each_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/error_message_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/error_message_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/get_option_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/get_option_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/get_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/initialize_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/ordering_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/ordering_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/set_options_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/set_options_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/shared/each.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/shared/get.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/shared/get.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/terminate_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/terminated_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/getoptlong/terminated_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/hton_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/hton_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/ipv4_conversion_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/ipv4_conversion_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/new_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/operator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/operator_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/reverse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/reverse_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/ipaddr/to_s_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/device/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/device/close_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/device/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/device/new_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/device/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/device/write_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/fixtures/common.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/add_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/close_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/datetime_format_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/datetime_format_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/debug_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/debug_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/error_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/fatal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/fatal_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/info_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/info_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/new_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/unknown_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/unknown_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/warn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/logger/warn_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/logger/severity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/logger/severity_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/bignum/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/bignum/exponent_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/complex/Complex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/complex/Complex_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/fixnum/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/fixnum/exponent_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/float/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/float/exponent_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/integer/from_prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/integer/from_prime_division_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/integer/prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/integer/prime_division_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/math/fixtures/classes.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/rsqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/math/rsqrt_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/shared/rsqrt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/math/shared/rsqrt.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/shared/sqrt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/math/shared/sqrt.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/sqrt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/math/sqrt_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/rational/Rational_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/rational/Rational_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mathn/rational/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/mathn/rational/inspect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/I_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/I_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/build_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/clone_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/coerce_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/collect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/column_size_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/column_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_vector_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/column_vector_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_vectors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/column_vectors_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/columns_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/columns_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/conj_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/conj_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/conjugate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/conjugate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/constructor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/constructor_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/det_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/det_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/determinant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/determinant_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/diagonal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/diagonal_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/divide_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/each_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/each_with_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/each_with_index_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalue_matrix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalue_matrix_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalues_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalues_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvector_matrix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvector_matrix_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvectors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvectors_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/initialize_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eigenvalue_decomposition/to_a_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/element_reference_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/empty_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/eql_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/equal_value_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/exponent_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/find_index_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/find_index_spec.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/fixtures/classes.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/hash_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/hermitian_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/hermitian_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/identity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/identity_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/imag_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/imag_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/imaginary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/imaginary_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/inspect_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/inv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/inv_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/inverse_from_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/inverse_from_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/inverse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/inverse_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lower_triangular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lower_triangular_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/determinant_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/determinant_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/initialize_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/l_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/l_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/p_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/p_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/solve_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/solve_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/to_a_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/u_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/lup_decomposition/u_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/map_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/minor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/minor_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/minus_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/multiply_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/new_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/normal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/normal_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/orthogonal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/orthogonal_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/permutation_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/permutation_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/plus_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/rank_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/rank_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/real_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/real_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/rect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/rect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/rectangular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/rectangular_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/regular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/regular_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/round_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/round_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/row_size_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/row_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_vector_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/row_vector_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_vectors_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/row_vectors_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/rows_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/rows_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/Fail_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/Fail_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/Raise_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/Raise_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/divide_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/exponent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/exponent_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/included_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/included_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/initialize_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/minus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/multiply_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/multiply_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar/plus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/scalar_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/collect.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/conjugate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/conjugate.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/determinant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/determinant.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/equal_value.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/identity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/identity.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/imaginary.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/imaginary.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/inverse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/inverse.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/rectangular.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/rectangular.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/trace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/trace.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/transpose.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/shared/transpose.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/singular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/singular_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/spec_helper.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/square_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/square_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/symmetric_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/symmetric_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/t_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/t_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/to_a_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/tr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/tr_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/trace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/trace_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/transpose_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/transpose_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/unit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/unit_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/unitary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/unitary_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/upper_triangular_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/upper_triangular_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/cross_product_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/vector/cross_product_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/each2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/vector/each2_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/vector/eql_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/inner_product_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/vector/inner_product_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/normalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/vector/normalize_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/matrix/zero_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/matrix/zero_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/FTPError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/FTPError_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/FTPPermError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/FTPPermError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/FTPProtoError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/FTPProtoError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/FTPReplyError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/FTPReplyError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/FTPTempError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/FTPTempError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/abort_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/abort_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/acct_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/acct_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/binary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/binary_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/chdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/chdir_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/close_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/closed_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/connect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/connect_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/debug_mode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/debug_mode_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/default_passive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/default_passive_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/delete_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/dir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/dir_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/default_passive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/fixtures/default_passive.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/passive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/fixtures/passive.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/putbinaryfile?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/fixtures/putbinaryfile</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/puttextfile?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/fixtures/puttextfile</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/fixtures/server.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/get_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/getbinaryfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/getbinaryfile_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/getdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/getdir_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/gettextfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/gettextfile_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/help_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/help_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/initialize_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/last_response_code_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/last_response_code_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/last_response_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/last_response_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/lastresp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/lastresp_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/list_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/list_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/login_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/login_spec.rb</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/ls_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/ls_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mdtm_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/mdtm_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mkdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/mkdir_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/mtime_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/nlst_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/nlst_spec.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/noop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/noop_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/open_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/passive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/passive_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/put_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/put_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/putbinaryfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/putbinaryfile_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/puttextfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/puttextfile_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/pwd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/pwd_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/quit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/quit_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/rename_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/rename_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/resume_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/resume_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/retrbinary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/retrbinary_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/retrlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/retrlines_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/return_code_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/return_code_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/rmdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/rmdir_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/sendcmd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/sendcmd_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/set_socket_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/set_socket_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/getbinaryfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/getbinaryfile.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/gettextfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/gettextfile.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/last_response_code.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/last_response_code.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/list.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/putbinaryfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/putbinaryfile.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/puttextfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/puttextfile.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/pwd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/shared/pwd.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/site_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/site_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/size_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/spec_helper.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/status_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/status_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/storbinary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/storbinary_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/storlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/storlines_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/system_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/system_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/voidcmd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/voidcmd_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/welcome_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/ftp/welcome_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPBadResponse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPBadResponse_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPFatalError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPFatalError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPHeaderSyntaxError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPHeaderSyntaxError_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPRetriableError_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPRetriableError_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPServerException_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/HTTPServerException_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/Proxy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/Proxy_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/active_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/active_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/address_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/address_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/close_on_empty_response_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/close_on_empty_response_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/copy_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/copy_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/default_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/default_port_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/delete_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/finish_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/finish_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/fixtures/http_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/fixtures/http_server.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/get2_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get_print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/get_print_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get_response_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/get_response_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/get_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/head2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/head2_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/head_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/head_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/http_default_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/http_default_port_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/https_default_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/https_default_port_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/initialize_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/inspect_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/is_version_1_1_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/is_version_1_1_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/is_version_1_2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/is_version_1_2_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/lock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/lock_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/mkcol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/mkcol_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/move_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/move_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/new_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/newobj_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/newobj_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/open_timeout_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/open_timeout_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/options_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/options_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/port_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/post2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/post2_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/post_form_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/post_form_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/post_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/post_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/propfind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/propfind_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proppatch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proppatch_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_address_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proxy_address_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proxy_class_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_pass_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proxy_pass_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proxy_port_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_user_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/proxy_user_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/put2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/put2_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/put_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/put_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/read_timeout_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/read_timeout_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_get_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_get_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_head_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_head_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_post_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_post_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_put_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_put_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_spec.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_types_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/request_types_spec.rb</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/send_request_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/send_request_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/set_debug_output_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/set_debug_output_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_get.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/request_get.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_head.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/request_head.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_post.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/request_post.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_put.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/request_put.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/started.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/started.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/version_1_1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/version_1_1.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/version_1_2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/shared/version_1_2.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/socket_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/socket_type_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/start_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/started_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/started_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/trace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/trace_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/unlock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/unlock_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/use_ssl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/use_ssl_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/version_1_1_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/version_1_1_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/version_1_2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/http/version_1_2_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpexceptions/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpexceptions/fixtures/classes.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpexceptions/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpexceptions/initialize_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpexceptions/response_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpexceptions/response_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/body_exist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/body_exist_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/body_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/body_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/body_stream_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/body_stream_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/exec_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/exec_spec.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/inspect_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/method_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/path_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/request_body_permitted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/request_body_permitted_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/response_body_permitted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/response_body_permitted_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/set_body_internal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpgenericrequest/set_body_internal_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/add_field_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/add_field_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/basic_auth_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/basic_auth_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/canonical_each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/canonical_each_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/chunked_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/chunked_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/content_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/content_length_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/content_range_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/content_range_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/content_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/content_type_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/delete_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_capitalized_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_capitalized_name_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_capitalized_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_capitalized_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_header_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_header_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_key_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_name_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/each_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/each_value_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/element_reference_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/element_set_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/fetch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/fetch_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/fixtures/classes.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/form_data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/form_data_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/get_fields_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/get_fields_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/initialize_http_header_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/initialize_http_header_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/key_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/key_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/length_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/main_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/main_type_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/proxy_basic_auth_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/proxy_basic_auth_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/range_length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/range_length_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/range_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/range_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/set_content_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/set_content_type_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/set_form_data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/set_form_data_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/set_range_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/set_range_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/each_capitalized.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/each_capitalized.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/each_header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/each_header.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/each_name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/each_name.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/set_content_type.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/set_content_type.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/set_form_data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/set_form_data.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/set_range.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/set_range.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/shared/size.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/size_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/sub_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/sub_type_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/to_hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/to_hash_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/type_params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpheader/type_params_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httprequest/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httprequest/initialize_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/body_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/body_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/code_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/code_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/code_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/code_type_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/entity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/entity_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/error_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/error_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/error_type_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/exception_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/exception_type_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/header_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/header_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/http_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/http_version_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/initialize_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/inspect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/message_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/message_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/msg_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/msg_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/read_body_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/read_body_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/read_header_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/read_header_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/read_new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/read_new_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/reading_body_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/reading_body_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/response_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/response_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/shared/body.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/shared/body.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/net/http/httpresponse/value_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/add_observer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/add_observer_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/count_observers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/count_observers_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/delete_observer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/delete_observer_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/delete_observers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/delete_observers_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/fixtures/classes.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/observer/notify_observers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/observer/notify_observers_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/capture2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/capture2_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/capture2e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/capture2e_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/capture3_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/capture3_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/pipeline_r_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/pipeline_r_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/pipeline_rw_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/pipeline_rw_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/pipeline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/pipeline_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/pipeline_start_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/pipeline_start_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/pipeline_w_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/pipeline_w_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/popen2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/popen2_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/popen2e_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/popen2e_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/open3/popen3_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/open3/popen3_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/cipher_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/cipher_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/config/freeze_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/config/freeze_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/hmac/digest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/hmac/digest_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/hmac/hexdigest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/hmac/hexdigest_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/random/pseudo_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/random/pseudo_bytes_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/random/random_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/random/random_bytes_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/random/shared/random_bytes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/random/shared/random_bytes.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/shared/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/shared/constants.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/x509/name/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openssl/x509/name/parse_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/delete_field_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/delete_field_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/element_reference_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/element_set_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/equal_value_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/fixtures/classes.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/frozen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/frozen_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/initialize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/inspect_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/marshal_dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/marshal_dump_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/marshal_load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/marshal_load_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/method_missing_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/method_missing_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/new_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/shared/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/shared/inspect.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/to_h_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/to_h_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openstruct/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/openstruct/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/optionparser/order_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/optionparser/order_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/optionparser/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/optionparser/parse_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/absolute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/absolute_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/empty_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/equal_value_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/hash_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/join_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/new_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/parent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/parent_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/realdirpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/realdirpath_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/realpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/realpath_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/relative_path_from_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/relative_path_from_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/relative_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/relative_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/root_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/root_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/sub_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pathname/sub_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pp/pp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/pp/pp_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/each_spec.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/instance_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/instance_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/int_from_prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/int_from_prime_division_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/each_prime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/integer/each_prime_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/from_prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/integer/from_prime_division_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/integer/prime_division_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/prime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/integer/prime_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/next_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/next_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/prime_division_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/prime_division_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/prime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/prime_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/shared/next.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/shared/next.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/prime/succ_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/prime/succ_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/basic_quote_characters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/basic_quote_characters_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/basic_word_break_characters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/basic_word_break_characters_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/completer_quote_characters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/completer_quote_characters_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/completer_word_break_characters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/completer_word_break_characters_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/completion_append_character_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/completion_append_character_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/completion_case_fold_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/completion_case_fold_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/completion_proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/completion_proc_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/constants_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/emacs_editing_mode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/emacs_editing_mode_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/filename_quote_characters_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/filename_quote_characters_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/append_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/delete_at_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/delete_at_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/each_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/element_reference_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/element_set_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/empty_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/history_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/history_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/length_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/pop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/pop_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/push_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/push_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/shared/size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/shared/size.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/shift_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/size_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/history/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/history/to_s_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/readline_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/spec_helper.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/readline/vi_editing_mode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/readline/vi_editing_mode_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_address_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/resolv/get_address_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_addresses_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/resolv/get_addresses_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/resolv/get_name_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_names_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/resolv/get_names_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/clone_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/element_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/equal_value_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/hash_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/initialize_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/inspect_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/namespace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/namespace_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/node_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/node_type_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/prefix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/prefix_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/remove_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/remove_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/to_s_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/to_string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/to_string_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/value_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/write_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/xpath_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attribute/xpath_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/add_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/delete_all_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/delete_all_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/delete_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/each_attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/each_attribute_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/each_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/element_reference_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/element_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/element_set_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/get_attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/get_attribute_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/initialize_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/namespaces_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/namespaces_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/prefixes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/prefixes_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/shared/add.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/shared/add.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/shared/length.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/attributes/to_a_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/cdata/clone_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/cdata/initialize_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/shared/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/cdata/shared/to_s.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/cdata/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/cdata/value_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/add_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/add_element_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/add_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/clone_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/doctype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/doctype_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/encoding_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/expanded_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/expanded_name_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/new_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/node_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/node_type_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/root_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/root_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/stand_alone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/stand_alone_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/version_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/write_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/xml_decl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/document/xml_decl_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/add_attribute_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_attributes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/add_attributes_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/add_element_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_namespace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/add_namespace_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/add_text_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/attribute_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/attributes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/attributes_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/cdatas_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/cdatas_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/clone_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/comments_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/comments_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/delete_attribute_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/delete_element_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_namespace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/delete_namespace_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/document_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/document_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/each_element_with_text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/each_element_with_text_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/element_reference_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/get_text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/get_text_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_attributes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/has_attributes_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_elements_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/has_elements_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/has_text_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/inspect_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/instructions_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/instructions_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/namespace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/namespace_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/namespaces_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/namespaces_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/new_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/next_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/next_element_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/node_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/node_type_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/prefixes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/prefixes_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/previous_element_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/previous_element_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/raw_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/raw_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/root_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/root_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/text_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/texts_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/texts_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/whitespace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/element/whitespace_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/each_recursive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/each_recursive_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/find_first_recursive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/find_first_recursive_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/index_in_parent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/index_in_parent_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/next_sibling_node_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/next_sibling_node_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/parent_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/parent_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/previous_sibling_node_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/node/previous_sibling_node_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/shared/each_element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/shared/each_element.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/shared/elements_to_a.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/shared/elements_to_a.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/append_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/clone_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/comparison_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/comparison_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/empty_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/indent_text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/indent_text_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/inspect_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/new_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/node_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/node_type_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/normalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/normalize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/read_with_substitution_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/read_with_substitution_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/to_s_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/unnormalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/unnormalize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/value_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/wrap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/wrap_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/write_with_substitution_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/rexml/text/write_with_substitution_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/block_scanf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/io/block_scanf_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/fixtures/date.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/io/fixtures/date.txt</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/fixtures/helloworld.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/io/fixtures/helloworld.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/scanf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/io/scanf_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/shared/block_scanf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/io/shared/block_scanf.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/block_scanf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/string/block_scanf_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/scanf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/string/scanf_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/shared/block_scanf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/scanf/string/shared/block_scanf.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/securerandom/base64_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/securerandom/base64_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/securerandom/hex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/securerandom/hex_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/securerandom/random_bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/securerandom/random_bytes_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/securerandom/random_number_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/securerandom/random_number_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/add_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/case_compare_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/case_compare_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/case_equality_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/case_equality_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/classify_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/classify_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/clear_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/collect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/compare_by_identity_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/compare_by_identity_spec.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/constructor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/constructor_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/delete_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/delete_if_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/delete_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/difference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/difference_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/divide_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/each_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/enumerable/to_set_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/enumerable/to_set_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/eql_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/equal_value_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/exclusion_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/exclusion_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/flatten_merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/flatten_merge_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/flatten_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/flatten_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/hash_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/include_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/initialize_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/inspect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/intersection_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/intersection_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/keep_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/keep_if_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/map_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/member_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/merge_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/minus_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/plus_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/pretty_print_cycle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/pretty_print_cycle_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/pretty_print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/pretty_print_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/proper_subset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/proper_subset_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/proper_superset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/proper_superset_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/reject_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/replace_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/select_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/add.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/add.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/collect.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/difference.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/difference.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/include.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/inspect.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/intersection.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/intersection.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/length.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/shared/union.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/shared/union.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/add_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/add_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/case_equality_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/case_equality_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/classify_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/classify_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/clear_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/collect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/collect_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/constructor_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/constructor_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/delete_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/delete_if_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/delete_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/difference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/difference_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/divide_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/divide_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/each_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/eql_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/equal_value_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/exclusion_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/exclusion_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/flatten_merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/flatten_merge_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/flatten_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/flatten_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/hash_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/include_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/include_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/initialize_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/inspect_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/intersection_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/intersection_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/keep_if_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/keep_if_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/map_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/map_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/member_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/member_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/merge_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/minus_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/plus_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/pretty_print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/pretty_print_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/proper_subset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/proper_subset_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/proper_superset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/proper_superset_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/reject_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/reject_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/replace_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/replace_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/select_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/add.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/add.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/collect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/collect.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/difference.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/difference.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/include.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/intersection.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/intersection.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/length.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/union.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/shared/union.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/subset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/subset_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/subtract_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/subtract_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/superset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/superset_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/to_a_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/union_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/sortedset/union_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/subset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/subset_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/subtract_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/subtract_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/superset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/superset_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/to_a_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/to_a_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/to_s_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/union_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/set/union_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/shellwords/shellwords_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/shellwords/shellwords_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/allocate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/allocate_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/clone_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/clone_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/dump_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/fixtures/classes.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/instance_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/instance_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/load_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/singleton/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/singleton/new_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/afamily_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/afamily_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/bind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/bind_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/canonname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/canonname_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/initialize_spec.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/inspect_sockaddr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/inspect_sockaddr_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_address_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ip_address_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ip_port_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ip_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_unpack_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ip_unpack_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv4_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_loopback_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv6_loopback_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/ipv6_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/pfamily_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/pfamily_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/protocol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/protocol_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/shared/to_sockaddr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/shared/to_sockaddr.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/socktype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/socktype_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/tcp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/tcp_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/to_s_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/to_sockaddr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/to_sockaddr_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/udp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/udp_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/unix_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/unix_path_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/unix_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/addrinfo/unix_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/close_read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/close_read_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/close_write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/close_write_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/for_fd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/for_fd_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getpeername_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/getpeername_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getsockname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/getsockname_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/getsockopt_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/ioctl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/ioctl_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recv_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/recv_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/send_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/setsockopt_spec.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/shutdown_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/basicsocket/shutdown_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/constants/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/constants/constants_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/fixtures/classes.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/fixtures/send_io.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/fixtures/send_io.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/addr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/ipsocket/addr_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/getaddress_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/ipsocket/getaddress_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/ipsocket/peeraddr_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/recvfrom_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/ipsocket/recvfrom_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/option/bool_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/option/bool_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/option/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/option/inspect_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/option/int_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/option/int_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/option/linger_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/option/linger_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/option/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/option/new_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/pack_sockaddr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/shared/pack_sockaddr.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/partially_closable_sockets.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/shared/partially_closable_sockets.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/recv_nonblock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/shared/recv_nonblock.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/socketpair.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/shared/socketpair.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/accept_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/accept_nonblock_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/accept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/accept_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/bind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/bind_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/connect_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/connect_nonblock_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/connect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/connect_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/for_fd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/for_fd_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getaddrinfo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/getaddrinfo_spec.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/gethostbyaddr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/gethostbyaddr_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/gethostbyname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/gethostbyname_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/gethostname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/gethostname_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getnameinfo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/getnameinfo_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getservbyname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/getservbyname_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/listen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/listen_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/pack_sockaddr_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/pack_sockaddr_in_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/pack_sockaddr_un_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/pack_sockaddr_un_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/pair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/pair_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/recvfrom_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/recvfrom_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/sockaddr_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/sockaddr_in_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/sockaddr_un_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/sockaddr_un_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/socket_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/socket_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/socketpair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/socketpair_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/sysaccept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/sysaccept_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/accept_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/accept_nonblock_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/accept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/accept_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/gets_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/listen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/listen_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/new_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/sysaccept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpserver/sysaccept_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/new_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/open_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/partially_closable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/partially_closable_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/recv_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/recv_nonblock_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/setsockopt_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/setsockopt_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/shared/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/tcpsocket/shared/new.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/bind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/udpsocket/bind_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/udpsocket/new_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/udpsocket/open_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/udpsocket/send_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/udpsocket/write_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/accept_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/accept_nonblock_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/accept_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/accept_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/for_fd_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/for_fd_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/open_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/shared/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixserver/shared/new.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/addr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/addr_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/inspect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/open_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/pair_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/pair_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/partially_closable_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/partially_closable_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/path_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/peeraddr_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/recv_io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/recv_io_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/recvfrom_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/recvfrom_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/send_io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/send_io_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/shared/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/socket/unixsocket/shared/new.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/append_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/binmode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/binmode_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/bytes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/bytes_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/chars_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/chars_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/close_read_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/close_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/close_write_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/closed_read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/closed_read_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/closed_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/closed_write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/closed_write_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/codepoints_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/codepoints_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/each_byte_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_char_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/each_char_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_codepoint_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/each_codepoint_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/each_line_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/each_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/eof_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/eof_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/external_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/external_encoding_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/fcntl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/fcntl_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/fileno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/fileno_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/fixtures/classes.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/flush_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/flush_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/fsync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/fsync_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/getbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/getbyte_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/getc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/getc_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/getch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/getch_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/gets_spec.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/initialize_spec.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/internal_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/internal_encoding_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/isatty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/isatty_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/lineno_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/lines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/lines_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/open_spec.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/path_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/pid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/pid_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/pos_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/print_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/printf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/printf_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/putc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/putc_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/puts_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/puts_spec.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/read_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/read_nonblock_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/read_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/readbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/readbyte_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/readchar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/readchar_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/readline_spec.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/readlines_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/readpartial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/readpartial_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/reopen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/reopen_spec.rb</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/rewind_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/seek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/seek_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/set_encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/set_encoding_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/codepoints.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/codepoints.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/each.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each_byte.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/each_byte.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each_char.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/each_char.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/eof.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/eof.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/getc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/getc.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/isatty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/isatty.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/length.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/read.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/read.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/readchar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/readchar.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/sysread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/sysread.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/tell.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/tell.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/write.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/shared/write.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/string_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/stringio_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/stringio_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/sync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/sync_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/sysread_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/sysread_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/syswrite_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/syswrite_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/tell_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/truncate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/truncate_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/tty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/tty_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/ungetbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/ungetbyte_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/ungetc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/ungetc_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/write_nonblock_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/write_nonblock_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringio/write_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/append_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/beginning_of_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/beginning_of_line_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/bol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/bol_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/check_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/check_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/check_until_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/check_until_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/clear_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/concat_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/concat_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/dup_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/dup_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/element_reference_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/element_reference_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/empty_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/eos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/eos_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/exist_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/exist_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/get_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/get_byte_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/getbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/getbyte_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/getch_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/getch_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/initialize_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/inspect_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/match_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/matched_size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/matched_size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/matched_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/matched_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/must_C_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/must_C_version_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/peek_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/peek_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/peep_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/peep_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/pointer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/pointer_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/pos_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/post_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/post_match_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/pre_match_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/pre_match_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/reset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/rest_size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/rest_size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/rest_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/rest_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/restsize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/restsize_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/scan_full_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/scan_full_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/scan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/scan_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/scan_until_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/scan_until_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/search_full_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/search_full_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/bol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/bol.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/concat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/concat.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/eos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/eos.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/extract_range.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/extract_range.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/extract_range_matched.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/extract_range_matched.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/get_byte.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/get_byte.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/matched_size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/matched_size.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/peek.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/peek.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/pos.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/pos.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/rest_size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/rest_size.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/terminate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/shared/terminate.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/skip_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/skip_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/skip_until_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/skip_until_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/string_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/terminate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/terminate_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/unscan_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/stringscanner/unscan_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/alert_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/alert_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/close_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/constants_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/crit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/crit_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/debug_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/debug_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/emerg_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/emerg_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/err_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/err_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/facility_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/facility_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/ident_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/ident_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/info_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/info_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/inspect_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/instance_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/instance_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/log_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/log_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/mask_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/mask_spec.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/notice_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/notice_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/open_spec.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/opened_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/opened_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/options_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/options_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/reopen_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/reopen_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/shared/log.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/shared/log.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/shared/reopen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/shared/reopen.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/syslog/warning_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/syslog/warning_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/_close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/_close_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/callback_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/callback_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/close_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/delete_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/delete_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/initialize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/initialize_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/open_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/path_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/shared/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/shared/length.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/shared/unlink.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/shared/unlink.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tempfile/unlink_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tempfile/unlink_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/exclusive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/exclusive_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/clear_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/close_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/closed_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/deq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/deq_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/empty_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/enq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/enq_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/num_waiting_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/num_waiting_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/pop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/pop_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/push_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/push_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/shift_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/queue/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/queue/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/clear.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/clear.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/close.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/close.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/closed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/closed.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/deque.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/deque.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/empty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/empty.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/enque.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/enque.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/length.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/length.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/shared/queue/num_waiting.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/shared/queue/num_waiting.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/append_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/clear_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/clear_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/close_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/closed_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/deq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/deq_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/empty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/empty_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/enq_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/enq_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/length_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/length_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/max_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/max_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/new_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/num_waiting_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/num_waiting_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/pop_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/pop_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/push_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/push_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/shared/enque.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/shared/enque.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/shift_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/shift_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/thread/sizedqueue/size_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/thread/sizedqueue/size_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/httpdate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/httpdate_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/iso8601_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/iso8601_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/rfc2822_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/rfc2822_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/rfc822_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/rfc822_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/shared/rfc2822.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/shared/rfc2822.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/shared/xmlschema.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/shared/xmlschema.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/to_date_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/to_date_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/to_datetime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/to_datetime_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/to_time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/to_time_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/time/xmlschema_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/time/xmlschema_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/timeout/error_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/timeout/error_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/timeout/timeout_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/timeout/timeout_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/tmpdir/dir/tmpdir_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/tmpdir/dir/tmpdir_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/decode_www_form_component_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/decode_www_form_component_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/decode_www_form_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/decode_www_form_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/encode_www_form_component_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/encode_www_form_component_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/encode_www_form_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/encode_www_form_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/eql_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/equality_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/equality_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/escape/decode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/escape/decode_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/escape/encode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/escape/encode_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/escape/escape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/escape/escape_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/escape/unescape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/escape/unescape_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/extract_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/extract_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/fixtures/classes.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/fixtures/normalization.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/fixtures/normalization.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/build_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/merge_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/new2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/new2_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/path_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/set_typecode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/set_typecode_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/to_s_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ftp/typecode_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ftp/typecode_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/absolute_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/absolute_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/build2_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/build2_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/build_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/coerce_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/coerce_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/component_ary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/component_ary_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/component_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/component_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/default_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/default_port_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/eql_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/eql_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/equal_value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/fragment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/fragment_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/hierarchical_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/hierarchical_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/host_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/host_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/merge_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/minus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/minus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/normalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/normalize_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/opaque_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/opaque_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/password_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/password_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/path_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/plus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/port_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/query_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/query_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/registry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/registry_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/relative_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/relative_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/route_from_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/route_from_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/route_to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/route_to_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/scheme_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/scheme_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/select_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_fragment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_fragment_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_host_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_host_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_opaque_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_opaque_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_password_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_password_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_path_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_path_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_port_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_port_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_query_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_query_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_registry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_registry_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_scheme_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_scheme_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_user_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_user_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/set_userinfo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/set_userinfo_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/use_registry_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/use_registry_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/user_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/user_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/generic/userinfo_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/generic/userinfo_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/http/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/http/build_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/http/request_uri_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/http/request_uri_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/join_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/attributes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/attributes_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/build_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/dn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/dn_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/extensions_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/extensions_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/filter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/filter_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/hierarchical_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/hierarchical_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/scope_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/scope_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/set_attributes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/set_attributes_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/set_dn_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/set_dn_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/set_extensions_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/set_extensions_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/set_filter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/set_filter_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/ldap/set_scope_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/ldap/set_scope_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/build_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/build_spec.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/headers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/headers_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/set_headers_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/set_headers_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/set_to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/set_to_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/to_mailtext_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/to_mailtext_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/to_rfc822text_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/to_rfc822text_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/mailto/to_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/merge_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/merge_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/normalize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/normalize_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parse_spec.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/escape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/escape_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/extract_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/extract_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/inspect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/join_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/join_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/make_regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/make_regexp_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/parse_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/split_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/split_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/parser/unescape_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/parser/unescape_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/plus_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/plus_spec.rb</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/regexp_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/route_from_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/route_from_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/route_to_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/route_to_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/select_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/select_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/set_component_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/set_component_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/eql.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/shared/eql.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/extract.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/shared/extract.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/join.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/shared/join.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/shared/parse.rb</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/split_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/split_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/uri_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/uri_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/uri/util/make_components_hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/uri/util/make_components_hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/weakref/__getobj___spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/weakref/__getobj___spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/weakref/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/weakref/fixtures/classes.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/weakref/send_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/weakref/send_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/weakref/weakref_alive_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/weakref/weakref_alive_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/fixtures/classes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/fixtures/classes.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/_getproperty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/_getproperty_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/_invoke_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/_invoke_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/codepage_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/codepage_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/connect_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/connect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/const_load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/const_load_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/constants_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/create_guid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/create_guid_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/invoke_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/invoke_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/locale_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/locale_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/new_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_get_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_get_methods_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_method_help_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_method_help_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_method_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_method_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/setproperty_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/setproperty_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/shared/ole_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/shared/ole_method.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/shared/setproperty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole/shared/setproperty.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_event/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_event/new_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/dispid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/dispid_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/event_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/event_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/helpfile_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpstring_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/helpstring_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/invkind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/invkind_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/invoke_kind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/invoke_kind_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/name_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/new_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/offset_vtbl_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/offset_vtbl_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/params_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_type_detail_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/return_type_detail_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/return_type_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_vtype_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/return_vtype_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/shared/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/shared/name.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/size_opt_params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/size_opt_params_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/size_params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/size_params_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/to_s_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/visible_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_method/visible_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/default_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/default_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/input_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/input_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/name_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/ole_type_detail_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/ole_type_detail_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/ole_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/ole_type_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/optional_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/optional_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/retval_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/retval_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/shared/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/shared/name.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_param/to_s_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/guid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/guid_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/helpcontext_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/helpcontext_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/helpfile_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/helpfile_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/helpstring_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/helpstring_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/major_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/major_version_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/minor_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/minor_version_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/name_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/new_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/ole_classes_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/ole_classes_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/ole_methods_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/ole_methods_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/ole_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/ole_type_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/progid_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/progid_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/progids_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/progids_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/shared/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/shared/name.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/src_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/src_type_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/to_s_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/typekind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/typekind_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/typelibs_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/typelibs_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/variables_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/variables_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/visible_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_type/visible_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/name_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/ole_type_detail_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/ole_type_detail_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/ole_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/ole_type_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/shared/name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/shared/name.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/to_s_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/to_s_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/value_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/value_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/variable_kind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/variable_kind_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/varkind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/varkind_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/visible_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/win32ole/win32ole_variable/visible_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_builtin_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/add_builtin_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_domain_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/add_domain_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_private_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/add_private_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_ruby_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/add_ruby_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/detect_implicit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/detect_implicit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/dump_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/dump_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/dump_stream_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/dump_stream_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/each_node_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/each_node_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/emitter_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/emitter_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/fixtures/common.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/example_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/fixtures/example_class.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/strings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/fixtures/strings.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/test_yaml.yml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/fixtures/test_yaml.yml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/generic_parser_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/generic_parser_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_documents_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/load_documents_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/load_file_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/load_spec.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_stream_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/load_stream_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/object_maker_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/object_maker_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/parse_documents_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/parse_documents_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/parse_file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/parse_file_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/parse_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/parse_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/parser_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/parser_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/quick_emit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/quick_emit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/read_type_class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/read_type_class_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/shared/each_document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/shared/each_document.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/tagurize_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/tagurize_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/to_yaml_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/to_yaml_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/transfer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/transfer_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/try_implicit_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/yaml/try_implicit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/adler32_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/adler32_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/crc32_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/crc32_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/crc_table_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/crc_table_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/append_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/deflate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/deflate_spec.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/flush_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/flush_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/params_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/params_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/set_dictionary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/deflate/set_dictionary_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/close_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/closed_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/comment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/comment_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/crc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/crc_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/finish_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/finish_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/level_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/level_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/mtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/mtime_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/orig_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/orig_name_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/os_code_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/os_code_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/sync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/sync_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/to_io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/to_io_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/wrap_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipfile/wrap_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_byte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/each_byte_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_line_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/each_line_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/each_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/eof_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/eof_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/getc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/getc_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/gets_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/gets_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/lineno_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/lineno_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/open_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/pos_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/read_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/read_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readchar_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/readchar_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readline_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/readline_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readlines_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/readlines_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readpartial_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/readpartial_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/rewind_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/rewind_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/shared/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/shared/each.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/tell_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/ungetbyte_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/ungetbyte_spec.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/ungetc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/ungetc_spec.rb</a></td><td class='right'>292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/unused_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipreader/unused_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/append_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/comment_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/comment_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/flush_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/flush_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/mtime_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/mtime_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/open_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/open_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/orig_name_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/orig_name_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/pos_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/pos_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/print_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/print_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/printf_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/printf_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/putc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/putc_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/puts_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/puts_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/tell_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/tell_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/write_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/gzipwriter/write_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/append_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/append_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/finish_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/finish_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/inflate_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/inflate_spec.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/new_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/set_dictionary_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/set_dictionary_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/sync_point_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/sync_point_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/sync_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/inflate/sync_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zlib_version_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zlib_version_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/adler_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/adler_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/avail_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/avail_in_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/avail_out_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/avail_out_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/close_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/close_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/closed_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/closed_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/data_type_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/data_type_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/end_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/end_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/ended_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/ended_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/finish_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/finish_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/finished_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/finished_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/flush_next_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/flush_next_in_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/flush_next_out_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/flush_next_out_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/reset_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/reset_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/stream_end_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/stream_end_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/total_in_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/total_in_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/total_out_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/library/zlib/zstream/total_out_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/README</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/array_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/array_spec.rb</a></td><td class='right'>463</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/bignum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/bignum_spec.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/boolean_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/boolean_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/class_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/class_spec.rb</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/complex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/complex_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/constants_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/constants_spec.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/data_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/encoding_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/encoding_spec.rb</a></td><td class='right'>485</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/enumerator_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/enumerator_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/exception_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/exception_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/.gitignore?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/.gitignore</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/array_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/array_spec.c</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/bignum_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/bignum_spec.c</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/boolean_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/boolean_spec.c</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/class_spec.c</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_under_autoload_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/class_under_autoload_spec.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/complex_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/complex_spec.c</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/constants_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/constants_spec.c</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/data_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/data_spec.c</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/encoding_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/encoding_spec.c</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/enumerator_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/enumerator_spec.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/exception_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/exception_spec.c</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/file_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/file_spec.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/fixnum_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/fixnum_spec.c</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/float_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/float_spec.c</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/gc_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/gc_spec.c</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/globals_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/globals_spec.c</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/hash_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/hash_spec.c</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/integer_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/integer_spec.c</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/io_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/io_spec.c</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/kernel_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/kernel_spec.c</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/marshal_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/marshal_spec.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/module_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/module_spec.c</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/module_under_autoload_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/module_under_autoload_spec.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/mutex_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/mutex_spec.c</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/numeric_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/numeric_spec.c</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/object_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/object_spec.c</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/proc_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/proc_spec.c</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/range_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/range_spec.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/rational_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/rational_spec.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/regexp_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/regexp_spec.c</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/rubyspec.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/rubyspec.h</a></td><td class='right'>613</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/st_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/st_spec.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/string_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/string_spec.c</a></td><td class='right'>698</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/struct_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/struct_spec.c</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/symbol_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/symbol_spec.c</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/thread_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/thread_spec.c</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/time_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/time_spec.c</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/typed_data_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/typed_data_spec.c</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/util_spec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/ext/util_spec.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/file_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/file_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixnum_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixnum_spec.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/class.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/const_get.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/const_get.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/const_get_at.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/const_get_at.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/const_get_from.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/const_get_from.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/const_get_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/const_get_object.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/encoding.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/foo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/foo.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/module.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/module_autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/module_autoload.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/path_to_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/path_to_class.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/proc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/fixtures/proc.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/float_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/float_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/gc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/gc_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/globals_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/globals_spec.rb</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/hash_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/hash_spec.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/integer_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/integer_spec.rb</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/io_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/io_spec.rb</a></td><td class='right'>344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/kernel_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/kernel_spec.rb</a></td><td class='right'>532</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/marshal_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/marshal_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/module_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/module_spec.rb</a></td><td class='right'>349</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/mutex_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/mutex_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/numeric_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/numeric_spec.rb</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/object_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/object_spec.rb</a></td><td class='right'>835</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/proc_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/proc_spec.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/rake_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/rake_helper.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/range_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/range_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/rational_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/rational_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/regexp_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/regexp_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/spec_helper.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/st_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/st_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/string_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/string_spec.rb</a></td><td class='right'>812</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/struct_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/struct_spec.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/symbol_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/symbol_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/thread_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/thread_spec.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/time_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/time_spec.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/typed_data_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/typed_data_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/util_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/optional/capi/util_spec.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2011_4815_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/security/cve_2011_4815_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2013_4164_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/security/cve_2013_4164_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2014_8080_spec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/security/cve_2014_8080_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/basicobject/method_missing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/basicobject/method_missing.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/basicobject/send.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/basicobject/send.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/Complex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/Complex.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/abs.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/abs2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/abs2.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/arg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/arg.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/coerce.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/coerce.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/conjugate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/conjugate.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/constants.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/constants.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/denominator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/denominator.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/divide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/divide.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/equal_value.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/exponent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/exponent.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/float/arg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/float/arg.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/hash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/hash.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/image.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/inspect.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/minus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/minus.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/multiply.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/multiply.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numerator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numerator.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numeric/arg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numeric/arg.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numeric/conj.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numeric/conj.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numeric/imag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numeric/imag.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numeric/polar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numeric/polar.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/numeric/real.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/numeric/real.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/plus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/plus.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/polar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/polar.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/real.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/real.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/rect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/rect.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/complex/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/complex/to_s.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/each.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/each.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/enum_cons.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/enum_cons.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/enum_for.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/enum_for.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/new.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/next.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/next.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/rewind.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/rewind.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/with_index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/with_index.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/with_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/enumerator/with_object.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/fiber/resume.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/fiber/resume.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/blockdev.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/blockdev.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/chardev.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/chardev.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/directory.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/directory.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/executable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/executable.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/executable_real.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/executable_real.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/exist.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/exist.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/file.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/grpowned.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/grpowned.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/identical.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/identical.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/owned.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/owned.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/pipe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/pipe.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/readable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/readable.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/readable_real.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/readable_real.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/setgid.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/setgid.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/setuid.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/setuid.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/size.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/size.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/socket.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/sticky.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/sticky.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/symlink.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/symlink.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/world_readable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/world_readable.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/world_writable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/world_writable.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/writable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/writable.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/writable_real.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/writable_real.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/file/zero.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/file/zero.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/io/putc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/io/putc.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/kernel/equal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/kernel/equal.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/kernel/object_id.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/kernel/object_id.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/kernel/raise.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/kernel/raise.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/math/atanh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/math/atanh.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/process/abort.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/process/abort.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/process/exit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/process/exit.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/process/fork.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/process/fork.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/Rational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/Rational.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/abs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/abs.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/ceil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/ceil.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/coerce.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/coerce.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/comparison.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/comparison.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/denominator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/denominator.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/div.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/div.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/divide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/divide.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/divmod.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/divmod.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/equal_value.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/equal_value.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/exponent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/exponent.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/fdiv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/fdiv.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/floor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/floor.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/hash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/hash.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/inspect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/inspect.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/marshal_dump.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/marshal_dump.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/marshal_load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/marshal_load.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/minus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/minus.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/modulo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/modulo.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/multiply.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/multiply.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/numerator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/numerator.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/plus.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/plus.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/quo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/quo.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/remainder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/remainder.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/round.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/round.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/to_f.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/to_f.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/to_i.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/to_i.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/to_r.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/to_r.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/to_s.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/rational/truncate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/rational/truncate.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/string/times.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/string/times.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/time/strftime_for_date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/time/strftime_for_date.rb</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/time/strftime_for_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/shared/time/strftime_for_time.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/spec_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>spec/ruby/spec_helper.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sprintf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>sprintf.c</a></td><td class='right'>1478</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/st.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>st.c</a></td><td class='right'>2539</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/st.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>st.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/strftime.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>strftime.c</a></td><td class='right'>1267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/string.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>string.c</a></td><td class='right'>11200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.4%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 87.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/struct.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>struct.c</a></td><td class='right'>1403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/symbol.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>symbol.c</a></td><td class='right'>1157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/symbol.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>symbol.h</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/Doxyfile.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/Doxyfile.tmpl</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/GNUmakefile.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/GNUmakefile.in</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/configure-ext.mk.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/configure-ext.mk.tmpl</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/encdb.h.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/encdb.h.tmpl</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/extinit.c.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/extinit.c.tmpl</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/exts.mk.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/exts.mk.tmpl</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/fake.rb.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/fake.rb.in</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/id.c.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/id.c.tmpl</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/id.h.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/id.h.tmpl</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/insns.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/insns.inc.tmpl</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/insns_info.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/insns_info.inc.tmpl</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/known_errors.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/known_errors.inc.tmpl</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/limits.c.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/limits.c.tmpl</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/minsns.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/minsns.inc.tmpl</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/opt_sc.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/opt_sc.inc.tmpl</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/optinsn.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/optinsn.inc.tmpl</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/optunifs.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/optunifs.inc.tmpl</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/prelude.c.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/prelude.c.tmpl</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/ruby-runner.h.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/ruby-runner.h.in</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/ruby.pc.in?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/ruby.pc.in</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/sizes.c.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/sizes.c.tmpl</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/transdb.h.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/transdb.h.tmpl</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/unicode_norm_gen.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/unicode_norm_gen.tmpl</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/verconf.h.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/verconf.h.tmpl</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/vm.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/vm.inc.tmpl</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/vmtc.inc.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/vmtc.inc.tmpl</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/yarvarch.en?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/yarvarch.en</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/yarvarch.ja?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/yarvarch.ja</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/yasmdata.rb.tmpl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>template/yasmdata.rb.tmpl</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/array/test_resize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/array/test_resize.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_big2str.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_big2str.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_bigzero.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_bigzero.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_div.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_div.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_mul.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_mul.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_pack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_pack.rb</a></td><td class='right'>399</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bignum/test_str2big.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bignum/test_str2big.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/bug_reporter/test_bug_reporter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/bug_reporter/test_bug_reporter.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/class/test_class2name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/class/test_class2name.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/debug/test_debug.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/debug/test_debug.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/debug/test_profile_frames.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/debug/test_profile_frames.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/exception/test_data_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/exception/test_data_error.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/exception/test_enc_raise.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/exception/test_enc_raise.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/exception/test_ensured.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/exception/test_ensured.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/exception/test_exception_at_throwing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/exception/test_exception_at_throwing.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/file/test_stat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/file/test_stat.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/float/test_nextafter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/float/test_nextafter.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/funcall/test_funcall.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/funcall/test_funcall.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/funcall/test_passing_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/funcall/test_passing_block.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/gvl/test_last_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/gvl/test_last_thread.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/hash/test_delete.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/hash/test_delete.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/integer/test_integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/integer/test_integer.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/integer/test_my_integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/integer/test_my_integer.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/iseq_load/test_iseq_load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/iseq_load/test_iseq_load.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/iter/test_iter_break.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/iter/test_iter_break.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/iter/test_yield_block.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/iter/test_yield_block.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/load/script.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/load/script.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/load/test_dot_dot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/load/test_dot_dot.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/load/test_protect.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/load/test_protect.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/marshal/test_internal_ivar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/marshal/test_internal_ivar.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/marshal/test_usrmarshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/marshal/test_usrmarshal.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/method/test_arity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/method/test_arity.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/num2int/test_num2int.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/num2int/test_num2int.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/path_to_class/test_path_to_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/path_to_class/test_path_to_class.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/popen_deadlock/test_popen_deadlock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/popen_deadlock/test_popen_deadlock.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/postponed_job/test_postponed_job.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/postponed_job/test_postponed_job.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/proc/test_bmethod.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/proc/test_bmethod.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/rational/test_rat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/rational/test_rat.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/st/test_foreach.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/st/test_foreach.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/st/test_numhash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/st/test_numhash.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/st/test_update.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/st/test_update.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_capacity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_capacity.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_coderange.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_coderange.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_cstr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_cstr.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_ellipsize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_ellipsize.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_enc_associate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_enc_associate.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_enc_str_buf_cat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_enc_str_buf_cat.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_external_new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_external_new.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_fstring.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_fstring.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_modify_expand.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_modify_expand.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_nofree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_nofree.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_normalize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_normalize.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_qsort.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_qsort.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_rb_str_dup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_rb_str_dup.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_set_len.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/string/test_set_len.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/struct/test_duplicate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/struct/test_duplicate.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/struct/test_len.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/struct/test_len.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/struct/test_member.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/struct/test_member.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/symbol/noninterned_name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/symbol/noninterned_name.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/symbol/test_inadvertent_creation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/symbol/test_inadvertent_creation.rb</a></td><td class='right'>494</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/symbol/test_type.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/symbol/test_type.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_bug-3571.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_bug-3571.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_bug-5832.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_bug-5832.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_notimplement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_notimplement.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_printf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_printf.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_recursion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_recursion.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_scan_args.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/test_scan_args.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/thread_fd_close/test_thread_fd_close.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/thread_fd_close/test_thread_fd_close.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/time/test_new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/time/test_new.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/tracepoint/test_tracepoint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/tracepoint/test_tracepoint.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/typeddata/test_typeddata.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/typeddata/test_typeddata.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/vm/test_at_exit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/vm/test_at_exit.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/win32/test_console_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/win32/test_console_attr.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/win32/test_dln.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/win32/test_dln.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/win32/test_fd_setsize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/-ext-/win32/test_fd_setsize.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/base64/test_base64.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/base64/test_base64.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/benchmark/test_benchmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/benchmark/test_benchmark.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/test_bigdecimal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/bigdecimal/test_bigdecimal.rb</a></td><td class='right'>1842</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/test_bigdecimal_util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/bigdecimal/test_bigdecimal_util.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/test_bigmath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/bigdecimal/test_bigmath.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/testbase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/bigdecimal/testbase.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_cookie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_cookie.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_core.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_header.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_modruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_modruby.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_multipart.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_multipart.rb</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_session.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_session.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_tag_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_tag_helper.rb</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/test_cgi_util.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/testdata/file1.html?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/testdata/file1.html</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/testdata/large.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/testdata/large.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 156414 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/testdata/small.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/testdata/small.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 82 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/update_env.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/cgi/update_env.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/colors?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/colors</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/coverage/test_coverage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/coverage/test_coverage.rb</a></td><td class='right'>495</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/base.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/line_endings.gz?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/line_endings.gz</a></td><td class='right'>bin</td><td class='graph'>0 -> 59 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/csv/test_csv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_csv.rb</a></td><td class='right'>1753</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_csv_parsing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_csv_parsing.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_csv_writing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_csv_writing.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_data_converters.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_data_converters.rb</a></td><td class='right'>273</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_encodings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_encodings.rb</a></td><td class='right'>338</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_features.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_features.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_headers.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_headers.rb</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_interface.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_interface.rb</a></td><td class='right'>393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_row.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_row.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_table.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/test_table.rb</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/ts_all.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/csv/ts_all.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_arith.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_arith.rb</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_attr.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_base.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_compat.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_compat.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_conv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_conv.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_marshal.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_new.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_new.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_parse.rb</a></td><td class='right'>1125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_strftime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_strftime.rb</a></td><td class='right'>431</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_strptime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_date_strptime.rb</a></td><td class='right'>513</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_switch_hitter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/date/test_switch_hitter.rb</a></td><td class='right'>664</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/dbm/test_dbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dbm/test_dbm.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/digest/digest/foo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/digest/digest/foo.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/digest/test_digest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/digest/test_digest.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/digest/test_digest_extend.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/digest/test_digest_extend.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/drbtest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/drbtest.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ignore_test_drb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ignore_test_drb.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_acl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/test_acl.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_drb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/test_drb.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_drbssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/test_drbssl.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_drbunix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/test_drbunix.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_array.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_array_drbssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_array_drbssl.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_array_drbunix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_array_drbunix.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_drb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_drb.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_drb_drbssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_drb_drbssl.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_drb_drbunix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_drb_drbunix.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/drb/ut_eq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_eq.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/drb/ut_eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_eval.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_large.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_large.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_port.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_port.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_safe1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_safe1.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_timerholder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/drb/ut_timerholder.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/dummy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/dummy.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/helper.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_array_create.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_array_create.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_cmethod.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_cmethod.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_function_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_function_entry.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_gc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_gc.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_hash_create.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_hash_create.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_load.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_method_cache.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_method_cache.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_object_create_start.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_object_create_start.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_raise.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_raise.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_require.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_singleton_function.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_singleton_function.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/dtrace/test_string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/dtrace/test_string.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/erb/hello.erb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/erb/hello.erb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/erb/test_erb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/erb/test_erb.rb</a></td><td class='right'>613</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/erb/test_erb_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/erb/test_erb_command.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/erb/test_erb_m17n.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/erb/test_erb_m17n.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/etc/test_etc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/etc/test_etc.rb</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestException.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/excludes/TestException.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestIO_Console.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/excludes/TestIO_Console.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestISeq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/excludes/TestISeq.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestThread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/excludes/TestThread.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/helper.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_c_struct_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_c_struct_entry.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_c_union_entity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_c_union_entity.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_closure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_closure.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_cparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_cparser.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_fiddle.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_fiddle.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_func.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_func.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_function.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_function.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_handle.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_handle.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_import.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_import.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_pointer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fiddle/test_pointer.rb</a></td><td class='right'>236</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fileutils/clobber.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/clobber.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/fileasserts.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/fileasserts.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_dryrun.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/test_dryrun.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_fileutils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/test_fileutils.rb</a></td><td class='right'>964</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_nowrite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/test_nowrite.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_verbose.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/test_verbose.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fileutils/visibility_tests.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/fileutils/visibility_tests.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/gdbm/test_gdbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/gdbm/test_gdbm.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/io/console/test_io_console.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/io/console/test_io_console.rb</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/io/nonblock/test_flush.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/io/nonblock/test_flush.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/io/wait/test_io_wait.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/io/wait/test_io_wait.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_completion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_completion.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_init.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_init.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_option.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_option.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_raise_no_backtrace_exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_raise_no_backtrace_exception.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_ruby-lex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_ruby-lex.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_workspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/irb/test_workspace.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail10.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail10.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail11.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail11.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail12.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail12.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail13.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail13.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail14.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail14.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail18.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail18.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail19.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail19.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail2.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail2.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail20.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail20.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail21.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail21.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail22.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail22.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail23.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail23.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail24.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail24.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail25.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail25.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail27.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail27.json</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail28.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail28.json</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail3.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail3.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail4.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail4.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail5.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail5.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail6.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail6.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail7.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail7.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail8.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail8.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail9.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/fail9.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/obsolete_fail1.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/obsolete_fail1.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass1.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass1.json</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass15.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass15.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass16.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass16.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass17.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass17.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass2.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass2.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass26.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass26.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/pass3.json?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/fixtures/pass3.json</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_addition_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_addition_test.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_common_interface_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_common_interface_test.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_encoding_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_encoding_test.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_ext_parser_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_ext_parser_test.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_fixtures_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_fixtures_test.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_generator_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_generator_test.rb</a></td><td class='right'>377</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_generic_object_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_generic_object_test.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_parser_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_parser_test.rb</a></td><td class='right'>472</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/json_string_matching_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/json_string_matching_test.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/test_helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/json/test_helper.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/-test-/integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/-test-/integer.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/envutil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/envutil.rb</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/find_executable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/find_executable.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/iseq_loader_checker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/iseq_loader_checker.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/leakchecker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/leakchecker.rb</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/memory_status.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/memory_status.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/minitest/README.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/minitest/README.txt</a></td><td class='right'>457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/minitest/autorun.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/minitest/autorun.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/minitest/benchmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/minitest/benchmark.rb</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/minitest/mock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/minitest/mock.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/minitest/unit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/minitest/unit.rb</a></td><td class='right'>1414</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/profile_test_all.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/profile_test_all.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/test/unit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/test/unit.rb</a></td><td class='right'>1176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/test/unit/assertions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/test/unit/assertions.rb</a></td><td class='right'>943</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/test/unit/parallel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/test/unit/parallel.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/test/unit/testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/test/unit/testcase.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/tracepointchecker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/tracepointchecker.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/with_different_ofs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/with_different_ofs.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/lib/zombie_hunter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/lib/zombie_hunter.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/logger/test_logdevice.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/logger/test_logdevice.rb</a></td><td class='right'>838</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/logger/test_logger.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/logger/test_logger.rb</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/logger/test_severity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/logger/test_severity.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/matrix/test_matrix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/matrix/test_matrix.rb</a></td><td class='right'>651</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/matrix/test_vector.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/matrix/test_vector.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/minitest/metametameta.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/minitest/metametameta.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/minitest/test_minitest_benchmark.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/minitest/test_minitest_benchmark.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/minitest/test_minitest_mock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/minitest/test_minitest_mock.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/minitest/test_minitest_unit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/minitest/test_minitest_unit.rb</a></td><td class='right'>1779</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/misc/test_ruby_mode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/misc/test_ruby_mode.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/base.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_config.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_constant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_constant.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_convertible.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_convertible.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_find_executable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_find_executable.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_flags.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_flags.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_framework.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_framework.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_have_func.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_have_func.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_have_library.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_have_library.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_have_macro.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_have_macro.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_libs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_libs.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_signedness.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_signedness.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_sizeof.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/mkmf/test_sizeof.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/monitor/test_monitor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/monitor/test_monitor.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/fixtures/cacert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/fixtures/cacert.pem</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/fixtures/dhparams.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/fixtures/dhparams.pem</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/fixtures/server.crt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/fixtures/server.crt</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/fixtures/server.key?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/fixtures/server.key</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/ftp/test_buffered_socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/ftp/test_buffered_socket.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/ftp/test_ftp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/ftp/test_ftp.rb</a></td><td class='right'>2471</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/ftp/test_mlsx_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/ftp/test_mlsx_entry.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_buffered_io.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_buffered_io.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_http.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_http.rb</a></td><td class='right'>1186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_http_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_http_request.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_httpheader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_httpheader.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_httpresponse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_httpresponse.rb</a></td><td class='right'>437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_httpresponses.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_httpresponses.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/test_https.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_https.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_https_proxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/test_https_proxy.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/http/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/http/utils.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/imap/Makefile?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/imap/Makefile</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/imap/test_imap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/imap/test_imap.rb</a></td><td class='right'>769</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/imap/test_imap_response_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/imap/test_imap_response_parser.rb</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/pop/test_pop.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/pop/test_pop.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/protocol/test_protocol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/protocol/test_protocol.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/smtp/test_response.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/smtp/test_response.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/smtp/test_smtp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/smtp/test_smtp.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/smtp/test_ssl_socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/net/smtp/test_ssl_socket.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/nkf/test_kconv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/nkf/test_kconv.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/nkf/test_nkf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/nkf/test_nkf.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/objspace/test_objspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/objspace/test_objspace.rb</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/open-uri/test_open-uri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/open-uri/test_open-uri.rb</a></td><td class='right'>900</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/open-uri/test_ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/open-uri/test_ssl.rb</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/dh1024.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/dh1024.pem</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/dsa1024.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/dsa1024.pem</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/dsa256.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/dsa256.pem</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/dsa512.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/dsa512.pem</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/p256.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/p256.pem</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/rsa1024.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/rsa1024.pem</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/rsa2048.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/fixtures/pkey/rsa2048.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/openssl/ssl_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/ssl_server.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_asn1.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_asn1.rb</a></td><td class='right'>525</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_bn.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_bn.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_buffering.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_buffering.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_cipher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_cipher.rb</a></td><td class='right'>358</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_config.rb</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_digest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_digest.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_engine.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_engine.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_fips.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_fips.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_hmac.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_hmac.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_kdf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_kdf.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ns_spki.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_ns_spki.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_ocsp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_ocsp.rb</a></td><td class='right'>310</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pair.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pair.rb</a></td><td class='right'>506</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_pkcs12.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkcs12.rb</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkcs7.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkcs7.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_pkey_dh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkey_dh.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_pkey_dsa.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkey_dsa.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_pkey_ec.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkey_ec.rb</a></td><td class='right'>347</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkey_rsa.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_pkey_rsa.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_random.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_random.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_ssl.rb</a></td><td class='right'>1674</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_ssl_session.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_ssl_session.rb</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_x509attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509attr.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509cert.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509cert.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509crl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509crl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509ext.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509ext.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509name.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509req.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509req.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/test_x509store.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/ut_eof.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/ut_eof.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/openssl/utils.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_acceptable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_acceptable.rb</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_autoconf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_autoconf.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_bash_completion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_bash_completion.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_cclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_cclass.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_getopts.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_getopts.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_kwargs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_kwargs.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_noarg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_noarg.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_optarg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_optarg.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_optparse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_optparse.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_placearg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_placearg.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_reqarg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_reqarg.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_summary.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_summary.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_zsh_completion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/optparse/test_zsh_completion.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ostruct/test_ostruct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ostruct/test_ostruct.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/pathname/test_pathname.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/pathname/test_pathname.rb</a></td><td class='right'>1043</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/handlers/test_recorder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/handlers/test_recorder.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/helper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/helper.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/json/test_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/json/test_stream.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/nodes/test_enumerable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/nodes/test_enumerable.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_alias_and_anchor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_alias_and_anchor.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_array.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_boolean.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_boolean.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_class.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_coder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_coder.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_date_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_date_time.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_deprecated.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_deprecated.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_document.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_emitter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_emitter.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_encoding.rb</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_exception.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_hash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_hash.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_json_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_json_tree.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_marshalable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_marshalable.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_merge_keys.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_merge_keys.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_nil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_nil.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_null.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_null.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_numeric.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_numeric.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_object.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_object_references.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_object_references.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_omap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_omap.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_parser.rb</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_psych.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_psych.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_safe_load.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_safe_load.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_scalar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_scalar.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_scalar_scanner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_scalar_scanner.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_serialize_subclasses.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_serialize_subclasses.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_set.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_stream.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_string.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_struct.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_symbol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_symbol.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_tainted.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_tainted.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_tree_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_tree_builder.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_yaml.rb</a></td><td class='right'>1293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_yamldbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_yamldbm.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_yamlstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/test_yamlstore.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/visitors/test_depth_first.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/visitors/test_depth_first.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/visitors/test_emitter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/visitors/test_emitter.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/visitors/test_to_ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/visitors/test_to_ruby.rb</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/visitors/test_yaml_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/psych/visitors/test_yaml_tree.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Amps%20and%20angle%20encoding.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Amps and angle encoding.text</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Auto%20links.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Auto links.text</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Backslash%20escapes.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Backslash escapes.text</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Blockquotes%20with%20code%20blocks.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Blockquotes with code blocks.text</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Code%20Blocks.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Code Blocks.text</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Code%20Spans.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Code Spans.text</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Hard-wrapped%20paragraphs%20with%20list-like%20lines.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Horizontal%20rules.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Horizontal rules.text</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Inline%20HTML%20(Advanced).text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Inline HTML (Advanced).text</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Inline%20HTML%20(Simple).text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Inline HTML (Simple).text</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Inline%20HTML%20comments.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Inline HTML comments.text</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Links,%20inline%20style.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Links, inline style.text</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Links,%20reference%20style.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Links, reference style.text</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Links,%20shortcut%20references.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Links, shortcut references.text</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Literal%20quotes%20in%20titles.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Literal quotes in titles.text</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Markdown%20Documentation%20-%20Basics.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Basics.text</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Markdown%20Documentation%20-%20Syntax.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text</a></td><td class='right'>888</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Nested%20blockquotes.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Nested blockquotes.text</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Ordered%20and%20unordered%20lists.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Ordered and unordered lists.text</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Strong%20and%20em%20together.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Strong and em together.text</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Tabs.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Tabs.text</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Tidyness.text?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/MarkdownTest_1.0.3/Tidyness.text</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/README</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/binary.dat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/binary.dat</a></td><td class='right'>bin</td><td class='graph'>0 -> 1024 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/hidden.zip.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/hidden.zip.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rdoc/parsers/test_parse_c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/parsers/test_parse_c.rb</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test.ja.largedoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test.ja.largedoc</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test.ja.rdoc?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test.ja.rdoc</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test.ja.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test.ja.txt</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_alias.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_alias.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_any_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_any_method.rb</a></td><td class='right'>470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_attr.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_class_module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_class_module.rb</a></td><td class='right'>1494</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_code_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_code_object.rb</a></td><td class='right'>440</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_comment.rb</a></td><td class='right'>496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_constant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_constant.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_context.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_context.rb</a></td><td class='right'>955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_context_section.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_context_section.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_cross_reference.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_cross_reference.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_encoding.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_extend.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_extend.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_darkfish.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_darkfish.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_json_index.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_json_index.rb</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_markup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_markup.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_pot.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot_po.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_pot_po.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot_po_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_pot_po_entry.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_ri.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_generator_ri.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_i18n_locale.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_i18n_locale.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_i18n_text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_i18n_text.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_include.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markdown.rb</a></td><td class='right'>1018</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markdown_test.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markdown_test.rb</a></td><td class='right'>1883</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_attribute_manager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_attribute_manager.rb</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_attributes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_attributes.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_document.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_formatter.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_hard_break.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_hard_break.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_heading.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_heading.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_include.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_include.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_indented_paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_indented_paragraph.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_paragraph.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_parser.rb</a></td><td class='right'>1668</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_pre_process.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_pre_process.rb</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_raw.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_raw.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_ansi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_ansi.rb</a></td><td class='right'>370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_bs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_bs.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_html.rb</a></td><td class='right'>809</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html_crossref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_html_crossref.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html_snippet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_html_snippet.rb</a></td><td class='right'>711</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_joined_paragraph.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_label.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_label.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_markdown.rb</a></td><td class='right'>390</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_rdoc.rb</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_table_of_contents.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_table_of_contents.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_tt_only.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_to_tt_only.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_verbatim.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_markup_verbatim.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_method_attr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_method_attr.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_normal_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_normal_class.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_normal_module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_normal_module.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_options.rb</a></td><td class='right'>760</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser.rb</a></td><td class='right'>323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_c.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_c.rb</a></td><td class='right'>1960</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_changelog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_changelog.rb</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_markdown.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_markdown.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_rd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_rd.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_ruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_ruby.rb</a></td><td class='right'>3845</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_simple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_parser_simple.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rd.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_block_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rd_block_parser.rb</a></td><td class='right'>536</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_inline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rd_inline.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_inline_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rd_inline_parser.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rdoc.rb</a></td><td class='right'>486</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_require.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_ri_driver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_ri_driver.rb</a></td><td class='right'>1489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_ri_paths.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_ri_paths.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rubygems_hook.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_rubygems_hook.rb</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_servlet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_servlet.rb</a></td><td class='right'>538</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_single_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_single_class.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_stats.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_stats.rb</a></td><td class='right'>723</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_store.rb</a></td><td class='right'>991</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_task.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_task.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_text.rb</a></td><td class='right'>540</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_token_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_token_stream.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_tom_doc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_tom_doc.rb</a></td><td class='right'>521</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/test_rdoc_top_level.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/test_rdoc_top_level.rb</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/xref_data.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/xref_data.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/xref_test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rdoc/xref_test_case.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/readline/test_readline.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/readline/test_readline.rb</a></td><td class='right'>612</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/readline/test_readline_history.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/readline/test_readline_history.rb</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/resolv/test_addr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/resolv/test_addr.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/resolv/test_dns.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/resolv/test_dns.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/resolv/test_mdns.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/resolv/test_mdns.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/resolv/test_resource.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/resolv/test_resource.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/LostineRiver.kml.gz?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/LostineRiver.kml.gz</a></td><td class='right'>bin</td><td class='graph'>0 -> 50154 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/ProductionSupport.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/ProductionSupport.xml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/axis.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/axis.xml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/bad.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/bad.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/basic.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/basic.xml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/basicupdate.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/basicupdate.xml</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/broken.rss?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/broken.rss</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/contents.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/contents.xml</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/dash.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/dash.xml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/defaultNamespace.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/defaultNamespace.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/doctype_test.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/doctype_test.xml</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/documentation.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/documentation.xml</a></td><td class='right'>542</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/euc.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/euc.xml</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/evaluate.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/evaluate.xml</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/fibo.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/fibo.xml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/foo.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/foo.xml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/google.2.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/google.2.xml</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/id.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/id.xml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/iso8859-1.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/iso8859-1.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/jaxen24.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/jaxen24.xml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/jaxen3.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/jaxen3.xml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/lang.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/lang.xml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/lang0.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/lang0.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/message.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/message.xml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/moreover.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/moreover.xml</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/much_ado.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/much_ado.xml</a></td><td class='right'>6850</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/namespaces.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/namespaces.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/nitf.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/nitf.xml</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/numbers.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/numbers.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/ofbiz-issues-full-177.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/ofbiz-issues-full-177.xml</a></td><td class='right'>13971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 15.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 84.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/pi.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/pi.xml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/pi2.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/pi2.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/project.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/project.xml</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/simple.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/simple.xml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/stream_accents.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/stream_accents.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/t63-1.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/t63-1.xml</a></td><td class='right'>bin</td><td class='graph'>0 -> 161690 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/t63-2.svg?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/t63-2.svg</a></td><td class='right'>2828</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/t75.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/t75.xml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/test/tests.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/test/tests.xml</a></td><td class='right'>683</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/test/tests.xsl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/test/tests.xsl</a></td><td class='right'>369</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/testNamespaces.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/testNamespaces.xml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/testsrc.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/testsrc.xml</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/text.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/text.xml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/ticket_61.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/ticket_61.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/ticket_68.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/ticket_68.xml</a></td><td class='right'>590</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/tutorial.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/tutorial.xml</a></td><td class='right'>678</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/underscore.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/underscore.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/utf16.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/utf16.xml</a></td><td class='right'>bin</td><td class='graph'>0 -> 207464 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/web.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/web.xml</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/web2.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/web2.xml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/working.rss?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/working.rss</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/xmlfile-bug.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/xmlfile-bug.xml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/xp.tst?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/xp.tst</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/data/yahoo.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/data/yahoo.xml</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/listener.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/listener.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parse/test_document_type_declaration.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parse/test_document_type_declaration.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parse/test_notation_declaration.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parse/test_notation_declaration.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parser/test_sax2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parser/test_sax2.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parser/test_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parser/test_stream.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parser/test_tree.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parser/test_tree.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/parser/test_ultra_light.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/parser/test_ultra_light.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/rexml_test_utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/rexml_test_utils.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_attributes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_attributes.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_attributes_mixin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_attributes_mixin.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_changing_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_changing_encoding.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_comment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_comment.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_contrib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_contrib.rb</a></td><td class='right'>585</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_core.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_core.rb</a></td><td class='right'>1468</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_doctype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_doctype.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_document.rb</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_element.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_element.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_elements.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_elements.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_encoding.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_entity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_entity.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_functions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_functions.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_functions_number.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_functions_number.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_jaxen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_jaxen.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_light.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_light.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_lightparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_lightparser.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_listener.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_listener.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_martin_fowler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_martin_fowler.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_namespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_namespace.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_order.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_order.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_preceding_sibling.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_preceding_sibling.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_pullparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_pullparser.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_rexml_issuezilla.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_rexml_issuezilla.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_sax.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_sax.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_stream.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_stream.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_text.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_ticket_80.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_ticket_80.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_validation_rng.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_validation_rng.rb</a></td><td class='right'>793</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/test_xml_declaration.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/test_xml_declaration.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_attribute.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_attribute.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_axis_preceding_sibling.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_axis_preceding_sibling.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_base.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_base.rb</a></td><td class='right'>1090</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_node.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_node.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_predicate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_predicate.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rexml/xpath/test_text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rexml/xpath/test_text.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rinda/test_rinda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rinda/test_rinda.rb</a></td><td class='right'>679</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rinda/test_tuplebag.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rinda/test_tuplebag.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/dummyparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/dummyparser.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_files.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_filter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_filter.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_lexer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_lexer.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_parser_events.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_parser_events.rb</a></td><td class='right'>1505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_ripper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_ripper.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_scanner_events.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_scanner_events.rb</a></td><td class='right'>940</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_sexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ripper/test_sexp.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/dot.png?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/dot.png</a></td><td class='right'>bin</td><td class='graph'>0 -> 111 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/rss-assertions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/rss-assertions.rb</a></td><td class='right'>1945</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/rss-testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/rss-testcase.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_1.0.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_2.0.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_accessor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_accessor.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_atom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_atom.rb</a></td><td class='right'>684</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_content.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_content.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_dublincore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_dublincore.rb</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_image.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_inherit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_inherit.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_itunes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_itunes.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_0.9.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_0.9.rb</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_1.0.rb</a></td><td class='right'>286</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_2.0.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_maker_atom_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_atom_entry.rb</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_maker_atom_feed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_atom_feed.rb</a></td><td class='right'>455</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_content.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_content.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_dc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_dc.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_image.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_image.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_maker_itunes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_itunes.rb</a></td><td class='right'>480</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_maker_slash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_slash.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_sy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_sy.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_taxo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_taxo.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_trackback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_trackback.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_maker_xml-stylesheet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_maker_xml-stylesheet.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_parser.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_parser_1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_parser_1.0.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_parser_2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_parser_2.0.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_parser_atom_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_parser_atom_entry.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_parser_atom_feed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_parser_atom_feed.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_setup_maker_0.9.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_0.9.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_setup_maker_1.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_1.0.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_setup_maker_2.0.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_2.0.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_setup_maker_atom_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_atom_entry.rb</a></td><td class='right'>410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_setup_maker_atom_feed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_atom_feed.rb</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_setup_maker_itunes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_itunes.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_setup_maker_slash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_setup_maker_slash.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rss/test_slash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_slash.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_syndication.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_syndication.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_taxonomy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_taxonomy.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_to_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_to_s.rb</a></td><td class='right'>295</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_trackback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_trackback.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rss/test_xml-stylesheet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rss/test_xml-stylesheet.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/allpairs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/allpairs.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/beginmainend.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/beginmainend.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/bug-11928.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/bug-11928.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/bug-13526.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/bug-13526.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_big5.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_big5.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_case_comprehensive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_case_comprehensive.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_case_mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_case_mapping.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_case_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_case_options.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_cp949.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_cp949.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_emoji.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_emoji.rb</a></td><td class='right'>443</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_euc_jp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_euc_jp.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_euc_kr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_euc_kr.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_euc_tw.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_euc_tw.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_gb18030.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_gb18030.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_gbk.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_gbk.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_grapheme_breaks.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_grapheme_breaks.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_iso_8859.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_iso_8859.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_koi8.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_koi8.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_regex_casefold.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_regex_casefold.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_shift_jis.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_shift_jis.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_utf16.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_utf16.rb</a></td><td class='right'>397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_utf32.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_utf32.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_windows_1251.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_windows_1251.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_windows_1252.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/enc/test_windows_1252.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ruby/endblockwarn.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/endblockwarn.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ruby/envutil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/envutil.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/lbtest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/lbtest.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/marshaltestlib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/marshaltestlib.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/sentence.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/sentence.rb</a></td><td class='right'>669</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ruby/suicide.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/suicide.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_alias.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_alias.rb</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_argf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_argf.rb</a></td><td class='right'>1057</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_arity.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_arity.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_array.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_array.rb</a></td><td class='right'>2949</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_assignment.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_assignment.rb</a></td><td class='right'>799</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_autoload.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_autoload.rb</a></td><td class='right'>323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_backtrace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_backtrace.rb</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_basicinstructions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_basicinstructions.rb</a></td><td class='right'>723</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_beginendblock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_beginendblock.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_bignum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_bignum.rb</a></td><td class='right'>717</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_call.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_call.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_case.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_case.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_class.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_class.rb</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_clone.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_clone.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_comparable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_comparable.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_complex.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_complex.rb</a></td><td class='right'>961</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_complex2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_complex2.rb</a></td><td class='right'>736</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_complexrational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_complexrational.rb</a></td><td class='right'>408</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_condition.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_condition.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_const.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_const.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_continuation.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_continuation.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_defined.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_defined.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_dir.rb</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_dir_m17n.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_dir_m17n.rb</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_econv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_econv.rb</a></td><td class='right'>924</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_encoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_encoding.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_enum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_enum.rb</a></td><td class='right'>1032</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_enumerator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_enumerator.rb</a></td><td class='right'>665</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_env.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_env.rb</a></td><td class='right'>489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_eval.rb</a></td><td class='right'>519</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_exception.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_exception.rb</a></td><td class='right'>1070</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_fiber.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_fiber.rb</a></td><td class='right'>395</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_file.rb</a></td><td class='right'>546</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_file_exhaustive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_file_exhaustive.rb</a></td><td class='right'>1694</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_fixnum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_fixnum.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_flip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_flip.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_float.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_float.rb</a></td><td class='right'>849</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_fnmatch.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_fnmatch.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_gc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_gc.rb</a></td><td class='right'>426</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_hash.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_hash.rb</a></td><td class='right'>1112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_ifunless.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_ifunless.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_integer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_integer.rb</a></td><td class='right'>528</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_integer_comb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_integer_comb.rb</a></td><td class='right'>634</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_io.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_io.rb</a></td><td class='right'>3774</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_io_m17n.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_io_m17n.rb</a></td><td class='right'>2704</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_iseq.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_iseq.rb</a></td><td class='right'>434</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_iterator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_iterator.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_keyword.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_keyword.rb</a></td><td class='right'>685</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_lambda.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_lambda.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_lazy_enumerator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_lazy_enumerator.rb</a></td><td class='right'>581</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_literal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_literal.rb</a></td><td class='right'>570</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_m17n.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_m17n.rb</a></td><td class='right'>1700</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_m17n_comb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_m17n_comb.rb</a></td><td class='right'>1644</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_marshal.rb</a></td><td class='right'>788</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_math.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_math.rb</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_metaclass.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_metaclass.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_method.rb</a></td><td class='right'>1012</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_mixed_unicode_escapes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_mixed_unicode_escapes.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_module.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_module.rb</a></td><td class='right'>2323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_not.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_not.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_notimp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_notimp.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_numeric.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_numeric.rb</a></td><td class='right'>410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_object.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_object.rb</a></td><td class='right'>948</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_objectspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_objectspace.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_optimization.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_optimization.rb</a></td><td class='right'>787</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_pack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_pack.rb</a></td><td class='right'>837</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_parse.rb</a></td><td class='right'>1113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_path.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_path.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_pipe.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_pipe.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_primitive.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_primitive.rb</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_proc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_proc.rb</a></td><td class='right'>1314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_process.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_process.rb</a></td><td class='right'>2355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rand.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_rand.rb</a></td><td class='right'>616</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_range.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_range.rb</a></td><td class='right'>645</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_rational.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_rational.rb</a></td><td class='right'>996</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_rational2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_rational2.rb</a></td><td class='right'>1387</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_readpartial.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_readpartial.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_refinement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_refinement.rb</a></td><td class='right'>2114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_regexp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_regexp.rb</a></td><td class='right'>1281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_require.rb</a></td><td class='right'>898</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_rubyoptions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_rubyoptions.rb</a></td><td class='right'>996</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_rubyvm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_rubyvm.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_settracefunc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_settracefunc.rb</a></td><td class='right'>1965</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_signal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_signal.rb</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_sleep.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_sleep.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_sprintf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_sprintf.rb</a></td><td class='right'>535</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_sprintf_comb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_sprintf_comb.rb</a></td><td class='right'>554</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_string.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_string.rb</a></td><td class='right'>3135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_stringchar.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_stringchar.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_struct.rb</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_super.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_super.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_symbol.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_symbol.rb</a></td><td class='right'>481</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_syntax.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_syntax.rb</a></td><td class='right'>1235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_system.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_system.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_thread.rb</a></td><td class='right'>1317</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_threadgroup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_threadgroup.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_time.rb</a></td><td class='right'>1106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_time_tz.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_time_tz.rb</a></td><td class='right'>463</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_trace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_trace.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_transcode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_transcode.rb</a></td><td class='right'>2231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_undef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_undef.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_unicode_escape.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_unicode_escape.rb</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_variable.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_vm_dump.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_vm_dump.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_weakmap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_weakmap.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_whileuntil.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_whileuntil.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_yield.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/test_yield.rb</a></td><td class='right'>425</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/ut_eof.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/ruby/ut_eof.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/alternate_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/alternate_cert.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/alternate_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/alternate_cert_32.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/alternate_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/alternate_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/bad_rake.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/bad_rake.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/bogussources.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/bogussources.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/ca_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/ca_cert.pem</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/child_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/child_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/child_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/child_cert_32.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/child_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/child_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/client.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/client.pem</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/gem-private_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/data/gem-private_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/gem-public_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/data/gem-public_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/null-type.gemspec.rz?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/data/null-type.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 554 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/encrypted_private_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/encrypted_private_key.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/expired_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/expired_cert.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/fake_certlib/openssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/fake_certlib/openssl.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/fix_openssl_warnings.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/fix_openssl_warnings.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/foo/discover.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/foo/discover.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/future_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/future_cert.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/future_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/future_cert_32.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/good_rake.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/good_rake.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/grandchild_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/grandchild_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/grandchild_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/grandchild_cert_32.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/grandchild_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/grandchild_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_client.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_client.pem</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_issuer_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_issuer_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_issuer_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_issuer_cert_32.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_signer_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_signer_cert.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalid_signer_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalid_signer_cert_32.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalidchild_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalidchild_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalidchild_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalidchild_cert_32.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/invalidchild_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/invalidchild_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/plugin/exception/rubygems_plugin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/plugin/exception/rubygems_plugin.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/plugin/load/rubygems_plugin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/plugin/load/rubygems_plugin.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/plugin/standarderror/rubygems_plugin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/plugin/standarderror/rubygems_plugin.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/private3072_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/private3072_key.pem</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/private_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/private_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/public3072_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/public3072_cert.pem</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/public_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/public_cert.pem</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/public_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/public_cert_32.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/public_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/public_key.pem</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/rubygems/commands/crash_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/rubygems/commands/crash_command.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/rubygems_plugin.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/rubygems_plugin.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/sff/discover.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/sff/discover.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/simple_gem.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/simple_gem.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/specifications/bar-0.0.2.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/specifications/bar-0.0.2.gemspec</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec</a></td><td class='right'>bin</td><td class='graph'>0 -> 269 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/ssl_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/ssl_cert.pem</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/ssl_key.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/ssl_key.pem</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_bundled_ca.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_bundled_ca.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_config.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_deprecate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_deprecate.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem.rb</a></td><td class='right'>1904</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_available_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_available_set.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_bundler_version_finder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_bundler_version_finder.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_command.rb</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_command_manager.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_command_manager.rb</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_build_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_build_command.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_cert_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_cert_command.rb</a></td><td class='right'>735</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_check_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_check_command.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_cleanup_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_cleanup_command.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_contents_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_contents_command.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_dependency_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_dependency_command.rb</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_environment_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_environment_command.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_fetch_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_fetch_command.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_generate_index_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_generate_index_command.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_help_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_help_command.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_install_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_install_command.rb</a></td><td class='right'>1041</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_list_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_list_command.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_lock_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_lock_command.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_mirror.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_mirror.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_open_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_open_command.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_outdated_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_outdated_command.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_owner_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_owner_command.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_pristine_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_pristine_command.rb</a></td><td class='right'>491</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_push_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_push_command.rb</a></td><td class='right'>330</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_query_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_query_command.rb</a></td><td class='right'>830</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_search_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_search_command.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_server_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_server_command.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_setup_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_setup_command.rb</a></td><td class='right'>266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_signin_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_signin_command.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_signout_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_signout_command.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_sources_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_sources_command.rb</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_specification_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_specification_command.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_stale_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_stale_command.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_uninstall_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_uninstall_command.rb</a></td><td class='right'>295</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_unpack_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_unpack_command.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_update_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_update_command.rb</a></td><td class='right'>508</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_which_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_which_command.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_yank_command.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_commands_yank_command.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_config_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_config_file.rb</a></td><td class='right'>490</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_dependency.rb</a></td><td class='right'>390</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_installer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_dependency_installer.rb</a></td><td class='right'>1235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_dependency_list.rb</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_resolution_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_dependency_resolution_error.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_doctor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_doctor.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_ext_builder.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cmake_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_ext_cmake_builder.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_configure_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_ext_configure_builder.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_ext_conf_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_ext_ext_conf_builder.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_rake_builder.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_ext_rake_builder.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_gem_runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_gem_runner.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_gemcutter_utilities.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_gemcutter_utilities.rb</a></td><td class='right'>235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_impossible_dependencies_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_impossible_dependencies_error.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_indexer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_indexer.rb</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_install_update_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_install_update_options.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_installer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_installer.rb</a></td><td class='right'>1907</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_local_remote_options.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_local_remote_options.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_name_tuple.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_name_tuple.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package.rb</a></td><td class='right'>990</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_old.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_old.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_header.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_tar_header.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_reader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_tar_reader.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_reader_entry.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_tar_reader_entry.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_writer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_tar_writer.rb</a></td><td class='right'>288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_package_task.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_package_task.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_path_support.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_path_support.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_platform.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_platform.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_rdoc.rb</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_remote_fetcher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_remote_fetcher.rb</a></td><td class='right'>1070</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request.rb</a></td><td class='right'>495</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_connection_pools.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_connection_pools.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_set.rb</a></td><td class='right'>595</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_gem_dependency_api.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_set_gem_dependency_api.rb</a></td><td class='right'>831</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_set_lockfile.rb</a></td><td class='right'>470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_set_lockfile_parser.rb</a></td><td class='right'>549</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_request_set_lockfile_tokenizer.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_requirement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_requirement.rb</a></td><td class='right'>393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver.rb</a></td><td class='right'>753</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_activation_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_activation_request.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_api_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_api_set.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_api_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_api_specification.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_best_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_best_set.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_composed_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_composed_set.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_conflict.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_conflict.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_dependency_request.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_dependency_request.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_git_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_git_set.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_git_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_git_specification.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_index_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_index_set.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_index_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_index_specification.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_installed_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_installed_specification.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_installer_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_installer_set.rb</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_local_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_local_specification.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_lock_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_lock_set.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_lock_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_lock_specification.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_requirement_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_requirement_list.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_specification.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_vendor_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_vendor_set.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_vendor_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_resolver_vendor_specification.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_security.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_security.rb</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_security_policy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_security_policy.rb</a></td><td class='right'>541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_security_signer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_security_signer.rb</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_security_trust_dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_security_trust_dir.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_server.rb</a></td><td class='right'>607</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_silent_ui.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_silent_ui.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source.rb</a></td><td class='right'>251</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_fetch_problem.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_fetch_problem.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_git.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_git.rb</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_installed.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_installed.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_list.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_list.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_local.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_local.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_lock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_lock.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_specific_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_specific_file.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_vendor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_source_vendor.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_spec_fetcher.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_spec_fetcher.rb</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_specification.rb</a></td><td class='right'>3658</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_stream_ui.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_stream_ui.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_stub_specification.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_stub_specification.rb</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_text.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_text.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_uninstaller.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_uninstaller.rb</a></td><td class='right'>485</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_unsatisfiable_dependency_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_unsatisfiable_dependency_error.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_uri_formatter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_uri_formatter.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_util.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_util.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_validator.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_validator.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_version.rb</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_version_option.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_gem_version_option.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_kernel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_kernel.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_remote_fetch_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_remote_fetch_error.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_require.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/test_require.rb</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/wrong_key_cert.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/wrong_key_cert.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/wrong_key_cert_32.pem?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/rubygems/wrong_key_cert_32.pem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/runner.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/scanf/data.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/scanf/data.txt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/scanf/test_scanf.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/scanf/test_scanf.rb</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/scanf/test_scanfblocks.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/scanf/test_scanfblocks.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/scanf/test_scanfio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/scanf/test_scanfio.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/sdbm/test_sdbm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/sdbm/test_sdbm.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/shell/test_command_processor.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/shell/test_command_processor.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/asp.net/hello.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/asp.net/hello.wsdl</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/asp.net/test_aspdotnet.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/asp.net/test_aspdotnet.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/calc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/calc.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/calc2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/calc2.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/server.cgi?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/server.cgi</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/server.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/server2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/server2.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/test_calc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/test_calc.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/test_calc2.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/test_calc2.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/calc/test_calc_cgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/calc/test_calc_cgi.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/fault/test_customfault.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/fault/test_customfault.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/header/server.cgi?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/header/server.cgi</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/header/test_authheader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/header/test_authheader.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/header/test_authheader_cgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/header/test_authheader_cgi.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/header/test_simplehandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/header/test_simplehandler.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/helloworld/hw_s.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/helloworld/hw_s.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/helloworld/test_helloworld.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/helloworld/test_helloworld.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/marshal/test_digraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/marshal/test_digraph.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/marshal/test_marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/marshal/test_marshal.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/marshal/test_struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/marshal/test_struct.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/README?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/README</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/ca.cert?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/ca.cert</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/client.cert?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/client.cert</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/client.key?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/client.key</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/server.cert?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/server.cert</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/server.key?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/server.key</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/sslsvr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/sslsvr.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/subca.cert?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/subca.cert</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/ssl/test_ssl.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/ssl/test_ssl.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/struct/test_struct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/struct/test_struct.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/swa/test_file.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/swa/test_file.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_basetype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_basetype.rb</a></td><td class='right'>970</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_envelopenamespace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_envelopenamespace.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_httpconfigloader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_httpconfigloader.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_mapping.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_mapping.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_no_indent.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_no_indent.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_property.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_property.rb</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_soapelement.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_soapelement.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_streamhandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_streamhandler.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/test_styleuse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/test_styleuse.rb</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/README.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/README.txt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/calc.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/calc.wsdl</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/document.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/document.wsdl</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/echo_version.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/echo_version.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/simpletype.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/simpletype.wsdl</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/test_calc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/test_calc.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/test_document.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/test_document.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/soap/wsdlDriver/test_simpletype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/soap/wsdlDriver/test_simpletype.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_addrinfo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_addrinfo.rb</a></td><td class='right'>684</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_ancdata.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_ancdata.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_basicsocket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_basicsocket.rb</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_nonblock.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_nonblock.rb</a></td><td class='right'>276</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_socket.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_socket.rb</a></td><td class='right'>751</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_sockopt.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_sockopt.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_tcp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_tcp.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/socket/test_udp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_udp.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_unix.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/socket/test_unix.rb</a></td><td class='right'>606</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/stringio/test_stringio.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/stringio/test_stringio.rb</a></td><td class='right'>761</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/strscan/test_stringscanner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/strscan/test_stringscanner.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/syslog/test_syslog_logger.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/syslog/test_syslog_logger.rb</a></td><td class='right'>573</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_abbrev.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_abbrev.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_cmath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_cmath.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_delegate.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_delegate.rb</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_extlibs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_extlibs.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_find.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_find.rb</a></td><td class='right'>334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_forwardable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_forwardable.rb</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_ipaddr.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_ipaddr.rb</a></td><td class='right'>385</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_mutex_m.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_mutex_m.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_observer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_observer.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_open3.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_open3.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_pp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_pp.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_prettyprint.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_prettyprint.rb</a></td><td class='right'>521</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_prime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_prime.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_pstore.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_pstore.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_pty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_pty.rb</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_rbconfig.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_rbconfig.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_securerandom.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_securerandom.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_set.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_set.rb</a></td><td class='right'>909</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_shellwords.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_shellwords.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_singleton.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_singleton.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_syslog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_syslog.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_tempfile.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_tempfile.rb</a></td><td class='right'>419</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_time.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_time.rb</a></td><td class='right'>516</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_timeout.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_timeout.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_tmpdir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_tmpdir.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_tracer.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_tracer.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_tsort.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_tsort.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_unicode_normalize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_unicode_normalize.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_weakref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_weakref.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_win32api.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/test_win32api.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/collector/test_dir.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/collector/test_dir.rb</a></td><td class='right'>406</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/collector/test_objectspace.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/collector/test_objectspace.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/runit/test_assert.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/runit/test_assert.rb</a></td><td class='right'>402</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/runit/test_testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/runit/test_testcase.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/runit/test_testresult.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/runit/test_testresult.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/runit/test_testsuite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/runit/test_testsuite.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test4test_hideskip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test4test_hideskip.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test4test_redefinition.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test4test_redefinition.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test4test_sorting.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test4test_sorting.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test_assertion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_assertion.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_assertions.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_assertions.rb</a></td><td class='right'>528</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_error.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_error.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_failure.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_failure.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test_hideskip.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_hideskip.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test_parallel.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_parallel.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test_redefinition.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_redefinition.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/test_sorting.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_sorting.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_testcase.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_testcase.rb</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_testresult.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_testresult.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_testsuite.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/test_testsuite.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/ptest_first.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/tests_for_parallel/ptest_first.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/ptest_forth.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/tests_for_parallel/ptest_forth.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/ptest_second.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/tests_for_parallel/ptest_second.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/ptest_third.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/tests_for_parallel/ptest_third.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/runner.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/tests_for_parallel/runner.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/util/test_backtracefilter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/util/test_backtracefilter.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/util/test_observable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/util/test_observable.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/util/test_procwrapper.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/testunit/util/test_procwrapper.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/test/thread/lbtest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/thread/lbtest.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/thread/test_cv.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/thread/test_cv.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/thread/test_queue.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/thread/test_queue.rb</a></td><td class='right'>616</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/thread/test_sync.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/thread/test_sync.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/thread/test_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/thread/test_thread.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_common.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_common.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_ftp.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_ftp.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_generic.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_generic.rb</a></td><td class='right'>484</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_http.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_http.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_ldap.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_ldap.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_mailto.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_mailto.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/uri/test_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/uri/test_parser.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_cgi.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_cgi.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_config.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_cookie.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_cookie.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_do_not_reverse_lookup.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_do_not_reverse_lookup.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_filehandler.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_filehandler.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_htmlutils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_htmlutils.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_httpauth.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httpauth.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_httpproxy.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httpproxy.rb</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_httprequest.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httprequest.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_httpresponse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httpresponse.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_https.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_https.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_httpserver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httpserver.rb</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_httputils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httputils.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_httpversion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_httpversion.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/test_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_server.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_ssl_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_ssl_server.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/test_utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/test_utils.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/utils.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/utils.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/webrick/webrick.cgi?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/webrick.cgi</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/webrick/webrick.rhtml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/webrick.rhtml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/webrick/webrick_long_filename.cgi?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/webrick/webrick_long_filename.cgi</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/err_in_callback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/err_in_callback.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/orig_data.csv?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/orig_data.csv</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_err_in_callback.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_err_in_callback.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_folderitem2_invokeverb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_folderitem2_invokeverb.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_nil2vtempty.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_nil2vtempty.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_ole_methods.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_ole_methods.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_propertyputref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_propertyputref.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_thread.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_thread.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole.rb</a></td><td class='right'>577</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_event.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_event.rb</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_method.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_method.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_param.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_param.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_record.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_record.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_type.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_type.rb</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_typelib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_typelib.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_variable.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_variant.rb</a></td><td class='right'>722</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variant_m.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_variant_m.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variant_outarg.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_win32ole_variant_outarg.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/win32ole/test_word.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/win32ole/test_word.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/any/any.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/any/any.wsdl</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/any/expectedDriver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/any/expectedDriver.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/any/expectedEcho.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/any/expectedEcho.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/any/expectedService.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/any/expectedService.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/any/test_any.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/any/test_any.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/axisArray/axisArray.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/axisArray/axisArray.wsdl</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/axisArray/itemList.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/axisArray/itemList.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/axisArray/test_axisarray.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/axisArray/test_axisarray.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/datetime/DatetimeService.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/datetime/DatetimeService.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/datetime/datetime.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/datetime/datetime.wsdl</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/datetime/datetimeServant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/datetime/datetimeServant.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/datetime/test_datetime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/datetime/test_datetime.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/document.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/document.wsdl</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/echo.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/echo.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/number.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/number.wsdl</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/ping_nosoapaction.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/ping_nosoapaction.wsdl</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/test_nosoapaction.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/test_nosoapaction.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/test_number.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/test_number.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/document/test_rpc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/document/test_rpc.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/emptycomplextype.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/emptycomplextype.wsdl</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/map/map.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/map/map.wsdl</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/map/map.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/map/map.xml</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/map/test_map.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/map/test_map.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/marshal/person.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/marshal/person.wsdl</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/marshal/person_org.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/marshal/person_org.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/marshal/test_wsdlmarshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/marshal/test_wsdlmarshal.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/multiplefault.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/multiplefault.wsdl</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/qualified/lp.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/qualified/lp.wsdl</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/qualified/lp.xsd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/qualified/lp.xsd</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/qualified/np.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/qualified/np.wsdl</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/qualified/test_qualified.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/qualified/test_qualified.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/qualified/test_unqualified.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/qualified/test_unqualified.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/RAA.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/RAA.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/RAAServant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/RAAServant.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/RAAService.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/RAAService.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/README.txt?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/README.txt</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/raa.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/raa.wsdl</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/server.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/raa/test_raa.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/raa/test_raa.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/ref/expectedProduct.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/ref/expectedProduct.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/ref/product.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/ref/product.wsdl</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/ref/test_ref.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/ref/test_ref.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/echoDriver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/echoDriver.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/echo_serviceClient.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/echo_serviceClient.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/rpc.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/rpc.wsdl</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/test-rpc-lit.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/test-rpc-lit.wsdl</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/test-rpc-lit12.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/test-rpc-lit12.wsdl</a></td><td class='right'>455</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/test_rpc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/test_rpc.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/rpc/test_rpc_lit.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/rpc/test_rpc_lit.rb</a></td><td class='right'>399</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/expectedClient.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/expectedClient.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/expectedDriver.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/expectedDriver.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/expectedEchoVersion.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/expectedEchoVersion.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/expectedServant.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/expectedServant.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/expectedService.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/expectedService.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/rpc.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/rpc.wsdl</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/rpc/test_rpc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/rpc/test_rpc.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/simpletype.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/simpletype.wsdl</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/simpletype/test_simpletype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/simpletype/test_simpletype.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/soap/soapbodyparts.wsdl?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/soap/soapbodyparts.wsdl</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/soap/test_soapbodyparts.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/soap/test_soapbodyparts.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/test_emptycomplextype.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/test_emptycomplextype.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/test_fault.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/test_fault.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/wsdl/test_multiplefault.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/wsdl/test_multiplefault.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_bool.expected?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_bool.expected</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_bool.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_bool.xml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_cdata.expected?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_cdata.expected</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_cdata.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_cdata.xml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_covert.expected?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_covert.expected</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/bug_covert.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/bug_covert.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/datetime_iso8601.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/datetime_iso8601.xml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/fault.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/fault.xml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/value.expected?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/value.expected</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/value.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/value.xml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/xml1.expected?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/xml1.expected</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/data/xml1.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/data/xml1.xml</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/test_datetime.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/test_datetime.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/test_features.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/test_features.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/test_marshal.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/test_marshal.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/test_parser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/test_parser.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/test_webrick_server.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/test_webrick_server.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xmlrpc/webrick_testing.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xmlrpc/webrick_testing.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/codegen/test_classdef.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/codegen/test_classdef.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/noencoding.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/noencoding.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/test_noencoding.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/test_noencoding.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/test_xmlschemaparser.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/test_xmlschemaparser.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/test_xsd.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/test_xsd.rb</a></td><td class='right'>1511</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/xsd/xmlschema.xml?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/xsd/xmlschema.xml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/yaml/test_store.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/yaml/test_store.rb</a></td><td class='right'>180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/yaml/test_yaml.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/yaml/test_yaml.rb</a></td><td class='right'>1292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/zlib/test_zlib.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>test/zlib/test_zlib.rb</a></td><td class='right'>1187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread.c</a></td><td class='right'>5276</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 94.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_pthread.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread_pthread.c</a></td><td class='right'>1791</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_pthread.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread_pthread.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_sync.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread_sync.c</a></td><td class='right'>1532</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_win32.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread_win32.c</a></td><td class='right'>780</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_win32.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>thread_win32.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/time.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>time.c</a></td><td class='right'>5457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.5%;'/><td class='rem' style='width: 1.4%;'/><td class='none' style='width: 94.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/timev.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>timev.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/asm_parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/asm_parse.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/bisect.sh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/bisect.sh</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/build-transcode?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/build-transcode</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/change_maker.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/change_maker.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/checksum.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/checksum.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/colorize.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/colorize.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/downloader.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/downloader.rb</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/enc-emoji-citrus-gen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/enc-emoji-citrus-gen.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/enc-emoji4unicode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/enc-emoji4unicode.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/enc-unicode.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/enc-unicode.rb</a></td><td class='right'>556</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/eval.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/eval.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/expand-config.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/expand-config.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/extlibs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/extlibs.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/fake.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/fake.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/fetch-bundled_gems.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/fetch-bundled_gems.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/file2lastrev.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/file2lastrev.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/gem-unpack.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/gem-unpack.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/gen_dummy_probes.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/gen_dummy_probes.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/gen_ruby_tapset.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/gen_ruby_tapset.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/generate-backport-changelog.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/generate-backport-changelog.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/generic_erb.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/generic_erb.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/git-refresh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/git-refresh</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/gperf.sed?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/gperf.sed</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/id2token.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/id2token.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/ifchange?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/ifchange</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/insns2vm.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/insns2vm.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/install-sh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/install-sh</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/instruction.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/instruction.rb</a></td><td class='right'>1249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/jisx0208.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/jisx0208.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/make-snapshot?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/make-snapshot</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/make_hgraph.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/make_hgraph.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/mdoc2man.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/mdoc2man.rb</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/merger.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/merger.rb</a></td><td class='right'>312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/mk_call_iseq_optimized.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/mk_call_iseq_optimized.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/mkconfig.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/mkconfig.rb</a></td><td class='right'>325</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/mkrunnable.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/mkrunnable.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/node_name.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/node_name.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/parse.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/parse.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/prereq.status?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/prereq.status</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/probes_to_wiki.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/probes_to_wiki.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/pull-latest-mspec-spec?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/pull-latest-mspec-spec</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/rbinstall.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/rbinstall.rb</a></td><td class='right'>920</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/rbuninstall.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/rbuninstall.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/redmine-backporter.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/redmine-backporter.rb</a></td><td class='right'>608</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/release.sh?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/release.sh</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/rmdirs?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/rmdirs</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/run-gcov.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/run-gcov.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/run-lcov.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/run-lcov.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/runruby.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/runruby.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/strip-rdoc.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/strip-rdoc.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/sync_default_gems.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/sync_default_gems.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test-coverage.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/test-coverage.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/test_jisx0208.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/test/test_jisx0208.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/transcode-tblgen.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/transcode-tblgen.rb</a></td><td class='right'>1114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/update-deps?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/update-deps</a></td><td class='right'>625</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/vcs.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/vcs.rb</a></td><td class='right'>495</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/vpath.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/vpath.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/vtlh.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/vtlh.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/ytab.sed?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>tool/ytab.sed</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/transcode.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>transcode.c</a></td><td class='right'>4579</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/transcode_data.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>transcode_data.h</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/util.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>util.c</a></td><td class='right'>1094</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/util.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>util.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/variable.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>variable.c</a></td><td class='right'>3142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/version.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>version.c</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/version.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>version.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm.c</a></td><td class='right'>3387</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_args.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_args.c</a></td><td class='right'>884</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_backtrace.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_backtrace.c</a></td><td class='right'>1463</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_core.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_core.h</a></td><td class='right'>1768</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_debug.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_debug.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_dump.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_dump.c</a></td><td class='right'>1090</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_eval.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_eval.c</a></td><td class='right'>2202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_exec.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_exec.c</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_exec.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_exec.h</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_insnhelper.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_insnhelper.c</a></td><td class='right'>3849</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_insnhelper.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_insnhelper.h</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_method.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_method.c</a></td><td class='right'>2143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_opts.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_opts.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_trace.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vm_trace.c</a></td><td class='right'>1637</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/vms/config.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vms/config.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/vms/vms.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vms/vms.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/vms/vmsruby_private.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vms/vmsruby_private.c</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/vms/vmsruby_private.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vms/vmsruby_private.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vsnprintf.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>vsnprintf.c</a></td><td class='right'>1313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/Makefile.sub?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/Makefile.sub</a></td><td class='right'>998</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/README.win32?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/README.win32</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/configure.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/configure.bat</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/dir.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/dir.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/enc-setup.mak?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/enc-setup.mak</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/file.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/file.c</a></td><td class='right'>716</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/file.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/file.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/ifchange.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/ifchange.bat</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/win32/makedirs.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/makedirs.bat</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/mkexports.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/mkexports.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/resource.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/resource.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/rm.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/rm.bat</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/win32/rmdirs.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/rmdirs.bat</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/rtname.cmd?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/rtname.cmd</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/setup.mak?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/setup.mak</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/win32.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/win32.c</a></td><td class='right'>7447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.1%;'/><td class='rem' style='width: 1.9%;'/><td class='none' style='width: 92.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/win32/win32.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/win32.h</a></td><td class='right'>559</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/winmain.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>win32/winmain.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/Makefile.sub?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/Makefile.sub</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/README.wince?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/README.wince</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/assert.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/assert.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/assert.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/assert.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/wince/configure.bat?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/configure.bat</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/direct.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/direct.c</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/direct.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/direct.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/errno.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/errno.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/errno.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/errno.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/fcntl.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/fcntl.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/io.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/io.h</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/io_wce.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/io_wce.c</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/mkconfig_wce.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/mkconfig_wce.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/mkexports.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/mkexports.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/process.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/process.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/process_wce.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/process_wce.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/resource.rb?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/resource.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/setup.mak?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/setup.mak</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/signal.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/signal.h</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/signal_wce.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/signal_wce.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/stddef.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/stddef.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/stdio.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/stdio.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/stdlib.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/stdlib.c</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/string_wce.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/string_wce.c</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/stat.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/stat.c</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/stat.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/stat.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/timeb.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/timeb.c</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/timeb.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/timeb.h</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/types.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/types.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/utime.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/utime.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/sys/utime.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/sys/utime.h</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/time.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/time.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/time_wce.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/time_wce.c</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/varargs.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/varargs.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/wince.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/wince.c</a></td><td class='right'>583</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/wince.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/wince.h</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/wincemain.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/wincemain.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/wincon.h?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/wincon.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wince/winsock2.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>wince/winsock2.c</a></td><td class='right'>338</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/x68/_dtos18.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>x68/_dtos18.c</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/x68/_round.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>x68/_round.c</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/x68/fconvert.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>x68/fconvert.c</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/x68/select.c?h=v2_5_8&amp;id2=a938a2748f7043aae56c377621f52de68d59d171'>x68/select.c</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
</table><div class='diffstat-summary'>9794 files changed, 1686716 insertions, 402077 deletions</div><table summary='diff' class='diff'><tr><td><div class='head'>diff --git a/.cvsignore b/.cvsignore<br/>deleted file mode 100644<br/>index a72211d03f..0000000000<br/>--- a/<a href='/ruby.git/tree/.cvsignore?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,48 +0,0 @@</div><div class='del'>-*.bak</div><div class='del'>-*.orig</div><div class='del'>-*.rej</div><div class='del'>-*.sav</div><div class='del'>-*~</div><div class='del'>-.*.list</div><div class='del'>-.*.time</div><div class='del'>-.ccmalloc</div><div class='del'>-.ppack</div><div class='del'>-.ext</div><div class='del'>-.git</div><div class='del'>-.svn</div><div class='del'>-.pc</div><div class='del'>-COPYING.LIB</div><div class='del'>-ChangeLog.pre-alpha</div><div class='del'>-ChangeLog.pre1_1</div><div class='del'>-Makefile</div><div class='del'>-README.fat-patch</div><div class='del'>-README.v6</div><div class='del'>-README.atheos</div><div class='del'>-archive</div><div class='del'>-autom4te*.cache</div><div class='del'>-automake</div><div class='del'>-beos</div><div class='del'>-config.cache</div><div class='del'>-config.h</div><div class='del'>-config.h.in</div><div class='del'>-config.log</div><div class='del'>-config.status</div><div class='del'>-configure</div><div class='del'>-libruby.so.*</div><div class='del'>-miniruby</div><div class='del'>-newdate.rb</div><div class='del'>-newver.rb</div><div class='del'>-parse.c</div><div class='del'>-patches</div><div class='del'>-ppack</div><div class='del'>-preview</div><div class='del'>-rbconfig.rb</div><div class='del'>-repack</div><div class='del'>-riscos</div><div class='del'>-rubicon</div><div class='del'>-ruby</div><div class='del'>-ruby-man.rd.gz</div><div class='del'>-tmp</div><div class='del'>-web</div><div class='del'>-y.output</div><div class='del'>-y.tab.c</div><div class='head'>diff --git a/.document b/.document<br/>index 230c50e387..eeb565b08b 100644<br/>--- a/<a href='/ruby.git/tree/.document?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>.document</a><br/>+++ b/<a href='/ruby.git/tree/.document?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.document</a></div><div class='hunk'>@@ -5,12 +5,23 @@</div><div class='ctx'> </div><div class='ctx'> # Process all the C source files</div><div class='ctx'> *.c</div><div class='add'>+*.y</div><div class='ctx'> </div><div class='del'>-# the lib/ directory (which has its own .document file)</div><div class='add'>+# prelude</div><div class='add'>+prelude.rb</div><div class='ctx'> </div><div class='del'>-lib</div><div class='add'>+rbconfig.rb</div><div class='ctx'> </div><div class='add'>+# the lib/ directory (which has its own .document file)</div><div class='add'>+lib</div><div class='ctx'> </div><div class='ctx'> # and some of the ext/ directory (which has its own .document file)</div><div class='del'>-</div><div class='ctx'> ext</div><div class='add'>+</div><div class='add'>+# rdoc files</div><div class='add'>+NEWS</div><div class='add'>+</div><div class='add'>+README.md</div><div class='add'>+README.ja.md</div><div class='add'>+</div><div class='add'>+doc</div><div class='head'>diff --git a/.editorconfig b/.editorconfig<br/>new file mode 100644<br/>index 0000000000..49cc692091<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.editorconfig?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.editorconfig</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+root = true</div><div class='add'>+</div><div class='add'>+[*]</div><div class='add'>+end_of_line = lf</div><div class='add'>+indent_size = 4</div><div class='add'>+indent_style = tab</div><div class='add'>+insert_final_newline = true</div><div class='add'>+tab_width = 8</div><div class='add'>+trim_trailing_whitespace = true</div><div class='add'>+</div><div class='add'>+[*.bat]</div><div class='add'>+end_of_line = crlf</div><div class='add'>+</div><div class='add'>+[*.gemspec]</div><div class='add'>+indent_size = 2</div><div class='add'>+indent_style = space</div><div class='add'>+</div><div class='add'>+[*.rb]</div><div class='add'>+indent_size = 2</div><div class='add'>+indent_style = space</div><div class='add'>+</div><div class='add'>+[*.yml]</div><div class='add'>+indent_size = 2</div><div class='add'>+indent_style = space</div><div class='head'>diff --git a/.gdbinit b/.gdbinit<br/>new file mode 100644<br/>index 0000000000..a188ffa172<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.gdbinit?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.gdbinit</a></div><div class='hunk'>@@ -0,0 +1,1307 @@</div><div class='add'>+define hook-run</div><div class='add'>+  set $color_type = 0</div><div class='add'>+  set $color_highlite = 0</div><div class='add'>+  set $color_end = 0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define ruby_gdb_init</div><div class='add'>+  if !$color_type</div><div class='add'>+    set $color_type = "\033[31m"</div><div class='add'>+  end</div><div class='add'>+  if !$color_highlite</div><div class='add'>+    set $color_highlite = "\033[36m"</div><div class='add'>+  end</div><div class='add'>+  if !$color_end</div><div class='add'>+    set $color_end = "\033[m"</div><div class='add'>+  end</div><div class='add'>+  if ruby_dummy_gdb_enums.special_consts</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# set prompt \033[36m(gdb)\033[m\040</div><div class='add'>+</div><div class='add'>+define rp</div><div class='add'>+  ruby_gdb_init</div><div class='add'>+  if (VALUE)($arg0) &amp; RUBY_FIXNUM_FLAG</div><div class='add'>+    printf "FIXNUM: %ld\n", (long)($arg0) &gt;&gt; 1</div><div class='add'>+  else</div><div class='add'>+  if ((VALUE)($arg0) &amp; ~(~(VALUE)0&lt;&lt;RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG</div><div class='add'>+    set $id = (($arg0) &gt;&gt; RUBY_SPECIAL_SHIFT)</div><div class='add'>+    printf "%sSYMBOL%s: ", $color_type, $color_end</div><div class='add'>+    rp_id $id</div><div class='add'>+  else</div><div class='add'>+  if ($arg0) == RUBY_Qfalse</div><div class='add'>+    echo false\n</div><div class='add'>+  else</div><div class='add'>+  if ($arg0) == RUBY_Qtrue</div><div class='add'>+    echo true\n</div><div class='add'>+  else</div><div class='add'>+  if ($arg0) == RUBY_Qnil</div><div class='add'>+    echo nil\n</div><div class='add'>+  else</div><div class='add'>+  if ($arg0) == RUBY_Qundef</div><div class='add'>+    echo undef\n</div><div class='add'>+  else</div><div class='add'>+  if (VALUE)($arg0) &amp; RUBY_IMMEDIATE_MASK</div><div class='add'>+    if ((VALUE)($arg0) &amp; RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG</div><div class='add'>+      printf "%sFLONUM%s: %g\n", $color_type, $color_end, (double)rb_float_value($arg0)</div><div class='add'>+    else</div><div class='add'>+      echo immediate\n</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+  set $flags = ((struct RBasic*)($arg0))-&gt;flags</div><div class='add'>+  if ($flags &amp; RUBY_FL_PROMOTED) == RUBY_FL_PROMOTED</div><div class='add'>+    printf "[PROMOTED] "</div><div class='add'>+  end</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_NONE</div><div class='add'>+    printf "%sT_NONE%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_NIL</div><div class='add'>+    printf "%sT_NIL%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_OBJECT</div><div class='add'>+    printf "%sT_OBJECT%s: ", $color_type, $color_end</div><div class='add'>+    print ((struct RObject *)($arg0))-&gt;basic</div><div class='add'>+    if ($flags &amp; ROBJECT_EMBED)</div><div class='add'>+      print/x *((VALUE*)((struct RObject*)($arg0))-&gt;as.ary) @ (ROBJECT_EMBED_LEN_MAX+0)</div><div class='add'>+    else</div><div class='add'>+      print (((struct RObject *)($arg0))-&gt;as.heap)</div><div class='add'>+      if (((struct RObject*)($arg0))-&gt;as.heap.numiv) &gt; 0</div><div class='add'>+        print/x *(((struct RObject*)($arg0))-&gt;as.heap.ivptr) @ (((struct RObject*)($arg0))-&gt;as.heap.numiv)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_CLASS</div><div class='add'>+    printf "%sT_CLASS%s%s: ", $color_type, ($flags &amp; RUBY_FL_SINGLETON) ? "*" : "", $color_end</div><div class='add'>+    rp_class $arg0</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_ICLASS</div><div class='add'>+    printf "%sT_ICLASS%s: ", $color_type, $color_end</div><div class='add'>+    rp_class $arg0</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_MODULE</div><div class='add'>+    printf "%sT_MODULE%s: ", $color_type, $color_end</div><div class='add'>+    rp_class $arg0</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_FLOAT</div><div class='add'>+    printf "%sT_FLOAT%s: %.16g ", $color_type, $color_end, (((struct RFloat*)($arg0))-&gt;float_value)</div><div class='add'>+    print (struct RFloat *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_STRING</div><div class='add'>+    printf "%sT_STRING%s: ", $color_type, $color_end</div><div class='add'>+    rp_string $arg0 $flags</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_REGEXP</div><div class='add'>+    set $regsrc = ((struct RRegexp*)($arg0))-&gt;src</div><div class='add'>+    set $rsflags = ((struct RBasic*)$regsrc)-&gt;flags</div><div class='add'>+    printf "%sT_REGEXP%s: ", $color_type, $color_end</div><div class='add'>+    set $len = ($rsflags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+            ((struct RString*)$regsrc)-&gt;as.heap.len : \</div><div class='add'>+            (($rsflags &amp; (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) &gt;&gt; RUBY_FL_USHIFT+2)</div><div class='add'>+    set print address off</div><div class='add'>+    output *(char *)(($rsflags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+	    ((struct RString*)$regsrc)-&gt;as.heap.ptr : \</div><div class='add'>+	    ((struct RString*)$regsrc)-&gt;as.ary) @ $len</div><div class='add'>+    set print address on</div><div class='add'>+    printf " len:%ld ", $len</div><div class='add'>+    if $flags &amp; RUBY_FL_USER6</div><div class='add'>+      printf "(none) "</div><div class='add'>+    end</div><div class='add'>+    if $flags &amp; RUBY_FL_USER5</div><div class='add'>+      printf "(literal) "</div><div class='add'>+    end</div><div class='add'>+    if $flags &amp; RUBY_FL_USER4</div><div class='add'>+      printf "(fixed) "</div><div class='add'>+    end</div><div class='add'>+    printf "encoding:%d ", ($flags &amp; RUBY_ENCODING_MASK) &gt;&gt; RUBY_ENCODING_SHIFT</div><div class='add'>+    print (struct RRegexp *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_ARRAY</div><div class='add'>+    if ($flags &amp; RUBY_FL_USER1)</div><div class='add'>+      set $len = (($flags &amp; (RUBY_FL_USER3|RUBY_FL_USER4)) &gt;&gt; (RUBY_FL_USHIFT+3))</div><div class='add'>+      printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len</div><div class='add'>+      printf "(embed) "</div><div class='add'>+      if ($len == 0)</div><div class='add'>+	printf "{(empty)} "</div><div class='add'>+      else</div><div class='add'>+	print/x *((VALUE*)((struct RArray*)($arg0))-&gt;as.ary) @ $len</div><div class='add'>+	printf " "</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      set $len = ((struct RArray*)($arg0))-&gt;as.heap.len</div><div class='add'>+      printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len</div><div class='add'>+      if ($flags &amp; RUBY_FL_USER2)</div><div class='add'>+	printf "(shared) shared="</div><div class='add'>+	output/x ((struct RArray*)($arg0))-&gt;as.heap.aux.shared</div><div class='add'>+	printf " "</div><div class='add'>+      else</div><div class='add'>+	printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))-&gt;as.heap.aux.capa</div><div class='add'>+      end</div><div class='add'>+      if ($len == 0)</div><div class='add'>+	printf "{(empty)} "</div><div class='add'>+      else</div><div class='add'>+	print/x *((VALUE*)((struct RArray*)($arg0))-&gt;as.heap.ptr) @ $len</div><div class='add'>+	printf " "</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    print (struct RArray *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_FIXNUM</div><div class='add'>+    printf "%sT_FIXNUM%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_HASH</div><div class='add'>+    printf "%sT_HASH%s: ", $color_type, $color_end,</div><div class='add'>+    if ((struct RHash *)($arg0))-&gt;ntbl</div><div class='add'>+      printf "len=%ld ", ((struct RHash *)($arg0))-&gt;ntbl-&gt;num_entries</div><div class='add'>+    end</div><div class='add'>+    print (struct RHash *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_STRUCT</div><div class='add'>+    set $len = (($flags &amp; (RUBY_FL_USER1|RUBY_FL_USER2)) ? \</div><div class='add'>+       ($flags &amp; (RUBY_FL_USER1|RUBY_FL_USER2)) &gt;&gt; (RUBY_FL_USHIFT+1) : \</div><div class='add'>+       ((struct RStruct *)($arg0))-&gt;as.heap.len)</div><div class='add'>+    printf "%sT_STRUCT%s: len=%ld ", $color_type, $color_end, $len</div><div class='add'>+    print (struct RStruct *)($arg0)</div><div class='add'>+    output/x *(($flags &amp; (RUBY_FL_USER1|RUBY_FL_USER2)) ? \</div><div class='add'>+              ((struct RStruct *)($arg0))-&gt;as.ary : \</div><div class='add'>+              ((struct RStruct *)($arg0))-&gt;as.heap.ptr) @ $len</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_BIGNUM</div><div class='add'>+    rp_bignum $arg0</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_RATIONAL</div><div class='add'>+    printf "%sT_RATIONAL%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RRational *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_COMPLEX</div><div class='add'>+    printf "%sT_COMPLEX%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RComplex *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_FILE</div><div class='add'>+    printf "%sT_FILE%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RFile *)($arg0)</div><div class='add'>+    output *((struct RFile *)($arg0))-&gt;fptr</div><div class='add'>+    printf "\n"</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_TRUE</div><div class='add'>+    printf "%sT_TRUE%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_FALSE</div><div class='add'>+    printf "%sT_FALSE%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_DATA</div><div class='add'>+    if ((struct RTypedData *)($arg0))-&gt;typed_flag == 1</div><div class='add'>+      printf "%sT_DATA%s(%s): ", $color_type, $color_end, ((struct RTypedData *)($arg0))-&gt;type-&gt;wrap_struct_name</div><div class='add'>+      print (struct RTypedData *)($arg0)</div><div class='add'>+    else</div><div class='add'>+      printf "%sT_DATA%s: ", $color_type, $color_end</div><div class='add'>+      print (struct RData *)($arg0)</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_MATCH</div><div class='add'>+    printf "%sT_MATCH%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RMatch *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_SYMBOL</div><div class='add'>+    printf "%sT_SYMBOL%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RSymbol *)($arg0)</div><div class='add'>+    set $id_type = ((struct RSymbol *)($arg0))-&gt;id &amp; RUBY_ID_SCOPE_MASK</div><div class='add'>+    if $id_type == RUBY_ID_LOCAL</div><div class='add'>+      printf "l"</div><div class='add'>+    else</div><div class='add'>+    if $id_type == RUBY_ID_INSTANCE</div><div class='add'>+      printf "i"</div><div class='add'>+    else</div><div class='add'>+    if $id_type == RUBY_ID_GLOBAL</div><div class='add'>+      printf "G"</div><div class='add'>+    else</div><div class='add'>+    if $id_type == RUBY_ID_ATTRSET</div><div class='add'>+      printf "a"</div><div class='add'>+    else</div><div class='add'>+    if $id_type == RUBY_ID_CONST</div><div class='add'>+      printf "C"</div><div class='add'>+    else</div><div class='add'>+    if $id_type == RUBY_ID_CLASS</div><div class='add'>+      printf "c"</div><div class='add'>+    else</div><div class='add'>+      printf "j"</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    set $id_fstr = ((struct RSymbol *)($arg0))-&gt;fstr</div><div class='add'>+    rp_string $id_fstr</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_UNDEF</div><div class='add'>+    printf "%sT_UNDEF%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_IMEMO</div><div class='add'>+    printf "%sT_IMEMO%s(", $color_type, $color_end</div><div class='add'>+    output (enum imemo_type)(($flags&gt;&gt;RUBY_FL_USHIFT)&amp;RUBY_IMEMO_MASK)</div><div class='add'>+    printf "): "</div><div class='add'>+    rp_imemo $arg0</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_NODE</div><div class='add'>+    printf "%sT_NODE%s(", $color_type, $color_end</div><div class='add'>+    output (enum node_type)(($flags&amp;RUBY_NODE_TYPEMASK)&gt;&gt;RUBY_NODE_TYPESHIFT)</div><div class='add'>+    printf "): "</div><div class='add'>+    print *(NODE *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_ZOMBIE</div><div class='add'>+    printf "%sT_ZOMBIE%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RData *)($arg0)</div><div class='add'>+  else</div><div class='add'>+    printf "%sunknown%s: ", $color_type, $color_end</div><div class='add'>+    print (struct RBasic *)($arg0)</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rp</div><div class='add'>+  Print a Ruby's VALUE.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rp_id</div><div class='add'>+  set $id = (ID)$arg0</div><div class='add'>+  if $id == '!' || $id == '+' || $id == '-' || $id == '*' || $id == '/' || $id == '%' || $id == '&lt;' || $id == '&gt;' || $id == '`'</div><div class='add'>+    printf "(:%c)\n", $id</div><div class='add'>+  else</div><div class='add'>+  if $id == idDot2</div><div class='add'>+    printf "(:..)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idDot3</div><div class='add'>+    printf "(:...)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idUPlus</div><div class='add'>+    printf "(:+@)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idUMinus</div><div class='add'>+    printf "(:-@)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idPow</div><div class='add'>+    printf "(:**)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idCmp</div><div class='add'>+    printf "(:&lt;=&gt;)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idLTLT</div><div class='add'>+    printf "(:&lt;&lt;)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idGTGT</div><div class='add'>+    printf "(:&gt;&gt;)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idLE</div><div class='add'>+    printf "(:&lt;=)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idGE</div><div class='add'>+    printf "(:&gt;=)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idEq</div><div class='add'>+    printf "(:==)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idEqq</div><div class='add'>+    printf "(:===)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idNeq</div><div class='add'>+    printf "(:!=)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idEqTilde</div><div class='add'>+    printf "(:=~)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idNeqTilde</div><div class='add'>+    printf "(:!~)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idAREF</div><div class='add'>+    printf "(:[])\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idASET</div><div class='add'>+    printf "(:[]=)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idCOLON2</div><div class='add'>+    printf "(:'::')\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idANDOP</div><div class='add'>+    printf "(:&amp;&amp;)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idOROP</div><div class='add'>+    printf "(:||)\n"</div><div class='add'>+  else</div><div class='add'>+  if $id == idANDDOT</div><div class='add'>+    printf "(:&amp;.)\n"</div><div class='add'>+  else</div><div class='add'>+    if $id &lt;= tLAST_OP_ID</div><div class='add'>+      printf "O"</div><div class='add'>+    else</div><div class='add'>+      set $id_type = $id &amp; RUBY_ID_SCOPE_MASK</div><div class='add'>+      if $id_type == RUBY_ID_LOCAL</div><div class='add'>+        printf "l"</div><div class='add'>+      else</div><div class='add'>+      if $id_type == RUBY_ID_INSTANCE</div><div class='add'>+        printf "i"</div><div class='add'>+      else</div><div class='add'>+      if $id_type == RUBY_ID_GLOBAL</div><div class='add'>+        printf "G"</div><div class='add'>+      else</div><div class='add'>+      if $id_type == RUBY_ID_ATTRSET</div><div class='add'>+        printf "a"</div><div class='add'>+      else</div><div class='add'>+      if $id_type == RUBY_ID_CONST</div><div class='add'>+        printf "C"</div><div class='add'>+      else</div><div class='add'>+      if $id_type == RUBY_ID_CLASS</div><div class='add'>+        printf "c"</div><div class='add'>+      else</div><div class='add'>+        printf "j"</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    printf "(%ld): ", $id</div><div class='add'>+    print_id $id</div><div class='add'>+    echo \n</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rp_id</div><div class='add'>+  Print an ID.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define output_string</div><div class='add'>+  set $flags = ((struct RBasic*)($arg0))-&gt;flags</div><div class='add'>+  set $len = ($flags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+          ((struct RString*)($arg0))-&gt;as.heap.len : \</div><div class='add'>+          (($flags &amp; (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) &gt;&gt; RUBY_FL_USHIFT+2)</div><div class='add'>+  if $len &gt; 0</div><div class='add'>+    output *(char *)(($flags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+	    ((struct RString*)($arg0))-&gt;as.heap.ptr : \</div><div class='add'>+	    ((struct RString*)($arg0))-&gt;as.ary) @ $len</div><div class='add'>+  else</div><div class='add'>+    output ""</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define print_string</div><div class='add'>+  set $flags = ((struct RBasic*)($arg0))-&gt;flags</div><div class='add'>+  set $len = ($flags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+          ((struct RString*)($arg0))-&gt;as.heap.len : \</div><div class='add'>+          (($flags &amp; (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) &gt;&gt; RUBY_FL_USHIFT+2)</div><div class='add'>+  if $len &gt; 0</div><div class='add'>+    printf "%s", *(char *)(($flags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+	    ((struct RString*)($arg0))-&gt;as.heap.ptr : \</div><div class='add'>+	    ((struct RString*)($arg0))-&gt;as.ary) @ $len</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rp_string</div><div class='add'>+  output_string $arg0</div><div class='add'>+  printf " bytesize:%ld ", $len</div><div class='add'>+  if !($flags &amp; RUBY_FL_USER1)</div><div class='add'>+    printf "(embed) "</div><div class='add'>+  else</div><div class='add'>+    if ($flags &amp; RUBY_FL_USER2)</div><div class='add'>+      printf "(shared) "</div><div class='add'>+    end</div><div class='add'>+    if ($flags &amp; RUBY_FL_USER3)</div><div class='add'>+      printf "(assoc) "</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  printf "encoding:%d ", ($flags &amp; RUBY_ENCODING_MASK) &gt;&gt; RUBY_ENCODING_SHIFT</div><div class='add'>+  if ($flags &amp; RUBY_ENC_CODERANGE_MASK) == 0</div><div class='add'>+    printf "coderange:unknown "</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_7BIT</div><div class='add'>+    printf "coderange:7bit "</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_VALID</div><div class='add'>+    printf "coderange:valid "</div><div class='add'>+  else</div><div class='add'>+    printf "coderange:broken "</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  print (struct RString *)($arg0)</div><div class='add'>+end</div><div class='add'>+document rp_string</div><div class='add'>+  Print the content of a String.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rp_bignum</div><div class='add'>+  set $flags = ((struct RBignum*)($arg0))-&gt;basic.flags</div><div class='add'>+  set $len = (($flags &amp; RUBY_FL_USER2) ? \</div><div class='add'>+       ($flags &amp; (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) &gt;&gt; (RUBY_FL_USHIFT+3) : \</div><div class='add'>+       ((struct RBignum*)($arg0))-&gt;as.heap.len)</div><div class='add'>+  printf "%sT_BIGNUM%s: sign=%d len=%ld ", $color_type, $color_end, \</div><div class='add'>+         (($flags &amp; RUBY_FL_USER1) != 0), $len</div><div class='add'>+  if $flags &amp; RUBY_FL_USER2</div><div class='add'>+    printf "(embed) "</div><div class='add'>+  end</div><div class='add'>+  print (struct RBignum *)($arg0)</div><div class='add'>+  set $ptr = (($flags &amp; RUBY_FL_USER2) ? \</div><div class='add'>+              ((struct RBignum*)($arg0))-&gt;as.ary : \</div><div class='add'>+              ((struct RBignum*)($arg0))-&gt;as.heap.digits)</div><div class='add'>+  set $len = $len-1</div><div class='add'>+  printf "0x%x", $ptr[$len]</div><div class='add'>+  while $len &gt; 0</div><div class='add'>+    set $len = $len-1</div><div class='add'>+    set $val = $ptr[$len]</div><div class='add'>+    set $w = sizeof($ptr[0])</div><div class='add'>+    printf "_"</div><div class='add'>+    if $w &gt; 8</div><div class='add'>+      printf "%.32x", $val</div><div class='add'>+    else</div><div class='add'>+    if $w &gt; 4</div><div class='add'>+      printf "%.16x", $val</div><div class='add'>+    else</div><div class='add'>+    if $w &gt; 2</div><div class='add'>+      printf "%.8x", $val</div><div class='add'>+    else</div><div class='add'>+    if $w &gt; 1</div><div class='add'>+      printf "%.4x", $val</div><div class='add'>+    else</div><div class='add'>+      printf "%.2x", $val</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  printf "\n"</div><div class='add'>+end</div><div class='add'>+document rp_bignum</div><div class='add'>+  Print the content of a Bignum.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rp_class</div><div class='add'>+  printf "(struct RClass *) %p", (void*)$arg0</div><div class='add'>+  if ((struct RClass *)($arg0))-&gt;ptr.origin_ != $arg0</div><div class='add'>+    printf " -&gt; %p", ((struct RClass *)($arg0))-&gt;ptr.origin_</div><div class='add'>+  end</div><div class='add'>+  printf "\n"</div><div class='add'>+  rb_classname $arg0</div><div class='add'>+  print/x *(struct RClass *)($arg0)</div><div class='add'>+  print *((struct RClass *)($arg0))-&gt;ptr</div><div class='add'>+end</div><div class='add'>+document rp_class</div><div class='add'>+  Print the content of a Class/Module.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rp_imemo</div><div class='add'>+  set $flags = (enum imemo_type)((((struct RBasic *)($arg0))-&gt;flags &gt;&gt; RUBY_FL_USHIFT) &amp; RUBY_IMEMO_MASK)</div><div class='add'>+  if $flags == imemo_cref</div><div class='add'>+    printf "(rb_cref_t *) %p\n", (void*)$arg0</div><div class='add'>+    print *(rb_cref_t *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_svar</div><div class='add'>+    printf "(struct vm_svar *) %p\n", (void*)$arg0</div><div class='add'>+    print *(struct vm_svar *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_throw_data</div><div class='add'>+    printf "(struct vm_throw_data *) %p\n", (void*)$arg0</div><div class='add'>+    print *(struct vm_throw_data *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_ifunc</div><div class='add'>+    printf "(struct vm_ifunc *) %p\n", (void*)$arg0</div><div class='add'>+    print *(struct vm_ifunc *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_memo</div><div class='add'>+    printf "(struct MEMO *) %p\n", (void*)$arg0</div><div class='add'>+    print *(struct MEMO *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_ment</div><div class='add'>+    printf "(rb_method_entry_t *) %p\n", (void*)$arg0</div><div class='add'>+    print *(rb_method_entry_t *)$arg0</div><div class='add'>+  else</div><div class='add'>+  if $flags == imemo_iseq</div><div class='add'>+    printf "(rb_iseq_t *) %p\n", (void*)$arg0</div><div class='add'>+    print *(rb_iseq_t *)$arg0</div><div class='add'>+  else</div><div class='add'>+    printf "(struct RIMemo *) %p\n", (void*)$arg0</div><div class='add'>+    print *(struct RIMemo *)$arg0</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rp_imemo</div><div class='add'>+  Print the content of a memo</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_type</div><div class='add'>+  print (enum node_type)((((NODE*)($arg0))-&gt;flags&amp;RUBY_NODE_TYPEMASK)&gt;&gt;RUBY_NODE_TYPESHIFT)</div><div class='add'>+end</div><div class='add'>+document nd_type</div><div class='add'>+  Print a Ruby' node type.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_file</div><div class='add'>+  print ((NODE*)($arg0))-&gt;nd_file</div><div class='add'>+end</div><div class='add'>+document nd_file</div><div class='add'>+  Print the source file name of a node.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_line</div><div class='add'>+  print ((unsigned int)((((NODE*)($arg0))-&gt;flags&gt;&gt;RUBY_NODE_LSHIFT)&amp;RUBY_NODE_LMASK))</div><div class='add'>+end</div><div class='add'>+document nd_line</div><div class='add'>+  Print the source line number of a node.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Print members of ruby node.</div><div class='add'>+</div><div class='add'>+define nd_head</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_alen</div><div class='add'>+  printf "%su2.argc%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.argc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_next</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_cond</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_body</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_else</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_orig</div><div class='add'>+  printf "%su3.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_resq</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_ensr</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_1st</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_2nd</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_stts</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_entry</div><div class='add'>+  printf "%su3.entry%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u3.entry</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_vid</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_cflag</div><div class='add'>+  printf "%su2.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_cval</div><div class='add'>+  printf "%su3.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_cnt</div><div class='add'>+  printf "%su3.cnt%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u3.cnt</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_tbl</div><div class='add'>+  printf "%su1.tbl%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.tbl</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_var</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_ibdy</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_iter</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_value</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_aid</div><div class='add'>+  printf "%su3.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u3.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_lit</div><div class='add'>+  printf "%su1.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_frml</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_rest</div><div class='add'>+  printf "%su2.argc%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.argc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_opt</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_recv</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_mid</div><div class='add'>+  printf "%su2.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_args</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_noex</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_defn</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_old</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_new</div><div class='add'>+  printf "%su2.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_cfnc</div><div class='add'>+  printf "%su1.cfunc%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.cfunc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_argc</div><div class='add'>+  printf "%su2.argc%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.argc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_cname</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_super</div><div class='add'>+  printf "%su3.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u3.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_modl</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_clss</div><div class='add'>+  printf "%su1.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_beg</div><div class='add'>+  printf "%su1.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u1.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_end</div><div class='add'>+  printf "%su2.node%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.node</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_state</div><div class='add'>+  printf "%su3.state%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u3.state</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_rval</div><div class='add'>+  printf "%su2.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_nth</div><div class='add'>+  printf "%su2.argc%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u2.argc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+define nd_tag</div><div class='add'>+  printf "%su1.id%s: ", $color_highlite, $color_end</div><div class='add'>+  p ($arg0).u1.id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_tval</div><div class='add'>+  printf "%su2.value%s: ", $color_highlite, $color_end</div><div class='add'>+  rp ($arg0).u2.value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define nd_tree</div><div class='add'>+  set $buf = (struct RString *)rb_str_buf_new(0)</div><div class='add'>+  call dump_node((VALUE)($buf), rb_str_tmp_new(0), 0, ($arg0))</div><div class='add'>+  printf "%s\n", $buf-&gt;as.heap.ptr</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_p</div><div class='add'>+  call rb_p($arg0)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_numtable_entry</div><div class='add'>+  set $rb_numtable_tbl = $arg0</div><div class='add'>+  set $rb_numtable_id = (st_data_t)$arg1</div><div class='add'>+  set $rb_numtable_key = 0</div><div class='add'>+  set $rb_numtable_rec = 0</div><div class='add'>+  if $rb_numtable_tbl-&gt;entries_packed</div><div class='add'>+    set $rb_numtable_p = $rb_numtable_tbl-&gt;as.packed.bins</div><div class='add'>+    while $rb_numtable_p &amp;&amp; $rb_numtable_p &lt; $rb_numtable_tbl-&gt;as.packed.bins+$rb_numtable_tbl-&gt;num_entries</div><div class='add'>+      if $rb_numtable_p.k == $rb_numtable_id</div><div class='add'>+	set $rb_numtable_key = $rb_numtable_p.k</div><div class='add'>+	set $rb_numtable_rec = $rb_numtable_p.v</div><div class='add'>+	set $rb_numtable_p = 0</div><div class='add'>+      else</div><div class='add'>+	set $rb_numtable_p = $rb_numtable_p + 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    set $rb_numtable_p = $rb_numtable_tbl-&gt;as.big.bins[st_numhash($rb_numtable_id) % $rb_numtable_tbl-&gt;num_bins]</div><div class='add'>+    while $rb_numtable_p</div><div class='add'>+      if $rb_numtable_p-&gt;key == $rb_numtable_id</div><div class='add'>+	set $rb_numtable_key = $rb_numtable_p-&gt;key</div><div class='add'>+	set $rb_numtable_rec = $rb_numtable_p-&gt;record</div><div class='add'>+	set $rb_numtable_p = 0</div><div class='add'>+      else</div><div class='add'>+	set $rb_numtable_p = $rb_numtable_p-&gt;next</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_id2name</div><div class='add'>+  ruby_gdb_init</div><div class='add'>+  printf "%sID%s: ", $color_type, $color_end</div><div class='add'>+  rp_id $arg0</div><div class='add'>+end</div><div class='add'>+document rb_id2name</div><div class='add'>+  Print the name of id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_method_entry</div><div class='add'>+  set $rb_method_entry_klass = (struct RClass *)$arg0</div><div class='add'>+  set $rb_method_entry_id = (ID)$arg1</div><div class='add'>+  set $rb_method_entry_me = (rb_method_entry_t *)0</div><div class='add'>+  while !$rb_method_entry_me &amp;&amp; $rb_method_entry_klass</div><div class='add'>+    rb_numtable_entry $rb_method_entry_klass-&gt;m_tbl_wrapper-&gt;tbl $rb_method_entry_id</div><div class='add'>+    set $rb_method_entry_me = (rb_method_entry_t *)$rb_numtable_rec</div><div class='add'>+    if !$rb_method_entry_me</div><div class='add'>+      set $rb_method_entry_klass = (struct RClass *)RCLASS_SUPER($rb_method_entry_klass)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  if $rb_method_entry_me</div><div class='add'>+    print *$rb_method_entry_klass</div><div class='add'>+    print *$rb_method_entry_me</div><div class='add'>+  else</div><div class='add'>+    echo method not found\n</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rb_method_entry</div><div class='add'>+  Search method entry by class and id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_classname</div><div class='add'>+  # up to 128bit int</div><div class='add'>+  set $rb_classname = rb_mod_name($arg0)</div><div class='add'>+  if $rb_classname != RUBY_Qnil</div><div class='add'>+    rp $rb_classname</div><div class='add'>+  else</div><div class='add'>+    echo anonymous class/module\n</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_ancestors</div><div class='add'>+  set $rb_ancestors_module = $arg0</div><div class='add'>+  while $rb_ancestors_module</div><div class='add'>+    rp_class $rb_ancestors_module</div><div class='add'>+    set $rb_ancestors_module = RCLASS_SUPER($rb_ancestors_module)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rb_ancestors</div><div class='add'>+  Print ancestors.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_backtrace</div><div class='add'>+  call rb_backtrace()</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define iseq</div><div class='add'>+  if ruby_dummy_gdb_enums.special_consts</div><div class='add'>+  end</div><div class='add'>+  if ($arg0)-&gt;type == ISEQ_ELEMENT_NONE</div><div class='add'>+    echo [none]\n</div><div class='add'>+  end</div><div class='add'>+  if ($arg0)-&gt;type == ISEQ_ELEMENT_LABEL</div><div class='add'>+    print *(LABEL*)($arg0)</div><div class='add'>+  end</div><div class='add'>+  if ($arg0)-&gt;type == ISEQ_ELEMENT_INSN</div><div class='add'>+    print *(INSN*)($arg0)</div><div class='add'>+    if ((INSN*)($arg0))-&gt;insn_id != YARVINSN_jump</div><div class='add'>+      set $i = 0</div><div class='add'>+      set $operand_size = ((INSN*)($arg0))-&gt;operand_size</div><div class='add'>+      set $operands = ((INSN*)($arg0))-&gt;operands</div><div class='add'>+      while $i &lt; $operand_size</div><div class='add'>+	rp $operands[$i++]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  if ($arg0)-&gt;type == ISEQ_ELEMENT_ADJUST</div><div class='add'>+    print *(ADJUST*)($arg0)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_ps</div><div class='add'>+  rb_ps_vm ruby_current_vm_ptr</div><div class='add'>+end</div><div class='add'>+document rb_ps</div><div class='add'>+Dump all threads and their callstacks</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_ps_vm</div><div class='add'>+  print $ps_vm = (rb_vm_t*)$arg0</div><div class='add'>+  set $ps_thread_ln = $ps_vm-&gt;living_threads.n.next</div><div class='add'>+  set $ps_thread_ln_last = $ps_vm-&gt;living_threads.n.prev</div><div class='add'>+  while 1</div><div class='add'>+    set $ps_thread_th = (rb_thread_t *)$ps_thread_ln</div><div class='add'>+    set $ps_thread = (VALUE)($ps_thread_th-&gt;self)</div><div class='add'>+    rb_ps_thread $ps_thread</div><div class='add'>+    if $ps_thread_ln == $ps_thread_ln_last</div><div class='add'>+      loop_break</div><div class='add'>+    end</div><div class='add'>+    set $ps_thread_ln = $ps_thread_ln-&gt;next</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+document rb_ps_vm</div><div class='add'>+Dump all threads in a (rb_vm_t*) and their callstacks</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define print_lineno</div><div class='add'>+  set $cfp = $arg0</div><div class='add'>+  set $iseq = $cfp-&gt;iseq</div><div class='add'>+  set $pos = $cfp-&gt;pc - $iseq-&gt;body-&gt;iseq_encoded</div><div class='add'>+  if $pos != 0</div><div class='add'>+    set $pos = $pos - 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  set $i = 0</div><div class='add'>+  set $size = $iseq-&gt;body-&gt;insns_info_size</div><div class='add'>+  set $table = $iseq-&gt;body-&gt;insns_info</div><div class='add'>+  #printf "size: %d\n", $size</div><div class='add'>+  if $size == 0</div><div class='add'>+  else</div><div class='add'>+    set $i = 1</div><div class='add'>+    while $i &lt; $size</div><div class='add'>+      #printf "table[%d]: position: %d, line: %d, pos: %d\n", $i, $table[$i].position, $table[$i].line_no, $pos</div><div class='add'>+      if $table[$i].position &gt; $pos</div><div class='add'>+        loop_break</div><div class='add'>+      end</div><div class='add'>+      set $i = $i + 1</div><div class='add'>+      if $table[$i].position == $pos</div><div class='add'>+        loop_break</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    printf "%d", $table[$i-1].line_no</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define check_method_entry</div><div class='add'>+  set $imemo = (struct RBasic *)$arg0</div><div class='add'>+  if $imemo != RUBY_Qfalse</div><div class='add'>+    set $type = ($imemo-&gt;flags &gt;&gt; 12) &amp; 0x07</div><div class='add'>+    if $type == imemo_ment</div><div class='add'>+      set $me = (rb_callable_method_entry_t *)$imemo</div><div class='add'>+    else</div><div class='add'>+    if $type == imemo_svar</div><div class='add'>+      set $imemo = ((struct vm_svar *)$imemo)-&gt;cref_or_me</div><div class='add'>+      check_method_entry $imemo</div><div class='add'>+    end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define print_id</div><div class='add'>+  set $id = $arg0</div><div class='add'>+  # rb_id_to_serial</div><div class='add'>+  if $id &gt; tLAST_OP_ID</div><div class='add'>+    set $serial = (rb_id_serial_t)($id &gt;&gt; RUBY_ID_SCOPE_SHIFT)</div><div class='add'>+  else</div><div class='add'>+    set $serial = (rb_id_serial_t)$id</div><div class='add'>+  end</div><div class='add'>+  if $serial &amp;&amp; $serial &lt;= global_symbols.last_id</div><div class='add'>+    set $idx = $serial / ID_ENTRY_UNIT</div><div class='add'>+    set $ids = (struct RArray *)global_symbols.ids</div><div class='add'>+    set $flags = $ids-&gt;basic.flags</div><div class='add'>+    if ($flags &amp; RUBY_FL_USER1)</div><div class='add'>+      set $idsptr = $ids-&gt;as.ary</div><div class='add'>+      set $idslen = (($flags &amp; (RUBY_FL_USER3|RUBY_FL_USER4)) &gt;&gt; (RUBY_FL_USHIFT+3))</div><div class='add'>+    else</div><div class='add'>+      set $idsptr = $ids-&gt;as.heap.ptr</div><div class='add'>+      set $idslen = $ids-&gt;as.heap.len</div><div class='add'>+    end</div><div class='add'>+    if $idx &lt; $idslen</div><div class='add'>+      set $t = 0</div><div class='add'>+      set $ary = (struct RArray *)$idsptr[$idx]</div><div class='add'>+      if $ary != RUBY_Qnil</div><div class='add'>+        set $flags = $ary-&gt;basic.flags</div><div class='add'>+        if ($flags &amp; RUBY_FL_USER1)</div><div class='add'>+          set $aryptr = $ary-&gt;as.ary</div><div class='add'>+          set $arylen = (($flags &amp; (RUBY_FL_USER3|RUBY_FL_USER4)) &gt;&gt; (RUBY_FL_USHIFT+3))</div><div class='add'>+        else</div><div class='add'>+          set $aryptr = $ary-&gt;as.heap.ptr</div><div class='add'>+          set $arylen = $ary-&gt;as.heap.len</div><div class='add'>+        end</div><div class='add'>+        set $result = $aryptr[($serial % ID_ENTRY_UNIT) * ID_ENTRY_SIZE + $t]</div><div class='add'>+	if $result != RUBY_Qnil</div><div class='add'>+          print_string $result</div><div class='add'>+	else</div><div class='add'>+	  echo undef</div><div class='add'>+	end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define print_pathobj</div><div class='add'>+  set $flags = ((struct RBasic*)($arg0))-&gt;flags</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_STRING</div><div class='add'>+    print_string $arg0</div><div class='add'>+  end</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_ARRAY</div><div class='add'>+    if $flags &amp; RUBY_FL_USER1</div><div class='add'>+      set $str = ((struct RArray*)($arg0))-&gt;as.ary[0]</div><div class='add'>+    else</div><div class='add'>+      set $str = ((struct RArray*)($arg0))-&gt;as.heap.ptr[0]</div><div class='add'>+    end</div><div class='add'>+    print_string $str</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_ps_thread</div><div class='add'>+  set $ps_thread = (struct RTypedData*)$arg0</div><div class='add'>+  set $ps_thread_th = (rb_thread_t*)$ps_thread-&gt;data</div><div class='add'>+  printf "* #&lt;Thread:%p rb_thread_t:%p native_thread:%p&gt;\n", \</div><div class='add'>+    $ps_thread, $ps_thread_th, $ps_thread_th-&gt;thread_id</div><div class='add'>+  set $cfp = $ps_thread_th-&gt;ec-&gt;cfp</div><div class='add'>+  set $cfpend = (rb_control_frame_t *)($ps_thread_th-&gt;ec-&gt;vm_stack + $ps_thread_th-&gt;ec-&gt;vm_stack_size)-1</div><div class='add'>+  while $cfp &lt; $cfpend</div><div class='add'>+    if $cfp-&gt;iseq</div><div class='add'>+      if !((VALUE)$cfp-&gt;iseq &amp; RUBY_IMMEDIATE_MASK) &amp;&amp; (((imemo_ifunc &lt;&lt; RUBY_FL_USHIFT) | RUBY_T_IMEMO)==$cfp-&gt;iseq-&gt;flags &amp; ((RUBY_IMEMO_MASK &lt;&lt; RUBY_FL_USHIFT) | RUBY_T_MASK))</div><div class='add'>+        printf "%d:ifunc ", $cfpend-$cfp</div><div class='add'>+        set print symbol-filename on</div><div class='add'>+        output/a $cfp-&gt;iseq.body</div><div class='add'>+        set print symbol-filename off</div><div class='add'>+        printf "\n"</div><div class='add'>+      else</div><div class='add'>+      if $cfp-&gt;pc</div><div class='add'>+        set $location = $cfp-&gt;iseq-&gt;body-&gt;location</div><div class='add'>+        printf "%d:", $cfpend-$cfp</div><div class='add'>+        print_pathobj $location.pathobj</div><div class='add'>+        printf ":"</div><div class='add'>+        print_lineno $cfp</div><div class='add'>+        printf ":in `"</div><div class='add'>+        print_string $location.label</div><div class='add'>+        printf "'\n"</div><div class='add'>+      else</div><div class='add'>+        printf "%d: ???.rb:???:in `???'\n", $cfpend-$cfp</div><div class='add'>+      end</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      # if VM_FRAME_TYPE($cfp-&gt;flag) == VM_FRAME_MAGIC_CFUNC</div><div class='add'>+      set $ep = $cfp-&gt;ep</div><div class='add'>+      if ($ep[0] &amp; 0xffff0001) == 0x55550001</div><div class='add'>+        #define VM_ENV_FLAG_LOCAL 0x02</div><div class='add'>+        #define VM_ENV_PREV_EP(ep)   GC_GUARDED_PTR_REF(ep[VM_ENV_DATA_INDEX_SPECVAL])</div><div class='add'>+        set $me = 0</div><div class='add'>+        set $env_specval = $ep[-1]</div><div class='add'>+        set $env_me_cref = $ep[-2]</div><div class='add'>+        while ($env_specval &amp; 0x02) != 0</div><div class='add'>+          check_method_entry $env_me_cref</div><div class='add'>+          if $me != 0</div><div class='add'>+            loop_break</div><div class='add'>+          end</div><div class='add'>+          set $ep = $ep[0]</div><div class='add'>+          set $env_specval = $ep[-1]</div><div class='add'>+          set $env_me_cref = $ep[-2]</div><div class='add'>+        end</div><div class='add'>+        if $me == 0</div><div class='add'>+          check_method_entry $env_me_cref</div><div class='add'>+        end</div><div class='add'>+        printf "%d:", $cfpend-$cfp</div><div class='add'>+        set print symbol-filename on</div><div class='add'>+        output/a $me-&gt;def-&gt;body.cfunc.func</div><div class='add'>+        set print symbol-filename off</div><div class='add'>+        set $mid = $me-&gt;def-&gt;original_id</div><div class='add'>+        printf ":in `"</div><div class='add'>+        print_id $mid</div><div class='add'>+        printf "'\n"</div><div class='add'>+      else</div><div class='add'>+        printf "%d:unknown_frame:???:in `???'\n", $cfpend-$cfp</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    set $cfp = $cfp + 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rb_count_objects</div><div class='add'>+  set $objspace = ruby_current_vm_ptr-&gt;objspace</div><div class='add'>+  set $counts_00 = 0</div><div class='add'>+  set $counts_01 = 0</div><div class='add'>+  set $counts_02 = 0</div><div class='add'>+  set $counts_03 = 0</div><div class='add'>+  set $counts_04 = 0</div><div class='add'>+  set $counts_05 = 0</div><div class='add'>+  set $counts_06 = 0</div><div class='add'>+  set $counts_07 = 0</div><div class='add'>+  set $counts_08 = 0</div><div class='add'>+  set $counts_09 = 0</div><div class='add'>+  set $counts_0a = 0</div><div class='add'>+  set $counts_0b = 0</div><div class='add'>+  set $counts_0c = 0</div><div class='add'>+  set $counts_0d = 0</div><div class='add'>+  set $counts_0e = 0</div><div class='add'>+  set $counts_0f = 0</div><div class='add'>+  set $counts_10 = 0</div><div class='add'>+  set $counts_11 = 0</div><div class='add'>+  set $counts_12 = 0</div><div class='add'>+  set $counts_13 = 0</div><div class='add'>+  set $counts_14 = 0</div><div class='add'>+  set $counts_15 = 0</div><div class='add'>+  set $counts_16 = 0</div><div class='add'>+  set $counts_17 = 0</div><div class='add'>+  set $counts_18 = 0</div><div class='add'>+  set $counts_19 = 0</div><div class='add'>+  set $counts_1a = 0</div><div class='add'>+  set $counts_1b = 0</div><div class='add'>+  set $counts_1c = 0</div><div class='add'>+  set $counts_1d = 0</div><div class='add'>+  set $counts_1e = 0</div><div class='add'>+  set $counts_1f = 0</div><div class='add'>+  set $total = 0</div><div class='add'>+  set $i = 0</div><div class='add'>+  while $i &lt; $objspace-&gt;heap_pages.allocated_pages</div><div class='add'>+    printf "\rcounting... %d/%d", $i, $objspace-&gt;heap_pages.allocated_pages</div><div class='add'>+    set $page = $objspace-&gt;heap_pages.sorted[$i]</div><div class='add'>+    set $p = $page-&gt;start</div><div class='add'>+    set $pend = $p + $page-&gt;total_slots</div><div class='add'>+    while $p &lt; $pend</div><div class='add'>+      set $flags = $p-&gt;as.basic.flags &amp; 0x1f</div><div class='add'>+      eval "set $counts_%02x = $counts_%02x + 1", $flags, $flags</div><div class='add'>+      set $p = $p + 1</div><div class='add'>+    end</div><div class='add'>+    set $total = $total + $page-&gt;total_slots</div><div class='add'>+    set $i = $i + 1</div><div class='add'>+  end</div><div class='add'>+  printf "\rTOTAL: %d, FREE: %d\n", $total, $counts_00</div><div class='add'>+  printf "T_OBJECT: %d\n", $counts_01</div><div class='add'>+  printf "T_CLASS: %d\n", $counts_02</div><div class='add'>+  printf "T_MODULE: %d\n", $counts_03</div><div class='add'>+  printf "T_FLOAT: %d\n", $counts_04</div><div class='add'>+  printf "T_STRING: %d\n", $counts_05</div><div class='add'>+  printf "T_REGEXP: %d\n", $counts_06</div><div class='add'>+  printf "T_ARRAY: %d\n", $counts_07</div><div class='add'>+  printf "T_HASH: %d\n", $counts_08</div><div class='add'>+  printf "T_STRUCT: %d\n", $counts_09</div><div class='add'>+  printf "T_BIGNUM: %d\n", $counts_0a</div><div class='add'>+  printf "T_FILE: %d\n", $counts_0b</div><div class='add'>+  printf "T_DATA: %d\n", $counts_0c</div><div class='add'>+  printf "T_MATCH: %d\n", $counts_0d</div><div class='add'>+  printf "T_COMPLEX: %d\n", $counts_0e</div><div class='add'>+  printf "T_RATIONAL: %d\n", $counts_0f</div><div class='add'>+  #printf "UNKNOWN_10: %d\n", $counts_10</div><div class='add'>+  printf "T_NIL: %d\n", $counts_11</div><div class='add'>+  printf "T_TRUE: %d\n", $counts_12</div><div class='add'>+  printf "T_FALSE: %d\n", $counts_13</div><div class='add'>+  printf "T_SYMBOL: %d\n", $counts_14</div><div class='add'>+  printf "T_FIXNUM: %d\n", $counts_15</div><div class='add'>+  printf "T_UNDEF: %d\n", $counts_16</div><div class='add'>+  #printf "UNKNOWN_17: %d\n", $counts_17</div><div class='add'>+  #printf "UNKNOWN_18: %d\n", $counts_18</div><div class='add'>+  #printf "UNKNOWN_19: %d\n", $counts_19</div><div class='add'>+  printf "T_IMEMO: %d\n", $counts_1a</div><div class='add'>+  printf "T_NODE: %d\n", $counts_1b</div><div class='add'>+  printf "T_ICLASS: %d\n", $counts_1c</div><div class='add'>+  printf "T_ZOMBIE: %d\n", $counts_1d</div><div class='add'>+  #printf "UNKNOWN_1E: %d\n", $counts_1e</div><div class='add'>+  printf "T_MASK: %d\n", $counts_1f</div><div class='add'>+end</div><div class='add'>+document rb_count_objects</div><div class='add'>+  Counts all objects grouped by type.</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Details: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB</div><div class='add'>+define trace_machine_instructions</div><div class='add'>+  set logging on</div><div class='add'>+  set height 0</div><div class='add'>+  set width 0</div><div class='add'>+  display/i $pc</div><div class='add'>+  while !$exit_code</div><div class='add'>+    info line *$pc</div><div class='add'>+    si</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define SDR</div><div class='add'>+  call rb_vmdebug_stack_dump_raw_current()</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define rbi</div><div class='add'>+  if ((LINK_ELEMENT*)$arg0)-&gt;type == ISEQ_ELEMENT_LABEL</div><div class='add'>+    p *(LABEL*)$arg0</div><div class='add'>+  else</div><div class='add'>+  if ((LINK_ELEMENT*)$arg0)-&gt;type == ISEQ_ELEMENT_INSN</div><div class='add'>+    p *(INSN*)$arg0</div><div class='add'>+  else</div><div class='add'>+  if ((LINK_ELEMENT*)$arg0)-&gt;type == ISEQ_ELEMENT_ADJUST</div><div class='add'>+    p *(ADJUST*)$arg0</div><div class='add'>+  else</div><div class='add'>+    print *$arg0</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+define dump_node</div><div class='add'>+  set $str = rb_parser_dump_tree($arg0, 0)</div><div class='add'>+  set $flags = ((struct RBasic*)($str))-&gt;flags</div><div class='add'>+  printf "%s", (char *)(($flags &amp; RUBY_FL_USER1) ? \</div><div class='add'>+                        ((struct RString*)$str)-&gt;as.heap.ptr : \</div><div class='add'>+                        ((struct RString*)$str)-&gt;as.ary)</div><div class='add'>+end</div><div class='head'>diff --git a/.gitattributes b/.gitattributes<br/>new file mode 100644<br/>index 0000000000..6ca2f89462<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.gitattributes?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.gitattributes</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+*.gemspec diff=ruby</div><div class='add'>+*.rb diff=ruby</div><div class='add'>+bin svn-properties=svn:ignore=ruby</div><div class='add'>+bin/* diff=ruby</div><div class='add'>+tool/update-deps diff=ruby</div><div class='add'>+tool/make-snapshot diff=ruby</div><div class='head'>diff --git a/.gitignore b/.gitignore<br/>new file mode 100644<br/>index 0000000000..efc7fd5864<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.gitignore?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.gitignore</a></div><div class='hunk'>@@ -0,0 +1,197 @@</div><div class='add'>+*-*-*.def</div><div class='add'>+*-*-*.exp</div><div class='add'>+*-*-*.lib</div><div class='add'>+*.a</div><div class='add'>+*.bak</div><div class='add'>+*.bc</div><div class='add'>+*.dSYM</div><div class='add'>+*.dmyh</div><div class='add'>+*.dylib</div><div class='add'>+*.elc</div><div class='add'>+*.i</div><div class='add'>+*.inc</div><div class='add'>+*.log</div><div class='add'>+*.o</div><div class='add'>+*.obj</div><div class='add'>+*.old</div><div class='add'>+*.orig</div><div class='add'>+*.pdb</div><div class='add'>+*.rej</div><div class='add'>+*.s</div><div class='add'>+*.sav</div><div class='add'>+*.swp</div><div class='add'>+*.yarb</div><div class='add'>+*~</div><div class='add'>+.*-*</div><div class='add'>+.*.list</div><div class='add'>+.*.time</div><div class='add'>+.DS_Store</div><div class='add'>+.bundle</div><div class='add'>+.ccmalloc</div><div class='add'>+.ext</div><div class='add'>+.pc</div><div class='add'>+.ppack</div><div class='add'>+.svn</div><div class='add'>+Makefile</div><div class='add'>+cygruby*.def</div><div class='add'>+extconf.h</div><div class='add'>+y.output</div><div class='add'>+y.tab.c</div><div class='add'>+*.gcda</div><div class='add'>+*.gcno</div><div class='add'>+*.gcov</div><div class='add'>+lcov*.info</div><div class='add'>+</div><div class='add'>+# /</div><div class='add'>+/*-fake.rb</div><div class='add'>+/*.dll</div><div class='add'>+/*.exe</div><div class='add'>+/*.res</div><div class='add'>+/*.pc</div><div class='add'>+/*.rc</div><div class='add'>+/*_prelude.c</div><div class='add'>+/COPYING.LIB</div><div class='add'>+/Doxyfile</div><div class='add'>+/GNUmakefile</div><div class='add'>+/README.atheos</div><div class='add'>+/README.fat-patch</div><div class='add'>+/README.v6</div><div class='add'>+/TAGS</div><div class='add'>+/archive</div><div class='add'>+/autom4te*.cache</div><div class='add'>+/automake</div><div class='add'>+/beos</div><div class='add'>+/bmlog-*</div><div class='add'>+/breakpoints.gdb</div><div class='add'>+/config.cache</div><div class='add'>+/config.h</div><div class='add'>+/config.h.in</div><div class='add'>+/config.status</div><div class='add'>+/config.status.lineno</div><div class='add'>+/configure</div><div class='add'>+/coverage/simplecov</div><div class='add'>+/coverage/simplecov-html</div><div class='add'>+/coverage/doclie</div><div class='add'>+/coverage/.last_run.json</div><div class='add'>+/coverage/.resultset.json*</div><div class='add'>+/coverage/assets</div><div class='add'>+/coverage/index.html</div><div class='add'>+/doc/capi</div><div class='add'>+/enc.mk</div><div class='add'>+/encdb.h</div><div class='add'>+/exts.mk</div><div class='add'>+/goruby</div><div class='add'>+/id.[ch]</div><div class='add'>+/largefile.h</div><div class='add'>+/lcov-c-out</div><div class='add'>+/lcov-rb-out</div><div class='add'>+/lcov-out</div><div class='add'>+/lex.c</div><div class='add'>+/libruby*.*</div><div class='add'>+/miniprelude.c</div><div class='add'>+/miniruby</div><div class='add'>+/newdate.rb</div><div class='add'>+/newline.c</div><div class='add'>+/newver.rb</div><div class='add'>+/parse.c</div><div class='add'>+/parse.h</div><div class='add'>+/patches</div><div class='add'>+/patches-master</div><div class='add'>+/pitest.rb</div><div class='add'>+/ppack</div><div class='add'>+/prelude.c</div><div class='add'>+/preview</div><div class='add'>+/probes.dmyh</div><div class='add'>+/probes.h</div><div class='add'>+/rbconfig.rb</div><div class='add'>+/rename2.h</div><div class='add'>+/repack</div><div class='add'>+/revision.h</div><div class='add'>+/riscos</div><div class='add'>+/rubicon</div><div class='add'>+/ruby</div><div class='add'>+/ruby-runner</div><div class='add'>+/ruby-runner.h</div><div class='add'>+/ruby-man.rd.gz</div><div class='add'>+/run.gdb</div><div class='add'>+/sizes.c</div><div class='add'>+/test.rb</div><div class='add'>+/test-coverage.dat</div><div class='add'>+/tmp</div><div class='add'>+/transdb.h</div><div class='add'>+/uncommon.mk</div><div class='add'>+/verconf.h</div><div class='add'>+/verconf.mk</div><div class='add'>+/web</div><div class='add'>+/yasmdata.rb</div><div class='add'>+</div><div class='add'>+# /benchmark/</div><div class='add'>+/benchmark/bm_require.data</div><div class='add'>+/benchmark/bmx_*.rb</div><div class='add'>+/benchmark/fasta.output.*</div><div class='add'>+/benchmark/wc.input</div><div class='add'>+</div><div class='add'>+/enc/*.def</div><div class='add'>+/enc/*.exp</div><div class='add'>+/enc/*.lib</div><div class='add'>+/enc/jis/props.h</div><div class='add'>+/enc/unicode/data</div><div class='add'>+</div><div class='add'>+# /enc/trans/</div><div class='add'>+/enc/trans/*.c</div><div class='add'>+/enc/trans/*.def</div><div class='add'>+/enc/trans/*.exp</div><div class='add'>+/enc/trans/*.lib</div><div class='add'>+/enc/trans/.time</div><div class='add'>+</div><div class='add'>+# /exe/</div><div class='add'>+/exe/ruby</div><div class='add'>+/exe/.time</div><div class='add'>+</div><div class='add'>+# /ext/</div><div class='add'>+/ext/extinit.c</div><div class='add'>+/ext/configure-ext.mk</div><div class='add'>+/ext/*/exts.mk</div><div class='add'>+</div><div class='add'>+# /ext/-test-/win32/dln/</div><div class='add'>+/ext/-test-/win32/dln/dlntest.dll</div><div class='add'>+/ext/-test-/win32/dln/dlntest.exp</div><div class='add'>+/ext/-test-/win32/dln/dlntest.lib</div><div class='add'>+</div><div class='add'>+# /ext/etc/</div><div class='add'>+/ext/etc/constdefs.h</div><div class='add'>+</div><div class='add'>+# /ext/fiddle/</div><div class='add'>+/ext/fiddle/libffi-*</div><div class='add'>+</div><div class='add'>+# /ext/rbconfig/</div><div class='add'>+/ext/rbconfig/sizeof/sizes.c</div><div class='add'>+/ext/rbconfig/sizeof/limits.c</div><div class='add'>+</div><div class='add'>+# /ext/ripper/</div><div class='add'>+/ext/ripper/eventids1.c</div><div class='add'>+/ext/ripper/eventids2table.c</div><div class='add'>+/ext/ripper/ripper.*</div><div class='add'>+/ext/ripper/ids1</div><div class='add'>+/ext/ripper/ids2</div><div class='add'>+</div><div class='add'>+# /ext/socket/</div><div class='add'>+/ext/socket/constants.h</div><div class='add'>+/ext/socket/constdefs.h</div><div class='add'>+/ext/socket/constdefs.c</div><div class='add'>+</div><div class='add'>+# /gems</div><div class='add'>+/gems/*.gem</div><div class='add'>+/gems/src</div><div class='add'>+/gems/*-*</div><div class='add'>+</div><div class='add'>+# /spec/bundler</div><div class='add'>+/.rspec_status</div><div class='add'>+</div><div class='add'>+# /tool/</div><div class='add'>+/tool/config.guess</div><div class='add'>+/tool/config.sub</div><div class='add'>+</div><div class='add'>+# /win32/</div><div class='add'>+/win32/*.ico</div><div class='add'>+/win32/.time</div><div class='head'>diff --git a/.indent.pro b/.indent.pro<br/>new file mode 100644<br/>index 0000000000..6a207a0554<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.indent.pro?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.indent.pro</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+-bap</div><div class='add'>+-nbbb</div><div class='add'>+-nbc</div><div class='add'>+-br</div><div class='add'>+-nbs</div><div class='add'>+-ncdb</div><div class='add'>+-ce</div><div class='add'>+-cli0.5</div><div class='add'>+-ndj</div><div class='add'>+-ei</div><div class='add'>+-nfc1</div><div class='add'>+-i4</div><div class='add'>+-l120</div><div class='add'>+-lp</div><div class='add'>+-npcs</div><div class='add'>+-psl</div><div class='add'>+-sc</div><div class='add'>+-sob</div><div class='add'>+</div><div class='add'>+-TID</div><div class='add'>+-TVALUE</div><div class='head'>diff --git a/.travis.yml b/.travis.yml<br/>new file mode 100644<br/>index 0000000000..a9117d190f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.travis.yml?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>.travis.yml</a></div><div class='hunk'>@@ -0,0 +1,109 @@</div><div class='add'>+# Copyright (C) 2011 Urabe, Shyouhei.  All rights reserved.</div><div class='add'>+#</div><div class='add'>+# This file is  a part of the programming language  Ruby.  Permission is hereby</div><div class='add'>+# granted,  to either  redistribute  or  modify this  file,  provided that  the</div><div class='add'>+# conditions  mentioned in  the file  COPYING are  met.  Consult  the  file for</div><div class='add'>+# details.</div><div class='add'>+</div><div class='add'>+# This is  a Travis-CI  build configuration file.   The list  of configurations</div><div class='add'>+# available is located in</div><div class='add'>+#</div><div class='add'>+#     http://about.travis-ci.org/docs/user/build-configuration/</div><div class='add'>+#</div><div class='add'>+# and as Ruby itself is a project written in C language,</div><div class='add'>+#</div><div class='add'>+#     http://about.travis-ci.org/docs/user/languages/c/</div><div class='add'>+#</div><div class='add'>+# is also a good place to look at.</div><div class='add'>+</div><div class='add'>+language: c</div><div class='add'>+dist: trusty</div><div class='add'>+</div><div class='add'>+# temporary workaround for https://github.com/travis-ci/travis-ci/issues/8892</div><div class='add'>+sudo: required</div><div class='add'>+group: deprecated-2017Q4</div><div class='add'>+</div><div class='add'>+compiler:</div><div class='add'>+  - gcc</div><div class='add'>+</div><div class='add'>+os:</div><div class='add'>+  - linux</div><div class='add'>+</div><div class='add'>+before_install:</div><div class='add'>+  - "CONFIG_FLAG="</div><div class='add'>+  - "JOBS=-j`nproc`"</div><div class='add'>+</div><div class='add'>+before_script:</div><div class='add'>+  - "echo JOBS=$JOBS"</div><div class='add'>+  - "uname -a"</div><div class='add'>+  - "uname -r"</div><div class='add'>+  - "rm -fr .ext autom4te.cache"</div><div class='add'>+  - "echo $TERM"</div><div class='add'>+  - "&gt; config.status"</div><div class='add'>+  - "sed -f tool/prereq.status Makefile.in common.mk &gt; Makefile"</div><div class='add'>+  - "make update-config_files"</div><div class='add'>+  - "make touch-unicode-files"</div><div class='add'>+  - "make -s $JOBS srcs UNICODE_FILES=."</div><div class='add'>+  - "requests=; for req in ${RUBYSPEC_PULL_REQUEST//,/ }; do</div><div class='add'>+      requests=\"$requests +refs/pull/$req/merge:\";</div><div class='add'>+    done"</div><div class='add'>+  - "${requests:+git -C spec/ruby -c user.email=none -c user.name=none pull --no-edit origin $requests}"</div><div class='add'>+  - "${requests:+git -C spec/ruby log --oneline origin/master..@}"</div><div class='add'>+  - "rm config.status Makefile rbconfig.rb .rbconfig.time"</div><div class='add'>+  - "mkdir build config_1st config_2nd"</div><div class='add'>+  - "chmod -R a-w ."</div><div class='add'>+  - "chmod u+w build config_1st config_2nd"</div><div class='add'>+  - "cd build"</div><div class='add'>+  - "../configure -C --disable-install-doc --with-gcc=$CC $CONFIG_FLAG"</div><div class='add'>+  - "cp -pr config.cache config.status .ext/include ../config_1st"</div><div class='add'>+  - "make reconfig"</div><div class='add'>+  - "cp -pr config.cache config.status .ext/include ../config_2nd"</div><div class='add'>+  - "(cd .. &amp;&amp; exec diff -ru config_1st config_2nd)"</div><div class='add'>+  - "make -s $JOBS"</div><div class='add'>+</div><div class='add'>+script:</div><div class='add'>+  - "make -s test TESTOPTS=--color=never"</div><div class='add'>+  - "make -s $JOBS test-all -o exts TESTOPTS='-q --color=never --job-status=normal'"</div><div class='add'>+  - "make -s $JOBS test-spec MSPECOPT=-j"</div><div class='add'>+</div><div class='add'>+# Branch matrix.  Not all branches are Travis-ready so we limit branches here.</div><div class='add'>+branches:</div><div class='add'>+  only:</div><div class='add'>+    - trunk</div><div class='add'>+    - ruby_2_2</div><div class='add'>+    - ruby_2_3</div><div class='add'>+    - ruby_2_4</div><div class='add'>+    - ruby_2_5</div><div class='add'>+    - /^feature\//</div><div class='add'>+    - /^bug\//</div><div class='add'>+</div><div class='add'>+# We want to be notified when something happens.</div><div class='add'>+notifications:</div><div class='add'>+  irc:</div><div class='add'>+    channels:</div><div class='add'>+      - "chat.freenode.net#ruby-core"</div><div class='add'>+      - "chat.freenode.net#ruby-ja"</div><div class='add'>+    on_success: change # [always|never|change] # default: always</div><div class='add'>+    on_failure: always # [always|never|change] # default: always</div><div class='add'>+    template:</div><div class='add'>+      - "%{message} by @%{author}: See %{build_url}"</div><div class='add'>+</div><div class='add'>+  slack:</div><div class='add'>+    rooms:</div><div class='add'>+      - secure: i1GLETSKye85ea6dGNA3MxI/5myChmMFiZtBd5C69xK+s1sBFqEgOSbaSf9KHc0CYrHVyNhQMaZRruieV7xS+6Pfs0Zvxf1DO6QQTWC2KhkqwFDLvZncAzjoyASdR90hbr+iRPOngQ+HJuE94zemALAwEqNAinzA74PMiJXktqY= # ruby:&lt;token&gt;#commits</div><div class='add'>+      - secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:&lt;token&gt;#alerts</div><div class='add'>+    on_pull_requests: false</div><div class='add'>+    on_success: change</div><div class='add'>+    on_failure: always</div><div class='add'>+</div><div class='add'>+  email:</div><div class='add'>+    - ko1c-failure@atdot.net</div><div class='add'>+</div><div class='add'>+# Local Variables:</div><div class='add'>+# mode: YAML</div><div class='add'>+# coding: utf-8-unix</div><div class='add'>+# indent-tabs-mode: nil</div><div class='add'>+# tab-width: 4</div><div class='add'>+# fill-column: 79</div><div class='add'>+# default-justification: full</div><div class='add'>+# End:</div><div class='head'>diff --git a/BSDL b/BSDL<br/>new file mode 100644<br/>index 0000000000..a009caefea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/BSDL?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>BSDL</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.</div><div class='add'>+</div><div class='add'>+Redistribution and use in source and binary forms, with or without</div><div class='add'>+modification, are permitted provided that the following conditions</div><div class='add'>+are met:</div><div class='add'>+1. Redistributions of source code must retain the above copyright</div><div class='add'>+notice, this list of conditions and the following disclaimer.</div><div class='add'>+2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+notice, this list of conditions and the following disclaimer in the</div><div class='add'>+documentation and/or other materials provided with the distribution.</div><div class='add'>+</div><div class='add'>+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+SUCH DAMAGE.</div><div class='head'>diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md<br/>new file mode 100644<br/>index 0000000000..ffdf2dd4b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/CONTRIBUTING.md?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>CONTRIBUTING.md</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+Please see the [official issue tracker] and wiki [HowToContribute].</div><div class='add'>+</div><div class='add'>+[official issue tracker]: https://bugs.ruby-lang.org</div><div class='add'>+[HowToContribute]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToContribute</div><div class='head'>diff --git a/COPYING b/COPYING<br/>index 9043404a83..f06056fb45 100644<br/>--- a/<a href='/ruby.git/tree/COPYING?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>COPYING</a><br/>+++ b/<a href='/ruby.git/tree/COPYING?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>COPYING</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> Ruby is copyrighted free software by Yukihiro Matsumoto &lt;matz@netlab.jp&gt;.</div><div class='del'>-You can redistribute it and/or modify it under either the terms of the GPL</div><div class='del'>-version 2 (see the file GPL), or the conditions below:</div><div class='add'>+You can redistribute it and/or modify it under either the terms of the</div><div class='add'>+2-clause BSDL (see the file BSDL), or the conditions below:</div><div class='ctx'> </div><div class='ctx'>   1. You may make and give away verbatim copies of the source form of the</div><div class='ctx'>      software without restriction, provided that you duplicate all of the</div><div class='hunk'>@@ -11,8 +11,8 @@ version 2 (see the file GPL), or the conditions below:</div><div class='ctx'> </div><div class='ctx'>        a) place your modifications in the Public Domain or otherwise</div><div class='ctx'>           make them Freely Available, such as by posting said</div><div class='del'>-	  modifications to Usenet or an equivalent medium, or by allowing</div><div class='del'>-	  the author to include your modifications in the software.</div><div class='add'>+          modifications to Usenet or an equivalent medium, or by allowing</div><div class='add'>+          the author to include your modifications in the software.</div><div class='ctx'> </div><div class='ctx'>        b) use the modified software only within your corporation or</div><div class='ctx'>           organization.</div><div class='hunk'>@@ -26,11 +26,11 @@ version 2 (see the file GPL), or the conditions below:</div><div class='ctx'>      provided that you do at least ONE of the following:</div><div class='ctx'> </div><div class='ctx'>        a) distribute the binaries and library files of the software,</div><div class='del'>-	  together with instructions (in the manual page or equivalent)</div><div class='del'>-	  on where to get the original distribution.</div><div class='add'>+          together with instructions (in the manual page or equivalent)</div><div class='add'>+          on where to get the original distribution.</div><div class='ctx'> </div><div class='ctx'>        b) accompany the distribution with the machine-readable source of</div><div class='del'>-	  the software.</div><div class='add'>+          the software.</div><div class='ctx'> </div><div class='ctx'>        c) give non-standard binaries non-standard names, with</div><div class='ctx'>           instructions on where to get the original software distribution.</div><div class='hunk'>@@ -44,9 +44,9 @@ version 2 (see the file GPL), or the conditions below:</div><div class='ctx'>      For the list of those files and their copying conditions, see the</div><div class='ctx'>      file LEGAL.</div><div class='ctx'> </div><div class='del'>-  5. The scripts and library files supplied as input to or produced as </div><div class='add'>+  5. The scripts and library files supplied as input to or produced as</div><div class='ctx'>      output from the software do not automatically fall under the</div><div class='del'>-     copyright of the software, but belong to whomever generated them, </div><div class='add'>+     copyright of the software, but belong to whomever generated them,</div><div class='ctx'>      and may be sold commercially, and may be aggregated with this</div><div class='ctx'>      software.</div><div class='ctx'> </div><div class='head'>diff --git a/COPYING.ja b/COPYING.ja<br/>index 933cc7cb9a..e50d01c8d1 100644<br/>--- a/<a href='/ruby.git/tree/COPYING.ja?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>COPYING.ja</a><br/>+++ b/<a href='/ruby.git/tree/COPYING.ja?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>COPYING.ja</a></div><div class='hunk'>@@ -1,51 +1,51 @@</div><div class='del'>-$BK\%W%m%0%i%`$O%U%j!&lt;%=%U%H%&amp;%'%"$G$9!%(BGPL(the GNU General</div><div class='del'>-Public License)$B$^$?$O0J2&lt;$K&lt;($9&gt;r7o$GK\%W%m%0%i%`$r:FG[I[$G(B</div><div class='del'>-$B$-$^$9!%(BGPL$B$K$D$$$F$O(BGPL$B%U%!%$%k$r;2&gt;H$7$F2&lt;$5$$!%(B</div><div class='add'>+æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯ãƒ•ãƒªãƒ¼ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã§ã™ï¼Ž2-clause BSDL</div><div class='add'>+ã¾ãŸã¯ä»¥ä¸‹ã«ç¤ºã™æ¡ä»¶ã§æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’å†é…å¸ƒã§ãã¾ã™</div><div class='add'>+2-clause BSDLã«ã¤ã„ã¦ã¯BSDLãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-  1. $BJ#@=$O@)8B$J$/&lt;+M3$G$9!%(B</div><div class='add'>+  1. è¤‡è£½ã¯åˆ¶é™ãªãè‡ªç”±ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-  2. $B0J2&lt;$N&gt;r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!&lt;%9$r(B</div><div class='del'>-     $B&lt;+M3$KJQ99$G$-$^$9!%(B</div><div class='add'>+  2. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼ã‚¹ã‚’</div><div class='add'>+     è‡ªç”±ã«å¤‰æ›´ã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (a) $B%M%C%H%K%e!&lt;%:$K%]%9%H$7$?$j!$:n&lt;T$KJQ99$rAwIU$9$k(B</div><div class='del'>-         $B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B</div><div class='add'>+     (a) ãƒãƒƒãƒˆãƒ‹ãƒ¥ãƒ¼ã‚ºã«ãƒã‚¹ãƒˆã—ãŸã‚Šï¼Œä½œè€…ã«å¤‰æ›´ã‚’é€ä»˜ã™ã‚‹</div><div class='add'>+         ãªã©ã®æ–¹æ³•ã§ï¼Œå¤‰æ›´ã‚’å…¬é–‹ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (b) $BJQ99$7$?K\%W%m%0%i%`$r&lt;+J,$N=jB0$9$kAH?%FbIt$@$1$G(B</div><div class='del'>-         $B;H$&amp;!%(B</div><div class='add'>+     (b) å¤‰æ›´ã—ãŸæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’è‡ªåˆ†ã®æ‰€å±žã™ã‚‹çµ„ç¹”å†…éƒ¨ã ã‘ã§</div><div class='add'>+         ä½¿ã†ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (c) $BJQ99E@$rL@&lt;($7$?$&amp;$(!$%=%U%H%&amp;%'%"$NL&gt;A0$rJQ99$9$k!%(B</div><div class='del'>-         $B$=$N%=%U%H%&amp;%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B</div><div class='del'>-         $B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!&lt;(B</div><div class='del'>-         $B%9$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+     (c) å¤‰æ›´ç‚¹ã‚’æ˜Žç¤ºã—ãŸã†ãˆï¼Œã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®åå‰ã‚’å¤‰æ›´ã™ã‚‹ï¼Ž</div><div class='add'>+         ãã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’é…å¸ƒã™ã‚‹æ™‚ã«ã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='add'>+         ãƒ ã‚‚åŒæ™‚ã«é…å¸ƒã™ã‚‹ï¼Žã¾ãŸã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼</div><div class='add'>+         ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (d) $B$=$NB&gt;$NJQ99&gt;r7o$r:n&lt;T$H9g0U$9$k!%(B</div><div class='add'>+     (d) ãã®ä»–ã®å¤‰æ›´æ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-  3. $B0J2&lt;$N&gt;r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B</div><div class='del'>-     $B%k$7$?%*%V%8%'%/%H%3!&lt;%I$d&lt;B9T7A&lt;0$G$bG[I[$G$-$^$9!%(B</div><div class='add'>+  3. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚³ãƒ³ãƒ‘ã‚¤</div><div class='add'>+     ãƒ«ã—ãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚³ãƒ¼ãƒ‰ã‚„å®Ÿè¡Œå½¢å¼ã§ã‚‚é…å¸ƒã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (a) $B%P%$%J%j$r&lt;u$1&lt;h$C$??M$,%=!&lt;%9$rF~&lt;j$G$-$k$h$&amp;$K!$(B</div><div class='del'>-         $B%=!&lt;%9$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+     (a) ãƒã‚¤ãƒŠãƒªã‚’å—ã‘å–ã£ãŸäººãŒã‚½ãƒ¼ã‚¹ã‚’å…¥æ‰‹ã§ãã‚‹ã‚ˆã†ã«ï¼Œ</div><div class='add'>+         ã‚½ãƒ¼ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (b) $B5!3#2DFI$J%=!&lt;%9%3!&lt;%I$rE:IU$9$k!%(B</div><div class='add'>+     (b) æ©Ÿæ¢°å¯èª­ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’æ·»ä»˜ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (c) $BJQ99$r9T$C$?%P%$%J%j$OL&gt;A0$rJQ99$7$?$&amp;$(!$%*%j%8%J(B</div><div class='del'>-         $B%k$N%=!&lt;%9%3!&lt;%I$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+     (c) å¤‰æ›´ã‚’è¡Œã£ãŸãƒã‚¤ãƒŠãƒªã¯åå‰ã‚’å¤‰æ›´ã—ãŸã†ãˆï¼Œã‚ªãƒªã‚¸ãƒŠ</div><div class='add'>+         ãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (d) $B$=$NB&gt;$NG[I[&gt;r7o$r:n&lt;T$H9g0U$9$k!%(B</div><div class='add'>+     (d) ãã®ä»–ã®é…å¸ƒæ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-  4. $BB&gt;$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l&lt;+M3$G$9!%$?(B</div><div class='del'>-     $B$@$7!$K\%W%m%0%i%`$K4^$^$l$kB&gt;$N:n&lt;T$K$h$k%3!&lt;%I$O!$$=(B</div><div class='del'>-     $B$l$&gt;$l$N:n&lt;T$N0U8~$K$h$k@)8B$,2C$($i$l$k&gt;l9g$,$"$j$^$9!%(B</div><div class='add'>+  4. ä»–ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å¼•ç”¨ã¯ã„ã‹ãªã‚‹ç›®çš„ã§ã‚ã‚Œè‡ªç”±ã§ã™ï¼ŽãŸ</div><div class='add'>+     ã ã—ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«å«ã¾ã‚Œã‚‹ä»–ã®ä½œè€…ã«ã‚ˆã‚‹ã‚³ãƒ¼ãƒ‰ã¯ï¼Œã</div><div class='add'>+     ã‚Œãžã‚Œã®ä½œè€…ã®æ„å‘ã«ã‚ˆã‚‹åˆ¶é™ãŒåŠ ãˆã‚‰ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     $B$=$l$i%U%!%$%k$N0lMw$H$=$l$&gt;$l$NG[I[&gt;r7o$J$I$KIU$$$F$O(B</div><div class='del'>-     LEGAL$B%U%!%$%k$r;2&gt;H$7$F$/$@$5$$!%(B</div><div class='add'>+     ãã‚Œã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ã¨ãã‚Œãžã‚Œã®é…å¸ƒæ¡ä»¶ãªã©ã«ä»˜ã„ã¦ã¯</div><div class='add'>+     LEGALãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-  5. $BK\%W%m%0%i%`$X$NF~NO$H$J$k%9%/%j%W%H$*$h$S!$K\%W%m%0%i(B</div><div class='del'>-     $B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n&lt;T$G$O$J$/!$$=$l$&gt;(B</div><div class='del'>-     $B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B</div><div class='del'>-     $BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B</div><div class='add'>+  5. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å…¥åŠ›ã¨ãªã‚‹ã‚¹ã‚¯ãƒªãƒ—ãƒˆãŠã‚ˆã³ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='add'>+     ãƒ ã‹ã‚‰ã®å‡ºåŠ›ã®æ¨©åˆ©ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ä½œè€…ã§ã¯ãªãï¼Œãã‚Œãž</div><div class='add'>+     ã‚Œã®å…¥å‡ºåŠ›ã‚’ç”Ÿæˆã—ãŸäººã«å±žã—ã¾ã™ï¼Žã¾ãŸï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«</div><div class='add'>+     çµ„ã¿è¾¼ã¾ã‚Œã‚‹ãŸã‚ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã«ã¤ã„ã¦ã‚‚åŒæ§˜ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-  6. $BK\%W%m%0%i%`$OL5J]&gt;Z$G$9!%:n&lt;T$OK\%W%m%0%i%`$r%5%]!&lt;%H(B</div><div class='del'>-     $B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`&lt;+?H$N%P%0$"$k$$$OK\%W(B</div><div class='del'>-     $B%m%0%i%`$N&lt;B9T$J$I$+$iH/@8$9$k$$$+$J$kB;32$KBP$7$F$b@U(B</div><div class='del'>-     $BG$$r;}$A$^$;$s!%(B</div><div class='add'>+  6. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯ç„¡ä¿è¨¼ã§ã™ï¼Žä½œè€…ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚µãƒãƒ¼ãƒˆ</div><div class='add'>+     ã™ã‚‹æ„å¿—ã¯ã‚ã‚Šã¾ã™ãŒï¼Œãƒ—ãƒ­ã‚°ãƒ©ãƒ è‡ªèº«ã®ãƒã‚°ã‚ã‚‹ã„ã¯æœ¬ãƒ—</div><div class='add'>+     ãƒ­ã‚°ãƒ©ãƒ ã®å®Ÿè¡Œãªã©ã‹ã‚‰ç™ºç”Ÿã™ã‚‹ã„ã‹ãªã‚‹æå®³ã«å¯¾ã—ã¦ã‚‚è²¬</div><div class='add'>+     ä»»ã‚’æŒã¡ã¾ã›ã‚“ï¼Ž</div><div class='head'>diff --git a/ChangeLog b/ChangeLog<br/>deleted file mode 100644<br/>index 50afc5cbf9..0000000000<br/>--- a/<a href='/ruby.git/tree/ChangeLog?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>ChangeLog</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,20419 +0,0 @@</div><div class='del'>-Tue Jun 17 22:16:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (LIBPATHFLAG, RPATHFLAG): no needs to be quoted,</div><div class='del'>-	  it is done by libpathflag in mkmf.rb.</div><div class='del'>-</div><div class='del'>-Mon Jun 16 15:43:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* proc.c (proc_dup): should copy safe_level from src proc</div><div class='del'>-	  properly.  a patch from Keita Yamaguchi</div><div class='del'>-	  &lt;keita.yamaguchi at gmail.com&gt;</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:31:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/extconf.rb: search zlib1, and regard mswin32 later than VC6</div><div class='del'>-	  as WIN32.  [ruby-core:16984]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:28:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search</div><div class='del'>-	  private methods too.  [ruby-dev:34671]</div><div class='del'>-</div><div class='del'>-	* object.c (convert_type): ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:26:50 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod): Revert the behavior change; do not</div><div class='del'>-	  suppress an exception when div is NaN or Inf. [ruby-dev:34857]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:24:32 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (BUFCHECK): wrong condition. [ruby-core:16921]</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_buf): shouldn't use buflen for length of string.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:21:22 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0, Init_marshal): Fix the garbled s_call</div><div class='del'>-	  definition; fixes [ruby-dev:34843].</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:19:53 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_cstr_to_dbl): should clear errno before calling</div><div class='del'>-	  strtod(3).  [ruby-dev:34834]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:18:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (marshal_load): should initialize arg.data used for</div><div class='del'>-	  reentrant check.  [ruby-dev:34837]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:13:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (top_local_setup): fixed memory leak bug based on a</div><div class='del'>-	  patch from Roger Pack &lt;rogerpack2005 at gmail.com&gt; in</div><div class='del'>-	  [ruby-core:16610].</div><div class='del'>-Sun Jun 15 23:16:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (reentrant_check): check reentrance via callcc.</div><div class='del'>-	  [ruby-dev:34802]</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:09:00 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): fixed SEGV on win32 with "% 0e" % 1.0/0.0.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:07:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): set last_status when status == -1 because</div><div class='del'>-	  there is no path to set it on win32. this patch is derived from</div><div class='del'>-	  [ruby-core:16787], submitted by Luis Lavena &lt;luislavena at gmail.com&gt;</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:02:12 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb: should normalize path</div><div class='del'>-	  name in path_info to prevent script disclosure vulnerability on</div><div class='del'>-	  DOSISH filesystems. (fix: CVE-2008-1891)</div><div class='del'>-	  Note: NTFS/FAT filesystem should not be published by the platforms</div><div class='del'>-	  other than Windows. Pathname interpretation (including short</div><div class='del'>-	  filename) is less than perfect.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/abstract.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::AbstracServlet#redirect_to_directory_uri):</div><div class='del'>-	  should escape the value of Location: header.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgi_runner.rb: accept interpreter</div><div class='del'>-	  command line arguments.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 23:02:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_path): support for alternative data stream</div><div class='del'>-	  and ignored trailing garbages of NTFS.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_basename): ditto.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_extname): ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:53:20 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_cat): fixed buffer overrun reported by</div><div class='del'>-	  Christopher Thompson &lt;cthompson at nexopia.com&gt; in [ruby-core:16746]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:51:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}.  "defined?(a||=1)"</div><div class='del'>-	  should not operate assignment.  [ruby-dev:34645]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:49:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_select): backport from trunk.</div><div class='del'>-	  [ruby-talk:300743]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:48:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (SimpleDelegator::dup): removed needless argument.</div><div class='del'>-	  [ruby-list:44910]</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (clone, dup): keep relationship with the target</div><div class='del'>-	  object.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:46:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): backported from 1.9.  a patch from Satoshi</div><div class='del'>-	  Nakagawa &lt;psychs at limechat.net&gt; in [ruby-dev:34625]. </div><div class='del'>-	  fixed: [ruby-dev:34623]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:44:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (rb_struct_s_def): to_str should be called only once.</div><div class='del'>-	  [ruby-core:16647]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:42:54 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (gzreader_gets): may cause infinite loop.</div><div class='del'>-	  a patch from Kouya &lt;kouyataifu4 at gmail.com&gt; in</div><div class='del'>-	  [ruby-reference-manual:762].</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:34:09 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	Merged 16241 from trunk.</div><div class='del'>-</div><div class='del'>-	* lib/net/telnet.rb:  Fixing a bug where line endings would not be properly</div><div class='del'>-	  escaped when the two character ending was broken up into separate TCP</div><div class='del'>-	  packets.  Issue reported and patched by Brian Candler.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:31:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_search): use local variable.  a patch from wanabe</div><div class='del'>-	  &lt;s.wanabe AT gmail.com&gt; in [ruby-dev:34537].  [ruby-dev:34492]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:20:45 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): should protect temporary string from</div><div class='del'>-	  GC.   [ruby-dev:34480]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:18:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (re_search): string might be NULL.  [ruby-core:16478]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:16:21 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (rb_strftime): check errno to detect strftime(3)'s error.</div><div class='del'>-	  this is workaround for recent version of MSVCRT.</div><div class='del'>-	  [ruby-dev:34456]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:12:07 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/types.rb: Likewise, pass self to YAML::quick_emit;</div><div class='del'>-	  merged from 1.9.</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb (quick_emit): use combination of object_id and hash to</div><div class='del'>-	  identify repeated object references, since GC will reuse memory of</div><div class='del'>-	  objects during output of YAML. [ruby-Bugs-8548] [ruby-Bugs-3698];</div><div class='del'>-	  merged from 1.9.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:09:02 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: Node#value defined twice.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/: several method redefinitions causing warnings.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 22:04:44 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): add volatile to avoid potential GC bug.  a</div><div class='del'>-	  patch from Tomoyuki Chikanaga &lt;chikanag at nippon-control-system.co.jp&gt;</div><div class='del'>-	  in [ruby-dev:34311].</div><div class='del'>-</div><div class='del'>-Sun Jun 15 21:59:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_quote): should always copy the quoting string.</div><div class='del'>-	  [ruby-core:16235]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 21:27:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb (Net::POP3::do_finish): clear @n_mails and</div><div class='del'>-	  @n_bytes as well.  [ruby-core:16144]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 21:08:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::Config.default_config_hash): requires</div><div class='del'>-	  win32/resolv to use Win32::Resolv.  [ruby-dev:34138]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 20:54:07 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yycompile): Always prepare a new array for each file's</div><div class='del'>-	  SCRIPT_LINES__ storage, instead of appending source lines every</div><div class='del'>-	  time a file is re-loaded; submitted by Rocky Bernstein in</div><div class='del'>-	  #18517.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 20:30:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::Hosts): should not use win32/resolv on cygwin.</div><div class='del'>-	  [ruby-dev:29945], [ruby-dev:34095]</div><div class='del'>-</div><div class='del'>-	* lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased</div><div class='del'>-	  name too for cygwin.  [ruby-dev:29945]</div><div class='del'>-</div><div class='del'>-	* lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 20:27:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-mode): should use `run-mode-hooks' instead</div><div class='del'>-	  of calling `run-hooks' directly to run the mode hook.  patch from</div><div class='del'>-	  Chiyuan Zhang &lt;pluskid AT gmail.com&gt; in [ruby-core:15915]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 20:20:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_coerce): try conversion before type check.</div><div class='del'>-	  [ruby-core:15838]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:56:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (BIGZEROP): fix for longer Bignum zeros.  [ruby-Bugs-17454]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:54:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (big2str_find_n1): check integer overflow.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:52:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed.  [ruby-dev:33857]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:50:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c (readline_event): prevent polling.  based on</div><div class='del'>-	  a patch from error errorsson in [ruby-Bugs-17675].</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:44:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yycompile): clear ruby_eval_tree_begin if parse failed.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:44:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yycompile): clear ruby_eval_tree_begin too before parse.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:22:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/pty/lib/expect.rb (IO#expect): check if peer is closed.</div><div class='del'>-	  [ruby-Bugs-17940]</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:20:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_convert): check upper bound.  a patch from</div><div class='del'>-	  Daniel Luz at [ruby-Bugs-17910].</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:13:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ftruncate): check if available.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_truncate): check if ftruncate instead of truncate.</div><div class='del'>-</div><div class='del'>-Sun Jun 15 19:02:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (sigsetmask): check when signal semantics is not POSIX.</div><div class='del'>-</div><div class='del'>-	* signal.c (USE_TRAP_MASK): set true if sigprocmask or sigsetmask is</div><div class='del'>-	  available.</div><div class='del'>-</div><div class='del'>-Sat Jun 14 16:49:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/timeout.rb (Timeout::timeout): made sensitive to location on the</div><div class='del'>-	  stack.  [ruby-core:15458]</div><div class='del'>-</div><div class='del'>-Fri Jun 13 13:14:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/ptr.c (dlmem_each_i): typo fixed.  a patch from IKOMA</div><div class='del'>-Sun Jun 15 21:06:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* class.c (clone_method): should copy cref as well.</div><div class='del'>-	  [ruby-core:15833]</div><div class='del'>-</div><div class='del'>-	  Yoshiki &lt;ikoma@mb.i-chubu.ne.jp&gt; in [ruby-dev:33776].</div><div class='del'>-</div><div class='del'>-Fri Jun 13 13:13:23 2008  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_newobj): prohibit call of rb_newobj() during gc.</div><div class='del'>-	  Submitted by Sylvain Joyeux [ruby-core:12099].</div><div class='del'>-</div><div class='del'>-	* ext/dl/ptr.c: do not use LONG2NUM() inside dlptr_free().</div><div class='del'>-	  Slightly modified fix bassed on a patch by Sylvain Joyeux</div><div class='del'>-	  [ruby-core:12099] [ ruby-bugs-11859 ] [ ruby-bugs-11882 ]</div><div class='del'>-	  [ ruby-patches-13151 ].</div><div class='del'>-</div><div class='del'>-Fri Jun 13 12:10:13 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/benchmark.rb (Job::Benchmark#item): fix typo.</div><div class='del'>-</div><div class='del'>-Fri Jun 13 12:06:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more</div><div class='del'>-	  precision.  [ruby-talk:290296]</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/extconf.rb: ditto.  [ruby-dev:33658]</div><div class='del'>-</div><div class='del'>-Fri Jun 13 12:01:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb.rb (IRB::Irb::eval_input): rescues Interrupt and other than</div><div class='del'>-	  SystemExit and SignalException.  [ruby-core:15359]</div><div class='del'>-</div><div class='del'>-Fri Jun 13 11:57:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/benchmark.rb (Benchmark::realtime): make Benchmark#realtime</div><div class='del'>-	  a bit faster.  a patch from Alexander Dymo &lt;dymo@ukrpost.ua&gt; in</div><div class='del'>-	  [ruby-core:15337].</div><div class='del'>-</div><div class='del'>-Fri Jun 13 11:50:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_open_file): should check NUL in path.</div><div class='del'>-	  &lt;http://www.rubyist.net/~matz/20080125.html#c01&gt;.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_popen): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_reopen): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (next_argv): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_foreach): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_readlines): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_read): ditto.</div><div class='del'>-</div><div class='del'>-Wed Jun 11 15:23:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::inspect): use Kernel#to_s instead</div><div class='del'>-	 object_id with printf.  [ruby-dev:33347]</div><div class='del'>-</div><div class='del'>-Wed Jun 11 15:00:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Remove wrong assumptions about Cygwin.  a patch from</div><div class='del'>-	  Corinna Vinschen in [ruby-Bugs-17018].</div><div class='del'>-</div><div class='del'>-Mon Jun  9 18:09:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): check if backtrace is empty.  [ruby-core:15040]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 06:08:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_define_alloc_func, rb_undef_alloc_func): should</div><div class='del'>-	  define/undef on a signleton class.  [ruby-core:09959]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 06:04:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_arg): use converted object.  [ruby-core:14759]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 06:02:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (fptr_finalize): clear errno first.  [ruby-talk:284492]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:59:36 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb: don't freeze nil even if 1.8 will not be aware of</div><div class='del'>-	  the issue. [ruby-dev:32677]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:54:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (TIMEZONE_VOID): check whether timezone requires zero</div><div class='del'>-	  arguments.  [ruby-dev:32631]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:37:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (f_rest_arg): check if duplicated.  [ruby-core:14140]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:32:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (stack_end_address): use local variable address instead of</div><div class='del'>-	  __builtin_frame_address(0) to avoid SEGV on SunOS 5.11 on x86 with </div><div class='del'>-	  gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802).</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:24:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined</div><div class='del'>-	  and its type.</div><div class='del'>-</div><div class='del'>-	* configure.in (timezone, altzone): check for recent cygwin.</div><div class='del'>-</div><div class='del'>-	* missing/strftime.c (strftime): fix for timezone.  [ruby-dev:32536]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (try_var): should fail for functions.</div><div class='del'>-</div><div class='del'>-	* ext/readline/extconf.rb: should use have_func for functions instead</div><div class='del'>-	  of have_var.</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:08:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (read_multipart): exclude blanks from header values.</div><div class='del'>-	  [ruby-list:44327]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 05:02:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_cstr_to_inum): trailing spaces may exist at sqeezing</div><div class='del'>-	  preceeding 0s.  [ruby-core:13873]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:58:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (error_print): put newline unless multiple line message ends</div><div class='del'>-	  with a newline.  [ruby-dev:32429]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:55:26 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	Merged 14070 from trunk.</div><div class='del'>-	</div><div class='del'>-	* lib/xmlrpc/server.rb (XMLRPC::Server#server): Improve signal handling so</div><div class='del'>-	  pressing control-c in the controlling terminal or sending SIGTERM stops</div><div class='del'>-	  the XML-RPC server.</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:49:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (newline_node): set line from outermost node before removing</div><div class='del'>-	  NODE_BEGIN.  [ruby-dev:32406]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:37:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt): remove unnecessary NODE_BEGIN.  [ruby-core:13814]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:16:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_alias): do not call hook functions until initialization</div><div class='del'>-	  finishes.  [ruby-talk:279538]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 04:14:16 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_invoke): bug fix. [ruby-talk:279100]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:59:31 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/extconf.rb: check macro if cannot find func.</div><div class='del'>-	  [ruby-list:44224]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:52:53 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::FileStore::restore): use</div><div class='del'>-	  lockfile for exclusive locks.  a patch from &lt;tommy AT tmtm.org&gt;.</div><div class='del'>-	  [ruby-dev:32296]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:49:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/isinf.c (isinf): don't define if the macro is defined.</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:42:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (round): fallback definition.</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod, flo_round): use round() always.</div><div class='del'>-	  [ruby-dev:32269]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:42:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flodivmod): work around for infinity.</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod): work around for platforms have no round().</div><div class='del'>-	  [ruby-dev:32247]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:42:10 2008  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod): round to the nearest integer.</div><div class='del'>-	  [ ruby-Bugs-14540 ]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:28:53 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/SHIFT-JIS.rb (REXML::Encoding): place -x for</div><div class='del'>-	  nkf conversion.  a patch from &lt;moonwolf AT moonwolf.com&gt;.</div><div class='del'>-	  [ruby-dev:32183]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:07:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Switch::summarize): fix for long form</div><div class='del'>-	  option with very long argument.  a patch from Kobayashi Noritada</div><div class='del'>-	  &lt;nori1 AT dolphin.c.u-tokyo.ac.jp&gt; in [ruby-list:44179].</div><div class='del'>-</div><div class='del'>-Sun Jun  8 03:04:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_pow): returns infinity for 0**-1.  [ruby-dev:32084]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 02:58:19 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	Merged 13781 from trunk.</div><div class='del'>-</div><div class='del'>-	* lib/net/telnet.rb (Net::Telnet#login): Allowing "passphrase" in</div><div class='del'>-	  addition to "password" for Telnet login prompts. [ruby-Bugs-10746]</div><div class='del'>-</div><div class='del'>-Wed Oct 25 06:46:21 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	Merged 13779 from trunk.</div><div class='del'>-</div><div class='del'>-	* lib/net/telnet.rb (Net::Telnet#login): Making the password prompt</div><div class='del'>-	  pattern case insensitive. [ruby-Bugs-10746]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 02:55:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_tell, rb_io_seek): check errno too.  [ruby-dev:32093]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:53:50 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	Merged 13767, 13768, 13769, and 13770 from trunk.</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/parser.rb (XMLRPC::Convert::dateTime): Fixing a bug that</div><div class='del'>-	  caused time zone conversion to fail for some ISO 8601 date formats.</div><div class='del'>-	  [ruby-Bugs-12677]</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Explicitly start</div><div class='del'>-	  the HTTP connection to support keepalive requests. [ruby-Bugs-9353]</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Improving the error</div><div class='del'>-	  message for Content-Type check failures. [ruby-core:12163]</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/utils.rb (XMLRPC::ParseContentType#parse_content_type):</div><div class='del'>-	  Making Content-Type checks case insensitive. [ruby-Bugs-3367]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:50:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_bytes0): refined length check.  [ruby-dev:32059]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:50:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_bytes0): check if source has enough data.</div><div class='del'>-	  [ruby-dev:32054]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:41:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_accept_nonblock): make accepted fd</div><div class='del'>-	  nonblocking.  [ruby-talk:274079]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:36:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_SYS_LARGEFILE): keep results also in command</div><div class='del'>-	  options, to vail out of mismatch.  [ruby-list:44114]</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb, lib/mkmf.rb (configuration): add DEFS.</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:31:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/mkexports.rb: deal with __fastcall name decorations.</div><div class='del'>-	  [ruby-list:44111]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:27:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc,win}32/mkexports.rb: explicit data.  [ruby-list:44108]</div><div class='del'>-</div><div class='del'>-Sun Jun  8 01:15:50 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb, lib/open-uri.rb: remove</div><div class='del'>-	  Net::HTTP#enable_post_connection_check.  [ruby-dev:31960]</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb: hostname should be verified against server's</div><div class='del'>-	  indentity as persented in the server's certificate. [ruby-dev:31960]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/telnets.rb, ext/openssl/lib/net/ftptls.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Jun  5 16:21:16 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (make_cmdvector): adjust escaped successive</div><div class='del'>-	  double-quote handling. (merge from trunk)</div><div class='del'>-</div><div class='del'>-Thu Jun  5 12:26:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (init_env): initialize HOME and USER environment</div><div class='del'>-	  variables unless set. [ruby-core:12328] (merge from trunk)</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (NtInitialize, getlogin): ditto.</div><div class='del'>-</div><div class='del'>-	* configure.in, win32/Makefile.sub (LIBS): need to link shell32</div><div class='del'>-	  library for SH* functions on mswin32 and mingw32.</div><div class='del'>-</div><div class='del'>-Thu Jun  5 12:22:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.</div><div class='del'>-	  [ruby-dev:31911]</div><div class='del'>-</div><div class='del'>-Wed Jun  4 16:41:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (ext/extinit.o): use $(OUTFLAG) as well as other</div><div class='del'>-	  objects.  [ruby-Bugs-14228]</div><div class='del'>-</div><div class='del'>-Tue Jun  3 16:15:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yyerror): limit error message length.  [ruby-dev:31848]</div><div class='del'>-</div><div class='del'>-	* regex.c (re_mbc_startpos): separated from re_adjust_startpos.</div><div class='del'>-</div><div class='del'>-Tue Jun  3 15:45:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (os_obj_of, os_each_obj): hide objects to be finalized.</div><div class='del'>-	  [ruby-dev:31810]</div><div class='del'>-</div><div class='del'>-Wed Jun  4 19:16:40 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (remove_method): should not remove undef place holder.</div><div class='del'>-	  [ruby-dev:31817]</div><div class='del'>-</div><div class='del'>-Tue Jun  3 15:22:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (struct rb_exec_arg): proc should be a VALUE.</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_exec): suppress a warning.</div><div class='del'>-</div><div class='del'>-       * process.c (rb_detach_process): cast for the platforms where size of</div><div class='del'>-         pointer differs from size of int.</div><div class='del'>-</div><div class='del'>-       * process.c (rb_f_exec, rb_f_system): should not exceptions after</div><div class='del'>-         fork.  [ruby-core:08262]</div><div class='del'>-</div><div class='del'>-Wed May 21 01:32:56 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb: should normalize path</div><div class='del'>-	  name in path_info to prevent script disclosure vulnerability on</div><div class='del'>-	  DOSISH filesystems. (fix: CVE-2008-1891)</div><div class='del'>-	  Note: NTFS/FAT filesystem should not be published by the platforms</div><div class='del'>-	  other than Windows. Pathname interpretation (including short</div><div class='del'>-	  filename) is less than perfect.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/abstract.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::AbstracServlet#redirect_to_directory_uri):</div><div class='del'>-	  should escape the value of Location: header.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgi_runner.rb: accept interpreter</div><div class='del'>-	  command line arguments.</div><div class='del'>-</div><div class='del'>-Sun May 18 01:57:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (isdirsep): backslash is valid path separator on cygwin too.</div><div class='del'>-	  backported from 1.8 HEAD.</div><div class='del'>-</div><div class='del'>-Sat May 17 23:53:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_path): fix for short file name on Cygwin.</div><div class='del'>-</div><div class='del'>-Sat May 17 23:50:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (OpenFile): prevent conflict on Windows.</div><div class='del'>-</div><div class='del'>-	* file.c (USE_NTFS): fixed merge miss.</div><div class='del'>-</div><div class='del'>-Sat May 17 12:36:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_path): rb_str_set_len is not backported.</div><div class='del'>-</div><div class='del'>-Sat May 17 12:15:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_path): support for alternative data stream</div><div class='del'>-	  and ignored trailing garbages of NTFS.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_basename): ditto.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_extname): ditto.</div><div class='del'>-</div><div class='del'>-Mon Mar  3 23:34:13 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb: should normalize path</div><div class='del'>-	  separators in path_info to prevent directory traversal attacks</div><div class='del'>-	  on DOSISH platforms.</div><div class='del'>-	  reported by Digital Security Research Group [DSECRG-08-026].</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb: pathnames which have</div><div class='del'>-	  not to be published should be checked case-insensitively.</div><div class='del'>-</div><div class='del'>-Mon Dec  3 08:13:52 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/rss/test_taxonomy.rb, test/rss/test_parser_1.0.rb,</div><div class='del'>-	  test/rss/test_image.rb, test/rss/rss-testcase.rb: ensured</div><div class='del'>-	  declaring XML namespaces.</div><div class='del'>-</div><div class='del'>-Sun Sep 23 21:57:25 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;  </div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: an SSL verification (the server hostname should</div><div class='del'>-	  be matched with its certificate's commonName) is added.</div><div class='del'>-	  this verification can be skipped by</div><div class='del'>-	  "Net::HTTP#enable_post_connection_check=(false)".</div><div class='del'>-	  suggested by Chris Clark &lt;cclark at isecpartners.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/open-uri.rb: use Net::HTTP#enable_post_connection_check to</div><div class='del'>-	  perform SSL post connection check.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.c</div><div class='del'>-	  (OpenSSL::SSL::SSLSocket#post_connection_check): refine error message.</div><div class='del'>-</div><div class='del'>-Sun Sep 23 07:49:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c, intern.h, ext/thread/thread.c: should not free queue while</div><div class='del'>-	  any live threads are waiting.  [ruby-dev:30653]</div><div class='del'>-</div><div class='del'>-Sun Sep 23 06:05:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_init): separate from strio_initialize</div><div class='del'>-	  to share with strio_reopen properly.  [ruby-Bugs-13919]</div><div class='del'>-</div><div class='del'>-Sun Sep 23 05:42:35 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/options.rb (Options::check_diagram): dot -V output</div><div class='del'>-	  changed. [ ruby-Bugs-11978 ], Thanks Florian Frank.</div><div class='del'>-</div><div class='del'>-Wed Sep 19 11:13:07 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (bigtrunc): RBIGNUM(x)-&gt;len may be zero.  out of bound</div><div class='del'>-	  access.  [ruby-dev:31404]</div><div class='del'>-</div><div class='del'>-Mon Sep 17 05:24:13 2007  Sylvain Joyeux &lt;sylvain.joyeux@m4x.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (lock_mutex): should take care of threads</div><div class='del'>-	  not waiting any longer; there cases of a thread raising</div><div class='del'>-	  exceptions. [ ruby-Bugs-11901 ]</div><div class='del'>-</div><div class='del'>-	* test/thread/test_thread.rb (test_mutex_exception_handling):</div><div class='del'>-	  test for above.</div><div class='del'>-</div><div class='del'>-Mon Sep 17 05:01:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* runruby.rb: fix incomplete backport r12339.</div><div class='del'>-</div><div class='del'>-Mon Sep 17 04:56:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/thread/test_thread.rb (test_local_barrier),</div><div class='del'>-	  test/thread/lbtest.rb: test for [ruby-dev:30653].</div><div class='del'>-</div><div class='del'>-Mon Sep 17 04:52:21 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (proc_options): -W should be allowed in RUBYOPT</div><div class='del'>-	  environment variable.  [ruby-core:12118]</div><div class='del'>-</div><div class='del'>-Mon Sep 17 04:37:10 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* range.c (range_step): fixed integer overflow.  [ruby-dev:31763]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 17:06:16 2007  Vincent Isambart &lt;vincent.isambart@gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): should unset time_thread_alive_p.</div><div class='del'>-	  [ruby-talk:257219], [ruby-core:11542], [ruby-dev:31253]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 16:39:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_subseq): need integer overflow check.</div><div class='del'>-	  [ruby-dev:31736]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_splice): ditto.  [ruby-dev:31737]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): ditto.  [ruby-dev:31738]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_splice): integer overflow for length.</div><div class='del'>-	  [ruby-dev:31739]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 16:33:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* include/ruby/defines.h (flush_register_windows): call "ta 0x03"</div><div class='del'>-	  even on Linux/Sparc.  [ruby-dev:31674]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 16:09:39 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key, </div><div class='del'>-	  reg_get_val, ole_wc2mb): fix the bug. Thanks, arton. </div><div class='del'>-	  [ruby-dev:31576]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 15:50:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (mnew): should preserve noex as safe_level.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): tighten security check condition..</div><div class='del'>-</div><div class='del'>-Fri Sep  7 15:43:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (Init_tcltklib): use rb_set_end_proc().</div><div class='del'>-</div><div class='del'>-Fri Sep  7 15:42:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (detach_process_watcher): should not pass the pointer</div><div class='del'>-	  to an auto variable to the thread to be created.  pointed and</div><div class='del'>-	  fix by KUBO Takehiro &lt;kubo at jiubao.org&gt;  [ruby-dev:30618]</div><div class='del'>-</div><div class='del'>-Fri Sep  7 15:40:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep</div><div class='del'>-	  comment lines first.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 12:40:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_delete_key): delete the entry without calling block.</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_shift): should consider iter_lev too.</div><div class='del'>-</div><div class='del'>-	* hash.c (delete_if_i): use rb_hash_delete_key() so that the block</div><div class='del'>-	  isn't called twice.  [ruby-core:11556]</div><div class='del'>-</div><div class='del'>-Sun Arg 12 03:56:30 2007  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb: fix Rinda::TupleSpace keeper thread bug.</div><div class='del'>-	  the thread is started too early. [ruby-talk:264062] </div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 12:31:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ac_cv_func_isinf): set yes also on OpenSolaris.</div><div class='del'>-	  [ruby-Bugs-12859]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 12:30:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/{ISO-8859-15,CP-1252}.rb: fixed invalid syntax.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 12:29:36 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/README: fixed a typo.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 12:13:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): save all CONFIG values.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): remove mkmf.log at clean, and extconf.h at</div><div class='del'>-	  distclean, respectively.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: remove rdoc at clean, and installed list file at</div><div class='del'>-	  distclean, respectively.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 11:49:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): should not check positional number as</div><div class='del'>-	  width.  [ruby-core:11838]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 11:47:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_aref): check for Bignum index range.</div><div class='del'>-	 [ruby-dev:31271]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 11:41:44 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c (conv_to_posix_path): removed.</div><div class='del'>-</div><div class='del'>-	* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): return</div><div class='del'>-	  VALUE instead of a pointer to static buffer.</div><div class='del'>-</div><div class='del'>-	* ruby.c (push_include_cygwin): fixed buffer overflow.</div><div class='del'>-	  [ruby-dev:31297]</div><div class='del'>-</div><div class='del'>-	* ruby.c (ruby_init_loadpath): not convert built-in paths.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 11:39:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h (is_ruby_native_thread): removed since declared as an int</div><div class='del'>-	  function in ruby.h already.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 11:00:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (init_mkmf): should remove mkmf.log too.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:57:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (ossl_config_set_section): do not</div><div class='del'>-	  initialize aggregations with dynamic values.  [ruby-talk:259306]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:55:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (get_backtrace): check the result more.</div><div class='del'>-	  [ruby-dev:31261] [ruby-bugs-12398]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:36:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_lshift, rb_big_rshift): separated functions</div><div class='del'>-	  to get rid of infinite recursion.  fixed calculation in edge</div><div class='del'>-	  cases.  [ruby-dev:31244]</div><div class='del'>-</div><div class='del'>-	* numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:29:45 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_pow): refine overflow check.  [ruby-dev:31242]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:26:59 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_succ): Time#succ should return a time object in the</div><div class='del'>-	  same timezone mode to the original.  [ruby-talk:260256]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:24:00 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_pow): integer power calculation: 0**n =&gt; 0, </div><div class='del'>-	  1**n =&gt; 1, -1**n =&gt; 1 (n: even) / -1 (n: odd).</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test</div><div class='del'>-	  suite.  pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:23:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/base64.rb (Base64::b64encode): should not specify /o option</div><div class='del'>-	  for regular expression.  [ruby-dev:31221]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:20:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): more checks for format argument.</div><div class='del'>-	  [ruby-core:11569], [ruby-core:11570], [ruby-core:11571],</div><div class='del'>-	  [ruby-core:11573]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:13:45 2007  pegacorn  &lt;subscriber.jp AT gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (rb_digest_instance_update,</div><div class='del'>-	  rb_digest_instance_finish, rb_digest_instance_reset,</div><div class='del'>-	  rb_digest_instance_block_length): %s in rb_raise() expects char*.</div><div class='del'>-	  [ruby-dev:31222]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: include ossl_pkcs5.h.  [ruby-dev:31231]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs5.h: new file for PKCS5.  [ruby-dev:31231]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): use ossl_raise()</div><div class='del'>-	  instead of rb_raise().  [ruby-dev:31222]</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/_sdbm.c: DOSISH platforms need io.h.  [ruby-dev:31232]</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: include stdlib.h for malloc() and free().</div><div class='del'>-	  [ruby-dev:31232]</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h (syck_parser_set_input_type): prototype added.</div><div class='del'>-	  [ruby-dev:31231]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c: include mbstring.h for _mbspbrk().  [ruby-dev:31232]</div><div class='del'>-</div><div class='del'>-	* win32.h (rb_w32_getcwd): prototype added.  [ruby-dev:31232]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:11:59 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_cstr_to_inum): check leading non-digits.</div><div class='del'>-	  [ruby-core:11691]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:07:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_neg): SIGNED_VALUE isn't in 1.8.</div><div class='del'>-</div><div class='del'>-	* bignum.c (bigtrunc): do not empty Bignum.  [ruby-dev:31229]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:02:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_pow): 0**2 should not raise floating point</div><div class='del'>-	  exception.  [ruby-dev:31216]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 10:01:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): enclose command line except for</div><div class='del'>-	  command.com which can not handle quotes.  [ruby-talk:258939]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:58:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (link_command, cc_command, cpp_command): do not expand</div><div class='del'>-	  ::CONFIG which is an alias of MAKEFILE_CONFIG.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:55:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (rb_struct_init_copy): disallow changing the size.</div><div class='del'>-	  [ruby-dev:31168]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:54:28 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c: documentation fix.  srand(0) initializes PRNG with '0',</div><div class='del'>-	  not with random_seed.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:53:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/{Makefile.sub,setup.mak}: remove surplus slash from srcdir.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:46:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): sign bit extension should not be done</div><div class='del'>-	  if FPLUS flag is specified.  [ruby-list:39224]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:41:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_initialize): should call rb_ary_modify() first.</div><div class='del'>-	  [ruby-core:11562]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:40:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yylex): return non-valid token for an invalid</div><div class='del'>-	  instance/class variable name.  a patch from from Yusuke ENDOH</div><div class='del'>-	  &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:31095]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:39:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (dsym): return non-null NODE even if yyerror().  based on a</div><div class='del'>-	  patch from from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:31085]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:38:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_exec_v, rb_proc_exec): preserve errno.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 09:00:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occured</div><div class='del'>-	  in at_exit blocks.  [ruby-core:11263]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:52:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_path2class): get rid of dangling pointer caused by</div><div class='del'>-	  optimized out value.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:51:20 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/lib/dl/win32.rb: seems that dl doesn't accept void argument.</div><div class='del'>-	  fixed [ruby-bugs:PR#5489].</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:49:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (darwin): prohibit loading extension libraries to</div><div class='del'>-	  miniruby.</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:34:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_kill_thread): renamed in order to get rid of conflict</div><div class='del'>-	  with a BeOS system function.  [ruby-core:10830]</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:32:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (ruby_setreuid, ruby_setregid): rename to get rid of name</div><div class='del'>-	  clash.</div><div class='del'>-Wed Aug 22 08:27:53 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (ResponseParser#next_token): fixed</div><div class='del'>-	  error message. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (ResponseParser#parse_error): fixed</div><div class='del'>-	  the condition not to refer @token.symbol unexpectedly.</div><div class='del'>-	  Thanks, Dick Monahan. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Wed Aug 22 08:26:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_extended): erroneous check condition when dump</div><div class='del'>-	  method is defined.  [ruby-core:10646]</div><div class='del'>-</div><div class='del'>-Mon Jun 18 11:29:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h, ext/thread/thread.c: moved prototype of rb_thread_status()</div><div class='del'>-	  to get rid of error in C++.  [ruby-list:43615]</div><div class='del'>-</div><div class='del'>-Sun Jun 10 13:47:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):</div><div class='del'>-	  get rid of invoking shell.  [ruby-dev:30942]</div><div class='del'>-</div><div class='del'>-Sat Jun  9 10:40:00 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.6-p36 released.</div><div class='del'>-</div><div class='del'>-Fri Jun  8 17:50:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_cancel_timer): fix undefined function</div><div class='del'>-</div><div class='del'>-Wed May 30 05:17:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): get rid of SEGV at ZSUPER in a block</div><div class='del'>-	  [ruby-dev:30836]</div><div class='del'>-</div><div class='del'>-Wed May 30 04:29:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_timer): timer thread should not receive any</div><div class='del'>-	  signals.  submitted by Sylvain Joyeux.  [ruby-core:08546]</div><div class='del'>-</div><div class='del'>-Wed May 30 04:18:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval_cmd): just return if no exceptions.</div><div class='del'>-	  [ruby-dev:30820]</div><div class='del'>-</div><div class='del'>-Tue May 29 11:01:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_opendir): store attributes of the second</div><div class='del'>-	  entries or later too.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_opendir, rb_w32_readdir): eliminate magic</div><div class='del'>-	  numbers.</div><div class='del'>-</div><div class='del'>-Thu Jun  7 20:10:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c, intern.h, ext/thread/thread.c: should not free queue</div><div class='del'>-	  while any live threads are waiting.</div><div class='del'>-	  [ruby-dev:30653]</div><div class='del'>-</div><div class='del'>-Thu Jun  7 14:53:46 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_inspect): show proper class name.</div><div class='del'>-	  [ruby-talk:248647], Thanks Calamitas.</div><div class='del'>-</div><div class='del'>-Sun May 27 05:24:56 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* runruby.rb: eliminate uninitialized variable.</div><div class='del'>-	  [ruby-core:11255]</div><div class='del'>-</div><div class='del'>-Sun May 27 05:19:03 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (mnew): call of super via a method object should work again.</div><div class='del'>-	  [ruby-talk:248647], Thanks Calamitas.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_method.rb (TestMethod::test_method_super): test for</div><div class='del'>-	  above fix.</div><div class='del'>-</div><div class='del'>-Wed May 23 07:29:53 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_exec_v): terminate timer thread in advance.</div><div class='del'>-	  [ruby-dev:30581], Thanks H. Holon.</div><div class='del'>-</div><div class='del'>-Wed May 23 06:51:46 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI#[]): get rid of exceptions being raised.</div><div class='del'>-	  [ruby-dev:30740], Thanks Kentaro KAWAMOTO.</div><div class='del'>-</div><div class='del'>-Wed May 23 05:49:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb, ext/purelib.rb, lib/mkmf.rb, runruby.rb: clear default</div><div class='del'>-	  load path to get rid of load pre-installed extensions/libraries.</div><div class='del'>-	  [ruby-core:11017]</div><div class='del'>-</div><div class='del'>-Wed May 23 06:14:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (move_to_next_entry): loc also must move forward.</div><div class='del'>-	  [ruby-talk:251987]</div><div class='del'>-</div><div class='del'>-Wed May 23 05:55:04 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (init_stdhandle): stderr should be without buffering,</div><div class='del'>-	  but mswin32 use buffering when stderr is not connected to tty.</div><div class='del'>-</div><div class='del'>-Wed May 23 05:35:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_pow): truncate all zero BDIGITs. [ruby-dev:30733]</div><div class='del'>-</div><div class='del'>-Wed May 23 05:17:33 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_s_conv): rdoc fix.</div><div class='del'>-</div><div class='del'>-Wed May 23 05:10:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_priority): rdoc fix; the initial value is</div><div class='del'>-	  inherited from the creating thread.  [ruby-core:10607]</div><div class='del'>-</div><div class='del'>-Wed May 23 04:22:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (do_stat, do_lstat, do_opendir): should not warn ENOTDIR.</div><div class='del'>-	  [ruby-talk:248288]</div><div class='del'>-</div><div class='del'>-Wed May 23 03:50:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (libpathflag): not to append RPATHFLAG to current</div><div class='del'>-	  directory.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (init_mkmf): add current directory to default</div><div class='del'>-	  library path with highest priority.  [ruby-core:10960]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (LINK_SO): LIBPATH to be placed before DLDFLAGS.</div><div class='del'>-</div><div class='del'>-Wed May 23 03:33:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb (ConditionVariable#wait, mon_enter, mon_exit_for_cond):</div><div class='del'>-	  ensures Thread.critical to be false.  [ruby-talk:248300]</div><div class='del'>-</div><div class='del'>-Wed May 23 03:25:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): exponent is radix 10.  [ruby-talk:248272]</div><div class='del'>-</div><div class='del'>-Wed May 23 03:12:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (LDFLAGS): prepend -L. instead appending it to</div><div class='del'>-	  XLDFLAGS.  [ruby-core:10933]</div><div class='del'>-</div><div class='del'>-	* configure.in (Makefile): remove $U for automake from MISSING.</div><div class='del'>-	  [ruby-talk:248171]</div><div class='del'>-</div><div class='del'>-Wed May 23 02:09:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): should not clear state on TAG_NEXT when</div><div class='del'>-	  it's invoked from within lambda body.  [ruby-talk:248136]</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): handle TAG_NEXT which would be caused by</div><div class='del'>-	  next in the lambda body as well.</div><div class='del'>-</div><div class='del'>-Wed May 23 01:55:49 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_fclose, rb_w32_close): need to save errno</div><div class='del'>-	  before calling original fclose()/close().</div><div class='del'>-</div><div class='del'>-Wed May 23 01:42:29 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (disconnect): call shutdown for</div><div class='del'>-	  SSLSocket. Thanks, Technorama Ltd.</div><div class='del'>-</div><div class='del'>-Wed May 23 01:28:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (rb_notimplement), io.c (pipe_open): removed definite</div><div class='del'>-	  articles and UNIX manual section from messages.  [ruby-dev:30690]</div><div class='del'>-</div><div class='del'>-	* io.c (pipe_open): raise NotImplementedError for command "-" on</div><div class='del'>-	  platforms where fork(2) is not available.  [ruby-dev:30681]</div><div class='del'>-</div><div class='del'>-Wed May 23 00:03:42 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_recv, s_recvfrom): some systems (such as</div><div class='del'>-	  windows) doesn't set fromlen if the socket is connection-oriented.</div><div class='del'>-	  reported by Bram Whillock in [ruby-core:10512] [ruby-Bugs#9061]</div><div class='del'>-</div><div class='del'>-Sat Mar 24 23:40:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* node.h (struct rb_thread.locals): explicit as struct.</div><div class='del'>-	  [ruby-core:10585]</div><div class='del'>-</div><div class='del'>-	* eval.c, node.h (enum rb_thread_status, struct rb_thread,</div><div class='del'>-	  rb_curr_thread, rb_main_thread): prefixed.  [ruby-core:10586]</div><div class='del'>-</div><div class='del'>-	* file.c (chompdirsep): made an unprefixed name static.</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): ditto.</div><div class='del'>-</div><div class='del'>-Tue May 22 23:27:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): exit by SystemExit and SignalException in END</div><div class='del'>-	  block.  [ruby-core:10609]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb (test_should_propagate_exit_code):</div><div class='del'>-	  test for exit in END block.  [ruby-core:10760]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):</div><div class='del'>-	  test for signal in END block.</div><div class='del'>-</div><div class='del'>-Tue May 22 23:14:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_provided): check for extension library if SOEXT is</div><div class='del'>-	  explicitly given.  [ruby-dev:30657]</div><div class='del'>-</div><div class='del'>-Tue May 22 21:29:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2str0): round up for the most significant digit.</div><div class='del'>-	  [ruby-core:10686]</div><div class='del'>-</div><div class='del'>-Tue May 22 20:53:02 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (remove_one): Preserve List invariants;</div><div class='del'>-	  submitted by: MenTaLguY &lt;mental AT rydia.net&gt;</div><div class='del'>-	  in [ruby-core:10598] and [ruby-bugs:PR#9388].</div><div class='del'>-</div><div class='del'>-Tue Mar 20 15:37:24 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* distruby.rb: Add zip generation.</div><div class='del'>-</div><div class='del'>-Fri Mar 16 21:48:11 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/dl.c (rb_ary2cary): Fix a bug in type validation;</div><div class='del'>-	  submitted by sheepman &lt;sheepman AT sheepman.sakura.ne.jp&gt;</div><div class='del'>-	  in [ruby-dev:30554].</div><div class='del'>-</div><div class='del'>-Fri Mar 16 18:28:06 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (etc_getgrgid): Fix a bug in Etc::getgrgid()</div><div class='del'>-	  always returning the (real) group entry of the running process;</div><div class='del'>-	  reported by: UEDA Hiroyuki &lt;ueda AT netforest.ad.jp&gt;</div><div class='del'>-	  in [ruby-dev:30586].</div><div class='del'>-</div><div class='del'>-Fri Mar 16 16:33:58 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (unlock_mutex_inner): Make sure that the</div><div class='del'>-	  given mutex is actually owned by the caller; submitted by:</div><div class='del'>-	  Sylvain Joyeux &lt;sylvain.joyeux AT m4x.org&gt; in [ruby-core:10598].</div><div class='del'>-</div><div class='del'>-Fri Mar 16 16:21:35 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (wait_condvar, lock_mutex): Fix a problem in</div><div class='del'>-	  ConditionVariable#wait that occurs when two threads that are</div><div class='del'>-	  trying to access the condition variable are also in concurrence</div><div class='del'>-	  for the given mutex; submitted by: Sylvain Joyeux</div><div class='del'>-	  &lt;sylvain.joyeux AT m4x.org&gt; and MenTaLguY &lt;mental AT rydia.net&gt;</div><div class='del'>-	  in [ruby-core:10598].</div><div class='del'>-</div><div class='del'>-Fri Mar 16 16:17:27 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/thread/test_thread.rb: Add a test script for the `thread'</div><div class='del'>-	  library.  This should result in failure as of now with</div><div class='del'>-	  ext/thread; submitted by: Sylvain Joyeux &lt;sylvain.joyeux AT</div><div class='del'>-	  m4x.org&gt; in [ruby-core:10598].</div><div class='del'>-</div><div class='del'>-Wed Mar 14 12:30:00 2007  Shigeo Kobayashi  &lt;shigeo@tinyforest.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: BigDecimal("-.31") is now</div><div class='del'>-	  treated as ("-0.31") not as ("0.31").</div><div class='del'>-</div><div class='del'>-Tue Mar 13 04:04:04 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.6 released.</div><div class='del'>-</div><div class='del'>-Tue Mar 13 02:54:17 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::header): IIS &gt;= 5.0 does not need the nph</div><div class='del'>-	  assumption any more; submitted by MIYASAKA Masaru &lt;alkaid AT</div><div class='del'>-	  coral.ocn.ne.jp&gt; in [ruby-dev:30537].</div><div class='del'>-</div><div class='del'>-Mon Mar 12 11:07:44 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (Init_ossl_asn1): Let rdoc know about</div><div class='del'>-	  externally defined modules; submitted by Technorama</div><div class='del'>-	  Ltd. &lt;oss-ruby AT technorama.net&gt; in [ruby-bugs:PR#4704].</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_bn.c (Init_ossl_bn): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (Init_ossl_cipher): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.c (Init_ossl_digest): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_hmac.c (Init_ossl_hmac): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.c (Init_ossl_pkey): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dsa.c (Init_ossl_dsa): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_rand.c (Init_ossl_rand): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Ditto.</div><div class='del'>-</div><div class='del'>-Mon Mar 12 01:23:50 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/sym.c (rb_dlsym_inspect): Use "0x%x" rather for pointers.</div><div class='del'>-	  This might not be very right but it is commonly used in other</div><div class='del'>-	  parts of the code; submitted by sheepman &lt;sheepman AT</div><div class='del'>-	  sheepman.sakura.ne.jp&gt; in [ruby-dev:30532].</div><div class='del'>-</div><div class='del'>-	* ext/dl/ptr.c (rb_dlptr_inspect): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/dl/lib/dl/import.rb (DL::Importable::Internal::import,</div><div class='del'>-	  DL::Importable::Internal::callback): Avoid race condition for an</div><div class='del'>-	  instance variable; submitted by sheepman &lt;sheepman AT</div><div class='del'>-	  sheepman.sakura.ne.jp&gt; in [ruby-dev:30530].</div><div class='del'>-</div><div class='del'>-Sun Mar 11 19:04:29 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/README: Add a note about ruby-electric.el. </div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-non-block-do-re): Fix</div><div class='del'>-	  ruby-non-block-do-re. [ruby-core:03719]</div><div class='del'>-</div><div class='del'>-	* misc/inf-ruby.el: Synchronize the comment section with trunk.</div><div class='del'>-</div><div class='del'>-	* misc/README, misc/rdebug.el: Add rdebug.el, Emacs ruby-debug</div><div class='del'>-	  interface based on rubydb3x.el; submitted by Martin Nordholts</div><div class='del'>-	  &lt;enselic AT gmail.com&gt; in [ruby-bugs:PR#9023].</div><div class='del'>-</div><div class='del'>-Sun Mar 11 17:51:46 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/mkcallback.rb (mkfunc): Make sure that a callback</div><div class='del'>-	  function is found in the function table before trying to call</div><div class='del'>-	  it; submitted by sheepman &lt;sheepman AT sheepman.sakura.ne.jp&gt;</div><div class='del'>-	  in [ruby-dev:30524].</div><div class='del'>-</div><div class='del'>-Sun Mar 11 17:30:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (error_handle): no message when exiting by signal.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): re-send signal.  [ruby-dev:30516]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_interrupt): instantiate SignalException.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_signal_raise): now takes signal number instead</div><div class='del'>-	  of signal name.</div><div class='del'>-</div><div class='del'>-	* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.</div><div class='del'>-</div><div class='del'>-	* signal.c (esignal_init): takes a signal number and an optional</div><div class='del'>-	  signal name.</div><div class='del'>-</div><div class='del'>-	* signal.c (interrupt_init): pass SIGINT always.</div><div class='del'>-</div><div class='del'>-	* signal.c (ruby_default_signal): invoke system default signal</div><div class='del'>-	  handler.</div><div class='del'>-</div><div class='del'>-	* signal.c (rb_signal_exec, trap): handle SIGTERM.  [ruby-dev:30505]</div><div class='del'>-</div><div class='del'>-Tue Mar  6 19:03:42 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/md5.rb (MD5::new, MD5::md5): Do not modify</div><div class='del'>-	  Digest::MD5.</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.</div><div class='del'>-</div><div class='del'>-	* lib/shell/process-controller.rb: fix thread synchronization</div><div class='del'>-	  problem for [ruby-dev:30477].</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/md5.rb (MD5::new, MD5::md5): Catch up with</div><div class='del'>-	  Digest's API changes; noted by: Kazuhiro Yoshida &lt;moriq AT</div><div class='del'>-	  moriq.com&gt; in [ruby-dev:30500].</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): Back out the format changes; discussed</div><div class='del'>-	  in [ruby-dev:30495].</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/irbtkw.rbw: fails to exit process.</div><div class='del'>-</div><div class='del'>-Mon Mar  5 20:26:10 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): Correct the wrong format which did not</div><div class='del'>-	  really conform to RFC 2822; pointed out by: OHARA Shigeki &lt;os at</div><div class='del'>-	  iij.ad.jp&gt; in [ruby-dev:30487].</div><div class='del'>-</div><div class='del'>-Sun Mar  4 23:53:27 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mv): could not move a directory between</div><div class='del'>-	  different filesystems. [ruby-dev:30411]</div><div class='del'>-</div><div class='del'>-Sun Mar  4 23:46:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_utime): allow nil to set the current time.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate</div><div class='del'>-	  options.  fixed: [ruby-talk:219037]</div><div class='del'>-</div><div class='del'>-Sun Mar  4 23:19:00 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (push_element): should return a int value.</div><div class='del'>-</div><div class='del'>-Sun Mar  4 01:06:55 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (Set#^, Set#&amp;): Correct documentation.  Those methods</div><div class='del'>-	  return sets, not arrays; noted by Oliver Frank Wittich &lt;nietz AT</div><div class='del'>-	  mangabrain.de&gt;.</div><div class='del'>-</div><div class='del'>-Sat Mar  3 21:41:31 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (stack_check): Unset inline to fix build with GCC 3.4.6;</div><div class='del'>-	  submitted by: NISHIMATSU Takeshi &lt;t_nissie AT yahoo.co.jp&gt; in</div><div class='del'>-	  [ruby-list:43218].</div><div class='del'>-	  cf. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24556</div><div class='del'>-</div><div class='del'>-Sat Mar  3 19:07:05 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (push_list): Use ALLOC().</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (rb_mutex_alloc): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (rb_condvar_alloc): Ditto.</div><div class='del'>-</div><div class='del'>-Sat Mar  3 18:56:40 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* NEWS: Add a note for String#intern.</div><div class='del'>-</div><div class='del'>-Sat Mar  3 18:36:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_provided): return true only for features loaded from</div><div class='del'>-	  .rb files, and not search actual library type.  [ruby-dev:30414]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_feature_p): check loading_tbl if the given ext is</div><div class='del'>-	  empty.  [ruby-dev:30452]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_feature_p): fix possible buffer overrun.</div><div class='del'>-</div><div class='del'>-Sat Mar  3 16:30:39 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* env.h (SCOPE_CLONE): Introduce a new scope flag to prevent a</div><div class='del'>-	  local_tbl region from getting freed many times; submitted by</div><div class='del'>-	  Chikanaga Tomoyuki &lt;chikanag AT nippon-control-system.co.jp&gt; in</div><div class='del'>-	  [ruby-dev:30460].</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): Ditto.</div><div class='del'>-</div><div class='del'>-	* gc.c (obj_free): Ditto.</div><div class='del'>-</div><div class='del'>-	* parse.y (top_local_setup_gen): Ditto.</div><div class='del'>-</div><div class='del'>-Sat Mar  3 16:09:27 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_obj_ivar_set): RDoc updated according to a</div><div class='del'>-	  suggestion from Brian Candler &lt;B.Candler AT pobox.com&gt;.</div><div class='del'>-	  [ruby-core:10469]</div><div class='del'>-</div><div class='del'>-Sat Mar  3 15:41:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even if</div><div class='del'>-	  empty.  [ruby-dev:30452]</div><div class='del'>-</div><div class='del'>-Thu Mar  1 04:08:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb (patchlevel): read from version.h.</div><div class='del'>-</div><div class='del'>-Thu Mar  1 03:42:09 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (get_digest_base_metadata): Allow inheriting</div><div class='del'>-	  Digest::Base subclasses, which was unintentionally made</div><div class='del'>-	  impossible while restructuring Digest classes.</div><div class='del'>-</div><div class='del'>-Wed Feb 28 22:10:55 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* doc/NEWS-1.8.0: Rename NEWS to NEWS-1.8.0.  This is way too old</div><div class='del'>-	  NEWS.</div><div class='del'>-</div><div class='del'>-	* NEWS: Add NEWS, a document file to keep user visible feature</div><div class='del'>-	  changes between releases.</div><div class='del'>-</div><div class='del'>-	* configure.in (ac_cv_func_fcntl): fcntl support for MinGW.</div><div class='del'>-</div><div class='del'>-	* missing/flock.c: workaround for MinGW.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: no need to check unistd.h and sys/time.h.</div><div class='del'>-	  they are already checked at configure.</div><div class='del'>-	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb ($DEFLIBPATH): default library paths ($(topdir), etc)</div><div class='del'>-	  should be the first elements of library paths list.</div><div class='del'>-	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='del'>-</div><div class='del'>-	* test/{dbm,gdbm}/test_{dbm,gdbm}.rb: shouldn't use host_os. use</div><div class='del'>-	  target_os instead. reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb (RbConfig): add CONFIG['PATCHLEVEL']</div><div class='del'>-</div><div class='del'>-	* common.mk: new target dist</div><div class='del'>-</div><div class='del'>-	* distruby.rb: new file</div><div class='del'>-</div><div class='del'>-	* configure.in (--enable-auto-image-base): avoid the neccessity to</div><div class='del'>-	  rebase the shared libs as much as possible;</div><div class='del'>-	  submitted by Corinna Vinschen &lt;spam at vinschen.de&gt; in</div><div class='del'>-	  [ruby-talk:240964].</div><div class='del'>-</div><div class='del'>-Wed Feb 28 20:51:32 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): properly ignore non-base64 octets such as</div><div class='del'>-	  UTF-8 encoded BOMs; submitted by SOUMA Yutaka &lt;holon@radastery.jp&gt;</div><div class='del'>-	  to fix [ruby-core:10437]</div><div class='del'>-</div><div class='del'>-Tue Feb 27 21:50:10 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (__crt0_glob_function): use ruby_glob() instead of rb_globi().</div><div class='del'>-</div><div class='del'>-	* configure.in (ac_cv_func_setrlimit): workaround for djgpp.</div><div class='del'>-</div><div class='del'>-Tue Feb 27 20:49:19 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/base64.rb (Base64::b64encode): Fix documentation; submitted</div><div class='del'>-	  by David Symonds &lt;dsymonds@gmail.com&gt; in [ruby-core:10432].</div><div class='del'>-</div><div class='del'>-	* regex.c (calculate_must_string, slow_search, re_search): Silence</div><div class='del'>-	  warnings regarding char * vs. unsigned char * mismatch;</div><div class='del'>-	  submitted by Lyle Johnson &lt;lyle.johnson@gmail.com&gt;</div><div class='del'>-	  in [ruby-core:10416].</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BigDecimal_load): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/digest/sha1/sha1ossl.c (SHA1_Finish): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/digest/rmd160/rmd160ossl.c (RMD160_Finish): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (rb_digest_base_finish,</div><div class='del'>-	  rb_digest_base_update): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c (rb_str_resize, rb_nkf_kconv, rb_nkf_guess1,</div><div class='del'>-	  rb_nkf_guess2): Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (wait_list_cleanup, rb_mutex_try_lock):</div><div class='del'>-	  Eliminate rb_thread_critical switching where unnecessary;</div><div class='del'>-	  implied by shugo in [ruby-dev:30412].</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (set_critical): Merge in</div><div class='del'>-	  thread_exclusive_ensure().</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c: Consistently use 0 and 1 for</div><div class='del'>-	  rb_thread_critical values.</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c: Use xmalloc()/xfree() instead of</div><div class='del'>-	  malloc()/free(); pointed out by shugo in [ruby-dev:30412].</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):</div><div class='del'>-	  Initialize @workdir properly to silence a warning under -w.</div><div class='del'>-	  Submitted by &lt;tommy at tmtm.org&gt; in [ruby-dev:30400].</div><div class='del'>-</div><div class='del'>-Sun Feb 25 02:50:51 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h: Pull the RUBY_MBCHAR_MAXSIZE definition from trunk,</div><div class='del'>-	  which is necessary for dir.c to compile on djgpp and emx.</div><div class='del'>-</div><div class='del'>-Sat Feb 24 17:04:01 2007   Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb: updated based on date2 4.0.3.</div><div class='del'>-</div><div class='del'>-Sat Feb 24 17:01:02 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c (cparse_params_mark): remove useless</div><div class='del'>-	  rb_gc_mark.  Thanks Tomoyuki Chikanaga. [ruby-dev:30405]</div><div class='del'>-</div><div class='del'>-Sat Feb 24 16:53:09 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (sighandler): need to tell to be interrupted to main</div><div class='del'>-	  context when handler is installed.</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_win32_interrupted): new function to listen</div><div class='del'>-	  interrupt.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (set_pioinfo_extra): new function for VC++8 SP1</div><div class='del'>-	  workaround. [ruby-core:10259]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (NtInitialize): call above function.</div><div class='del'>-</div><div class='del'>-Fri Feb 23 13:04:43 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_cmp, fix_equal): Remove FIX2LONG() to optimize.</div><div class='del'>-	  suggested in</div><div class='del'>-	  http://t-a-w.blogspot.com/2007/02/making-ruby-faster.html.</div><div class='del'>-	  [ruby-talk:240223]</div><div class='del'>-</div><div class='del'>-Fri Feb 23 12:47:13 2007  James Edward Gray II  &lt;james@grayproductions.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): Make the</div><div class='del'>-	  Content-Length parameter optional for responses in</div><div class='del'>-	  xmlrpc/client.rb; suggested by Daniel Berger</div><div class='del'>-	  &lt;Daniel.Berger@qwest.com&gt; and approved by the maintainer.</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): Add DateTime</div><div class='del'>-	  support to xmlrpc; approved by the maintainer.</div><div class='del'>-</div><div class='del'>-Mon Feb 19 18:33:30 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (unix_peeraddr): wrong syscall name in error</div><div class='del'>-	  message for #peeraddr. a patch from Sam Roberts</div><div class='del'>-	  &lt;sroberts at uniserve.com&gt;.  [ruby-core:10366]</div><div class='del'>-</div><div class='del'>-Mon Feb 19 18:27:42 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, defines.h, eval.c (rb_feature_p, rb_provided,</div><div class='del'>-	  load_wait, search_required, rb_require_safe), ext/extmk.rb: Fix</div><div class='del'>-	  a bug where a statically linked extension cannot be autoloaded.</div><div class='del'>-	  [ruby-dev:30023] / [ruby-dev:30239]</div><div class='del'>-</div><div class='del'>-Thu Feb 15 20:31:07 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/ftp.rb: Revert the previous change pending discussion.</div><div class='del'>-</div><div class='del'>-Fri Feb 16 11:18:21 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/.document: Apply patch for irb, e2mmap and README by Hugh Sasse</div><div class='del'>-	  &lt;hgs at dmu.ac.uk&gt; from [ruby-core:10135]</div><div class='del'>-</div><div class='del'>-	* lib/prettyprint.rb: Suppress RDoc for PrettyPrint test suite.</div><div class='del'>-</div><div class='del'>-Thu Feb 15 18:10:09 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): Fix the function declaration.</div><div class='del'>-</div><div class='del'>-Thu Feb 15 16:55:33 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* version.h: Branch off ruby_1_8_6 from ruby_1_8 in preparation</div><div class='del'>-	  for the forthcoming 1.8.6 release.</div><div class='del'>-</div><div class='del'>-Thu Feb 15 16:44:14 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::userinfo): Considering how</div><div class='del'>-	  `scheme://user:@...', `scheme://:password@...' and</div><div class='del'>-	  `scheme://:@...' are parsed, an empty user name or password</div><div class='del'>-	  should be allowed and represented as it is.</div><div class='del'>-</div><div class='del'>-Thu Feb 15 11:46:05 2007  KIMURA Koichi  &lt;hogemuta@gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c, win32/win32.c, win32/dir.h, ruby.h, intern.h: Bring</div><div class='del'>-	  encoding aware globbing support in from trunk.  Dir.[] and</div><div class='del'>-	  Dir.glob() can now take many patterns in an array.  Minor fixes</div><div class='del'>-	  will follow.</div><div class='del'>-</div><div class='del'>-Thu Feb 15 11:00:26 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::userinfo): should support</div><div class='del'>-	  empty password.  [ruby-core:10290]</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::set_password): password can be</div><div class='del'>-	  cleared by nil.  [ruby-core:10290]</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb (escape): regard second string argument as a</div><div class='del'>-	  character set properly. [ruby-dev:27692]</div><div class='del'>-</div><div class='del'>-	* lib/uri/ftp.rb: Attempt to conform to RFC 1738 with regard to</div><div class='del'>-	  relative/absolute paths.</div><div class='del'>-</div><div class='del'>-	* lib/uri: Lovely RDOC patches from mathew (metaATpoboxDOTcom).</div><div class='del'>-</div><div class='del'>-Thu Feb 15 10:57:38 2007  Tietew  &lt;tietew@tietew.net&gt;&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::unescapeHTML): invalid decoding for single</div><div class='del'>-	  unescaped ampersand.  a patch from Tietew</div><div class='del'>-	  &lt;tietew+ruby-dev at tietew.net&gt; in [ruby-dev:30292].</div><div class='del'>-	  fixed: [ruby-dev:30289]</div><div class='del'>-</div><div class='del'>-Thu Feb 15 10:48:40 2007  MenTaLguY  &lt;mental@rydia.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c: Handle interrupted waits correctly.</div><div class='del'>-	  [ruby-bugs:PR#8663]</div><div class='del'>-</div><div class='del'>-Wed Feb 14 19:22:15 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/digest.rb (Digest::self.const_missing): Drop</div><div class='del'>-	  autoloads for sha2 classes in favor of handling in</div><div class='del'>-	  const_missing(), to work around a problem exposed on OS X.</div><div class='del'>-</div><div class='del'>-Tue Feb 13 02:21:12 2007  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_syscall): Fix buffer overflow with syscall</div><div class='del'>-	  arguments.  [ruby-bugs:PR#8541]</div><div class='del'>-</div><div class='del'>-Sun Feb 11 07:46:45 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): Properly parse</div><div class='del'>-	  a quoted-string in a Content-Disposition value.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 06:27:54 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, ext/thread/extconf.rb, lib/thread.rb: Add a</div><div class='del'>-	  configure option `--disable-fastthread', to choose the original,</div><div class='del'>-	  pure ruby version of the "thread" library instead of the new,</div><div class='del'>-	  much faster implementation in ext/thread.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 06:22:20 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Setup: Add thread except for platforms without threads</div><div class='del'>-	  support.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 06:15:16 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/lib/thread.rb: Add a replacement of thread.rb that</div><div class='del'>-	  loads this extension.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 05:39:47 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/thread.rb: Remove an ineffective part of the code.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 05:32:54 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (rb_thread_exclusive): Implement</div><div class='del'>-	  Thread.exclusive.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 05:26:51 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c: Get rid of use of a dummy function.</div><div class='del'>-</div><div class='del'>-Sun Feb 11 01:45:31 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread/thread.c (Init_thread): Define missing aliases:</div><div class='del'>-	  Queue#enq and SizedQueue#enq.</div><div class='del'>-</div><div class='del'>-Sat Feb 10 09:27:35 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_variant2val): fix compile error</div><div class='del'>-	  on VC++.</div><div class='del'>-</div><div class='del'>-Sat Feb 10 07:41:52 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_variant2val): fix the bug when</div><div class='del'>-	  SAFEARRAY pointer is NULL.</div><div class='del'>-</div><div class='del'>-Sat Feb 10 00:13:11 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fix typo (TkConfigMethod::__confinfo_cmd,</div><div class='del'>-	  __conv_keyonly_opts).</div><div class='del'>-</div><div class='del'>-Fri Feb  9 20:44:53 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread: Make style fixes (mostly de-K&amp;R'ism) to match the</div><div class='del'>-	  rest of the source code.</div><div class='del'>-</div><div class='del'>-	* ext/thread: Make USE_MEM_POOLS an extconf option.</div><div class='del'>-</div><div class='del'>-Fri Feb  9 20:43:01 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/thread: Import the "fastthread" implementation by MenTaLguY</div><div class='del'>-	  in the original form.  This module is not hooked into the build</div><div class='del'>-	  yet since it needs some style fixes and adjustments.</div><div class='del'>-</div><div class='del'>-Fri Feb  9 15:46:09 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal: Synchronize with trunk.  Better function</div><div class='del'>-	  prototypes, removal of a useless method `!=', and document</div><div class='del'>-	  updates.</div><div class='del'>-</div><div class='del'>-Tue Feb 06 22:06:45 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-        * ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c}:</div><div class='del'>-          imported nkf 2007-01-28.</div><div class='del'>-          * Fixed: can't decode MIME encode JIS string.</div><div class='del'>-          * Fixed: Fullwitdh-halfwidth conversion.</div><div class='del'>-          * Support DoCoMo's and Softbank's EMOJI</div><div class='del'>-          * Support CP932, CP5022x, eucJP-ms UDC</div><div class='del'>-          * Support UTF-32 encoding</div><div class='del'>-          * Support beyond BMP</div><div class='del'>-          [ruby-dev:29700] [ruby-dev:29922] [ruby-dev:30144]</div><div class='del'>-</div><div class='del'>-Wed Jan 31 14:52:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_iterate): need to PUSH_ITER in proper order.</div><div class='del'>-	  [ruby-core:10125]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator):</div><div class='del'>-	  add new test.  [ruby-core:10125]</div><div class='del'>-</div><div class='del'>-Tue Jan 30 14:58:51 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sub_bang): calling rb_str_modify() should be just</div><div class='del'>-	  before actually modifying the string.</div><div class='del'>-	  fixed: [ruby-dev:30211] (originally reported by zunda)</div><div class='del'>-</div><div class='del'>-Tue Jan 30 12:05:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: autoconf 2.61 support.  [ruby-core:10016]</div><div class='del'>-</div><div class='del'>-Sat Jan 27 15:20:11 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (dyna_var_lookup): should not alter dvar-&gt;val not to</div><div class='del'>-	  destroy living value.  [ruby-core:10076]</div><div class='del'>-</div><div class='del'>-	* parse.y (dyna_init): ditto.</div><div class='del'>-</div><div class='del'>-Fri Jan 26 12:03:39 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (TkConfigMethod#__confinfo_cmd,</div><div class='del'>-	  __conv_keyonly_optkeys): make them private [ruby-dev:30074].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/txtwin_abst.rb: fix typo [ruby-dev:30073].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb (TkCanvas#scan_dragto): lack of an argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: clarify the including module name</div><div class='del'>-	  [ruby-dev:30080].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/scrollable.rb: change primary name of modules</div><div class='del'>-	  [ruby-dev:30080].</div><div class='del'>-</div><div class='del'>-Wed Jan 24 18:05:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fix</div><div class='del'>-	  regexp font-lock bug.  [ruby-talk:235758]</div><div class='del'>-</div><div class='del'>-Tue Jan 23 11:02:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>- 	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest::read_line):</div><div class='del'>-</div><div class='del'>-Tue Jan 23 18:26:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): use == instead</div><div class='del'>-	  of ===.  [ruby-dev:30176]</div><div class='del'>-</div><div class='del'>-Tue Jan 23 10:48:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c: added documentation for Hash about how it uses eql? and</div><div class='del'>-	  hash methods for the keys.  [ruby-core:09995]</div><div class='del'>-</div><div class='del'>-Mon Jan 22 14:57:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: fix errors in socket sample code.</div><div class='del'>-	  [ruby-core:09992]</div><div class='del'>-</div><div class='del'>-Sat Jan 13 23:54:48 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_free, ole_type_free,</div><div class='del'>-	  olemethod_free, olevariable_free, oleparam_free,</div><div class='del'>-	  ole_event_free): fix memory leak.  [ruby-core:09846]</div><div class='del'>-</div><div class='del'>-Fri Jan 12 11:13:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly</div><div class='del'>-	  convert uid/gid from VALUE. (backport of r11521)</div><div class='del'>-</div><div class='del'>-Wed Jan 10 18:57:57 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c (strscan_do_scan): should set kcode option</div><div class='del'>-	  before match. [ruby-dev:29914]</div><div class='del'>-</div><div class='del'>-	* test/strscan/test_stringscanner.rb: test it.</div><div class='del'>-</div><div class='del'>-	* re.c: export kcode_set_option and kcode_reset_option (with "rb_"</div><div class='del'>-	  prefix).</div><div class='del'>-</div><div class='del'>-	* intern.h: ditto.</div><div class='del'>-</div><div class='del'>-Tue Jan  9 17:45:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_find_file): should not call fpath_check() with NULL.</div><div class='del'>-	  fixed: [ruby-core:09867]</div><div class='del'>-</div><div class='del'>-Tue Jan  9 03:54:38 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_upto): String#upto from empty string makes</div><div class='del'>-	  inifinite loop.  [ruby-core:09864]</div><div class='del'>-</div><div class='del'>-Sun Jan  7 12:13:26 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment):</div><div class='del'>-	  Look for class and module comments above rb_define_class and</div><div class='del'>-	  rb_define_module.  Patch by Daniel Berger &lt;djberg96 at gmail.com&gt;</div><div class='del'>-</div><div class='del'>-Sun Jan  7 10:32:12 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants):</div><div class='del'>-	  Properly handle escaping of : in comments.</div><div class='del'>-	* test/rdoc/parsers/test_parse_c.rb:</div><div class='del'>-	  Test RDoc::C_Parser#do_classes and Rdoc::C_Parser#find_class_comment.</div><div class='del'>-</div><div class='del'>-Sun Jan  7 09:33:02 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb: updated based on date2 4.0.1.</div><div class='del'>-</div><div class='del'>-Wed Jan  3 11:36:51 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (ruby_dup): start GC on ENOMEM as well.</div><div class='del'>-</div><div class='del'>-Mon Jan  1 06:13:11 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/c_parser.rb: Make Rdoc accessible.  Update constant</div><div class='del'>-	  value information.</div><div class='del'>-</div><div class='del'>-Mon Jan  1 06:13:11 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: Update constant comments to provide</div><div class='del'>-	  values for RDoc.</div><div class='del'>-</div><div class='del'>-Mon Jan  1 06:05:55 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts):</div><div class='del'>-	  Allow RDoc comment to give friendly value for rb_define_const.  Patch</div><div class='del'>-	  by Daniel Berger &lt;djberg96 at gmail.com&gt;, [ruby-patches-7499].</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts): Fix</div><div class='del'>-	  whitespace handling in constant comments.</div><div class='del'>-</div><div class='del'>-Sun Dec 31 00:31:16 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 4.0.</div><div class='del'>-</div><div class='del'>-Thu Dec 14 18:29:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c: NetBSD editline does not have</div><div class='del'>-	  rl_username_completion_function() and rl_completion_matches().</div><div class='del'>-	  a patch from Takahiro Kambe &lt;taca at back-street.net&gt;.</div><div class='del'>-	  [ruby-dev:30008]</div><div class='del'>-</div><div class='del'>-Thu Dec 14 18:20:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/locale.rb (IRB::Locale::puts): typo fixed.  a patch from</div><div class='del'>-	  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;.  [ruby-dev:30012]</div><div class='del'>-</div><div class='del'>-Mon Dec 11 11:58:36 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/sha2/lib/sha2.rb: Moved one level up from under</div><div class='del'>-	  the superfluous subdirectory digest/.</div><div class='del'>-</div><div class='del'>-Mon Dec 11 11:46:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_define_const): typo fixed.</div><div class='del'>-</div><div class='del'>-Mon Dec 11 09:36:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_aset): index double decode problem.</div><div class='del'>-	  [ruby-core:09695]</div><div class='del'>-</div><div class='del'>-Sat Dec  9 21:39:24 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): keep the exception till after END blocks.</div><div class='del'>-	  [ruby-core:09675]</div><div class='del'>-</div><div class='del'>-Sat Dec  9 11:22:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/locale.rb (IRB::Locale::search_file): ues File.exist?</div><div class='del'>-	  instead of File.exists?.  a patch from Yutaka Kanemoto</div><div class='del'>-	  &lt;kinpoco at gmail.com&gt; in [ruby-dev:30000].</div><div class='del'>-</div><div class='del'>-Thu Dec  7 09:29:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/weakref.rb (WeakRef::__setobj__): should support</div><div class='del'>-	  marshaling.  [ruby-talk:228508]</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (Delegator::marshal_load): need to call</div><div class='del'>-	  __setobj__.</div><div class='del'>-</div><div class='del'>-Wed Dec  6 23:56:14 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, common.mk (NULLCMD): moved for platforms that empty</div><div class='del'>-	  command does not run.  fixed: [ruby-dev:29994]</div><div class='del'>-</div><div class='del'>-Wed Dec  6 17:17:26 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (SITE_DIR): fixed to emtpy RUBY_SITE_LIB in config.h on</div><div class='del'>-	  NetBSD.  fixed: [ruby-dev:29358]</div><div class='del'>-</div><div class='del'>-Tue Dec  5 00:59:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-parse-partial): need to parse "/=" as</div><div class='del'>-	  self assignment operator, not regex.  [ruby-talk:227324]</div><div class='del'>-</div><div class='del'>-Mon Dec  4 10:48:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h (OFFT2NUM): use LONG2NUM() if sizeof(long) equals to</div><div class='del'>-	  sizeof(off_t).</div><div class='del'>-</div><div class='del'>-Mon Dec  4 10:43:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (dyna_init_gen): dvar initialization only if dvar is</div><div class='del'>-	  assigned inner block.  [ruby-talk:227402]</div><div class='del'>-</div><div class='del'>-Mon Dec  4 08:32:49 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): should quote</div><div class='del'>-	  boundary. JVN#84798830</div><div class='del'>-</div><div class='del'>-Sat Dec  2 07:09:04 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ocsp.c: OpenSSL::OCSP::OSCPError should be</div><div class='del'>-	  subclass of OpenSSL::OpenSSLError. [ruby-dev:29980]</div><div class='del'>-</div><div class='del'>-Fri Dec  1 17:01:49 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.</div><div class='del'>-	  merge from trunk.</div><div class='del'>-</div><div class='del'>-Fri Dec  1 16:31:53 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.</div><div class='del'>-	  [ruby-talk: 227408]</div><div class='del'>-</div><div class='del'>-Mon Nov 27 17:18:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): need not to truncate string if no</div><div class='del'>-	  width specifier given for %s.  [ruby-dev:29952]</div><div class='del'>-</div><div class='del'>-Sun Nov 26 16:36:46 2006  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* version.h: addition of RUBY_PATCHLEVEL.</div><div class='del'>-	* version.c: ditto.</div><div class='del'>-</div><div class='del'>-Fri Nov 24 10:17:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (bignorm): avoid segmentation.  a patch from Hiroyuki</div><div class='del'>-	  Ito &lt;ZXB01226@nifty.com&gt;.  [ruby-list:43012]</div><div class='del'>-</div><div class='del'>-Thu Nov 23 10:38:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_mod_define_method): set implicit visibility only when</div><div class='del'>-	  it's called for the target class (ruby_cbase).</div><div class='del'>-</div><div class='del'>-Wed Nov 22 16:00:49 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/extconf.rb: support --with-X11/--without-X11 option.</div><div class='del'>-</div><div class='del'>-	* ext/tk/README.tcltklib: add description about --with-X11-* option</div><div class='del'>-	  [ruby-talk:225166] and --with-X11/--without-X11 option.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil/extconf.rb: able to be called manually</div><div class='del'>-	  [ruby-talk:225950].</div><div class='del'>-</div><div class='del'>-Wed Nov 15 23:22:54 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (test_grpowned, rb_stat_grpowned): should honor</div><div class='del'>-	  supplementary group IDs.  [ruby-core:09546]</div><div class='del'>-</div><div class='del'>-Thu Nov  9 03:15:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (BEGIN_CALLARGS): ruby_block may be NULL even when</div><div class='del'>-	  ITER_PRE.</div><div class='del'>-</div><div class='del'>-Tue Nov  7 18:34:34 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/digest/hmac.rb: Keep this out of the 1.8 tree</div><div class='del'>-	  until we reach a consensus that HMAC should be put under Digest.</div><div class='del'>-</div><div class='del'>-Tue Nov  7 18:05:01 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb: minor bug fix.</div><div class='del'>-</div><div class='del'>-Mon Nov  6 20:11:20 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb (RSS::Rss): removed needless include.</div><div class='del'>-</div><div class='del'>-Mon Nov  6 15:41:55 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb: ext/tk/lib/tk/itemconfig.rb: bug</div><div class='del'>-	  fix on 'itemconfiginfo' method, and modify to make it easy to</div><div class='del'>-	  override 'itemconfiginfo' method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile/treeview.rb : support Tile 0.7.8.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/version.rb : [new] add Tk::Tkextlib_RELEASE_DATE</div><div class='del'>-	  to get the information from scripts.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: load 'tkextlib/version.rb', and update RELEASE_DATE</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/SUPPORT_STATUS: update.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/editable_listbox.rb: [new] the listbox with editable</div><div class='del'>-	  items. It's one of the example about usage of Place geometry manager.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tktextio.rb: improve the functions of TkTextIO class.</div><div class='del'>-	  Those are required by 'irbtkw.rbw'.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/irbtkw.rbw: [new] IRB on Ruby/Tk. It doesn't need any</div><div class='del'>-	  real console. IRB works on a text widget without I/O blocking. That</div><div class='del'>-	  is, thread switching on IRB will work properly, even if on Windows.</div><div class='del'>-</div><div class='del'>-Sun Nov  5 19:53:49 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb: updated based on date2 3.9.7.</div><div class='del'>-</div><div class='del'>-Sat Nov  4 13:13:57 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb: accept NOMODSEQ. [ruby-core:9002]</div><div class='del'>-	  (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Fri Nov  3 00:16:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_getnameinfo__aix): AF_INET6 workaround</div><div class='del'>-	  for AIX.  a patch from Yutaka Kanemoto &lt;kinpoco AT gmail.com&gt;.</div><div class='del'>-	  [ruby-dev:29744]</div><div class='del'>-</div><div class='del'>-Thu Nov  2 15:43:39 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (primary): should set NODE even when compstmt is NULL.</div><div class='del'>-	  merge from trunk. fixed: [ruby-dev:29732]</div><div class='del'>-</div><div class='del'>-Thu Nov  2 14:48:30 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (Set#^): Fix XOR operation against a container that</div><div class='del'>-	  holds duplicate values. [issue: #6444]</div><div class='del'>-</div><div class='del'>-Wed Nov  1 02:41:38 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/digest/hmac.rb (Digest::HMAC::update): Minor</div><div class='del'>-	  optimization.</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (rb_digest_instance_equal): Allow comparing</div><div class='del'>-	  a digest instance with another of a different class.</div><div class='del'>-</div><div class='del'>-Wed Nov  1 01:05:13 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): fixed bug of zsuper with both of opt and rest.</div><div class='del'>-	  fixed: [ruby-list:42928]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_super.rb: add tests to check above bug.</div><div class='del'>-</div><div class='del'>-Tue Oct 31 17:03:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_dup): duplicate the class of original time.</div><div class='del'>-	  [ruby-core:09357]</div><div class='del'>-</div><div class='del'>-	* lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):</div><div class='del'>-	  should respect subclasses.  [ruby-core:09357]</div><div class='del'>-</div><div class='del'>-Mon Oct 30 23:40:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (miniruby): add XLDFLAGS.</div><div class='del'>-</div><div class='del'>-	* configure.in (aix): use -bE option for miniruby.  [ruby-dev:29698]</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): get rid of possible memory leak.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (cmdglob, rb_w32_cmdvector, rb_w32_opendir,</div><div class='del'>-	  rb_w32_get_environ): not to use GC before initialization.</div><div class='del'>-</div><div class='del'>-Mon Oct 30 19:29:20 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2str0): use better approximation.</div><div class='del'>-</div><div class='del'>-Mon Oct 30 18:35:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2str0): wrong allocation length.  a patch from</div><div class='del'>-	  U.Nakamura &lt;usa at garbagecollect.jp&gt; [ruby-dev:29710]</div><div class='del'>-</div><div class='del'>-Mon Oct 30 12:34:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): fix commit miss.  [ruby-dev:29707]</div><div class='del'>-</div><div class='del'>-Mon Oct 30 12:20:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2str0): a bug in length adjustment.</div><div class='del'>-</div><div class='del'>-Mon Oct 30 11:15:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_str_format): should preserve leading zero</div><div class='del'>-	  information for negative %b and %x.  [ruby-talk:221347]</div><div class='del'>-</div><div class='del'>-Thu Oct 26 21:05:58 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): should clear error.</div><div class='del'>-	  (fix http://bugs.debian.org/394336)</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.</div><div class='del'>-</div><div class='del'>-Thu Oct 26 15:21:10 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (Init_digest): typo.</div><div class='del'>-</div><div class='del'>-Wed Oct 25 17:23:28 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest, test/digest/test_digest.rb: Merge from trunk:</div><div class='del'>-	  - Introduce versioning in Digest::Base API, and prefix C</div><div class='del'>-	    constants with RUBY_ and C type names with rb_ to avoid name</div><div class='del'>-	    clash in writing extensions.</div><div class='del'>-	  - Introduce Digest::Class and Digest::Instance for ease of</div><div class='del'>-	    implementing subclasses and add-ons.</div><div class='del'>-	  - Digest::Instance module requires and assumes that any instance</div><div class='del'>-	    be resettable and clonable.  An instance method #new() is</div><div class='del'>-	    added so digest instances work just like digest classes.</div><div class='del'>-	  - The constructor does no longer take an initial string to feed;</div><div class='del'>-	    digest() and hexdigest() now do, instead.  This allows digest</div><div class='del'>-	    classes to take their own hashing parameters.</div><div class='del'>-	  - Make some changes to digest() and hexdigest() class methods,</div><div class='del'>-	    which now take extra arguments, which are passed through to</div><div class='del'>-	    the constructor in an internal call.</div><div class='del'>-	  - Add #digest_length/size/length() and #block_length(),</div><div class='del'>-	  - Add the Digest::SHA2 class to wrap up SHA2 variants: SHA256,</div><div class='del'>-	    SHA384 and SHA512, hoping this module would make a decent</div><div class='del'>-	    example of a digest subclass written in Ruby.</div><div class='del'>-	  - Rip BubbleBabble support out of the base class and have a</div><div class='del'>-	    separate module named digest/bubblebabble.</div><div class='del'>-	  - Remove RD documents in favor of newly written and embedded</div><div class='del'>-	    RDoc documentation.</div><div class='del'>-</div><div class='del'>-Wed Oct 25 08:03:23 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb: updated based on date2 3.9.6.</div><div class='del'>-	  [ruby-core:09323]</div><div class='del'>-</div><div class='del'>-Sun Oct 22 14:48:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (ruby_signal): don't set SA_RESTART.  a backport from</div><div class='del'>-	  the HEAD.  [ruby-talk:220937]  [ruby-talk:147220]</div><div class='del'>-</div><div class='del'>-	* signal.c (Init_signal): avoid duplicated installation of SIGCHLD</div><div class='del'>-	  handler.</div><div class='del'>-</div><div class='del'>-Sun Oct 22 16:47:56 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_substr): should be infected with only original</div><div class='del'>-	  string, but not the shared string.  fixed: [ruby-core:09152]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_new4): keep shared string untainted when orignal</div><div class='del'>-	  string is tainted.  fixed: [ruby-dev:29672]</div><div class='del'>-</div><div class='del'>-Sun Oct 22 05:20:34 2006  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: alloca is broken; use C_ALLOCA instead.</div><div class='del'>-	  [ruby-dev:29416]</div><div class='del'>-</div><div class='del'>-Fri Oct 20 10:47:43 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: fixed the bug of handling COMMON_MACROS.</div><div class='del'>-</div><div class='del'>-Fri Oct 20 08:42:38 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (NULLCMD): dummy command.</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (post-install-*): Borland make cannot ignore</div><div class='del'>-	  command-less double-colon rules.  [ruby-dev:29676]</div><div class='del'>-</div><div class='del'>-Fri Oct 20 00:37:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub ($(LIBRUBY_SO)): execute pre-link hook.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: workaround for Borland make.</div><div class='del'>-</div><div class='del'>-Wed Oct 18 23:02:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_shift): shorten copy size.  fixed: [ruby-list:42907]</div><div class='del'>-</div><div class='del'>-	* signal.c (Init_signal): handle SIGTERM.  fixed: [ruby-list:42895]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_utime): allow NULL to set the current time.</div><div class='del'>-	  [ruby-talk:219248]</div><div class='del'>-</div><div class='del'>-Wed Oct 18 00:55:33 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (parser_yylex): use particular enums.  [ruby-core:09221]</div><div class='del'>-</div><div class='del'>-Mon Oct 16 08:30:43 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: *OBJS are not needed for extension libraries.</div><div class='del'>-</div><div class='del'>-	* {bcc32,wince,win32}/Makefile.sub (config.status): fixed typo,</div><div class='del'>-	  missing comma.</div><div class='del'>-</div><div class='del'>-Sun Oct 15 01:03:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): append base</div><div class='del'>-	  directory but not prepend.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): do not</div><div class='del'>-	  join with dot.  fixed: [ruby-core:09179]</div><div class='del'>-</div><div class='del'>-Sat Oct 14 23:39:50 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (singleton): no need to re-create NODE_SELF() again.</div><div class='del'>-	  [ruby-core:09177]</div><div class='del'>-</div><div class='del'>-Sat Oct 14 23:25:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (parser_warning, parser_warn): some error message may</div><div class='del'>-	  contain format specifiers.  a patch from Akinori MUSHA &lt;knu at</div><div class='del'>-	  iDaemons.org&gt;.  [ruby-dev:29657]</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (VpException): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/dl/handle.c (rb_dlhandle_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto.</div><div class='del'>-</div><div class='del'>-Sat Oct 14 08:24:45 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/lib/digest/hmac: Back out the addition of digest/hmac</div><div class='del'>-	  for now because the API is too premature for a stable branch.</div><div class='del'>-</div><div class='del'>-Sat Oct 14 00:55:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (post-install-ext): no longer needed.</div><div class='del'>-</div><div class='del'>-	* bcc32/configure.bat: get rid of a quirk of Borland make, which</div><div class='del'>-	  sets empty macro in command line to "1".</div><div class='del'>-</div><div class='del'>-Fri Oct 13 22:50:43 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb: updated based on date2 3.9.5.</div><div class='del'>-</div><div class='del'>-Fri Oct 13 22:33:28 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (FileUtils.cp_r): dereference_root=true is</div><div class='del'>-	  default in Ruby 1.8.  This line is wrongly removed in last commit.</div><div class='del'>-</div><div class='del'>-Fri Oct 13 18:19:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c: Class#inherited RDoc added.  a patch from Daniel</div><div class='del'>-	  Berger &lt;djberg96 at gmail.com&gt;  [ruby-core:08942]</div><div class='del'>-</div><div class='del'>-Fri Oct 13 02:30:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend</div><div class='del'>-	  base directory to load path.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should</div><div class='del'>-	  use the given File-like interface, but not File directly.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement</div><div class='del'>-	  File-like methods correctly.</div><div class='del'>-</div><div class='del'>-Fri Oct 13 01:48:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb (Date::self.complete_hash): need to check if g is</div><div class='del'>-	  nil before dereference.  [ruby-core:09116]</div><div class='del'>-</div><div class='del'>-Fri Oct 13 00:34:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_defined): wrong id check.  a patch from</div><div class='del'>-	  Mauricio Fernandez &lt;mfp at acm.org&gt;.  [ruby-core:09158]</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_get): typo fixed.  [ruby-core:09168]</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_set): ditto.</div><div class='del'>-</div><div class='del'>-Wed Oct 11 22:21:41 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest: Merge from trunk; metadata location changed,</div><div class='del'>-	  Digest::Base#reset() added, Digest::Base#equal() changed, and</div><div class='del'>-	  digest/hmac added with some modifications made for ruby 1.8.</div><div class='del'>-</div><div class='del'>-Tue Oct 10 17:24:12 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (config.status): shouldn't use</div><div class='del'>-	  copy command instead of install. use -run install.</div><div class='del'>-</div><div class='del'>-Tue Oct 10 16:49:16 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (hexdigest_str_new, bubblebabble_str_new):</div><div class='del'>-	  Perform StringValue() checks properly.</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c: Use RSTRING_{PTR,LEN} macros.</div><div class='del'>-</div><div class='del'>-Tue Oct 10 13:49:53 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest: Merge from trunk; apply all changes since the</div><div class='del'>-	  initial import, except for the removal of compatibility stub</div><div class='del'>-	  libraries (md5.rb and sha1.rb).</div><div class='del'>-</div><div class='del'>-Mon Oct  9 23:46:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/parsedate.rb: documentation patch from Konrad Meyer</div><div class='del'>-	  &lt;konrad.meyer@gmail.com&gt;.  [ruby-doc:1238]</div><div class='del'>-</div><div class='del'>-	* lib/open3.rb, lib/ping.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Oct  9 22:56:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encoding.rb (REXML::Encoding::check_encoding): spaces</div><div class='del'>-	  are allowed around equal sign.  [ruby-core:09032]</div><div class='del'>-</div><div class='del'>-	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser): ditto.</div><div class='del'>-</div><div class='del'>-Sat Oct  7 23:53:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_scan): small documentation fix.</div><div class='del'>-	  [ruby-core:09007]</div><div class='del'>-</div><div class='del'>-Sat Oct  7 23:44:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_rshift): a bug in right shift of negative</div><div class='del'>-	  bignums.  [ruby-core:09020]</div><div class='del'>-</div><div class='del'>-Sat Oct  7 00:27:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* class.c (rb_include_module): remove unnecessary check.</div><div class='del'>-	  [ruby-talk:218402]</div><div class='del'>-</div><div class='del'>-Fri Oct  6 04:30:30 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/openssl/c_rehash.rb: Use digest/md5 instead of obsolete md5.</div><div class='del'>-</div><div class='del'>-Wed Oct  4 18:47:25 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: bugfix and update</div><div class='del'>-	  (see ext/tk/ChangeLog.tkextlib).</div><div class='del'>-</div><div class='del'>-Wed Oct  4 17:25:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call): check protected visibility based on real self,</div><div class='del'>-	  not ruby_frame-&gt;self.  [ruby-talk:217822]</div><div class='del'>-</div><div class='del'>-Wed Oct  4 08:52:30 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/optparse/test_getopts.rb: changed the class name of test case</div><div class='del'>-	  to get rid of conflict with test_optparse.rb.</div><div class='del'>-</div><div class='del'>-Tue Oct  3 23:32:27 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb (Test::Unit::TestCase.suite): test name</div><div class='del'>-	  must be string.  fixed: [ruby-core:08978]</div><div class='del'>-</div><div class='del'>-Mon Oct  2 23:47:55 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::COLLECTORS):</div><div class='del'>-	  base directory should be lower precedence.  fixed: [ruby-dev:29622]</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): typo.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='del'>-	  load expanded path.  fixed: [ruby-dev:29621]</div><div class='del'>-</div><div class='del'>-Mon Oct  2 15:49:19 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb: batfile should be CRLF'ed.</div><div class='del'>-</div><div class='del'>-Mon Oct  2 01:24:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (test-all): separate directory where running test cases</div><div class='del'>-	  from source tree.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (options): added --basedir, --workdir</div><div class='del'>-	  and --load-path options.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (recursive_collect, collect_file):</div><div class='del'>-	  base directory support.</div><div class='del'>-</div><div class='del'>-Sun Oct  1 23:56:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, common.mk, ext/extmk.rb, win{32,ce}/Makefile.in: keep</div><div class='del'>-	  LIBRUBY_SO unless need to be removed.</div><div class='del'>-</div><div class='del'>-Sun Oct  1 23:12:19 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#make_switch): pass arguments directly.</div><div class='del'>-</div><div class='del'>-Sat Sep 30 15:12:25 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.4.</div><div class='del'>-</div><div class='del'>-Fri Sep 29 12:11:04 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* jcode.rb (succ!): call original succ! if $KCODE == 'n'.</div><div class='del'>-	  fixed: [ruby-talk:216845]</div><div class='del'>-</div><div class='del'>-Fri Sep 29 11:43:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (try_func): revert fallback checking undeclared function.</div><div class='del'>-	  fixed: [ruby-core:08949]</div><div class='del'>-</div><div class='del'>-Fri Sep 29 09:56:56 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: extout is needed for also clean.</div><div class='del'>-	  fixed: [ruby-core:08944]</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Switch#conv_arg): unsplat by</div><div class='del'>-	  Proc#call if no conversion is given.</div><div class='del'>-</div><div class='del'>-Thu Sep 28 23:59:31 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* node.h (struct thread): declare win32_exception_list on cygwin and</div><div class='del'>-	  win32 regardless if it is implemented.  Provisional fix for</div><div class='del'>-	  [ruby-core:08917].</div><div class='del'>-</div><div class='del'>-Thu Sep 28 20:53:16 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tmpdir.rb: use return value of getdir.call for length.</div><div class='del'>-</div><div class='del'>-Wed Sep 27 01:04:49 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (try_func): check function pointer first and macro next.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_type): simplified with typedef and sizeof.</div><div class='del'>-</div><div class='del'>-Tue Sep 26 23:57:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#getopts): use strings as key.</div><div class='del'>-	  fixed: [ruby-dev:29614]</div><div class='del'>-</div><div class='del'>-Tue Sep 26 15:31:26 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {win32,wince}/Makefile.sub (CPP): check predefined value.</div><div class='del'>-</div><div class='del'>-Tue Sep 26 07:55:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_shift): should not move memory region if array</div><div class='del'>-	  body is shared.  a patch from Kent Sibilev &lt;ksruby at gmail.com&gt;.</div><div class='del'>-	  [ruby-core:08922]</div><div class='del'>-</div><div class='del'>-Mon Sep 25 22:26:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_path_end): skip root directory.  fixed: [ruby-core:08913]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (init_mkmf): set default $LDFLAGS.  Patch by Michal</div><div class='del'>-	  Suchanek &lt;hramrach at centrum.cz&gt;.  [ruby-talk:216256]</div><div class='del'>-</div><div class='del'>-Mon Sep 25 08:14:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_shift): should clear shifting top element.</div><div class='del'>-	  [ruby-talk:216055]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_shift): avoid creating shared object if array</div><div class='del'>-	  size is small.</div><div class='del'>-</div><div class='del'>-Mon Sep 25 08:11:35 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (rb_f_rand): RDoc typo fix.  a patch from Frederick</div><div class='del'>-	  Cheung &lt;fred at 82ask.com&gt;.  [ruby-talk:216047]</div><div class='del'>-</div><div class='del'>-Sun Sep 24 22:28:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* runruby.rb: extension library scripts moved into common directory.</div><div class='del'>-</div><div class='del'>-Sun Sep 24 14:59:50 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* node.h (struct thread): ia64 support is broken by sandbox patch.</div><div class='del'>-</div><div class='del'>-Sun Sep 24 12:11:16 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.3.</div><div class='del'>-</div><div class='del'>-Sat Sep 23 23:24:57 2006  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_save_context, rb_thread_restore_context):</div><div class='del'>-	  sandbox hook to save and restore sandbox state.</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag</div><div class='del'>-	  to circumvent ensure, in order to prevent endless loops.</div><div class='del'>-	  [ruby-core:08768]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_kill): fix Thread#kill docs, which returns</div><div class='del'>-	  the thread object in all cases.</div><div class='del'>-</div><div class='del'>-	* node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along</div><div class='del'>-	  with the thread flags.  used by the sandbox extension.</div><div class='del'>-</div><div class='del'>-	* ruby.h: extern rb_eThreadError, so sandbox can swap it.</div><div class='del'>-</div><div class='del'>-Sat Sep 23 21:34:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): CGI content</div><div class='del'>-	  may be empty.  a patch from Jamis Buck &lt;jamis at 37signals.com&gt;.</div><div class='del'>-</div><div class='del'>-Sat Sep 23 08:35:53 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb: prevent NameError.  [ruby-dev:29597]</div><div class='del'>-</div><div class='del'>-Sat Sep 23 01:04:20 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.2.</div><div class='del'>-</div><div class='del'>-Fri Sep 22 02:06:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* .cvsignore: ignore timestamp files and installed list file.</div><div class='del'>-</div><div class='del'>-Fri Sep 22 01:36:34 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb: include FileUtils unconditionally.</div><div class='del'>-</div><div class='del'>-Thu Sep 21 22:56:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (no-install): not install rdoc actually.</div><div class='del'>-</div><div class='del'>-	* common.mk (install-doc, no-install-doc): use instruby.rb.</div><div class='del'>-</div><div class='del'>-	* instruby.rb: rdoc installation.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: expand ruby executable names.</div><div class='del'>-</div><div class='del'>-Thu Sep 21 13:55:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (etc_getpwuid): uid integer should be wraped in</div><div class='del'>-	  uid_t value.  [ruby-core:08897]</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (etc_getpwuid): uid_t may be bigger than plain</div><div class='del'>-	  'int' type.</div><div class='del'>-</div><div class='del'>-Wed Sep 20 23:17:41 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (pre-install-doc): create data directory before install.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (dir_re): fixed typo.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (install_dirs): remove extra slash.</div><div class='del'>-</div><div class='del'>-Wed Sep 20 09:53:38 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (INSTALLED_LIST): need to define</div><div class='del'>-	  this macro to install.</div><div class='del'>-</div><div class='del'>-Wed Sep 20 09:43:10 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb: allow extra spaces in responses.</div><div class='del'>-	  Thanks, Tom Soderlund. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Wed Sep 20 09:25:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c: add RDoc documentation. a patch from Peter</div><div class='del'>-	  Adolphs &lt;futzilogik at users dot sourceforge dot net&gt;.</div><div class='del'>-	  [ruby-doc:1223]</div><div class='del'>-</div><div class='del'>-Tue Sep 19 01:28:00 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: backport from HEAD (rev 1.71).</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (FileUtils.cp_r): new option</div><div class='del'>-	  :remove_destination.</div><div class='del'>-</div><div class='del'>-Tue Sep 19 00:42:15 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_obj_ivar_defined, rb_mod_cvar_defined): new methods,</div><div class='del'>-	  Kernel#instance_variable_defined? and Module#class_variable_defined?.</div><div class='del'>-	  [ruby-dev:29587]</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb (Date::Bag#method_missing): use new method,</div><div class='del'>-	  instance_variable_defined? to check if an instance variable is</div><div class='del'>-	  defined.  fixed: [ruby-dev:29554]</div><div class='del'>-	  -- This didn't fix anything.</div><div class='del'>-</div><div class='del'>-Sun Sep 17 23:44:58 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb (RDoc::RDoc#document): scan only files modified</div><div class='del'>-	  after the previous generation.</div><div class='del'>-</div><div class='del'>-Sun Sep 17 17:42:13 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (install-doc): reverted.</div><div class='del'>-</div><div class='del'>-	* instruby.rb: stores file name list without destdir prefix.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/ri_generator.rb: do not chdir twice.</div><div class='del'>-</div><div class='del'>-Sat Sep 16 23:14:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (establishShell): remove remaining unused line.</div><div class='del'>-</div><div class='del'>-Sat Sep 16 16:40:44 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, common.in, instruby.rb, ext/extmk.rb, lib/mkmf.rb:</div><div class='del'>-	  use instruby.rb to install extensions instead of ext/extmk.rb.</div><div class='del'>-</div><div class='del'>-	* instruby.rb: store installed list into the file.</div><div class='del'>-</div><div class='del'>-	* ext/dbm/extconf.rb: allow multiple candidates for dbm-type.</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/extconf.rb: suspicious checking_for.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (establishShell): parent pid is not used.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (freeDevice): not used.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (get_device_once): removed garbage right brace.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (checking_for): improved the messages.</div><div class='del'>-</div><div class='del'>-Thu Sep 14 16:11:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_intern): raise SecurityError only when $SAFE</div><div class='del'>-	  level is greater than zero.  [ruby-core:08862]</div><div class='del'>-</div><div class='del'>-	* parse.y (rb_interned_p): new function to check if a string is</div><div class='del'>-	  already interned.</div><div class='del'>-</div><div class='del'>-	* object.c (str_to_id): use rb_str_intern().</div><div class='del'>-</div><div class='del'>-Wed Sep 13 18:43:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* README.EXT: English adjustment.  [ruby-core:08851] and</div><div class='del'>-	  [ruby-core:08852]</div><div class='del'>-</div><div class='del'>-Wed Sep 13 18:25:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-parse-partial): better here-doc support.</div><div class='del'>-	  a patch from Marshall T. Vandegrift &lt;llasram at gmail.com&gt;.</div><div class='del'>-	  [ruby-core:08804]</div><div class='del'>-</div><div class='del'>-Wed Sep 13 16:43:36 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_intern): prohibit interning tainted string.</div><div class='del'>-</div><div class='del'>-Wed Sep 13 01:14:21 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#getopts): works with pre-registered</div><div class='del'>-	  options.  [ruby-core:08826]</div><div class='del'>-</div><div class='del'>-Sun Sep 10 20:27:13 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.1.</div><div class='del'>-</div><div class='del'>-Tue Jan 10 09:18:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (stack_extend): fixed prototype.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_require_safe): prevent extension from loading twice.</div><div class='del'>-	  fixed: [ruby-dev:29523]</div><div class='del'>-</div><div class='del'>-Sat Sep  9 23:50:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_mul0): bignum multiplication without</div><div class='del'>-	  normalization.</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_pow): use rb_big_mul0().  [ruby-dev:29547]</div><div class='del'>-</div><div class='del'>-Sat Sep  9 14:08:38 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb (Test::Unit::TestCase#run): Rescue</div><div class='del'>-	  Exception in Test::Unit::TestCase#run.  [ruby-core:08783]</div><div class='del'>-</div><div class='del'>-Sat Sep  9 04:55:59 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb: open all in binary mode, and get rid of the quirk of</div><div class='del'>-	  msvcrt.  fixed: [ruby-dev:29518]</div><div class='del'>-</div><div class='del'>-Sat Sep  9 04:54:42 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, win32/Makefile.sub (MINIRUBY): append MINIRUBYOPT.</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress</div><div class='del'>-	  warnings with $VERBOSE.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: Proc#call does not pass the block in 1.8.</div><div class='del'>-</div><div class='del'>-	* win32/resource.rb: add more info.</div><div class='del'>-</div><div class='del'>-Fri Sep  8 10:03:59 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookies): new</div><div class='del'>-	  method to parse multiple cookies per Set-Cookie header.</div><div class='del'>-	  Thanks to Aaron Patterson &lt;aaron_patterson at speakeasy.net&gt;.</div><div class='del'>-	  [ruby-core:08802]</div><div class='del'>-</div><div class='del'>-Fri Sep  8 08:59:30 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, win32/configure.bat win32/setup.mak: program</div><div class='del'>-	  name transform.</div><div class='del'>-</div><div class='del'>-Fri Sep  8 01:33:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h (RSTRING_PTR): add migration macro.</div><div class='del'>-</div><div class='del'>-	* ruby.h (RARRAY_PTR): ditto.</div><div class='del'>-</div><div class='del'>-Thu Sep  7 23:27:05 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (path_check_0, fpath_check): disable path check on cygwin.</div><div class='del'>-	  [ruby-talk:213074]</div><div class='del'>-</div><div class='del'>-Wed Sep 06 12:05:19 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): fix regexp for euc-jp</div><div class='del'>-	  [ruby-dev:29344]</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb (Kconv::toeuc): remove -m0 [ruby-dev:29505]</div><div class='del'>-</div><div class='del'>-Tue Sep  5 06:47:22 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): variable declaration after an execution</div><div class='del'>-	  statement.</div><div class='del'>-</div><div class='del'>-Tue Sep  5 05:56:51 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_hash): improve collision.  fixed: [ruby-dev:29352]</div><div class='del'>-</div><div class='del'>-Tue Sep  5 05:49:41 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (path_check_0): check if sticky bit is set on parent</div><div class='del'>-	  directories for executable path.  fixed: [ruby-dev:29415]</div><div class='del'>-</div><div class='del'>-Tue Sep  5 05:03:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_plus): addition in Fixnum will never overflow</div><div class='del'>-	  long.  a patch from Ondrej Bilka &lt;neleai at seznam.cz&gt;.</div><div class='del'>-	  [ruby-core:08794]</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_minus): ditto.</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_pow): eagerly truncate resulting bignum.</div><div class='del'>-	  [ruby-core:08794]</div><div class='del'>-</div><div class='del'>-Mon Sep  4 23:15:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): make it conform to RFC2822 date format.</div><div class='del'>-	  [ruby-dev:29467]</div><div class='del'>-</div><div class='del'>-Mon Sep  4 21:43:57 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dbm/extconf.rb: create makefile according to the result of check</div><div class='del'>-	  for dbm header.  fixed: [ruby-dev:29445]</div><div class='del'>-</div><div class='del'>-Mon Sep  4 21:42:35 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.</div><div class='del'>-</div><div class='del'>-Mon Sep  4 21:14:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_strftime): include nul character.  fixed: [ruby-dev:29422]</div><div class='del'>-</div><div class='del'>-Mon Sep  4 16:29:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::out): specify -m0 -x option for nkf.</div><div class='del'>-	  [ruby-dev:29284]</div><div class='del'>-</div><div class='del'>-Mon Sep  4 16:13:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (pipe_open): command name should not contain null bytes.</div><div class='del'>-	  [ruby-dev:29421]</div><div class='del'>-</div><div class='del'>-	* process.c (proc_spawn): ditto.</div><div class='del'>-</div><div class='del'>-	* process.c (proc_spawn_n): ditto.</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): ditto.</div><div class='del'>-</div><div class='del'>-Sun Sep  3 15:32:44 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: get rid of nil.to_s.</div><div class='del'>-</div><div class='del'>-Sun Sep  3 06:24:38 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_connect): sockerrlen should be socklen_t.</div><div class='del'>-</div><div class='del'>-Sun Sep  3 04:40:42 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: check arpa/inet.h for ntohs.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: include arpa/inet.h if available.</div><div class='del'>-</div><div class='del'>-Sun Sep  3 02:34:55 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/unix.rb (DRbUNIXSocket#close): don't get path if client mode.</div><div class='del'>-	  [ruby-dev:29417]</div><div class='del'>-</div><div class='del'>-Sun Sep  3 01:45:17 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/acl.rb (ACLEntry#initialize): examine whether '*' is</div><div class='del'>-	  included before IPAddr.new. [ruby-dev:29406]</div><div class='del'>-</div><div class='del'>-Sat Sep  2 13:23:01 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (ia64.o): use the compiler driver to assemble ia64.s</div><div class='del'>-	  to use appropriate ABI.</div><div class='del'>-</div><div class='del'>-Sat Sep  2 03:36:22 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk, configure.in, defines.h, eval.c, gc.c, main.c,</div><div class='del'>-	  numeric.c, ruby.h, ia64.s: backport IA64 HP-UX support.</div><div class='del'>-</div><div class='del'>-Fri Sep  1 13:52:57 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: TkFont#current_configinfo() doesn't work</div><div class='del'>-	  on Tcl/Tk8.x.</div><div class='del'>-</div><div class='del'>-Thu Aug 31 12:46:55 2006  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_init): rename top_cref to ruby_top_cref and export,</div><div class='del'>-	  along with ruby_cref, for use by the sandbox. [ruby-core:08762]</div><div class='del'>-</div><div class='del'>-	* node.h: ditto.</div><div class='del'>-</div><div class='del'>-Tue Aug 29 19:10:10 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_s_create): fixed memory leak, based on the patch</div><div class='del'>-	  by Kent Sibilev &lt;ksruby at gmail.com&gt;.  fixed: [ruby-talk:211233]</div><div class='del'>-</div><div class='del'>-Mon Aug 28 11:36:02 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Fix typo.  Submitted by</div><div class='del'>-	  &lt;calamitas at gmail.com&gt;.  [ruby-core:08724]</div><div class='del'>-</div><div class='del'>-Mon Aug 28 07:53:44 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb: Don't unescape HTML in HtmlFormatter.</div><div class='del'>-	  Submitted by Kent Sibilev &lt;ksruby at gmail.com&gt;.  [ruby-core:08392].</div><div class='del'>-</div><div class='del'>-Mon Aug 28 07:25:45 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (File#size?): Fix documentation submitted by Rick Ohnemus.</div><div class='del'>-	  ruby-Bugs-5529.  [ruby-core:08725]</div><div class='del'>-</div><div class='del'>-Sat Aug 26 08:07:13 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: updated based on date2 3.8.2.</div><div class='del'>-</div><div class='del'>-Fri Aug 25 22:32:04 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/source.rb (REXML::IOSource#initialize): encoding have to</div><div class='del'>-	  be set with the accessor.  fixed: [ruby-list:42737]</div><div class='del'>-</div><div class='del'>-Fri Aug 25 17:15:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.5 released.</div><div class='del'>-</div><div class='del'>-Fri Aug 25 17:02:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_sweep): typo fixed.</div><div class='del'>-</div><div class='del'>-Tue Aug 22 18:47:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_method):</div><div class='del'>-	  rdoc documents C module methods as instance methods. a patch in</div><div class='del'>-	  [ruby-core:08536].</div><div class='del'>-</div><div class='del'>-Sat Aug 19 14:15:02 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (config.status): include winsock2.h instead of</div><div class='del'>-	  winsock.h when --with-winsock2 is specified.</div><div class='del'>-	  fixed: [ruby-dev:29296]</div><div class='del'>-</div><div class='del'>-Sat Aug 19 11:28:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_rename): use errno if set properly.</div><div class='del'>-	  fixed: [ruby-dev:29293]</div><div class='del'>-</div><div class='del'>-Sat Aug 19 11:09:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (then): remove semicolon warning.  [ruby-dev:29299]</div><div class='del'>-</div><div class='del'>-Thu Aug 17 19:15:16 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_stat_[rRwWxX]): check for super user.</div><div class='del'>-	  fixed: [ruby-core:08616]</div><div class='del'>-</div><div class='del'>-Thu Aug 17 14:47:06 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: added rdoc by Daniel Berger.  [ruby-core:08177]</div><div class='del'>-</div><div class='del'>-Thu Aug 17 00:39:05 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/ring.rb (do_reply): Fix for RingServer fails to find a</div><div class='del'>-	  TupleSpace when TupleSpace resides in the same ruby process with</div><div class='del'>-	  RingServer. a patch from Kent Sibilev. [ruby-core:08453]</div><div class='del'>-</div><div class='del'>-Wed Aug 16 11:45:36 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_setuid, proc_setgid, proc_seteuid, proc_setegid):</div><div class='del'>-	  get rid of bogus implementations on Mac OS X.</div><div class='del'>-</div><div class='del'>-Tue Aug 15 19:10:18 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment): Fix</div><div class='del'>-	  broken class-level documentation.</div><div class='del'>-</div><div class='del'>-Wed Aug 16 11:09:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (set_arg0): fill argv other than the first with an empty</div><div class='del'>-	  string instead of NULL.</div><div class='del'>-</div><div class='del'>-Wed Aug 16 11:08:00 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h: removed an excess macro.  fixed: [ruby-dev:29258]</div><div class='del'>-</div><div class='del'>-Tue Aug  8 23:49:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/extend-command.rb (IRB::ExtendCommandBundle): pacify</div><div class='del'>-	  RDoc.  a patch from Eric Hodel &lt;drbrain at segment7.net&gt;.</div><div class='del'>-	  [ruby-core:08522]</div><div class='del'>-</div><div class='del'>-Tue Aug  8 11:32:54 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, common.mk, configure.in: fix for platforms without</div><div class='del'>-	  rm. patches from Yutaka kanemoto &lt;kinpoco at gmail.com&gt;.</div><div class='del'>-	  [ruby-dev:29215]</div><div class='del'>-</div><div class='del'>-Mon Aug  7 17:56:59 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c, ext/digest/rmd160/rmd160ossl.c,</div><div class='del'>-	  ext/digest/sha1/sha1ossl.c, ext/readline/readline.c: move</div><div class='del'>-	  incluion of config.h to pacify AIX.  a patch from Yutaka</div><div class='del'>-	  Kanemoto &lt;kinpoco at gmail.com&gt;.  [ruby-dev:29197]</div><div class='del'>-</div><div class='del'>-Mon Aug  7 15:55:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c (syck_move_tokens): should avoid negative</div><div class='del'>-	  memmove.  [ruby-list:42625]</div><div class='del'>-</div><div class='del'>-Mon Aug  7 14:37:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, common.mk: AIX link issue.  a patch from Yutaka</div><div class='del'>-	  Kanemoto &lt;kinpoco at gmail.com&gt;.  [ruby-dev:29190]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: AIX socket support.  [ruby-dev:29190]</div><div class='del'>-</div><div class='del'>-Mon Aug  7 12:05:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c, eval.c, gc.c, regex.c, ruby.h: shut up AIX alloca</div><div class='del'>-	  warning.  a patch from Yutaka Kanemoto &lt;kinpoco at gmail.com&gt;.</div><div class='del'>-	  [ruby-dev:29191]</div><div class='del'>-</div><div class='del'>-Sun Aug  6 20:40:41 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb (str[fp]time): %[EO]U didn't denote %U.</div><div class='del'>-</div><div class='del'>-Sat Aug  5 17:07:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (top_local_setup): local_vars[-1] should point</div><div class='del'>-	  ruby_scope itself to protect local_tbl from garbage collection.</div><div class='del'>-	  [ruby-dev:29049]</div><div class='del'>-</div><div class='del'>-Sat Aug  5 13:54:03 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb (str[fp]time): "%\n" means "\n".</div><div class='del'>-</div><div class='del'>-Fri Aug  4 15:21:00 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib: Merge RDoc and .document from HEAD.</div><div class='del'>-	* lib/drb/ssl.rb: Close socket on SSLError [ruby-core:7197]</div><div class='del'>-</div><div class='del'>-Fri Aug  4 19:13:41 2006  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/{init.rb,ruby-lex.rb,slex.rb}: can't input '\c' for</div><div class='del'>-	  [ruby-core: 7122].</div><div class='del'>-</div><div class='del'>-Fri Aug  4 14:02:14 2006  James Edward Gray II  &lt;james@grayproductions.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb (__strptime, strftime): allow multi-line patterns</div><div class='del'>-	  in Date#strftime the same as Time#strftime accepts.</div><div class='del'>-	  fixed: [ruby-core:08466]</div><div class='del'>-</div><div class='del'>-Fri Aug  4 13:56:51 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): check argument overrun for 'P'.  based on a</div><div class='del'>-	  patch by rucila &lt;rucila at yahoo.cojp&gt;.  fixed: [ruby-dev:29182]</div><div class='del'>-</div><div class='del'>-Tue Aug  1 17:44:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (init_stdhandle): assign standard file handles.</div><div class='del'>-</div><div class='del'>-Tue Aug  1 12:24:58 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_Binding): fix old commit miss.</div><div class='del'>-</div><div class='del'>-Mon Jul 31 17:08:20 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (exit_handler): new function; release winsock and</div><div class='del'>-	  environment work area.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (NTInitialize): setup exit_handler.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (StartSockets): use exit_handler.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_getenv): use GetEnvironmentStrings() instead</div><div class='del'>-	  of GetEnvironmentVariable(), because the latter cannot distinguish</div><div class='del'>-	  wheather a null environment variable exists or not.</div><div class='del'>-	  fixed: [ruby-talk:205123]</div><div class='del'>-</div><div class='del'>-Mon Jul 31 16:15:13 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_process.rb (TestProcess#test_rlimit_nofile):</div><div class='del'>-	  setrlimit may fail with EINVAL.</div><div class='del'>-	  reported by MIYAMUKO Katsuyuki.  [ruby-dev:29174]</div><div class='del'>-</div><div class='del'>-Mon Jul 31 13:38:22 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (WEBrick::HTTPReuqest#parse_uri): improve</div><div class='del'>-	  for the value of IPv6 address in the Host: header field.</div><div class='del'>-</div><div class='del'>-Mon Jul 31 09:22:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: use ifdef (or defined) for macro constants that may or</div><div class='del'>-	  may not be defined to shut up gcc's -Wundef warnings.</div><div class='del'>-	  [ruby-core:08447]</div><div class='del'>-</div><div class='del'>-Sun Jul 30 23:26:22 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): trace call/return of method defined from block.</div><div class='del'>-	  fixed: [ruby-core:08329]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_trap_eval): make the current thread runnable to deal with</div><div class='del'>-	  exceptions which occurred within the trap.  fixed: [ruby-dev:27729]</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.</div><div class='del'>-	  fixed: [ruby-talk:204896]</div><div class='del'>-</div><div class='del'>-Sat Jul 29 06:12:06 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: freeze ip_name for security reason.</div><div class='del'>-</div><div class='del'>-Sat Jul 29 01:23:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: improves the amount of documentation that Rdoc</div><div class='del'>-	  picks up when processing logger.rb by moving the require</div><div class='del'>-	  statement back before the comment block.  a patch from Hugh</div><div class='del'>-	  Sasse &lt;hgs at dmu.ac.uk&gt;.  [ruby-core:08422]</div><div class='del'>-</div><div class='del'>-Thu Jul 27 22:21:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): fixed format mismatch.</div><div class='del'>-</div><div class='del'>-Thu Jul 27 21:19:54 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* math.c (domain_check): a new function to check domain error</div><div class='del'>-	  explicitly for systems that return NaN like FreeBSD.</div><div class='del'>-	  [ruby-core:07019]</div><div class='del'>-</div><div class='del'>-	* math.c (math_acos, math_asin, math_acosh, math_atanh, math_log,</div><div class='del'>-	  math_log10, math_sqrt): use domain_check().</div><div class='del'>-</div><div class='del'>-	* math.c (math_sqrt): fix documentation flaw.</div><div class='del'>-</div><div class='del'>-Thu Jul 27 18:12:12 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c: need to declare time_utc_offset.</div><div class='del'>-</div><div class='del'>-Thu Jul 27 17:01:01 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_close): always calls "close" method of the receiver.</div><div class='del'>-	  [ruby-core:6911] [ruby-core:8112]</div><div class='del'>-</div><div class='del'>-Thu Jul 27 16:49:01 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_to_s): use +0900 style timezone string for local time.</div><div class='del'>-	  [ruby-dev:29143]</div><div class='del'>-</div><div class='del'>-Thu Jul 27 16:41:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: move &lt;ruby.h&gt; inclusion point to shut up</div><div class='del'>-	  Solaris compiler.  [ruby-core:08114]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 22:20:59 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add support for as and ASFLAGS.  [ruby-dev:29138]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 22:13:45 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: sync with HEAD (rev 1.132).</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (Net::HTTP#post, request_post, request): should</div><div class='del'>-	  set Content-Type: x-www-form-urlencoded by default.</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (Net::HTTPHeader#content_type): should return</div><div class='del'>-	  nil when there's no Content-Type.</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (Net::HTTPHeader#sub_type): should return nil</div><div class='del'>-	  when there's no sub Content-Type (e.g. "Content-Type: text").</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (Net::HTTPHeader#type_params): wrongly failed</div><div class='del'>-	  when there's no Content-Type.</div><div class='del'>-</div><div class='del'>-Wed Jul 26 18:35:38 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: sync with HEAD (rev 1.25).</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c (strscan_do_scan):</div><div class='del'>-	  StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 18:14:19 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (getDevice): retry once after GC on failure.</div><div class='del'>-	  [ruby-core:08282]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 17:28:16 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): prepend ".." to %u for negative bignum,</div><div class='del'>-	  but not "-".  fixed: [ruby-core:08167]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 16:39:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_scan): add string modification check.</div><div class='del'>-	  [ruby-core:7216]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 16:06:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): check</div><div class='del'>-	  multipart boundary end.  a patch from Fujioka &lt;fuj at rabbix.jp&gt;</div><div class='del'>-	  [ruby-dev:28470]</div><div class='del'>-</div><div class='del'>-Wed Jul 26 01:02:59 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: suppress warnings by automake 1.8 or later.</div><div class='del'>-</div><div class='del'>-Tue Jul 25 00:30:06 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/prettyprint.rb: RD to RDoc conversion by Hugh Sasse.</div><div class='del'>-</div><div class='del'>-Tue Jul 25 14:49:51 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): typo.</div><div class='del'>-</div><div class='del'>-Tue Jul 25 13:14:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_proc_times): rename hz to hertz to avoid name</div><div class='del'>-	  crash on AIX.  [ruby-dev:29126]</div><div class='del'>-</div><div class='del'>-Mon Jul 24 22:03:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (backtrace): skip frames successive on node and method name.</div><div class='del'>-</div><div class='del'>-Mon Jul 24 17:55:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): add security check.  [ruby-talk:202947]</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): move signal right before fork to avoid</div><div class='del'>-	  signal handler intervention.</div><div class='del'>-</div><div class='del'>-Mon Jul 24 15:51:52 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c (readline_readline): rl_deprep_term_function</div><div class='del'>-	  may be NULL with libedit.  reported by Ryan Davis.  [ruby-dev:29070]</div><div class='del'>-</div><div class='del'>-Mon Jul 24 15:19:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): revert last change.  [ruby-dev:29112]</div><div class='del'>-	  [ruby-core:08374]</div><div class='del'>-</div><div class='del'>-Sun Jul 23 22:59:49 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/socket/test_unix.rb: disabled on cygwin.</div><div class='del'>-	  reported by Kouhei Yanagita.  [ruby-dev:29080]</div><div class='del'>-</div><div class='del'>-Fri Jul 21 21:21:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): include funcalled methods in caller list.</div><div class='del'>-	  fixed: [ruby-core:08290]</div><div class='del'>-</div><div class='del'>-Fri Jul 21 12:11:00 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb, lib/mkmf.rb (with_destdir): remove drive letter before</div><div class='del'>-	  prepending destdir on DOSISH.</div><div class='del'>-</div><div class='del'>-Thu Jul 20 15:07:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: export classes/modules to implement sandbox.</div><div class='del'>-	  [ruby-core:08283]</div><div class='del'>-</div><div class='del'>-Thu Jul 20 00:06:29 2006  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/completion.rb: support for completion of numeric</div><div class='del'>-    	  number. [ruby-dev: 29038]</div><div class='del'>-</div><div class='del'>-Wed Jul 19 23:53:05 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb, lib/rss/utils.rb: added documents.</div><div class='del'>-</div><div class='del'>-Tue Jul 18 22:10:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): block SIGCHLD during the process</div><div class='del'>-	  execution, like glibc system(3) does.  [ruby-talk:202361]</div><div class='del'>-</div><div class='del'>-Tue Jul 18 23:12:14 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (open_ifs_socket): should not use plain malloc.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_opendir): should not use plain realloc.</div><div class='del'>-</div><div class='del'>-Tue Jul 18 18:05:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_float.rb (TestFloat::test_strtod): update test to</div><div class='del'>-	  conform strtod change.</div><div class='del'>-</div><div class='del'>-Tue Jul 18 15:49:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): propagate association array to copied</div><div class='del'>-	  string.  [ruby-core:08223]</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): return referenced string itself if it has</div><div class='del'>-	  same length as specified.  a patch from &lt;nobu at ruby-lang.org&gt;</div><div class='del'>-	  in [ruby-core:08225].</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): taint 'p' packed strings.</div><div class='del'>-</div><div class='del'>-Tue Jul 18 14:03:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (WEBrick::HTTPServer::unmount): remove</div><div class='del'>-	  inpect argument from sprintf.  [ruby-dev:29039]</div><div class='del'>-</div><div class='del'>-Tue Jul 18 10:53:37 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_cstr_to_dbl): limit out-of-range message.</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): return end pointer even if ERANGE occurred.</div><div class='del'>-	  fixed: [ruby-dev:29041]</div><div class='del'>-</div><div class='del'>-Mon Jul 18 00:43:05 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): stop at dot not followed by digits.</div><div class='del'>-	  fixed: [ruby-dev:29035]</div><div class='del'>-</div><div class='del'>-Tue Jul 18 00:01:27 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: remove LIBRUBY_SO if static linked extensions exist.</div><div class='del'>-</div><div class='del'>-Mon Jul 17 23:30:46 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (rb_cv_msvcrt): defaulted to msvcrt.  Workaround for a</div><div class='del'>-	  bug of cygwin 1.5.20.</div><div class='del'>-</div><div class='del'>-Mon Jul 17 13:43:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (define_swapx): should not use plain malloc.</div><div class='del'>-</div><div class='del'>-Mon Jul 17 12:58:41 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: should use ac_cv_lib_dl_dlopen=no on MinGW.</div><div class='del'>-</div><div class='del'>-Sat Jul 15 23:50:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_require_safe): wait for another thread requiring the same</div><div class='del'>-	  feature.  fixed: [ruby-core:08229]</div><div class='del'>-</div><div class='del'>-Sat Jul 15 01:27:13 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (has_magic): glob names contain alphabets to enable case fold</div><div class='del'>-	  search also for directories.  fixed: [ruby-talk:201917]</div><div class='del'>-</div><div class='del'>-Sat Jul 15 01:09:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* st.c (malloc): use xmalloc/xcalloc instead of plain</div><div class='del'>-	  malloc/calloc, to detect memory allocation failure.  see</div><div class='del'>-	  &lt;http://www.nongnu.org/failmalloc/&gt;.</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_memerror): should not raise empty nomem_error.</div><div class='del'>-</div><div class='del'>-Fri Jul 14 13:08:13 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add methods for new features of latest Tcl/Tk8.5.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Jul 14 02:30:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb: document patch from Hugh Sasse &lt;hgs at dmu.ac.uk&gt;.</div><div class='del'>-	  [ruby-core:08205]</div><div class='del'>-</div><div class='del'>-Fri Jul 14 01:09:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (then): error in warning action.</div><div class='del'>-</div><div class='del'>-Fri Jul 14 00:10:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_pop): may cause realloc oscillation.  a patch</div><div class='del'>-	  from MORITA Naoyuki &lt;mlgetter at kidou.sakura.ne.jp&gt;.</div><div class='del'>-	  [ruby-dev:29028]</div><div class='del'>-</div><div class='del'>-Thu Jul 13 22:23:56 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/composite.rb: improve handling of the classname on the</div><div class='del'>-	  option database for the widget class which includes TkComposite.</div><div class='del'>-</div><div class='del'>-Thu Jul 13 20:32:19 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: updated documents by a patch from</div><div class='del'>-	  Hugh Sasse &lt;hgs at dmu.ac.uk&gt;. [ruby-core:8194]</div><div class='del'>-</div><div class='del'>-Wed Jul 12 13:54:09 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (then): we'd like to reserve colon here for the future.</div><div class='del'>-	  warning added.</div><div class='del'>-</div><div class='del'>-Tue Jul 11 20:58:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: export rb_cMethod.  [ruby-talk:201259]</div><div class='del'>-</div><div class='del'>-Tue Jul 11 19:13:33 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: remove restriction on the class of</div><div class='del'>-	  pseudo-toplevel.</div><div class='del'>-</div><div class='del'>-Tue Jul 11 18:00:57 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: security fix.</div><div class='del'>-</div><div class='del'>-Tue Jul 11 17:33:39 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_dump): need to extend len for \b.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 22:00:00 2006  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: Allows '_' to appear within</div><div class='del'>-	  digits.  [ruby-dev:28872]</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/util.rb: Bug in to_r reported by</div><div class='del'>-	  [ruby-list:42533] fixed.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 19:22:19 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_sweep): expand heap earlier.</div><div class='del'>-	  reported by MORITA Naoyuki.  [ruby-dev:28960]</div><div class='del'>-</div><div class='del'>-Mon Jul 10 18:59:34 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: sorry. mistaken to patch.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 18:46:52 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: make SEGV risk lower at exit.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fail to call function-style methods on slave</div><div class='del'>-	  interpreters. The strategy (MultiTkIp_PseudoToplevel_Evaluable) to</div><div class='del'>-	  fix the problem is a little tricky. You may have to take care of</div><div class='del'>-	  conflicting with it.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: a little change for the pseudo-toplevel strategy.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/itk/incr_tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/widget: fail to call function-style methods</div><div class='del'>-	  on sample scripts. To fix it, a strategy which similar to the way</div><div class='del'>-	  on MultiTiIp is used. Please take care when re-write and re-run a</div><div class='del'>-	  demo script on the Widget-Demo code viewer.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 13:58:40 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (ruby_nativethread_signal, posix_nativethread_signal,</div><div class='del'>-	  sigsend_to_ruby_thread, install_nativethread_sighandler):</div><div class='del'>-	  nativethread-support on signal handler. RE-backport from 1.9.</div><div class='del'>-</div><div class='del'>-	* ruby.h (HAVE_NATIVETHREAD_KILL): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_native_thread_kill): ditto.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 10:54:14 2006  Ryan Davis  &lt;ryand@zenspider.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_f95.rb: massive overhaul from Yasuhiro</div><div class='del'>-	  Morikawa including new file suffixes, function support, public</div><div class='del'>-	  variables and constants, derived-types, defined operators and</div><div class='del'>-	  assignments, namelists, and subroutine and function</div><div class='del'>-	  arguments. Truly massive.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/diagram.rb: diagrams are now cached.</div><div class='del'>-</div><div class='del'>-	* lib/irb/completion.rb: fixed a crasher when completing against</div><div class='del'>-	  an unnamed class/module.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: private comment (--/++) support in</div><div class='del'>-	  C-file rdoc.</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb: minor clarification in help.</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb: minor clarification on exception.</div><div class='del'>-</div><div class='del'>-Mon Jul 10 09:29:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_clear_cache_for_undef): clear entries for included</div><div class='del'>-	  module.  fixed: [ruby-core:08180]</div><div class='del'>-</div><div class='del'>-Mon Jul 10 01:48:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* st.h (st_data_t): use pointer sized integer for st_data_t.</div><div class='del'>-	  [ruby-dev:28988]</div><div class='del'>-</div><div class='del'>-Sun Jul  9 18:06:47 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (try_constant): fix for value 1 at cross compiling.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): prevent substitution of macro</div><div class='del'>-	  definition.  fixed: http://www.yotabanana.com/lab/20060624.html#p02</div><div class='del'>-</div><div class='del'>-Sun Jul  9 00:54:34 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (next_jump): deal with destination of next.</div><div class='del'>-	  fixed: [ruby-core:08169]</div><div class='del'>-</div><div class='del'>-Fri Jul  7 00:38:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_default): should not call default procedure if</div><div class='del'>-	  no key is given.  [ruby-list:42541]</div><div class='del'>-</div><div class='del'>-Fri Jul  7 00:29:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_mload): a patch from Daniel Berger</div><div class='del'>-	  &lt;Daniel.Berger at qwest.com&gt;.  [ruby-core:08128]</div><div class='del'>-</div><div class='del'>-Thu Jul  6 22:21:57 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to</div><div class='del'>-	  HZ and CLK_TCK.  fixed: [ruby-talk:200293]</div><div class='del'>-</div><div class='del'>-Thu Jul  6 22:17:21 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c: sync with original code, rev 1.8.</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c: should mark CparseParams objects.</div><div class='del'>-</div><div class='del'>-	* lib/racc/parser.rb: sync with original code, rev 1.8.</div><div class='del'>-</div><div class='del'>-	* lib/racc/parser.rb: update coding style.</div><div class='del'>-</div><div class='del'>-Mon Jul  3 19:04:38 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu</div><div class='del'>-	  widget embeddable (pack, grid, and so on) like as a general widget.</div><div class='del'>-	  However, an embeddable menu may require to be definied some event</div><div class='del'>-	  bindings for general use.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and</div><div class='del'>-	  Tk.callback_continue don't work on MultiTkIp.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: lack of Tk.callback_return.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: improve creating clone menus.</div><div class='del'>-</div><div class='del'>-Mon Jul  3 14:42:06 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/extconf.rb (PW_UID2VAL, PW_GID2VAL): defaulted to conversion</div><div class='del'>-	  from int, and sys/types.h needs to be included before grp.h.</div><div class='del'>-	  fixed: [ruby-dev:28938]</div><div class='del'>-</div><div class='del'>-Mon Jul  3 01:14:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_inspect): encode \b (\010) for escape.</div><div class='del'>-	  [ruby-dev:28927]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_dump): ditto.</div><div class='del'>-</div><div class='del'>-Sun Jul  2 19:17:56 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c: sync with original code (rev 1.7).</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c: use rb_catch instead of rb_iterate.</div><div class='del'>-	  Giving a block to a Ruby-level method by rb_iterate is obsolete on</div><div class='del'>-	  Ruby 1.9.  Note that current cparse.c still includes one</div><div class='del'>-	  rb_iterate call on Ruby 1.8, but it is not a problem (at least</div><div class='del'>-	  just now).</div><div class='del'>-</div><div class='del'>-Sat Jul  1 15:15:49 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/socket/test_nonblock.rb: add timeout to send/receive</div><div class='del'>-	  an empty UDP packet.</div><div class='del'>-	  [ruby-dev:28820]</div><div class='del'>-</div><div class='del'>-Fri Jun 30 23:46:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: should test isinf for Solaris with GCC compiler.</div><div class='del'>-	  a patch from &lt;ville.mattila at stonesoft.com&gt;.  [ruby-core:07791]</div><div class='del'>-</div><div class='del'>-	* configure.in: -shared patch from Andrew Morrow</div><div class='del'>-	  &lt;andrew.c.morrow at gmail.com&gt;.  [ruby-core:08100]</div><div class='del'>-</div><div class='del'>-Thu Jun 29 18:58:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BigDecimal_version): fix patch</div><div class='del'>-	  failure.</div><div class='del'>-</div><div class='del'>-Thu Jun 29 18:00:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: add RDoc document.  a patch from</div><div class='del'>-	  mathew &lt;meta at pobox.com&gt;.   [ruby-core:07050]</div><div class='del'>-</div><div class='del'>-Wed Jun 28 15:47:14 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb: RDoc patch from Robin Stocker &lt;robin@nibor.org&gt;</div><div class='del'>-	  [ruby-core:08087]</div><div class='del'>-</div><div class='del'>-Wed Jun 28 19:04:34 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/socket/test_unix.rb: test_seqpacket_pair removed.</div><div class='del'>-	  [ruby-dev:28846]</div><div class='del'>-</div><div class='del'>-Tue Jun 27 23:03:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c: RDoc update for =~ method.  a patch from Alex Young</div><div class='del'>-	  &lt;alex at blackkettle.org&gt;.  [ruby-core:08068]</div><div class='del'>-</div><div class='del'>-Tue Jun 27 22:47:18 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: forgot to update TCLTKLIB_RELEASE_DATE.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (tk_tcl2ruby): [bug fix] sometimes fail to convert</div><div class='del'>-	  a tcl string to a ruby object if the tcl string includes "\n".</div><div class='del'>-</div><div class='del'>-Tue Jun 27 16:04:05 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h: define isascii on MinGW for msvcrt compatibility.</div><div class='del'>-</div><div class='del'>-	* configure.in: set ac_cv_header_sys_time_h=no on MinGW</div><div class='del'>-	  for msvcrt compatibility.</div><div class='del'>-</div><div class='del'>-Tue Jun 27 11:36:02 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (setup_passwd, setup_group): allow bignum uid, gid and</div><div class='del'>-	  so on.  [ruby-talk:199102]</div><div class='del'>-</div><div class='del'>-Mon Jun 26 13:37:27 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc: Merge from HEAD.</div><div class='del'>-	  Add options to limit the ri search path.</div><div class='del'>-</div><div class='del'>-Tue Jun 27 00:54:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (powersOf10): constified.</div><div class='del'>-</div><div class='del'>-Mon Jun 26 18:37:44 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (ip_delete): fix SEGV when a slave-ip is</div><div class='del'>-	  deleted on callback.</div><div class='del'>-</div><div class='del'>-Mon Jun 26 10:47:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (pipe_open): avoid closing uninitialized file descriptors.</div><div class='del'>-	  a patch from &lt;tommy at tmtm.org&gt; [ruby-dev:28600]</div><div class='del'>-</div><div class='del'>-Mon Jun 26 09:56:22 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_w32_send, rb_w32_sendto): constified.</div><div class='del'>-</div><div class='del'>-Sun Jun 25 23:02:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, mkconfig.rb: catch-up for latest autoconf.</div><div class='del'>-</div><div class='del'>-Sat Jun 24 06:35:00 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c: revert last change.</div><div class='del'>-</div><div class='del'>-	* ruby.h: ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c: ditto.</div><div class='del'>-</div><div class='del'>-Thu Jun 22 11:52:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (Net::HTTPResponse): duplicated error 501;</div><div class='del'>-	  HTTPInternalServerError should be error 500.  [ruby-core:08037]</div><div class='del'>-</div><div class='del'>-Thu Jun 22 05:15:58 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_socketpair): try GC only once.</div><div class='del'>-	  [ruby-dev:28778]</div><div class='del'>-</div><div class='del'>-Wed Jun 21 21:28:32 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb (jd_to_commercial): now works fine even if in</div><div class='del'>-	  mathn-ized context.</div><div class='del'>-</div><div class='del'>-Wed Jun 21 17:32:31 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (ruby_nativethread_signal, posix_nativethread_signal,</div><div class='del'>-	  sigsend_to_ruby_thread, install_nativethread_sighandler):</div><div class='del'>-	  nativethread-support on signal handler (backport from 1.9).</div><div class='del'>-</div><div class='del'>-	* ruby.h (HAVE_NATIVETHREAD_KILL): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_native_thread_kill): ditto.</div><div class='del'>-</div><div class='del'>-Wed Jun 21 08:39:54 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): merge Date</div><div class='del'>-	  and Time processing.  [ruby-core:08033]</div><div class='del'>-</div><div class='del'>-Wed Jun 21 01:40:25 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yylex, reswords): modifier token is no longer returned in</div><div class='del'>-	  fname state.  [ruby-dev:28775]</div><div class='del'>-</div><div class='del'>-Wed Jun 21 01:12:46 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: RSS::Element.def_corresponded_attr_writer</div><div class='del'>-	  supported date type.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 22:08:36 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/rss/test_parser.rb: split parser tests into ...</div><div class='del'>-	* test/rss/test_parser_1.0.rb: ... RSS 1.0 parsing tests and ...</div><div class='del'>-	* test/rss/test_parser_2.0.rb: ... RSS 2.0 parsing tests.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 21:19:06 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: provided default RSS::Element#children.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: used default RSS::Element#children.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 21:04:33 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: provided default RSS::Element#_tags.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: used default RSS::Element#_tags.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 20:47:07 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: hide RSS::Element.install_model.</div><div class='del'>-	  (RSS::Element.install_have_child_element,</div><div class='del'>-	   RSS::Element.install_have_children_element,</div><div class='del'>-	   RSS::Element.install_text_element,</div><div class='del'>-	   RSS::Element.install_date_element): call</div><div class='del'>-	  RSS::Element.install_model internally.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: followed new API.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/content.rb: ditto.</div><div class='del'>-	* lib/rss/dublincore.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/syndication.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 20:18:05 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: add check for OBJ_NAME_do_all_sorted.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_s_ciphers): new method</div><div class='del'>-	  OpenSSL::Cipher.ciphers. it returns all the cipher names.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/cipher.rb:</div><div class='del'>-	  - add constants AES128, AES192, AES256. [ruby-dev:28610]</div><div class='del'>-	  - reimplement without eval()</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/digest.rb: reimplement without eval().</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_cipher.rb, test_digest: fix about reimplemented</div><div class='del'>-	  features.</div><div class='del'>-</div><div class='del'>-	* sample/openssl/cipher.rb: rewrite all.</div><div class='del'>-</div><div class='del'>-Sat Jun 19 11:21:46 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: Merge RDoc from HEAD.</div><div class='del'>-</div><div class='del'>-Tue Jun 20 01:06:57 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb:</div><div class='del'>-	  - cleanup validation mechanism. Now, #XXX_validation is</div><div class='del'>-	    needless.</div><div class='del'>-	  - changed internal variable name RSS::Element::MODEL to</div><div class='del'>-	    RSS::Element::MODELS.</div><div class='del'>-	  - RSS::Element.install_model requires uri.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: followed new validation API.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/content.rb: ditto.</div><div class='del'>-	* lib/rss/dublincore.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/syndication.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Jun 19 23:40:59 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb: remove default -m0 and fix document.</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-8/{nkf.c, config.h, utf8tbl.c, utf8tbl.h}:</div><div class='del'>-	  imported nkf 2.0.7.</div><div class='del'>-</div><div class='del'>-Mon Jun 19 22:31:59 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb:</div><div class='del'>-	  - provided default #to_s as RSS::Element#to_s.</div><div class='del'>-	  - removed RSS::Element#other_element.</div><div class='del'>-	  - RSS::Element#tag requires attributes as Hash instead of Array.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: removed #to_s to use RSS::Element#to_s.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/2.0.rb: removed #other_element.</div><div class='del'>-</div><div class='del'>-Mon Jun 19 22:09:16 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c(ole_invoke): support some kind of</div><div class='del'>-	  method of word. [ruby-Bugs#3237]</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/test_word.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/testall.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Jun 19 00:02:17 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: automatically detected attributes.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: removed #_attrs.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: followed new internal API.</div><div class='del'>-</div><div class='del'>-Mon Jun 19 00:00:17 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix bug: initialize improper tables.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 22:36:13 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: RSS::Element#initialize accepts initial</div><div class='del'>-	  attributes.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/dublincore.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/utils.rb: added Utils.element_initialize_arguments? to</div><div class='del'>-	  detect backward compatibility initial arguments.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: user initial attributes to initialize</div><div class='del'>-	  RSS::Element.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:24:42 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/converter.rb: use NKF for Uconv fallback.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:22:04 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/rss/test_image.rb: shared name space configuration.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:13:25 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: improved ignore_unknown_element</div><div class='del'>-	  handling. RSS::NotExpectedTagError provides tag URI.</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/content.rb: ditto.</div><div class='del'>-	* lib/rss/dublincore.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/syndication.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-assertions.rb: checked URI of not expected tag too.</div><div class='del'>-	* test/rss/test_parser.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:08:36 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: changed empty namespace URI representation to ""</div><div class='del'>-	  from nil.</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:03:50 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: removed a guard for requiring open-uri.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 18:01:26 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: fixed typo: except -&gt; expect</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-	* test/rss/rss-assertions.rb: ditto.</div><div class='del'>-	* test/rss/test_parser.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 17:52:39 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: RSS::Element#calc_indent became to be deprecated.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_1.0.rb: removed RSS::Element.indent_size tests.</div><div class='del'>-	* test/rss/test_2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Jun 18 00:49:11 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (bsock_recv_nonblock): new method</div><div class='del'>-	  BasicSocket#recv_nonblock.</div><div class='del'>-	  (udp_recvfrom_nonblock): renamed from ip_recvfrom_nonblock.</div><div class='del'>-	  IPSocket#recvfrom_nonblock is moved to UDPSocket#recvfrom_nonblock.</div><div class='del'>-	  (unix_recvfrom_nonblock): removed.</div><div class='del'>-	  UNIXSocket#recvfrom_nonblock is removed.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 22:17:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mathn.rb (Integer::prime_division): raise ZeroDivisionError</div><div class='del'>-	  on zeros.  [ruby-dev:28739]</div><div class='del'>-</div><div class='del'>-Sat Jun 17 14:53:32 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb: backport from 1.9.</div><div class='del'>-	  (Kernel#Pathname): new method.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 10:30:41 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (Hash#merge, Enumerable#sort_by): removed.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::RootElementMixin#to_xml): added.</div><div class='del'>-	  [ruby-talk:197284]</div><div class='del'>-</div><div class='del'>-	  We can convert RSS version easily like the following:</div><div class='del'>-	    rss10 = RSS::Parser.parse(File.read("1.0.rdf"))</div><div class='del'>-	    File.open("2.0.rss", "w") {|f| f.print(rss10.to_xml("2.0"))}</div><div class='del'>-</div><div class='del'>-	* test/rss/test_1.0.rb: added #to_xml test.</div><div class='del'>-	* test/rss/test_2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-testcase.rb: added some helper methods that</div><div class='del'>-	  generates sample RSS 2.0.</div><div class='del'>-</div><div class='del'>-	* sample/rss/convert.rb: added a sample script to convert RSS format.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 10:23:22 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (Kernel#funcall): removed.</div><div class='del'>-	* lib/rss/parser.rb (Kernel.URI): removed.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/: supported</div><div class='del'>-	    xxx.new_yyy do |yyy|</div><div class='del'>-	      yyy.zzz = zzz</div><div class='del'>-	      ...</div><div class='del'>-	    end</div><div class='del'>-	  style and this style became the style of the recommendation.</div><div class='del'>-</div><div class='del'>-	  Old style</div><div class='del'>-	    yyy = xxx.new_yyy</div><div class='del'>-	    yyy.zzz = zzz</div><div class='del'>-	    ...</div><div class='del'>-	  is supported too but this style isn't recommended.</div><div class='del'>-	  [ruby-talk:197284]</div><div class='del'>-</div><div class='del'>-	* test/rss/test_*maker*.rb: used new recommended style.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 09:03:47 2006  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss, test/rss: backported from trunk. (2005-11-16 - now)</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::VERSION): 0.1.5 -&gt; 0.1.6.</div><div class='del'>-	* test/rss/test_version.rb (RSS::TestVersion#test_version): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/trackback.rb: added TrackBack prefix.</div><div class='del'>-	* lib/rss/maker/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb : removed needless argument 'prefix'.</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/1.0.rb: added rdf:Bag.</div><div class='del'>-</div><div class='del'>-	* lib/rss/taxonomy.rb: implemented taxonomy module.</div><div class='del'>-	* test/rss/test_taxonomy.rb: added tests for taxonomy support.</div><div class='del'>-</div><div class='del'>-	* lib/rss/1.0.rb: added convenience method 'resources'.</div><div class='del'>-	* lib/rss/taxonomy.rb: ditto.</div><div class='del'>-	* test/rss/rss-assertions.rb: added test for 'resources'.</div><div class='del'>-	* test/rss/test_taxonomy.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: fixed a indentation bug.</div><div class='del'>-	* lib/rss/taxonomy.rb: fixed &lt;taxo:topic&gt; #to_s bug.</div><div class='del'>-	* test/rss/test_taxonomy.rb: added a #to_s test.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/taxonomy.rb: implemented taxonomy module for RSS</div><div class='del'>-	  Maker.</div><div class='del'>-	* lib/rss/taxonomy.rb: supported RSS Maker.</div><div class='del'>-	* lib/rss/maker.rb: added taxonomy module support.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: adjusted to other element API.</div><div class='del'>-	* lib/rss/1.0.rb: adjusted to other element API but backward</div><div class='del'>-	  compatibility is reserved.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_taxo.rb: added test case for taxonomy module</div><div class='del'>-	  for RSS Maker.</div><div class='del'>-	* test/rss/test_setup_maker_1.0.rb: added tests for taxo:topic.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_setup_maker_1.0.rb: added backward compatibility</div><div class='del'>-	  test.</div><div class='del'>-	* test/rss/test_setup_maker_0.9.rb: ditto.</div><div class='del'>-	* test/rss/test_setup_maker_2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-testcase.rb: added convenience method for setting</div><div class='del'>-	  up taxo:topic.</div><div class='del'>-	* test/rss/rss-assertions.rb: added assertion for taxo:topic.</div><div class='del'>-</div><div class='del'>-	* sample/rss/blend.rb: followed new API.</div><div class='del'>-</div><div class='del'>-	* lib/rss/taxonomy.rb: changed class or module prefix to</div><div class='del'>-	  Taxonomy from Taxo.</div><div class='del'>-	* lib/rss/maker/taxonomy.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_taxonomy.rb: use #reject directory.</div><div class='del'>-</div><div class='del'>-	* lib/rss/: use #__send__ instead of #send.</div><div class='del'>-	* test/rss/: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: added entity handling type predicate.</div><div class='del'>-	* lib/rss/rexmlparser.rb: ditto.</div><div class='del'>-	* lib/rss/xmlparser.rb: ditto.</div><div class='del'>-	* lib/rss/xmlscanner.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/xmlscanner.rb: more robust entity handling.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_parser.rb: added an entity handling test.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_2.0.rb: added RSS 2.0 tests.</div><div class='del'>-	* test/rss/rss-assertions.rb: extended XML stylesheet assertion.</div><div class='del'>-	* lib/rss/0.9.rb: added initialize method.</div><div class='del'>-	* test/rss/test_1.0.rb: cleanup.</div><div class='del'>-</div><div class='del'>-	* lib/rss/image.rb: added Image prefix.</div><div class='del'>-	* lib/rss/maker/image.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: improved type conversion.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/syndication.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_2.0.rb: added type conversion tests.</div><div class='del'>-	* test/rss/test_accessor.rb: ditto.</div><div class='del'>-	* test/rss/test_to_s.rb: ditto.</div><div class='del'>-	* test/rss/test_syndication.rb: ditto.</div><div class='del'>-	* test/rss/test_setup_maker_2.0.rb: ditto.</div><div class='del'>-	* test/rss/test_setup_maker_1.0.rb: ditto.</div><div class='del'>-	* test/rss/test_setup_maker_0.9.rb: ditto.</div><div class='del'>-	* test/rss/test_maker_sy.rb: ditto.</div><div class='del'>-	* test/rss/test_maker_image.rb: ditto.</div><div class='del'>-	* test/rss/test_maker_2.0.rb: ditto.</div><div class='del'>-	* test/rss/test_maker_0.9.rb: ditto.</div><div class='del'>-	* test/rss/test_image.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_1.0.rb: use assert instead of assert_equal.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-assertions.rb: improved type conversion assertions.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: added backward compatibility codes.</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-	* test/rss/test_parser.rb: ditto.</div><div class='del'>-	* test/rss/test_2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 02:01:00 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed</div><div class='del'>-	  string.</div><div class='del'>-</div><div class='del'>-Sat Jun 17 00:23:58 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (reswords): kDO_BLOCK was missing.  fixed: [ruby-core:7995]</div><div class='del'>-</div><div class='del'>-Sat Jun 17 00:02:15 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_propertyput): support</div><div class='del'>-	  PROPERTYPUTREF. [ruby-talk:183042]</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/test_propertyputref.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Jun 15 23:02:47 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_methods): The return value</div><div class='del'>-	  of WIN32OLE#ole_methods should include PROPERTYPUTREF methods.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_put_methods): The return value</div><div class='del'>-	  of WIN32OLE#ole_put_methods should include PROPERTYPUTREF methods.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/test_ole_methods.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/testall.rb : ditto.</div><div class='del'>-</div><div class='del'>-Wed Jun 14 18:23:28 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_any): Documentation typo.</div><div class='del'>-</div><div class='del'>-Wed Jun 14 15:01:09 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser#warn): Don't print</div><div class='del'>-	  warnings when -q is set.</div><div class='del'>-</div><div class='del'>-Wed Jun 14 23:03:53 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check sizeof(rlim_t).</div><div class='del'>-	  check setrlimit.</div><div class='del'>-</div><div class='del'>-	* process.c (proc_getrlimit): new method Process.getrlimit.</div><div class='del'>-	  (proc_setrlimit): new method Process.setrlimit.</div><div class='del'>-</div><div class='del'>-	* ruby.h (NUM2ULL): new macro.</div><div class='del'>-</div><div class='del'>-Mon Jun 12 22:25:09 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): adjust precision length to prevent</div><div class='del'>-	  splitting multi-byte characters.  [ruby-list:42389]</div><div class='del'>-</div><div class='del'>-Sun Jun 11 23:20:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Arguable#getopts): pass self to the</div><div class='del'>-	  parser.</div><div class='del'>-</div><div class='del'>-Sun Jun 11 10:00:57 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h (write): not need to define on bcc.</div><div class='del'>-</div><div class='del'>-Sun Jun 11 08:30:33 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#getopts): new methods.</div><div class='del'>-</div><div class='del'>-Sat Jun 10 18:02:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/newton.rb (Newton::nlsolve): typo</div><div class='del'>-	  fixed: raize -&gt; raise.  [ruby-talk:196608]</div><div class='del'>-</div><div class='del'>-Thu Jun  8 14:19:17 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_w32_read, rb_w32_write): new functions.</div><div class='del'>-	  use recv() and send() when fd is socket. fixed: [ruby-dev:28694]</div><div class='del'>-</div><div class='del'>-Wed Jun  7 16:22:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tempfile.rb (Tempfile::make_tmpname): put dot between</div><div class='del'>-	  basename and pid.  [ruby-talk:196272]</div><div class='del'>-</div><div class='del'>-Wed Jun  7 14:53:04 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (errmap): add some winsock errors.</div><div class='del'>-</div><div class='del'>-Wed Jun  7 11:34:38 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add new configure option `--with-winsock2' for mingw.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (config.h): define USE_WINSOCK2 in config.h</div><div class='del'>-	  instead of in CPPFLAGS.</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: determine whether to use winsock2 or not</div><div class='del'>-	  by using with_config.</div><div class='del'>-</div><div class='del'>-Wed Jun  7 10:45:10 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/{configure.bat, setup.mak, Makefile.sub, win32.h}: add</div><div class='del'>-	  new configure option `--with-winsock2'.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (StartSockets): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (open_ifs_socket): new function.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (StartSockets, rb_w32_socket): use open_ifs_socket()</div><div class='del'>-	  instead of socket().</div><div class='del'>-	  ifs socket support is backported from trunk.</div><div class='del'>-</div><div class='del'>-Wed Jun  7 09:14:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): binding for the return event hook should have</div><div class='del'>-	  consistent scope.  [ruby-core:07928]</div><div class='del'>-</div><div class='del'>-	* eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from</div><div class='del'>-	  event_hooks.	no guarantee for arbitrary hook deletion.</div><div class='del'>-	  [ruby-dev:28632]</div><div class='del'>-</div><div class='del'>-Mon Jun  5 18:12:12 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): reject</div><div class='del'>-	  non-AF_INET/AF_INET6 sockaddr.</div><div class='del'>-	  (sock_s_unpack_sockaddr_un): reject non-AF_UNIX sockaddr.</div><div class='del'>-	  [ruby-dev:28691]</div><div class='del'>-</div><div class='del'>-Sun Jun  4 20:40:19 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: fix sockaddr_un handling.</div><div class='del'>-	  [ruby-dev:28677]</div><div class='del'>-</div><div class='del'>-Fri Jun  2 22:08:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/forwardable.rb: RDoc typo fix from Jan Svitok</div><div class='del'>-	  &lt;jan.svitok at gmail.com&gt;.  [ruby-core:07943]</div><div class='del'>-</div><div class='del'>-Fri Jun  2 19:02:09 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: use create_header.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h, ext/openssl/openssl_missing.h:</div><div class='del'>-	  include RUBY_EXTCONF_H.</div><div class='del'>-</div><div class='del'>-Fri Jun  2 17:16:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (CLEANINGS): remove extconf.h by distclean if created.</div><div class='del'>-</div><div class='del'>-Fri Jun  2 00:11:19 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_recvfrom): alen may be zero with UNIXSocket</div><div class='del'>-	  too.  (tested on NetBSD 3.0)</div><div class='del'>-	  (s_recvfrom_nonblock): extracted from sock_recvfrom_nonblock.</div><div class='del'>-	  (sock_recvfrom_nonblock): use s_recvfrom_nonblock.</div><div class='del'>-	  (ip_recvfrom_nonblock): new method: IPSocket#recvfrom_nonblock</div><div class='del'>-	  (unix_recvfrom_nonblock): new method: UNIXSocket#recvfrom_nonblock</div><div class='del'>-	  (s_accept_nonblock): extracted from sock_accept_nonblock.</div><div class='del'>-	  (sock_accept_nonblock): use s_accept_nonblock.</div><div class='del'>-	  (tcp_accept_nonblock): new method: TCPServer#accept_nonblock</div><div class='del'>-	  (unix_accept_nonblock): new method: UNIXServer#accept_nonblock</div><div class='del'>-</div><div class='del'>-Thu Jun  1 19:12:37 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_cmdvector): backslashes inside single-quotes</div><div class='del'>-	  no longer has special meanings.  fixed: [ruby-list:42311]</div><div class='del'>-</div><div class='del'>-Thu Jun  1 16:14:41 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_getcwd): runtime's getcwd() will not success</div><div class='del'>-	  if the length of the cwd is longer than MAX_PATH.</div><div class='del'>-	  fixed [ruby-list:42335]</div><div class='del'>-</div><div class='del'>-Thu Jun  1 11:29:14 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_getcwd): set errno if not set.</div><div class='del'>-	  fixed [ruby-list:42346]</div><div class='del'>-</div><div class='del'>-Sat May 27 11:29:46 2006  nobuyoshi nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): remove extinit files if no statically linked</div><div class='del'>-	  extensions.</div><div class='del'>-</div><div class='del'>-Fri May 26 09:05:11 2006  nobuyoshi nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h, lib/mkmf.rb (create_header): clear command line options for</div><div class='del'>-	  macros moved to extconf.h.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and</div><div class='del'>-	  EXTSTATIC permanent.</div><div class='del'>-</div><div class='del'>-	* ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added</div><div class='del'>-	  $(INCFLAGS).</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): add $defs unless extconf.h was created.</div><div class='del'>-</div><div class='del'>-Thu May 25 01:52:07 2006  nobuyoshi nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (pkg_config): particular config commands support.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: deal with $static set in extconf.rb.</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: merge multiple entries to an entry with multiple lines.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: allow a series of commands to link.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub: embed manifests.</div><div class='del'>-</div><div class='del'>-	* win32/setup.mak: suffix OS name by runtime version.</div><div class='del'>-</div><div class='del'>-Wed May 24 23:52:11 2006  nobuyoshi nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ac_install_sh): ignore dummy install-sh.</div><div class='del'>-	  [ruby-talk:193876]</div><div class='del'>-</div><div class='del'>-Wed May 24 03:10:48 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb</div><div class='del'>-	  (OpenSSL::SSL::SocketForwarder#setsockopt,getsockopt): typo fixed.</div><div class='del'>-</div><div class='del'>-Mon May 22 17:54:12 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_recvfrom_nonblock): use rb_read_pending</div><div class='del'>-	  instead of rb_io_read_pending.</div><div class='del'>-	  [ruby-dev:28663]</div><div class='del'>-</div><div class='del'>-Mon May 22 17:30:04 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubyio.h (rb_io_set_nonblock): declared.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_set_nonblock): new function.</div><div class='del'>-	  (io_getpartial): nonblocking read support.</div><div class='del'>-	  (io_read_nonblock): new method: IO#read_nonblock.</div><div class='del'>-	  (io_write_nonblock): new method: IO#write_nonblock.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c</div><div class='del'>-	  (sock_connect_nonblock): new method: Socket#connect_nonblock.</div><div class='del'>-	  (sock_accept_nonblock): new method: Socket#accept_nonblock.</div><div class='del'>-	  (sock_recvfrom_nonblock): new method: Socket#recvfrom_nonblock.</div><div class='del'>-</div><div class='del'>-	  [ruby-core:7917]</div><div class='del'>-</div><div class='del'>-Mon May 22 15:57:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (umethod_bind): should not update original class.</div><div class='del'>-	  [ruby-dev:28636]</div><div class='del'>-</div><div class='del'>-Mon May 22 13:38:57 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ev_const_get): should support constant access from</div><div class='del'>-	  within instance_eval().  [ruby-dev:28327]</div><div class='del'>-</div><div class='del'>-Thu May 18 17:51:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_timeval): should round for usec floating</div><div class='del'>-	  number.  [ruby-core:07896]</div><div class='del'>-</div><div class='del'>-	* time.c (time_add): ditto.</div><div class='del'>-</div><div class='del'>-Thu May 18 17:11:45 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::out): support utf-8.  a patch from Fujioka</div><div class='del'>-	  &lt;fuj at rabbix.jp&gt;.  [ruby-dev:28649]</div><div class='del'>-</div><div class='del'>-Thu May 18 00:42:12 2006  nobuyoshi nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb, lib/mkmf.rb: use BUILD_FILE_SEPARATOR in Makefiles.</div><div class='del'>-</div><div class='del'>-Wed May 17 17:55:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (sys_warning): should not call a vararg function</div><div class='del'>-	  rb_sys_warning() indirectly.  [ruby-core:07886]</div><div class='del'>-</div><div class='del'>-Wed May 17 08:17:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): try to reduce errors using powersOf10</div><div class='del'>-	  table.  [ruby-dev:28644]</div><div class='del'>-</div><div class='del'>-Tue May 16 15:34:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_initialize): should not allow modifying literal</div><div class='del'>-	  regexps.  frozen check moved from rb_reg_initialize_m as well.</div><div class='del'>-</div><div class='del'>-Tue May 16 09:20:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_initialize): should not modify untainted objects in</div><div class='del'>-	  safe levels higher than 3.</div><div class='del'>-</div><div class='del'>-	* re.c (rb_memcmp): type change from char* to const void*.</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_close): should not close untainted dir stream.</div><div class='del'>-</div><div class='del'>-	* dir.c (GetDIR): add tainted/frozen check for each dir operation.</div><div class='del'>-</div><div class='del'>-Mon May 15 17:42:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):</div><div class='del'>-	  typo fixed.  a patch from Florian Gross &lt;florg at florg.net&gt;.</div><div class='del'>-</div><div class='del'>-Sat May 13 16:14:05 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PP.mcall): new method.</div><div class='del'>-	  (Struct#pretty_print): call Kernel#class and Struct#members even if</div><div class='del'>-	  overridden.</div><div class='del'>-	  (Struct#pretty_print_cycle): ditto.</div><div class='del'>-	  [ruby-core:7865]</div><div class='del'>-</div><div class='del'>-Thu May 11 19:57:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): differ addition to minimize error.</div><div class='del'>-	  [ruby-dev:28619]</div><div class='del'>-</div><div class='del'>-Fri Aug 11 15:39:25 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get</div><div class='del'>-	  documented.</div><div class='del'>-</div><div class='del'>-Thu May 11 18:10:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): should not raise ERANGE when the input</div><div class='del'>-	  string does not have any digits.  [ruby-dev:28629]</div><div class='del'>-</div><div class='del'>-Sun May  7 03:09:51 2006  Stephan Maka  &lt;stephan@spaceboyz.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Requester::ConnectedUDP#initialize):</div><div class='del'>-	  Use AF_INET6 for nameservers containing colons.</div><div class='del'>-</div><div class='del'>-Sat May  6 00:38:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (trap): sig should be less then NSIG.  Coverity found</div><div class='del'>-	  this bug.  a patch from Kevin Tew &lt;tewk at tewk.com&gt;.</div><div class='del'>-	  [ruby-core:07823]</div><div class='del'>-</div><div class='del'>-Thu May  4 02:24:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_scan_scalar): avoid accessing</div><div class='del'>-	  uninitialized array element.  a patch from Pat Eyler</div><div class='del'>-	  &lt;rubypate at gmail.com&gt;.  [ruby-core:07809]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): initialize local variables first.  a</div><div class='del'>-	  patch from Pat Eyler &lt;rubypate at gmail.com&gt;.  [ruby-core:07810]</div><div class='del'>-</div><div class='del'>-	* ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free</div><div class='del'>-	  type_tag.  a patch from Pat Eyler &lt;rubypate at gmail.com&gt;.</div><div class='del'>-	  [ruby-core:07808]</div><div class='del'>-</div><div class='del'>-Wed May  3 02:12:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (make_hostent_internal): accept ai_family</div><div class='del'>-	  check from Sam Roberts &lt;sroberts at uniserve.com&gt;.</div><div class='del'>-	  [ruby-core:07691]</div><div class='del'>-</div><div class='del'>-Mon May  1 12:23:19 2006    &lt;sinara@blade.nagaokaut.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (num_div): use floor rather than rb_Integer().</div><div class='del'>-	  [ruby-dev:28589]</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod): the first element of Float#divmod should</div><div class='del'>-	  be an integer. [ruby-dev:28589]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.</div><div class='del'>-</div><div class='del'>-Sat Apr 29 22:42:08 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_decode0): should initialize</div><div class='del'>-	  flag. [ruby-core:07785]</div><div class='del'>-</div><div class='del'>-Fri Apr 28 10:53:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): should not cut off 18 digits for no</div><div class='del'>-	  reason.  [ruby-core:07796]</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): fixed wrong conversion.</div><div class='del'>-</div><div class='del'>-Thu Apr 27 01:38:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): internalize local variable "beg" to</div><div class='del'>-	  pacify Coverity.  [ruby-core:07770]</div><div class='del'>-</div><div class='del'>-Wed Apr 26 16:59:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): now supports CRLF newlines.  a patch from</div><div class='del'>-	  &lt;tommy at tmtm.org&gt;.  [ruby-dev:28601]</div><div class='del'>-</div><div class='del'>-Tue Apr 25 18:00:05 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (delete_slaves): maybe increment the reference</div><div class='del'>-	  count of a NULL Tcl_Obj [ruby-core:07759].</div><div class='del'>-</div><div class='del'>-Tue Apr 25 07:55:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/jcode.rb (String::tr_s): should have translated non</div><div class='del'>-	  squeezing character sequence (i.e. a character) as well.  thanks</div><div class='del'>-	  to Hiroshi Ichikawa &lt;gimite at gimite.ddo.jp&gt; [ruby-list:42090]</div><div class='del'>-</div><div class='del'>-Tue Apr 25 00:08:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (re_compile_pattern): should check if c is not a</div><div class='del'>-	  multibyte character.  a patch from KIMURA Koichi</div><div class='del'>-	  &lt;kimura.koichi at canon.co.jp&gt;.  [ruby-dev:28598]</div><div class='del'>-</div><div class='del'>-Fri Apr 21 15:19:13 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (lib_eventloop_ensure): refer freed pointer</div><div class='del'>-	  [ruby-core:07744] and memory leak.</div><div class='del'>-</div><div class='del'>-Fri Apr 21 12:14:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: document update patch from Sam Roberts</div><div class='del'>-	  &lt;sroberts at uniserve.com&gt;.  [ruby-core:07701]</div><div class='del'>-</div><div class='del'>-Wed Apr 19 13:55:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (arg): too much NEW_LIST()</div><div class='del'>-</div><div class='del'>-	* eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.</div><div class='del'>-</div><div class='del'>-Wed Apr 19 11:57:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.</div><div class='del'>-	  [ruby-dev:28585]</div><div class='del'>-</div><div class='del'>-	* parse.y (list_concat): revert last change.</div><div class='del'>-</div><div class='del'>-	* parse.y (arg): use NODE_ARGSCAT for placeholder.</div><div class='del'>-</div><div class='del'>-Wed Apr 19 11:13:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from</div><div class='del'>-	  mathew &lt;meta at pobox.com&gt;.  [ruby-core:07738]</div><div class='del'>-</div><div class='del'>-Wed Apr 19 10:13:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_const_set): raise error when no target klass is</div><div class='del'>-	  supplied.  [ruby-dev:28582]</div><div class='del'>-</div><div class='del'>-Wed Apr 19 09:49:36 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (list_concat): should not modify nodes other than</div><div class='del'>-	  NODE_ARRAY.  [ruby-dev:28583]</div><div class='del'>-</div><div class='del'>-Tue Apr 18 17:40:37 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add a binding to a container for a slave IP.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: update RELEASE_DATE.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: forget to reset a Tcl interpreter.</div><div class='del'>-</div><div class='del'>-	* ext/tk/stubs.c: fix potential bugs about handling rb_argv0.</div><div class='del'>-</div><div class='del'>-Tue Apr 18 00:11:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: block_unique should be 1, not frame_unique.</div><div class='del'>-	  [ruby-dev:28577]</div><div class='del'>-</div><div class='del'>-Fri Aug 11 15:39:25 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_body): Make RDoc</div><div class='del'>-	  ignore C function prototypes.  Patch by Tilman Sauerbeck</div><div class='del'>-	  &lt;tilman at code-monkey.de&gt;.  [ruby-core:8574]</div><div class='del'>-	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get</div><div class='del'>-	  documented.</div><div class='del'>-</div><div class='del'>-Mon Apr 10 01:03:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* prec.c (prec_prec_f): documentation patch from</div><div class='del'>-	  &lt;gerardo.santana at gmail.com&gt;.  [ruby-core:07689]</div><div class='del'>-</div><div class='del'>-Sat Apr  8 02:34:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_pow): second operand may be too big even if</div><div class='del'>-	  it's a Fixnum.  [ruby-talk:187984]</div><div class='del'>-</div><div class='del'>-Sat Apr  8 02:12:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* README.EXT: update symbol description.  [ruby-talk:188104]</div><div class='del'>-</div><div class='del'>-Thu Apr  6 23:28:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* COPYING: explicitly note GPLv2.  [ruby-talk:187922]</div><div class='del'>-</div><div class='del'>-Thu Apr  6 11:18:37 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/panedwindow.rb: lack of arguments. [ruby-core:7681]</div><div class='del'>-</div><div class='del'>-Thu Apr  6 01:04:47 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: fix SEGV when embedding to an application.</div><div class='del'>-	  [ruby-core:7600]</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: fix SEGV at exit. [ruby-talk:186489]</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil/tkutil.c: follow to changing specification of</div><div class='del'>-	  instance_eval on ruby-1.9.x.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: remove warning about redefinition of methods.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: remove warning about unseting Tcl</div><div class='del'>-	  variables.</div><div class='del'>-</div><div class='del'>-Wed Mar 29 20:54:44 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_getproperty): WIN32OLE#[] should accept</div><div class='del'>-	  multi arguments.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/testWIN32OLE.rb (test_setproperty_bracket): ditto.</div><div class='del'>-</div><div class='del'>-Wed Mar 29 10:07:44 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c (nkf_each_char_to_hex, encode_fallback_subchar,</div><div class='del'>-	  e2w_conv): support C90 compiler.</div><div class='del'>-</div><div class='del'>-Wed Mar 29 06:48:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (backtrace): reports aliased method names in a generated</div><div class='del'>-	  backtrace.  a patch from "U.Nakamura" &lt;usa at garbagecollect.jp&gt;.</div><div class='del'>-	  [ruby-dev:28471]</div><div class='del'>-</div><div class='del'>-Mon Mar 27 22:19:09 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/{nkf.c, utf8tbl.c, config.h}: imported nkf 2.0.6.</div><div class='del'>-	  * Add --ic / --oc option and mapping tables.</div><div class='del'>-	  * Add fallback option.</div><div class='del'>-	  * Add --no-best-fit-chars option.</div><div class='del'>-	  * Fix some bugs.</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c (nkf_split_options): added for parse option string.</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb (Kconv.to*): add -m0.</div><div class='del'>-	  Note that Kconv.to* still imply -X.</div><div class='del'>-</div><div class='del'>-Mon Mar 27 03:17:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): insecure calling should be checked for non</div><div class='del'>-	  NODE_SCOPE method invocations too.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_alias): should preserve the current safe level as</div><div class='del'>-	  well as method definition.</div><div class='del'>-</div><div class='del'>-Fri Mar 24 23:14:30 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (yield_under_i): pass self again for instance_eval().</div><div class='del'>-	  [ruby-dev:28466]</div><div class='del'>-</div><div class='del'>-Fri Mar 24 17:20:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_sleep): remove description about SIGALRM which</div><div class='del'>-	  is not valid on the current implementation.  [ruby-dev:28464]</div><div class='del'>-</div><div class='del'>-Thu Mar 23 10:47:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_missing): should support argument splat in</div><div class='del'>-	  super.  [ruby-talk:185438]</div><div class='del'>-</div><div class='del'>-Mon Mar 20 12:05:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Solaris SunPro compiler -rapth patch from</div><div class='del'>-	  &lt;kuwa at labs.fujitsu.com&gt;.  [ruby-dev:28443]</div><div class='del'>-</div><div class='del'>-Mon Mar 20 09:40:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: remove enable_rpath=no for Solaris.</div><div class='del'>-	  [ruby-dev:28440]</div><div class='del'>-</div><div class='del'>-Fri Mar 17 19:08:49 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: fix typo.</div><div class='del'>-	  [ruby-core:07571]</div><div class='del'>-</div><div class='del'>-Wed Mar 15 16:54:21 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): support libraries without *.so.</div><div class='del'>-</div><div class='del'>-Wed Mar 15 16:35:43 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: should use</div><div class='del'>-	  "rb_str_new(0, 0)" to make empty string.</div><div class='del'>-</div><div class='del'>-Sat Mar 11 14:24:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::wrap): removed</div><div class='del'>-	  space before argument parenthesis.  [ruby-talk:183630]</div><div class='del'>-</div><div class='del'>-	* ruby.1: a clarification patch from David Lutterkort</div><div class='del'>-	  &lt;dlutter at redhat.com&gt;.  [ruby-core:7508]</div><div class='del'>-</div><div class='del'>-Sat Mar  4 15:26:40 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (id2ref): fix symbol test.</div><div class='del'>-</div><div class='del'>-Sat Mar  4 01:08:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems</div><div class='del'>-	  directories.  a patch from Eric Hodel &lt;drbrain at segment7.net&gt;.</div><div class='del'>-	  [ruby-core:07423]</div><div class='del'>-</div><div class='del'>-Thu Mar  2 19:44:18 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c: align VALUE with sizeof(RVALUE) globally.</div><div class='del'>-	  (is_pointer_to_heap): check alignment out of loop.</div><div class='del'>-	  (id2ref): avoid collision between symbols and objects.</div><div class='del'>-	  (rb_obj_id): ditto.  moved from object.c.</div><div class='del'>-	  [ruby-talk:178364] [ruby-core:7305]</div><div class='del'>-</div><div class='del'>-Thu Mar  2 18:58:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_fd_writable): should not re-schedule output</div><div class='del'>-	  from KILLED thread (must be error printing).</div><div class='del'>-</div><div class='del'>-Thu Mar  2 17:57:49 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c: commited magic for reducing RVALUE size on windows. (24-&gt;20byte)</div><div class='del'>-	  [ruby-core:7474]</div><div class='del'>-</div><div class='del'>-Thu Mar  2 12:59:14 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (filetime_to_unixtime): should set tm_isdst to -1.</div><div class='del'>-	  stat() didn't treat daylight saving time property on WinNT.</div><div class='del'>-	  [ruby-talk:182100]</div><div class='del'>-</div><div class='del'>-Thu Mar  2 08:02:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (add_heap): heap_slots may overflow.  a patch from Stefan</div><div class='del'>-	  Weil &lt;weil at mail.berlios.de&gt;.</div><div class='del'>-</div><div class='del'>-Wed Mar  1 00:24:31 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (read_escape): could not handle /\^/.</div><div class='del'>-	  merged Mr. Ishizuka's lib/irb/ruby-lex.rb 's patch rev 1.29.</div><div class='del'>-	  [ruby-talk:181631] [ruby-dev:28404]</div><div class='del'>-</div><div class='del'>-Tue Feb 28 09:32:17 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/extservm.rb (invoke_service_command): cannot invoke command</div><div class='del'>-	  if command name is quoted on mswin32. [ruby-dev:28400]</div><div class='del'>-</div><div class='del'>-Mon Feb 27 00:19:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h (SYM2ID): should not cast to signed long.</div><div class='del'>-	  [ruby-core:07414]</div><div class='del'>-</div><div class='del'>-Fri Feb 24 20:07:23 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb (add_service_command): quote pathnames in the</div><div class='del'>-	  server's command line for space contained directory names.</div><div class='del'>-	  Thanks, arton. [ruby-dev:28386]</div><div class='del'>-</div><div class='del'>-Fri Feb 24 12:11:08 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb: install *.exe.manifest and *.dll.manifest if exist.</div><div class='del'>-	  It's for VC++8.</div><div class='del'>-</div><div class='del'>-Fri Feb 24 11:33:52 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (HAVE_HYPOT): bcc32 has hypot().</div><div class='del'>-</div><div class='del'>-Fri Feb 24 11:19:58 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_new_internal): add prototype to tell the compiler</div><div class='del'>-	  arugments types.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (NtInitialize): need to set a handler for VC++8.</div><div class='del'>-</div><div class='del'>-Fri Feb 24 08:19:16 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test.rb: Removed.  Obsolete by test/nkf.</div><div class='del'>-</div><div class='del'>-	* ext/.document: enabled documents in nkf and kconv</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c ext/nkf/lib/kconv.rb: Add rdoc.</div><div class='del'>-</div><div class='del'>-Thu Feb 23 22:39:59 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal</div><div class='del'>-	  memory manager cannot handle large memory block properly.</div><div class='del'>-	  ex: 10000.times { "" &lt;&lt; "." * 529671; GC.start } # crash</div><div class='del'>-	  [ruby-dev:28230]</div><div class='del'>-</div><div class='del'>-Thu Feb 23 13:20:28 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360]</div><div class='del'>-</div><div class='del'>-Tue Feb 21 02:18:46 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (mingw): have link.  [ruby-list:41838]</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (config.h): ditto.</div><div class='del'>-</div><div class='del'>-Tue Feb 21 02:07:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (f_arglist): should set command_start = Qtrue for</div><div class='del'>-	  command body.  [ruby-talk:180648]</div><div class='del'>-</div><div class='del'>-Mon Feb 20 17:37:26 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: alias RbConfig for Config.</div><div class='del'>-</div><div class='del'>-Mon Feb 20 12:27:53 2006  Kent Sibilev  &lt;ksruby@gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rational.rb (Integer::gcd): small typo fix.</div><div class='del'>-	  [ruby-core:07395]</div><div class='del'>-</div><div class='del'>-Mon Feb 20 01:05:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rational.rb (Integer::gcd): replaced by gcd4 in</div><div class='del'>-	  [ruby-core:07390].  [ruby-core:07377]</div><div class='del'>-</div><div class='del'>-Mon Feb 20 00:57:02 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h (OSSL_Debug): should not use __func__.</div><div class='del'>-	  [ruby-dev:28339]</div><div class='del'>-</div><div class='del'>-Sun Feb 19 04:46:29 2006  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: initial value for block_unique must be 1.</div><div class='del'>-	  [ruby-talk:180420]</div><div class='del'>-</div><div class='del'>-Sat Feb 18 23:58:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tracer.rb (Tracer::Tracer.add_filter): turn on tracer mode</div><div class='del'>-	  only when caller() level size is one.  [ruby-core:07389]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: need not to require "tracer".</div><div class='del'>-	  [ruby-core:07389]</div><div class='del'>-</div><div class='del'>-	* sample/rtags.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Feb 18 12:18:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (FileUtils::fu_world_writable): make it</div><div class='del'>-	  private.  [ruby-core:07383]</div><div class='del'>-</div><div class='del'>-Sat Feb 18 00:22:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tracer.rb: merged a minor clarification patch from Daniel</div><div class='del'>-	  Berger &lt;Daniel.Berger at qwest.com&gt;.  [ruby-core:07376]</div><div class='del'>-</div><div class='del'>-Fri Feb 17 11:18:42 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): Float("1e") should fail. [ruby-core:7330]</div><div class='del'>-</div><div class='del'>-	* pack.c (EXTEND32): unpack("l") did not work where sizeof(long) != 4.</div><div class='del'>-	  [ruby-talk:180024]</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): fixed integer overflow on template "w".</div><div class='del'>-	  [ruby-talk:180126]</div><div class='del'>-</div><div class='del'>-Fri Feb 17 09:39:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_wait_for): sleep should always sleep for</div><div class='del'>-	  specified amount of time.  [ruby-talk:180067]</div><div class='del'>-</div><div class='del'>-Thu Feb 16 01:10:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (backtrace): frame-&gt;orig_func may not be initialized.</div><div class='del'>-	  [ruby-core:07367]</div><div class='del'>-</div><div class='del'>-Wed Feb 15 16:52:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): NODE_OP_ASGN1 should allow splat in its</div><div class='del'>-	  argument list.  [ruby-core:07366]</div><div class='del'>-</div><div class='del'>-	* parse.y (arg): avoid unnecessary extra argument.</div><div class='del'>-	  [ruby-core:07366]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): honor visibility on OP_ASGN1 and</div><div class='del'>-	  OP_ASGN2. [ruby-core:07366]</div><div class='del'>-</div><div class='del'>-Wed Feb 15 10:09:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (yield_under_i): should not pass self as an argument to</div><div class='del'>-	  the block for instance_eval.  [ruby-core:07364]</div><div class='del'>-</div><div class='del'>-Wed Feb 15 09:20:35 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_obj_instance_eval): should be no singleton classes for</div><div class='del'>-	  true, false, and nil.  [ruby-dev:28186]</div><div class='del'>-</div><div class='del'>-Tue Feb 14 18:48:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (DMETHOD_P): accessing wrong frame.  [ruby-dev:28181]</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): preserve FRAME_DMETH flag.</div><div class='del'>-</div><div class='del'>-Tue Feb 14 15:13:51 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c: supress warning on test/zlib. [ruby-dev:28323]</div><div class='del'>-</div><div class='del'>-Tue Feb 14 14:01:17 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (search_time_t): support non 32bit time_t environments.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (config.h): VC++8 has ``long long'' type.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (config.h): VC++8's time_t is 64bit value.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_utime): drop read-only attribute before</div><div class='del'>-	  changing file time.</div><div class='del'>-</div><div class='del'>-	  all changes are backported from CVS HEAD.</div><div class='del'>-</div><div class='del'>-Tue Feb 14 11:21:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_forward): should not use frame-&gt;argv.</div><div class='del'>-	  [ruby-core:07358]</div><div class='del'>-</div><div class='del'>-Mon Feb 13 18:08:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): argument update propagation.  [ruby-dev:28044]</div><div class='del'>-</div><div class='del'>-	* env.h: remove argv member from struct FRAME.</div><div class='del'>-</div><div class='del'>-Mon Feb 13 13:27:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): should push class from binding if supplied.</div><div class='del'>-	  [ruby-core:07347]</div><div class='del'>-</div><div class='del'>-Mon Feb 13 00:04:00 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/erb.rb (ERB::Compiler): add instance variable @insert_cmd to</div><div class='del'>-	  change &lt;%='s behavior. (backported 1.15 - 1.16)</div><div class='del'>-</div><div class='del'>-Sat Feb 11 02:04:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): no need to push ruby_class.  [ruby-dev:28176]</div><div class='del'>-</div><div class='del'>-Sat Feb 11 01:57:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_autoload): check if ruby_cbase is nil (during</div><div class='del'>-	  instance_eval for objects cannot have singleton classes,</div><div class='del'>-	  e.g. fixnums and symbols).  [ruby-dev:28178]</div><div class='del'>-</div><div class='del'>-Tue Feb  7 23:03:24 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c: should not access ruby objects in finalizer.</div><div class='del'>-	  [ruby-dev:28286]</div><div class='del'>-</div><div class='del'>-Mon Feb  6 16:02:51 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_thread_flock): ERROR_NOT_LOCKED is not an error on Cygwin.</div><div class='del'>-	  In such situation, flock() should return 0.</div><div class='del'>-</div><div class='del'>-Mon Feb  6 00:41:08 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h (RSTRUCT_LEN, RSTRUCT_PTR): defined for source level</div><div class='del'>-	  compatibility with ruby 1.9.</div><div class='del'>-</div><div class='del'>-Sun Feb  5 21:05:34 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_to_s): removed workaround for radix 2. Historically,</div><div class='del'>-	  rb_fix2str could only handle radix 8, 10, 16. (Rev1.37) But for now,</div><div class='del'>-	  it can handle radix 2..36. [ruby-Bugs#3438] [ruby-core:7300]</div><div class='del'>-</div><div class='del'>-Sun Feb  5 18:55:08 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: imported from trunk, rev 1.129</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (add_field, get_fields): keep 1.8.2 backward</div><div class='del'>-	  compatibility.</div><div class='del'>-</div><div class='del'>-	* lib/net/https.rb: imported from trunk, rev 1.3.</div><div class='del'>-</div><div class='del'>-	* lib/net/https.rb: #use_ssl? definition moved from net/http.rb.</div><div class='del'>-</div><div class='del'>-Sun Feb  5 14:22:15 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb: should return default value if name is not found.</div><div class='del'>-	  [ruby-core:7304]</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb: should raise PStore::Error if not in transaction.</div><div class='del'>-</div><div class='del'>-Sat Feb  4 22:51:43 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: apply the FreeBSD getcontext/setcontext workaround</div><div class='del'>-	  only before FreeBSD 7-CURRENT.</div><div class='del'>-</div><div class='del'>-Sat Feb  4 21:19:23 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (LK_ERR): ERROR_NOT_LOCKED is not an error.</div><div class='del'>-	  In such situation, flock() should return 0.</div><div class='del'>-</div><div class='del'>-Sat Feb  4 15:56:37 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_to_s): (2**32).to_s(2) fails with exception where</div><div class='del'>-	  sizeof(int) == 4 &lt; sizeof(long). [ruby-core:7300]</div><div class='del'>-</div><div class='del'>-Fri Feb  3 15:06:50 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c (syck_move_tokens): should reset p-&gt;cursor or etc</div><div class='del'>-	  even if skip == 0. This causes buffer overrun.</div><div class='del'>-	  (ex: YAML.load('--- "..' + '\x82\xA0' * 511 + '"'))</div><div class='del'>-</div><div class='del'>-Thu Feb  2 23:51:18 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_emitter_write): should not set '\0' on</div><div class='del'>-	  emitter's marker. if marker points to the end of buffer, this causes</div><div class='del'>-	  buffer overrun. (ex: YAML.dump("." * 12288))</div><div class='del'>-</div><div class='del'>-Thu Feb  2 16:01:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): need not to protect $SAFE value.</div><div class='del'>-	  [ruby-core:07177]</div><div class='del'>-</div><div class='del'>-Thu Feb  2 14:45:53 2006  Ville Mattila  &lt;ville.mattila@stonesoft.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: The isinf is not regognized by autoconf</div><div class='del'>-	  library guesser on solaris 10. [ruby-core:7138]</div><div class='del'>-</div><div class='del'>-Wed Feb  1 22:01:47 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)</div><div class='del'>-	  where they are supported. modifing environ variable seems to</div><div class='del'>-	  segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]</div><div class='del'>-</div><div class='del'>-	* ruby.c (set_arg0): if use setenv(3), environ space cannot be used</div><div class='del'>-	  for altering argv[0].</div><div class='del'>-</div><div class='del'>-Tue Jan 31 14:46:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (rb_struct_select): update RDoc description.</div><div class='del'>-	  [ruby-core:7254]</div><div class='del'>-</div><div class='del'>-Tue Jan 31 11:58:51 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add MultiTkIp#eval and bg_eval.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: TkNamespace#eval was enbugged at the</div><div class='del'>-	  last commit. Now it will return a proper object.</div><div class='del'>-</div><div class='del'>-Tue Jan 31 00:10:26 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.</div><div class='del'>-	  ex: ruby -ryaml -e 'YAML.load("!map:B {}")' [ruby-core:7217]</div><div class='del'>-</div><div class='del'>-Sat Jan 28 07:56:57 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb: support "a:0:33" style caller[-1]. In this case</div><div class='del'>-	  file name is "a:0". I don't know this really happens though...</div><div class='del'>-	  [ruby-Bugs:3344]</div><div class='del'>-</div><div class='del'>-Wed Jan 25 22:29:04 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use</div><div class='del'>-	  system routine if provided.  fixed: [ruby-core:07195]</div><div class='del'>-</div><div class='del'>-Sun Jan 22 23:27:13 2006  Go Noguchi  &lt;gonoguti@yahoo.co.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (process_args): ignore arguments after</div><div class='del'>-	  '--' so that test scripts can handle them.  fixed: [ruby-dev:28258]</div><div class='del'>-</div><div class='del'>-Sun Jan 22 22:09:52 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (POST_GETCONTEXT): define separately from PRE_GETCONTEXT on</div><div class='del'>-	  IA64 to avoid reusing variable address.</div><div class='del'>-</div><div class='del'>-Sun Jan 22 20:03:35 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_setjmp): define PRE_GETCONTEXT and POST_GETCONTEXT</div><div class='del'>-	  instead of FUNCTION_CALL_MAY_RETURN_TWICE.</div><div class='del'>-	  define PRE_GETCONTEXT to clear carry flag for workaround of</div><div class='del'>-	  FreeBSD/i386 getcontext/setcontext bug.</div><div class='del'>-	  [ruby-dev:28263]</div><div class='del'>-</div><div class='del'>-Sat Jan 21 00:36:47 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): use only on SPARC and IA64</div><div class='del'>-	  before gcc 4.0.3.</div><div class='del'>-	  [ruby-dev:28247]</div><div class='del'>-</div><div class='del'>-Thu Jan 19 22:21:23 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mv): should remove file after copying.</div><div class='del'>-	  [ruby-dev:28223]</div><div class='del'>-</div><div class='del'>-Wed Jan 18 23:37:06 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): don't clobber %l7 of SPARC</div><div class='del'>-	  if enable-shared.</div><div class='del'>-	  (ruby_setjmp): call FUNCTION_CALL_MAY_RETURN_TWICE after getcontext</div><div class='del'>-	  too.</div><div class='del'>-	  reported by Pav Lucistnik and Marius Strobl.</div><div class='del'>-	  http://lists.freebsd.org/pipermail/freebsd-sparc64/2006-January/003739.html</div><div class='del'>-</div><div class='del'>-Tue Jan 17 11:32:46 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/setup.mak (MAKE): workaround for nmake 8.</div><div class='del'>-</div><div class='del'>-Tue Jan 17 11:10:21 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/{Makefile.sub,setup.mak}: invoke .bat via shell. workaround</div><div class='del'>-	  for nmake 8.</div><div class='del'>-</div><div class='del'>-Mon Jan 16 10:26:23 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_emit_seq, syck_emit_map, syck_emit_item):</div><div class='del'>-	  should output complex key mark even if map's key is empty seq/map.</div><div class='del'>-	  [ruby-core:7129]</div><div class='del'>-</div><div class='del'>-Sat Jan 14 05:37:06 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (READ_DATA_PENDING, READ_DATA_PENDING_COUNT): defined</div><div class='del'>-	  for DragonFly BSD 1.4.0.</div><div class='del'>-</div><div class='del'>-Sat Jan 14 03:43:24 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_chmod): avoid warning where sizeof(int) !=</div><div class='del'>-	  sizeof(void*).</div><div class='del'>-</div><div class='del'>-Fri Jan 13 19:14:56 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/diagram.rb:</div><div class='del'>-	    - properly quote bare element attributes</div><div class='del'>-	    - terminates dangling elements (e.g. &lt;img&gt;, &lt;br&gt;, &lt;link&gt;, etc)</div><div class='del'>-	    - converts "CVS" to the more HTML-friendly acronym element</div><div class='del'>-	    - adds missing type attributes to style elements</div><div class='del'>-</div><div class='del'>-	  based on Paul Duncan's patch &lt;pabs@pablotron.org&gt; [ruby-core:7028]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: ditto.</div><div class='del'>-	* lib/rdoc/generators/template/html/hefss.rb: ditto.</div><div class='del'>-	* lib/rdoc/generators/template/html/html.rb: ditto.</div><div class='del'>-	* lib/rdoc/generators/template/html/kilmer.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Jan 12 11:53:08 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkballoonhelp.rb: [bug fix] couldn't add to a widget</div><div class='del'>-	  which is constructed with TkComposite module.</div><div class='del'>-	  [new feature] support 'command' option which is called just before</div><div class='del'>-	  popping up the balloon help.</div><div class='del'>-</div><div class='del'>-Wed Jan 11 15:00:00 2006  Ville Mattila  &lt;mulperi@iki.fi&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (READ_PENDING*): Support solaris 64-bit environments.</div><div class='del'>-	  Solaris defines a opaque FILE struct when compiling 64 bit</div><div class='del'>-	  binaries. This means that we dont have access to _ptr etc.</div><div class='del'>-	  members anymore. The solution by Steven Lumos is to define</div><div class='del'>-	  FILE64 that has needed members available. I've modified</div><div class='del'>-	  the origanal patch a bit so that it compiles both with gcc</div><div class='del'>-	  and now free sun studio 11 compiler and both amd64 and sparc.</div><div class='del'>-	  NOTE! We have to 64 bit solaris FILE structure time to time</div><div class='del'>-	  otherwise we'll get breakage.</div><div class='del'>-	  [ruby-core:7106]</div><div class='del'>-</div><div class='del'>-Tue Jan 10 19:42:33 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (garbage_collect): mark ruby_current_node.</div><div class='del'>-	  if an exception is raised in a finalizer called written in C by</div><div class='del'>-	  rb_gc_call_finalizer_at_exit, ruby_set_current_source may use</div><div class='del'>-	  collected ruby_current_node and mark_source_filename may corrupt</div><div class='del'>-	  memory.</div><div class='del'>-</div><div class='del'>-Tue Jan 10 13:30:34 2006  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_resolver_transfer): should be able to load</div><div class='del'>-	  !ruby/object:Bignum syntax 1.8.3 dumped. [ruby-core:6159]</div><div class='del'>-</div><div class='del'>-Tue Jan 10 12:47:41 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Fixnum): Bignum could not be loaded in</div><div class='del'>-	  ruby 1.8.3/1.8.4. [ruby-core:6115]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Numeric): Subclass of Numeric could not</div><div class='del'>-	  be dumped properly. [ruby-core:7047]</div><div class='del'>-</div><div class='del'>-Tue Jan 10 12:00:48 2006  Aaron Schrab  &lt;aaron @nospam@ schrab.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted</div><div class='del'>-	  Symbols broken. [ruby-Bugs:2535]</div><div class='del'>-</div><div class='del'>-Mon Jan  9 19:54:35 2006  arton  &lt;artonx@yahoo.co.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/extconf.rb: zlib compiled DLL version 1.2.3 distributed by</div><div class='del'>-	  http://www.zlib.net/ has zdll.lib. [ruby-dev:28209]</div><div class='del'>-</div><div class='del'>-Mon Jan  9 14:17:12 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (OPTFLAGS): I have experienced trouble on y- flag,</div><div class='del'>-	  (VisualC++6) so use -O2b2xg- if  $(MSC_VER) &lt; 1400. [ruby-core:7040]</div><div class='del'>-</div><div class='del'>-Mon Jan  9 14:17:12 2006  Kero van Gelder  &lt;rubyforge @nospam@ kero.tmfweb.nl&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075]</div><div class='del'>-</div><div class='del'>-Sat Jan  7 15:40:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (singleton): get rid of segfault on syntax error.</div><div class='del'>-	  fixed: [ruby-core:07070]</div><div class='del'>-</div><div class='del'>-Fri Jan  6 10:16:20 2006  Steven Lumos  &lt;steven@lumos.us&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (READ_DATA_PENDING): defined for 64bit Solaris on SPARC.</div><div class='del'>-	  [ruby-core:7057]</div><div class='del'>-	  (READ_DATA_PENDING_COUNT): ditto.</div><div class='del'>-	  (READ_DATA_PENDING_PTR): ditto.</div><div class='del'>-</div><div class='del'>-Sun Jan  1 17:07:59 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_seekdir): should not segfault even if passed</div><div class='del'>-	  the location which rb_w32_telldir didn't return. [ruby-core:7035]</div><div class='del'>-	  (I think HEAD implementation is better. but binary compatibility)</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_dir.rb: added.</div><div class='del'>-</div><div class='del'>-Sat Dec 31 22:57:00 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_save_context): should not recycle scope object used</div><div class='del'>-	  in a thread.  fixed: [ruby-dev:28177]</div><div class='del'>-</div><div class='del'>-Fri Dec 30 18:22:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (garbage_collect): mark objects refered from aborting threads.</div><div class='del'>-	  [ruby-dev:28190]</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub: VC++8 support.</div><div class='del'>-</div><div class='del'>-Fri Dec 30 14:24:53 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): do not use TRUE for djgpp.</div><div class='del'>-</div><div class='del'>-Fri Dec 30 04:54:40 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (eaccess): workaround for VC++8 runtime.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (ioinfo): VC++8 support.</div><div class='del'>-</div><div class='del'>-Thu Dec 29 23:59:37 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_gc_mark_threads): leave unmarked threads which won't wake</div><div class='del'>-	  up alone, and mark threads in the loading table.  [ruby-dev:28154]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked</div><div class='del'>-	  threads.  [ruby-dev:28172]</div><div class='del'>-</div><div class='del'>-Thu Dec 29 17:02:07 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/envutil.rb (EnvUtil.rubybin): search "ruby" instead of</div><div class='del'>-	  "miniruby".  [ruby-dev:28140]</div><div class='del'>-</div><div class='del'>-Tue Dec 27 16:59:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb (DRbService::self.ext_service): increase</div><div class='del'>-	  timeout limit.  a patch from Kazuhiro NISHIYAMA</div><div class='del'>-	  &lt;zn at mbf.nifty.com&gt;. [ruby-dev:28132]</div><div class='del'>-</div><div class='del'>-Tue Dec 27 08:29:18 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket#post_connection_chech):</div><div class='del'>-	  treat wildcard character in commonName. [ruby-dev:28121]</div><div class='del'>-</div><div class='del'>-Mon Dec 26 22:32:47 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval), gc.c (gc_mark_children), node.h (NEW_ALIAS,</div><div class='del'>-	  NEW_VALIAS), parse.y (fitem): allow dynamic symbols to</div><div class='del'>-	  NODE_UNDEF and NODE_ALIAS.</div><div class='del'>-	  backported from trunk.  fixed: [ruby-dev:28105]</div><div class='del'>-</div><div class='del'>-Mon Dec 26 08:50:36 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ev_const_get): fixed a bug in constant reference during</div><div class='del'>-	  instance_eval.  [yarv-dev:707]</div><div class='del'>-</div><div class='del'>-	* eval.c (ev_const_defined): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb (YAML::add_domain_type): typo fixed.  a patch from</div><div class='del'>-	  Joel VanderWerf &lt;vjoel at path.berkeley.edu&gt;.</div><div class='del'>-	  [ruby-talk:165285] [ruby-core:6995]</div><div class='del'>-</div><div class='del'>-Sat Dec 24 18:58:14 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.4 released.</div><div class='del'>-</div><div class='del'>-Fri Dec 23 10:30:23 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/sha2/sha2.c (ULL): support AIX C.  a patch from</div><div class='del'>-	  Kailden &lt;kailden at gmail.com&gt;.  [ruby-core:06984]</div><div class='del'>-</div><div class='del'>-Wed Dec 21 16:53:06 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (w32_io_info): should return handle because FileIndex is</div><div class='del'>-	  valid only while file is open. [ruby-dev:28088]</div><div class='del'>-</div><div class='del'>-Wed Dec 21 14:53:26 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (test_kernel_open): use File.identical?.</div><div class='del'>-	  [ruby-talk:171804]</div><div class='del'>-</div><div class='del'>-Tue Dec 20 22:41:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval_under_i): evaluate source in caller's frame.</div><div class='del'>-	  [ruby-dev:28076]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call_super): use original method name on exception.</div><div class='del'>-	  [ruby-dev:28078]</div><div class='del'>-</div><div class='del'>-Tue Dec 20 13:11:59 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: fixed GC problem (backported HEAD 1.55 - 1.62)</div><div class='del'>-	  [ruby-dev:27839]</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is</div><div class='del'>-	  NULL or not before S_FREE.</div><div class='del'>-</div><div class='del'>-	* st.c: uses malloc instead of xmalloc to avoid GC. syck uses st_insert</div><div class='del'>-	  in gram.c to insert node from rb_syck_bad_anchor_handler into</div><div class='del'>-	  SyckParser's hash table. if GC occurs in st_insert, it's not under</div><div class='del'>-	  SyckParser's mark system yet. so RString can be released wrongly.</div><div class='del'>-	  [ruby-dev:28057]</div><div class='del'>-</div><div class='del'>-Tue Dec 20 12:53:23 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility</div><div class='del'>-	  with previous Ruby versions, documents are no longer headless.</div><div class='del'>-</div><div class='del'>-Tue Dec 20 01:46:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_backquote): fix a GC problem on</div><div class='del'>-	  IA64 with gcc 4.0.3 20051216 (prerelease) -O3.</div><div class='del'>-</div><div class='del'>-Mon Dec 19 23:32:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (rb_symname_p): fixed wrong validation.  [ruby-dev:28047]</div><div class='del'>-</div><div class='del'>-Sat Dec 17 03:57:01 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_rshift): fix a GC problem on</div><div class='del'>-	  IA64 with gcc 4.0.3 20051216 (prerelease).</div><div class='del'>-</div><div class='del'>-Sat Dec 17 03:30:23 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (bmcall): fix a GC problem by tail call on</div><div class='del'>-	  IA64 with gcc 4.0.3 20051216 (prerelease).</div><div class='del'>-</div><div class='del'>-Fri Dec 16 00:54:06 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (Init_signal): revert C++ style comment.</div><div class='del'>-	  [ruby-dev:28041]</div><div class='del'>-</div><div class='del'>-Thu Dec 15 12:35:14 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tmpdir.rb: merged RDoc patch from Eric Hodel &lt;drbrain at</div><div class='del'>-	  segment7.net&gt;.  [ruby-core:06894]</div><div class='del'>-</div><div class='del'>-Thu Dec 15 01:33:31 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on</div><div class='del'>-	  x86_64 with gcc 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)</div><div class='del'>-</div><div class='del'>-Wed Dec 14 12:11:46 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/gdbm/test_gdbm.rb: specify pid for the argument of</div><div class='del'>-	  Process.wait.  workaround for Cygwin.</div><div class='del'>-</div><div class='del'>-Wed Dec 14 12:01:26 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0): fix a GC problem for reading a bignum on</div><div class='del'>-	  IA64 with gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='del'>-</div><div class='del'>-Tue Dec 13 12:23:47 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_regcomp): fix a GC problem on x86_64 with</div><div class='del'>-	  gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='del'>-</div><div class='del'>-Tue Dec 13 01:44:16 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_diff): fix a GC problem on IA64 with</div><div class='del'>-	  gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='del'>-	  When rb_ary_push is called, there was no register which contains</div><div class='del'>-	  `hash' but `&amp;RHASH(hash)-&gt;tbl' instead.</div><div class='del'>-</div><div class='del'>-Tue Dec 13 00:08:09 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_str_format): fix a GC problem.</div><div class='del'>-	  [ruby-dev:28001]</div><div class='del'>-</div><div class='del'>-Mon Dec 12 15:54:56 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_ssl.rb (test_parallel): call GC.start to close</div><div class='del'>-	  unused files. [ruby-dev:27981]</div><div class='del'>-</div><div class='del'>-Mon Dec 12 00:33:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (rb_digest_base_s_digest): add volatile to</div><div class='del'>-	  protect temporary context object.  [ruby-dev:27979]</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should</div><div class='del'>-	  be called before actual variable initialization.</div><div class='del'>-	  [ruby-dev:27986]</div><div class='del'>-</div><div class='del'>-Fri Dec  9 23:31:02 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encoding.rb (encoding=): give priority to particular</div><div class='del'>-	  conversion to iconv.  [ruby-core:06520]</div><div class='del'>-</div><div class='del'>-Thu Dec  8 02:07:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (umethod_bind): adjust invoking class for module method.</div><div class='del'>-	  [ruby-dev:27964]</div><div class='del'>-</div><div class='del'>-Thu Dec  8 00:40:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (call_trace_func): klass parameter should be a</div><div class='del'>-	  class/module that defines calling method.  [ruby-talk:169307]</div><div class='del'>-</div><div class='del'>-Wed Dec  7 17:10:27 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): [ruby-dev:27967]</div><div class='del'>-</div><div class='del'>-Wed Dec  7 15:31:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_str_format): integer overflow check added.</div><div class='del'>-</div><div class='del'>-	* sprintf.c (GETASTER): ditto.</div><div class='del'>-</div><div class='del'>-Wed Dec  7 01:02:04 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/README.macosx-aqua: [new document] tips to avoid the known</div><div class='del'>-	  bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: fix bug on switching threads and waiting on the</div><div class='del'>-	  deleted interpreter on vwait and tkwait command.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk</div><div class='del'>-	  interpreter.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/image3.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/menu8x.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/menu.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec  6 16:37:57 2005  Yuya Nishida  &lt;yuya@j96.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (exec_under): avoid accessing ruby_frame-&gt;prev.</div><div class='del'>-	  [ruby-dev:27948]</div><div class='del'>-</div><div class='del'>-Thu Dec  1 00:50:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_funcall2): allow to call protected methods.</div><div class='del'>-	  fixed: [ruby-dev:27890]</div><div class='del'>-</div><div class='del'>-Wed Nov 30 23:52:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (NEWHEAP, ADD2HEAP): set count after pointer was set.</div><div class='del'>-	  fixed: [ruby-dev:27896]</div><div class='del'>-</div><div class='del'>-Wed Nov 30 13:43:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-expr-beg): support $! at the end of</div><div class='del'>-	  expression.   [ruby-dev:27868]</div><div class='del'>-</div><div class='del'>-Mon Nov 28 18:55:43 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (init_inetsock_internal): remove setting</div><div class='del'>-	  SO_REUSEADDR option on server socket on Cygwin.</div><div class='del'>-	  fixed: [ruby-core:6765] ([ ruby-Bugs-2872 ])</div><div class='del'>-</div><div class='del'>-Mon Nov 28 13:08:54 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_strerror): remove all CR and LF. (avoid broken</div><div class='del'>-	  error message on bccwin32 + winsock)</div><div class='del'>-</div><div class='del'>-Mon Nov 28 09:21:49 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): should not change sodir with</div><div class='del'>-	  dir.gsub!. (bccwin32 failed to install third party exntesions)</div><div class='del'>-	  [ruby-dev:27834]</div><div class='del'>-</div><div class='del'>-Sun Nov 27 00:56:13 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/xmlSchema/complexContent.rb: missing</div><div class='del'>-	  ComplexContent#elementformdefault method.</div><div class='del'>-</div><div class='del'>-Sat Nov 26 19:57:45 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c (conv_to_posix_path): should initialize posix.</div><div class='del'>-</div><div class='del'>-Thu Nov 24 21:05:58 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_CHECK_FUNCS): need to check link().</div><div class='del'>-	  fixed: [ruby-dev:27814]</div><div class='del'>-</div><div class='del'>-Thu Nov 24 01:22:25 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (w32_io_info): CreateFile failed on Win9x if file was already</div><div class='del'>-	  opened. (FILE_SHARE_READ was needed, but actually I don't understand</div><div class='del'>-	  the flags of CreateFile well...)</div><div class='del'>-</div><div class='del'>-Wed Nov 23 20:59:01 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get</div><div class='del'>-	  [Tk8.5 feature].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: supports new indices modifires on a Text</div><div class='del'>-	  widget [Tk8.5 feature].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/autoload.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5</div><div class='del'>-	  feature].</div><div class='del'>-</div><div class='del'>-Wed Nov 23 18:55:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (w32_io_info): should not call GetFileInformationByHandle</div><div class='del'>-	  for pipe.</div><div class='del'>-</div><div class='del'>-	* file.c (w32_io_info): checks return value from rb_w32_get_osfhandle.</div><div class='del'>-</div><div class='del'>-	* file.c (w32_io_info): now can identify directory on WinNT.</div><div class='del'>-</div><div class='del'>-Wed Nov 23 03:40:49 2005  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (KR_REHASH): should cast to unsigned for 64bit CPU.</div><div class='del'>-	  [ruby-core:06721]</div><div class='del'>-</div><div class='del'>-Wed Nov 23 11:01:33 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h, file.c: failed to compile on windows.</div><div class='del'>-</div><div class='del'>-Wed Nov 23 07:26:44 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use</div><div class='del'>-	  OPENSSL_malloc to allocate X509V3_CTX.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use</div><div class='del'>-	  X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which</div><div class='del'>-	  values are placed in separate section).</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_x509ext.rb: new file.</div><div class='del'>-</div><div class='del'>-Wed Nov 23 01:22:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (test_identical): test if two files are identical.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_f_test): support DOSISH systems where st_ino is not</div><div class='del'>-	  reliable.  fixed: [ruby-core:06672]</div><div class='del'>-</div><div class='del'>-	* win32.h, win32.c (rb_w32_osid): check the running platform.</div><div class='del'>-</div><div class='del'>-Tue Nov 22 23:52:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb: match incomplete (in current enconding) multibyte</div><div class='del'>-	  string.  http://inamode6.tokuhirom.dnsalias.org/show/1551</div><div class='del'>-</div><div class='del'>-Tue Nov 22 18:36:11 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (winnt_stat): set mapped errno instead of ENOENT.</div><div class='del'>-</div><div class='del'>-Tue Nov 22 14:46:57 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_basename): skip slashes just after UNC top slashes.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_path.rb (test_dirname, test_basename): follow new</div><div class='del'>-	  spec. and add new tests.</div><div class='del'>-</div><div class='del'>-Tue Nov 22 13:18:32 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_stat): Dir.chdir('//server/shared');</div><div class='del'>-	  p Dir.glob('*') should work on WinNT. (implemented our own</div><div class='del'>-	  stat(2) on WinNT) [ruby-list:41552] [ruby-dev:27711]</div><div class='del'>-</div><div class='del'>-Tue Nov 22 02:31:53 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile.rb: bug fix (Tk::Tile::USE_TTK_NAMESPACE</div><div class='del'>-	  is not defined).</div><div class='del'>-</div><div class='del'>-Tue Nov 22 01:45:21 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_basename): DOSISH_UNC is defined on cygwin but</div><div class='del'>-	  DOSISH is not.  fixed: [ruby-dev:27797]</div><div class='del'>-</div><div class='del'>-Mon Nov 21 22:50:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_path_skip_prefix, rb_file_s_basename): UNC without path</div><div class='del'>-	  should not be splitted.  fixed: [ruby-dev:27776] [ruby-dev:27786]</div><div class='del'>-</div><div class='del'>-	* parse.y (dsym): prohibit empty symbol literal by interpolation.</div><div class='del'>-	  fixed: [ruby-talk:166529]</div><div class='del'>-</div><div class='del'>-Mon Nov 21 16:03:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/setup.mk: findstr doesn't exist on win9x.</div><div class='del'>-	  fixed: [ruby-dev:27756]</div><div class='del'>-</div><div class='del'>-Sun Nov 20 22:34:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (rb_symname_p): [ not followed by ] is not valid symbol.</div><div class='del'>-	  fixed: [ruby-talk:166520]</div><div class='del'>-</div><div class='del'>-Sat Nov 19 19:57:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (FileUtils::ln): ln documentation fix.</div><div class='del'>-	  [ruby-core:06661]</div><div class='del'>-</div><div class='del'>-Sat Nov 19 07:34:32 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: remove dependency on Ruby's version (1.8</div><div class='del'>-	  or 1.9).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/ICONS/icons.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Nov 18 17:57:08 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_dirname): should use skipprefix for UNC path.</div><div class='del'>-	  pointed out by nobu ([ruby-dev:27744]). fixed: [ruby-core:5076]</div><div class='del'>-</div><div class='del'>-Fri Nov 18 17:35:09 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add restriction to access the entried</div><div class='del'>-	  command table and manipulate other IPs (for reason of security).</div><div class='del'>-	  Now, a IP object can be controlled by only its master IP or the</div><div class='del'>-	  default IP.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: add restriction to manipulate.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c (ip_is_slave_of_p): add TclTkIp#slave_of?(ip)</div><div class='del'>-	  to check manipulability.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix on handling of Tcl's namespaces.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Nov 18 17:26:06 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_dirname): added checks for some patterns with drive</div><div class='del'>-	  letter. fixed: [ruby-dev:27738]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_path.rb (test_dirname): added tests for above</div><div class='del'>-	  patterns.</div><div class='del'>-</div><div class='del'>-Fri Nov 18 12:18:02 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h (S_IFIFO): r,w = IO.pipe; r.stat.pipe? now</div><div class='del'>-	  returns true on VisualC++6.</div><div class='del'>-</div><div class='del'>-Wed Nov 16 23:24:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (static-ruby): overridable.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (parse_args): force to link extensions statically only</div><div class='del'>-	  if static is given for extstatic.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (RUBY, RUBYW): overridable.</div><div class='del'>-</div><div class='del'>-Tue Nov 15 23:46:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/find.rb (Find::find): should not ignore symbolic links to</div><div class='del'>-	  non-existing files.  [ruby-talk:165866]</div><div class='del'>-</div><div class='del'>-Tue Nov 15 16:23:26 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): previous commit disabled this usage:</div><div class='del'>-</div><div class='del'>-	    a = [0,1,2,3,4,5,6,7,8,9]</div><div class='del'>-	    a.fill {|i| a[i] * 10} #=&gt; [nil, nil, ...., nil]</div><div class='del'>-</div><div class='del'>-	  previous commit has the advantage of early garbage collection, but</div><div class='del'>-	  potensially this would break some script. so I reverted behavior.</div><div class='del'>-</div><div class='del'>-Tue Nov 15 16:04:10 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): tail elements were vanished when the middle</div><div class='del'>-	  part of array was filled. (ie: [0,1,2,3,4].fill(-1,2,1) =&gt; [0,1,-1])</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_array.rb (test_fill): added.</div><div class='del'>-</div><div class='del'>-Tue Nov 15 14:39:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): should adjust array length correctly when</div><div class='del'>-	  an array is expanded in the fill process.  [ruby-core:06625]</div><div class='del'>-</div><div class='del'>-Mon Nov 14 23:49:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_readlink): ERANGE will occur only on GPFS.</div><div class='del'>-	  [ruby-dev:27699]</div><div class='del'>-</div><div class='del'>-Mon Nov 14 17:36:22 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_first): RDoc update from Daniel Berger</div><div class='del'>-	  &lt;djberg96@yahoo.com&gt;.  [ruby-core:06577].</div><div class='del'>-</div><div class='del'>-Fri Nov 11 10:31:44 2005  Zach Dennis  &lt;zdennis@mktec.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: Socket Documentation. [ruby-core:6552]</div><div class='del'>-</div><div class='del'>-Fri Nov 11 08:20:56 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (OUTFLAG): keep trailing spaces.  [ruby-dev:27666]</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: substitution refereces added.</div><div class='del'>-</div><div class='del'>-Fri Nov 11 07:44:18 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: undef HAVE_LINK on BeOS. (link(2) always returns</div><div class='del'>-	  EINVAL, and this causes error in test/fileutils.)</div><div class='del'>-</div><div class='del'>-	* file.c: overwride chown(2) and fchown(2) on BeOS. (these functions</div><div class='del'>-	  should not change user/group id if -1 is passed as corresponding</div><div class='del'>-	  argument, and this causes error in test/fileutils too)</div><div class='del'>-	  [ruby-dev:27672]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_link): checks HAVE_LINK.</div><div class='del'>-</div><div class='del'>-Tue Nov  8 15:32:27 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/ssl.rb (DRb::SSLConfig#accept): fixed typo.</div><div class='del'>-	  [ruby-dev:27560] [ruby-core:4627]</div><div class='del'>-</div><div class='del'>-Mon Nov  7 13:43:51 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/stubs.c (_nativethread_consistency_check): use simpler</div><div class='del'>-	  (low cost) way to check whether the Tcl interpreter was compiled</div><div class='del'>-	  with threads enabled of not.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: reduce warnings.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil/tkutil.c: ditto.</div><div class='del'>-</div><div class='del'>-Mon Nov  7 00:06:58 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: removed :nodoc: to generate Kernel doc. [ruby-core:6324]</div><div class='del'>-</div><div class='del'>-Sun Nov  6 23:39:13 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (Iconv::BrokenLibrary): exception when detected a</div><div class='del'>-	  bug of underlying library.</div><div class='del'>-</div><div class='del'>-Sun Nov  6 21:46:59 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/stubs.c (ruby_tcl_create_ip_and_stubs_init): should touch</div><div class='del'>-	  interpreter after initialization is done. [ruby-dev:27638]</div><div class='del'>-</div><div class='del'>-Sun Nov  6 20:13:27 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_readlink): readlink(2) on AIX fails with ERANGE if</div><div class='del'>-	  buffer size is less than required.  fixed: [ruby-dev:27634]</div><div class='del'>-</div><div class='del'>-Wed Nov  2 20:25:28 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/extconf.rb: ext/tk/extconf.rb: change the check parameter</div><div class='del'>-	  for Win32.</div><div class='del'>-</div><div class='del'>-Wed Nov  2 20:14:53 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib: merge into ext/tk and remove.</div><div class='del'>-</div><div class='del'>-Wed Nov  2 19:03:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_rbUpdateObjCmd,</div><div class='del'>-	  ip_rb_threadUpdateObjCmd): passed improper flags to DoOneEvent().</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: use rb_obj_respond_to() instead of rb_respond_to().</div><div class='del'>-</div><div class='del'>-Tue Nov  1 14:20:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call_super): should call method_missing if super is</div><div class='del'>-	  called from Kernel method.</div><div class='del'>-</div><div class='del'>-	* eval.c (exec_under): frame during eval should preserve external</div><div class='del'>-	  information.</div><div class='del'>-</div><div class='del'>-Tue Nov  1 10:50:17 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: should check ERR_peek_last_error().</div><div class='del'>-	  [ruby-dev:27597]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_raise): ditto.</div><div class='del'>-</div><div class='del'>-Mon Oct 31 17:34:46 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: use proper option for Sun linker. A patch from</div><div class='del'>-	  Shinya Kuwamura &lt;kuwa at labs.fujitsu.com&gt;.  [ruby-dev:27603]</div><div class='del'>-</div><div class='del'>-Mon Oct 31 11:27:22 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb (test_s_open_error):</div><div class='del'>-	  skip on Win32/DOS platforms.</div><div class='del'>-</div><div class='del'>-Mon Oct 31 05:49:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must</div><div class='del'>-	  not be empty. [ruby-talk:161220]</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_cipher.rb: add test for Cipher#update("").</div><div class='del'>-</div><div class='del'>-Mon Oct 31 05:37:20 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgihandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::CGIHandler#do_GET): the value of Set-Cookie:</div><div class='del'>-	  header field should be splited into each cookie.  [ruby-Bugs:2199]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookie): new method</div><div class='del'>-	  to parse the value of Set-Cookie: header field.</div><div class='del'>-</div><div class='del'>-	* test/webrick/test_cookie.rb, test/webrick/test_cgi.rb,</div><div class='del'>-	  test/webrick/webrick.cgi: add some test for cookie.</div><div class='del'>-</div><div class='del'>-Mon Oct 31 03:19:36 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c (readline_readline): type check.</div><div class='del'>-	  [ruby-core:6089]</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_rshift): RDoc fix.  [ruby-core:6351]</div><div class='del'>-</div><div class='del'>-	* util.h (strtod): add #undef for platforms defines strtod()</div><div class='del'>-	  macro.   [ruby-dev:27563]</div><div class='del'>-</div><div class='del'>-Mon Oct 31 02:35:59 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_float.rb (test_precision): test by assert_in_delta.</div><div class='del'>-	  [ruby-dev:27575]</div><div class='del'>-</div><div class='del'>-Sat Oct 29 01:58:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c: document update from mathew &lt;meta@pobox.com&gt;.</div><div class='del'>-	  [ruby-core:06473]</div><div class='del'>-</div><div class='del'>-	* ext/fcntl/fcntl.c: ditto.</div><div class='del'>-</div><div class='del'>-Thu Oct 27 16:45:31 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (scan_once): wrong condition to use mbclen2().</div><div class='del'>-	  [ruby-dev:27535]</div><div class='del'>-</div><div class='del'>-Wed Oct 26 09:27:27 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/implicit.c (syck_type_id_to_uri): should return</div><div class='del'>-	  newly allocated memory. otherwise, type_id will be freed</div><div class='del'>-	  twice. [ruby-dev:27384] [ruby-core:6385]</div><div class='del'>-</div><div class='del'>-Wed Oct 26 09:04:51 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h (Qfalse, Qtrue, Qnil, Qundef): make sure these immediate</div><div class='del'>-	  values have VALUE type. there is an environment where sizeof(VALUE)</div><div class='del'>-	  != sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS</div><div class='del'>-	  and received by 64bit integer (VALUE), upper bits may have garbage value.</div><div class='del'>-	  [ruby-dev:27513]</div><div class='del'>-</div><div class='del'>-Wed Oct 26 01:58:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (RUBY_EXTERN): macro to export symbols in shared</div><div class='del'>-	  library.  [ruby-core:05528]</div><div class='del'>-</div><div class='del'>-	* defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to</div><div class='del'>-	  configuration pass.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.</div><div class='del'>-</div><div class='del'>-Tue Oct 25 15:32:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rational.rb: applied documentation patch from Gavin Sinclair</div><div class='del'>-	  &lt;gsinclair@gmail.com&gt;.  [ruby-core:06364]</div><div class='del'>-</div><div class='del'>-	* lib/irb.rb (IRB::Irb::eval_input): handle prompts with newlines</div><div class='del'>-	  in irb auto-indentation mode.  [ruby-core:06358]</div><div class='del'>-</div><div class='del'>-Tue Oct 25 02:12:08 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::LABEL_LIST_RE):</div><div class='del'>-	  reduce redundant backtrack.  [ruby-talk:161771]</div><div class='del'>-</div><div class='del'>-Tue Oct 25 00:27:35 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/*: RDoc documentation from Eric Hodel</div><div class='del'>-	  &lt;drbrain@segment7.net&gt; added.</div><div class='del'>-</div><div class='del'>-Mon Oct 24 21:14:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, io.c: use sys/syscall.h if syscall.h is not available.</div><div class='del'>-	  [ruby-core:06247]</div><div class='del'>-</div><div class='del'>-Mon Oct 24 20:49:45 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Win32API/lib/win32/resolv.rb (get_info): support multiple DNS.</div><div class='del'>-	  fixed: [ruby-list:40058], [ruby-dev:27479]</div><div class='del'>-</div><div class='del'>-Mon Oct 24 07:57:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb (TkCanvasItemConfig::__item_val2ruby_optkeys):</div><div class='del'>-	  typo fixed.  [ruby-talk:162187]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb (TkMenuEntryConfig::__item_val2ruby_optkeys):</div><div class='del'>-	  ditto.  [ruby-core:06359]</div><div class='del'>-</div><div class='del'>-Sun Oct 23 21:50:15 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/enumerator.c: applied documentation patch from</div><div class='del'>-	  James Edward Gray II &lt;james@grayproductions.net&gt;.</div><div class='del'>-	  [ruby-core:06348]</div><div class='del'>-</div><div class='del'>-Sun Oct 23 07:11:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: improve messages [ruby-core:06325].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb, ext/tk/lib/tk/canvas.rb, ext/tk/lib/tk/entry.rb,</div><div class='del'>-	  ext/tk/lib/tk/frame.rb, ext/tk/lib/tk/image.rb,</div><div class='del'>-	  ext/tk/lib/tk/itemconfig.rb, ext/tk/lib/tk/labelframe.rb,</div><div class='del'>-	  ext/tk/lib/tk/listbox.rb, ext/tk/lib/tk/menu.rb,</div><div class='del'>-	  ext/tk/lib/tk/radiobutton.rb, ext/tk/lib/tk/scale.rb,</div><div class='del'>-	  ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tk/text.rb,</div><div class='del'>-	  ext/tk/lib/tk/toplevel.rb: improve conversion of option values.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: update to support ActiveTcl8.4.11.2.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/trofs/*: support Trofs 0.4.3.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile/*: support Tile 0.7.2.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/vu/*: support vu 2.3.0.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tcllib/*: support Tcllib 1.8 (Tklib 0.3).</div><div class='del'>-</div><div class='del'>-Sat Oct 22 23:54:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb, lib/mkmf.rb (with_config): support --with-extension</div><div class='del'>-	  options.  [ruby-dev:27449]</div><div class='del'>-</div><div class='del'>-Sat Oct 22 13:26:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check</div><div class='del'>-	  if valid as a symbol name more strictly.  [ruby-dev:27478]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_symbol.rb: tests for [ruby-core:03573].</div><div class='del'>-</div><div class='del'>-	* time.c (rb_strftime): removed meaningless volatile modifiers, and</div><div class='del'>-	  concatenate successive nul characters at once.  [ruby-dev:27472]</div><div class='del'>-</div><div class='del'>-Fri Oct 21 19:21:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* rubysig.h (CHECK_INTS): fixed typo. (I believe bit-or is improper)</div><div class='del'>-</div><div class='del'>-Fri Oct 21 17:49:32 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bin/erb (ERB::Main::run): typo fixed.  [ruby-core:06337]</div><div class='del'>-</div><div class='del'>-Fri Oct 21 15:27:17 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (bignew_1): convertion from `int' to `char' discards</div><div class='del'>-	  upper bits, (ie. (char)0xff00 -&gt; 0) so it's better to test if</div><div class='del'>-	  nonzero and set 0 or 1 instead of simply casting ... as a flag usage.</div><div class='del'>-	  (but I believe this won't cause actual bug in current implementation)</div><div class='del'>-	  [ruby-dev:27055]</div><div class='del'>-</div><div class='del'>-	* time.c: should use LONG_LONG instead of `long long'.</div><div class='del'>-</div><div class='del'>-Thu Oct 20 09:37:15 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): Borland make seems not to allow</div><div class='del'>-	  empty dependency list. If this change is not good, please correct</div><div class='del'>-	  it.</div><div class='del'>-</div><div class='del'>-Thu Oct 20 07:55:09 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): get rid of a restriction</div><div class='del'>-	  of Borland make.  fixed: [ruby-dev:27460]</div><div class='del'>-</div><div class='del'>-Thu Oct 20 00:13:18 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubysig.h (CHECK_INTS): fix typo.</div><div class='del'>-</div><div class='del'>-Wed Oct 19 23:58:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): do not create unnecessary empty</div><div class='del'>-	  directories.  fixed: [ruby-dev:27451]</div><div class='del'>-</div><div class='del'>-Wed Oct 19 19:26:15 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (rb_gc_mark_parser): get rid of segfault with old yacc.</div><div class='del'>-	  fixed: [ruby-dev:27439]</div><div class='del'>-</div><div class='del'>-Wed Oct 19 08:28:32 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_join): elements may contain null pointer strings.</div><div class='del'>-	  report and fixed by Lloyd Zusman (hippoman): [ruby-core:06326]</div><div class='del'>-</div><div class='del'>-Wed Oct 19 02:34:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c, gc.c, time.c: made internal symbols static.  [ruby-dev:27435]</div><div class='del'>-</div><div class='del'>-Wed Oct 19 01:27:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (re_compile_pattern): numeric literal inside character class</div><div class='del'>-	  disabled succeeding backtrack.  fixed: [ruby-list:41328]</div><div class='del'>-</div><div class='del'>-Mon Oct 17 21:18:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (parser_heap): byacc never free parser stack.</div><div class='del'>-	  fixed: [ruby-dev:27428]</div><div class='del'>-</div><div class='del'>-Mon Oct 17 16:04:47 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (chmod_internal, lchmod_internal): fixed type of 2nd argument.</div><div class='del'>-</div><div class='del'>-Sun Oct 16 22:16:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: omit non-existing directories.</div><div class='del'>-</div><div class='del'>-Sun Oct 16 14:30:05 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb (Rinda::Tuple#initialize): check remote hash</div><div class='del'>-	  tuple. fixed: [ruby-list:41227]</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: test it.</div><div class='del'>-</div><div class='del'>-Sun Oct 16 03:38:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubysig.h (CHECK_INTS): prevent signal handler to run during</div><div class='del'>-	  critical section.  [ruby-core:04039]</div><div class='del'>-</div><div class='del'>-	* eval.c (load_wait): need not to call rb_thread_schedule()</div><div class='del'>-	  explicitly.  [ruby-core:04039]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_schedule): clear rb_thread_critical.</div><div class='del'>-	  [ruby-core:04039]</div><div class='del'>-</div><div class='del'>-Sat Oct 15 19:56:38 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bin/erb: typo fixed, again. thanks, Doug Kearns.</div><div class='del'>-</div><div class='del'>-Fri Oct 14 22:08:26 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (ioctl): should set errno.</div><div class='del'>-</div><div class='del'>-Fri Oct 14 16:57:32 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/config.rb (Config::FileHandler): :UserDir should be nil.</div><div class='del'>-	  It is harmful to permit the access to ~/public_html by default.</div><div class='del'>-	  suggested by Hiroyuki Iwatsuki.</div><div class='del'>-</div><div class='del'>-Thu Oct 13 23:29:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (HEAPCNT): bison allocates indivisible size.</div><div class='del'>-	  fixed: [ruby-core:06261]</div><div class='del'>-</div><div class='del'>-	* io.c, pack.c, ext/syck/rubyext.c, ext/syck/syck.h, missing/isinf.c:</div><div class='del'>-	  get rid of warnings.  fixed: [ruby-core:06247]</div><div class='del'>-</div><div class='del'>-Wed Oct 12 12:52:57 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (Init_openssl): should call</div><div class='del'>-	  OpenSSL_add_ssl_algorithms().</div><div class='del'>-</div><div class='del'>-Wed Oct 12 11:08:54 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_f_test): typo in RDoc comments.</div><div class='del'>-</div><div class='del'>-Tue Oct 11 21:41:58 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_obj_respond_to): check if obj responds to the given</div><div class='del'>-	  method with the given visibility.  [ruby-dev:27408]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_respond_to): conform to Object#respond_to?.  [ruby-dev:27411]</div><div class='del'>-</div><div class='del'>-Tue Oct 11 00:01:21 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* st.c (st_free_table): do not call free() but xfree().</div><div class='del'>-	  [ruby-core:06205]</div><div class='del'>-</div><div class='del'>-Sat Oct  8 20:04:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_Binding): add Binding#dup method.  [yarv-dev:666]</div><div class='del'>-</div><div class='del'>-	* parse.y (rb_parser_malloc, rb_parser_free): manage parser stack on</div><div class='del'>-	  heap.  [ruby-list:41199]</div><div class='del'>-</div><div class='del'>-	* ext/iconv/charset_alias.rb: parse config.charset_alias file directly.</div><div class='del'>-</div><div class='del'>-Fri Oct  7 09:54:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may</div><div class='del'>-	  not be parsed correctly.  A patch from August Z. Flatby</div><div class='del'>-	  (augustzf) in [ruby-Patches-2595].  [ruby-core:06183]</div><div class='del'>-</div><div class='del'>-Thu Oct  6 20:12:16 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c (strscan_free): remove useless code.</div><div class='del'>-	  [ruby-dev:26368] [ruby-dev:27389]</div><div class='del'>-	  (backported from trunk, rev 1.22)</div><div class='del'>-</div><div class='del'>-Wed Oct  5 04:42:38 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (XMLRPC::Server#initialize): should mount the</div><div class='del'>-	  servlet on "/".</div><div class='del'>-</div><div class='del'>-Wed Oct  5 03:59:09 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (XMLRPC::Server#serve): delete wrong call</div><div class='del'>-	  of "join".</div><div class='del'>-</div><div class='del'>-Mon Oct  3 00:04:00 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (EXTEND16): [ruby-dev:27383]</div><div class='del'>-</div><div class='del'>-Thu Sep 29 10:26:18 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/dl.c (rb_io_to_ptr): abolish sizeof(FILE).</div><div class='del'>-	  [ruby-dev:27317]</div><div class='del'>-</div><div class='del'>-Thu Sep 29 07:22:05 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* evalc. (rb_f_send): underscores need to be escaped.</div><div class='del'>-	  fixed by Doug Kearns.  [ruby-core:06053]</div><div class='del'>-</div><div class='del'>-Thu Sep 29 00:57:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ev_const_get), variable.c (rb_const_get_0): retry only when</div><div class='del'>-	  autoload succeeded.</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_autoload_load): now return true if autoload</div><div class='del'>-	  succeeded.  fixed: [ruby-dev:27331]</div><div class='del'>-</div><div class='del'>-Wed Sep 28 23:42:15 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (apply2files): add prototype.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_stat_inspect): constified.</div><div class='del'>-</div><div class='del'>-	* class.c (rb_mod_init_copy, rb_class_init_copy), file.c (rb_stat_init_copy),</div><div class='del'>-	  numeric.c (num_init_copy), object.c (rb_obj_init_copy, Init_Object),</div><div class='del'>-	  re.c (match_init_copy, rb_reg_init_copy), time.c (time_init_copy):</div><div class='del'>-	  undocumented.</div><div class='del'>-</div><div class='del'>-Wed Sep 28 23:09:23 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb: document update from James Edward Gray II</div><div class='del'>-	  &lt;james@grayproductions.net&gt;.  [ruby-core:06027]</div><div class='del'>-</div><div class='del'>-Wed Sep 28 15:14:19 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI#start): req.query_string should</div><div class='del'>-	  refer the value of QUERY_STRING. [ruby-list:41186]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#query_string=):</div><div class='del'>-	  add new method.</div><div class='del'>-</div><div class='del'>-Wed Sep 28 10:45:44 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: cannot compile with Tcl/Tk8.0.x</div><div class='del'>-	  [ruby-dev:27335].</div><div class='del'>-</div><div class='del'>-Wed Sep 28 08:12:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_buffered_data): check if reached EOF.  fixed: [ruby-dev:27334]</div><div class='del'>-</div><div class='del'>-Wed Sep 28 07:56:52 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.</div><div class='del'>-	  [ruby-dev:27237], [ruby-core:05854]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/tag.rb (Module#yaml_as): suppress warnings.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.</div><div class='del'>-</div><div class='del'>-Wed Sep 28 03:23:35 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubysig.h: fixed build problem with --enable-pthread on platforms</div><div class='del'>-	  which don't have setitimer().</div><div class='del'>-</div><div class='del'>-Mon Sep 26 22:32:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (set_trace_func): add rb_secure(4) to prevent adding</div><div class='del'>-	  tracing function.</div><div class='del'>-</div><div class='del'>-Sun Sep 25 12:05:10 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bin/erb: typo fixed.</div><div class='del'>-</div><div class='del'>-Sun Sep 25 01:46:43 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-calculate-indent): arrange deep-indent</div><div class='del'>-	  closing parenthesis at same column as the opening.</div><div class='del'>-</div><div class='del'>-Sun Sep 25 00:42:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately.</div><div class='del'>-	  fixed: [ruby-list:41168]</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent</div><div class='del'>-	  level for continuous line inside parentheses.</div><div class='del'>-	  http://nabeken.tdiary.net/20050915.html#p02</div><div class='del'>-</div><div class='del'>-Sun Sep 25 00:18:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (unknown_node): show more information.  [ruby-dev:26196]</div><div class='del'>-</div><div class='del'>-Sat Sep 24 08:56:01 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cd): no longer accept :noop option, related</div><div class='del'>-	  code is useless (backported from trunk, rev 1.67).</div><div class='del'>-	  [ruby-core:05858] [ruby-Bugs:2494]</div><div class='del'>-</div><div class='del'>-Sat Sep 24 08:38:07 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: fix visibility of FileUtils::NoWrite, Verbose,</div><div class='del'>-	  DryRun (backported from trunk, rev 1.66). [ruby-core:05954]</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: test it.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_dryrun.rb: new file.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_verbose.rb: new file.</div><div class='del'>-</div><div class='del'>-Sat Sep 24 02:40:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb: document update from James Edward Gray II</div><div class='del'>-	  &lt;james@grayproductions.net&gt;.  [ruby-core:05942]</div><div class='del'>-</div><div class='del'>-Thu Sep 22 23:36:24 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (find_executable0): default path if environment is not</div><div class='del'>-	  set.  [ruby-dev:27281]</div><div class='del'>-</div><div class='del'>-Thu Sep 22 16:33:12 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/readline/test_readline.rb (TestReadline::replace_stdio):</div><div class='del'>-	  merged the patch of [ruby-dev:25232] instead of [ruby-dev:25223].</div><div class='del'>-</div><div class='del'>-Wed Sep 21 23:30:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): generalized nmake dependent code.</div><div class='del'>-</div><div class='del'>-Wed Sep 21 09:07:55 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.3 released.</div><div class='del'>-</div><div class='del'>-Wed Sep 21 08:52:25 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: correctly compute identation of a block</div><div class='del'>-	  scalar's parent node. [ruby-talk:150620]</div><div class='del'>-</div><div class='del'>-Wed Sep 21 08:20:24 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* README.EXT, README.EXT.ja: add new features.</div><div class='del'>-</div><div class='del'>-Wed Sep 21 07:43:58 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (default_argv, Arguable#options): defaults strings</div><div class='del'>-	  to be parsed to Arguable instance.</div><div class='del'>-</div><div class='del'>-Wed Sep 21 02:44:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (path_check_0): disallow sticky world writable directory</div><div class='del'>-	  in PATH (and $LOAD_PATH).  [ruby-dev:27226]</div><div class='del'>-</div><div class='del'>-	* file.c (fpath_check): typo fixed.</div><div class='del'>-</div><div class='del'>-Tue Sep 20 22:29:49 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/wsdl/simpletype/rpc/test_rpc.rb, test/wsdl/ref/test_ref.rb,</div><div class='del'>-	  test/wsdl/any/test_any.rb test/soap/wsdlDriver/test_calc.rb:</div><div class='del'>-	  suppress deliberate warnings with $VERBOSE = nil.</div><div class='del'>-</div><div class='del'>-Tue Sep 20 21:26:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag</div><div class='del'>-	  is not available.  fixed: [ruby-dev:27187]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 18:23:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_mark): mark th-&gt;last_status.  [ruby-dev:27179]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 18:20:33 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: require 'yaml/constants'.  [ruby-core:5776]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 17:48:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): add charset</div><div class='del'>-	  information to content-type header.[ruby-core:5127]</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (CGIServer::serve): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (ModRubyServer::serve): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (WEBrickServlet::service): ditto.</div><div class='del'>-</div><div class='del'>-Tue Sep 20 17:34:46 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/webrick/test_cgi.rb: set ENV["PATH"] to CGIEnvPath on</div><div class='del'>-	  windows. bcc32's runtime is not installed into system directory,</div><div class='del'>-	  so it cannot be found without this setting. [ruby-dev:27166]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 17:10:38 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/dbm/test_dbm.rb (TestDBM::test_s_open_error): remove</div><div class='del'>-	  test_s_open_error test to detect duplicate open.</div><div class='del'>-	  [ruby-dev:27202]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 17:08:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* io.c: PIPE_BUF is not defined on BeOS. use _POSIX_PIPE_BUF instead.</div><div class='del'>-	  [ruby-dev:27185]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 16:53:53 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/readline/test_readline.rb (TestReadline::replace_stdio):</div><div class='del'>-	  BSD seek support from [ruby-dev:25223].  fixed: [ruby-dev:27150]</div><div class='del'>-</div><div class='del'>-Tue Sep 20 15:39:40 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from</div><div class='del'>-	  appearing alone or at the end of plain scalars. [ruby-core:5826]</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes</div><div class='del'>-	  as complex keys.</div><div class='del'>-</div><div class='del'>-	* lib/syck.h: version 0.60.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during</div><div class='del'>-	  key searches.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: loading of binary-typed nodes.  prevent</div><div class='del'>-	  emission of plain strings that look like symbols, but which aren't.</div><div class='del'>-</div><div class='del'>-Tue Sep 20 05:50:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/xmlrpc/test_webrick_server.rb (setup_http_server):</div><div class='del'>-	  should not include 'webrick/https' unless 'use_ssl' because</div><div class='del'>-	  it fails where openssl is not installed.</div><div class='del'>-</div><div class='del'>-Tue Sep 20 00:34:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_close): call rb_io_close() directly if io is a T_FILE</div><div class='del'>-	  object.  [ruby-dev:27156]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 19:09:08 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_chown): should accept nil. [ruby-dev:27171]</div><div class='del'>-	  (backport from trunk, rev 1.208)</div><div class='del'>-</div><div class='del'>-Mon Sep 19 18:35:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/dl.c (rb_io_to_ptr): fix DragonFlyBSD support.</div><div class='del'>-	  [ruby-dev:27151]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 14:17:04 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_emit): passing an int* value to the</div><div class='del'>-	  long* parameter causes unaligned access on LP64 systems.</div><div class='del'>-	  [ruby-dev:27161]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 13:44:03 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c: avoid core dump with WIN32OLE_EVENT.</div><div class='del'>-	  [ruby-dev:27133]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 10:36:06 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cp_r): default is :dereference_root=&gt;true for</div><div class='del'>-	  backward compatibility. [ruby-dev:27145]</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_cp_r): test it.</div><div class='del'>-</div><div class='del'>-Mon Sep 19 09:57:39 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: backported from trunk (1.36).</div><div class='del'>-	  (again) [ruby-dev:27145]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 07:45:37 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.h, ossl_pkey_rsa.c, ossl_pkey_dsa.c:</div><div class='del'>-	  an instance variable "private" is added to OpenSSL::PKey class.</div><div class='del'>-	  this ivar is a flag that shows whether there is a private key</div><div class='del'>-	  in the instance.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c: (ossl_engine_load_privkey): set private</div><div class='del'>-	  key flag.</div><div class='del'>-</div><div class='del'>-Mon Sep 19 06:41:32 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: backported from trunk (rev 1.65):</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (rm_r): new option :secure.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (rm_rf): new option :secure.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method #remove_entry_secure.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cd): remove option :noop.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cp_r): new option :dereference_root.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cp_r): new option :dereference_root.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method #remove_entry.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method #chmod_R.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method #chown.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method #chown_R.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method .commands.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method .options.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method .have_option?.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method .options_of.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new method .collect_method.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: use module_function instead of single extend.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: backported from trunk (1.36).</div><div class='del'>-</div><div class='del'>-Mon Sep 19 03:17:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_thread_flock): wrap the flock system call by</div><div class='del'>-	  TRAP_BEG/TRAP_END to enable signals.  [ruby-dev:27122]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (bsock_send): wrap the sendto and send system</div><div class='del'>-	  call by TRAP_BEG/TRAP_END to enable signals when writing to a socket</div><div class='del'>-	  which is full.  [ruby-dev:27132]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_syswrite): wrap the write system call by</div><div class='del'>-	  TRAP_BEG/TRAP_END to enable signals when writing to a pipe which is</div><div class='del'>-	  full.  [ruby-dev:27134]</div><div class='del'>-</div><div class='del'>-Mon Sep 19 03:02:08 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to</div><div class='del'>-	  enable signals when writing to a pipe which is full.</div><div class='del'>-</div><div class='del'>-Sun Sep 18 02:10:47 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: remove comments that are bungling up</div><div class='del'>-	  the rdoc and ri output.  output symbols as plain scalars.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_reset): emit headless</div><div class='del'>-	  documents always.</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_scan_scalar): quote scalars with any</div><div class='del'>-	  kind of surrounding line space, tabs or spaces alike.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: accept tabs as whitespace, not for indentation,</div><div class='del'>-	  but strip from plain scalars.</div><div class='del'>-</div><div class='del'>-	* test/yaml/test_yaml.rb: remove outdated tests.</div><div class='del'>-</div><div class='del'>-Sat Sep 17 23:25:04 2005  sheepman  &lt;sheepman@sheepman.sakura.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mathn.rb (Rational::inspect): should preserve original</div><div class='del'>-	  operand.  [ruby-core:05806]</div><div class='del'>-</div><div class='del'>-Sat Sep 17 23:20:27 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::Cookie): should handle multiple values for a</div><div class='del'>-	  cookie name.  [ruby-talk:156140]</div><div class='del'>-</div><div class='del'>-Sat Sep 17 10:42:13 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string</div><div class='del'>-	  should call Kernel.eval on caller's safe-level instead of slave's</div><div class='del'>-	  safe-level (Of course, the given script should be evaluated on</div><div class='del'>-	  slave's safe-level).</div><div class='del'>-</div><div class='del'>-Sat Sep 17 09:45:26 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_substr): should propagate taintness even for</div><div class='del'>-	  empty strings.  [ruby-dev:27121]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_aref): should infect result if range argument</div><div class='del'>-	  is tainted.  [ruby-dev:27121]</div><div class='del'>-</div><div class='del'>-Sat Sep 17 08:35:39 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed</div><div class='del'>-	  strange RSS::Maker::Item#max_size behavior.</div><div class='del'>-	  Thanks to Kazuhiko &lt;kazuhiko@fdiary.net&gt;.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto.</div><div class='del'>-</div><div class='del'>-Fri Sep 16 23:09:20 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_search_event_at): bug fix</div><div class='del'>-	  in ext/win32ole/sample/ienavi.rb.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole/tests/testOLEEVENT.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Sep 16 22:41:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_extname): empty string for path name ending with a</div><div class='del'>-	  period.  fixed: [ruby-core:05651]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_join): smarter behavior at edge cases.</div><div class='del'>-	  fixed: [ruby-core:05706]</div><div class='del'>-</div><div class='del'>-Fri Sep 16 18:34:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/node.c (syck_replace_str): was using return from the</div><div class='del'>-	  void function.  a patch from MIYAMUKO Katsuyuki</div><div class='del'>-	  &lt;miyamuko at mtb.biglobe.ne.jp&gt;.  [ruby-dev:27111]</div><div class='del'>-</div><div class='del'>-Fri Sep 16 14:48:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix typo on MultiTkIp#bg_eval_string</div><div class='del'>-</div><div class='del'>-Fri Sep 16 12:02:12 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_resolver_transfer): remove C++ style</div><div class='del'>-	  comment (//).  [ruby-core:05793]</div><div class='del'>-</div><div class='del'>-Fri Sep 16 00:14:14 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: unintentionally overwritten changes by</div><div class='del'>-	  Usa.  reverted.</div><div class='del'>-</div><div class='del'>-Fri Sep 16 00:06:18 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#initialize): should set</div><div class='del'>-	  $stdout.binmode.</div><div class='del'>-</div><div class='del'>-Thu Sep 15 23:25:21 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.5.</div><div class='del'>-</div><div class='del'>-	  #nnn is a ticket number at http://dev.ctor.org/soap4r</div><div class='del'>-</div><div class='del'>-	  * SOAP</div><div class='del'>-</div><div class='del'>-	    * allow to configure an envelope namespace of SOAP request. (#124)</div><div class='del'>-	   	TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope'</div><div class='del'>-	  	@client.options["soap.envelope.requestnamespace"] =</div><div class='del'>-		  TemporaryNamespace</div><div class='del'>-	 	@client.options["soap.envelope.responsenamespace"] =</div><div class='del'>-		  TemporaryNamespace</div><div class='del'>-		@client.do_proc(...)</div><div class='del'>-</div><div class='del'>-	    * let SOAP request XML indent space configuable.  see</div><div class='del'>-	      "soap.envelope.no_indent" option. (#130)</div><div class='del'>-</div><div class='del'>-	    * let external CES configuable.</div><div class='del'>-	      ex. client["soap.mapping.external_ces"] = 'SJIS'.  $KCODE is used</div><div class='del'>-	      by default. (#133)</div><div class='del'>-		external CES ::= CES used in Ruby object of client and server</div><div class='del'>-		internal CES ::= CES used in SOAP/OM</div><div class='del'>-</div><div class='del'>-	    * add iso-8859-1 external CES support. (#106)</div><div class='del'>-</div><div class='del'>-	    * fixed illegal 'qualified' handling of elements.  it caused</div><div class='del'>-	      ASP.NET inteoperability problem. (#144)</div><div class='del'>-</div><div class='del'>-	    * added 'soap.envelope.use_numeric_character_reference' (boolean)</div><div class='del'>-	      option to let query XML use numeric character reference in XML,</div><div class='del'>-	      not plain UTF-8 character.  !GoogleSearch server seems to not</div><div class='del'>-	      allow plain UTF-8 character since 2005-08-15 update. (#147)</div><div class='del'>-</div><div class='del'>-	    * SOAP::Header::SimpleHeader (de)serialization throws an exception</div><div class='del'>-	      on !SimpleHeader.on_(in|out)bound when header is a String.  so we</div><div class='del'>-	      could not use a simple single element headerItem.  fixed.  thanks</div><div class='del'>-	      to emil. (#129)</div><div class='del'>-</div><div class='del'>-	    * out parameter of rpc operation did not work.  (#132)</div><div class='del'>-</div><div class='del'>-	    * follow HTTP redirect only if using http-access2.  (#125) (#145)</div><div class='del'>-</div><div class='del'>-	    * add a workaround for importing an WSDL whose path begins with</div><div class='del'>-	      drive letter.  (#115)</div><div class='del'>-</div><div class='del'>-	  * WSDL</div><div class='del'>-</div><div class='del'>-	    * SOAP Data which is defined as a simpletype was not mapped</div><div class='del'>-	      correctly to Ruby obj when using wsdl2ruby.rb generated classdef</div><div class='del'>-	      file. (#123)</div><div class='del'>-</div><div class='del'>-	    * rpc/literal support. (#118)</div><div class='del'>-</div><div class='del'>-	    * re-implemented local element qualify/unqualify control.  handles</div><div class='del'>-	      elementFormDefault and form in WSDL.  (#119)</div><div class='del'>-</div><div class='del'>-	    * Array of an element which has simpleType causes a crash. (#128)</div><div class='del'>-</div><div class='del'>-	    * prarmeterOrder may not contain return part so it can be shorter</div><div class='del'>-	      than parts size.  Thanks to Hugh.  (#139)</div><div class='del'>-</div><div class='del'>-	  * Samples</div><div class='del'>-</div><div class='del'>-	    * added !BasicAuth client sample. (#117)</div><div class='del'>-</div><div class='del'>-	    * added Base64 client/server sample.</div><div class='del'>-</div><div class='del'>-	    * added Flickr SOAP interface client sample. (#122)</div><div class='del'>-</div><div class='del'>-	    * added !SalesForce client sample. (#135)</div><div class='del'>-</div><div class='del'>-	    * updated Thawte CA certificate for !GoogleAdWords sample.</div><div class='del'>-</div><div class='del'>-	    * updated a client script with the newer version made by Johan.</div><div class='del'>-	      thanks!</div><div class='del'>-</div><div class='del'>-	    * shortened long file names. (#120)</div><div class='del'>-</div><div class='del'>-	    * fixed typo in authheader sample. (#129)</div><div class='del'>-</div><div class='del'>-	    * updated deprecated method usage.  (#138)</div><div class='del'>-</div><div class='del'>-Thu Sep 15 23:02:57 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h (rb_w32_stat): added prototype.</div><div class='del'>-</div><div class='del'>-Thu Sep 15 22:35:55 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_signal.rb (test_exit_action): skip the test using</div><div class='del'>-	  fork on fork-less platforms.</div><div class='del'>-</div><div class='del'>-Thu Sep 15 11:39:18 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: If a dialog does not show up yet,</div><div class='del'>-	  TkDialogObj#name raises an exception. [ruby-talk:156109]</div><div class='del'>-</div><div class='del'>-Thu Sep 15 01:39:19 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb (Rinda::TemplateEntry::initialize): pull</div><div class='del'>-	  up method. Tabs converted to spaces.</div><div class='del'>-</div><div class='del'>-Thu Sep 15 00:18:24 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/telnet.rb (Net::Telnet::waitfor): replace sysread with</div><div class='del'>-	  readpartial.  [ruby-talk:127641]</div><div class='del'>-</div><div class='del'>-Wed Sep 14 22:40:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (ruby_glob): glob function not using ruby exception system.</div><div class='del'>-</div><div class='del'>-Wed Sep 14 01:26:03 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/https.rb: backported from trunk, rev 1.3.</div><div class='del'>-	  [ruby-dev:25673] (again), [ruby-dev:26617] (again),</div><div class='del'>-	  [ruby-dev:27062]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/https.rb: removed.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/protocols.rb: removed.</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: #use_ssl?, #use_ssl are moved from net/https.</div><div class='del'>-</div><div class='del'>-Tue Sep 13 22:09:40 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb (Logger): added formatter accessor to logger for</div><div class='del'>-	  dictating the way in which the logger should format the messages it</div><div class='del'>-	  displays.  Thanks to Nicholas Seckar (cf. [ruby-talk:153391]) and</div><div class='del'>-	  Daniel Berger.</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb (Logger): added VERSION constant.</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: removed document for LogDevice. It is an</div><div class='del'>-	  implementation detail and is not a public interface.</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: added tests.</div><div class='del'>-</div><div class='del'>-Tue Sep 13 21:47:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (BEGIN_CALLARGS): pop halfly pushed status.</div><div class='del'>-	  fixed: [ruby-dev:26881]</div><div class='del'>-</div><div class='del'>-Tue Sep 13 16:26:45 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: backported from trunk, rev 1.128.</div><div class='del'>-	  [ruby-dev:25673] [ruby-dev:26617]</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb: backported from trunk, rev 1.78.</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb: new method #old_open to support net/smtp</div><div class='del'>-	  and net/pop.</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb: use #old_open.</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Sep 13 12:33:05 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: reworking YAML::Stream to use the new</div><div class='del'>-	  emitter.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/stream.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: added Object#yaml_new.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/tag.rb: the tag_subclasses? method now</div><div class='del'>-	  shows up in the class.  allow taguri to be set using an accessor.</div><div class='del'>-	  continue support of Object#to_yaml_type.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: new emitter code.  yaml_new and yaml_initialize</div><div class='del'>-	  get called, should they be present.  consolidated all the diaspora of internal</div><div class='del'>-	  node types into the family below YAML::Syck::Node -- Map,</div><div class='del'>-	  Seq, Scalar -- all of whom are SyckNode structs pointing to</div><div class='del'>-	  Ruby data.  moved Object#yaml_new into the node_import and made it the</div><div class='del'>-	  default behavior.  the target_class is always called wih yaml_new, prepended</div><div class='del'>-	  a parameter, which is the klass.  loaded nodes through GenericResolver show their style.</div><div class='del'>-	  new Resolver#tagurize converts type ids to taguris.</div><div class='del'>-</div><div class='del'>-	* ext/syck/implicit.re: were 'y' and 'n' seriously omitted??</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c: renovated emitter, walks the tree in advance.</div><div class='del'>-	  consolidated redundant block_styles struct into</div><div class='del'>-	  the scalar_style struct.  (this means loaded nodes can now</div><div class='del'>-	  be sent back to emitter and preserve at least its very basic</div><div class='del'>-	  formatting.)</div><div class='del'>-</div><div class='del'>-	* ext/syck/gram.c: headless documents of any kind allowed.</div><div class='del'>-</div><div class='del'>-	* ext/syck/node.c: new syck_replace_str methods and syck_empty_*</div><div class='del'>-	  methods for rewriting node contents, while keeping the ID</div><div class='del'>-	  and other setup info.  added syck_seq_assign.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: reflect block_styles and new node functions.</div><div class='del'>-</div><div class='del'>-Mon Sep 12 20:53:06 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_pkcs7.rb (test_enveloped): skip this test</div><div class='del'>-	  to avoid a bug of PKCS7_enctypt() (only if ext/openssl is</div><div class='del'>-	  compiled with OpenSSL-0.9.7d or earlier versions).</div><div class='del'>-	  http://www.mail-archive.com/openssl-dev@openssl.org/msg17376.html</div><div class='del'>-</div><div class='del'>-Mon Sep 12 14:03:33 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/dbm/test_dbm.rb: remove locking test, which may not be</div><div class='del'>-	  supported on some platforms.  [ruby-dev:27030]</div><div class='del'>-</div><div class='del'>-Mon Sep 12 10:45:58 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/dl.c (rb_io_to_ptr): merged a patch for DragonFly BSD</div><div class='del'>-	  from Takahiro Kambe &lt;taca at back-street.net&gt;.  [ruby-dev:27023]</div><div class='del'>-</div><div class='del'>-Sun Sep 11 22:05:51 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bin/erb (ERB::Main#run): set ERB#filename so that it is used</div><div class='del'>-	  when reporting syntax/runtime errors. Tabs converted to spaces.</div><div class='del'>-</div><div class='del'>-Sat Sep 10 10:17:03 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_s_by_id):</div><div class='del'>-	  OpenSSL::Engine.by_id calls given block before calling</div><div class='del'>-	  ENGINE_init (block parameter is the return value of this method</div><div class='del'>-	  itself).  this functionality is useful to load dynamic shared</div><div class='del'>-	  engines. the following code is a sample of loading a key using</div><div class='del'>-	  OpenSC PKCS #11 module.</div><div class='del'>-</div><div class='del'>-		require "openssl"</div><div class='del'>-		pkcs11 = OpenSSL::Engine.by_id("dynamic"){|e|</div><div class='del'>-		  e.ctrl_cmd("SO_PATH", "/usr/lib/opensc/engine_pkcs11.so")</div><div class='del'>-		  e.ctrl_cmd("LIST_ADD", "1")</div><div class='del'>-		  e.ctrl_cmd("LOAD")</div><div class='del'>-		}</div><div class='del'>-		pkcs11.ctrl_cmd("PIN", "secret")</div><div class='del'>-		key = pkcs11.load_private_key</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_ctrl_cmd): new method</div><div class='del'>-	  OpenSSL::Engine#ctrl_cmd. it wraps ENGINE_ctrl_cmd_string.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_get_cmds): new method</div><div class='del'>-	  OpenSSL::Engine#cmds. it returms engine command definitions.</div><div class='del'>-</div><div class='del'>-Sat Sep 10 10:09:47 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (asn1str_to_str): new function.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs7.c: new class OpenSSL::PKCS7::RecipientInfo.</div><div class='del'>-	  this class wraps PKCS7_RECIP_INFO struct.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs7.c: OpenSSL::PKCS7::Signer is renamed to</div><div class='del'>-	  OpenSSL::PKCS7::SignerInfo. ("Signer" remains as an alias of</div><div class='del'>-	  SignerInfo.)</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_pkcs7.rb: new file.</div><div class='del'>-</div><div class='del'>-Sat Sep 10 10:05:51 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): assume that</div><div class='del'>-	  the argument is a DER string if Base64 decoding failed.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ns_pki.c (ossl_spki_to_der): new method.</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_ns_spki.rb: add new file.</div><div class='del'>-</div><div class='del'>-Sat Sep 10 09:56:24 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/digest.rb: added SHA224, SHA256, SHA384 and SHA512.</div><div class='del'>-	  these features are enabled if this library is compiled with</div><div class='del'>-	  OpenSSL 0.9.8 or later.</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_digest.rb: add test for new digests.</div><div class='del'>-</div><div class='del'>-Sat Sep 10 09:51:30 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_raise): should use ERR_peek_last_error</div><div class='del'>-	  to get last error on the current thread. And should report</div><div class='del'>-	  errors on the stack while OpenSSL.debug is true.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_get_errors): new method for debugging</div><div class='del'>-	  this library.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): fix error message.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509req.c (ossl_x509req_set_attributes): get rid</div><div class='del'>-	  of unused variable.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509store.c (ossl_x509store_initialize): should</div><div class='del'>-	  set @time to avoid warning.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths,</div><div class='del'>-	  X509_STORE_add_cert, X509_STORE_add_crl): should raise error if</div><div class='del'>-	  wrapped functions failed.</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_x509store.rb: add test for errors.</div><div class='del'>-</div><div class='del'>-Fri Sep  9 22:13:19 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): prohibit calling tainted method (&gt;2) when</div><div class='del'>-	  $SAFE == 0.</div><div class='del'>-</div><div class='del'>-Fri Sep  9 16:45:25 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_times): make empty strings to keep taintness,</div><div class='del'>-	  and a little improvement.  [ruby-dev:26900]</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_try), ext/iconv/extconf.rb: get rid of meta</div><div class='del'>-	  characters in command line option.  fixed: [ruby-talk:155369]</div><div class='del'>-</div><div class='del'>-Thu Sep  8 14:58:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* merged a patch from Takahiro Kambe &lt;taca at back-street.net&gt; to</div><div class='del'>-	  support DragonFly BSD.  [ruby-dev:26984]</div><div class='del'>-</div><div class='del'>-Wed Sep  7 12:55:08 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb: abolish mod === tempfile to avoid a problem</div><div class='del'>-	  [ruby-dev:26967].</div><div class='del'>-</div><div class='del'>-Wed Sep  7 10:45:15 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_switch): convert all exceptions to</div><div class='del'>-	  SystemExit.  fixed: [ruby-core:05724]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_terminated): show backtrace before propagate</div><div class='del'>-	  exceptions to main thread.</div><div class='del'>-</div><div class='del'>-Wed Sep  7 08:35:04 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load</div><div class='del'>-	  extension libraries.</div><div class='del'>-</div><div class='del'>-	* bignum.c (bignew_1, bigadd): K&amp;R style argument actually can't be</div><div class='del'>-	  defined as char.</div><div class='del'>-</div><div class='del'>-	* missing/vsnprintf.c: ANSI compiler supports const keyword.</div><div class='del'>-</div><div class='del'>-	* ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h</div><div class='del'>-	  but no 64bit integer.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (what_type?): guesstimate type.</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (setup_passwd), ext/etc/extconf.rb: pw_age might be</div><div class='del'>-	  char*.  fixed: [ruby-core:05470]</div><div class='del'>-</div><div class='del'>-Wed Sep  7 08:32:47 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_get, rb_mod_cvar_set): document fix from</div><div class='del'>-	  sheepman &lt;sheepman@sheepman.sakura.ne.jp&gt;; a bug in visibility</div><div class='del'>-	  description.  [ruby-dev:26965]</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): warn "too many argument" on verbose</div><div class='del'>-	  mode (-v/-w); backported from 1.9.  [ruby-dev:26963]</div><div class='del'>-</div><div class='del'>-Mon Sep  5 17:03:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb: a patch from Florian Gross &lt;florgro at gmail.com&gt;</div><div class='del'>-	  merged to allow recursive inspect (and to_s) for OpenStruct.</div><div class='del'>-	  [ruby-core:05532]</div><div class='del'>-</div><div class='del'>-Mon Sep  5 07:01:12 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl/lib/openssl/buffering.rb (Buffering#do_write):</div><div class='del'>-	  should clear data from the buffer which already been output.</div><div class='del'>-</div><div class='del'>-Fri Sep  2 23:51:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib: do not use __send__ to access private methods.  [ruby-dev:26935]</div><div class='del'>-</div><div class='del'>-Fri Sep  2 03:29:00 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/init.rb: make IRB -I option that is same befavior for ruby.</div><div class='del'>-	  [ruby-dev:26872], [ruby-dev: 26920]</div><div class='del'>-</div><div class='del'>-	* lib/irb/locale.rb: support to print help message when OS locale is</div><div class='del'>-	  ja_JP.utf-8. [ruby-dev:26872]</div><div class='del'>-</div><div class='del'>-Thu Sep  1 17:11:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): wrong condition for $SAFE restoration.</div><div class='del'>-</div><div class='del'>-Thu Sep  1 14:12:45 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't</div><div class='del'>-	  work (gives wrong order of arguments).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace</div><div class='del'>-	  to support '-namespace' option of 'interp invokehidden' command</div><div class='del'>-	  on Tcl8.5.</div><div class='del'>-</div><div class='del'>-Wed Aug 31 14:43:15 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (OPTFLAGS): default global optimization to</div><div class='del'>-	  disabled for all VC++ versions.  fixed: [ruby-dev:26897]</div><div class='del'>-</div><div class='del'>-Wed Aug 31 11:35:43 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/gdbm/test_gdbm.rb (teardown): should remove GDBM temporary</div><div class='del'>-	  file.</div><div class='del'>-</div><div class='del'>-Wed Aug 31 10:30:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_detach, proc_setmaxgroups): missing argument type</div><div class='del'>-	  declaration. (I recommend ANSI-style function)</div><div class='del'>-</div><div class='del'>-Tue Aug 30 23:20:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_rescue2): initialization miss.  fixed: [ruby-dev:26917]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (xsystem, xpopen): no longer expand by Config.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (link_command, cc_command, cpp_command): expand</div><div class='del'>-	  variables at once, and quote hdrdir.  fixed: [ruby-core:05680]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (libpathflag): quote paths.</div><div class='del'>-</div><div class='del'>-Tue Aug 30 19:34:27 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/md5/md5ossl.h, ext/digest/rmd160/rmd160ossl.h,</div><div class='del'>-	  ext/digest/sha1/sha1ossl.h: include &lt;stddef.h&gt; to avoid</div><div class='del'>-	  error in compilation with OpenSSL-0.9.8. [ruby-list:41068]</div><div class='del'>-</div><div class='del'>-Mon Aug 29 19:54:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb: improper exceptions. [ruby-dev:26870]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb: support the case when non-ruby code exists before</div><div class='del'>-	  shebang. (this is needed when ri.bat is executed on windows)</div><div class='del'>-</div><div class='del'>-Mon Aug 29 17:48:17 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_arity): should return proper arity value.</div><div class='del'>-	  [ruby-dev:26390]</div><div class='del'>-</div><div class='del'>-Mon Aug 29 01:19:57 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/time.rb (Time.parse): extract fractional seconds using</div><div class='del'>-	  Date._parse.  [ruby-talk:153859]</div><div class='del'>-</div><div class='del'>-Sat Aug 27 20:20:01 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c ({curses,window}_clrtoeol): added. suggested</div><div class='del'>-	  by Reyn Vlietstra.</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c: chtype in curses is not `char', rahter `long'.</div><div class='del'>-	  [ruby-Bugs:2298]</div><div class='del'>-</div><div class='del'>-	* ext/curses/view.rb: String =~ String is deprecated.</div><div class='del'>-</div><div class='del'>-Wed Aug 24 10:53:28 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb (test_shifting_size): should close log</div><div class='del'>-	  device before unlink, since some platform cannot unlink opened</div><div class='del'>-	  file.</div><div class='del'>-</div><div class='del'>-Sun Aug 21 00:13:27 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/xmlSchema/importer.rb (WSDL::XMLSchema::Importer#fetch): add</div><div class='del'>-	  a workaround for importing an WSDL whose path begins with drive</div><div class='del'>-	  letter.  [ruby-dev:26242]</div><div class='del'>-</div><div class='del'>-Sat Aug 20 22:37:13 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb (write, shift_log?, shift_log): file shifting race</div><div class='del'>-	  condition bug fixed.  [ruby-dev:26764]</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: tests.</div><div class='del'>-</div><div class='del'>-Fri Aug 19 18:13:39 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/time.rb (Time.apply_offset): fix a problem with last day of</div><div class='del'>-	  month.  reported by Lucas Nussbaum.  [ruby-talk:152866]</div><div class='del'>-</div><div class='del'>-Thu Aug 18 12:46:28 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (COMMON_HEADERS): reverted 1.42.2.24.</div><div class='del'>-	  I misunderstood, bccwin32 on ruby_1_8 uses winsock2 originally.</div><div class='del'>-	  [ruby-dev:26806]</div><div class='del'>-</div><div class='del'>-	* win32/win32.h: include winsock2.h instead of winsock.h. (bcc32)</div><div class='del'>-</div><div class='del'>-Wed Aug 17 23:58:05 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_to_integer): argument constified.</div><div class='del'>-</div><div class='del'>-	* eval.c (terminate_process): take String message.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_switch): propagate the exception caused thread</div><div class='del'>-	  termination directly.  fixed: [ruby-core:05552]</div><div class='del'>-</div><div class='del'>-Wed Aug 17 00:05:46 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_add_method): preserve safe level in the environment</div><div class='del'>-	  where a method is defined .</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): restore preserved safe level in the method</div><div class='del'>-	  execution.</div><div class='del'>-</div><div class='del'>-Mon Aug 15 00:38:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.</div><div class='del'>-	  [ruby-dev:26800]</div><div class='del'>-</div><div class='del'>-	* range.c (range_check, range_init): reduce useless exceptions.</div><div class='del'>-</div><div class='del'>-Sat Aug 13 18:51:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_block_pass): distinguish current block from others.</div><div class='del'>-	  fixed: [ruby-dev:26274]</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_set_string): disallow nil.</div><div class='del'>-	  http://www.rubyist.net/~nobu/t/20050811.html#c05</div><div class='del'>-</div><div class='del'>-Thu Aug 11 23:29:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c: keep holding string after closed.</div><div class='del'>-</div><div class='del'>-Thu Aug 11 13:01:48 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss: fixed sort bug. [ruby-list:41018]</div><div class='del'>-</div><div class='del'>-	* lib/rss/1.0.rb (RSS::RDF::Channel#setup_maker_attributes):</div><div class='del'>-	  removed self.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#&lt;=&gt;): use #date</div><div class='del'>-	  instead of @date.</div><div class='del'>-	  (RSS::Maker::Base::self.def_array_element): added #size.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/1.0.rb</div><div class='del'>-	  (RSS::Maker::RSS10::Channel#to_rss,</div><div class='del'>-	   RSS::Maker::RSS10::Items::Item#to_rss): cleared dc_dates set</div><div class='del'>-	  upped by using #date.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/dublincore.rb</div><div class='del'>-	  (RSS::Maker::ChannelBase, RSS::Maker::ItemsBase::ItemBase):</div><div class='del'>-	  fixed opposite alias.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_setup_maker_1.0.rb</div><div class='del'>-	  (RSS::TestSetupMaker10::test_setup_maker_items_sort): added some</div><div class='del'>-	  tests for RSS::Maker::ItemsBase#do_sort.</div><div class='del'>-</div><div class='del'>-Wed Aug 10 10:29:40 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fix bug on handling __ruby2val_optkeys().</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb: fix bug on handling</div><div class='del'>-	  __item_ruby2val_optkeys().</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: didn't check __item_ruby2val_optkeys().</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt/component.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Aug  9 15:12:04 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: remove dangerous 'rb_jump_tag's.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add __val2ruby_optkeys and __ruby2val_optkeys to</div><div class='del'>-	  help to convert option values between ruby and tcl.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb: add __item_val2ruby_optkeys and</div><div class='del'>-	  __item_ruby2val_optkeys to help to convert option values between</div><div class='del'>-	    ruby and tcl.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/radiobutton.rb: use __ruby2val_optkeys for 'variable'</div><div class='del'>-	  option (for the reason of backward compatibility).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/composite.rb: clarify the arguments of super().</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/spinbox.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/validation.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: support to treat tkvariable-type</div><div class='del'>-	  configure options.</div><div class='del'>-</div><div class='del'>-Tue Aug  9 20:30:19 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_coerce): allow bignum x bignum coercing.</div><div class='del'>-	  [ruby-dev:26778]</div><div class='del'>-</div><div class='del'>-Mon Aug  8 20:43:02 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_method.rb: added.  [ruby-dev:26761]</div><div class='del'>-</div><div class='del'>-Sun Aug  7 23:50:14 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_super.rb: added from HEAD. [ruby-dev:26743]</div><div class='del'>-</div><div class='del'>-Sun Aug  7 01:31:15 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (WIN32OLE_EVENT#on_event): should set</div><div class='del'>-	  only one event handler.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/testOLEEVENT.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/tests/testOLEPARAM.rb: remove re-defined</div><div class='del'>-	  test_ole_type_detail method.</div><div class='del'>-</div><div class='del'>-Sat Aug  6 12:35:24 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/{tk.rb,tk/itemconfig.rb}: configure creates</div><div class='del'>-	  TkVariable if key name is 'variable' or 'textvariable'</div><div class='del'>-	  by default. [ruby-dev:26749]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/{label,radiobutton}.rb: removed its own</div><div class='del'>-	  {variable,textvariable} function.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: retains backward conpatibility.</div><div class='del'>-</div><div class='del'>-Fri Aug  5 12:50:32 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fixed memory leak when tk_funcall raised</div><div class='del'>-	  exception. (copies argv into heap in tk_funcall instead of</div><div class='del'>-	  caller)</div><div class='del'>-</div><div class='del'>-Fri Aug  5 12:42:57 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): need to convert path separetor</div><div class='del'>-	  before invoking install command.</div><div class='del'>-</div><div class='del'>-Fri Aug  5 00:27:04 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: refactoring - extract ruby string &lt;-&gt;</div><div class='del'>-	  tcl object conversion as get_str_from_obj and get_obj_from_str.</div><div class='del'>-</div><div class='del'>-Fri Aug  5 00:19:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* extmk.rb (extmake): needs to be wrapped in an Array.</div><div class='del'>-</div><div class='del'>-Thu Aug  4 18:38:36 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add nativethread consistency check.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/stubs.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: forgot to define TclTkIp.encoding and encoding=</div><div class='del'>-	  when Tcl is 7.6 or 8.0.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/wm.rb: support to make some methods as options of</div><div class='del'>-	  root or toplevel widget. [ruby-talk:150336]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/root.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/toplevel.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/SUPPRT_STATUS: update RELEASE_DATE</div><div class='del'>-</div><div class='del'>-Thu Aug  4 08:03:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): should not modify $mflags for each</div><div class='del'>-	  extentions.</div><div class='del'>-</div><div class='del'>-Thu Aug  4 00:25:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk, Makefile.in, {bcc32,win32,wince}/Makefile.sub: integrated</div><div class='del'>-	  macro definitions.</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: LIBRUBY_SO should use DLDOBJS, not EXTOBJS.</div><div class='del'>-</div><div class='del'>-	* {win32,wince}/Makefile.sub: separate config.h for compiler versions.</div><div class='del'>-</div><div class='del'>-Wed Aug  3 21:59:16 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: TkVariable#trace didn't work on</div><div class='del'>-	  TkVariable retrived from TkVariable.new_hash.ref. [ruby-dev:26721]</div><div class='del'>-</div><div class='del'>-Wed Aug  3 08:22:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_connect): revert [ruby-talk:111654]</div><div class='del'>-	  changes at 2004-09-07.  [ruby-dev:26656]</div><div class='del'>-</div><div class='del'>-Tue Aug  2 10:20:54 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: use Tcl_[GS]etVar2Ex instead of</div><div class='del'>-	  Tcl_Obj[GS]etVar2. (avoid Tcl_NewStringObj on supported platforms)</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: use ip_{get,set,unset}_variable2_core from</div><div class='del'>-	  ip_{get,set,unset}_variable.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: replaced Tcl_Panic with rb_bug.</div><div class='del'>-</div><div class='del'>-Tue Aug  2 01:41:28 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ping.rb (Ping.pingecho): should rescue StandardError.</div><div class='del'>-	  [ruby-dev:26677]</div><div class='del'>-</div><div class='del'>-Mon Aug  1 19:09:41 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: refactoring - replaced rb_ivar_defined &amp;</div><div class='del'>-	  rb_ivar_get with single rb_attr_get call.</div><div class='del'>-</div><div class='del'>-Mon Aug  1 18:45:07 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (Tcl_GetStringResult): refactoring - define</div><div class='del'>-	  alternative macro on Tcl7.x or earlier.</div><div class='del'>-</div><div class='del'>-Mon Aug  1 13:57:35 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (deleted_ip): refactoring - interpreter</div><div class='del'>-	  deletion check. [ruby-dev:26664]</div><div class='del'>-</div><div class='del'>-Mon Aug  1 01:17:40 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (check_insecure_method): use private_methods and</div><div class='del'>-	  protected_methods instead of respond_to? to check method visibility.</div><div class='del'>-	  [ruby-dev:26616]</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_drb.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Aug  1 00:07:32 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='del'>-	* lib/irb/context.rb: fix `irb --readline` option. [ruby-list:40955]</div><div class='del'>-</div><div class='del'>-Fri Jul 29 09:59:38 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): push yielded node instead of yielding.</div><div class='del'>-	  fixed: [yarv-dev:549]</div><div class='del'>-</div><div class='del'>-Thu Jul 28 18:09:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/stubs.c: When --enable-tcltk-stubs, the initialize</div><div class='del'>-	  routine creates a Tcl/Tk interpreter and deletes it. However,</div><div class='del'>-	  init cost of Tk's MainWindow is not so small. And that makes it</div><div class='del'>-	  impossible to use libraries written with Tcl functions only on</div><div class='del'>-	  an environment without a graphical display. This changes support</div><div class='del'>-	  delaying initalization of Tk_Stubs until the script needs Tk.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/stubs.h: New file. Define prototypes and return</div><div class='del'>-	  codes of functions on stubs.c.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: Support delaying initalization of</div><div class='del'>-	  Tk_Stubs until the script needs Tk.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: Show friendly error messages for errors</div><div class='del'>-	  on initialization.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is</div><div class='del'>-	  exiting and $DEBUG is true. (Not fix. If you know the reason of</div><div class='del'>-	  why, please fix it.)</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (ary2list, ary2list2): bug fix on handling of</div><div class='del'>-	  encoding.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string</div><div class='del'>-	  don't work propery.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk.</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the</div><div class='del'>-	  object for an element of a Tcl's array variable.</div><div class='del'>-</div><div class='del'>-Wed Jul 27 23:23:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (obj_free): make message format consistent with one from</div><div class='del'>-	  gc_mark().  [ruby-talk:149668]</div><div class='del'>-</div><div class='del'>-Wed Jul 27 22:11:37 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin: removed. because the plugin</div><div class='del'>-	  is imported in the tDiary plugin packages.</div><div class='del'>-</div><div class='del'>-Wed Jul 27 10:59:02 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_each): rewinddir(3) before iteration.</div><div class='del'>-	  [ruby-talk:149628]</div><div class='del'>-</div><div class='del'>-Tue Jul 26 12:57:49 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missin.c: include &lt;openssl/engine.h&gt; before</div><div class='del'>-	  &lt;openssl/x509_vfy.h&gt; to avoid compilation error of mswin32.</div><div class='del'>-	  suggested by NAKAMURA Usaku.</div><div class='del'>-</div><div class='del'>-Mon Jul 25 21:30:46 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub: moved CPPFLAGS only for ruby</div><div class='del'>-	  source to XCFLAGS.</div><div class='del'>-</div><div class='del'>-Mon Jul 25 13:45:18 2005  NAJIMA Hiroki  &lt;najima@mickey.ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* io.c: check HAVE_SYS_IOCTL_H before including the header.</div><div class='del'>-	  [ruby-dev:26610]</div><div class='del'>-</div><div class='del'>-Mon Jul 25 14:10:02 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix en-bugged part in the last commit.</div><div class='del'>-</div><div class='del'>-Sat Jul 23 16:49:04 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should check</div><div class='del'>-	  OPENSSL_NO_STATIC_ENGINE.</div><div class='del'>-</div><div class='del'>-Fri Jul 22 21:06:08 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_eq): reduce isnan().  [ruby-dev:26600]</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le): ditto.</div><div class='del'>-</div><div class='del'>-Fri Jul 22 15:02:39 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: moved copyright description to lib/rss.rb.</div><div class='del'>-</div><div class='del'>-	* lib/rss.rb: added for convenience.</div><div class='del'>-</div><div class='del'>-	* sample/rss/re_read.rb: added #to_s sample.</div><div class='del'>-</div><div class='del'>-	* sample/rss/blend.rb: use 'require "rss"' instead of</div><div class='del'>-	  'require "rss/*"'.</div><div class='del'>-	* sample/rss/list_description.rb: ditto.</div><div class='del'>-	* sample/rss/rss_recent.rb: ditto.</div><div class='del'>-	* sample/rss/tdiary-plugin/rss-recent.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary-plugin/rss-recent.rb: 0.0.6 -&gt; 0.0.7.</div><div class='del'>-</div><div class='del'>-Fri Jul 22 14:37:43 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb (RSS::Parser#initialize): accept HTTP/FTP</div><div class='del'>-	  URI and local file path too.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_parser.rb (RSS::TestParser#test_parse): test</div><div class='del'>-	  for the above.</div><div class='del'>-</div><div class='del'>-Fri Jul 22 07:01:42 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (tk_conv_args): forget to revert thread_critical</div><div class='del'>-	  and gc_disable when raise ArgumentError.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add TclTkIp#has_mainwindow? method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to</div><div class='del'>-	  avoid access from external.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'</div><div class='del'>-	  mainloop.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP</div><div class='del'>-	  with $SAFE==4.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work</div><div class='del'>-	  properly.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and</div><div class='del'>-	  cb_error(exc) to log errors at callbacks on safe slave IPs.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fail to get an available slave IP object</div><div class='del'>-	  when call Tk.mainloop in the block which is given to new_* method,</div><div class='del'>-	    because cannot finish initialize while the root widget is alive.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop</div><div class='del'>-	  runs on the IP.</div><div class='del'>-</div><div class='del'>-Wed Jul 20 19:20:37 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (S_ISREG): need to define S_ISREG before it is used first.</div><div class='del'>-</div><div class='del'>-Wed Jul 20 18:40:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (wsplit_p): patch for the environment where</div><div class='del'>-	  fcntl(F_GETFL, O_NONBLOCK) is not supported. in that case,</div><div class='del'>-	  set FMODE_WSPLIT without fcntl check. [ruby-dev:26566]</div><div class='del'>-</div><div class='del'>-Wed Jul 20 18:07:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_ctl): update FMODE_WSPLIT_INITIALIZED and FMODE_WSPLIT</div><div class='del'>-	  by F_SETFL.</div><div class='del'>-</div><div class='del'>-Wed Jul 20 10:04:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_class_path): need to adjust snprintf() len for</div><div class='del'>-	  teminating NUL.  [ruby-dev:26581]</div><div class='del'>-</div><div class='del'>-Wed Jul 20 04:01:55 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: sorry, BeOS also uses HAVE_CLOSESOCKET,</div><div class='del'>-	  so reverted.</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: should not define HAVE_CLOSESOCKET</div><div class='del'>-	  on windows.</div><div class='del'>-</div><div class='del'>-Wed Jul 20 03:16:43 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: should not undef close() on win32.</div><div class='del'>-	  it's defined to rb_w32_close(), otherwise handle leaks.</div><div class='del'>-	  [ruby-Bugs-2131]</div><div class='del'>-</div><div class='del'>-Wed Jul 20 00:48:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (syserr_initialize): don't use str before StringValue()</div><div class='del'>-	  check.  [ruby-dev:26579]</div><div class='del'>-</div><div class='del'>-Tue Jul 19 22:47:29 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (syserr_initialize): add 1 byte for snprintf() size for</div><div class='del'>-	  NUL at the end.  [ruby-dev:26574]</div><div class='del'>-</div><div class='del'>-Tue Jul 19 16:39:46 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_inspect): replace sprintf() with "%s" format all</div><div class='del'>-	  over the place by snprintf() to avoid integer overflow.</div><div class='del'>-</div><div class='del'>-Tue Jul 19 14:08:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: rbtk_eventloop_depth is used as int.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: rbtk_pending_exception is tested with</div><div class='del'>-	  NIL_P, so should assign Qnil instead of 0 (Qfalse).</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_invoke_real): fixed memory leak when</div><div class='del'>-	  ip is deleted.</div><div class='del'>-</div><div class='del'>-Tue Jul 19 13:19:46 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: For symmetry, add TkVariable#string. It</div><div class='del'>-	  returns a string even if the default value type of the TkVariable</div><div class='del'>-	  object is not "string".</div><div class='del'>-</div><div class='del'>-Mon Jul 18 21:40:20 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): make the pointer to NODE volatile</div><div class='del'>-	  instead of NODE itself.</div><div class='del'>-</div><div class='del'>-Mon Jul 18 14:32:21 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): make body volatile to avoid optimization problem.</div><div class='del'>-	  [ruby-dev:26195]</div><div class='del'>-</div><div class='del'>-Mon Jul 18 12:23:27 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/wait.c: wrong backport from trunk.  fixed: [ruby-dev:26562]</div><div class='del'>-</div><div class='del'>-Mon Jul 18 09:36:25 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubyio.h (FMODE_WSPLIT, FMODE_WSPLIT_INITIALIZED): new constant.</div><div class='del'>-</div><div class='del'>-	* io.c (wsplit_p): new function.</div><div class='del'>-	  (io_fwrite): split writing data by PIPE_BUF if wsplit_p is true in</div><div class='del'>-	  multi-threaded mode.</div><div class='del'>-	  [ruby-dev:26540]</div><div class='del'>-</div><div class='del'>-Sun Jul 17 13:46:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/extconf.rb, ext/io/wait/wait.c: Win32 platforms support.</div><div class='del'>-</div><div class='del'>-Fri Jul 15 23:59:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (handle_class_module): handle a</div><div class='del'>-	  module enclosed in a built-in module.  fixed: [ruby-talk:148239]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (find_body): allow macros as methods.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (find_call_seq): allow :nodoc: modifier</div><div class='del'>-	  in C.  [ruby-core:04572]</div><div class='del'>-</div><div class='del'>-Fri Jul 15 18:00:01 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (COMMON_HEADERS): ruby_1_8 is using winsock.h.</div><div class='del'>-	  failed to compile ext/socket on bcc5.6.4. [ruby-dev:26193]</div><div class='del'>-</div><div class='del'>-Fri Jul 15 07:58:56 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::GenericServer#accept_client):</div><div class='del'>-	  sockets should be non-blocking mode. [ruby-dev:26405]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/utils.rb (WEBrick::Utils.set_non_blocking): new method.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_chunked):</div><div class='del'>-	  should call sock.read repeatedly until the preferred size data</div><div class='del'>-	  is obtained.</div><div class='del'>-</div><div class='del'>-Thu Jul 14 18:27:16 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_strerror): should return correct message</div><div class='del'>-	  for ENAMETOOLONG and ENOTEMPTY. (bcc32) [ruby-dev:26533]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_strerror): stripped CR LF on the tail.</div><div class='del'>-	  (bcc32) [ruby-dev:26533]</div><div class='del'>-</div><div class='del'>-Thu Jul 14 00:45:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* LEGAL (ext/nkf/nkf-utf8): updated from nkf1.7 to nkf-utf8.</div><div class='del'>-</div><div class='del'>-Wed Jul 13 19:37:47 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_mkdir): should set EEXIST (not EACCES)</div><div class='del'>-	  if file or directory already exists. (bcc32) [ruby-dev:26508]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_rmdir): should set ENOTDIR (not EINVAL)</div><div class='del'>-	  if it is not directory. (bcc32, win32)</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_rmdir, rb_w32_unlink): restore</div><div class='del'>-	  FILE_ATTRIBUTE_READONLY flag on function failure.</div><div class='del'>-</div><div class='del'>-Wed Jul 13 12:40:00 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: TclTkLib.do_one_event doesn't work.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Tk.thread_update is available.</div><div class='del'>-</div><div class='del'>-Tue Jul 12 23:32:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: keep curdir unexpanded.</div><div class='del'>-</div><div class='del'>-Mon Jul 11 08:31:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (read_special): fix parsing backslashes following \c in</div><div class='del'>-	  regexp.  fixed: [ruby-dev:26500]</div><div class='del'>-</div><div class='del'>-Mon Jul 11 02:53:00 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):</div><div class='del'>-	  mistook in merging the patch of [ruby-dev:26235] at</div><div class='del'>-	  revision 1.4.2.6.</div><div class='del'>-</div><div class='del'>-Sun Jul 10 23:58:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#unlink): try Dir.unlink first to</div><div class='del'>-	  avoid unlink a directory by root.</div><div class='del'>-	  cf. [ruby-dev:26237]</div><div class='del'>-</div><div class='del'>-Sun Jul 11 05:18:17 2005  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb (XMLRPC::Server): Switch from GServer over to</div><div class='del'>-	  WEBrick. This makes file lib/xmlrpc/httpserver.rb obsolete (at least it is</div><div class='del'>-		no further used by the XML-RPC library).</div><div class='del'>-</div><div class='del'>-Sun Jul 10 12:47:01 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb (debug_command): added a deficient format specifier.</div><div class='del'>-	  fixed: [ruby-core:05419]</div><div class='del'>-</div><div class='del'>-Sat Jul  9 21:28:46 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_method_dispid): convert dispid</div><div class='del'>-	  in Ruby and C by INT2NUM and NUM2INT.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_invoke2): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/test/testWIN32OLE.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/test/testOLEMETHOD.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Jul  8 15:45:04 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::VERSION): 0.1.4 -&gt; 0.1.5.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_version.rb (RSS::TestVersion#test_version):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb (RSS::Rss::Channel::Item::Category):</div><div class='del'>-	  domain attribute of &lt;category&gt; is optional. Thanks to</div><div class='del'>-	  Chris Lee &lt;clee@kde.org&gt;.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_parser.rb (RSS::TestParser#test_category20):</div><div class='del'>-	  adjusted test case.</div><div class='del'>-</div><div class='del'>-Tue Jul  5 23:44:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb: expand source library path.</div><div class='del'>-</div><div class='del'>-Tue Jul  5 23:27:14 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (sort_2): get rid of yet another bcc's bug.</div><div class='del'>-	  fixed: [ruby-core:05152]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_save_context): must not switch contexts during</div><div class='del'>-	  re-allocating stack.  fixed: [ruby-core:05219]</div><div class='del'>-</div><div class='del'>-Tue Jul  5 15:15:10 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: fix typo.</div><div class='del'>-</div><div class='del'>-Tue Jul  5 14:51:35 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: bug fix on treating Unicode strings.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add methods to treat encoding mode.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/MANUAL.eng: add description of TclTkLib#encoding,</div><div class='del'>-	  encoding_system, and so on.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/MANUAL.euc: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: fail to create a Tcl's list string from an</div><div class='del'>-	  array including multiple kind of encoded strings.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: 2nd arg of _{to|from}UTF8 is omissible.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: override TclTkLib#encoding and encoding= to</div><div class='del'>-	  use TkCore::INTERP.encoding and encoding=.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: when "require 'tk'" and $KCODE=='NONE', check</div><div class='del'>-	  DEFAULT_TK_ENCODING to decide Ruby/Tk's system encoding mode.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/encodedstr.rb: check both of Tk.encoding and</div><div class='del'>-	  Tk.encoding_system. Tk.encoding has higher priority.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/optiondb.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/spinbox.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/validation.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist</div><div class='del'>-	  should be UTF-8 strings.</div><div class='del'>-</div><div class='del'>-Mon Jul  4 14:35:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/svr.rb: service can be stopped by ill-behaved client; use</div><div class='del'>-	  tsvr.rb instead.</div><div class='del'>-</div><div class='del'>-Mon Jul  4 13:25:21 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/erf.c: original erf.c by prof. Okumura is confirmed to</div><div class='del'>-	  be public domain.  reverted BSD implementation.</div><div class='del'>-</div><div class='del'>-Mon Jul  4 11:15:37 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/{dbm,gdbm,sdbm}/test_{dbm,gdbm,sdbm}.rb: skip some tests</div><div class='del'>-	  which using fork on fork-less platforms.</div><div class='del'>-</div><div class='del'>-Sun Jul  3 23:26:30 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/wsdl/document/test_rpc.rb: compare formatted time string of</div><div class='del'>-	  Time objects instead of comparing Time objects itself to avoid</div><div class='del'>-	  unintended conflict of usec part.  [ruby-dev:26220]</div><div class='del'>-</div><div class='del'>-Sat Jul  2 22:41:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (unix_send_io, unix_recv_io): support x86-64 and</div><div class='del'>-	  IA64.</div><div class='del'>-</div><div class='del'>-Sat Jul  2 17:06:23 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.</div><div class='del'>-	  (flush_register_windows): declare flush_register_windows.</div><div class='del'>-</div><div class='del'>-	* eval.c (flush_register_windows): new function.</div><div class='del'>-</div><div class='del'>-Fri Jul  1 17:48:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (get2comp): revert all prior changes, and calculate</div><div class='del'>-	  proper 2's complement for negative numbers.  backported from</div><div class='del'>-	  HEAD.</div><div class='del'>-</div><div class='del'>-Fri Jul  1 15:50:12 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/erf.c: need to include some headers for some platforms.</div><div class='del'>-</div><div class='del'>-	* win32/win32.h (copysign, scalb): define for compatibility with</div><div class='del'>-	  other platforms. [ruby-dev:26430]</div><div class='del'>-</div><div class='del'>-Fri Jul  1 15:37:42 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/crypt.c: modified to make it compilable on platforms</div><div class='del'>-	  other than BSD.  [ruby-dev:26430]</div><div class='del'>-</div><div class='del'>-	* missing/erf.c: ditto.  code from &lt;exp.c&gt; merged.</div><div class='del'>-</div><div class='del'>-Fri Jul  1 12:44:56 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI.open_http): refine post_connection_check</div><div class='del'>-	  call.</div><div class='del'>-</div><div class='del'>-Fri Jul  1 11:34:08 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/crypt.c: replaced with 4.4BSD version.</div><div class='del'>-</div><div class='del'>-	* missing/erf.c: ditto.</div><div class='del'>-</div><div class='del'>-	* missing/vsnprintf.c: removed the third provision from the old</div><div class='del'>-	  BSD license.  [ruby-core:05177]</div><div class='del'>-</div><div class='del'>-Fri Jul  1 01:45:21 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_min, enum_max): must not return Qundef.</div><div class='del'>-	  fixed: [ruby-core:05299]</div><div class='del'>-</div><div class='del'>-Fri Jul  1 00:18:40 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (Delegator::respond_to): respond_to? must check</div><div class='del'>-	  destination object.  [ruby-talk:146894]</div><div class='del'>-</div><div class='del'>-Thu Jun 30 19:00:21 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='del'>-	* lib/irb/ruby-lex.rb (RubyLex::identify_number): alternative implements</div><div class='del'>-	  for [ruby-dev:26410]. And support a numeric form of 0d99999.</div><div class='del'>-</div><div class='del'>-Thu Jun 30 17:28:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/ruby-lex.rb (RubyLex::identify_number): should not treat</div><div class='del'>-	  plain zero as an octal number.  [ruby-dev:26410]</div><div class='del'>-</div><div class='del'>-Thu Jun 30 15:13:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): pre-evaluate argument for unambiguous</div><div class='del'>-	  evaluation order.  [ruby-dev:26383]</div><div class='del'>-</div><div class='del'>-Thu Jun 30 09:53:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (Delegator::method_missing): forward unknown</div><div class='del'>-	  method to the destination.  suggested by</div><div class='del'>-	  &lt;christophe.poucet@gmail.com&gt;.  [ruby-talk:146776]</div><div class='del'>-</div><div class='del'>-Tue Jun 28 21:59:29 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c, eval.c, hash.c, process.c, ruby.c: avoid warning "unused</div><div class='del'>-	  variable" [ruby-dev:26387]</div><div class='del'>-</div><div class='del'>-Sat Jun 25 17:15:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_query): should</div><div class='del'>-	  discard if key=val pair is empty. patch from Gary Wright.</div><div class='del'>-</div><div class='del'>-Sat Jun 25 23:30:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (detach_process_watcher): terminate process watcher</div><div class='del'>-	  thread right after rb_waitpid() succeed.  [ruby-talk:146430]</div><div class='del'>-</div><div class='del'>-Sat Jun 25 15:49:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_min, enum_max): do not ignore nil as the first element.</div><div class='del'>-</div><div class='del'>-Sat Jun 25 14:40:17 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c (fsdbm_select): SDBM#select had returned the array</div><div class='del'>-	  which contained each elements twice. [ruby-dev:26358]</div><div class='del'>-</div><div class='del'>-Fri Jun 25 05:06:47 2005  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/*, test/xmlrpc/*: backported changes from HEAD into 1.8</div><div class='del'>-</div><div class='del'>-Fri Jun 24 17:00:00 2005  Shigeo Kobayashi  &lt;shigeo@tinyforest.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: patch from "NATORI Shin"</div><div class='del'>-	  (u-tokyo.ac.jp) applied to fix rounding bug.</div><div class='del'>-</div><div class='del'>-Fri Jun 24 13:06:45 2005  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb, lib/uri/generic.rb: fixed typo in documents and</div><div class='del'>-	  replaced some existent domain name with "example.com".</div><div class='del'>-</div><div class='del'>-Fri Jun 24 12:23:19 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate</div><div class='del'>-	  accept TkEvent::Event object as context argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and</div><div class='del'>-	  valid_for_generate to get field parameters of event_generate.</div><div class='del'>-</div><div class='del'>-Thu Jun 23 23:55:59 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* runruby.rb: should load built rbconfig.rb.</div><div class='del'>-</div><div class='del'>-Thu Jun 23 16:53:15 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvastag.rb: TkcGroup.new cannot include given items.</div><div class='del'>-	  TkcGroup#exclude calls wrong method.</div><div class='del'>-	  Add alias TkcGroup#add [ruby-talk:146049].</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: TkCanvas#dtag and some subcommands of</div><div class='del'>-	  TkCanvas#addtag fail to treat a TkcTag argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: add TkEvent::Event#generate to help to send</div><div class='del'>-	  current event to other widgets.</div><div class='del'>-</div><div class='del'>-Mon Jun 20 18:44:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): DUMMY_SETJMP is replaced</div><div class='del'>-	  because setjmp is not enough to fix getcontext and SPARC register</div><div class='del'>-	  window problem.</div><div class='del'>-</div><div class='del'>-Mon Jun 20 16:48:36 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?</div><div class='del'>-</div><div class='del'>-	* test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb</div><div class='del'>-	  (teardown): close all db objects before deleting data files.</div><div class='del'>-</div><div class='del'>-	* win32/win32.{ch} (unlink): hook runtime function to change</div><div class='del'>-	  file attribute before unlinking.</div><div class='del'>-	  fixed: [ruby-dev:26360]</div><div class='del'>-</div><div class='del'>-Mon Jun 20 02:15:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (define_final): document fix: finalizers never get called</div><div class='del'>-	  before target object is destroyed.</div><div class='del'>-</div><div class='del'>-Mon Jun 20 01:26:49 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missing.c, ext/openssl/ossl.h,</div><div class='del'>-	  ext/openssl/ossl_asn1.c, ext/openssl/ossl_bio.c,</div><div class='del'>-	  ext/openssl/ossl_pkcs12.h, ext/openssl/ossl_x509req.c: avoid</div><div class='del'>-	  compiler warnings. suggested by Michal Rokos.</div><div class='del'>-</div><div class='del'>-Sun Jun 19 14:09:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (run_final): reduce unnecessary object allocation during</div><div class='del'>-	  finalization.</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_gc_call_finalizer_at_exit): deferred finalizers list should</div><div class='del'>-	  be cleared before calling them.  fixed: [ruby-talk:145790]</div><div class='del'>-</div><div class='del'>-Fri Jun 17 13:01:40 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/time.rb (Time.parse): fix previous leap seconds support.</div><div class='del'>-	  (Time.rfc2822): ditto.</div><div class='del'>-	  (Time.xmlschema): ditto.</div><div class='del'>-</div><div class='del'>-Thu Jun 16 15:06:55 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_rb_threadVwaitCommand): Tcl_Release</div><div class='del'>-	  was missing.</div><div class='del'>-</div><div class='del'>-Thu Jun 16 13:34:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk.getMultiple{Open|Save}File() which return</div><div class='del'>-	  an Array of selected files.</div><div class='del'>-</div><div class='del'>-Thu Jun 16 12:53:24 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/time.rb (Time.parse): "Fri Jan  1 08:59:60 +0900 1999" was</div><div class='del'>-	  parsed as "Fri Jan 01 09:00:00 JST 1999" even on an environment</div><div class='del'>-	  which supports leap seconds.</div><div class='del'>-	  (Time.rfc2822): ditto.</div><div class='del'>-	  (Time.xmlschema): ditto.</div><div class='del'>-</div><div class='del'>-Thu Jun 16 08:29:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/sym.c (rb_dlsym_call): needs FREE_ARGS before return.</div><div class='del'>-	  fixed memory leak. [ruby-Bugs-2034]</div><div class='del'>-</div><div class='del'>-Wed Jun 15 18:26:39 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: support "tk inactive" sub-command [for Tcl/Tk8.5a3]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: support "namespace path" sub-command and</div><div class='del'>-	  'namespace ensemble' sub-command [for Tcl/Tk8.5a3]</div><div class='del'>-</div><div class='del'>-Tue Jun 14 02:02:43 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: add TkUtil::CallbackSubst.subst_arg(m, ...) &amp;</div><div class='del'>-	  _define_attribute_aliases(hash) to get substitution-argument from</div><div class='del'>-	  attributes (e.g. subst_arg(:x,:y,:num,:button) --&gt; "%x %y %b %b ").</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: use _define_attribute_aliases().</div><div class='del'>-</div><div class='del'>-Mon Jun 13 13:01:05 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (ruby_setenv): fixed SEGV. [ruby-dev:26186]</div><div class='del'>-</div><div class='del'>-Mon Jun 13 01:54:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (sigexit): call rb_thread_signal_exit() instead of</div><div class='del'>-	  rb_exit().  [ruby-dev:26347]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_signal_exit): a new function to exit on main</div><div class='del'>-	  thread.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_switch): exit status should be retrieved from</div><div class='del'>-	  ruby_errinfo.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_exit): ensure exit(0) should call</div><div class='del'>-	  exit(EXIT_SUCCESS).</div><div class='del'>-</div><div class='del'>-Mon Jun 13 01:20:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_gc_mark_threads): curr_thread may not be part of the</div><div class='del'>-	  thread list.  [ruby-dev:26312]</div><div class='del'>-</div><div class='del'>-Fri Jun 10 23:35:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/mkdir.c: remove. [ruby-core:05177]</div><div class='del'>-</div><div class='del'>-Fri Jun 10 22:54:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing.h: fd_set stuffs need sys/types.h.  fixed: [ruby-core:05179]</div><div class='del'>-</div><div class='del'>-Thu Jun  9 23:58:12 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Win32API/Win32API.c (Win32API_Call): disable global</div><div class='del'>-	  optimization. fixed: [ruby-core:05143]</div><div class='del'>-</div><div class='del'>-Thu Jun  9 23:35:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_inject): default the result value to Qundef to use</div><div class='del'>-	  first element as initial value if not given.</div><div class='del'>-</div><div class='del'>-Thu Jun  9 19:55:41 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.</div><div class='del'>-	  (ruby_setjmp): new macro to call setjmp, getcontext, etc.</div><div class='del'>-	  (ruby_setjmp): call setjmp before getcontext to avoid IA64 register</div><div class='del'>-	  stack problem.</div><div class='del'>-	  [ruby-talk:144939]</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): remove IA64_MAGIC_STACK_LIMIT.</div><div class='del'>-</div><div class='del'>-Thu Jun  9 11:55:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (SimpleDelegator::__setobj__): need check for</div><div class='del'>-	  recursive delegation.  [ruby-core:04940]</div><div class='del'>-</div><div class='del'>-Wed Jun  8 18:47:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.</div><div class='del'>-</div><div class='del'>-Wed Jun  8 11:11:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (get2comp): calculate proper 2's complement for</div><div class='del'>-	  negative numbers.  a bug in normalizing negative numbers</div><div class='del'>-	  reported from Honda Hiroki &lt;hhonda@ipflex.com&gt;.</div><div class='del'>-</div><div class='del'>-Wed Jun  8 08:33:10 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_min_by, enum_max_by): return nil if no iteration.</div><div class='del'>-	  fixed: [ruby-dev:26245]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_need_block): ensure a block is given.</div><div class='del'>-</div><div class='del'>-	* eval.c (backtrace): skip successive frames sharing same node.</div><div class='del'>-</div><div class='del'>-Wed Jun  8 00:15:08 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_getaddrinfo__aix): merged a patch from</div><div class='del'>-	  KUBO Takehiro &lt;kubo at jiubao.org&gt; to support AIX.  [ruby-list:40832]</div><div class='del'>-</div><div class='del'>-Wed Jun  8 00:09:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Array::to_yaml): merged a patch from</div><div class='del'>-	  Tilman Sauerbeck &lt;tilman at code-monkey.de&gt;.  [ruby-core:05055]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Hash::to_yaml): ditto.</div><div class='del'>-</div><div class='del'>-Wed Jun  8 00:00:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (curses_insertln): merged a patch from</div><div class='del'>-	  TAKAHASHI Tamotsu &lt;ttakah at lapis.plala.or.jp&gt;.  [ruby-ext:02305]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 19:34:15 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/init.rb (IRB::IRB.rc_file_generators): more flexible</div><div class='del'>-	  IRB.rc_file_generators.  [ruby-core:05163]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 18:39:31 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/thread.rb: RDoc documentation from Eric Hodel</div><div class='del'>-	  &lt;drbrain at segment7.net&gt; added.  [ruby-core:05148]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 18:30:04 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): add .SUFFIXES from depend file.</div><div class='del'>-	  fixed: [ruby-dev:26294]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 17:39:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_get): Module#class_variable_get(): back</div><div class='del'>-	  ported from CVS HEAD.  [ruby-talk:144741]</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_cvar_set): Module#class_variable_set().</div><div class='del'>-	  [ruby-talk:144741]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 16:32:53 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): raise exception on debug mode (-d),</div><div class='del'>-	  not verbose mode (-v/-w).  [ruby-core:05123]</div><div class='del'>-</div><div class='del'>-Tue Jun  7 10:30:49 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: slave-ip fails to call procedures</div><div class='del'>-	  delegated by master-ip.</div><div class='del'>-</div><div class='del'>-Sun Jun  5 23:00:35 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/console.rb: create console when required</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/tile/demo.rb: fix TypeError &amp; create Console</div><div class='del'>-</div><div class='del'>-Sat Jun  4 14:55:18 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/dbm/test_dbm.rb: merged from ext/dbm/testdbm.rb.</div><div class='del'>-</div><div class='del'>-	* test/gdbm/test_gdbm.rb: merged from ext/gdbm/testgdbm.rb.</div><div class='del'>-</div><div class='del'>-	* test/sdbm/test_sdbm.rb: renamed from ext/sdbm/testsdbm.rb with</div><div class='del'>-	  modification to use test/unit.</div><div class='del'>-</div><div class='del'>-Fri Jun  3 14:06:12 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix typo.</div><div class='del'>-</div><div class='del'>-Wed Jun  1 11:32:42 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: can use single quote character in DESTDIR.</div><div class='del'>-	  [ruby-dev:26205]</div><div class='del'>-</div><div class='del'>-Mon May 30 23:48:29 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/macpkg.rb: add PACKAGE_NAME information of Tcl/Tk</div><div class='del'>-	  Extension.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/winpkg.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: ditto.</div><div class='del'>-</div><div class='del'>-Sat May 28 16:40:15 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_x509store.rb: add test for expired CRL</div><div class='del'>-	  and refine some assertions.</div><div class='del'>-</div><div class='del'>-Sat May 28 05:15:51 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509store.c (ossl_x509stctx_set_time): should</div><div class='del'>-	  not set internal flag directry.</div><div class='del'>-</div><div class='del'>-Sat May 28 02:00:11 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):</div><div class='del'>-	  ENV["REQUEST_URI"] is better to get correct Request-URI</div><div class='del'>-	  than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"].  [ruby-dev:26235]</div><div class='del'>-</div><div class='del'>-Fri May 27 16:32:04 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: use the semicolon as the path separator</div><div class='del'>-	  in the environment of MSYS.  fixed: [ruby-dev:26232]</div><div class='del'>-</div><div class='del'>-Thu May 26 06:08:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add shortcut-methods of tk_call + tk_split_list</div><div class='del'>-</div><div class='del'>-Wed May 25 22:52:42 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/input-method.rb: do not use Readline::HISTORY.pop.</div><div class='del'>-	  (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Wed May 25 21:55:40 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c: supported libedit. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* ext/readline/extconf.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/readline/test_readline.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed May 25 20:06:27 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: TkComm#tk_split_*list fail to split a kind of SJIS</div><div class='del'>-	  strings. To avoid the trouble, add arguments to control converting</div><div class='del'>-	  encoding, and do split on a UTF8 string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: modify to attend encoding.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/listbox.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/panedwindow.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textmark.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/winfo.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add TkWindow#lower_window/raise_window and</div><div class='del'>-	  Tk#lower_window/raise_window by reason of method-name conflict</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: bug fix on TkCanvas#delete when given</div><div class='del'>-	  non-TkcItem arguments.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed May 25 12:59:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI::Meta::RE_QUOTED_STRING): a content of</div><div class='del'>-	  quoted-string should be zero or more characters.</div><div class='del'>-</div><div class='del'>-Tue May 24 23:42:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (fix_pow): support Fixnum ** Float case directly</div><div class='del'>-	  without coercing.  [ruby-talk:142697] [ruby-talk:143054]</div><div class='del'>-</div><div class='del'>-Tue May 24 16:57:24 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (require_libraries): caused SEGV when continuation jumped</div><div class='del'>-	  in to the required library code.</div><div class='del'>-</div><div class='del'>-Tue May 24 11:56:25 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/getopts.rb: should warn only if verbose mode.</div><div class='del'>-	  fixed: [ruby-dev:26201]</div><div class='del'>-</div><div class='del'>-Tue May 24 06:45:31 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): string</div><div class='del'>-	  literals to be matched non-greedy.</div><div class='del'>-</div><div class='del'>-Tue May 24 00:34:32 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/calc: method name 'set' was able to crash with a class Set.</div><div class='del'>-	  [ruby-dev:26210]</div><div class='del'>-</div><div class='del'>-	* test/wsdl/document/test_rpc.rb: dateTime comparison failed under</div><div class='del'>-	  TZ=right/Asia/Tokyo (with leap second.) [ruby-dev:26208]</div><div class='del'>-</div><div class='del'>-Mon May 23 16:24:05 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: Framework support on MacOS X Tiger.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/README.1st: add description of Framework support options.</div><div class='del'>-</div><div class='del'>-Mon May 23 12:21:37 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (make_regexp): should not return junk address during</div><div class='del'>-	  compile time.  [ruby-dev:26206]</div><div class='del'>-</div><div class='del'>-Sun May 22 21:54:06 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.</div><div class='del'>-</div><div class='del'>-	  == SOAP client and server ==</div><div class='del'>-</div><div class='del'>-	  === for both client side and server side ===</div><div class='del'>-</div><div class='del'>-	  * improved document/literal service support.</div><div class='del'>-	    style(rpc,document)/use(encoding, literal) combination are all</div><div class='del'>-	    supported.  for the detail about combination, see</div><div class='del'>-	    test/soap/test_style.rb.</div><div class='del'>-</div><div class='del'>-	  * let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to</div><div class='del'>-	    WSDL as well as obj2soap.  closes #70.</div><div class='del'>-</div><div class='del'>-	  * let SOAP::Mapping::Object handle XML attribute for doc/lit service.</div><div class='del'>-	    you can set/get XML attribute via accessor methods which as a name</div><div class='del'>-	    'xmlattr_' prefixed (&lt;foo name="bar"/&gt; -&gt; Foo#xmlattr_name).</div><div class='del'>-</div><div class='del'>-	  === client side ===</div><div class='del'>-</div><div class='del'>-	  * WSDLDriver capitalized name operation bug fixed.  from</div><div class='del'>-	    1.5.3-ruby1.8.2, operation which has capitalized name (such as</div><div class='del'>-	    KeywordSearchRequest in AWS) is defined as a method having</div><div class='del'>-	    uncapitalized name. (converted with GenSupport.safemethodname</div><div class='del'>-	    to handle operation name 'foo-bar').  it introduced serious</div><div class='del'>-	    incompatibility; in the past, it was defined as a capitalized.</div><div class='del'>-	    define capitalized method as well under that circumstance.</div><div class='del'>-</div><div class='del'>-	  * added new factory interface 'WSDLDriverFactory#create_rpc_driver'</div><div class='del'>-	    to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver</div><div class='del'>-	    are merged).  'WSDLDriverFactory#create_driver' still creates</div><div class='del'>-	    WSDLDriver for compatibility but it warns that the method is</div><div class='del'>-	    deprecated.  please use create_rpc_driver instead of create_driver.</div><div class='del'>-</div><div class='del'>-	  * allow to use an URI object as an endpoint_url even with net/http,</div><div class='del'>-	    not http-access2.</div><div class='del'>-</div><div class='del'>-	  === server side ===</div><div class='del'>-</div><div class='del'>-	  * added mod_ruby support to SOAP::CGIStub.  rename a CGI script</div><div class='del'>-	    server.cgi to server.rb and let mod_ruby's RubyHandler handles the</div><div class='del'>-	    script.  CGIStub detects if it's running under mod_ruby environment</div><div class='del'>-	    or not.</div><div class='del'>-</div><div class='del'>-	  * added fcgi support to SOAP::CGIStub.  see the sample at</div><div class='del'>-	    sample/soap/calc/server.fcgi.  (almost same as server.cgi but has</div><div class='del'>-	    fcgi handler at the bottom.)</div><div class='del'>-</div><div class='del'>-	  * allow to return a SOAPFault object to respond customized SOAP fault.</div><div class='del'>-</div><div class='del'>-	  * added the interface 'generate_explicit_type' for server side</div><div class='del'>-	    (CGIStub, HTTPServer).  call 'self.generate_explicit_type = true'</div><div class='del'>-	    if you want to return simplified XML even if it's rpc/encoded</div><div class='del'>-	    service.</div><div class='del'>-</div><div class='del'>-	  == WSDL ==</div><div class='del'>-</div><div class='del'>-	  === WSDL definition ===</div><div class='del'>-</div><div class='del'>-	  * improved XML Schema support such as extension, restriction,</div><div class='del'>-	    simpleType, complexType + simpleContent, ref, length, import,</div><div class='del'>-	    include.</div><div class='del'>-</div><div class='del'>-	  * reduced "unknown element/attribute" warnings (warn only 1 time for</div><div class='del'>-	    each QName).</div><div class='del'>-</div><div class='del'>-	  * importing XSD file at schemaLocation with xsd:import.</div><div class='del'>-</div><div class='del'>-	  === code generation from WSDL ===</div><div class='del'>-</div><div class='del'>-	  * generator crashed when there's '-' in defined element/attribute</div><div class='del'>-	    name.</div><div class='del'>-</div><div class='del'>-	  * added ApacheMap WSDL definition.</div><div class='del'>-</div><div class='del'>-	* sample/{soap,wsdl}: removed.</div><div class='del'>-</div><div class='del'>-Sun May 22 19:11:35 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#intialize):</div><div class='del'>-	  should initialize session id context. [ruby-core:4663]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): add session id support.</div><div class='del'>-</div><div class='del'>-Sat May 21 10:24:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: tds files were not deleted when DESTDIR</div><div class='del'>-	  included '\' path delimiter. [ruby-dev:26193]</div><div class='del'>-</div><div class='del'>-Thu May 19 19:04:29 2005  speakillof  &lt;speakillof@yahoo.co.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/SHIFT-JIS.rb: encoding and decoding were</div><div class='del'>-	  swapped. [ruby-core:4772]</div><div class='del'>-</div><div class='del'>-Wed May 18 23:42:25 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (exc_exception): reverted to call Exception#initialize</div><div class='del'>-	  directly.  fixed: [ruby-dev:26177]</div><div class='del'>-</div><div class='del'>-Wed May 18 23:39:09 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): get rid of using String.  [ruby-dev:26180]</div><div class='del'>-</div><div class='del'>-	* dir.c (push_braces): should skip balanced braces.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_options), win32/win32.c (NtInitialize): move argument</div><div class='del'>-	  intialization back.  [ruby-dev:26180]</div><div class='del'>-</div><div class='del'>-Tue May 17 15:31:31 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should</div><div class='del'>-	  break the loop if the socket reached to EOF. [ruby-talk:142285]</div><div class='del'>-</div><div class='del'>-Tue May 17 11:52:18 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (unixtime_to_filetime): use localtime() instead of</div><div class='del'>-	  gmtime() when using FileLocalTimeToFileTime().</div><div class='del'>-</div><div class='del'>-Mon May 16 22:28:43 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h, {bcc32,win32,wince}/Makefile.sub: moved rb_[ugp]id_t</div><div class='del'>-	  to get rid of redefinition warnings on mingw.</div><div class='del'>-</div><div class='del'>-	* class.c (rb_class_init_copy): singleton class is disallowed to copy,</div><div class='del'>-	  from its definition.  fixed: [ruby-talk:142749]</div><div class='del'>-</div><div class='del'>-Mon May 16 08:52:29 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.{h,c}: define rb_[pgu]id_t.</div><div class='del'>-</div><div class='del'>-Mon May 16 00:21:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#unlink): use SystemCallError instead of</div><div class='del'>-	  Errno::EISDIR because EISDIR is not portable.</div><div class='del'>-	  [ruby-core:5001]</div><div class='del'>-</div><div class='del'>-Sun May 15 22:11:33 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRbObject#method_missing): use raise(exception).</div><div class='del'>-	  [ruby-dev:26164]</div><div class='del'>-</div><div class='del'>-Sun May 15 18:56:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, ruby.h: define rb_[pgu]id_t macros instead of typedefs</div><div class='del'>-	  to get rid of types which might not be defined yet.  [ruby-dev:26165]</div><div class='del'>-</div><div class='del'>-Sun May 15 14:35:46 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#unlink): unlink a symlink to a directory</div><div class='del'>-	  was failed.  [ruby-core:4992]</div><div class='del'>-</div><div class='del'>-Sun May 15 09:57:30 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (unixtime_to_filetime): deal with DST.</div><div class='del'>-	  [ruby-talk:141817]</div><div class='del'>-</div><div class='del'>-Sat May 14 23:59:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (exc_exception, {exit,name_err,syserr}_initialize): call</div><div class='del'>-	  Execption#initialize.  fixed: [ruby-talk:142593]</div><div class='del'>-</div><div class='del'>-Sat May 14 23:57:26 2005  Erik Huelsmann  &lt;ehuels@gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Check for the availability of pid_t, gid_t and uid_t and</div><div class='del'>-	  remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]</div><div class='del'>-</div><div class='del'>-	* defines.h: Remove pid_t typedef.</div><div class='del'>-</div><div class='del'>-	* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with</div><div class='del'>-	 the available system types.</div><div class='del'>-</div><div class='del'>-	* process.c: Change instances of pid_t and gid_t to their rb_*</div><div class='del'>-	 counterparts.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c: Change pid_t to rb_pid_t.</div><div class='del'>-</div><div class='del'>-	* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub: Remove #define for {g,u}id_t.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c: Change pid_t to rb_pid_t.</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub: Remove #define for {g,u}id_t.</div><div class='del'>-</div><div class='del'>-	* wince/sys/types.h: Remove definitions of {p,g,u}id_t.</div><div class='del'>-</div><div class='del'>-Fri May 13 23:44:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: keep srcdir unexpanded.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): quote topdir and hdrdir if necessary.</div><div class='del'>-	  fixed: [ruby-core:04932]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration), {bcc32,win32,wince}/Makefile.sub: make</div><div class='del'>-	  also INSTALL_PROG and INSTALL_DATA system dependent.</div><div class='del'>-	  fixed: [ruby-core:04931]</div><div class='del'>-</div><div class='del'>-Fri May 13 17:54:39 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (generic_ivar_get): rb_attr_get should not warn.</div><div class='del'>-	  [ruby-dev:26010]</div><div class='del'>-</div><div class='del'>-Fri May 13 12:28:43 2005  Daniel Berger  &lt;djberge@qwest.com&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_select): can remove argc check. [ruby-core:4911]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_array.rb: add test for find_all.</div><div class='del'>-</div><div class='del'>-Fri May 13 11:29:00 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (unknown_node): add volatile directive to prototype.</div><div class='del'>-</div><div class='del'>-Thu May 12 17:08:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_eof, remain_size, read_all, io_read, appendline)</div><div class='del'>-	  (swallow, rb_io_each_byte, rb_io_getc): revert previous change.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_eof, io_fread, appendline, swallow, rb_io_each_byte)</div><div class='del'>-	  (rb_io_getc, rb_getc): call clearerr before getc to avoid</div><div class='del'>-	  stdio incompatibility.</div><div class='del'>-</div><div class='del'>-Thu May 12 16:52:20 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: more readability for mixing</div><div class='del'>-	  progress "c..." and warning message.</div><div class='del'>-</div><div class='del'>-Thu May 12 16:31:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: follow nkf 2.0.5</div><div class='del'>-</div><div class='del'>-Thu May 12 16:15:01 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_eof, remain_size, read_all, io_read, appendline)</div><div class='del'>-	  (swallow, rb_io_each_byte, rb_io_getc): don't rely EOF flag.</div><div class='del'>-	  [ruby-talk:141527]</div><div class='del'>-</div><div class='del'>-Thu May 12 15:56:20 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: show parsing progress for C files.</div><div class='del'>-	  [ruby-core:4341]</div><div class='del'>-</div><div class='del'>-Thu May 12 13:47:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb{ssl,unix}.rb: can test drb</div><div class='del'>-	  before install. (backported from HEAD) [ruby-dev:26146]</div><div class='del'>-</div><div class='del'>-Thu May 12 09:53:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* version.c (ruby_show_version): flush for non-tty stdout.</div><div class='del'>-</div><div class='del'>-Thu May 12 09:07:07 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/envutil.rb, test/drb/drbtest.rb: can test drb</div><div class='del'>-	  before install. (backported from HEAD) [ruby-Bugs-1672]</div><div class='del'>-</div><div class='del'>-Thu May 12 01:23:55 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval), parse.y (arg): reduce fixnum range literal at</div><div class='del'>-	  parser.  fixed: [ruby-dev:26113]</div><div class='del'>-</div><div class='del'>-	* eval.c (unknown_node): ignore broken NODE to get rid of accessing</div><div class='del'>-	  possibly inaccessible address.  fixed: [ruby-dev:26122]</div><div class='del'>-	  should emit more useful information like [ruby-dev:26126], though.</div><div class='del'>-</div><div class='del'>-Wed May 11 16:20:01 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb: new methods WEBrick::CGI#[], WEBrick::CGI#logger</div><div class='del'>-	  and WEBrick::CGI#config. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape_path): should</div><div class='del'>-	  not use String#split("/"). (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Wed May 11 15:58:39 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (break_jump): break should not cross functions.</div><div class='del'>-	  [ruby-list:40818]</div><div class='del'>-</div><div class='del'>-Wed May 11 10:39:37 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tempfile.rb (Tempfile#unlink): fixed typo.</div><div class='del'>-</div><div class='del'>-Wed May 11 01:03:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (TMP_ALLOC): use macro NEW_NODE() to get rid of warnings on</div><div class='del'>-	  platforms which have no alloca().  fixed: [ruby-talk:141301]</div><div class='del'>-</div><div class='del'>-Sun May  8 23:17:47 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: fix typo.</div><div class='del'>-</div><div class='del'>-Sun May  8 16:52:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/profiler.rb: fixed "undefined method `[]' for nil:NilClass"</div><div class='del'>-	  [ruby-core:4775] [ruby-talk:140401] [ruby-dev:26118]</div><div class='del'>-</div><div class='del'>-Sat May  7 22:58:00 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_var): no libs argument is given.</div><div class='del'>-</div><div class='del'>-Sun May  1 09:58:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (process_sflag): replace '-' in variable names with '_'.</div><div class='del'>-	  [ruby-dev:26107]</div><div class='del'>-</div><div class='del'>-	* ruby.c (set_arg0): use also environment variable space for setting</div><div class='del'>-	  $0.  [ruby-core:04774]</div><div class='del'>-</div><div class='del'>-Wed Apr 27 23:42:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (OPTFLAGS): default global optimization to</div><div class='del'>-	  disabled only for VC++6.</div><div class='del'>-</div><div class='del'>-Tue Apr 26 22:58:00 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_invoke_core): call Tcl's "::unknown"</div><div class='del'>-	  command when can't get information of target command.</div><div class='del'>-</div><div class='del'>-Mon Apr 25 01:18:43 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c: declare rb_warn to have variadic argument.  [ruby-core:4751]</div><div class='del'>-</div><div class='del'>-Sat Apr 23 19:45:59 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_RubyExitCommand): exit with status code</div><div class='del'>-	  via TclTkIp#_eval didn't work. [ruby-talk:139390]</div><div class='del'>-</div><div class='del'>-Fri Apr 22 16:41:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_set_exc_message): fixed memory leak.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: eTkCallbackReturn was not initialized.</div><div class='del'>-</div><div class='del'>-Thu Apr 21 00:07:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): support platforms have file separator</div><div class='del'>-	  other than /.</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (BUILD_FILE_SEPARATOR): separator</div><div class='del'>-	  of building platform.</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (CP, INSTALL): use COPY command.</div><div class='del'>-</div><div class='del'>-Wed Apr 20 23:22:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, common.mk: miniruby depens on MINIOBJS.</div><div class='del'>-</div><div class='del'>-	* dmydln.c (dln_load): dummy function to raise LoadError.</div><div class='del'>-</div><div class='del'>-	* cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby</div><div class='del'>-	  can't load extensions on Windows.</div><div class='del'>-</div><div class='del'>-Wed Apr 20 23:01:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/ifchange.bat: delete testing files.</div><div class='del'>-</div><div class='del'>-Wed Apr 20 07:27:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/configure.bat, {bcc32,win32,wince}/setup.mak:</div><div class='del'>-	  add extout option.</div><div class='del'>-</div><div class='del'>-	* bcc32/setup.mak: make configuration variables overridable.</div><div class='del'>-</div><div class='del'>-Wed Apr 20 04:15:27 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb.rb lib/irb/* doc/irb: IRB 0.9.5</div><div class='del'>-</div><div class='del'>-Tue Apr 19 23:37:09 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ftools.rb (File.safe_unlink): do not modify a symlinked file.</div><div class='del'>-</div><div class='del'>-Tue Apr 19 00:06:20 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: expand path for ext/**/extconf.rb.</div><div class='del'>-</div><div class='del'>-Mon Apr 18 11:25:14 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_run): fixed SEGV. [ruby-core:4712]</div><div class='del'>-</div><div class='del'>-Sun Apr 17 23:57:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake, parse_args): do not expand destdir.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (relative_from): treat mere drive letter as an absolute</div><div class='del'>-	  path.</div><div class='del'>-</div><div class='del'>-Sat Apr 16 17:01:16 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb (rss_recent_cache_rss):</div><div class='del'>-	  use the first date information of items as site date information</div><div class='del'>-	  if channel doesn't have date information.</div><div class='del'>-</div><div class='del'>-Sat Apr 16 15:27:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (RUBY_PROG_INSTALL): not add -p option to INSTALL.</div><div class='del'>-	  files need timestamps to be kept are only ar-archive on a few</div><div class='del'>-	  platforms, and be installed by instruby.rb but not INSTALL.</div><div class='del'>-	  fixed: [ruby-core:04721]</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: purge autoconf value variables.</div><div class='del'>-</div><div class='del'>-Sat Apr 16 10:36:01 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: quick hack... prepend DESTDIR.</div><div class='del'>-	  still have restriction on DESTDIR ("", "/", "e:")</div><div class='del'>-</div><div class='del'>-Sat Apr 16 03:59:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: check for OPENSSL_cleanse.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missing.h: ditto.</div><div class='del'>-</div><div class='del'>-Thu Apr 14 19:18:30 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (remove_file): ignore exceptions caused by</div><div class='del'>-	  chmod.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (remove_dir): try to get rights to rmdir.</div><div class='del'>-	  [ruby-Bugs:1502] (2 items backportted from HEAD, rev 1.53-54)</div><div class='del'>-</div><div class='del'>-Thu Apr 14 16:57:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: failed to remove debug information files.</div><div class='del'>-	  fixed: [ruby-dev:26034]</div><div class='del'>-</div><div class='del'>-Wed Apr 13 23:40:21 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::VERSION): 0.1.3 -&gt; 0.1.4.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::Element#converter): fixed converter</div><div class='del'>-	  transmission bug.</div><div class='del'>-</div><div class='del'>-Wed Apr 13 21:20:35 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (mingw32): extract msvcr*.dll from objdump result.</div><div class='del'>-</div><div class='del'>-Wed Apr 13 20:24:30 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (mingw32): use actual runtime DLL name as ruby DLL</div><div class='del'>-	  name and default load path.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, win32/setup.mak: ditto.</div><div class='del'>-</div><div class='del'>-Tue Apr 12 15:33:09 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_finalize): better modification than the</div><div class='del'>-	  previous commit [ruby-dev:26029].</div><div class='del'>-</div><div class='del'>-Tue Apr 12 12:38:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_finalize): fix SEGV when Tcl_GlobalEval()</div><div class='del'>-	  modifies the argument string to eval.</div><div class='del'>-</div><div class='del'>-Tue Apr 12 02:21:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_finalize): add existence check of</div><div class='del'>-	  Tcl commands before calling Tcl_GlobalEval().</div><div class='del'>-</div><div class='del'>-Mon Apr 11 23:47:21 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: [druby-ja:123] fix: When reference of my object is</div><div class='del'>-	  loaded, the object is tainted.</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Apr 11 22:18:23 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c, file.c (lstat): avoid warnings for mingw.</div><div class='del'>-</div><div class='del'>-Mon Apr 11 20:11:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_finalize): adhoc patch to avoid SEGV</div><div class='del'>-	  when exit on Tcl/Tk8.3.x.</div><div class='del'>-</div><div class='del'>-Mon Apr 11 15:26:25 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): shouldn't output hdrdir twice.</div><div class='del'>-</div><div class='del'>-Mon Apr 11 12:09:05 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub: ri data was not installed</div><div class='del'>-	  into correct path. [ruby-dev:26011]</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: defaulted install-nodoc. [ruby-dev:26011]</div><div class='del'>-</div><div class='del'>-Sun Apr 10 10:12:42 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c(ole_invoke): retry after converting Qnil</div><div class='del'>-	  to VT_EMPTY.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole/tests/testWIN32OLE.rb: correct error</div><div class='del'>-	  message string "Unknown" =&gt; "unknown".</div><div class='del'>-</div><div class='del'>-Sat Apr  9 18:20:31 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/image.rb: support to create TkImage object without</div><div class='del'>-	  creating a new image object on Tk.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: use TkCommandNames on create_self()</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/root.rb: TkRoot.to_eval() returns '.'.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: add methods to create a TkText::IndexString</div><div class='del'>-	  from (x, y) coords.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile/: add demo and update support status.</div><div class='del'>-</div><div class='del'>-Sat Apr  9 14:42:29 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb: supported configuration</div><div class='del'>-	  via Web browser.</div><div class='del'>-</div><div class='del'>-Sat Apr  9 11:59:57 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss: backoported from HEAD.</div><div class='del'>-</div><div class='del'>-	* lib/rss: refactored.</div><div class='del'>-	  - gave a name to 'x'.</div><div class='del'>-	  - undef_method -&gt; remove_method for avoiding a warning in ruby 1.6.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: @@setter -&gt; @@setters.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb</div><div class='del'>-	  (RSS::BaseListener.register_uri)</div><div class='del'>-	  (RSS::BaseListener.uri_registered?)</div><div class='del'>-	  (RSS::BaseListener.install_get_text_element):</div><div class='del'>-	  swapped the first argument and the second argument.</div><div class='del'>-</div><div class='del'>-	* lib/rss/taxonomy.rb: swapped the first argument and the second</div><div class='del'>-	  argument for RSS::BaseListener.install_get_text_element.</div><div class='del'>-	* lib/rss/image.rb: ditto.</div><div class='del'>-	* lib/rss/syndication.rb: ditto.</div><div class='del'>-	* lib/rss/dublincore.rb: ditto.</div><div class='del'>-	* lib/rss/parser.rb: ditto.</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-	* lib/rss/content.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb</div><div class='del'>-	  (RSS::BaseListener.install_setter)</div><div class='del'>-	  (RSS::BaseListener.register_uri): changed fallback way.</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb: added class name registry for complex model</div><div class='del'>-	  elements. (ex. have childlen elements, have some attributes and</div><div class='del'>-	  a child element and so on.)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/dublincore.rb: supported multiple Dublin Core items.</div><div class='del'>-	* lib/rss/maker/dublincore.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/image.rb: supproted new Dublin Core API.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/base.rb: added default current_element implementation.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/trackback.rb (RSS::TrackBackUtils.new_with_value_if_need):</div><div class='del'>-	  moved to RSS::Utils.</div><div class='del'>-</div><div class='del'>-	* lib/rss/utils.rb (RSS::Utils.new_with_value_if_need):</div><div class='del'>-	  moved from RSS::TrackBackUtils.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/image.rb: fixed invalid argument of</div><div class='del'>-	  add_need_initialize_variable bug.</div><div class='del'>-	* lib/rss/maker/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (Hash#merge): added for ruby 1.6.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::BaseModel.date_writer): changed to accept nil</div><div class='del'>-	  for date value.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* test/test_dublincore.rb: added tests for plural accessor and</div><div class='del'>-	  multiple Dublin Core items.</div><div class='del'>-</div><div class='del'>-	* test/test_setup_maker_1.0.rb: fixed swapped actual and expected</div><div class='del'>-	  values.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-assertions.rb (assert_multiple_dublin_core): added</div><div class='del'>-	  an assertion for testing multiple Dublin Core items.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_dc.rb (test_rss10_multiple): added a test</div><div class='del'>-	  for making multiple Dublin Core items.</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_dc.rb (test_date): added a test for #date=</div><div class='del'>-	  and #dc_date=.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb:</div><div class='del'>-	  new option: @options['rss-recent.use-image-link']:</div><div class='del'>-	  use image as link instread of text if available.</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb (RSS_RECENT_VERSION):</div><div class='del'>-	  0.0.5 -&gt; 0.0.6.</div><div class='del'>-</div><div class='del'>-Fri Apr  8 20:17:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): hdrdir needs to be defined also in</div><div class='del'>-	  Config::CONFIG.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration, create_makefile): get rid of recursive</div><div class='del'>-	  macro reference.</div><div class='del'>-</div><div class='del'>-Fri Apr  8 18:26:56 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c: add callbacks to OpenSSL::SSL::SSLContexts.</div><div class='del'>-	  - SSLContext#client_cert_cb=(aProc). it is called when a client</div><div class='del'>-	    certificate is requested by a server and no certificate was not</div><div class='del'>-	    set for the SSLContext. it must return an Array which includes</div><div class='del'>-	    OpenSSL::X509::Certificate and OpenSSL::PKey::RSA/DSA objects.</div><div class='del'>-	  - SSLContext#tmp_dh_callback=(aProc). it is called in key</div><div class='del'>-	    exchange with DH algorithm. it must return an OpenSSL::PKey::DH</div><div class='del'>-	    object.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): ignore the</div><div class='del'>-	  argument if it's nil.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.c</div><div class='del'>-	  (GetPrivPKeyPtr, ossl_pkey_sign): should call rb_funcall first.</div><div class='del'>-	  (DupPrivPKeyPtr): new function.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dh.c: add default DH parameters.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.h: ditto.</div><div class='del'>-</div><div class='del'>-Fri Apr  8 01:55:20 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-{en,jp}/goldberg.rb: reduced window size.</div><div class='del'>-	  [ruby-dev:25992]</div><div class='del'>-</div><div class='del'>-Thu Apr  7 23:58:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): keep directory names in Makefile as macros.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration, create_makefile): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (CXX_EXT): separate C++ extensions.</div><div class='del'>-</div><div class='del'>-Thu Apr  7 17:43:25 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): "return" event hook should be always executed</div><div class='del'>-	  if event_hooks is set.  fixed: [ruby-core:04662]</div><div class='del'>-	  (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Mon Apr  4 23:17:52 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (TkComm#array2tk_list): accept enc-mode argument to</div><div class='del'>-	  decide whether convert encoding of each element or not.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb (TkVariable#value=): fail to convert the</div><div class='del'>-	  encoding of array elements when assign an array to an TkVariable</div><div class='del'>-	  object.</div><div class='del'>-</div><div class='del'>-Mon Apr  4 10:26:48 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: fixed typo.</div><div class='del'>-</div><div class='del'>-Sun Apr  3 17:16:33 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.{h,c} (rb_w32_fdopen): avoid warning on bcc32.</div><div class='del'>-	  (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Sat Apr  2 23:38:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (CP, INSTALL): get rid of less portable options.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration, create_makefile): correct configuration</div><div class='del'>-	  variable.</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/{Makefile.sub,setup.mak}: leave prefix empty in</div><div class='del'>-	  config.status for backward compatibility.  fixed: [ruby-core:04649]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): ensure library directories get made</div><div class='del'>-	  before copying libraries there.</div><div class='del'>-</div><div class='del'>-Sat Apr  2 16:59:46 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: forgot to update RELEASE_DATE</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: fix namespace trouble when autoloading</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/palette.rb: define Tcl variable 'tkPalette' as global</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: use array2tk_list method when calling</div><div class='del'>-	  Tk.ip_eval.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/autoload.rb: add autoload entry 'TkDialogObj' and</div><div class='del'>-	  'TkWarningObj'</div><div class='del'>-</div><div class='del'>-Sat Apr  2 02:19:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (TkWindow.initialize): accept 'without_creating'</div><div class='del'>-	  option without 'widgetname' option to allow creating a widget object</div><div class='del'>-	  which is used as an argument of Tcl/Tk's widget allocation commands.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/image.rb (TkImage.initialize): accept 'imagename'</div><div class='del'>-	  option to create a image object by the given name.</div><div class='del'>-</div><div class='del'>-Thu Mar 31 22:23:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (SRC_EXT): exclude just case different suffixes on case</div><div class='del'>-	  insensitive file system platforms.</div><div class='del'>-</div><div class='del'>-	* README.EXT, README.EXT.ja (Appendix C): utility functions.</div><div class='del'>-</div><div class='del'>-Thu Mar 31 14:15:44 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should return</div><div class='del'>-	  value. [ruby-dev:25971]</div><div class='del'>-</div><div class='del'>-Thu Mar 31 08:25:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* common.mk (RUBYOPT): clear for the environment RubyGems installed.</div><div class='del'>-</div><div class='del'>-	* common.mk (clean-local): keep $(PREP) files till distclean.</div><div class='del'>-</div><div class='del'>-	* common.mk (check): do all tests.</div><div class='del'>-</div><div class='del'>-Thu Mar 31 06:00:20 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should not raise</div><div class='del'>-	  error even if the specified engine could not be loaded. (Dynamic</div><div class='del'>-	  engines don't have fixed name to load.)</div><div class='del'>-</div><div class='del'>-Thu Mar 31 00:18:27 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/ifchange.bat, win32/rm.bat: backported from HEAD.</div><div class='del'>-</div><div class='del'>-Wed Mar 30 23:44:50 2005  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in, */Makefile.sub, */configure.bat,</div><div class='del'>-	  cygwin/GNUmakefile.in, common.mk, configure.in, ext/extmk.rb,</div><div class='del'>-	  lib/mkmf.rb, instruby.rb, runruby.rb: backport extout.</div><div class='del'>-	  [ruby-dev:25963]</div><div class='del'>-</div><div class='del'>-Wed Mar 30 17:41:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add TclTkIp#_create_console() method to</div><div class='del'>-	  create a Tcl/Tk's console window.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: support TclTkIp#_create_console() method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/console.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: update RELEASE_DATE</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demo-*/check2.rb: use 'return' in the Proc object.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/**: ditto.</div><div class='del'>-</div><div class='del'>-Tue Mar 29 22:11:56 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: use DRbObject.new_with instead of reinit.</div><div class='del'>-	  [ruby-dev:25961]</div><div class='del'>-</div><div class='del'>-Mon Mar 28 23:40:40 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: move method DRbObject#reinit to DRbObject.new_with.</div><div class='del'>-	  extract method DRbObject.prepare_backtrace. add DRb.regist_server,</div><div class='del'>-	  remove_server, fetch_server. change server in thread variable if</div><div class='del'>-	  in-proc server. [druby-ja:113]</div><div class='del'>-</div><div class='del'>-	* lib/drb/gw.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Mar 28 20:43:34 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: get rid of warnings caused by a bug of VC.</div><div class='del'>-</div><div class='del'>-Mon Mar 28 08:39:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_create): Iconv::Failure requires 3</div><div class='del'>-	  arguments.  (pointed out by NaHi)</div><div class='del'>-</div><div class='del'>-Sat Mar 26 22:51:33 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (_callback_entry_class?): add for checking whether</div><div class='del'>-	  a class is available for a callback entry.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (after_cancel): add Tk.after_cancel(afterID) method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (array2tk_list): change from private module method</div><div class='del'>-	  of TkComm to public module method.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (cget): add check that slot argument is not</div><div class='del'>-	  empty string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (configinfo): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb (itemcget): add check that slot argument</div><div class='del'>-	  is not empty string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/itemconfig.rb (itemconfiginfo): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/entry.rb: add TkEntry#icursor and icursor= (alias of</div><div class='del'>-	  cursor and cursor= method).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: improve font treatment when the font name is</div><div class='del'>-	  empty string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: add :variable, :window and :procedure</div><div class='del'>-	  type.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: improve treatment of array-type</div><div class='del'>-	  tkvariable.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt.rb: add commands for zooming.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt/*: bug fix.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and add methods</div><div class='del'>-	  to call TreeCtrl commands for bindings.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/blt/*: new sample scripts.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/treectrl/*: ditto.</div><div class='del'>-</div><div class='del'>-Fri Mar 25 10:53:16 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (WIN32_LEAN_AND_MEAN): removed because a lot of</div><div class='del'>-	  troubles.  [ruby-list:40721]</div><div class='del'>-</div><div class='del'>-Thu Mar 24 23:10:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (macro_defined?): try to compile for an old compiler</div><div class='del'>-	  which doesn't bail out at #error directive.  [ruby-dev:25818]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (check_sizeof): refine logging messages.</div><div class='del'>-</div><div class='del'>-Thu Mar 24 03:57:48 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/utils.rb (WEBrick::Utils.create_listeners):</div><div class='del'>-	  - should raise ArgumentError if no port is specified.</div><div class='del'>-	  - even if the specified port is 0, all TCPServers should be</div><div class='del'>-	  initialized with the port given to the first one.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::GenericServer#initialize): if :Port</div><div class='del'>-	  parameter is 0, it should be updated with the port number which</div><div class='del'>-	  actually listened.</div><div class='del'>-</div><div class='del'>-Wed Mar 23 00:35:10 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_settracefunc.rb (test_event): added tests for</div><div class='del'>-	  "class" and "end" and "raise".</div><div class='del'>-</div><div class='del'>-Tue Mar 22 22:40:18 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): check event_hooks instead of trace_func.</div><div class='del'>-</div><div class='del'>-Tue Mar 22 17:30:44 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_add_event_hook): new function to add a hook function for</div><div class='del'>-	  interpreter events. (backported form HEAD)</div><div class='del'>-</div><div class='del'>-Sun Mar 20 22:51:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (mkmf_failed): check if Makefile is created without</div><div class='del'>-	  create_makefile.</div><div class='del'>-</div><div class='del'>-Sat Mar 19 23:48:10 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-expr-beg): returned true always.</div><div class='del'>-	  fixed: [ruby-list:40683]</div><div class='del'>-</div><div class='del'>-Sat Mar 19 00:41:02 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: add some TkFont class methods to get font</div><div class='del'>-	  information without creating a TkFont object.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and define some</div><div class='del'>-	  classes for components of Tk::TreeCtrl</div><div class='del'>-</div><div class='del'>-Thu Mar 17 17:42:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (make_struct): allow non local-id field</div><div class='del'>-	  names. [ruby-core:04575]</div><div class='del'>-</div><div class='del'>-	* struct.c (inspect_struct): ditto.</div><div class='del'>-</div><div class='del'>-Wed Mar 16 23:36:02 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): call_cfunc() should be protected.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_settracefunc.rb: added test for c-return.</div><div class='del'>-</div><div class='del'>-Wed Mar 16 22:20:25 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (str_to_id): fixed typo.</div><div class='del'>-</div><div class='del'>-Wed Mar 16 18:08:32 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): reorganize "return" event post.</div><div class='del'>-</div><div class='del'>-Tue Mar 15 23:49:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (Init_iconv): InvalidEncoding also should include</div><div class='del'>-	  Iconv::Failure.</div><div class='del'>-</div><div class='del'>-Tue Mar 15 16:38:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (ary2list): give wrong arguments to hash2kv()</div><div class='del'>-</div><div class='del'>-Mon Mar 14 19:39:33 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb (TkTimer): forgot to clear @return_value</div><div class='del'>-	  when restarting</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/sample/cd_timer.rb: new sample of TkRTTimer</div><div class='del'>-</div><div class='del'>-Mon Mar 14 12:21:03 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb (TkRTTimer): forgot to reset the callback</div><div class='del'>-	  time. So, 'continue' do all callbacks between 'stop' and 'continue'.</div><div class='del'>-</div><div class='del'>-Mon Mar 14 08:14:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (str_to_id): warn for NUL containing strings.</div><div class='del'>-</div><div class='del'>-Mon Mar 14 00:13:49 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb (TkRTTimer): correct calculation of offset</div><div class='del'>-	  value. get a little better accuracy.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/widget: use a binding with no local variables</div><div class='del'>-	  when eval a sample script.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/bind.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/tcolor: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/bind.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/tcolor: ditto.</div><div class='del'>-</div><div class='del'>-Sun Mar 13 10:04:17 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: remove test_gc. [ruby-dev:25871]</div><div class='del'>-</div><div class='del'>-Thu Mar 10 19:12:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_eventloop_ensure): mis-delete a timer</div><div class='del'>-	  handler when exit from a recursive called eventloop</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: new TkRTTimer class, which can works for a</div><div class='del'>-	  realtime operation</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkrttimer.rb: sample of TkRTTimer class</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textmark.rb: move  TkTextMark#+ and TkTextMark#- to</div><div class='del'>-	  TkText::IndexModMethods</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and</div><div class='del'>-	  add them to TkText::IndexModMethods module</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tktextio.rb: add test part of "seek by text index</div><div class='del'>-	  modifiers"</div><div class='del'>-</div><div class='del'>-Thu Mar 10 08:10:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (make_regexp): need to free internal regexp structure when</div><div class='del'>-	  compilation fails.  [ruby-talk:133228]</div><div class='del'>-</div><div class='del'>-Wed Mar  9 20:25:58 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_write): call</div><div class='del'>-	  rb_sys_fail if errno isn't 0. [ruby-dev:25831]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/cipher.rb: fix typo. [ruby-dev:24285]</div><div class='del'>-</div><div class='del'>-Wed Mar  9 15:46:35 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::GenericServer#start): should</div><div class='del'>-	  restore @token if accept failure. suggested by Dominique Brezinski.</div><div class='del'>-	  [ruby-core:04518]</div><div class='del'>-</div><div class='del'>-Wed Mar  9 13:37:57 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tktextio.rb: fix bug of handling 'end' position.</div><div class='del'>-	  support initial text, overwrite setting and pos_gravity control.</div><div class='del'>-</div><div class='del'>-Tue Mar  8 18:16:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tktextio.rb: New sample script. TkTextIO class in this</div><div class='del'>-	  sample supports to use a text widget as if it is a I/O stream (such</div><div class='del'>-	  like as StringIO class).</div><div class='del'>-</div><div class='del'>-Tue Mar  8 13:54:40 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: workaround for some of 4.4BSD-Lite derived OSs.</div><div class='del'>-</div><div class='del'>-Tue Mar  8 12:36:17 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: document from Sam Roberts</div><div class='del'>-	  &lt;sroberts@uniserve.com&gt; for getsockopt and setsockopt is merged.</div><div class='del'>-	  [ruby-doc:824]</div><div class='del'>-</div><div class='del'>-Tue Mar  8 01:27:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.66</div><div class='del'>-	  fixed: [ruby-dev:25828]</div><div class='del'>-</div><div class='del'>-Mon Mar  7 21:35:02 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/webrick/httpsd.rb: fix typo in comment. suggested by</div><div class='del'>-	  Kazuhiko Shiozaki.</div><div class='del'>-</div><div class='del'>-Mon Mar  7 14:55:43 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (block_pass): should not push unique number if a block is</div><div class='del'>-	  not an orphan.  [ruby-dev:25808]</div><div class='del'>-</div><div class='del'>-Wed Feb 16 02:55:21 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_read,</div><div class='del'>-	  ossl_ssl_write):</div><div class='del'>-	  - need to set errno on Win32 platform.</div><div class='del'>-	  - should call rb_sys_fail instead of rasing SSLError if</div><div class='del'>-	    SSL_ERROR_SYSCALL occured.</div><div class='del'>-	  - should wait for that the underlying IO become readable or</div><div class='del'>-	    writable if the error was SSL_ERROR_WANT_READ or</div><div class='del'>-	    SSL_ERROR_WANT_WRITE. [ruby-dev:25795]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb</div><div class='del'>-	  (Buffering#initialize): should set @eof and @rbuffer.</div><div class='del'>-	  (Buffering#fill_rbuff): should rescue Errno::EAGAIN.</div><div class='del'>-	  (Buffering#consume_rbuf): pointless eof flag resetting is deleted.</div><div class='del'>-	  (Buffering#read): should return an empty string if the specified</div><div class='del'>-	  size is zero.</div><div class='del'>-	  (Buffering#readpartial): new method.</div><div class='del'>-	  (Buffering#readline): fix typo.</div><div class='del'>-	  (Buffering#getc): return the first character of string correctly.</div><div class='del'>-	  (Buffering#each): fix typo.  suggested by Brian Ollenberger.</div><div class='del'>-	  (Buffering#readchar): fix typo.</div><div class='del'>-	  (Buffering#eof?): should read again it the input buffer is empty.</div><div class='del'>-	  (Buffering#do_write): should rescue Errno::EAGAIN.</div><div class='del'>-	  (Buffering#puts): use "\n" as the output field separator.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb: set non-blocking flag to the</div><div class='del'>-	  underlying IO.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: get rid of GNUmakefile generation.</div><div class='del'>-</div><div class='del'>-	* text/openssl/test_pair.rb: test for IO like methods.</div><div class='del'>-</div><div class='del'>-	* test/ruby/ut_eof.rb: test about empty file.</div><div class='del'>-</div><div class='del'>-Mon Mar  7 10:22:06 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/un.rb: should use OptionParser. (backported form HEAD)</div><div class='del'>-</div><div class='del'>-Mon Mar  7 09:18:42 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_cmp_m): should not return false but nil.</div><div class='del'>-	  fixed: [ruby-dev:25811]</div><div class='del'>-</div><div class='del'>-Mon Mar  7 01:22:14 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: remove the some codes which depend on the</div><div class='del'>-	  difference between Ruby1.8 and 1.9, because st.c on Ruby1.9</div><div class='del'>-	  was changed.</div><div class='del'>-</div><div class='del'>-Mon Mar  7 00:01:04 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fail to call TclTkLib.mainloop when $SAFE==4</div><div class='del'>-</div><div class='del'>-Sun Mar  6 16:41:33 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: HTTPHeader holds its header fields as an array</div><div class='del'>-	  (backport from CVS HEAD rev 1.112-1.123). [ruby-list:40629]</div><div class='del'>-</div><div class='del'>-	* test/net/http/test_httpheader.rb: new file.</div><div class='del'>-</div><div class='del'>-Sun Mar  6 11:47:10 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb: rdoced.  [ruby-core:4490]</div><div class='del'>-</div><div class='del'>-Sun Mar  6 11:36:37 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (File::Stat#pretty_print): Etc.getpwuid and Etc.getgrgid</div><div class='del'>-	  may return nil.  [ruby-talk:129826]</div><div class='del'>-	  reported by Daniel Berger.</div><div class='del'>-</div><div class='del'>-Sat Mar  5 18:06:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (fnmatch): removed unnecessary code. (ruby_1_8 didn't have</div><div class='del'>-	  String#clear, so [ruby-dev:24749] didn't affect it)</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (NtInitialize): ditto. (by numeric.c 1.101.2.14)</div><div class='del'>-</div><div class='del'>-Sat Mar  5 16:29:26 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: freeze callback-entry objects</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile.rb: support tile-0.6</div><div class='del'>-</div><div class='del'>-Fri Mar  4 19:39:28 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#do_includes): replace</div><div class='del'>-	  also locally defined modules.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c: backport Iconv::InvalidEncoding from CVS HEAD.</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: moved misplaced rdoc.</div><div class='del'>-</div><div class='del'>-Fri Mar  4 15:58:12 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi-lib.rb: add deprecation warning. [ruby-dev:25499]</div><div class='del'>-	  getopts.rb, parsearg.rb, importenv.rb as well.</div><div class='del'>-</div><div class='del'>-Fri Mar  4 11:17:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_rbUpdateCommand): get rid of</div><div class='del'>-	  warnings with Tcl/Tk 8.3 or former (backport from CVS_HEAD).</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_rb_threadUpdateCommand): ditto.</div><div class='del'>-</div><div class='del'>-Fri Mar  4 10:15:30 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (SortedSet::setup): a hack to shut up warning.</div><div class='del'>-	  [ruby-talk:132866]</div><div class='del'>-</div><div class='del'>-Fri Mar  4 07:07:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.63</div><div class='del'>-</div><div class='del'>-Thu Mar  3 23:49:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.62</div><div class='del'>-</div><div class='del'>-Thu Mar  3 11:49:51 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb: added site information.</div><div class='del'>-</div><div class='del'>-Wed Mar  2 19:53:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (parse_args): add DESTDIR only when not directed</div><div class='del'>-	  already.  fixed: [ruby-dev:25781]</div><div class='del'>-</div><div class='del'>-Wed Mar  2 17:14:18 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_eventloop_core): fix typo</div><div class='del'>-</div><div class='del'>-Wed Mar  2 16:00:02 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: enforce thread-check and exception-handling</div><div class='del'>-	  to avoid SEGV trouble.</div><div class='del'>-	  [KNOWN BUG] When supports pthread and running multiple Tk</div><div class='del'>-	  interpreters, an interrupt signal causes SEGV frequently. That</div><div class='del'>-	  may be a trouble of Ruby's signal handler.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil/tkutil.c; fix a bug on converting a SJIS string array</div><div class='del'>-	  to a Tcl's list string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: wrap Tcl's original "namespace" command to</div><div class='del'>-	  protect from namespace crash.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: enforce exception-handling.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: catch IRB_EXIT to work on irb.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/tcltklib.c: add TclTkLib.mainloop_thread?</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: (bug fix) callback returns a value.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb (delete): bug fix when multiple arguments.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/clock.rb: fix 'no method error'.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/clock.rb (self.clicks): accept a Symbol argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/variable.rb: be able to set default_value_type; :numeric,</div><div class='del'>-	  :bool, :string, :symbol, :list, :numlist or nil (default; same to</div><div class='del'>-	  :string). If set a type, TkVariable#value returns a value of the</div><div class='del'>-	  type.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tclx/tclx.rb: add Tk::TclX.signal to warn the</div><div class='del'>-	  risk of using TclX extension's 'signal' command.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/irbtk.rb: irb with Ruby/Tk.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-*/anilabel.rb: bug fix on 'show code'</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-*/aniwave.rb: new Ruby/Tk animation demo.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-*/pendulum.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-*/goldberg.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-*/widget: add entries of animation demos.</div><div class='del'>-</div><div class='del'>-Tue Mar  1 00:47:43 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: backport from CVS_HEAD. use</div><div class='del'>-	  MockClock.sleep instead of Kernel.sleep [ruby-dev:25387]</div><div class='del'>-</div><div class='del'>-Tue Mar  1 00:34:24 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb (Rinda::TupleSpace): improved keeper thread.</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Feb 28 11:42:23 2005  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='del'>-</div><div class='del'>-	* exception error messages updated.  [ruby-core:04497]</div><div class='del'>-</div><div class='del'>-Mon Feb 28 09:03:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (Init_socket): add bunch of Socket</div><div class='del'>-	  constants.  Patch from Sam Roberts &lt;sroberts@uniserve.com&gt;.</div><div class='del'>-	  [ruby-core:04409]</div><div class='del'>-</div><div class='del'>-Wed Feb 23 15:04:32 2005  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (split_userinfo): should split ":pass" into ""</div><div class='del'>-	  and "pass".  [ruby-dev:25667]</div><div class='del'>-</div><div class='del'>-Wed Feb 23 08:00:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_s_create): no need for negative argc check.</div><div class='del'>-	  [ruby-core:04463]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_unshift_m): ditto.</div><div class='del'>-</div><div class='del'>-Wed Feb 23 01:57:46 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (initialize): handle certs correctly. Thanks,</div><div class='del'>-	  NABEYA Kenichi. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Tue Feb 22 07:25:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (parser_yylex): identfier after dot must not be a variable.</div><div class='del'>-</div><div class='del'>-Mon Feb 21 10:04:49 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (config.h): add fcntl.</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (fcntl): ditto.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_connect): support nonblocking mode.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (wait_connectable, ruby_connect): support</div><div class='del'>-	  nonblocking connect on various platforms.</div><div class='del'>-	  all changes are backported from CVS HEAD. [ruby-core:3154],</div><div class='del'>-	  [ruby-core:4364].</div><div class='del'>-</div><div class='del'>-Sun Feb 20 00:48:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::FTP#buffer_open): access mechanism</div><div class='del'>-	  re-implemented according to RFC 1738.</div><div class='del'>-	  reported by Guillaume Marcais.  [ruby-talk:131650]</div><div class='del'>-</div><div class='del'>-Sat Feb 19 18:11:47 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRbObject#respond_to?): take two arguments.</div><div class='del'>-	  [ruby-dev:25722]</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Feb 19 13:52:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb: call OpenSSL::SSL::SSLSocket#post_connection_check</div><div class='del'>-	  after connection is made.</div><div class='del'>-</div><div class='del'>-Sat Feb 19 01:32:03 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/newton.rb: resolved LoadError.</div><div class='del'>-	  [ruby-dev:25685]</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/sample/linear.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/sample/nlsolve.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/nlsolve.rb: removed because this file</div><div class='del'>-	  is sample script and same file exists in ext/bigdecimal/sample.</div><div class='del'>-</div><div class='del'>-Fri Feb 18 17:14:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass</div><div class='del'>-	  of StandardError class, not Exception class.  [ruby-core:04429]</div><div class='del'>-</div><div class='del'>-Thu Feb 17 20:11:18 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRbServer.default_safe_level): fix typo.</div><div class='del'>-</div><div class='del'>-Thu Feb 17 20:11:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/digest/test_digest.rb: separate test case for each algorithms.</div><div class='del'>-	  [ruby-dev:25412]</div><div class='del'>-</div><div class='del'>-Thu Feb 17 11:54:00 2005  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector.rb (collect_file): now deletes paths added</div><div class='del'>-	  to $LOAD_PATH instead of restoring it verbatim.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (AutoRunner.run): fixed so that</div><div class='del'>-	  'ruby -rtest/unit -rtest1 -rtest2 -e0' will use the objectspace</div><div class='del'>-	  collector again. Also tried to simplify the calling convention.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: adjusted for new AutoRunner semantics.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Feb 17 04:21:47 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.</div><div class='del'>-	  fixed: [ruby-core:04444]</div><div class='del'>-</div><div class='del'>-Thu Feb 17 00:09:45 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/ignore_test_drb.rb: move TestDRbReusePort to new file</div><div class='del'>-	  [ruby-dev:25238]</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb: add method DRbService.ext_service, move</div><div class='del'>-	  TestDRbReusePort to new file [ruby-dev:25238]</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drbssl.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drbunix.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_drb.rb: reduce sleep.</div><div class='del'>-</div><div class='del'>-Thu Feb 17 00:02:27 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (is_defined): NODE_IASGN is an assignment.</div><div class='del'>-</div><div class='del'>-Wed Feb 16 23:34:30 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: add lazy stop_service. ([druby-ja:109])</div><div class='del'>-</div><div class='del'>-	* lib/drb/extserv.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Feb 16 17:07:57 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: Follow the change of st.c (st_foreach)</div><div class='del'>-	  [ruby-list:40623].</div><div class='del'>-	  Sometimes mis-convert from a Ruby's Array of SJIS Strings, which</div><div class='del'>-	  includes some kind of SJIS characters, to a Tcl's UTF8 list string.</div><div class='del'>-</div><div class='del'>-Mon Feb 14 23:58:17 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/parser.rb (RSS::ListenerMixin::tag_end):</div><div class='del'>-	  fixed invalid namespace handling bug.</div><div class='del'>-</div><div class='del'>-Mon Feb 14 13:12:38 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb</div><div class='del'>-	 (OpenSSL::SSL::SSLSocket#post_connection_check): new method.</div><div class='del'>-</div><div class='del'>-Mon Feb 14 00:40:49 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (InvokeMethod.perform): pass DRb info to sub thread.</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb (test_01_safe1_safe4_eval): fix test case.</div><div class='del'>-</div><div class='del'>-Sun Feb 13 23:13:46 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/dublincore.rb (RSS::DublicCoreModel#date{,=}): added</div><div class='del'>-	  convenient methods.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb (RSS::Rss::Channel#date{,=}): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/2.0.rb (RSS::Rss::Channel::Item#date{,=}): ditto.</div><div class='del'>-</div><div class='del'>-	* test/rss/: added tests for the convenient methods.</div><div class='del'>-</div><div class='del'>-Sun Feb 13 22:43:03 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRbServer): add default_safe_level, safe_level,</div><div class='del'>-	  config[:safe_level] ([druby-ja:120])</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb, ut_eval.rb, ut_safe1.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Feb 13 16:56:52 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI.start): should set reason-phrase</div><div class='del'>-	  to the value of status header field. ([ruby-dev:40617])</div><div class='del'>-</div><div class='del'>-Sun Feb 13 00:52:33 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/erb.rb (ERB::Util.h, u): make it module_function.</div><div class='del'>-</div><div class='del'>-Sat Feb 12 17:29:19 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI.open_loop): send authentication only for</div><div class='del'>-	  the URI directly specified.</div><div class='del'>-</div><div class='del'>-Sat Feb 12 15:07:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (rand_init): suppress warning.</div><div class='del'>-</div><div class='del'>-Sat Feb 12 13:54:03 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb: support https if the platform provides CA</div><div class='del'>-	  certificates.</div><div class='del'>-</div><div class='del'>-Sat Feb 12 06:18:28 2005  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check.</div><div class='del'>-	  [ruby-dev:25675]</div><div class='del'>-</div><div class='del'>-Fri Feb 11 17:40:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths):</div><div class='del'>-	  new method OpenSSL::X509::Store#set_default_paths.</div><div class='del'>-</div><div class='del'>-Fri Feb 11 11:33:53 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::HTTP#proxy_open): new option supported:</div><div class='del'>-	  :http_basic_authentication.</div><div class='del'>-	  suggested by Kent Sibilev.  [ruby-core:4392]</div><div class='del'>-</div><div class='del'>-Fri Feb 11 06:30:07 2005  George Ogata  &lt;g_ogata@optushome.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el: ignore parenthesis inside heredoc.</div><div class='del'>-	  [ruby-core:04415]</div><div class='del'>-</div><div class='del'>-Fri Feb 11 04:54:13 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: [ruby-core:04412]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/ri_generator.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Feb 10 11:14:17 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (COMMON_HEADERS): shouldn't include winsock2.h.</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb (sockaddr_storage): remove workaround for</div><div class='del'>-	  mswin32.</div><div class='del'>-</div><div class='del'>-Thu Feb 10 10:29:16 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c: don't need to check HAVE_WCOLOR_SET excluding</div><div class='del'>-	  window_color_set().</div><div class='del'>-</div><div class='del'>-Thu Feb 10 00:47:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (make_struct): fixed: [ruby-core:04402]</div><div class='del'>-</div><div class='del'>-Wed Feb  9 08:07:08 2005  Paul Duncan  &lt;pabs@pablotron.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (window_color_set): [ruby-core:04393]</div><div class='del'>-</div><div class='del'>-Tue Feb  8 23:51:47 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: reject :instance_eval, :class_eval, :module_eval</div><div class='del'>-	  [druby-ja:117]</div><div class='del'>-</div><div class='del'>-Tue Feb  8 13:06:12 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (Init_socket): SO_REUSEPORT added.</div><div class='del'>-	  [ruby-talk:130092]</div><div class='del'>-</div><div class='del'>-Tue Feb  8 09:30:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::Cookie): [ruby-talk:130040]</div><div class='del'>-</div><div class='del'>-Tue Feb  8 00:19:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Name#subdomain_of?): new method.</div><div class='del'>-	  (Resolv::DNS::Name#inspect): ditto.</div><div class='del'>-	  Suggested by Sam Roberts.  [ruby-talk:129086]</div><div class='del'>-</div><div class='del'>-Mon Feb  7 10:06:30 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c: [ruby-doc:818]</div><div class='del'>-</div><div class='del'>-Mon Feb  7 01:56:20 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb, rubytest.rb (srcdir): no longer embed srcdir into</div><div class='del'>-	  rbconfig.rb. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb (sockaddr_storage): winsock2.h have the</div><div class='del'>-	  definition of struct sockaddr_storage, but socket.c doesn't</div><div class='del'>-	  include it because this version of ruby still has binary level</div><div class='del'>-	  compatibility with winsock1.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): should support header files in</div><div class='del'>-	  depend file.</div><div class='del'>-</div><div class='del'>-Mon Feb  7 01:21:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: check if getaddrinfo() works fine only when</div><div class='del'>-	  wide-getaddrinfo option is not given.  fixed: [ruby-dev:25422]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb ($extmk): check if under ext directory.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (Logging.postpone): allow recursive operation.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (try_constant): make sure if really a constant, reduce</div><div class='del'>-	  the number of times of compile.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_macro, have_var, byte_order): new functions.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (find_library): allow directory list with separators.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (arg_config): manage provided configuration options.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (dir_config): accept arrays of directory names as</div><div class='del'>-	  default values.</div><div class='del'>-</div><div class='del'>-	* mkconfig.rb: no longer embed srcdir and compile_dir into</div><div class='del'>-	  rbconfig.rb.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): fix unbalanced parens.</div><div class='del'>-</div><div class='del'>-Sun Feb  6 19:23:01 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (stack_extend): add prototype because VC++8 doesn't</div><div class='del'>-	  accept __declspec(noinline) with K&amp;R style function definitions.</div><div class='del'>-	  (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Sun Feb  6 14:14:26 2005  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb (new_with_hash): changed messages of exception.</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb (str[fp]time): undocumented conversion</div><div class='del'>-	  specifications %[1-3] are now deprecated.</div><div class='del'>-</div><div class='del'>-Sun Feb  6 12:20:11 2005  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2ulong_pack): One too many arguments are passed</div><div class='del'>-	  to big2ulong().</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_init_copy, rb_reg_initialize_m): One too many</div><div class='del'>-	  arguments are passed to rb_reg_initialize().</div><div class='del'>-</div><div class='del'>-Sun Feb  6 03:24:20 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Resource::TXT): multiple strings was not</div><div class='del'>-	  handled.</div><div class='del'>-	  (Resolv::DNS::Resource::TXT#strings): new method to return all</div><div class='del'>-	  strings.</div><div class='del'>-	  (Resolv::DNS::Message::MessageEncoder#put_string_list): new method.</div><div class='del'>-	  (Resolv::DNS::Message::MessageDecoder#get_string_list): ditto.</div><div class='del'>-	  based on [ruby-talk:129732] by Sam Roberts.</div><div class='del'>-</div><div class='del'>-Fri Feb  4 00:30:45 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss: supported Image module.</div><div class='del'>-	  http://web.resource.org/rss/1.0/modules/image/</div><div class='del'>-</div><div class='del'>-Thu Feb  3 23:42:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_close, strio_close_read, strio_close_write):</div><div class='del'>-	  should return nil instead of self as well as IO.  [ruby-dev:25623]</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_extend, strio_putc): fill with zero</div><div class='del'>-	  extended portion.  [ruby-dev:25626]</div><div class='del'>-</div><div class='del'>-Wed Feb  2 23:52:53 2005  sheepman  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_truncate): should MEMZERO an extended</div><div class='del'>-	  part.  [ruby-dev:25618]</div><div class='del'>-</div><div class='del'>-Wed Feb  2 21:56:01 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::Element#convert): added.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: convert -&gt; need_convert.</div><div class='del'>-</div><div class='del'>-	* lib/rss/1.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/2.0.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/rss/trackback.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Feb  1 22:48:48 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRb::DRbObject#respond_to?): check marshal_dump and</div><div class='del'>-	  _dump.</div><div class='del'>-</div><div class='del'>-Tue Feb  1 00:20:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (aix): fix linker flags on AIX.  [ruby-talk:125460]</div><div class='del'>-</div><div class='del'>-Mon Jan 31 13:33:21 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add invalid namespace check</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add invalid_namespace? method</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: ditto</div><div class='del'>-</div><div class='del'>-Mon Jan 31 10:29:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]</div><div class='del'>-</div><div class='del'>-Sat Jan 29 09:42:12 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Resource::IN::SRV): Added RFC2782 SRV</div><div class='del'>-	  resource record for specifying location of services.</div><div class='del'>-</div><div class='del'>-Fri Jan 28 17:16:55 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf):</div><div class='del'>-	  parse options line for ndots option.</div><div class='del'>-	  (Resolv::Hosts#lazy_initialize): return self.</div><div class='del'>-	  (Resolv::DNS#lazy_initialize): ditto.</div><div class='del'>-	  (Resolv::DNS::Config#lazy_initialize): ditto.</div><div class='del'>-	  Suggested by Sam Roberts.</div><div class='del'>-</div><div class='del'>-Thu Jan 27 13:18:03 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* st.c (st_foreach): report success/failure by return value.</div><div class='del'>-	  [ruby-Bugs-1396]</div><div class='del'>-</div><div class='del'>-Thu Jan 27 00:15:29 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (setup): support BSD-style</div><div class='del'>-	  directory group inheritance. (backport from HEAD, rev 1.32)</div><div class='del'>-</div><div class='del'>-	* test/fileutils/fileasserts.rb (assert_same_entry): show entry</div><div class='del'>-	  difference. (backport from HEAD, rev 1.4)</div><div class='del'>-</div><div class='del'>-Wed Jan 26 23:09:11 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb (WriteAdapter#puts): should append \n, not</div><div class='del'>-	  prepend. [ruby-talk:128302] (backport from HEAD, rev 1.75)</div><div class='del'>-</div><div class='del'>-Wed Jan 26 10:51:50 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (flock_winnt, flock_win95): unlock file even if</div><div class='del'>-	  LOCK_NB is specified. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Tue Jan 25 17:11:51 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (proc_options): correct -T option in RUBYOPT. (backported</div><div class='del'>-	  from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Tue Jan 25 14:05:52 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix SEGV bug; trouble on canceling remained</div><div class='del'>-	  after scripts [ruby-dev:25479]: NULL current namespace when deleting</div><div class='del'>-	    Tk interpreter [ruby-talk:126225]</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: bug fix; TCL_ENABLE_THREAD flag is inverted</div><div class='del'>-	  [ruby-talk:126360]</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: add yet another native-thread check</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: fix SEGV bug; NULL string pointer when finalize</div><div class='del'>-	  Ruby interpreter</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: avoid warning for deleted safeTk ip frame</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/bindtag.rb: bug fix; new method of named bindtag</div><div class='del'>-	  doesn't return the created object [ruby-dev:25479]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: bug on treating arguments [ruby-dev:25479]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix; cannot accept a callback ID string for</div><div class='del'>-	  a command argument [ruby-dev:25479]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/*.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/anilabel.rb: new demo script</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/anilabel.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkHTML/ss.rb: local variable scope bug fix</div><div class='del'>-	  [ruby-dev:25479]</div><div class='del'>-</div><div class='del'>-Mon Jan 24 15:44:25 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: allow whitespace after function names.</div><div class='del'>-	  [ruby-core:4296]</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_simple.rb: adds support for private comments</div><div class='del'>-	  in the "simple" parser. [ruby-core:4301]</div><div class='del'>-</div><div class='del'>-Mon Jan 24 15:44:25 2005  Charles Mills  &lt;cmills@freeshell.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: adds support for constants</div><div class='del'>-	  (rb_define_const), accessors (rb_define_attr), and makes a</div><div class='del'>-	  couple fixes. [ruby-core:4307]</div><div class='del'>-</div><div class='del'>-Mon Jan 24 15:44:25 2005  Florian Gro  &lt;florgro@gmail.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Logic for def Builtin.method() end</div><div class='del'>-	  [ruby-core:4302]</div><div class='del'>-</div><div class='del'>-Mon Jan 24 15:44:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* document updates - [ruby-core:04296], [ruby-core:04301],</div><div class='del'>-	  [ruby-core:04302], [ruby-core:04307]</div><div class='del'>-</div><div class='del'>-Sun Jan 23 12:41:16 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/wsdlDriver.rb: from 1.5.3-ruby1.8.2, operation which has</div><div class='del'>-	  capitalized name (such as KeywordSearchRequest in AWS) is defined as</div><div class='del'>-	  a method having uncapitalized name. (converted with</div><div class='del'>-	  GenSupport.safemethodname to handle operation name 'foo-bar').  it</div><div class='del'>-	  introduced serious incompatibility; in the past, it was defined as a</div><div class='del'>-	  capitalized.</div><div class='del'>-</div><div class='del'>-	  define capitalized method as well under that circumstance.</div><div class='del'>-</div><div class='del'>-Sun Jan 23 05:24:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_to_der): should call</div><div class='del'>-	  GetOCSPReq at first.</div><div class='del'>-</div><div class='del'>-Sat Jan 22 23:09:47 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/ssl.rb (accept): rescue SSLError. [druby-ja:110]</div><div class='del'>-</div><div class='del'>-Sat Jan 22 22:35:03 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/unix.rb: fail if UNIXFileOwner is set. [druby-ja:111]</div><div class='del'>-</div><div class='del'>-Fri Jan 21 23:58:42 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_set_pos): clear EOF flag.</div><div class='del'>-	  [ruby-talk:127511]</div><div class='del'>-</div><div class='del'>-Fri Jan 21 20:07:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Config.resolv): don't raise ResolvError.</div><div class='del'>-	  reported by Sam Roberts.  [ruby-talk:127133]</div><div class='del'>-</div><div class='del'>-Fri Jan 21 16:58:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_push_glob): should work for NUL delimited patterns.</div><div class='del'>-</div><div class='del'>-Fri Jan 21 13:58:37 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (u8tou16): fixed typo. fixed: [ruby-list:40546]</div><div class='del'>-	  (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Fri Jan 21 09:30:16 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubyio.h (rb_eof_error): should mark as NORETURN. (backported</div><div class='del'>-	  from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Fri Jan 21 00:31:36 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_parser_bufsize_set): avoid VC++ warning</div><div class='del'>-	  "local variable 'size' used without having been initialized".</div><div class='del'>-</div><div class='del'>-Thu Jan 20 19:03:24 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): shouldn't set $extflags on mswin32.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (LIBRUBY_SO): should use $DLDOBJS instead of</div><div class='del'>-	  $EXTOBJS.</div><div class='del'>-	  fixed: [ruby-core:04290] (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Thu Jan 20 11:42:02 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_new4): should propagate taintedness.</div><div class='del'>-</div><div class='del'>-	* struct.c (rb_struct_set): use original method name, not callee</div><div class='del'>-	  name, to retrieve member slot.  [ruby-core:04268]</div><div class='del'>-</div><div class='del'>-	* time.c (time_strftime): protect from format modification from GC</div><div class='del'>-	  finalizers.</div><div class='del'>-</div><div class='del'>-Wed Jan 19 18:06:40 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ipaddr.rb (to_s, test_to_s): too many colons with some cases.</div><div class='del'>-	  (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Wed Jan 19 01:16:30 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf): ignore</div><div class='del'>-	  domain and search directive without an argument.</div><div class='del'>-	  reported by Sam Roberts.  [ruby-talk:126781]</div><div class='del'>-</div><div class='del'>-Tue Jan 18 15:03:05 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/ssl.rb (WEBrick::Config::SSL): the default value</div><div class='del'>-	  of :SSLEnable is false.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::Daemon.start): prepared stdio</div><div class='del'>-	  don't allow changing its mode.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):</div><div class='del'>-	  should delete trailing LF from the result of pack("m*").</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):</div><div class='del'>-	  - should delete trailing LF from the result of pack("m*").</div><div class='del'>-	  - clear Request-Line not to send the response by HTTPServer#run.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils (WEBrick::HTTPUtils.parse_qvalues):</div><div class='del'>-	  refine regexp (and change the name of a local variable).</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils#escape_path): add</div><div class='del'>-	  new method to escape URI path component.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line): should</div><div class='del'>-	  escape SCRIPT_NAME and PATH_INFO before being parsed as a URI.</div><div class='del'>-</div><div class='del'>-	* test/webrick/*, sample/webrick/httpproxy.rb: add new file.</div><div class='del'>-</div><div class='del'>-Mon Jan 17 23:33:46 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (aix): fix typo.  [ruby-talk:126401]</div><div class='del'>-</div><div class='del'>-Mon Jan 17 07:08:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c: suppress warnings.</div><div class='del'>-</div><div class='del'>-	* lib/irb/extend-command.rb (IRB::ContextExtender.def_extend_command):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-	* lib/irb/ext/history.rb (IRB::Context::set_last_value): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/irb/ext/history.rb (IRB::Context::eval_history): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/irb/locale.rb (IRB::Locale::real_load): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/irb/slex.rb (SLex::Node::create_subnode): remove garbage.</div><div class='del'>-</div><div class='del'>-Mon Jan 17 00:09:42 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb (PORT): typo fix. fixed: [ruby-core:04256]</div><div class='del'>-</div><div class='del'>-Sat Jan 15 14:57:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (proc_options): ignore trailing CRs at the end of short</div><div class='del'>-	  options as well as long options.  fixed: [ruby-core:04232]</div><div class='del'>-</div><div class='del'>-Sat Jan 15 13:35:16 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb (RSS::VERSION): 0.1.2 -&gt; 0.1.3.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: accept inheritance. [ruby-talk:126104]</div><div class='del'>-</div><div class='del'>-Thu Jan 13 04:48:53 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): don't warn nonblocking behavior by default.</div><div class='del'>-</div><div class='del'>-Wed Jan 12 00:36:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_superclass): superclass of singleton class also</div><div class='del'>-	  should be a singleton class.  fixed: [ruby-list:40519]</div><div class='del'>-</div><div class='del'>-Tue Jan 11 09:44:40 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (Init_Numeric): turn off floating point exceptions</div><div class='del'>-	  on bcc32. "1e300".to_f had crashed by overflow.</div><div class='del'>-</div><div class='del'>-Tue Jan 11 03:10:10 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (copy_entry): could not copy symbolic link.</div><div class='del'>-	  [ruby-talk:125733]</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (copy_stream): use read/write instead of</div><div class='del'>-	  sysread/syswrite.</div><div class='del'>-</div><div class='del'>-Mon Jan 10 23:08:15 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_autoload): hide internal data from ruby level.</div><div class='del'>-	  fixed: [ruby-dev:25435], [ruby-list:40498]</div><div class='del'>-</div><div class='del'>-Mon Jan 10 01:22:55 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_data_object_alloc): klass may be NULL.</div><div class='del'>-	  [ruby-list:40498]</div><div class='del'>-</div><div class='del'>-Sun Jan  9 03:12:58 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): warn nonblocking behavior.</div><div class='del'>-	  (io_readpartial): new method IO#readpartial.</div><div class='del'>-</div><div class='del'>-Sat Jan  8 04:38:47 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: Kernel#y requires an argument.</div><div class='del'>-</div><div class='del'>-Fri Jan  7 21:12:29 2005  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (rand_init): use ALLOC_N instead of ALLOCA_N</div><div class='del'>-	  [ruby-dev:25426]</div><div class='del'>-</div><div class='del'>-Fri Jan  7 18:03:35 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (mark_locations_array): avoid core dump with -O3.</div><div class='del'>-	  [ruby-dev:25424]</div><div class='del'>-</div><div class='del'>-Thu Jan  6 20:31:07 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_end): should return value. (backported</div><div class='del'>-	  from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Thu Jan  6 19:55:13 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_close): didn't close socket handle.</div><div class='del'>-	  [ruby-dev:25414]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_open_osfhandle): bcc32's _open_osfhandle</div><div class='del'>-	  never set EMFILE.</div><div class='del'>-</div><div class='del'>-Thu Jan  6 17:14:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (random_seed): O_NONBLOCK isn't defined on some</div><div class='del'>-	  platforms. [ruby-dev:25417]</div><div class='del'>-</div><div class='del'>-Thu Jan  6 13:45:35 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/time.rb: recognize +00:00 and GMT as a localtime.</div><div class='del'>-</div><div class='del'>-Thu Jan  6 07:58:28 2005  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb (RDoc::RDoc.usage_no_exit): Allow for colons</div><div class='del'>-	  in path names on DOS machines. (thanks to Johan Nilsson)</div><div class='del'>-</div><div class='del'>-Wed Jan  5 20:16:32 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (limited_big_rand): didn't work if SIZEOF_BDIGITS == 2.</div><div class='del'>-	  [ruby-dev:25408]</div><div class='del'>-</div><div class='del'>-	* random.c (random_seed): refined.</div><div class='del'>-</div><div class='del'>-Wed Jan  5 12:49:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_initialize): Thread objects cannot be initialized</div><div class='del'>-	  again.  fixed: [ruby-core:04067]</div><div class='del'>-</div><div class='del'>-Wed Jan  5 10:48:16 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_s_mkdir): win32 special processing doesn't need any</div><div class='del'>-	  longer. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible</div><div class='del'>-	  interface. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_w32_rmdir): new function. (backported from CVS</div><div class='del'>-	  HEAD)</div><div class='del'>-</div><div class='del'>-Wed Jan  5 02:30:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (init_by_array): imported from mt19937ar-cok.tgz.</div><div class='del'>-	  (genrand_int32): ditto.</div><div class='del'>-	  (genrand_real): replaced with genrand_res53 in mt19937ar-cok.</div><div class='del'>-	  (rand_init): support bignum for longer seed.</div><div class='del'>-	  (random_seed): generate longer seed.</div><div class='del'>-	  (make_mask): new function.</div><div class='del'>-	  (limited_rand): ditto.</div><div class='del'>-	  (limited_big_rand): ditto.</div><div class='del'>-	  (rb_f_rand): call limited_rand and limited_big_rand.</div><div class='del'>-	  [ruby-dev:25403]</div><div class='del'>-</div><div class='del'>-Tue Jan  4 23:25:29 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_rand): should return positive random number.</div><div class='del'>-	  [ruby-dev:25401]</div><div class='del'>-</div><div class='del'>-Tue Jan  4 11:15:29 2005  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_rand): do not use rb_big_modulo to generate</div><div class='del'>-	  random bignums.  [ruby-dev:25396]</div><div class='del'>-</div><div class='del'>-Mon Jan  3 14:01:54 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (random_seed): don't use /dev/urandom if it is not</div><div class='del'>-	  character device.</div><div class='del'>-</div><div class='del'>-Mon Jan  3 11:37:42 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* random.c (random_seed): use /dev/urandom if available.</div><div class='del'>-	  [ruby-dev:25392]</div><div class='del'>-</div><div class='del'>-Mon Jan  3 07:46:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpauth/htpasswd.rb (WEBrick::Htpasswd#reload):</div><div class='del'>-	  raise NotImplementedError if password is encrypted by digest</div><div class='del'>-	  algorithms. This patch is contributed by sheepman. [ruby-list:40467]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpauth/digestauth.rb</div><div class='del'>-	  (WEBrick::HTTPAuth::DigestAuth#_authenticate): fix digest calculation.</div><div class='del'>-	  This patch is contributed by sheepman. [ruby-list:40482]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/{httpauth.rb,httpauth/basicauth.rb,httpproxy.rb}: use</div><div class='del'>-	  pack/unpack-template char "m" instead of lib/base64.rb to do base64</div><div class='del'>-	  encoding/decoding. fixed: [ruby-dev:25336]</div><div class='del'>-</div><div class='del'>-	* test/webrick/test_httpauth.rb: new file.</div><div class='del'>-</div><div class='del'>-Sat Jan  1 04:20:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ns_spki.c (ossl_spki_set_challenge): should call</div><div class='del'>-	  StringValue before GetSPKI. fixed: [ruby-dev:25359].</div><div class='del'>-</div><div class='del'>-Sat Jan  1 01:13:28 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_autoload): [ruby-dev:25373]</div><div class='del'>-</div><div class='del'>-Fri Dec 31 14:10:43 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item): Fix problem</div><div class='del'>-	  if heading contains formatting.</div><div class='del'>-</div><div class='del'>-Thu Dec 30 00:41:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (svalue_to_avalue): [ruby-dev:25366]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_justify): [ruby-dev:25367]</div><div class='del'>-</div><div class='del'>-Wed Dec 29 11:07:07 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/kilmer.rb: Update to use new</div><div class='del'>-	  sections.</div><div class='del'>-</div><div class='del'>-Tue Dec 28 22:31:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_justify): create buffer string after argument type</div><div class='del'>-	  conversion.  fixed: [ruby-dev:25341]</div><div class='del'>-</div><div class='del'>-Tue Dec 28 15:41:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c (reinit): should initialize all static</div><div class='del'>-	  variables.  fixed: [ruby-list:40445]</div><div class='del'>-</div><div class='del'>-Tue Dec 28 15:25:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): second byte is up to</div><div class='del'>-	  0xfe.</div><div class='del'>-</div><div class='del'>-	* ext/nkf/lib/kconv.rb (Kconv#kconv): should handle UTF8 and UTF16</div><div class='del'>-	  properly.</div><div class='del'>-</div><div class='del'>-Tue Dec 28 13:35:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure</div><div class='del'>-	  freeing internal zstreams.  fixed: [ruby-dev:25309]</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.</div><div class='del'>-</div><div class='del'>-Tue Dec 28 12:26:45 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, win32/setup.mak (RDOCTARGET, install,</div><div class='del'>-	  install-nodoc, install-doc): rdoc support for mswin32.</div><div class='del'>-</div><div class='del'>-	* win32/configure.bat (--enable-install-doc, --disable-install-doc):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-Mon Dec 27 20:02:14 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix SEGV bug when deleting Tk interp</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto</div><div class='del'>-</div><div class='del'>-Mon Dec 27 16:55:17 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): should use</div><div class='del'>-	  rb_hash_new to get exactly a Hash. fix [ruby-dev:25325].</div><div class='del'>-</div><div class='del'>-Mon Dec 27 16:29:56 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_justify): [ruby-dev:25341]</div><div class='del'>-</div><div class='del'>-Mon Dec 27 15:47:48 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/fileasserts.rb: sync with HEAD.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Dec 27 15:21:07 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mv): should raise error when moving a</div><div class='del'>-	  directory to the (empty) directory. [ruby-talk:124368]</div><div class='del'>-	  (backport from HEAD 1.48)</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mv): wrongly did not overwrite file on Win32</div><div class='del'>-	  platforms. (backport from HEAD 1.48)</div><div class='del'>-</div><div class='del'>-Sat Dec 25 11:11:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.2 released.</div><div class='del'>-</div><div class='del'>-Sat Dec 25 04:23:49 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir, mkdir_p): should ensure directory</div><div class='del'>-	  permission. (backportted from HEAD, 1.47)</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (traverse, remove_dir): untaint trasted</div><div class='del'>-	  objects. (backportted from HEAD, 1.46)</div><div class='del'>-</div><div class='del'>-Sat Dec 25 01:28:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c: cancel io_reopen() change on Dec. 24th.</div><div class='del'>-</div><div class='del'>-	* dln.c: use &lt;dlfcn.h&gt; for NetBSD.  [ruby-dev:25313]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_select): IO list could be altered.  [ruby-dev:25312]</div><div class='del'>-</div><div class='del'>-Fri Dec 24 23:51:48 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: bcc32 should use RTL dll (backport from HEAD)</div><div class='del'>-	  [ruby-dev:25306]</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch]: ditto.</div><div class='del'>-</div><div class='del'>-Fri Dec 24 23:27:18 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/image.rb: TkPhotoImage#cget bug fix</div><div class='del'>-</div><div class='del'>-Fri Dec 24 18:39:25 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch]: failed to compile on bcc32 (and probably wince)</div><div class='del'>-	  [ruby-dev:25306]</div><div class='del'>-</div><div class='del'>-Fri Dec 24 02:52:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_reopen, rb_io_reopen): prohibit to change access mode for</div><div class='del'>-	  special IO ports.  [ruby-dev:25225]</div><div class='del'>-</div><div class='del'>-Fri Dec 24 02:22:53 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (rb_syck_io_str_read): [ruby-core:03973]</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_loader_transfer): check type conversion.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_parser_assign_io, rb_new_syck_node): duck</div><div class='del'>-	  typing.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_parser_s_alloc, syck_parser_initialize):</div><div class='del'>-	  allocation framework.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_s_alloc, syck_emitter_initialize):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-Fri Dec 24 01:21:00 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt.rb: add BLT extension support</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt/*.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/blt/tile/*.rb: ditto</div><div class='del'>-</div><div class='del'>-Thu Dec 23 23:36:28 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_setgroups): check if the argument lenght is</div><div class='del'>-	  modified.  fixed: [ruby-dev:25285]</div><div class='del'>-</div><div class='del'>-Thu Dec 23 13:13:33 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: define TclTkLib::COMPILE_INFO and</div><div class='del'>-	  RELEASE_DATE</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: define TkUtil::RELEASE_DATE</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: define Tk::RELEASE_DATE</div><div class='del'>-</div><div class='del'>-Thu Dec 23 09:38:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_reopen): restore exact mode.  fixed: [ruby-core:04003]</div><div class='del'>-</div><div class='del'>-Thu Dec 23 00:16:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (bsdi): use $(CC) for LDSHARED.  fixed [ruby-dev:25270]</div><div class='del'>-</div><div class='del'>-Wed Dec 22 11:14:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_mode_modenum): replace O_ACCMODE with O_RDWR.</div><div class='del'>-	  fixed: [ruby-dev:25273]</div><div class='del'>-</div><div class='del'>-Wed Dec 22 08:34:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/sym.c (rb_dlsym_initialize): extract internal pointers after</div><div class='del'>-	  all argument conversion.  fixed: [ruby-dev:25271]</div><div class='del'>-</div><div class='del'>-Wed Dec 22 00:08:01 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/*, test/soap/*, sample/soap/authheader/*: eval cleanup.</div><div class='del'>-</div><div class='del'>-Tue Dec 21 22:07:33 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,</div><div class='del'>-	  ossl_asn1_decode_all): temporary value should be marked volatile.</div><div class='del'>-</div><div class='del'>-Tue Dec 21 14:40:02 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,</div><div class='del'>-	  ossl_asn1_decode_all): use rb_str_new4 to avoid SEGV.</div><div class='del'>-	  fix [ruby-dev:25261]</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_asn1.rb: add tests for OpenSSL::ASN1.</div><div class='del'>-</div><div class='del'>-Tue Dec 21 12:22:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_reopen): keep duplex pipe in correct mode for exception</div><div class='del'>-	  safeness.  fixed: [ruby-dev:25152]</div><div class='del'>-</div><div class='del'>-Tue Dec 21 12:10:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/grid.rb: rescue bug of 'grid configure' on Tcl/Tk8.3-</div><div class='del'>-</div><div class='del'>-Tue Dec 21 00:53:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse): [ruby-dev:25261]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): ditto.</div><div class='del'>-</div><div class='del'>-Mon Dec 20 23:22:26 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* added files:</div><div class='del'>-	  * lib/soap/mapping/wsdl*.rb</div><div class='del'>-	  * lib/wsdl/soap/element.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/simpleContent.rb</div><div class='del'>-</div><div class='del'>-	* modified files:</div><div class='del'>-	  * lib/soap/*</div><div class='del'>-	  * lib/wsdl/*</div><div class='del'>-	  * lib/xsd/*</div><div class='del'>-	  * test/soap/*</div><div class='del'>-	  * test/wsdl/*</div><div class='del'>-	  * test/xsd/*</div><div class='del'>-	  * sample/soap/*</div><div class='del'>-	  * sample/sdl/*</div><div class='del'>-</div><div class='del'>-	* summary</div><div class='del'>-	  * imported from the soap4r repository.  Version: 1.5.3-ruby1.8.2</div><div class='del'>-</div><div class='del'>-	  * added several XSD basetype support: nonPositiveInteger,</div><div class='del'>-	    negativeInteger, nonNegativeInteger, unsignedLong, unsignedInt,</div><div class='del'>-	    unsignedShort, unsignedByte, positiveInteger</div><div class='del'>-</div><div class='del'>-	  * HTTP client connection/send/receive timeout support.</div><div class='del'>-</div><div class='del'>-	  * HTTP client/server gzipped content encoding support.</div><div class='del'>-</div><div class='del'>-	  * improved WSDL schema definition support; still is far from</div><div class='del'>-	    complete, but is making step by step improovement.</div><div class='del'>-</div><div class='del'>-Mon Dec 20 22:56:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (stack_end_address): gcc noinline attribute is available since</div><div class='del'>-	  gcc-3.1.</div><div class='del'>-</div><div class='del'>-Mon Dec 20 14:07:02 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: supports new features of Tcl/Tk8.5a2</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/clock.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/panedwindow.rb: ditto</div><div class='del'>-</div><div class='del'>-Mon Dec 20 12:47:13 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/https.rb,protocols.rb,telnets.rb: delete</div><div class='del'>-	  doc and code about SSLContext#{key_file,cert_file}.</div><div class='del'>-	  fixed: [ruby-dev:25243]</div><div class='del'>-</div><div class='del'>-Mon Dec 20 12:42:17 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fwrite): workaround for MSVCRT's bug.</div><div class='del'>-	  fixed: [ruby-core:03982]</div><div class='del'>-</div><div class='del'>-Mon Dec 20 11:21:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_eof): check if closed before clearerr().</div><div class='del'>-	  fixed: [ruby-dev:25251]</div><div class='del'>-</div><div class='del'>-Mon Dec 20 03:30:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session#initialize): empty session id was</div><div class='del'>-	  used if request had no session key.  fixed: [ruby-core:03981]</div><div class='del'>-</div><div class='del'>-Mon Dec 20 01:51:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (make_struct): [ruby-dev:25249]</div><div class='del'>-</div><div class='del'>-Mon Dec 20 00:28:20 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/SHIFT-JIS.rb: backported from CVS HEAD.</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/SHIFT_JIS.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Dec 19 17:19:48 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509store.c</div><div class='del'>-	  (ossl_x509store_set_time): add OpenSSL::X509::Store#time=.</div><div class='del'>-	  (ossl_x509stctx_set_time): add OpenSSL::X509::StoreContext#time=.</div><div class='del'>-</div><div class='del'>-	* test/openssl/ossl_x509store.rb: test certificate validity times.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional</div><div class='del'>-	  second argument to specify the output format (see also</div><div class='del'>-	  X509_NAME_print_ex).</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_init): new constants:</div><div class='del'>-	  OpenSSL::X509::Name::COMPAT, OpenSSL::X509::Name::RFC2253,</div><div class='del'>-	  OpenSSL::X509::ONELINE, OpenSSL::X509::MULTILINE.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name::RFC2253DN):</div><div class='del'>-	  new module to provide the parse for RFC2253 DN format.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name.parse_rfc2253):</div><div class='del'>-	  new method to parse RFC2253 DN format.</div><div class='del'>-</div><div class='del'>-	* test/openssl/ossl_x509name.rb: add tests about RFC2253 DN.</div><div class='del'>-</div><div class='del'>-	* text/openssl/ssl_server.rb: try to listen ports from 20443 to 20542</div><div class='del'>-	  while EADDRINUSE is raised.</div><div class='del'>-</div><div class='del'>-	* all changes in this entry are backport from 1.9.</div><div class='del'>-</div><div class='del'>-Sun Dec 19 17:24:59 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (enable_rpath): use rpath flag to embed the library</div><div class='del'>-	  path into extensions on ELF environment.  [ruby-dev:25035]</div><div class='del'>-</div><div class='del'>-Sun Dec 19 11:01:25 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: use standalone runner for -e.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): accept</div><div class='del'>-	  multiple -p and -x options.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#recursive_collect):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-Sat Dec 18 16:36:23 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate):</div><div class='del'>-	  disallow interrupt by type conversion.  fixed: [ruby-dev:25226]</div><div class='del'>-</div><div class='del'>-Sat Dec 18 15:16:41 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpauth.rb,</div><div class='del'>-	  lib/webrick/httpauth/{basicauth.rb,digestauth.rb}: use</div><div class='del'>-	  pack/unpack-template char "m" instead of lib/base64.rb to do base64</div><div class='del'>-	  encoding/decoding.</div><div class='del'>-</div><div class='del'>-Sat Dec 18 10:51:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_open_dir): new function.  [ruby-dev:25242]</div><div class='del'>-</div><div class='del'>-Fri Dec 17 18:07:01 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/readline/test_readline.rb: fix for BSD. Thanks, GOTOU Yuuzou.</div><div class='del'>-	  fixed: [ruby-dev:25218]</div><div class='del'>-</div><div class='del'>-Fri Dec 17 16:28:12 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fix bug on setting up system encoding</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: fix error on require process</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: fix abnormal termination error on Windows</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/virtevent.rb: TkVirtualEvent::PreDefVirtEvent.new()</div><div class='del'>-	  accepts event-sequence arguments</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: fail to dump embedded images</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: tag_nextrange and tag_prevrange returns wrong</div><div class='del'>-	  types of values</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: nextrange and prevrange returns wrong</div><div class='del'>-	  types of values</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: add TkText::IndexModMethods module and</div><div class='del'>-	  TkText::IndexString class to treat text index modifiers</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: use TkText::IndexModMethods module</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textmark.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textimage.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textwindow.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textimage.rb: wrong gravity of text mark for embedded</div><div class='del'>-	  image</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textwindow.rb: wrong gravity of text mark for</div><div class='del'>-	  embedded window</div><div class='del'>-</div><div class='del'>-Fri Dec 17 13:50:00 2004  Akiyoshi, Masamichi  &lt;akiyoshi@hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* vms/vmsruby_private.c, vms/vmsruby_private.h: private routines</div><div class='del'>-	  for VMS port are added.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_init): change to call VMS private intialization routine.</div><div class='del'>-</div><div class='del'>-Fri Dec 17 13:33:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session#initialize): control adding</div><div class='del'>-	  session_id hidden fields.  fixed: [ruby-talk:123850]</div><div class='del'>-</div><div class='del'>-Thu Dec 16 23:25:25 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb, lib/drb/ssl.rb: backported from CVS HEAD.</div><div class='del'>-	  [druby-ja:101]</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drb.rb: adjust and reduce sleep (backported from</div><div class='del'>-	  CVS HEAD.)</div><div class='del'>-</div><div class='del'>-Thu Dec 16 18:44:58 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait</div><div class='del'>-	  for reading request till data arrive. [ruby-talk:121068]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::GenericServer#start_thread):</div><div class='del'>-	  should log about all accepted socket. [ruby-core:03962]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/accesslog.rb (WEBrick::AccessLog#setup_params):</div><div class='del'>-	  "%%" and "%u" are supported. [webricken:135]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::FileHandler#check_filename):</div><div class='del'>-	  :NondisclosureName is acceptable if it is Enumerable.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/config.rb (WEBrick::Config::FileHandler):</div><div class='del'>-	  default value of :NondisclosureName is [".ht*", "*~"].</div><div class='del'>-</div><div class='del'>-Thu Dec 16 18:36:52 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_raise): refine message format.</div><div class='del'>-</div><div class='del'>-Thu Dec 16 16:29:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/widget: modify version check for</div><div class='del'>-	  supporting features</div><div class='del'>-</div><div class='del'>-Thu Dec 16 16:03:50 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/bindtag.rb: bug fix [ruby-talk: 123667]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: accept :idle for the interval argument</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add TkComm._callback_entry?()</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: add MultiTkIp.cb_entry_class</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: use TkComm._callback_entry?()</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvastag.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/optiondb.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textwindow.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/validation.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: ditto</div><div class='del'>-</div><div class='del'>-Thu Dec 16 03:14:28 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (basic_encode): return value of pack('m') may</div><div class='del'>-	  include multiple CR/LFs.  Backported from main trunk (rev 1.112).</div><div class='del'>-	  [ruby-dev:25212]</div><div class='del'>-</div><div class='del'>-Thu Dec 16 00:33:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (Init_Hash): remove custom "hash" and "eql?".</div><div class='del'>-</div><div class='del'>-Wed Dec 15 18:57:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (Set::eql): wrong definition.  [ruby-dev:25207]</div><div class='del'>-</div><div class='del'>-Wed Dec 15 18:48:42 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (window_subwin): call NUM2INT() before</div><div class='del'>-	  GetWINDOW(). (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Wed Dec 15 17:03:50 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.[ch] (rb_w32_isatty): new function to replace MSVCRT's</div><div class='del'>-	  isatty because it never sets errno. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Wed Dec 15 15:39:32 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_to_a): avoid SEGV</div><div class='del'>-	  (rollback the previous commit).</div><div class='del'>-</div><div class='del'>-Wed Dec 15 16:10:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_obj_id_obsolete): warn always.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_enable_super): ditto.</div><div class='del'>-</div><div class='del'>-Wed Dec 15 15:31:02 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (Set#==): [ruby-dev:25206]</div><div class='del'>-</div><div class='del'>-Wed Dec 15 14:22:10 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_fdisset): check whether the handle is valid.</div><div class='del'>-	  fixed: [ruby-core:03959]</div><div class='del'>-</div><div class='del'>-Wed Dec 15 10:30:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]</div><div class='del'>-</div><div class='del'>-Tue Dec 14 17:10:09 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_close): need to reset osfhnd().</div><div class='del'>-</div><div class='del'>-Tue Dec 14 14:03:57 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_raise): avoid buffer overrun.</div><div class='del'>-	  [ruby-dev:25187]</div><div class='del'>-</div><div class='del'>-Tue Dec 14 12:36:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::initialize): generate new</div><div class='del'>-	  session if given session_id does not exist.  [ruby-list:40368]</div><div class='del'>-</div><div class='del'>-Mon Dec 13 18:13:52 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (stack_end_address): new function to obtain stack end address.</div><div class='del'>-	  stack_end_address calls __builtin_frame_address(0) to obtain the</div><div class='del'>-	  frame pointer of a stack frame of stack_end_address.  The address</div><div class='del'>-	  is the stack pointer of the caller's stack frame.</div><div class='del'>-	  (SET_STACK_END): use stack_end_address.</div><div class='del'>-	  This makes the conservative garbage collector to scan a stack frame</div><div class='del'>-	  of the garbage_collect function itself.  This is required because</div><div class='del'>-	  callee-save registers may be stored in the frame.</div><div class='del'>-	  [ruby-dev:25158]</div><div class='del'>-</div><div class='del'>-Mon Dec 13 00:58:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (cleanpath_aggressive): make it private.</div><div class='del'>-	  (cleanpath_conservative): ditto.</div><div class='del'>-	  Suggested by Daniel Berger.  [ruby-core:3914]</div><div class='del'>-</div><div class='del'>-Sun Dec 12 20:06:38 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: backported from CVS HEAD.</div><div class='del'>-</div><div class='del'>-Sun Dec 12 10:35:10 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Don't</div><div class='del'>-	  show an accessor's r/w flag if none was specified</div><div class='del'>-</div><div class='del'>-Sun Dec 12 10:14:03 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb (RDoc::RDoc::parse_files): Never exclude files</div><div class='del'>-	  explicitly given on the command line.</div><div class='del'>-</div><div class='del'>-Sun Dec 11 23:54:07 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/*: update to support libraries in ActiveTcl8.4.12.0</div><div class='del'>-	  (see ext/tk/ChangeLog.tkextlib).</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/scrollframe.rb: add a new sample.</div><div class='del'>-</div><div class='del'>-Sat Dec 11 20:12:21 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: add DRbRemoteError. [ruby-list:40348],</div><div class='del'>-	  [ruby-list:40390]</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_drb.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Dec 11 15:38:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/jcode.rb (String::succ): [ruby-dev:25156]</div><div class='del'>-</div><div class='del'>-Sat Dec 11 12:41:55 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (run_trap_eval): prototype; avoid VC++ warnings.</div><div class='del'>-</div><div class='del'>-	* ext/socket/getaddrinfo.c: fix typo. fixed: [ruby-core:03947]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c: need to include dln.h.</div><div class='del'>-</div><div class='del'>-Sat Dec 11 00:10:18 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_reopen): [ruby-dev:25150]</div><div class='del'>-</div><div class='del'>-Fri Dec 10 08:39:27 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_listen): get OpenFile just before calling</div><div class='del'>-	  listen(2).  fixed: [ruby-dev:25149]</div><div class='del'>-</div><div class='del'>-Thu Dec  9 17:00:00 2004  Akiyoshi, Masamichi  &lt;akiyoshi@hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c, ext/socket/getaddrinfo.c: port to VMS</div><div class='del'>-</div><div class='del'>-Thu Dec  9 16:31:02 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c (GetDBM): typo.</div><div class='del'>-</div><div class='del'>-Thu Dec  9 16:05:00 2004  Akiyoshi, Masamichi  &lt;akiyoshi@hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h: change path of vms.h</div><div class='del'>-	* vms/vms.h: delete reference for snprintf()</div><div class='del'>-	* vms/config.h: new file</div><div class='del'>-	* vms/config.h_in: deleted</div><div class='del'>-</div><div class='del'>-Thu Dec  9 14:38:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_inspect): escape # which starts an expression</div><div class='del'>-	  substitution.  fixed: [ruby-core:03922]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_dump): not escape # which isn't a substitution.</div><div class='del'>-</div><div class='del'>-Thu Dec  9 10:54:36 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dbm/dbm.c (fdbm_select): [ruby-dev:25132]</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c: ditto.</div><div class='del'>-</div><div class='del'>-Thu Dec  9 03:08:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_init): set root-win title to "ruby" when</div><div class='del'>-	  the running script is '-e one-liner' or '-' (stdin).</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: add find_library("#{lib}#{ver}",..) for</div><div class='del'>-	  stub libs</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/textmark.rb: TkTextMarkCurrent and TkTextMarkAnchor</div><div class='del'>-	  have a wrong parent class.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: rename TkDialog2 --&gt; TkDialogObj and</div><div class='del'>-	  TkWarning2 --&gt; TkWarningObj (old names are changed to alias names)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: bug fix of treatment of 'prev_command'</div><div class='del'>-	  option and hashes for configuration</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/dialog.rb: add TkDialogObj#name to return the</div><div class='del'>-	  button name</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/radiobutton.rb: rename enbugged method value() ==&gt;</div><div class='del'>-	  get_value() and value=(val) ==&gt; set_value(val).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: add TkMenu.new_menuspec</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: add alias (TkMenuButton = TkMenubutton,</div><div class='del'>-	  TkOptionMenuButton = TkOptionMenubutton)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: new method aliases (same as option keys of</div><div class='del'>-	  event_generate) for Event object</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: configinfo returns proper types of values</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bind methods accept subst_args + block</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvastag.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/frame.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/toplevel.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: ditto and bug fix</div><div class='del'>-</div><div class='del'>-Wed Dec  8 23:54:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Typo</div><div class='del'>-	  meant that h2 tag was invisible.</div><div class='del'>-</div><div class='del'>-Wed Dec  8 21:56:31 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss, test/rss, sample/rss: backported from CVS HEAD.</div><div class='del'>-</div><div class='del'>-Wed Dec  8 14:31:36 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fwrite): change dereference for cosmetic reason.</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): [ruby-dev:25104]</div><div class='del'>-</div><div class='del'>-Tue Dec  7 19:08:00 2004  Akiyoshi, Masamichi  &lt;akiyoshi@hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fwrite): fix offset incrementation (for VMS and Human68k)</div><div class='del'>-</div><div class='del'>-Tue Dec  7 00:27:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_setgroups): [ruby-dev:25081]</div><div class='del'>-</div><div class='del'>-Mon Dec  6 18:08:10 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_eqq): document fix.  [ruby-talk:122541]</div><div class='del'>-</div><div class='del'>-Mon Dec  6 17:19:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.</div><div class='del'>-	  (backported from CVS HEAD)  [ruby-dev:24993]</div><div class='del'>-</div><div class='del'>-Mon Dec  6 10:18:17 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in):</div><div class='del'>-	  Oops - 1.8 doesn't have String#clear</div><div class='del'>-</div><div class='del'>-Mon Dec  6 09:59:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_connect): use rb_str_new4().</div><div class='del'>-	  [ruby-dev:25052]</div><div class='del'>-</div><div class='del'>-Mon Dec  6 01:42:08 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,</div><div class='del'>-	  ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,</div><div class='del'>-	  ossl_rsa_private_decrypt): should take an optional argument</div><div class='del'>-	  to specify padding mode. [ruby-talk:122539]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): add new constants</div><div class='del'>-	  PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING</div><div class='del'>-	  under OpenSSL::PKey::RSA.</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_pkey_rsa.rb: new file.</div><div class='del'>-</div><div class='del'>-Sun Dec  5 19:39:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Completion#complete): new parameter</div><div class='del'>-	  to direct case insensitiveness.</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#order!): ignore case only for long</div><div class='del'>-	  option.  [ruby-dev:25048]</div><div class='del'>-</div><div class='del'>-Sat Dec  4 22:54:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_write): remove rb_str_locktmp().  [ruby-dev:25050]</div><div class='del'>-</div><div class='del'>-	* io.c (io_fwrite): takes VALUE string as an argument.</div><div class='del'>-	  [ruby-dev:25050]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_connect): remove rb_str_locktmp().</div><div class='del'>-	  [ruby-dev:25050]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (udp_connect): [ruby-dev:25045]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (udp_bind): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (udp_send): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (bsock_send): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_recvfrom): ditto.</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_hash): should provide "hash" method where "eql?"</div><div class='del'>-	  is redefined.  [ruby-talk:122482]</div><div class='del'>-</div><div class='del'>-Sat Dec  4 14:54:52 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): use volatile `tmp' rather than `args'.</div><div class='del'>-	  [ruby-core:03882]</div><div class='del'>-</div><div class='del'>-Sat Dec  4 14:28:56 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::Section::set_comment):</div><div class='del'>-	  Section comments may now be bracketed by lines which are</div><div class='del'>-	  ignored. You can now write</div><div class='del'>-	      # -----------</div><div class='del'>-	      # :section: Dave's Section</div><div class='del'>-	      # comment material</div><div class='del'>-	      # -----------</div><div class='del'>-	   The lines before :section: are removed, and identical lines at the end are</div><div class='del'>-	   also removed if present.</div><div class='del'>-</div><div class='del'>-Sat Dec  4 03:33:45 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/readline.c: check $SAFE. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-	* test/readline/test_readline.rb: added tests for readline.</div><div class='del'>-	  (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Sat Dec  4 02:24:00 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c: add constant NKF::VERSION</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c(guess): this becomes an alias of guess2</div><div class='del'>-</div><div class='del'>-	* ext/nkf/test.rb(mime_out2): add --no-cp932</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: original nkf2 revision 1.47</div><div class='del'>-</div><div class='del'>-Sat Dec  4 00:35:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]</div><div class='del'>-</div><div class='del'>-Fri Dec  3 18:57:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb: 1.9 marshaling support back-ported.</div><div class='del'>-	  [ruby-core:03871]</div><div class='del'>-</div><div class='del'>-Fri Dec  3 13:45:20 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): copy arguments to frame.argv.</div><div class='del'>-	  [ruby-core:03861]</div><div class='del'>-</div><div class='del'>-Fri Dec  3 12:25:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* st.h: fix prototypes.</div><div class='del'>-</div><div class='del'>-Fri Dec  3 00:21:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (convert_type): use rb_respond_to() again.</div><div class='del'>-	  [ruby-dev:25021]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_respond_to): funcall respond_to? if it's redefined.</div><div class='del'>-	  [ruby-dev:25021]</div><div class='del'>-</div><div class='del'>-Fri Dec  3 01:55:24 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: widget configuration by TkWindow#method_missing</div><div class='del'>-	  returns proper object. "widget.option = val" returns val, and</div><div class='del'>-	  "widget.option(val)" returns self.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/font.rb: TkFont#replace accepts only one font argument.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/radiobutton.rb: add TkRadiobutton#value and</div><div class='del'>-	  TkRadiobutton#value=(val).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/spinbox.rb: callback substitution support on</div><div class='del'>-	  command option.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/widget: bug fix (wrong image height)</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='del'>-</div><div class='del'>-Fri Dec  3 00:11:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_file_initialize): [ruby-dev:25032]</div><div class='del'>-</div><div class='del'>-Thu Dec  2 16:41:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_protect): prevent continuations created inside from being</div><div class='del'>-	  called from the outside.  [ruby-dev:25003]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_callcc, rb_cont_call): prohibit calling from different</div><div class='del'>-	  signal contexts.  [ruby-dev:25022]</div><div class='del'>-</div><div class='del'>-Thu Dec  2 09:57:24 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be</div><div class='del'>-	  marshaled again.  [ruby-core:03862]</div><div class='del'>-</div><div class='del'>-Thu Dec  2 09:30:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_mark): mark thread group.  [ruby-dev:25020]</div><div class='del'>-</div><div class='del'>-	* eval.c (thgroup_add): check whether the argument is really a Thread.</div><div class='del'>-</div><div class='del'>-Thu Dec  2 07:57:16 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_ctl): [ruby-dev:25019]</div><div class='del'>-</div><div class='del'>-Wed Dec  1 02:21:02 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (sighandler): call handler immediately only for default</div><div class='del'>-	  handlers.  [ruby-dev:25003]</div><div class='del'>-</div><div class='del'>-Tue Nov 30 23:38:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): remove unnecessary rb_str_resize().</div><div class='del'>-	  [ruby-dev:24996]  (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-	* io.c (io_readpartial): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): ditto.</div><div class='del'>-</div><div class='del'>-Tue Nov 30 16:18:50 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): remove unnecessary rb_str_resize().</div><div class='del'>-	  [ruby-dev:24996]</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): ditto.</div><div class='del'>-</div><div class='del'>-Tue Nov 30 00:49:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_sysread): use temporary lock.  [ruby-dev:24992]</div><div class='del'>-</div><div class='del'>-Mon Nov 29 16:06:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_write): insufficiently filled string</div><div class='del'>-	  being extended when overwriting.  [ruby-core:03836]</div><div class='del'>-</div><div class='del'>-Mon Nov 29 15:59:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb (OpenStruct::method_missing): check method</div><div class='del'>-	  duplication for -d.</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb (OpenStruct::initialize): ditto.</div><div class='del'>-</div><div class='del'>-Mon Nov 29 15:22:28 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/io/nonblock/test_flush.rb: abandon tests when io/nonblock is</div><div class='del'>-	  not supported.</div><div class='del'>-</div><div class='del'>-Mon Nov 29 03:08:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (convert_type): direct call conversion methods for the</div><div class='del'>-	  performance.  [ruby-core:03845]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_funcall_rescue): new function.</div><div class='del'>-</div><div class='del'>-	* object.c (rb_Array): avoid using rb_respond_to().</div><div class='del'>-</div><div class='del'>-	* object.c (rb_Integer): ditto.</div><div class='del'>-</div><div class='del'>-	* parse.y (reduce_nodes): empty body should return nil.</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_aset): the original string should not be</div><div class='del'>-	  affected by modifying duplicated string.  [ruby-dev:24981]</div><div class='del'>-</div><div class='del'>-Mon Nov 29 13:57:38 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): search executable file if no program</div><div class='del'>-	  name given. (backported from CVS HEAD)</div><div class='del'>-</div><div class='del'>-Mon Nov 29 13:37:54 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (fptr_finalize): must not use FILE after fclose().</div><div class='del'>-	  [ruby-dev:24985]</div><div class='del'>-</div><div class='del'>-Mon Nov 29 13:16:31 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): push back the last space before next</div><div class='del'>-	  loop because CharNext() eats it.</div><div class='del'>-</div><div class='del'>-Mon Nov 29 01:18:18 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_check_writable): call io_seek regardless of</div><div class='del'>-	  NEED_IO_SEEK_BETWEEN_RW.  [ruby-dev:24986]</div><div class='del'>-</div><div class='del'>-Sat Nov 27 21:43:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c: avoid data lost with nonblocking fd and</div><div class='del'>-	  stdio buffering in sync mode.  [ruby-dev:24966]</div><div class='del'>-	  based on matz's patch [ruby-dev:24967]</div><div class='del'>-	  (io_fwrite): new primitive writing function which writes</div><div class='del'>-	  directly if sync mode.</div><div class='del'>-	  (rb_io_fwrite): wrapper for io_fwrite now.</div><div class='del'>-	  (io_write): call io_fwrite instead of rb_io_fwrite.</div><div class='del'>-</div><div class='del'>-Sat Nov 27 14:44:15 2004  Kent Sibilev  &lt;ksibilev@bellsouth.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::initialize): create_new_id is</div><div class='del'>-	  now a instance method.  [ruby-core:03832]</div><div class='del'>-</div><div class='del'>-Sat Nov 27 09:41:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_fread): old rb_io_fread with file closing checking.</div><div class='del'>-	  (rb_io_fread): wrapper for io_fread now.</div><div class='del'>-	  [ruby-dev:24964]</div><div class='del'>-</div><div class='del'>-Fri Nov 26 18:02:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Tk.destroy uses TkWindow#epath</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/image.rb: bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/wm.rb: add 'iconphoto' method(Windows only)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/*: some methods uses TkWindow#epath</div><div class='del'>-</div><div class='del'>-Fri Nov 26 13:49:06 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_missing): raise TypeError for classes do not</div><div class='del'>-	  have allocators.  [ruby-core:03752]</div><div class='del'>-</div><div class='del'>-	* lib/erb.rb: add RDoc by James Edward Gray II.  [ruby-core:03786]</div><div class='del'>-</div><div class='del'>-Fri Nov 26 13:29:02 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Break</div><div class='del'>-	  out of preprocessing when we find a :section: directive (previously cleared out the</div><div class='del'>-	  comment, but this apparently now generates an error in gsub!)</div><div class='del'>-</div><div class='del'>-Fri Nov 26 00:17:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): move StringValue() check before GetOpenFile().</div><div class='del'>-	  [ruby-dev:24959]</div><div class='del'>-</div><div class='del'>-Thu Nov 25 20:14:57 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/thwait.rb (ThreadsWait#join_nowait): abnormally terminated</div><div class='del'>-	  threads should be also processed.  [ruby-talk:121320]</div><div class='del'>-</div><div class='del'>-Thu Nov 25 10:14:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (push_braces): do not reuse buffer strings.  [ruby-core:03806]</div><div class='del'>-</div><div class='del'>-Thu Nov 25 07:59:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): stringify non-nil buffer argument, and always</div><div class='del'>-	  taint the result.  [ruby-dev:24955]</div><div class='del'>-</div><div class='del'>-Wed Nov 24 01:01:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): integer conversion should be prior to</div><div class='del'>-	  GetOpenFile().  [ruby-dev:24952]</div><div class='del'>-</div><div class='del'>-	* configure.in, io.c: cancel [ ruby-Patches-1074 ].</div><div class='del'>-</div><div class='del'>-Tue Nov 23 08:09:50 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb: improve usability of TkOptionMenubutton</div><div class='del'>-</div><div class='del'>-Tue Nov 23 02:00:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_chown): integer conversion should be prior to</div><div class='del'>-	  GetOpenFile().  [ruby-dev:24949]</div><div class='del'>-</div><div class='del'>-Tue Nov 23 00:10:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_chown): integer conversion should be prior to</div><div class='del'>-	  GetOpenFile().  [ruby-dev:24947]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_truncate): ditto.</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_truncate): ditto.</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_seek): use NUM2OFFT().</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-non-block-do-re): should not match words</div><div class='del'>-	  start with block keyword and underscore.  [ruby-core:03719]</div><div class='del'>-</div><div class='del'>-Mon Nov 22 22:33:02 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Don't use names</div><div class='del'>-	  of variables or constants when oarsing 'require'</div><div class='del'>-</div><div class='del'>-Mon Nov 22 00:13:35 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_seek): should retrieve dir_data after NUM2INT().</div><div class='del'>-	  [ruby-dev:24941]</div><div class='del'>-</div><div class='del'>-Sat Nov 20 23:57:33 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/README (et al): Add a new directive, :section:, and</div><div class='del'>-	  change the output format to accomodate. :section: allows to to</div><div class='del'>-	  group together methods, attributes, constants, etc under</div><div class='del'>-	  headings in the output. If used, a table of contents is</div><div class='del'>-	  generated.</div><div class='del'>-</div><div class='del'>-Sat Nov 20 23:56:54 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/options.rb (Options::parse): Force --inline-source if</div><div class='del'>-	  --one-file option given</div><div class='del'>-</div><div class='del'>-Sat Nov 20 23:55:19 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_splice): should place index wrapping after</div><div class='del'>-	  possible modification.  [ruby-dev:24940]</div><div class='del'>-</div><div class='del'>-Sat Nov 20 13:26:03 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/utf8tbl.c: original revision 1.7</div><div class='del'>-</div><div class='del'>-Sat Nov 20 05:34:24 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf-utf8/nkf.c: original nkf.c rev:1.40</div><div class='del'>-</div><div class='del'>-	* ext/nkf/test.rb: add test for mime encode/decode</div><div class='del'>-</div><div class='del'>-Sat Nov 20 01:37:34 2004  Johan Holmberg  &lt;holmberg@iar.se&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (error_print): nicer traceback at interrupt.</div><div class='del'>-	  [ruby-core:03774]</div><div class='del'>-</div><div class='del'>-Sat Nov 20 00:07:16 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): internal buffer should not be listed by</div><div class='del'>-	  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]</div><div class='del'>-</div><div class='del'>-Fri Nov 19 01:20:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise</div><div class='del'>-	  exception if data corresponding to session specified from the</div><div class='del'>-	  client does not exist.</div><div class='del'>-</div><div class='del'>-Fri Nov 19 00:59:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): internal buffer should not be listed by</div><div class='del'>-	  ObjectSpace.each_object().  [ruby-dev:24919]</div><div class='del'>-</div><div class='del'>-Thu Nov 18 18:41:08 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_stringchar.rb (test_bang): added.</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_upcase_bang, rb_str_capitalize_bang)</div><div class='del'>-	  (rb_str_swapcase_bang): missing rb_str_modify().  [ruby-dev:24915]</div><div class='del'>-</div><div class='del'>-Thu Nov 18 00:21:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (proc_getpgrp): prohibit for $SAFE=2.</div><div class='del'>-	  [ruby-dev:24899]</div><div class='del'>-</div><div class='del'>-	* process.c (get_pid): ditto.  [ruby-dev:24904]</div><div class='del'>-</div><div class='del'>-	* process.c (get_ppid): ditto.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_delete): defer rb_ary_modify() until actual</div><div class='del'>-	  modification.  [ruby-dev:24901]</div><div class='del'>-</div><div class='del'>-Thu Nov 18 10:10:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c, rubyio.h (rb_io_modenum_flags): exported.</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_initialize): allow Fixnum as mode as</div><div class='del'>-	  well as IO.new does.  [ruby-dev:24896]</div><div class='del'>-</div><div class='del'>-Wed Nov 17 23:42:40 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_settracefunc.rb: added.  [ruby-dev:24884]</div><div class='del'>-</div><div class='del'>-Wed Nov 17 13:56:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]</div><div class='del'>-</div><div class='del'>-	* parse.y (string_content): should not use FL_UNSET.</div><div class='del'>-</div><div class='del'>-	* node.h (NODE_NEWLINE): remove unused bit to utilize flag field</div><div class='del'>-	  in nodes.</div><div class='del'>-</div><div class='del'>-Wed Nov 17 13:09:40 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (test): should build ruby.exe</div><div class='del'>-	  before running test. [ruby-core:03756]</div><div class='del'>-</div><div class='del'>-Wed Nov 17 04:33:01 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c: all features are backport from 1.9. [ruby-dev:24826]</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2ulong_pack): new function to pack Bignums.</div><div class='del'>-</div><div class='del'>-Wed Nov 17 03:42:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_splice): move rb_str_modify() after</div><div class='del'>-	  StringValue(), which may alter the receiver.  [ruby-dev:24878]</div><div class='del'>-</div><div class='del'>-Tue Nov 16 23:45:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_divmod): protect float values from GC by</div><div class='del'>-	  assignment to local variables.  [ruby-dev:24873]</div><div class='del'>-</div><div class='del'>-Tue Nov 16 16:30:21 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/setup.mak (-epilogue-): remove config.h and</div><div class='del'>-	  config.status to force updating them.</div><div class='del'>-</div><div class='del'>-Tue Nov 16 16:20:45 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): position was ignored when a</div><div class='del'>-	  buffer was passed.  http://www.yo.rim.or.jp/~nov/d/?date=20041116#p03</div><div class='del'>-</div><div class='del'>-Tue Nov 16 11:19:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::options): use</div><div class='del'>-	  Regexp conversion.</div><div class='del'>-</div><div class='del'>-Tue Nov 16 01:41:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_mod_check): frozen check should be separated.</div><div class='del'>-	  [ruby-core:3742]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_update): pedantic check to detect</div><div class='del'>-	  rb_ary_to_ary() to modify the receiver.  [ruby-dev:24861]</div><div class='del'>-</div><div class='del'>-Mon Nov 15 13:50:52 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_justify): typo fixed.  [ruby-dev:24851]</div><div class='del'>-</div><div class='del'>-Mon Nov 15 11:50:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle</div><div class='del'>-	  operator symbols.  [ruby-talk:120177]</div><div class='del'>-</div><div class='del'>-Sun Nov 14 13:27:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PP#object_address_group): remove odd number of 'f'</div><div class='del'>-	  prefixed to negative address.</div><div class='del'>-</div><div class='del'>-Sun Nov 14 08:51:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: Logger just expects</div><div class='del'>-	  Logger#datetime_format to be used for Time#strftime independently of</div><div class='del'>-	  locale. [ruby-dev:24828]</div><div class='del'>-</div><div class='del'>-Fri Nov 12 15:03:26 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_options): now we cannot call rb_glob() before</div><div class='del'>-	  ruby_init(), so call rb_w32_cmdvector() at ruby_options().</div><div class='del'>-</div><div class='del'>-	* win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and</div><div class='del'>-	  export it.</div><div class='del'>-</div><div class='del'>-Fri Nov 12 14:08:01 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/event.rb: remove $LOADED_FEATURES trick</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: ditto</div><div class='del'>-</div><div class='del'>-Fri Nov 12 00:31:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c (fgdbm_store): StringValue() may alter string</div><div class='del'>-	  pointer.  [ruby-dev:24783]</div><div class='del'>-</div><div class='del'>-Thu Nov 11 17:36:12 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_globi): also should call back via rb_glob_caller().</div><div class='del'>-	  [ruby-dev:24775]</div><div class='del'>-</div><div class='del'>-Thu Nov 11 16:47:21 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_file.rb (test_truncate_wbuf): we want to test</div><div class='del'>-	  only File#truncate, not behaviour of seek(2).</div><div class='del'>-</div><div class='del'>-Thu Nov 11 09:41:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (push_braces): was confusing VALUE and char*.</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_push_glob): Dir.glob should have called its block.</div><div class='del'>-</div><div class='del'>-Thu Nov 11 01:52:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (syserr_initialize): use stringified object.</div><div class='del'>-	  [ruby-dev:24768]</div><div class='del'>-</div><div class='del'>-Wed Nov 10 22:49:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (SimpleDelegator::dup): wrong number of</div><div class='del'>-	  arguments.</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (DelegateClass::dup): ditto.</div><div class='del'>-</div><div class='del'>-Wed Nov 10 12:31:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* README.EXT (Example): extconf.rb is indispensable now.</div><div class='del'>-</div><div class='del'>-Wed Nov 10 03:33:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix SEGV when compiled with Tcl/Tk8.3.x</div><div class='del'>-	  or older</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tile/style.rb: bug fix</div><div class='del'>-</div><div class='del'>-Tue Nov  9 14:27:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Officious): moved from DefaultList.</div><div class='del'>-</div><div class='del'>-Tue Nov  9 01:05:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_glob2): do not allocate buffer from heap to avoid</div><div class='del'>-	  memory leaks.  use string object for buffering instead.</div><div class='del'>-	  [ruby-dev:24738]</div><div class='del'>-</div><div class='del'>-	* dir.c (join_path): ditto.</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): external input buffer may be modified even after</div><div class='del'>-	  rb_str_locktmp().  [ruby-dev:24735]</div><div class='del'>-</div><div class='del'>-	* dir.c (fnmatch): p or s may be NULL.  [ruby-dev:24749]</div><div class='del'>-</div><div class='del'>-Tue Nov  9 00:53:53 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (slow_match): avoid GCC 3.4.x warnings.</div><div class='del'>-</div><div class='del'>-Tue Nov  9 00:50:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb: Change version numbering of RDoc and ri</div><div class='del'>-</div><div class='del'>-Mon Nov  8 23:38:35 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/extservm.rb: add DRb::ExtServManager#uri=.</div><div class='del'>-	  [ruby-dev:24743]</div><div class='del'>-</div><div class='del'>-Mon Nov  8 22:20:19 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='del'>-	  Fix bug where parent class wasn't being detected if the</div><div class='del'>-	  child class was defined using the A::B notation.</div><div class='del'>-</div><div class='del'>-Mon Nov  8 00:14:13 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add setup for mignw32 cross compiling.</div><div class='del'>-	  [ruby-talk:119413]</div><div class='del'>-</div><div class='del'>-Sun Nov  7 23:49:26 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bind-event methods accept multi substitution</div><div class='del'>-	  arguments.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvastag.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/texttag.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib: ditto.</div><div class='del'>-</div><div class='del'>-Sat Nov  6 14:58:44 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::HTTPServer#start): remove</div><div class='del'>-	  :DoNotReverseLookup option. (Socket#do_not_reverse_lookup is a</div><div class='del'>-	  ruby 1.9 feature)</div><div class='del'>-</div><div class='del'>-Sat Nov  6 11:31:04 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb (_parse): checks whether zone was given.</div><div class='del'>-</div><div class='del'>-Sat Nov  6 00:46:27 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_locktmp): check STR_TMPLOCK flag before</div><div class='del'>-	  locking.  [ruby-dev:24727]</div><div class='del'>-</div><div class='del'>-Fri Nov  5 18:12:42 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/scrollable.rb: divide Scrollable module into</div><div class='del'>-	  X_Scrollable and Y_Scrollable</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/entry.rb: include X_Scrollable instead of Scrollable</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/autoload.rb: define autoload for X_Scrollable and</div><div class='del'>-	  Y_Scrollable</div><div class='del'>-</div><div class='del'>-Fri Nov  5 16:05:32 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: TkComm._at() supprts both of "@x,y" and "@x"</div><div class='del'>-</div><div class='del'>-Fri Nov  5 13:22:58 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: sorry. bug fix again.</div><div class='del'>-</div><div class='del'>-Fri Nov  5 13:17:54 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: bug fix</div><div class='del'>-</div><div class='del'>-Fri Nov  5 08:52:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_mark): stricter GC stack check.</div><div class='del'>-</div><div class='del'>-Fri Nov  5 08:52:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_mark): stricter GC stack check.</div><div class='del'>-</div><div class='del'>-Fri Nov  5 08:34:43 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): should have removed rb_str_unlocktmp(str).</div><div class='del'>-	  [ruby-dev:24708]</div><div class='del'>-</div><div class='del'>-Thu Nov  4 21:25:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): string modify check no longer based on</div><div class='del'>-	  tmplock.  [ruby-dev:24706]</div><div class='del'>-</div><div class='del'>-Thu Nov  4 19:27:46 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_open): fix typo.</div><div class='del'>-</div><div class='del'>-Thu Nov  4 15:02:14 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: forget to initialize instance_variables</div><div class='del'>-	  of TkVarAccess objects</div><div class='del'>-</div><div class='del'>-Thu Nov  4 09:11:35 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_mark): enable GC stack checking.</div><div class='del'>-</div><div class='del'>-Thu Nov  4 03:11:33 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): lock strings temporarily.  [ruby-dev:24687]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_recvfrom): tmplock input buffer.</div><div class='del'>-	  [ruby-dev:24705]</div><div class='del'>-</div><div class='del'>-Wed Nov  3 22:32:12 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c: On NetBSD don't use setruid() and setrgid().</div><div class='del'>-</div><div class='del'>-Wed Nov  3 22:24:17 2004  Daigo Moriwaki  &lt;techml@sgtpepper.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpauth/digestauth.rb: use Base64.encode64 to</div><div class='del'>-	  avoid warnings.</div><div class='del'>-</div><div class='del'>-Wed Nov  3 17:19:59 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_uniq_bang): do not push frozen string from hash</div><div class='del'>-	  table.  [ruby-dev:24695]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_and): ditto.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_or): ditto.</div><div class='del'>-</div><div class='del'>-Wed Nov  3 17:13:02 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (pipe_open): fix compile error</div><div class='del'>-</div><div class='del'>-Wed Nov  3 16:58:07 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: support to use different Tcl commands between</div><div class='del'>-	  configure and configinfo</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/font.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/itemconfig.rb: support to use different Tcl commands</div><div class='del'>-	  between item_configure and item_configinfo</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/itemfont.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/extconf.rb: install SUPPORT_STATUS</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib: some bug fixes (see ext/tk/ChangeLog.tkextlib)</div><div class='del'>-</div><div class='del'>-Wed Nov  3 16:30:41 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf: follow nkf 2.0.4</div><div class='del'>-</div><div class='del'>-Wed Nov  3 15:53:34 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/rss/test_maker_*.rb: added tests for RSS Maker.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker.rb: added RSS Maker.</div><div class='del'>-</div><div class='del'>-	* lib/rss/maker/*.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Nov  2 16:35:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/enumerator.c (each_cons_i): pass copy of an</div><div class='del'>-	  internal consequent array.  [ruby-talk:118691]</div><div class='del'>-</div><div class='del'>-Tue Nov  2 16:05:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_fork): need to flush stdout and stderr before</div><div class='del'>-	  fork(2).  [ruby-talk:117715]</div><div class='del'>-</div><div class='del'>-Tue Nov  2 01:20:09 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): nail down dyna_var node when Proc object</div><div class='del'>-	  or continuation is created.  [ruby-dev:24671]</div><div class='del'>-</div><div class='del'>-Mon Nov  1 13:59:28 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead.</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/extconf.rb, ext/fcntl/extconf.rb,</div><div class='del'>-	  ext/stringio/extconf.rb: added.</div><div class='del'>-</div><div class='del'>-	* MANIFEST, ext/**/MANIFEST: removed.</div><div class='del'>-</div><div class='del'>-	* README.EXT, README.EXT.ja: remove MANIFEST stuff.</div><div class='del'>-</div><div class='del'>-Mon Nov  1 01:14:52 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_open): create copy of popen specifier.  [ruby-dev:24656]</div><div class='del'>-</div><div class='del'>-Mon Nov  1 00:36:48 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* main.c (_stklen): move to gc.c.</div><div class='del'>-</div><div class='del'>-Sun Oct 31 00:22:28 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_locktmp): lock string temporarily.</div><div class='del'>-</div><div class='del'>-	* string.c (str_independent): add tmplock check.</div><div class='del'>-</div><div class='del'>-	* io.c (io_write): lock output string temporarily.</div><div class='del'>-	  [ruby-dev:24649]</div><div class='del'>-</div><div class='del'>-	* io.c (io_write): use rb_str_locktmp().</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): ditto.</div><div class='del'>-</div><div class='del'>-Sat Oct 30 06:53:24 2004  Peter Vanbroekhoven  &lt;peter.vanbroekhoven@cs.kuleuven.ac.be&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): NODE_XSTR should pass copy of literal string.</div><div class='del'>-</div><div class='del'>-Sat Oct 30 00:19:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): protect continuation jump in.</div><div class='del'>-	  [ruby-dev:24642]</div><div class='del'>-</div><div class='del'>-Fri Oct 29 21:27:51 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_check_initialized): new function to check uninitialized</div><div class='del'>-	  object.  [ruby-talk:118234]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_path), io.c (rb_io_closed): check if initialized.</div><div class='del'>-</div><div class='del'>-Fri Oct 29 10:00:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): forget to free some memory chunks.</div><div class='del'>-	  [ruby-core:03611]</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,</div><div class='del'>-	  should be wrapped by PUSH_TAG/POP_TAG().  [ruby-dev:24627]</div><div class='del'>-</div><div class='del'>-Thu Oct 28 08:42:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_forward): use ANSI style.</div><div class='del'>-	  (argf_read): call argf_forward with argv argument.</div><div class='del'>-	  [ruby-dev:24624]</div><div class='del'>-</div><div class='del'>-Thu Oct 28 23:32:54 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_detach_input): resets klass of z-&gt;input if</div><div class='del'>-	  z-&gt;input isn't nil.</div><div class='del'>-</div><div class='del'>-Thu Oct 28 23:19:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: prefer relative path.  [ruby-talk:93037]</div><div class='del'>-</div><div class='del'>-Wed Oct 27 18:49:11 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c: prototype; rb_io_fptr_finalize() doesn't return any value</div><div class='del'>-	  at this version.</div><div class='del'>-</div><div class='del'>-Wed Oct 27 17:27:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_sweep): recover ruby_in_compile variable.</div><div class='del'>-</div><div class='del'>-Wed Oct 27 09:17:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): use a string object for exception safeness.</div><div class='del'>-	  [ruby-dev:24601]</div><div class='del'>-</div><div class='del'>-Tue Oct 26 23:52:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_getline): rs modification check should not interfere in the loop.</div><div class='del'>-</div><div class='del'>-Tue Oct 26 23:30:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::add_class_or_module):</div><div class='del'>-	  Restore correct :nopdoc: behavior with nested classes and modules.</div><div class='del'>-</div><div class='del'>-Tue Oct 26 18:21:29 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (RESIZE_CAPA): check string attribute before modifying</div><div class='del'>-	  capacity member of string structure.  [ruby-dev:24594]</div><div class='del'>-</div><div class='del'>-Tue Oct 26 11:33:26 2004  David G. Andersen  &lt;dga@lcs.mit.edu&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain</div><div class='del'>-	  performance.  [ruby-talk:117701]</div><div class='del'>-</div><div class='del'>-Tue Oct 26 10:56:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): raise ArgumentError for extra</div><div class='del'>-	  arguments, unless (digit)$ style used.</div><div class='del'>-</div><div class='del'>-Tue Oct 26 11:33:26 2004  David G. Andersen  &lt;dga@lcs.mit.edu&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain</div><div class='del'>-	  performance.  [ruby-talk:117701]</div><div class='del'>-</div><div class='del'>-Tue Oct 26 10:56:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): raise ArgumentError for extra</div><div class='del'>-	  arguments, unless (digit)$ style used.</div><div class='del'>-</div><div class='del'>-Mon Oct 25 18:35:39 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (isUNCRoot): should check NUL after '.'.</div><div class='del'>-	  [ruby-dev:24590]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (isUNCRoot): fixed buffer overrun.</div><div class='del'>-</div><div class='del'>-Mon Oct 25 08:03:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (get_backtrace): ignore illegal backtrace.  [ruby-dev:24587]</div><div class='del'>-</div><div class='del'>-Sun Oct 24 00:41:09 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load, search_required, rb_require_safe, rb_require): use</div><div class='del'>-	  frozen shared string to avoid outside modification.  [ruby-dev:24580]</div><div class='del'>-</div><div class='del'>-Sat Oct 23 22:18:32 2004  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (frame_free): Guy Decoux solved the leak problem.</div><div class='del'>-	  Thanks.  [ruby-core:03549]</div><div class='del'>-</div><div class='del'>-Sat Oct 23 00:20:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_append_input): clear klass for z-&gt;input</div><div class='del'>-	  to avoid potential vulnerability.</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_run): always use zstream_append_input()</div><div class='del'>-	  to avoid SEGV.  [ruby-dev:24568]</div><div class='del'>-</div><div class='del'>-Fri Oct 22 12:02:28 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_alias): was warning for wrong condition.</div><div class='del'>-	  [ruby-dev:24565]</div><div class='del'>-</div><div class='del'>-Fri Oct 22 10:36:37 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#meta_vars):</div><div class='del'>-	  should check if path_info is not nil.</div><div class='del'>-</div><div class='del'>-Fri Oct 22 00:22:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_shift_buffer): should restore class</div><div class='del'>-	  field of a buffer.  [ruby-dev:24562]</div><div class='del'>-</div><div class='del'>-Fri Oct 22 00:20:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_include): should not treat char as negative value.</div><div class='del'>-	  [ruby-dev:24558]</div><div class='del'>-</div><div class='del'>-Thu Oct 21 21:32:30 2004  IWATSUKI Hiroyuki  &lt;don@na.rim.or.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb (PStore#transaction): Use the empty content when a</div><div class='del'>-	  file is not found.  [ruby-dev:24561]</div><div class='del'>-</div><div class='del'>-Thu Oct 21 19:06:15 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):</div><div class='del'>-	  ensure to close @body. (http://bugs.debian.org/277520)</div><div class='del'>-</div><div class='del'>-Thu Oct 21 00:36:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_alias): should warn on method discarding.</div><div class='del'>-	  [ruby-dev:24546]</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_expand_buffer_into): hide internal</div><div class='del'>-	  string buffer by clearing klass.  [ruby-dev:24548]</div><div class='del'>-</div><div class='del'>-Wed Oct 20 19:45:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_gsub): 	reentrant check.  [ruby-dev:24432]</div><div class='del'>-</div><div class='del'>-	* backport all SEGV bug fixes from CVS HEAD.  [ruby-dev:24536]</div><div class='del'>-</div><div class='del'>-Wed Oct 20 04:17:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element</div><div class='del'>-	  is a string.  [ruby-dev:24490]</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c (fsdbm_delete_if): ditto.</div><div class='del'>-</div><div class='del'>-Wed Oct 20 01:37:18 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_times): Array#* should return an instance of</div><div class='del'>-	  the class of right operand.  [ruby-dev:24526]</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_detach_buffer): should not expose</div><div class='del'>-	  class-less object to Ruby world. [ruby-dev:24530]</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_dup): provide Proc#dup as well.  [ruby-talk:116915]</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_exec): stack marking position may be higher than</div><div class='del'>-	  expected.  thanks to Guy Decoux.  [ruby-core:03527]</div><div class='del'>-</div><div class='del'>-Tue Oct 19 22:43:12 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_attr): If</div><div class='del'>-	  we come across 'attr' in a context where it isn't</div><div class='del'>-	  followed by a symbol, just issue a warning.</div><div class='del'>-</div><div class='del'>-Tue Oct 19 20:41:37 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole.c(ole_invoke): retrieve the result value when</div><div class='del'>-	  retrying the IDispatch::invoke.</div><div class='del'>-</div><div class='del'>-Tue Oct 19 17:24:11 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): block string buffer modification during</div><div class='del'>-	  rb_io_fread() by freezing it temporarily. [ruby-dev:24479]</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_push_glob): block call at once the end of method.</div><div class='del'>-	  [ruby-dev:24487]</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/enumerator.c (enum_each_slice): remove</div><div class='del'>-	  rb_gc_force_recycle() to prevent potential SEGV.</div><div class='del'>-	  [ruby-dev:24499]</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string</div><div class='del'>-	  buffer by clearing klass.  [ruby-dev:24510]</div><div class='del'>-</div><div class='del'>-Tue Oct 19 16:12:18 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: backport from CVS HEAD</div><div class='del'>-</div><div class='del'>-Tue Oct 19 08:54:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h, object.c (rb_class_inherited_p): export.</div><div class='del'>-</div><div class='del'>-Tue Oct 19 08:46:57 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_upto): method result must be checked.  [ruby-dev:24504]</div><div class='del'>-</div><div class='del'>-	* eval.c (error_print): ditto.  [ruby-dev:24519]</div><div class='del'>-</div><div class='del'>-Mon Oct 18 23:37:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0): check inheritance by the internal function.</div><div class='del'>-	  [ruby-dev:24515]</div><div class='del'>-</div><div class='del'>-Mon Oct 18 15:58:01 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* range.c (range_step, range_each): need cast.</div><div class='del'>-</div><div class='del'>-Fri Oct 29 16:34:19 2004  Daiki Ueno  &lt;ueno@unixuser.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-parse-partial): Parse the rest of the</div><div class='del'>-	  line after opening heredoc identifier.  [ruby-dev:24635]</div><div class='del'>-</div><div class='del'>-Mon Oct 18 07:26:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_truncate): discard read buffer before truncation.</div><div class='del'>-	  [ruby-dev:24197]</div><div class='del'>-</div><div class='del'>-Mon Oct 18 02:11:21 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/config.rb (WEBrick::Config::General): add default values:</div><div class='del'>-	  - WEBrick::Config[:DoNotReverseLookup]</div><div class='del'>-	  - WEBrick::Config[:RequestCallback] (it used as an alias of</div><div class='del'>-	    :RequestHandler in WEBrick::HTTPServer#run)</div><div class='del'>-	  - WEBrick::Config::FileHandler[:AcceptableLanguages]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::FileHandler#set_filename): search files</div><div class='del'>-	  having suffix of language-name which Accept-Language header field</div><div class='del'>-	  includes if :AcceptableLanguages options is present.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::FileHandler#get_servlet): new method to</div><div class='del'>-	  search servlet correspond to the suffix of filename.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb: add attributes access methods: accept,</div><div class='del'>-	  accept_charset, accept_encoding, accept_language, content_length</div><div class='del'>-	  and content_type.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpresponse.rb: add attribute access methods:</div><div class='del'>-	  content_length, content_length=, content_type and content_type=.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.mime_types):</div><div class='del'>-	  use the second suffix to detect media type. (the first suffix</div><div class='del'>-	  may be a language name.)</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_qvalues):</div><div class='del'>-	  add method to parse Accept header field. it returns an Array of</div><div class='del'>-	  values sorted by the qvalues.</div><div class='del'>-</div><div class='del'>-Mon Oct 18 02:04:11 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#virtual_host): new</div><div class='del'>-	  method to register virtual hosting servers.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (WEBrick::GenericServer#accept): call</div><div class='del'>-	  do_not_reverse_lookup for each socket if :DoNotReverseLookup</div><div class='del'>-	  is set.  [ruby-core:02357]</div><div class='del'>-</div><div class='del'>-Mon Oct 18 00:42:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_getservbyaname): protocol string</div><div class='del'>-	  might be altered.  [ruby-dev:24503]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_upto): check if return value from succ is a</div><div class='del'>-	  string.  [ruby-dev:24504]</div><div class='del'>-</div><div class='del'>-Sun Oct 17 23:03:48 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block</div><div class='del'>-</div><div class='del'>-Sun Oct 17 13:05:04 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_func_methods): correct argument mismatch.</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_get_methods): ditto.</div><div class='del'>-	* ext/win32ole/win32ole.c (fole_put_methods): ditto.</div><div class='del'>-	* ext/win32ole/tests/testWIN32OLE.rb: add test for WIN32OLE#ole_func_methods</div><div class='del'>-	  WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods</div><div class='del'>-</div><div class='del'>-Sat Oct 16 14:45:28 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/0.9.rb (RSS::Rss#to_s): removed garbage.</div><div class='del'>-</div><div class='del'>-Sat Oct 16 13:42:49 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/: untabified.</div><div class='del'>-	* test/rss/: untabified.</div><div class='del'>-	* lib/rss/0.9.rb (RSS::Rss#to_s): inent -&gt; indent.</div><div class='del'>-</div><div class='del'>-Sat Oct 16 13:34:56 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss: supported prety print.</div><div class='del'>-	* test/rss/test_1.0.rb: added test for calculating default indent size.</div><div class='del'>-</div><div class='del'>-Fri Oct 15 18:04:35 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: TkTimer.new(interval, loop){ ... } is</div><div class='del'>-	  acceptable. Add TkTimer.start ( == new + start ).</div><div class='del'>-</div><div class='del'>-Fri Oct 15 12:43:09 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_stack): make prototype declaration consistent with</div><div class='del'>-	  the definition in gc.c.</div><div class='del'>-</div><div class='del'>-Thu Oct 14 14:34:01 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (MODE_BINMODE, MODE_BINARY): fixed reversed condition.</div><div class='del'>-</div><div class='del'>-Thu Oct 14 13:33:59 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: added link to Tutorial.</div><div class='del'>-</div><div class='del'>-Mon Oct 11 13:48:20 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/*: untabify</div><div class='del'>-</div><div class='del'>-Sun Oct 10 12:32:08 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Allow 'require'</div><div class='del'>-	  to be used as a variable name</div><div class='del'>-</div><div class='del'>-Sat Oct  9 21:23:37 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/converter.rb: changed to try to use Iconv for default</div><div class='del'>-	  conversion.</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: 0.0.9 -&gt; 0.1.0.</div><div class='del'>-</div><div class='del'>-Sat Oct  9 19:50:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_getline): should not treat char as negative value.</div><div class='del'>-	  [ruby-dev:24460]</div><div class='del'>-</div><div class='del'>-Fri Oct  8 09:49:32 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): pointer modification check before each</div><div class='del'>-	  iteration.  [ruby-dev:24445]</div><div class='del'>-</div><div class='del'>-Fri Oct  8 01:13:05 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/optiondb.rb: make it more secure</div><div class='del'>-</div><div class='del'>-Thu Oct  7 23:47:57 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar</div><div class='del'>-	  cannot propagate view port information from the source widget</div><div class='del'>-	  (that calls 'set') to other assigned widgets.</div><div class='del'>-</div><div class='del'>-Thu Oct  7 17:36:25 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: When CHILDKILLED and so on, Tk.errorCode returns</div><div class='del'>-	  a Fixnum for 2nd element (it's pid) of the return value.</div><div class='del'>-</div><div class='del'>-Thu Oct  7 12:55:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): should freeze buffer before thread context</div><div class='del'>-	  switch. [ruby-dev:24442]</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): string conversion should at the top of the</div><div class='del'>-	  method.  [ruby-dev:24439]</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): buffer should be frozen only after the length</div><div class='del'>-	  check.  [ruby-dev:24440]</div><div class='del'>-</div><div class='del'>-Thu Oct  7 02:56:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c: use FMODE_APPEND.</div><div class='del'>-</div><div class='del'>-Thu Oct  7 01:05:33 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk.errorInfo and Tk.errorCode</div><div class='del'>-</div><div class='del'>-Thu Oct  7 00:08:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_sysopen): preserve path in the buffer allocated by</div><div class='del'>-	  ALLOCA_N() to prevent modification.  [ruby-dev:24438]</div><div class='del'>-</div><div class='del'>-Wed Oct  6 09:21:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_mode_flags): preserve append mode flag.</div><div class='del'>-	  [ruby-dev:24436]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_modenum_mode): do not use external output buffer.</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_justify): differ pointer retrieval to prevent</div><div class='del'>-	  padding string modification.  [ruby-dev:24434]</div><div class='del'>-</div><div class='del'>-	* range.c (range_each_func): allow func to terminate loop by</div><div class='del'>-	  returning RANGE_EACH_BREAK.</div><div class='del'>-</div><div class='del'>-	* range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]</div><div class='del'>-</div><div class='del'>-Mon Oct  4 14:04:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_file_open_internal, rb_io_reopen): fname might be altered</div><div class='del'>-	  while GC.  [ruby-dev:24408]</div><div class='del'>-</div><div class='del'>-Mon Oct  4 12:53:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/optiondb.rb: support definition of command</div><div class='del'>-	  resources on widgets</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/image.rb: bug fix</div><div class='del'>-</div><div class='del'>-Sun Oct  3 21:20:03 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (TEXT_REGEXP): allow 8-bit characters for the german</div><div class='del'>-	  version of Microsoft Exchange Server. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (RTEXT_REGEXP): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (CTEXT_REGEXP): ditto.</div><div class='del'>-</div><div class='del'>-Sat Oct  2 20:34:22 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* node.h (NEW_DVAR): extra semicolon.</div><div class='del'>-</div><div class='del'>-Sat Oct  2 00:42:20 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_byte): retrieve pointer from string value for each</div><div class='del'>-	  time.  [ruby-dev:24404]</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_bytes0): ditto.</div><div class='del'>-</div><div class='del'>-	* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): should freeze all reading buffer.</div><div class='del'>-	  [ruby-dev:24400]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): should use bignums when bits is greater</div><div class='del'>-	  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]</div><div class='del'>-</div><div class='del'>-	* eval.c (specific_eval): defer pointer retrieval to prevent</div><div class='del'>-	  unsafe sourcefile string modification.  [ruby-dev:24382]</div><div class='del'>-</div><div class='del'>-	* eval.c (specific_eval): defer pointer retrieval to prevent</div><div class='del'>-	  unsafe sourcefile string modification.  [ruby-dev:24382]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): wrong cast caused wrong result.</div><div class='del'>-	  [ruby-dev:24385]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): hide temporary array from</div><div class='del'>-	  ObjectSpace.each_object.  [ruby-dev:24386]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): check was done with false pointer.</div><div class='del'>-	  [ruby-dev:24383]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]</div><div class='del'>-</div><div class='del'>-Mon Oct 11 17:51:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to</div><div class='del'>-	  avoid mode string modification.  [ruby-dev:24454]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_getline_fast): should take delim as unsigned char to</div><div class='del'>-	  distinguish EOF and '\377'.  [ruby-dev:24460]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_getline): add check for RS modification.</div><div class='del'>-	  [ruby-dev:24461]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): use qsort() directly instead using</div><div class='del'>-	  rb_iterate().  [ruby-dev:24462]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to</div><div class='del'>-	  prevent access to recycled object (via continuation for</div><div class='del'>-	  example).  [ruby-dev:24463]</div><div class='del'>-</div><div class='del'>-Fri Oct  1 11:40:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe</div><div class='del'>-	  sourcefile string modification.  [ruby-dev:24373]</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): block string buffer modification during</div><div class='del'>-	  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_s_popen): mode argument may be altered.</div><div class='del'>-	  [ruby-dev:24375]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_basename): ext argument may be altered.</div><div class='del'>-	  [ruby-dev:24377]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): use NODE instead of 2 element arrays.</div><div class='del'>-	  [ruby-dev:24378]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_chomp_bang): StringValue() may change the</div><div class='del'>-	  receiver.  [ruby-dev:24371]</div><div class='del'>-</div><div class='del'>-Fri Oct  1 11:25:20 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/grid.rb: revive TkGrid.grid</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/pack.rb: revive TkPack.pack</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/place.rb: revive TkPlace.place</div><div class='del'>-</div><div class='del'>-Thu Sep 30 00:50:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_init): bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (get_eval_string_core): accept a Regexp object</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix bug on 'exit' operation</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: 'tksearch' accepts a Regexp object as a</div><div class='del'>-	  matting pattern argument</div><div class='del'>-</div><div class='del'>-Wed Sep 29 10:58:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (sort_by_i): internally used object must not be changed</div><div class='del'>-	  outside.  [ruby-dev:24368]</div><div class='del'>-</div><div class='del'>-Mon Sep 27 13:46:45 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h, struct.c (rb_struct_s_members, rb_struct_members): public</div><div class='del'>-	  accessors.  [ruby-dev:24342]</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object, r_object0): use accessors.</div><div class='del'>-</div><div class='del'>-Mon Sep 27 09:14:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.</div><div class='del'>-	  [ruby-talk:113807]</div><div class='del'>-</div><div class='del'>-Fri Sep 24 16:09:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): propagate DVAR_DONT_RECYCLE on termination</div><div class='del'>-	  to avoid double call to rb_gc_force_recycle(). [ruby-dev:24311]</div><div class='del'>-</div><div class='del'>-Fri Sep 24 08:29:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_subseq): original object might be modified after</div><div class='del'>-	  sharing data creation.  [ruby-dev:24327]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_replace): ditto.</div><div class='del'>-</div><div class='del'>-	* array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]</div><div class='del'>-</div><div class='del'>-	* struct.c (struct_members): always check struct size and size of</div><div class='del'>-	  members list in the class.  [ruby-dev:24320]</div><div class='del'>-</div><div class='del'>-Thu Sep 23 09:29:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sub_bang): check if string is not modified</div><div class='del'>-	  during iteration.  [ruby-dev:24315]</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_rehash): replace st_foreach() by its deep</div><div class='del'>-	  checking counterpart.  [ruby-dev:24310]</div><div class='del'>-</div><div class='del'>-Wed Sep 22 13:38:12 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_rehash): add iteration check.  [ruby-dev:24301]</div><div class='del'>-</div><div class='del'>-	* st.c (st_foreach): add deep check.</div><div class='del'>-</div><div class='del'>-Wed Sep 22 13:06:14 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_call_handler): workaround for Ctrl-C.</div><div class='del'>-	  merge from HEAD.</div><div class='del'>-</div><div class='del'>-Wed Sep 22 00:11:12 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* process.c: Add documentation for fork()</div><div class='del'>-</div><div class='del'>-Wed Sep 22 09:04:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_collect_bang): element size might change during</div><div class='del'>-	  comparison.  [ruby-dev:24300]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_eql): ditto. [ruby-dev:24300]</div><div class='del'>-</div><div class='del'>-Tue Sep 21 18:29:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_equal): merge miss.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_uniq_bang): element size might change during</div><div class='del'>-	  comparison.  [ruby-dev:24298]</div><div class='del'>-</div><div class='del'>-Mon Sep 20 00:24:19 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): do not use qsort directly.  use</div><div class='del'>-	  rb_ary_sort_bang() instead.  [ruby-dev:24291]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): pedantic type check added.</div><div class='del'>-	  [ruby-dev:24291]</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_foreach_iter): check iter_lev after each</div><div class='del'>-	  iteration.  [ruby-dev:24289]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_and): element size might change during</div><div class='del'>-	  comparison.  [ruby-dev:24290]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_or): ditto. [ruby-dev:24292]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]</div><div class='del'>-</div><div class='del'>-Sat Sep 18 15:02:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_equal): element size might change during</div><div class='del'>-	  comparison.  [ruby-dev:24254]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_diff): ditto. [ruby-dev:24274]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_select): ditto. [ruby-dev:24278]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_delete): ditto. [ruby-dev:24283]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_rindex): ditto. [ruby-dev:24275]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_initialize): element size might change during</div><div class='del'>-	  initializing block.  [ruby-dev:24284]</div><div class='del'>-</div><div class='del'>-Sat Sep 18 14:10:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_s_chdir): avoid memory leak and unnecessary chdir to</div><div class='del'>-	  the original directory when exception has caused in changing</div><div class='del'>-	  direcotry or within block.  thanks to Johan Holmberg</div><div class='del'>-	  &lt;holmberg@iar.se&gt; [ruby-core:03446]</div><div class='del'>-</div><div class='del'>-Fri Sep 17 20:20:27 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir_p): backport from CVS HEAD 1.45. [ruby-core:03420]</div><div class='del'>-</div><div class='del'>-Fri Sep 17 17:11:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_delete): element comparison might change array</div><div class='del'>-	  size. [ruby-dev:24273]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_truncate): clear stdio buffer before truncating</div><div class='del'>-	  the file.  [ruby-dev:24191]</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF</div><div class='del'>-	  which might return singleton class.  [ruby-dev:24202]</div><div class='del'>-</div><div class='del'>-Fri Sep 17 16:07:09 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: improve exit operation</div><div class='del'>-</div><div class='del'>-Fri Sep 17 15:01:57 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or</div><div class='del'>-	  (thread_)tkwait</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add alias wait_window to wait_destroy</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: support calling 'mainloop' on slave</div><div class='del'>-	  interpreters (however, the 'real' eventloop must be run on the</div><div class='del'>-	  Default Master IP)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: follow the changes of ext/tk/lib/multi-tk.rb</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/remote-ip_sample2.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkoptdb-safeTk.rb: ditto</div><div class='del'>-</div><div class='del'>-Thu Sep 16 18:12:32 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI#start): should set REMOTE_USER</div><div class='del'>-	  to request.user attribute.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::FileHandler#initialize): should expand</div><div class='del'>-	  the pathname of document root directory.</div><div class='del'>-</div><div class='del'>-Thu Sep 16 15:49:28 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_intern): protect string argument from GC.</div><div class='del'>-	  [ruby-core:03411]</div><div class='del'>-</div><div class='del'>-Wed Sep 15 20:22:23 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkoptdb-safeTk.rb: fix a bug depend on the changes</div><div class='del'>-	  of MultiTkIp</div><div class='del'>-</div><div class='del'>-Tue Sep 14 23:54:11 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string was en-bugged by</div><div class='del'>-	  the previous changes.</div><div class='del'>-</div><div class='del'>-Tue Sep 14 23:45:44 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::TextFormatter.for):</div><div class='del'>-	  Add Eric Hodel's simpleformatter.</div><div class='del'>-</div><div class='del'>-Tue Sep 14 16:59:37 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix SEGV</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: improve safe-level handling of argument proc</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/multi-ip_sample.rb: rename of old 'safe-tk.rb'</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/safe-tk.rb: new sample script</div><div class='del'>-</div><div class='del'>-Tue Sep 14 00:15:15 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c: backported from HEAD.</div><div class='del'>-</div><div class='del'>-Mon Sep 13 19:16:33 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (blk_copy_prev): need frame_dup().  [ruby-dev:24103]</div><div class='del'>-</div><div class='del'>-Mon Sep 13 16:23:27 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_master and new_slave accept</div><div class='del'>-	  safe-level value argument</div><div class='del'>-</div><div class='del'>-Mon Sep 13 10:20:45 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (nil_inspect): fix typo.</div><div class='del'>-</div><div class='del'>-Mon Sep 13 01:03:02 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: improve control of preserv/release tcltkip</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: store original 'exit' command</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: fix(?) SEGV</div><div class='del'>-</div><div class='del'>-Sun Sep 12 23:46:23 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strdup): remove unnecessary code. (xmalloc never</div><div class='del'>-	  returns NULL.)</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_getcwd): fix memory leak on failure.</div><div class='del'>-</div><div class='del'>-Sun Sep 12 02:41:58 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add TclTkIp#allow_ruby_exit? and</div><div class='del'>-	  allow_ruby_exit=</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/MANUAL.euc: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/MANUAL.eng: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix some reasons of SEGV</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Sep 11 16:09:46 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Fix up cross-file class merging.</div><div class='del'>-</div><div class='del'>-Fri Sep 10 20:20:53 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_merge_tklist): fix suspicious</div><div class='del'>-	  pointer conversion.</div><div class='del'>-</div><div class='del'>-Fri Sep 10 02:43:54 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/kilmer.rb: James Buck's</div><div class='del'>-	  patch for call-seq.</div><div class='del'>-</div><div class='del'>-Thu Sep  9 13:58:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_init): change flag value for setting</div><div class='del'>-	  'argv' and 'argv0' variable</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: follow changes of multi-tk.rb</div><div class='del'>-</div><div class='del'>-Thu Sep  9 11:46:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_classes): Allow</div><div class='del'>-	  spaces aroun parameter to define_method_under (James Buck)</div><div class='del'>-</div><div class='del'>-Wed Sep  8 18:44:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_write): zero fill a gap if exsts.</div><div class='del'>-	  [ruby-dev:24190]</div><div class='del'>-</div><div class='del'>-Wed Sep  8 15:19:49 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_init): cannot create a IP at level 4</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: improve 'exit' operation, security check,</div><div class='del'>-	  and error treatment</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: allow a trusted slave IP to create slave IPs</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/listbox.rb: add TkListbox#value, value=, clear,	and</div><div class='del'>-	  erase</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: add TkText#clear and erase</div><div class='del'>-</div><div class='del'>-Tue Sep  7 15:17:49 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_connect): break immediately if a</div><div class='del'>-	  socket is non-blocking.  [ruby-talk:111654]</div><div class='del'>-</div><div class='del'>-Mon Sep  6 11:08:50 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menu.rb(TkOptionMenubutton#insert): call correct method</div><div class='del'>-</div><div class='del'>-Mon Sep  6 11:00:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (dir_s_chdir): the patch to shut up false warning when</div><div class='del'>-	  exception occurred within a block.  a patch was given from Johan</div><div class='del'>-	  Holmberg &lt;holmberg at iar.se&gt;.  [ruby-core:03292]</div><div class='del'>-</div><div class='del'>-Mon Sep  6 07:51:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (cvar_cbase): singletons should refer outer cvar scope.</div><div class='del'>-	  [ruby-dev:24223]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load): should preserve previous ruby_wrapper value.</div><div class='del'>-	  [ruby-dev:24226]</div><div class='del'>-</div><div class='del'>-Sat Sep  4 01:14:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (cvar_cbase): class variables cause SEGV in</div><div class='del'>-	  instance_eval() for fixnums and symbols. [ruby-dev:24213]</div><div class='del'>-</div><div class='del'>-Fri Sep  3 17:47:58 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (make_struct): remove redefining constant when</div><div class='del'>-	  conflict.  [ruby-dev:24210]</div><div class='del'>-</div><div class='del'>-Fri Sep  3 11:31:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Tk.after makes TkCore::INTERP.tk_cmd_tbl grow</div><div class='del'>-	  [ruby-dev:24207]</div><div class='del'>-</div><div class='del'>-Fri Sep  3 02:12:48 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix typo [ruby-talk:111266]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: fix typo</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: improve safe-level treatment on slave IPs</div><div class='del'>-</div><div class='del'>-Fri Sep  3 01:54:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: already built-in libraries satisfy dependencies.</div><div class='del'>-	  [ruby-dev:24028]</div><div class='del'>-</div><div class='del'>-Thu Sep  2 11:36:20 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_obj_instance_eval): backported from HEAD.</div><div class='del'>-</div><div class='del'>-Wed Sep  1 21:18:25 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/spinbox.rb: fix typo</div><div class='del'>-</div><div class='del'>-Tue Aug 31 18:24:04 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (cbsubst_init): fix memory leak</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (cbsubst_get_all_subst_keys): fix SEGV</div><div class='del'>-</div><div class='del'>-Tue Aug 31 16:04:22 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_delete): when a tcltkip is deleted,</div><div class='del'>-	  destroy its root widget</div><div class='del'>-</div><div class='del'>-Tue Aug 31 12:30:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (del_root): fix SEGV</div><div class='del'>-</div><div class='del'>-Mon Aug 30 23:11:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_driver.rb (and others): ri now merges documentation</div><div class='del'>-	  if it finds the same class in multiple places.</div><div class='del'>-</div><div class='del'>-Mon Aug 30 22:40:30 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: 'restart' method accepts arguments</div><div class='del'>-</div><div class='del'>-Mon Aug 30 21:50:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* object.c: Add RDoc for Module.included.</div><div class='del'>-</div><div class='del'>-Mon Aug 30 15:10:46 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (GNU/k*BSD): fixed FTBFS on GNU/k*BSD. [ruby-dev:24051]</div><div class='del'>-</div><div class='del'>-Mon Aug 30 11:29:35 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): strip trailing spaces. [ruby-dev:24143]</div><div class='del'>-	  merge from HEAD.</div><div class='del'>-</div><div class='del'>-Sun Aug 29 14:08:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: compile error on bcc32 [ruby-dev:24081]</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string does not work</div><div class='del'>-</div><div class='del'>-Sat Aug 28 23:04:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_and): protect parameters from GC.</div><div class='del'>-	  [ruby-talk:110664]</div><div class='del'>-</div><div class='del'>-Thu Aug 26 04:38:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (return_jump): Minor typo in error message. Now reads</div><div class='del'>-	  "return can't jump across threads".</div><div class='del'>-</div><div class='del'>-Tue Aug 24 17:30:00 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not</div><div class='del'>-	  use a session id as a filename. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use</div><div class='del'>-	  Dir::tmpdir. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Tue Aug 24 14:40:16 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): untaint</div><div class='del'>-	  session id after check. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Tue Aug 24 09:09:01 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): d2i</div><div class='del'>-	  functions may replace the pointer indicated by the first argument.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.</div><div class='del'>-</div><div class='del'>-Mon Aug 23 14:04:51 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_read):</div><div class='del'>-	  - should return an empty string if specified length to read is 0.</div><div class='del'>-	  - should check for pending data and wait for fd before reading.</div><div class='del'>-	  - call underlying IO's sysread if SSL session is not started.</div><div class='del'>-	  [ruby-dev:24072], [ruby-dev:24075]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_write):</div><div class='del'>-	  - call underlying IO's syswrite if SSL session is not started.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_pending): new method</div><div class='del'>-	  OpenSSL::SSL#pending.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb: should not use select.</div><div class='del'>-</div><div class='del'>-Mon Aug 23 12:40:56 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Config.default_config_hash): when multiple domains</div><div class='del'>-	  are set, Win32::Resolv.get_resolv_info returns Array.</div><div class='del'>-</div><div class='del'>-Sun Aug 22 01:15:31 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):</div><div class='del'>-	  should call :ProxyContentHandler before finishing CONNECT.</div><div class='del'>-</div><div class='del'>-Sat Aug 21 06:41:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb (find_tcl, find_tk): find stub library.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (arg_config, with_config): deal with '-' and '_'</div><div class='del'>-	  uniformly.  [ruby-dev:24118]</div><div class='del'>-</div><div class='del'>-Thu Aug 19 16:29:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: Fail to treat a hash value of 'font' option.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bindinfo cannot return '%' substiturion infomation.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/menu.rb: typo bug.</div><div class='del'>-</div><div class='del'>-Thu Aug 19 15:15:24 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (free_dir): fix memory leak.  reported by yamamoto</div><div class='del'>-	  madoka.</div><div class='del'>-</div><div class='del'>-Thu Aug 19 11:00:00 2004  Akiyoshi, Masamichi  &lt;masamichi.akiyoshi@hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c (dln_load): Modify to call lib$find_image_symbol for VMS.</div><div class='del'>-	* io.c (rb_io_fwrite): Use fputc() for VMS non-stream file.</div><div class='del'>-</div><div class='del'>-Thu Aug 19 06:07:45 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: re2c no longer compiled with bit vectors.  caused</div><div class='del'>-	  problems for non-ascii characters. [ruby-core:03280]</div><div class='del'>-	* ext/syck/implicit.c: ditto.</div><div class='del'>-	* ext/syck/bytecode.c: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/baseemitter.rb: folding now handles double-quoted strings,</div><div class='del'>-	  fixed problem with extra line feeds at end of folding, whitespace</div><div class='del'>-	  opening scalar blocks.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: subtelties in handling strings with</div><div class='del'>-	  non-printable characters and odd whitespace patterns.</div><div class='del'>-</div><div class='del'>-Wed Aug 18 23:41:33 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb (rbuf_fill): OpenSSL::SSL::SSLSocket has its own</div><div class='del'>-	  buffer, select(2) might not work. [ruby-dev:24072]</div><div class='del'>-</div><div class='del'>-Wed Aug 18 17:10:12 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/stubs.c (ruby_tcltk_stubs): need to call</div><div class='del'>-	  Tcl_FindExecutable() for Tcl/Tk 8.4.</div><div class='del'>-</div><div class='del'>-Wed Aug 18 12:52:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_obj_instance_eval): evaluates under special singleton</div><div class='del'>-	  classes as for special constants.</div><div class='del'>-</div><div class='del'>-Tue Aug 17 17:20:59 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_reopen): should clear allocated OpenFile.  pointed</div><div class='del'>-	  out by Guy Decoux. [ruby-core:03288]</div><div class='del'>-</div><div class='del'>-Tue Aug 17 01:36:32 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb: Remove extra indent. Tidy 'ri' option</div><div class='del'>-	  parsing so RDoc::usage plays better with OptionParser.</div><div class='del'>-</div><div class='del'>-Sat Aug 14 13:09:10 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: backport from CVS HEAD (rev1.44).</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: cp_r should copy symlink itself, except cp_r</div><div class='del'>-	  root.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new option mv :force.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: new module FileUtils::DryRun.</div><div class='del'>-</div><div class='del'>-Sat Aug 14 02:48:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/usage.rb: Added. Allows command line programs</div><div class='del'>-	  to report usage using their initial RDoc comment.</div><div class='del'>-</div><div class='del'>-Fri Aug 13 13:23:17 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_range_header):</div><div class='del'>-	  fix regex for range-spec.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::DefaultFileHandler#make_partial_content):</div><div class='del'>-	  multipart/byteranges response was broken.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/erbhandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::ERBHandler#do_GET): should select media type</div><div class='del'>-	  by suffix of script filename.</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/server.rb: refine example code.</div><div class='del'>-</div><div class='del'>-Wed Aug 11 17:17:50 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (RPATHFLAG): stop setting RPATHFLAG on Interix.</div><div class='del'>-</div><div class='del'>-Sun Aug  8 00:43:31 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/implicit.c: added sexagecimal float#base60.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (yaml_org_handler): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/token.c: indentation absolutely ignored when processing flow</div><div class='del'>-	  collections.  plain scalars are trimmed if indentation follows in</div><div class='del'>-	  an ambiguous flow collection.</div><div class='del'>-</div><div class='del'>-Sat Aug  7 00:50:01 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c: Zlib::GzipReader#read(0) returns "" instead of nil.</div><div class='del'>-</div><div class='del'>-Tue Aug  3 13:49:20 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: add Tk::TreeCtrl.loupe</div><div class='del'>-</div><div class='del'>-Mon Aug  2 18:04:21 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb (set_translation): bug fix (fail to set</div><div class='del'>-	  trans_str to the same as src_str when trans_str is not given.)</div><div class='del'>-</div><div class='del'>-Mon Aug  2 11:53:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): Fix infinite recursion</div><div class='del'>-	  looking up some top level symbols (batsman)</div><div class='del'>-</div><div class='del'>-Mon Aug  2 11:48:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Allow '.'s in</div><div class='del'>-	  variable names to support SWIG generated files (Hans Fugal)</div><div class='del'>-</div><div class='del'>-Sat Jul 31 17:40:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial,</div><div class='del'>-	  ruby-calculate-indent, ruby-move-to-block, ruby-forward-sexp,</div><div class='del'>-	  ruby-backward-sexp): keywords must match word-wise.</div><div class='del'>-</div><div class='del'>-Sat Jul 31 05:47:37 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb (YAML::load_file, YAML::parse_file): added.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: exceptions were using an older</div><div class='del'>-	  YAML.object_maker. [ruby-core:03080]</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c (sycklex_yaml_utf8): using newline_len to</div><div class='del'>-	  handline CR-LFs.  "\000" was showing up on folded blocks which</div><div class='del'>-	  stopped at EOF.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: re2c compiled with bit vectors now.</div><div class='del'>-	* ext/syck/implicit.c: ditto.</div><div class='del'>-	* ext/syck/bytecode.c: ditto.</div><div class='del'>-</div><div class='del'>-Fri Jul 30 16:10:54 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_fromUTF8_core): raise ArgumentError when</div><div class='del'>-	  the unknown encoding name is given.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_toUTF8_core): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertfrom): bug fix.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertto): ditto.</div><div class='del'>-</div><div class='del'>-Wed Jul 28 18:59:17 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS</div><div class='del'>-	  and CGI_COOKIES.  they will no longer be used.</div><div class='del'>-</div><div class='del'>-Wed Jul 28 01:04:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (run_final): wrong order of data. [ruby-dev:23984]</div><div class='del'>-</div><div class='del'>-Tue Jul 27 07:05:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): copy on write for argument local variable</div><div class='del'>-	  assignment.</div><div class='del'>-</div><div class='del'>-	* eval.c (assign): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): update ruby_frame-&gt;argv with the default</div><div class='del'>-	  value used for the optional arguments.</div><div class='del'>-</div><div class='del'>-	* object.c (Init_Object): "===" calls rb_obj_equal() directly.</div><div class='del'>-	  [ruby-list:39937]</div><div class='del'>-</div><div class='del'>-Mon Jul 26 11:22:55 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape): should</div><div class='del'>-	  escape space.</div><div class='del'>-</div><div class='del'>-Sun Jul 25 11:05:21 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.{h,c} (rb_w32_{f,fd,fs}open): workaround for bcc32's</div><div class='del'>-	  {f,fd,fs}open bug. set errno EMFILE and EBADF. [ruby-dev:23963]</div><div class='del'>-</div><div class='del'>-Sat Jul 24 13:32:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* range.c (rb_range_beg_len): returns Qnil only when "beg" points</div><div class='del'>-	  outside of a range.  No boundary check for "end".</div><div class='del'>-</div><div class='del'>-Fri Jul 23 16:40:25 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (define_final): should not disclose NODE* to Ruby world.</div><div class='del'>-	  [ruby-dev:23957]</div><div class='del'>-</div><div class='del'>-Fri Jul 23 09:03:16 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (disconnected?): new method. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Thu Jul 22 16:41:54 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb (CGI::Session::FileStore#update): sets the</div><div class='del'>-	 permission of the session data file to 0600.</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session/pstore.rb (CGI::Session::Pstore#initialize):</div><div class='del'>-	  ditto.</div><div class='del'>-</div><div class='del'>-Thu Jul 22 00:02:21 2004  Masahiro Kitajima  &lt;katonbo@katontech.com&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): not need to call last_status_set() any</div><div class='del'>-	  longer on _WIN32.</div><div class='del'>-</div><div class='del'>-Tue Jul 20 09:15:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: File.link raises EINVAL on BeOS.</div><div class='del'>-</div><div class='del'>-Mon Jul 19 01:15:07 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgihandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::CGIhandler#do_GET): set SystemRoot environment</div><div class='del'>-	  variable to CGI process on Windows native platforms. [ruby-dev:23936]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgihandler.rb</div><div class='del'>-	  (WEBrick::HTTPServlet::CGIhandler#do_GET): use $?.exitstatus and</div><div class='del'>-	  refine log message.</div><div class='del'>-</div><div class='del'>-Sun Jul 18 16:14:29 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb (TkMsgCatalog.callback): bug fix</div><div class='del'>-	  ( wrong number of argument )</div><div class='del'>-</div><div class='del'>-Sun Jul 18 08:13:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): remove extra sign digit.</div><div class='del'>-</div><div class='del'>-Sun Jul 18 03:21:42 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (range): use NULL instead of 0.</div><div class='del'>-</div><div class='del'>-	* dir.c (range): get rid of a gcc 3.4 warning.</div><div class='del'>-</div><div class='del'>-Sun Jul 18 03:12:11 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (receive_responses): return if a LOGOUT response</div><div class='del'>-	  received. (backported from HEAD)</div><div class='del'>-	* lib/net/imap.rb (send_string_data): wait command continuation</div><div class='del'>-	  requests before sending octet data of literals. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Sat Jul 17 23:54:59 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: TkVariable#ref returns a TkVariable object</div><div class='del'>-</div><div class='del'>-Sat Jul 17 22:04:44 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/ldap.rb: method hierarchical? should be in URI::LDAP.</div><div class='del'>-</div><div class='del'>-Sat Jul 17 18:29:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt): not to show same error messages twice.</div><div class='del'>-</div><div class='del'>-Sat Jul 17 13:13:32 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/ruby-lex.rb (RubyLex::identify_string): %s string do not</div><div class='del'>-	  process expression interpolation.  [ruby-talk:106691]</div><div class='del'>-</div><div class='del'>-Sat Jul 17 05:26:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/diagram.rb: Incorporate Micheal Neuman's</div><div class='del'>-	  client-side imagemao patch</div><div class='del'>-</div><div class='del'>-Sat Jul 17 01:57:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (THREAD_ALLOC): th-&gt;thread should be initialized to NULL.</div><div class='del'>-	  [ruby-talk:106657]  The solution was found by Guy Decoux.</div><div class='del'>-</div><div class='del'>-Fri Jul 16 22:30:28 2004  Michael Neumann  &lt;mneumann@ntecs.de&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_stat_dev_major): new methods File::Stat#dev_major and</div><div class='del'>-	  #dev_minor. [ruby-core:03195]</div><div class='del'>-</div><div class='del'>-Fri Jul 16 15:23:53 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (return_jump, break_jump): raise unexpceted local jump</div><div class='del'>-	  exception directly.  [ruby-dev:23740]</div><div class='del'>-</div><div class='del'>-	* lib/base64.rb (Deprecated): super in bound method calls original</div><div class='del'>-	  name method in stable version.  [ruby-dev:23916]</div><div class='del'>-</div><div class='del'>-Fri Jul 16 11:31:49 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/{fox,gtk,gtk2}/testrunner.rb: remove</div><div class='del'>-	  garbage (patch from akira yamada) [ruby-dev:23911]</div><div class='del'>-</div><div class='del'>-Fri Jul 16 11:20:00 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): fix output of NaN, Inf and -Inf with</div><div class='del'>-	  "%f" or etc on MSVCRT platforms. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Fri Jul 16 11:17:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (exit_initialize): use EXIT_SUCCESS instead of 0.</div><div class='del'>-	  [ruby-dev:23913]</div><div class='del'>-</div><div class='del'>-	* error.c (exit_success_p): new method SystemExit#success?.</div><div class='del'>-	  [ruby-dev:23912]</div><div class='del'>-</div><div class='del'>-	* error.c (syserr_initialize): initialization for subclasses.</div><div class='del'>-	  [ruby-dev:23912]</div><div class='del'>-</div><div class='del'>-Thu Jul 15 23:53:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#warn, OptionParser#abort): Exception</div><div class='del'>-	  no longer has to_str method.</div><div class='del'>-</div><div class='del'>-Thu Jul 15 22:59:48 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/readline/extconf.rb: added dir_config for curses, ncurses,</div><div class='del'>-	  termcap. (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Thu Jul 15 20:29:15 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* class.c, error.c, eval.c, intern.h, object.c, variable.c:</div><div class='del'>-	  do not set path if it is a singleton class.  [ruby-dev:22588]</div><div class='del'>-	  (backport from 1.9)</div><div class='del'>-</div><div class='del'>-Thu Jul 15 10:15:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/, ext/tcltklib/: bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: better operation for SIGINT when processing</div><div class='del'>-	  callbacks.</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd</div><div class='del'>-	  to define validatecommand methods easier</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext</div><div class='del'>-	  classes</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type</div><div class='del'>-	  check for items (e.g. canvas items; depends on the class) to</div><div class='del'>-	  avoid some troubles on Tk extension widget class definition.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Wed Jul 14 18:08:37 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1cons_to_der): fix type of</div><div class='del'>-	  argument. [ruby-dev:23891]</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_x509store.rb: prune tests for CRL checking</div><div class='del'>-	  unless X509::V_FLAG_CRL_CHECK is defined.</div><div class='del'>-</div><div class='del'>-Wed Jul 14 12:29:07 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): should not convert string in the form of</div><div class='del'>-	  "-I.FE-X" which both "I" and "F" are ommitted. [ruby-dev:23883]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_float.rb (test_strtod): add test for bug fix.</div><div class='del'>-</div><div class='del'>-Wed Jul 14 00:31:15 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* array.c: rdoc patch. merged patch from Johan Holmberg</div><div class='del'>-	  &lt;holmberg@iar.se&gt; [ruby-core:3170]</div><div class='del'>-</div><div class='del'>-Tue Jul 13 19:39:12 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic#merge_path):</div><div class='del'>-	  "URI('http://www.example.com/foo/..') + './'" should return</div><div class='del'>-	  "URI('http://www.example.com/')".  [ruby-list:39838]</div><div class='del'>-	  "URI('http://www.example.com/') + './foo/bar/..'" should return</div><div class='del'>-	  "URI('http://www.example.com/foo/')".  [ruby-list:39844]</div><div class='del'>-</div><div class='del'>-	* test/uri/test_generic.rb (TestGeneric#test_merge): added tests.</div><div class='del'>-</div><div class='del'>-Tue Jul 13 15:51:45 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (init_mkmf): Do not add $(libdir) to $LIBPATH in</div><div class='del'>-	   extmk mode.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (dir_config): Prepend a new library path instead of</div><div class='del'>-	  appending so it is tried first.</div><div class='del'>-</div><div class='del'>-Tue Jul 13 00:50:48 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Support call-seq: for Ruby files.</div><div class='del'>-</div><div class='del'>-Mon Jul 12 21:20:36 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* html_generator.rb: Support hyperlinks of the form {any text}[xxx]</div><div class='del'>-	  as well as stuff[xxx]</div><div class='del'>-</div><div class='del'>-Sat Jul 10 09:30:24 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/test_struct.rb: use qualified build-tin class name</div><div class='del'>-	  (::Struct) to avoid name crash.</div><div class='del'>-</div><div class='del'>-Sat Jul 10 04:21:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: better operation for SIGINT when processing</div><div class='del'>-	  callbacks.</div><div class='del'>-	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='del'>-	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='del'>-	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/validation.rb (__def_validcmd):  add a module</div><div class='del'>-	  function of Tk::ValidateConfigure to define validatecommand</div><div class='del'>-	  methods easier</div><div class='del'>-</div><div class='del'>-Fri Jul  9 22:36:36 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* array.c, enum.c, pack.c: rdoc patch from Johan Holmberg</div><div class='del'>-	  &lt;holmberg@iar.se&gt; [ruby-core:3132] [ruby-core:3136]</div><div class='del'>-</div><div class='del'>-	* numeric.c: rdoc patch.</div><div class='del'>-</div><div class='del'>-Fri Jul  9 19:26:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::HTTPS#proxy_open): raise ArgumentError to</div><div class='del'>-	  notice https is not supported.</div><div class='del'>-</div><div class='del'>-Fri Jul  9 14:28:54 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_raise): accept third argument as well as</div><div class='del'>-	  Kernel#raise, and evaluate the arguments to create an exception in</div><div class='del'>-	  the caller's context.  [ruby-talk:105507]</div><div class='del'>-</div><div class='del'>-Fri Jul  9 01:47:08 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib : bug fix</div><div class='del'>-	* ext/tk/lib/tkextlib/itcl : add [incr Tcl] support</div><div class='del'>-	* ext/tk/lib/tkextlib/itk  : add [incr Tk] support</div><div class='del'>-	* ext/tk/lib/tkextlib/iwidgets : midway point of [incr Widgets] support</div><div class='del'>-	* ext/tk/sample/tkextlib/iwidgets : very simple examples of</div><div class='del'>-	  [incr Widgets]</div><div class='del'>-</div><div class='del'>-Thu Jul  8 22:52:19 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/{rss,parser,0.9,1.0,2.0}.rb: supported RSS 0.9x/2.0</div><div class='del'>-	  validation and validation which disregard order of elements.</div><div class='del'>-	* test/rss/test_parser.rb: added tests for RSS 0.9x/2.0</div><div class='del'>-	  validation.</div><div class='del'>-	* test/rss/{test_trackback,rss-testcase}.rb: fixed no good method</div><div class='del'>-	  name.</div><div class='del'>-</div><div class='del'>-Thu Jul  8 00:05:23 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tempfile.rb (Tempfile::initialize): got out code of</div><div class='del'>-	  generating tmpname.  [ruby-dev:23832][ruby-dev:23837]</div><div class='del'>-</div><div class='del'>-Wed Jul  7 15:53:14 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_match): raise TypeError when both arguments are</div><div class='del'>-	  strings. [ruby-dev:22869] (backported from HEAD)</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_match2): removed.</div><div class='del'>-</div><div class='del'>-	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,</div><div class='del'>-	  wince/Makefile.sub (string.c): now not depend on version.h.</div><div class='del'>-</div><div class='del'>-Wed Jul  7 00:48:34 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tktrans.rb,</div><div class='del'>-	  ext/tk/lib/tkextlib/treectrl.rb: fix syntax errors.</div><div class='del'>-</div><div class='del'>-Tue Jul  6 18:38:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib : improve framework of developping Tcl/Tk extension</div><div class='del'>-	  wrappers</div><div class='del'>-</div><div class='del'>-Mon Jul  5 23:56:42 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/{trackback,syndication,dublincore,content}.rb: worked</div><div class='del'>-	  with ruby 1.6 again.</div><div class='del'>-</div><div class='del'>-	* test/rss/rss-assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Jul  5 22:54:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb (Kernel#URI): new global method for parsing URIs.</div><div class='del'>-</div><div class='del'>-Mon Jul  5 09:02:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_yield, rb_f_catch): 4th argument to rb_yield_0()</div><div class='del'>-	  is a set of bit flags.  [ruby-dev:23859]</div><div class='del'>-</div><div class='del'>-Mon Jul  5 01:27:32 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb(DRbConn self.open): If socket pool is full, close</div><div class='del'>-	  the socket whose last-access-time is oldest. (and add new one)</div><div class='del'>-	  [ruby-dev:23860]</div><div class='del'>-</div><div class='del'>-Sun Jul  4 12:24:50 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rss/rss.rb: added copyright header.</div><div class='del'>-</div><div class='del'>-Sun Jul  4 00:24:40 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* added files</div><div class='del'>-	  * lib/soap/attachment.rb</div><div class='del'>-	  * lib/soap/header</div><div class='del'>-	  * lib/soap/mimemessage.rb</div><div class='del'>-	  * lib/soap/rpc/httpserver.rb</div><div class='del'>-	  * lib/wsdl/soap/cgiStubCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/classDefCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/classDefCreatorSupport.rb</div><div class='del'>-	  * lib/wsdl/soap/clientSkeltonCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/driverCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/mappingRegistryCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/methodDefCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/servantSkeltonCreator.rb</div><div class='del'>-	  * lib/wsdl/soap/standaloneServerStubCreator.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/enumeration.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/simpleRestriction.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/simpleType.rb</div><div class='del'>-	  * lib/xsd/codegen</div><div class='del'>-	  * lib/xsd/codegen.rb</div><div class='del'>-	  * sample/soap/authheader</div><div class='del'>-	  * sample/soap/raa2.4</div><div class='del'>-	  * sample/soap/ssl</div><div class='del'>-	  * sample/soap/swa</div><div class='del'>-	  * sample/soap/whois.rb</div><div class='del'>-	  * sample/soap/calc/samplehttpd.conf</div><div class='del'>-	  * sample/soap/exchange/samplehttpd.conf</div><div class='del'>-	  * sample/soap/sampleStruct/samplehttpd.conf</div><div class='del'>-	  * sample/wsdl/raa2.4</div><div class='del'>-	  * sample/wsdl/googleSearch/samplehttpd.conf</div><div class='del'>-	  * test/openssl/_test_ssl.rb</div><div class='del'>-	  * test/soap/header</div><div class='del'>-	  * test/soap/ssl</div><div class='del'>-	  * test/soap/struct</div><div class='del'>-	  * test/soap/swa</div><div class='del'>-	  * test/soap/wsdlDriver</div><div class='del'>-	  * test/wsdl/multiplefault.wsdl</div><div class='del'>-	  * test/wsdl/simpletype</div><div class='del'>-	  * test/wsdl/test_multiplefault.rb</div><div class='del'>-</div><div class='del'>-	* modified files</div><div class='del'>-	  * lib/soap/baseData.rb</div><div class='del'>-	  * lib/soap/element.rb</div><div class='del'>-	  * lib/soap/generator.rb</div><div class='del'>-	  * lib/soap/marshal.rb</div><div class='del'>-	  * lib/soap/netHttpClient.rb</div><div class='del'>-	  * lib/soap/parser.rb</div><div class='del'>-	  * lib/soap/processor.rb</div><div class='del'>-	  * lib/soap/property.rb</div><div class='del'>-	  * lib/soap/soap.rb</div><div class='del'>-	  * lib/soap/streamHandler.rb</div><div class='del'>-	  * lib/soap/wsdlDriver.rb</div><div class='del'>-	  * lib/soap/encodingstyle/handler.rb</div><div class='del'>-	  * lib/soap/encodingstyle/literalHandler.rb</div><div class='del'>-	  * lib/soap/encodingstyle/soapHandler.rb</div><div class='del'>-	  * lib/soap/mapping/factory.rb</div><div class='del'>-	  * lib/soap/mapping/mapping.rb</div><div class='del'>-	  * lib/soap/mapping/registry.rb</div><div class='del'>-	  * lib/soap/mapping/rubytypeFactory.rb</div><div class='del'>-	  * lib/soap/mapping/wsdlRegistry.rb</div><div class='del'>-	  * lib/soap/rpc/cgistub.rb</div><div class='del'>-	  * lib/soap/rpc/driver.rb</div><div class='del'>-	  * lib/soap/rpc/element.rb</div><div class='del'>-	  * lib/soap/rpc/proxy.rb</div><div class='del'>-	  * lib/soap/rpc/router.rb</div><div class='del'>-	  * lib/soap/rpc/soaplet.rb</div><div class='del'>-	  * lib/soap/rpc/standaloneServer.rb</div><div class='del'>-	  * lib/wsdl/data.rb</div><div class='del'>-	  * lib/wsdl/definitions.rb</div><div class='del'>-	  * lib/wsdl/operation.rb</div><div class='del'>-	  * lib/wsdl/parser.rb</div><div class='del'>-	  * lib/wsdl/soap/definitions.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/complexContent.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/complexType.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/data.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/parser.rb</div><div class='del'>-	  * lib/wsdl/xmlSchema/schema.rb</div><div class='del'>-	  * lib/xsd/datatypes.rb</div><div class='del'>-	  * lib/xsd/qname.rb</div><div class='del'>-	  * sample/soap/calc/httpd.rb</div><div class='del'>-	  * sample/soap/exchange/httpd.rb</div><div class='del'>-	  * sample/soap/sampleStruct/httpd.rb</div><div class='del'>-	  * sample/soap/sampleStruct/server.rb</div><div class='del'>-	  * sample/wsdl/amazon/AmazonSearch.rb</div><div class='del'>-	  * sample/wsdl/amazon/AmazonSearchDriver.rb</div><div class='del'>-	  * sample/wsdl/googleSearch/httpd.rb</div><div class='del'>-	  * test/soap/test_basetype.rb</div><div class='del'>-	  * test/soap/test_property.rb</div><div class='del'>-	  * test/soap/test_streamhandler.rb</div><div class='del'>-	  * test/soap/calc/test_calc.rb</div><div class='del'>-	  * test/soap/calc/test_calc2.rb</div><div class='del'>-	  * test/soap/calc/test_calc_cgi.rb</div><div class='del'>-	  * test/soap/helloworld/test_helloworld.rb</div><div class='del'>-	  * test/wsdl/test_emptycomplextype.rb</div><div class='del'>-	  * test/wsdl/axisArray/test_axisarray.rb</div><div class='del'>-	  * test/wsdl/datetime/test_datetime.rb</div><div class='del'>-	  * test/wsdl/raa/test_raa.rb</div><div class='del'>-	  * test/xsd/test_xmlschemaparser.rb</div><div class='del'>-	  * test/xsd/test_xsd.rb</div><div class='del'>-</div><div class='del'>-	* summary</div><div class='del'>-	  * add SOAP Header mustUnderstand support.</div><div class='del'>-</div><div class='del'>-	  * add HTTP client SSL configuration and Cookies support (works</div><div class='del'>-	    completely with http-access2).</div><div class='del'>-</div><div class='del'>-	  * add header handler for handling sending/receiving SOAP Header.</div><div class='del'>-</div><div class='del'>-	  * map Ruby's anonymous Struct to common SOAP Struct in SOAP Object</div><div class='del'>-	    Model.  it caused error.</div><div class='del'>-</div><div class='del'>-	  * add WSDL simpleType support to restrict lexical value space.</div><div class='del'>-</div><div class='del'>-	  * add SOAP with Attachment support.</div><div class='del'>-</div><div class='del'>-Sat Jul  3 17:19:44 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkextlib/tkDND.rb: fix syntax error.</div><div class='del'>-</div><div class='del'>-Thu Jul  1 23:15:29 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb (transaction): safer backup scheme.  [ruby-list:39102]</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb (commit_new): use FileUtils.copy_stream for Cygwin.</div><div class='del'>-	  [ruby-dev:23157]</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb (transaction): allow overriding dump and load.</div><div class='del'>-	  [ruby-dev:23567]</div><div class='del'>-</div><div class='del'>-	* lib/pstore.rb (PStore#transaction): get rid of opening in write mode</div><div class='del'>-	  when read only transaction.  [ruby-dev:23842]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/store.rb: follow lib/pstore.rb's change.</div><div class='del'>-</div><div class='del'>-Thu Jul  1 18:36:08 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tcltklib : bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries</div><div class='del'>-</div><div class='del'>-Thu Jul  1 11:59:45 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: check for EVP_CIPHER_CTX_copy, ENGINE_add,</div><div class='del'>-	  EVP_CIPHER_CTX_set_padding, EVP_CipherFinal_ex, EVP_CipherInit_ex,</div><div class='del'>-	  EVP_DigestFinal_ex and EVP_DigestInit_ex.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missing.c (EVP_CIPHER_CTX_copy): new function.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missing.h (EVP_DigestInit_ex, EVP_DigestFinal_ex,</div><div class='del'>-	  EVP_CipherInit_ex, EVP_CipherFinal_ex, HMAC_Init_ex): new macro for</div><div class='del'>-	  OpenSSL 0.9.6.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_encrypt, ossl_cipher_decrypt):</div><div class='del'>-	  re-implemnt (the arguments for this method is ).</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_pkcs5_keyivgen): new method</div><div class='del'>-	  OpenSSL::Cipher::Cipher#pkcs5_keyivgen. it calls EVP_BytesToKey().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_alloc, ossl_cipher_initialize,</div><div class='del'>-	  ossl_cipher_copy, ossl_cipher_reset ossl_cipher_final,</div><div class='del'>-	  ossl_cipher_set_key, ossl_cipher_set_iv): replace all EVP_CipherInit</div><div class='del'>-	  and EVP_CipherFinal into EVP_CipherInit_ex and EVP_CipherFinal_ex.</div><div class='del'>-	  and EVP_CIPHER_CTX_init should only be called once.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_set_key_length): new method</div><div class='del'>-	  OpenSSL::Cipher::Cipher#key_len=.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c (ossl_cipher_init_deprecated): new</div><div class='del'>-	  finction; print warning for Cipher#&lt;&lt;.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.c: replace all EVP_DigestInit and</div><div class='del'>-	  EVP_DigestFinal into EVP_DigestInit_ex and EVP_DigestFinal_ex.</div><div class='del'>-	  and EVP_MD_CTX_init should only be called once.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.c (digest_final): should call</div><div class='del'>-	  EVP_MD_CTX_cleanup to avoid memory leak.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_hmac.c (ossl_hmac_initialize): repalce HMAC_init</div><div class='del'>-	  into HMAC_init_ex. and HMAC_CTX_init is moved to ossl_hmac_alloc.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_hmac.c (hmac_final): should call</div><div class='del'>-	  HMAC_CTX_cleanup to avoid memory leak.</div><div class='del'>-</div><div class='del'>-	* test/openssl/test_cipher.rb, test/openssl/test_digest.rb,</div><div class='del'>-	  test/openssl/test_hmac.rb: new file.</div><div class='del'>-</div><div class='del'>-Thu Jul  1 04:08:30 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_i2d_ASN1_TYPE, ossl_ASN1_TYPE_free):</div><div class='del'>-	  workaround for the versions earlier than OpenSSL-0.9.7.</div><div class='del'>-</div><div class='del'>-Thu Jul  1 03:33:55 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): should create</div><div class='del'>-	  empty pkey object if no argument is passed. [ruby-talk:103328]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dh.c: add new methods: OpenSSL::PKey::DH#p,</div><div class='del'>-	  OpenSSL::PKey::DH#p=, OpenSSL::PKey::DH#g, OpenSSL::PKey::DH#g=,</div><div class='del'>-	  OpenSSL::PKey::DH#pub_key, OpenSSL::PKey::DH#pub_key=,</div><div class='del'>-	  OpenSSL::PKey::DH#priv_key and OpenSSL::PKey::DH#priv_key=.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dsa.c: add new methods: OpenSSL::PKey::DSA#p,</div><div class='del'>-	  OpenSSL::PKey::DSA#p=, OpenSSL::PKey::DSA#q, OpenSSL::PKey::DSA#q=,</div><div class='del'>-	  OpenSSL::PKey::DSA#g, OpenSSL::PKey::DSA#g=,</div><div class='del'>-	  OpenSSL::PKey::DSA#pub_key, OpenSSL::PKey::DSA#pub_key=,</div><div class='del'>-	  OpenSSL::PKey::DSA#priv_key and OpenSSL::PKey::DSA#priv_key=.</div><div class='del'>-</div><div class='del'>-Thu Jul  1 03:16:09 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_read): take optional second argument</div><div class='del'>-	  to specify a string to be written.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#read):</div><div class='del'>-	  take optional second argument to specify a string to be written.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#gets):</div><div class='del'>-	  refine regexp for end-of-line.</div><div class='del'>-</div><div class='del'>-	* ext/opnessl/lib/openssl/ssl.rb</div><div class='del'>-	  (OpenSSL::SSL::SocketForwarder#listen): fix typo.</div><div class='del'>-</div><div class='del'>-Wed Jun 30 11:38:51 2004  Mikael Brockman  &lt;phubuh@phubuh.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (primary): should not be NULL.  [ruby-core:03098]</div><div class='del'>-</div><div class='del'>-Wed Jun 30 02:53:24 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_new): set buffer after</div><div class='del'>-	  Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]</div><div class='del'>-</div><div class='del'>-Tue Jun 29 10:31:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.</div><div class='del'>-</div><div class='del'>-	* gc.c (define_final, run_final): preserve and restore safe level for</div><div class='del'>-	  finalizers.  [ruby-core:03058]</div><div class='del'>-</div><div class='del'>-	* signal.c (signal_exec, rb_trap_exit, trap): preserve and restore</div><div class='del'>-	  safe level for signal handlers.  [ruby-dev:23829]</div><div class='del'>-</div><div class='del'>-Mon Jun 28 14:57:56 2004  Jeff Mitchell  &lt;quixoticsycophant@yahoo.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, lib/mkmf.rb (LIBPATHFLAG): use double quotes due to</div><div class='del'>-	  DOSISH compilers.  [ruby-core:03107]</div><div class='del'>-</div><div class='del'>-Mon Jun 28 00:30:19 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* sample/drb/*.rb: using 'DRb.thread.join' instead of 'gets'</div><div class='del'>-</div><div class='del'>-Sun Jun 27 22:39:51 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/rss/tdiary_plugin/rss-recent.rb: supported Hiki.</div><div class='del'>-</div><div class='del'>-Sun Jun 27 12:19:46 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='del'>-</div><div class='del'>-	* {lib,sample,test}/rss: added RSS Parser. [ruby-dev:23780]</div><div class='del'>-</div><div class='del'>-Sat Jun 26 11:07:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (aix): -b must come at the start of the command line,</div><div class='del'>-	  and -e must not appear while testing libraries.  [ruby-talk:104501]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (dir_config): quote directory names if necessary.</div><div class='del'>-	  [ruby-talk:104505]</div><div class='del'>-</div><div class='del'>-Fri Jun 25 15:33:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/extconf.rb: check stricter.  [ruby-talk:104501]</div><div class='del'>-</div><div class='del'>-	* ext/iconv/extconf.rb: include iconv.h for libiconv.  [ruby-dev:22715]</div><div class='del'>-</div><div class='del'>-Fri Jun 25 08:31:29 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_atfork): remove "fork terminates thread"</div><div class='del'>-	  warning.  [ruby-dev:23768]</div><div class='del'>-</div><div class='del'>-	* object.c (rb_obj_clone): backport FL_FINALIZE patch from 1.9.</div><div class='del'>-	  [ruby-core:02786][ruby-core:03067]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()</div><div class='del'>-	  should give us packed address, not struct sockaddr.</div><div class='del'>-	  [ruby-core:03053]</div><div class='del'>-</div><div class='del'>-Fri Jun 25 02:04:23 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/setup.mak: remove RUBY_EXTERN lines when</div><div class='del'>-	  including version.h. [ruby-talk:104456] (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Thu Jun 24 14:23:29 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_fread): return already read data when system call is</div><div class='del'>-	  interrupted.  [ruby-talk:97206]</div><div class='del'>-</div><div class='del'>-Thu Jun 24 01:32:43 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* version.h: added declarations of ruby_version,</div><div class='del'>-	  ruby_release_date, ruby_platform.</div><div class='del'>-	  (backported from HEAD)</div><div class='del'>-</div><div class='del'>-Wed Jun 23 22:23:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem</div><div class='del'>-	  with OS X not returning 'from' parameter to recvfrom for</div><div class='del'>-	  connection-oriented sockets.</div><div class='del'>-</div><div class='del'>-Wed Jun 23 01:45:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_quotation):</div><div class='del'>-	  Fix problem with the 'r' being dropped from %r{xxx}</div><div class='del'>-</div><div class='del'>-Wed Jun 23 00:20:20 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_hresult2msg): remove trailing</div><div class='del'>-	  CRs and LFs. (doesn't depend on CR+LF) [ruby-dev:23749]</div><div class='del'>-</div><div class='del'>-Wed Jun 23 00:00:25 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_initialize): should check fcntl result.  [ruby-dev:23742]</div><div class='del'>-</div><div class='del'>-Tue Jun 22 21:11:36 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (OLE_FREE): should not call CoFreeUnuse-</div><div class='del'>-	  dLibraries().</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_event_free): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_hresult2msg): truncate error message</div><div class='del'>-	  before CR.</div><div class='del'>-</div><div class='del'>-Tue Jun 22 16:47:42 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/ftp.rb (MDTM_REGEXP): fix for demon's ftp server.</div><div class='del'>-	  Thanks, Rutger Nijlunsing.</div><div class='del'>-</div><div class='del'>-Mon Jun 21 10:19:23 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_opendir): use FindFirstFile()/FindNextFile()/</div><div class='del'>-	  FindClose() instead of _findfirst()/_findnext()/_findclose().</div><div class='del'>-	  merge from HEAD.</div><div class='del'>-</div><div class='del'>-Sat Jun 19 13:24:15 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_call): allow changing $SAFE.  [ruby-dev:23713]</div><div class='del'>-</div><div class='del'>-Fri Jun 18 23:12:22 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_save_safe_level, rb_set_safe_level, safe_setter): limit</div><div class='del'>-	  safe level.</div><div class='del'>-</div><div class='del'>-Wed Jun 16 23:05:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_freeze): prepare string representation before</div><div class='del'>-	  freezing. [ruby-talk:103646]</div><div class='del'>-</div><div class='del'>-Wed Jun 16 16:04:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_mod_le): singleton class inherits Class rather than its</div><div class='del'>-	  object's class.  [ruby-dev:23690]</div><div class='del'>-</div><div class='del'>-Wed Jun 16 16:01:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (stack_grow_direction): memoize the direction.</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): should always move to end of VALUE.</div><div class='del'>-</div><div class='del'>-Tue Jun 15 12:10:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix (TkWindow#grab)</div><div class='del'>-</div><div class='del'>-Mon Jun 14 18:23:27 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: bug fix</div><div class='del'>-</div><div class='del'>-Sun Jun 13 00:23:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) support</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and</div><div class='del'>-	  eliminate warning about instance variable access</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menubar.rb: improve supported menu_spec</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/root.rb: add menu_spec support</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/text.rb: bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/toplevel.rb: add menu_spec support</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage</div><div class='del'>-</div><div class='del'>-Sat Jun 12 11:15:53 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (target_os): strip -gnu suffix on Linux.</div><div class='del'>-</div><div class='del'>-Fri Jun 11 17:08:21 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* config.guess: Restore a wrongly removed hyphen.</div><div class='del'>-</div><div class='del'>-Fri Jun 11 14:30:08 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* config.guess: Attempt to avoid system name change on</div><div class='del'>-	  Darwin platforms also.</div><div class='del'>-</div><div class='del'>-Fri Jun 11 14:22:45 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* config.guess, config.sub: Attempt to avoid system name change on</div><div class='del'>-	  Linux platforms.  We have been using "linux" instead of</div><div class='del'>-	  "linux-gnu" on this branch.</div><div class='del'>-</div><div class='del'>-Thu Jun 10 19:19:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/sdbm/init.c (fsdbm_store): sdbm should use StringValue().</div><div class='del'>-	  [ruby-talk:103062]</div><div class='del'>-</div><div class='del'>-Wed Jun  9 18:04:14 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::merge,</div><div class='del'>-	  URI::Generic::route_from): accepts non-hierarchical URI.</div><div class='del'>-	  [ruby-dev:23631]</div><div class='del'>-</div><div class='del'>-	* test/uri/test_generic.rb (TestGeneric::test_route,</div><div class='del'>-	  TestGeneric::test_merge): added tests for above changes.</div><div class='del'>-</div><div class='del'>-Wed Jun  9 17:39:37 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* config.guess, config.sub: Update to a more recent version as of</div><div class='del'>-	  2004-01-20.</div><div class='del'>-</div><div class='del'>-	* configure.in: Add support for DragonFly BSD.</div><div class='del'>-</div><div class='del'>-Wed Jun  2 20:16:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_new4): should share shared instance if it already</div><div class='del'>-	  exists.  [ruby-dev:23665]</div><div class='del'>-</div><div class='del'>-Wed Jun  2 12:41:53 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_gets_m): set lastline ($_) even when read line is</div><div class='del'>-	  nil.  [ruby-dev:23663]</div><div class='del'>-</div><div class='del'>-Fri May 28 11:20:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): bad influence on frame node.</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): reverted wrongly removed condition.  [ruby-dev:23638]</div><div class='del'>-</div><div class='del'>-Thu May 27 23:15:18 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: leading 0 padding of timestamp usec part.</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb (CSV.parse): [CAUTION] behavior changed.  in the past,</div><div class='del'>-	  CSV.parse accepts a filename to be read-opened (it was just a</div><div class='del'>-	  shortcut of CSV.open(filename, 'r')).  now CSV.parse accepts a</div><div class='del'>-	  string or a stream to be parsed e.g.</div><div class='del'>-	  CSV.parse("1,2\n3,r") #=&gt; [['1', '2'], ['3', '4']]</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: CSV::Row and CSV::Cell are deprecated.  these classes</div><div class='del'>-	  are removed in the future.  in the new csv.rb, row is represented</div><div class='del'>-	  as just an Array.  since CSV::Row was a subclass of Array, it won't</div><div class='del'>-	  hurt almost all programs except one which depended CSV::Row#match.</div><div class='del'>-	  and a cell is represented as just a String or nil(NULL).  this</div><div class='del'>-	  change will cause widespread destruction.</div><div class='del'>-</div><div class='del'>-	      CSV.open("foo.csv", "r") do |row|</div><div class='del'>-		row.each do |cell|</div><div class='del'>-		  if cell.is_null       # using Cell#is_null</div><div class='del'>-		    p "(NULL)"</div><div class='del'>-		  else</div><div class='del'>-		    p cell.data         # using Cell#data</div><div class='del'>-		  end</div><div class='del'>-		end</div><div class='del'>-	      end</div><div class='del'>-</div><div class='del'>-	    must be just;</div><div class='del'>-</div><div class='del'>-	      CSV.open("foo.csv", "r") do |row|</div><div class='del'>-		row.each do |cell|</div><div class='del'>-		  if cell.nil?</div><div class='del'>-		    p "(NULL)"</div><div class='del'>-		  else</div><div class='del'>-		    p cell</div><div class='del'>-		  end</div><div class='del'>-		end</div><div class='del'>-	      end</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: [CAUTION] record separator(CR, LF, CR+LF) behavior</div><div class='del'>-	  change.  CSV.open, CSV.parse, and CSV,generate now do not force</div><div class='del'>-	  opened file binmode.  formerly it set binmode explicitly.</div><div class='del'>-</div><div class='del'>-	  with CSV.open, binmode of opened file depends the given mode</div><div class='del'>-	  parameter "r", "w", "rb", and "wb".  CSV.parse and CSV.generate open</div><div class='del'>-	  file with "r" and "w".</div><div class='del'>-</div><div class='del'>-	  setting mode properly is user's responsibility now.</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: accepts String as a fs (field separator/column separator)</div><div class='del'>-	  and rs (record separator/row separator)</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb (CSV.read, CSV.readlines): added.  works as IO.read and</div><div class='del'>-	  IO.readlines in CSV format.</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: added CSV.foreach(path, rs = nil, &amp;block).  CSV.foreach</div><div class='del'>-	  now does not handle "| cmd" as a path different from IO.foreach.</div><div class='del'>-	  needed?</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: updated.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_float.rb: added test_strtod to test Float("0").</div><div class='del'>-</div><div class='del'>-Thu May 27 21:37:50 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#initialize): refine pathname initialization</div><div class='del'>-	  by pathname.</div><div class='del'>-</div><div class='del'>-Thu May 27 20:22:05 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_fwrite): check all case errno != 0 [ruby-dev:23648]</div><div class='del'>-</div><div class='del'>-Thu May 27 14:53:13 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_fwrite): workaround for bcc32's fwrite bug.</div><div class='del'>-	  add errno checking.  [ruby-dev:23627]</div><div class='del'>-</div><div class='del'>-Wed May 26 14:19:42 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval, eval): make line number consistent on eval with</div><div class='del'>-	  Proc.  [ruby-talk:101253]</div><div class='del'>-</div><div class='del'>-Wed May 26 13:59:17 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::skip_for_variable): Allow for</div><div class='del'>-	  'do' after for statement</div><div class='del'>-</div><div class='del'>-Wed May 26 13:56:03 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (Generators::MarkUp::style_url): Fix</div><div class='del'>-	  relative path to code CSS file</div><div class='del'>-</div><div class='del'>-Wed May 26 13:14:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_init_copy): copy also positions.  [ruby-talk:100910]</div><div class='del'>-</div><div class='del'>-Wed May 26 00:00:00 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c (syck_new_parser): clear parser on init.</div><div class='del'>-	  thanks, ts. [ruby-core:02931]</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c (sycklex_yaml_utf8): buffer underflow.</div><div class='del'>-	  thanks, ts. [ruby-core:02929]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/baseemitter.rb (indent_text): simpler flow block code.</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: added rdoc to beginning of lib.</div><div class='del'>-</div><div class='del'>-Mon May 24 10:46:26 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/html.rb: SYSTEM identifiers</div><div class='del'>-	  must be absolute URIs</div><div class='del'>-</div><div class='del'>-Sat May 22 12:00:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add new encodings in rexml.</div><div class='del'>-</div><div class='del'>-	* ext/tk/MANIFEST: add recent files.</div><div class='del'>-</div><div class='del'>-Sat May 22 05:37:11 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/remote-tk.rb: (NEW library) controll Tk interpreters</div><div class='del'>-	  on the other processes by Tcl/Tk's 'send' command</div><div class='del'>-</div><div class='del'>-Fri May 21 09:22:05 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_parameters):</div><div class='del'>-	  Add ()'s around parameters that don't have them</div><div class='del'>-</div><div class='del'>-Thu May 20 17:02:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (check_sizeof): define result size.  [ruby-core:02911]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_header): macro name should not include equal</div><div class='del'>-	  sign.</div><div class='del'>-</div><div class='del'>-Thu May 20 15:59:50 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: fix SEGV. [ruby-dev:23550]</div><div class='del'>-</div><div class='del'>-Thu May 20 14:35:52 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: check SCM_RIGHTS macro addition to</div><div class='del'>-	  the msg_control field to test existence of file descriptor passing</div><div class='del'>-	  by msg_control.</div><div class='del'>-</div><div class='del'>-Thu May 20 12:38:06 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_eq): always check if operands are NaN.</div><div class='del'>-	  [ruby-list:39685]</div><div class='del'>-</div><div class='del'>-Thu May 20 12:34:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility):</div><div class='del'>-	  At Ryan Davis' suggestion, honor visibility modifers if guarded by a</div><div class='del'>-	  statement modifier</div><div class='del'>-</div><div class='del'>-Thu May 20 12:22:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_type): do not check pointer to incomplete type,</div><div class='del'>-	  which always get compiled.  [ruby-list:39683]</div><div class='del'>-</div><div class='del'>-Wed May 19 11:09:00 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: change permition of TkObject#tk_send from</div><div class='del'>-	  private to public</div><div class='del'>-</div><div class='del'>-Tue May 18 14:00:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* node.h (NEW_DSTR): adjust list length.</div><div class='del'>-</div><div class='del'>-	* parse.y (literal_concat): ditto.</div><div class='del'>-</div><div class='del'>-Mon May 17 16:14:25 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_to_s): it's preferable that "p 0.0" outputs "0.0"</div><div class='del'>-	  instead of "0.0e+00". [ruby-dev:23480]</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_to_s): it's preferable that "p 0.00000000000000000001"</div><div class='del'>-	  outputs "1.0e-20" instead of "9.999999999999999e-21". (the precision</div><div class='del'>-	  is considered, but there is assumption DBL_DIG == 15 in current</div><div class='del'>-	  implementation)</div><div class='del'>-</div><div class='del'>-Mon May 17 10:13:33 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (setup_domain_and_type): honor duck typing.</div><div class='del'>-	  [ruby-dev:23522]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_getnameinfo): ditto.</div><div class='del'>-</div><div class='del'>-Mon May 17 01:15:23 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb: removed fallback to pure Ruby parser.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/baseemitter.rb (indent_text): was forcing a mod value</div><div class='del'>-	  of zero at times, which kept some blocks from getting indentation.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/baseemitter.rb (node_text): rewriting folded scalars.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: reports style of scalars now, be they plain, block</div><div class='del'>-	  single-, or double-quoted.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/gram.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/node.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (yaml_org_handler): symbols loaded only</div><div class='del'>-	  if scalar style is plain.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (yaml_org_handler): some empty strings were</div><div class='del'>-	  loaded as symbols.</div><div class='del'>-</div><div class='del'>-	* test/yaml/test_yaml.rb (test_perl_regexp): updated test to</div><div class='del'>-	  match new regexp serialization.</div><div class='del'>-</div><div class='del'>-Mon May 17 00:03:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: Cosmetic documentation changes.</div><div class='del'>-</div><div class='del'>-Sun May 16 22:36:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: Removed :nodoc: directive (it prevented effective</div><div class='del'>-	  RDoc operation), and added file-level comment.</div><div class='del'>-</div><div class='del'>-Sun May 16 20:55:49 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dbm/dbm.c (fdbm_initialize): accept optional 3rd argument to</div><div class='del'>-	  specify an open flag.</div><div class='del'>-	  (Init_dbm): define open flags: DBM::READER, DBM::WRITER, DBM::WRCREAT</div><div class='del'>-	  and DBM::NEWDB.</div><div class='del'>-</div><div class='del'>-Sun May 16 13:10:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/**/*.rb: Removed :nodoc: directives (many were</div><div class='del'>-	  generating warnings, many were on private methods).</div><div class='del'>-</div><div class='del'>-Sat May 15 01:41:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): forgot to restore $SAFE value before evaluating</div><div class='del'>-	  compiled node.  [ruby-core:02872]</div><div class='del'>-</div><div class='del'>-Sat May 15 01:33:12 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* range.c (range_each_func): terminates loop if generating value</div><div class='del'>-	  is same to @end.  [ruby-talk:100269]</div><div class='del'>-</div><div class='del'>-Fri May 14 22:08:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_new4): should not reuse frozen shared string if</div><div class='del'>-	  the original is not an instance of String. [ruby-talk:100193]</div><div class='del'>-</div><div class='del'>-Fri May 14 18:39:25 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/canvas.rb: improve coords support for canvas items.</div><div class='del'>-	  Now, supports all of the followings.</div><div class='del'>-	    TkcLine.new(c, 0, 0, 100, 100, :fill=&gt;'red')</div><div class='del'>-	    TkcLine.new(c, [0, 0, 100, 100], :fill=&gt;'red')</div><div class='del'>-	    TkcLine.new(c, [0, 0], [100, 100], :fill=&gt;'red')</div><div class='del'>-	    TkcLine.new(c, [[0, 0], [100, 100]], :fill=&gt;'red')</div><div class='del'>-	    TkcLine.new(c, :coords=&gt;[0, 0, 100, 100], :fill=&gt;'red')</div><div class='del'>-	    TkcLine.new(c, :coords=&gt;[[0, 0], [100, 100]], :fill=&gt;'red')</div><div class='del'>-</div><div class='del'>-Fri May 14 12:11:43 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): strtod("0", &amp;end); =&gt; end should point '\0'.</div><div class='del'>-	 [ruby-dev:23498]</div><div class='del'>-</div><div class='del'>-Thu May 13 15:47:30 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/telnet.rb (Net::Telnet::login): "options" can specify</div><div class='del'>-	  regexps for login prompt and/or password prompt.</div><div class='del'>-</div><div class='del'>-Thu May 13 14:23:45 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (delete_if_i): use st_delete_safe() (via</div><div class='del'>-	  rb_hash_delete()) instead of returning ST_DELETE.</div><div class='del'>-	  backport from HEAD.  [ruby-dev:23487]</div><div class='del'>-</div><div class='del'>-Thu May 13 13:01:30 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/mailto.rb (URI::MailTo::to_s): should include fragment.</div><div class='del'>-</div><div class='del'>-Thu May 13 11:04:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): always add with null for 'Z'.</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): terminated by null for 'Z'.  [ruby-talk:98281]</div><div class='del'>-</div><div class='del'>-Wed May 12 19:59:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_type, check_sizeof): replace unusable characters.</div><div class='del'>-	  [ruby-talk:99788]</div><div class='del'>-</div><div class='del'>-Wed May 12 17:41:42 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb (Resolv::DNS::Config): make it configurable without</div><div class='del'>-	  external file such as /etc/resolv.conf.</div><div class='del'>-</div><div class='del'>-Wed May 12 14:37:27 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c: attribute value of DC (short name of</div><div class='del'>-	  domainComponent) should be IA5String.</div><div class='del'>-</div><div class='del'>-Wed May 12 13:20:19 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk/composite.rb: improve configure methods (based on</div><div class='del'>-	  the proposal of [ruby-talk:99671]).</div><div class='del'>-</div><div class='del'>-Wed May 12 11:51:08 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* class.c (rb_obj_singleton_methods): fix rdoc</div><div class='del'>-</div><div class='del'>-Mon May 10 21:44:42 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Change scheme for</div><div class='del'>-	  looking up symbols in  HTML generator.</div><div class='del'>-</div><div class='del'>-Mon May 10 16:45:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): warning during eval should not cause deadlock.</div><div class='del'>-	  [ruby-talk:98651]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): raise TypeError exception for superclass</div><div class='del'>-	  mismatch.  [ruby-list:39567]</div><div class='del'>-</div><div class='del'>-Mon May 10 12:11:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Hack to search parents</div><div class='del'>-	  for unqualified constant names.</div><div class='del'>-</div><div class='del'>-Mon May 10 12:11:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Hack to search parents</div><div class='del'>-	  for unqualified constant names.</div><div class='del'>-</div><div class='del'>-Sun May  9 22:37:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/ftp.rb: improved documentation</div><div class='del'>-	* lib/net/imap.rb: ditto</div><div class='del'>-	* lib/net/pop.rb: ditto</div><div class='del'>-	* lib/net/smtp.rb: ditto</div><div class='del'>-	* lib/net/telnet.rb: ditto</div><div class='del'>-</div><div class='del'>-Fri May  7 21:50:21 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_include): Allow</div><div class='del'>-	  multiple arguments to 'include'</div><div class='del'>-</div><div class='del'>-Fri May  7 21:31:56 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_list): Array() breaks pathes including "\n".</div><div class='del'>-	  [ruby-core:02843]</div><div class='del'>-</div><div class='del'>-Fri May  7 11:25:53 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): "0.0000000000000000001" should be converted</div><div class='del'>-	  to 1.0e-19 instead of 0.0. (leading zeros aren't significant digits)</div><div class='del'>-	  [ruby-talk:99318] [ruby-dev:23465]</div><div class='del'>-</div><div class='del'>-Fri May  7 10:00:05 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/tkutil.c (get_eval_string_core): bug fix. [ruby-dev:23466]</div><div class='del'>-</div><div class='del'>-Thu May  6 22:13:17 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ippaddr): use NUMERICHOST if can not resolve</div><div class='del'>-	  hostname.</div><div class='del'>-</div><div class='del'>-Thu May  6 14:22:29 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (to_yaml): added instance variable handling</div><div class='del'>-	  for Ranges, Strings, Structs, Regexps.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (to_yaml_fold): new method for setting a</div><div class='del'>-	  String's flow style.</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb (YAML::object_maker): now uses Object.allocate.</div><div class='del'>-</div><div class='del'>-	* ext/syck/gram.c: fixed transfer methods on structs, broke it</div><div class='del'>-	  last commit.</div><div class='del'>-</div><div class='del'>-Thu May  6 11:40:28 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (string): accept NIL.</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (body_type_basic): allow body-fields omissions.</div><div class='del'>-</div><div class='del'>-Thu May  6 01:59:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (Generators::HtmlMethod::params):</div><div class='del'>-	  Don't include the &amp;block parameter if we have explicit</div><div class='del'>-	  yield parameters.</div><div class='del'>-</div><div class='del'>-Wed May  5 03:40:29 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/ring.rb: use recv instead of recvfrom.</div><div class='del'>-</div><div class='del'>-Tue May  4 23:52:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/gserver.rb: documented</div><div class='del'>-</div><div class='del'>-Tue May  4 23:46:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xmlrpc/README.txt: introduced for documentation purposes</div><div class='del'>-</div><div class='del'>-Mon May  3 09:47:24 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):</div><div class='del'>-	  Fix parsing bug if yield called within 1 line block</div><div class='del'>-</div><div class='del'>-Sun May  2 01:04:38 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib, ext/tk: renewal Ruby/Tk</div><div class='del'>-</div><div class='del'>-Fri Apr 30 20:08:41 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (SIZEOF_TIME_T): support SIZEOF_TIME_T == SIZEOF_INT.</div><div class='del'>-</div><div class='del'>-Tue Apr 27 13:12:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): too many line trace call. (ruby-bugs PR#1320)</div><div class='del'>-</div><div class='del'>-Tue Apr 27 08:41:28 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: passing Range tests.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: version 0.44.</div><div class='del'>-</div><div class='del'>-	* ext/syck/gram.c: transfers no longer open an indentation.</div><div class='del'>-	  fixed transfers which precede blocks.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c: fixed segfault if an anchor has been released already.</div><div class='del'>-</div><div class='del'>-	* ext/syck/node.c (syck_free_members): organized order of free'd nodes.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_write_m): test for proper string with</div><div class='del'>-	  StringValue.</div><div class='del'>-</div><div class='del'>-Mon Apr 26 23:56:54 2004  Daniel Kelley  &lt;news-1082945587@dkelley.gmp.san-jose.ca.us&gt;</div><div class='del'>-</div><div class='del'>-	* README.EXT, README.EXT.ja: fixed wrong function signature.</div><div class='del'>-	  [ruby-talk:98349]</div><div class='del'>-</div><div class='del'>-Mon Apr 26 21:40:09 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::add_alias): Only alias</div><div class='del'>-	  to instance methods.</div><div class='del'>-</div><div class='del'>-Sat Apr 24 10:38:31 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::group_lines):</div><div class='del'>-	  Fix bug where consecutive headings are merged.</div><div class='del'>-</div><div class='del'>-Fri Apr 23 23:26:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: $hdrdir should not contain macros for backward</div><div class='del'>-	  compatibility.  [bruby-dev:28]</div><div class='del'>-</div><div class='del'>-	* version.c (ruby_show_copyright): obtain copyright year from</div><div class='del'>-	  RUBY_RELEASE_YEAR.</div><div class='del'>-</div><div class='del'>-	* win32/resource.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* win32/resource.rb: default rubyw icon to ruby.ico, and let DLL also</div><div class='del'>-	  include them.</div><div class='del'>-</div><div class='del'>-	* win32/resource.rb: include winver.h for older WindowsCE.</div><div class='del'>-</div><div class='del'>-Fri Apr 23 16:38:46 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb: sync taint/freeze flag between</div><div class='del'>-	  a pathname object and its internal string object.</div><div class='del'>-</div><div class='del'>-Fri Apr 23 14:52:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt, arg, aref_args): should not make sole splat into</div><div class='del'>-	  array, in aref_args other than aref with op_asgn.</div><div class='del'>-</div><div class='del'>-Fri Apr 23 14:14:38 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv.rb: don't use Regexp#source to embed regexps.</div><div class='del'>-	  [ruby-dev:23432]</div><div class='del'>-</div><div class='del'>-Thu Apr 22 04:15:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (aref_args): should pass expanded list.  [ruby-core:02793]</div><div class='del'>-</div><div class='del'>-Thu Apr 22 01:12:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_to_s): tweak output string based to preserve</div><div class='del'>-	  decimal point and to remove trailing zeros.  [ruby-talk:97891]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM</div><div class='del'>-	  search.  [ruby-talk:97342]</div><div class='del'>-</div><div class='del'>-Wed Apr 21 22:57:27 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size.</div><div class='del'>-</div><div class='del'>-Wed Apr 21 20:05:00 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::HTTP#proxy_open): set Host: field explicitly.</div><div class='del'>-	  [ruby-list:39542]</div><div class='del'>-</div><div class='del'>-Mon Apr 19 18:11:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_equal): returns true if two hashes have same set</div><div class='del'>-	  of key-value set.  [ruby-talk:97559]</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_eql): returns true if two hashes are equal and</div><div class='del'>-	  have same default values.</div><div class='del'>-</div><div class='del'>-Mon Apr 19 08:19:58 2004  Doug Kearns  &lt;djkea2@mugca.its.monash.edu.au&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c, io.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb, lib/date.rb,</div><div class='del'>-	  lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb, lib/matrix.rb,</div><div class='del'>-	  lib/monitor.rb, lib/set.rb, lib/thwait.rb, lib/timeout.rb,</div><div class='del'>-	  lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb, lib/net/ftp.rb,</div><div class='del'>-	  lib/net/http.rb, lib/net/imap.rb, lib/net/telnet.rb,</div><div class='del'>-	  lib/racc/parser.rb, lib/rinda/rinda.rb, lib/rinda/tuplespace.rb,</div><div class='del'>-	  lib/shell/command-processor.rb, lib/soap/rpc/soaplet.rb,</div><div class='del'>-	  lib/test/unit/testcase.rb, lib/test/unit/testsuite.rb: typo fix.</div><div class='del'>-</div><div class='del'>-Mon Apr 19 08:14:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Allow for</div><div class='del'>-	  #ifdef HAVE_PROTOTYPES</div><div class='del'>-</div><div class='del'>-Fri Apr 16 22:33:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c: nearly finished RDoc comments.</div><div class='del'>-</div><div class='del'>-Fri Apr 16 17:04:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_equal): always returns true or false, never</div><div class='del'>-	  returns nil. [ruby-dev:23404]</div><div class='del'>-</div><div class='del'>-Fri Apr 16 08:27:02 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: skip linking when libraries to be preloaded not</div><div class='del'>-	  compiled.  [ruby-list:39561]</div><div class='del'>-</div><div class='del'>-Thu Apr 15 23:21:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (pst_success_p): new method Process::Status#success?.</div><div class='del'>-	  [ruby-dev:23385]</div><div class='del'>-</div><div class='del'>-Thu Apr 15 17:12:13 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,</div><div class='del'>-	  GDBM::WRCREAT and GDBM::NEWDB.</div><div class='del'>-	  (fgdbm_initialize): use specified read/write flag.</div><div class='del'>-</div><div class='del'>-Wed Apr 14 11:29:56 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (flo_eq): workaround for bcc32's bug.</div><div class='del'>-	  (ruby-bugs-ja:PR#594)</div><div class='del'>-</div><div class='del'>-Wed Apr 14 13:06:35 2004  Doug Kearns  &lt;djkea2@mugca.its.monash.edu.au&gt;</div><div class='del'>-</div><div class='del'>-	* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,</div><div class='del'>-	  process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]</div><div class='del'>-</div><div class='del'>-Wed Apr 14 11:06:38 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::scan): Changed</div><div class='del'>-	  behavior of :enddoc: -- it now unconditionally terminates</div><div class='del'>-	  processing of the current file.</div><div class='del'>-</div><div class='del'>-Wed Apr 14 11:03:22 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h: include &lt;net/socket.h&gt; to get fd_set definition in BeOS.</div><div class='del'>-</div><div class='del'>-Tue Apr 13 23:06:30 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb: change pattern matching.</div><div class='del'>-	  a === b -&gt; a == b || a === b. [druby-ja:98]</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Apr 13 19:54:29 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: should not overwrite HTTP request header.</div><div class='del'>-	  [ruby-list:39543]</div><div class='del'>-</div><div class='del'>-Tue Apr 13 01:30:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c: RDoc documentation (from RD; nearly finished).</div><div class='del'>-	* ext/iconv/charset_alias.rb: Prevent from RDoc'ing.</div><div class='del'>-</div><div class='del'>-Mon Apr 12 19:11:29 2004  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_gc_copy_finalizer): typo.  [ruby-core:02774]</div><div class='del'>-</div><div class='del'>-Mon Apr 12 18:52:32 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_init_i): should return</div><div class='del'>-	  a value.</div><div class='del'>-</div><div class='del'>-Mon Apr 12 10:43:47 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_glob2, rb_glob, rb_globi, push_globs, push_braces,</div><div class='del'>-	  rb_push_glob): fix memory leak. (leaked when block was interrupted)</div><div class='del'>-</div><div class='del'>-Mon Apr 12 10:27:37 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: backport SIZEOF_TIME_T definition from 1.9.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub: ditto.</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub: ditto.</div><div class='del'>-</div><div class='del'>-Sun Apr 11 19:12:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c (require_libraries): restore source file/line after</div><div class='del'>-	  statically linked extensions initialized.  [ruby-dev:23357]</div><div class='del'>-</div><div class='del'>-Sun Apr 11 10:47:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::TopLevel::add_class_or_module): Toplevel</div><div class='del'>-	  classes and modules are a special case too... (handle extending existing</div><div class='del'>-	  classes with or without :enddoc:)</div><div class='del'>-</div><div class='del'>-Sat Apr 10 23:51:13 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::add_to): Implementation of :enddoc:</div><div class='del'>-	  made one too many assumptions...</div><div class='del'>-</div><div class='del'>-Sat Apr 10 00:00:19 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/markup/simple_markup/inline.rb: Fix problem</div><div class='del'>-	  with \_cat_&lt;b&gt;dog&lt;/b&gt;</div><div class='del'>-</div><div class='del'>-Wed Apr  7 00:19:50 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb: fix hash tuple bug.</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb</div><div class='del'>-</div><div class='del'>-Tue Apr  6 18:24:18 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_reopen): should use rb_io_check_io().</div><div class='del'>-</div><div class='del'>-Tue Apr  6 16:46:09 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check the size of time_t.</div><div class='del'>-</div><div class='del'>-	* time.c (time_add): new function.</div><div class='del'>-	  (time_plus): use time_add.</div><div class='del'>-	  (time_minus): use time_add.</div><div class='del'>-</div><div class='del'>-Tue Apr  6 13:21:30 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (make_hostent): must return value.</div><div class='del'>-</div><div class='del'>-Tue Apr  6 00:05:30 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb: add require 'drb/drb'</div><div class='del'>-</div><div class='del'>-Mon Apr  5 08:18:23 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb: Remove leading ./ from file names so that cross</div><div class='del'>-	  references work properly.</div><div class='del'>-</div><div class='del'>-Sun Apr  4 20:33:42 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_load): make $LOADED_FEATURES built-in.</div><div class='del'>-	  [ruby-dev:23299]</div><div class='del'>-</div><div class='del'>-	* ruby.c (ruby_prog_init): make $PROGRAM_NAME built-in.</div><div class='del'>-</div><div class='del'>-	* lib/English.rb: remove $LOADED_FEATURES and $PROGRAM_NAME.</div><div class='del'>-</div><div class='del'>-Sun Apr  4 14:01:20 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/options.rb (Options::parse): Allow multiple -x options to RDoc.</div><div class='del'>-	  Fix bug where files weren't being excluded properly</div><div class='del'>-</div><div class='del'>-Sat Apr  3 17:11:05 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: version 0.43.</div><div class='del'>-</div><div class='del'>-	* ext/syck/lib/gram.c: allow root-level inline collections.</div><div class='del'>-	 [ruby-talk:94922]</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb (Symbol#to_yaml): emit symbols as implicits.</div><div class='del'>-	 [ruby-talk:94930]</div><div class='del'>-</div><div class='del'>-	* ext/syck/bytecode.c: turn off default implicit typing.</div><div class='del'>-</div><div class='del'>-	* ext/syck/implicit.c: detect base60 integers.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: handle base60, as well as hex and octal</div><div class='del'>-	  with commas.  implicit typing of ruby symbols.</div><div class='del'>-</div><div class='del'>-Fri Apr  2 17:27:17 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (top_include): include in the wrapped load is done for</div><div class='del'>-	  the wrapper, not for a singleton class for wrapped main.</div><div class='del'>-	  [ruby-dev:23305]</div><div class='del'>-</div><div class='del'>-Fri Apr  2 15:13:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_eq): use temporary double variable to save the</div><div class='del'>-	  result (internal float register may be bigger than 64 bits, for</div><div class='del'>-	  example, 80 bits on x86).  [ruby-dev:23311]</div><div class='del'>-</div><div class='del'>-Fri Apr  2 14:35:26 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (block_pass): should generate unique identifier of the</div><div class='del'>-	  pushing block.  [ruby-talk:96363]</div><div class='del'>-</div><div class='del'>-Fri Apr  2 07:31:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (make_hostent): fix memory leak, based on</div><div class='del'>-	  the patch from HORIKAWA Hisashi &lt;vzw00011@nifty.ne.jp&gt;.</div><div class='del'>-</div><div class='del'>-Thu Apr  1 22:55:33 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Allow rdoc comments in</div><div class='del'>-	  =begin rdoc/=end</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb: Fix problem with comment in</div><div class='del'>-	  top-level method being taken as file comment.</div><div class='del'>-</div><div class='del'>-Thu Apr  1 22:55:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb: Fix undefined variable warning.</div><div class='del'>-</div><div class='del'>-Thu Apr  1 19:58:37 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/{factory.rb,registry.rb}: fixed illegal mapped URI</div><div class='del'>-	  object with soap/marshal.</div><div class='del'>-	  added URIFactory class for URI mapping.  BasetypeFactory checks</div><div class='del'>-	  instance_variables when original mapping is not allowed (ivar must</div><div class='del'>-	  be empty).  Instance of URI have instance_variables but it must be</div><div class='del'>-	  llowed whenever original mapping is allowed or not.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb: check the smallest positive non-zero</div><div class='del'>-	  single-precision float exactly instead of packing with "f".</div><div class='del'>-	  [ruby-talk:88822]</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/rubytypeFactory.rb: should not dump singleton class.</div><div class='del'>-	  [ruby-dev:22588]</div><div class='del'>-	  c = class &lt;&lt; Object.new; class C; self; end; end; SOAPMarshal.dump(c)</div><div class='del'>-</div><div class='del'>-Wed Mar 31 19:06:23 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (year_leap_p): new function.</div><div class='del'>-	  (timegm_noleapsecond): ditto.</div><div class='del'>-	  (search_time_t): use timegm_noleapsecond instead of</div><div class='del'>-	  mktime for first guess.</div><div class='del'>-</div><div class='del'>-Wed Mar 31 12:04:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (DelegateClass): define internal methods of the</div><div class='del'>-	  result class, but not metaclass of the caller.  [ruby-talk:96156]</div><div class='del'>-</div><div class='del'>-	* intern.h: provide proper prototypes.  [ruby-core:02724]</div><div class='del'>-</div><div class='del'>-	* ruby.h: missing.h is now prerequisite to intern.h.</div><div class='del'>-</div><div class='del'>-Tue Mar 30 20:25:34 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (search_time_t): limit guess range by mktime if it is</div><div class='del'>-	  available.  [ruby-dev:23274]</div><div class='del'>-</div><div class='del'>-Sun Mar 28 14:16:59 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb (auth): failed when account/password include "%".</div><div class='del'>-	  [ruby-talk:95933]</div><div class='del'>-</div><div class='del'>-Sat Mar 27 21:40:41 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb: permit extra semicolon in content-type field.</div><div class='del'>-</div><div class='del'>-Sat Mar 27 10:40:48 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* (lib/pp.rb, lib/prettyprint.rb): define seplist in PP::PPMethods</div><div class='del'>-	  instead of PrettyPrint.</div><div class='del'>-</div><div class='del'>-Thu Mar 25 23:28:52 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_overflow_p): backport 1.9 usec overflow function.</div><div class='del'>-	  (ruby-bugs PR#1307)</div><div class='del'>-</div><div class='del'>-Thu Mar 25 23:15:24 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb (RI::Options::show_version):</div><div class='del'>-	  Add --version option</div><div class='del'>-</div><div class='del'>-Thu Mar 25 04:16:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb (RI::Options): Add the --list-names option,</div><div class='del'>-	  which dumps our all known names</div><div class='del'>-</div><div class='del'>-Thu Mar 25 03:57:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_util.rb (NameDescriptor::initialize): No longer</div><div class='del'>-	  allow nested classes to be designated using "."--you must</div><div class='del'>-	  now use "::"</div><div class='del'>-</div><div class='del'>-Thu Mar 25 02:00:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/one_page_html.rb (Page):</div><div class='del'>-	  Fix to work with C modules.</div><div class='del'>-</div><div class='del'>-Wed Mar 24 21:17:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri.rb: Documented (thanks Dmitry V. Sabanin).</div><div class='del'>-	* lib/uri/common.rb: Ditto.</div><div class='del'>-	* lib/uri/ftp.rb: Ditto.</div><div class='del'>-	* lib/uri/generic.rb: Ditto.</div><div class='del'>-	* lib/uri/http.rb: Ditto.</div><div class='del'>-	* lib/uri/https.rb: Ditto.</div><div class='del'>-	* lib/uri/ldap.rb: Ditto.</div><div class='del'>-	* lib/uri/mailto.rb: Ditto.</div><div class='del'>-	  (All backported from 1.9)</div><div class='del'>-</div><div class='del'>-Wed Mar 24 18:48:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb ($ruby, $topdir, $hdrdir): should not be affected by</div><div class='del'>-	  DESTDIR after installed.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (RUBY): / is not recognized as path separator on</div><div class='del'>-	  nmake/bmake. [ruby-list:39388]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (init_mkmf): $INCFLAGS also should be lazy-evaluated.</div><div class='del'>-</div><div class='del'>-Wed Mar 24 12:32:56 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_class_module):</div><div class='del'>-	  Don't document methods if we don't know for sure the</div><div class='del'>-	  class or module.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='del'>-	  Don't store documentation for singleton classes if we</div><div class='del'>-	  don't know the real class.</div><div class='del'>-</div><div class='del'>-Wed Mar 24 11:11:26 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (Generators::HTMLGenerator::load_html_template):</div><div class='del'>-	  Allow non-RDoc templates by putting a slash in the template name</div><div class='del'>-</div><div class='del'>-Mon Mar 22 16:19:57 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.1: add -width option to .Bl for old groff.</div><div class='del'>-</div><div class='del'>-Sun Mar 21 21:11:16 2004  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/shell/*: bug fix for Shell#system(command_line_string).</div><div class='del'>-</div><div class='del'>-Sat Mar 20 20:57:10 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/scanf.rb: Backported 1.9 branch</div><div class='del'>-	  modifications/corrections to 1.8 branch</div><div class='del'>-</div><div class='del'>-Sat Mar 20 23:51:03 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_require_safe): preserve old ruby_errinfo.</div><div class='del'>-	  [ruby-talk:95409]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_raise): should not clear backtrace information if</div><div class='del'>-	  exception object already have one.</div><div class='del'>-</div><div class='del'>-Sat Mar 20 15:25:36 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Force</div><div class='del'>-	  page background to white.</div><div class='del'>-</div><div class='del'>-Sat Mar 20 09:52:33 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb, lib/date/format.rb: _parse() now accepts fractional</div><div class='del'>-	  part of second minute that follows a comma or a full stop.</div><div class='del'>-</div><div class='del'>-Fri Mar 19 01:55:57 2004  Mauricio Fernandez  &lt;batsman.geo@yahoo.com&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_sync): need not to check writable. [ruby-core:02674]</div><div class='del'>-</div><div class='del'>-Thu Mar 18 21:44:38 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: backport drb.rb 1.16.</div><div class='del'>-</div><div class='del'>-Fri Mar 18 17:49:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c (make_struct): allow const_id for accessor names.</div><div class='del'>-	  [ruby-core:04585]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_attr): check if attribute name is local_id or</div><div class='del'>-	  const_id.</div><div class='del'>-</div><div class='del'>-Thu Mar 18 16:22:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_eq): avoid false positive by using scope and</div><div class='del'>-	  dyna_vars.  no longer use frame.uniq.</div><div class='del'>-</div><div class='del'>-Wed Mar 17 14:44:43 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (range): fix possible "\0" overrun. (in case of "\0-")</div><div class='del'>-</div><div class='del'>-Mon Mar 15 07:39:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): should not re-submit TAG_BREAK if this</div><div class='del'>-	  yield is not break destination. [ruby-dev:23197]</div><div class='del'>-</div><div class='del'>-Sat Mar 13 14:28:16 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drbssl.rb: rescue LoadError. (Barkport from main</div><div class='del'>-	  trunk)</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drbunix.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Mar 10 22:28:09 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (remove_dir): should handle symlink correctly.</div><div class='del'>-	  This patch is contributed by Christian Loew.  [ruby-talk:94635]</div><div class='del'>-	  (Backport from main trunk)</div><div class='del'>-</div><div class='del'>-Wed Mar 10 16:28:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (return_jump): set return value to the return</div><div class='del'>-	  destination.  separated from localjump_destination().</div><div class='del'>-</div><div class='del'>-	* eval.c (break_jump): break innermost loop (or thread or proc).</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): set exit_value for block break.</div><div class='del'>-</div><div class='del'>-Wed Mar 10 15:58:43 2004  Ryan Davis  &lt;ryand@zenspider.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): Only print backtrace if generating the backtrace</div><div class='del'>-	  doesn't generate an exception.  [ruby-core:02621]</div><div class='del'>-</div><div class='del'>-Tue Mar  9 13:04:26 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_ungetc): raise IOError instead of calling</div><div class='del'>-	  rb_sys_fail().  [ruby-talk:23181]</div><div class='del'>-</div><div class='del'>-Mon Mar  8 19:32:28 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb (URI::REGEXP::PATTERN::HOSTPORT): (?:#{PORT})</div><div class='del'>-	  -&gt; (?::#{PORT}).  [ruby-dev:23170]</div><div class='del'>-</div><div class='del'>-Mon Mar  8 15:31:41 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (range): treat incomplete '[' as ordinary character (like</div><div class='del'>-	  has_magic does).</div><div class='del'>-</div><div class='del'>-	* dir.c (range):  Cancel above change. More discussion is needed.</div><div class='del'>-</div><div class='del'>-Sun Mar  7 22:37:46 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_drb.rb: use 'druby://localhost:0'. [ruby-dev:23078]</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_eval.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_large.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_safe1.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/drb/ut_drb_drbssl.rb: use 'drbssl://localhost:0'.</div><div class='del'>-</div><div class='del'>-Sun Mar  7 16:22:26 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (lex.c): use $? instead of $&lt;.</div><div class='del'>-</div><div class='del'>-Fri Mar  5 00:54:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: MOve RDoc documentation so that you can</div><div class='del'>-	  now say 'ri Test::Unit'</div><div class='del'>-</div><div class='del'>-Tue Mar  2 12:32:59 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, wince/Makefile.sub (config.h): shouldn't check</div><div class='del'>-	  defined? NORETURN. [ruby-dev:23100]</div><div class='del'>-</div><div class='del'>-Mon Mar  1 12:24:10 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_alias):</div><div class='del'>-	  Allow aliases to have parentheses</div><div class='del'>-</div><div class='del'>-Sun Feb 29 23:14:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='del'>-	  Handle :nodoc: on singleton classes.</div><div class='del'>-</div><div class='del'>-Sat Feb 28 10:58:49 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add test_erb.rb</div><div class='del'>-</div><div class='del'>-	* lib/erb.rb, test/erb/test_erb.rb: don't forget filename,</div><div class='del'>-	  if both filename and safe_level given. [ruby-dev:23050]</div><div class='del'>-</div><div class='del'>-Fri Feb 27 01:00:09 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb, test/drb/drbtest.rb: require drb/eq.rb by default</div><div class='del'>-</div><div class='del'>-Wed Feb 25 21:16:25 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb (with_destdir): should return the given argument if no</div><div class='del'>-	  DESTDIR is given.</div><div class='del'>-</div><div class='del'>-	* instruby.rb: use path name expansion of cmd.exe.</div><div class='del'>-</div><div class='del'>-Wed Feb 25 09:35:22 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (NameError::Message): new class for lazy evaluation of</div><div class='del'>-	  message to ensure replaced before marshalling. merge from HEAD.</div><div class='del'>-	  (ruby-bugs-ja:PR#588)</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_method_missing): use NameError::Message. merge from</div><div class='del'>-	  HEAD. (ruby-bugs-ja:PR#588)</div><div class='del'>-</div><div class='del'>-Tue Feb 24 18:59:37 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): '**/' should not match leading period</div><div class='del'>-	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]</div><div class='del'>-</div><div class='del'>-Tue Feb 24 13:22:21 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb (RDoc::RDoc::normalized_file_list): Attempt to get better</div><div class='del'>-	  heuristics on which files to include and exclude. Now only include</div><div class='del'>-	  non-standard files if they are explicitly named in ARGV.</div><div class='del'>-</div><div class='del'>-Tue Feb 24 07:23:30 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Deal with :stopdoc: when</div><div class='del'>-	  choosing a default main page to display (ie. don't select a page</div><div class='del'>-	  if we don't have documentation for it).</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:40:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle</div><div class='del'>-	  class variables in code listings</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:40:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle</div><div class='del'>-	  class variables in code listings</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:32:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_aliases): Handle</div><div class='del'>-	  aliases in C files.</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:16:22 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb (RDoc::RDoc::document): Now create op dir _before_</div><div class='del'>-	  parsing files.</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:08:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_constant):</div><div class='del'>-	  Start collecting text of constant values earlier: was missing</div><div class='del'>-	  values in output if there was no space after '='</div><div class='del'>-</div><div class='del'>-Tue Feb 24 06:08:25 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Escape contant values.</div><div class='del'>-</div><div class='del'>-Tue Feb 24 03:45:06 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (ossl_config_each): add new method</div><div class='del'>-	  OpenSSL::Config#each. it iterates with section name, field name</div><div class='del'>-	  and value.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (Init_ossl_config): include Enumerable.</div><div class='del'>-</div><div class='del'>-Mon Feb 23 09:16:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* instruby.rb (DOSISH): embedded path in batch files should not be</div><div class='del'>-	  prefixed by DESTDIR.  [ruby-core:02186]</div><div class='del'>-</div><div class='del'>-Sun Feb 22 09:54:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* re.c: corrected documentation format (again)</div><div class='del'>-</div><div class='del'>-Sun Feb 22 09:43:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* re.c: corrected documentation format (rb_reg_initialize_m)</div><div class='del'>-</div><div class='del'>-Sat Feb 21 22:36:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c: documented, but needs more effort.</div><div class='del'>-</div><div class='del'>-Sat Feb 21 11:12:15 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/os2.c, missing/x68.c: typo fix.  pointed out by greentea.</div><div class='del'>-</div><div class='del'>-Fri Feb 20 18:59:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/init.rb (IRB::IRB.parse_opts): add -I option to</div><div class='del'>-	  irb. [ruby-dev:39243]</div><div class='del'>-</div><div class='del'>-Thu Feb 19 23:24:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):</div><div class='del'>-	  Support visibility modifiers for attributes</div><div class='del'>-</div><div class='del'>-Thu Feb 19 23:24:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):</div><div class='del'>-	  Support visibility modifiers for attributes</div><div class='del'>-</div><div class='del'>-Thu Feb 19 22:39:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: DRb.start_service only once in testsuites.</div><div class='del'>-	  DRb.start_service could handle this.</div><div class='del'>-</div><div class='del'>-Thu Feb 19 22:19:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb: documented</div><div class='del'>-</div><div class='del'>-Thu Feb 19 21:28:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: improved documentation</div><div class='del'>-</div><div class='del'>-Thu Feb 19 03:10:52 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: synchronized with main trunk (rev 1.11).</div><div class='del'>-</div><div class='del'>-Thu Feb 19 02:30:34 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: documentation checked.</div><div class='del'>-</div><div class='del'>-Thu Feb 19 00:11:05 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/markup/simple_markup/preprocess.rb (SM::PreProcess::handle):</div><div class='del'>-	  Strip extraneous space from filenames in :include:</div><div class='del'>-</div><div class='del'>-Wed Feb 18 22:52:00 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/unix.rb: remove O_NONBLOCK, thanks \ay</div><div class='del'>-</div><div class='del'>-Wed Feb 18 22:47:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: documented</div><div class='del'>-</div><div class='del'>-Wed Feb 18 22:03:11 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/*: should not depend on $KCODE.</div><div class='del'>-</div><div class='del'>-Wed Feb 18 17:18:01 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c: need to include &lt;olectl.h&gt; on Cygwin.</div><div class='del'>-</div><div class='del'>-Wed Feb 18 10:40:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): do not prepend dots for negative</div><div class='del'>-	  numbers if FZERO is specified.  [ruby-list:39218]</div><div class='del'>-</div><div class='del'>-Tue Feb 17 23:40:34 2004  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='del'>-</div><div class='del'>-	* sprintf.c (rb_f_sprintf): preserve original val for</div><div class='del'>-	  format_integer. [ruby-talk:92975]</div><div class='del'>-</div><div class='del'>-Tue Feb 17 23:28:45 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/marshaltestlib.rb: common marshal testcase added.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_marshal.rb: use above testsuite.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/test_marshal.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/cmarshal.rb: removed (not used).</div><div class='del'>-</div><div class='del'>-Tue Feb 17 10:51:23 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_emitter_end_object): takes only one arg.</div><div class='del'>-</div><div class='del'>-Tue Feb 17 01:35:28 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): care that another thread replace NODE_DREGX_ONCE</div><div class='del'>-	  to NODE_LIT.  [ruby-dev:22920]</div><div class='del'>-</div><div class='del'>-Tue Feb 17 01:24:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): define</div><div class='del'>-	  STACK_GROW_DIRECTION. [ruby-dev:22910]</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (config.h): add newer checks.</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub (config.h): define NEED_IO_SEEK_BETWEEN_RW.</div><div class='del'>-</div><div class='del'>-Tue Feb 17 00:38:10 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb: TupleSpace#initialize, stop doubling timeout</div><div class='del'>-</div><div class='del'>-Tue Feb 17 00:18:03 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/rinda/test_rinda.rb: import test_rinda.rb</div><div class='del'>-</div><div class='del'>-Tue Feb 17 00:14:30 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: avoid warning "Redefinition of macro</div><div class='del'>-	  'HAVE_GETLOGIN'".</div><div class='del'>-</div><div class='del'>-	* vms/config.h_in: ditto.</div><div class='del'>-</div><div class='del'>-Mon Feb 16 23:28:14 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: document reduction.  [ruby-core:02429]</div><div class='del'>-</div><div class='del'>-Mon Feb 16 22:08:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/generator.rb: corrected doc format</div><div class='del'>-	* lib/rinda/rinda.rb: added documentation (from Hugh Sasse)</div><div class='del'>-	* lib/rinda/tuplespace.rb: ditto</div><div class='del'>-</div><div class='del'>-Mon Feb 16 20:41:32 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: show more warnings. (refering to mingw)</div><div class='del'>-</div><div class='del'>-	* bcc32/setup.mak: ditto.</div><div class='del'>-</div><div class='del'>-Mon Feb 16 13:39:44 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (rb_glob, rb_globi): add const.</div><div class='del'>-</div><div class='del'>-	* ruby.h: ditto.</div><div class='del'>-</div><div class='del'>-Mon Feb 16 02:16:33 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: should warn suspicious pointer conversion.</div><div class='del'>-</div><div class='del'>-	* bcc32/setup.mak: ditto.</div><div class='del'>-</div><div class='del'>-Sun Feb 15 19:06:42 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/tuplespace.rb: TupleSpace#read(tpl, 0), raise</div><div class='del'>-	  RequestExpiredError if not found.</div><div class='del'>-</div><div class='del'>-Sun Feb 15 15:56:46 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c: add IDispatch wrapper in val2variant.</div><div class='del'>-	  Thanks, arton.</div><div class='del'>-</div><div class='del'>-Sun Feb 15 01:46:05 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: absolute path of ruby is assigned to $(RUBY).</div><div class='del'>-	  [ruby-dev:22870]</div><div class='del'>-</div><div class='del'>-Sat Feb 14 11:29:41 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* sample/drb/*: import lib/drb/sample</div><div class='del'>-</div><div class='del'>-Sat Feb 14 11:08:23 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: add pretty_print, thanks gotoken.</div><div class='del'>-</div><div class='del'>-Fri Feb 13 12:35:08 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: File.link may raise EINVAL and</div><div class='del'>-	  EACCES on Windows.</div><div class='del'>-</div><div class='del'>-Thu Feb 12 21:45:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ftools.rb: documented</div><div class='del'>-</div><div class='del'>-Thu Feb 12 21:25:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/base64.rb: backported from HEAD (modularised and documented)</div><div class='del'>-</div><div class='del'>-Thu Feb 12 20:31:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_tmpsrc): cpp32 of Borland C++ ignores #error</div><div class='del'>-	  directives in DOS line-ending files at all.</div><div class='del'>-</div><div class='del'>-Thu Feb 12 02:23:56 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb: use assert_raise instead of assert_raises.</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/time.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/tsort.rb: ditto.</div><div class='del'>-	  use TSortHash and TSortArray instead of Hash and Array in test.</div><div class='del'>-</div><div class='del'>-Wed Feb 11 20:01:12 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_file.rb (TestFile::test_fnmatch): added tests for</div><div class='del'>-	  File.fnmatch. [ruby-dev:22815][ruby-dev:22819]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_proc.rb (TestProc::test_eq): added a</div><div class='del'>-	  test.  [ruby-dev:22599]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_proc.rb (TestProc::test_eq): added tests for</div><div class='del'>-	   Proc#==.  [ruby-dev:22592], [ruby-dev:22601]</div><div class='del'>-</div><div class='del'>-Tue Feb 10 16:43:56 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (umethod_bind): purge unused check.  [ruby-dev:22850]</div><div class='del'>-</div><div class='del'>-Mon Feb  9 17:16:00 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb: escape '{' and '}' to avoid warnings.</div><div class='del'>-</div><div class='del'>-Mon Feb  9 13:00:55 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (fnmatch): File.fnmatch('*?', 'a') should return true.</div><div class='del'>-	  [ruby-dev:22815]</div><div class='del'>-</div><div class='del'>-	* dir.c (fnmatch): File.fnmatch('\[1\]' , '[1]') should return true.</div><div class='del'>-	  [ruby-dev:22819]</div><div class='del'>-</div><div class='del'>-Sun Feb  8 16:46:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PP::PPMethods::object_address_group): suppress negative</div><div class='del'>-	  sign for higher heap areas.</div><div class='del'>-</div><div class='del'>-Fri Feb  6 22:48:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb (gen_url): Support</div><div class='del'>-	  https in RDoc hyperlinks</div><div class='del'>-</div><div class='del'>-Fri Feb  6 22:41:22 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): rollback the previous</div><div class='del'>-	  commit.  [ruby-dev:22813]</div><div class='del'>-</div><div class='del'>-Fri Feb  6 22:22:50 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): remove instance</div><div class='del'>-	  variable which is defined in the test.</div><div class='del'>-</div><div class='del'>-Fri Feb  6 00:48:37 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/prettyprint.rb (PrettyPrint#first?): obsoleted.</div><div class='del'>-</div><div class='del'>-Thu Feb  5 23:56:55 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/prettyprint.rb (PrettyPrint#seplist): added.</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (PPMethods#pp_object): use seplist.</div><div class='del'>-	  (PPMethods#pp_hash): ditto.</div><div class='del'>-	  (Array#pretty_print): ditto.</div><div class='del'>-	  (Struct#pretty_print): ditto.</div><div class='del'>-	  (MatchData#pretty_print): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/set.rb (Set#pretty_print): use seplist.</div><div class='del'>-</div><div class='del'>-Wed Feb  4 02:12:06 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (test_l): fix wrong method name in document.</div><div class='del'>-	  (test_S): ditto.</div><div class='del'>-	  (test_b): ditto.</div><div class='del'>-	  (test_c): ditto.</div><div class='del'>-	  (test_suid): ditto.</div><div class='del'>-	  (test_sgid): ditto.</div><div class='del'>-	  (test_sticky): ditto.</div><div class='del'>-</div><div class='del'>-Tue Feb  3 08:04:57 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (Struct#pretty_print_cycle): follow 1.8 style.</div><div class='del'>-</div><div class='del'>-Mon Feb  2 19:33:49 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: backport from 1.9 for Interix.</div><div class='del'>-</div><div class='del'>-	* dln.c (dln_load): ditto.</div><div class='del'>-</div><div class='del'>-Mon Feb  2 13:31:51 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (canonical_each): fix merge miss.</div><div class='del'>-</div><div class='del'>-Mon Feb  2 01:54:00 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb (Struct#pretty_print): make it 1.8 style.</div><div class='del'>-	  (Numeric#pretty_print, FalseClass#pretty_print)</div><div class='del'>-	  (TrueClass#pretty_print, Module#pretty_print): fix pp for objects</div><div class='del'>-	  with instance variables.  [ruby-talk:91157]</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): return nil on loopback</div><div class='del'>-	  address.</div><div class='del'>-</div><div class='del'>-	* lib/resolv-replace.rb (BasicSocket#send): don't replace because</div><div class='del'>-	  it has no hostname argument.</div><div class='del'>-	  (IPSocket.getaddress): raise SocketError instead of</div><div class='del'>-	  Resolv::ResolvError for errors.</div><div class='del'>-	  (TCPSocket#initialize, UDPSocket#bind, UDPSocket#connect)</div><div class='del'>-	  (SOCKSSocket#initialize): use IPSocket.getaddress instead of</div><div class='del'>-	  Resolv.getaddress.</div><div class='del'>-	  (UDPSocket#send): recognize 3 arguments form.  try all addresses on</div><div class='del'>-	  4 arguments form.</div><div class='del'>-</div><div class='del'>-Sun Feb  1 18:17:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: merged coding style changes from HEAD.</div><div class='del'>-</div><div class='del'>-Sun Feb  1 16:15:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: rearranged documentation for RDoc's sake.</div><div class='del'>-	* lib/matrix.rb: improved documentation.</div><div class='del'>-	* lib/net/http.rb: slight documentation formatting improvement.</div><div class='del'>-</div><div class='del'>-Sun Feb  1 05:30:06 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): warn HTTP_PROXY.</div><div class='del'>-	 raise an errror on non-http proxy URI.</div><div class='del'>-	 (OpenURI::Buffer#&lt;&lt;): make a tempfile binmode.  [ruby-talk:90793]</div><div class='del'>-</div><div class='del'>-Sat Jan 31 09:20:32 2004  NAKAMURA, Hiroshi  &lt;nakahiro@sairon.co.jp&gt;</div><div class='del'>-</div><div class='del'>-	* sample/openssl/gen_csr.rb: wrong usage string.</div><div class='del'>-</div><div class='del'>-Sat Jan 31 01:00:32 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/wsdlDriver.rb, lib/wsdl/soap/operation.rb: add support of</div><div class='del'>-	  "parts" attribute of soap:body element in WSDL.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/xmlSchema/schema.rb: friendly warning message for</div><div class='del'>-	  simpleType element which is not supported for now.</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/factory.rb: deleted unused methods.</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/rubytypeFactory.rb: do no ignore case while xsi:type</div><div class='del'>-	  string &lt;-&gt; Ruby class name matching.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/soap/{soapbodyparts.wsdl,test_soapbodyparts.wsdl}: new</div><div class='del'>-	  files.</div><div class='del'>-</div><div class='del'>-Thu Jan 29 23:56:00 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (mblen): fix overrun.  [ruby-dev:22672]</div><div class='del'>-</div><div class='del'>-Thu Jan 29 22:41:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Allow 'link:' in Tidylinks.</div><div class='del'>-	  THis means you can write "see f1[link:files/f1_rb.html]".</div><div class='del'>-</div><div class='del'>-Thu Jan 29 15:33:23 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509hame.c (ossl_x509name_initialize): change</div><div class='del'>-	  second argument. it expected to be a Hash not an Integer.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): add new</div><div class='del'>-	  function for OpenSSL::X509::Name#add_entry.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_to_a): append ASN.1</div><div class='del'>-	  tag number to each element of return value.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): add constants</div><div class='del'>-	  OpenSSL::X509::Name::DEFAULT_OBJECT_TYPE and OBJECT_TYPE_TEMPLATE.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#initialize):</div><div class='del'>-	  second argument takes OBJECT_TYPE_TEMPLATE by default.</div><div class='del'>-</div><div class='del'>-	* sample/openssl/gen_csr.rb: use OpenSSL::X509::Name.parse.</div><div class='del'>-</div><div class='del'>-Wed Jan 28 04:29:41 2004  Eric Schwartz  &lt;emschwar@fc.hp.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi/session.rb: use LOCK_SH to read, and a few other</div><div class='del'>-	  improvements.  [ruby-core:02328]</div><div class='del'>-</div><div class='del'>-Tue Jan 27 11:09:29 2004  FUKUMOTO Atsushi  &lt;fukumoto@nospam.imasy.or.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_recvfrom): sending length should be an</div><div class='del'>-	  invariant while retrying on EAGAIN.  [ruby-talk:89962]</div><div class='del'>-</div><div class='del'>-Tue Jan 27 10:35:18 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (set_argv): fix condition.</div><div class='del'>-</div><div class='del'>-Tue Jan 27 02:26:31 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (WEBrick:HTTPUtils::parse_header):</div><div class='del'>-	  refine regex for header-name.</div><div class='del'>-</div><div class='del'>-Tue Jan 27 00:30:11 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub: rollback.</div><div class='del'>-</div><div class='del'>-Mon Jan 26 22:53:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* io.c: Remove documentation references to $defout.</div><div class='del'>-</div><div class='del'>-Mon Jan 26 15:11:47 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/exyacc.rb: escape '}' to avoid warning.</div><div class='del'>-</div><div class='del'>-Mon Jan 26 14:41:46 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (Delegator::initialize): preserve</div><div class='del'>-	  singleton_method_added method [ruby-dev:22685]</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb (Delegator::initialize): use Kernel::raise</div><div class='del'>-	  instead of mere raise.  [ruby-dev:22681]</div><div class='del'>-</div><div class='del'>-Mon Jan 26 12:47:17 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7</div><div class='del'>-</div><div class='del'>-Mon Jan 26 11:35:23 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb: Makefiles should depend on also rbconfig.rb.</div><div class='del'>-	  (ruby-bugs:PR#1256)</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (set_argv): set real arguments to</div><div class='del'>-	  WIN32OLE::ARGV.  [ruby-list:39073]</div><div class='del'>-</div><div class='del'>-Thu Jan 22 22:54:53 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (BEG_REGEXP): allow 8-bit characters in quoted</div><div class='del'>-	  strings for Novell GroupWise Internet Agent.</div><div class='del'>-	* lib/net/imap.rb (DATA_REGEXP): ditto.</div><div class='del'>-</div><div class='del'>-Thu Jan 22 16:21:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (string_content): reset lexical states at the beginning of</div><div class='del'>-	  string contents.  [ruby-list:39061]</div><div class='del'>-</div><div class='del'>-Wed Jan 21 21:55:51 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: remove O_NONBLOCK, thanks \ay</div><div class='del'>-	* lib/drb/extserv.rb: typo</div><div class='del'>-</div><div class='del'>-Wed Jan 21 17:57:56 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (envelope): allow NIL.</div><div class='del'>-	* lib/net/imap.rb (body): ditto.</div><div class='del'>-	* lib/net/imap.rb (number): ditto.</div><div class='del'>-	* lib/net/imap.rb (ensure_nz_number): show a detailed error</div><div class='del'>-	  message.</div><div class='del'>-</div><div class='del'>-Wed Jan 21 16:44:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (merge_libs): squeeze successive same libraries.</div><div class='del'>-	  [ruby-dev:22652]</div><div class='del'>-</div><div class='del'>-Wed Jan 21 16:01:37 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/rmd160/extconf.rb: have_library appends found library.</div><div class='del'>-</div><div class='del'>-Wed Jan 21 11:36:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (block_append): update nd_end for "real" head node.</div><div class='del'>-	  [ruby-list:39058]</div><div class='del'>-</div><div class='del'>-Tue Jan 20 14:48:13 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: should check &lt;openssl/conf_api.h&gt; instead</div><div class='del'>-	  of OPENSSL_VERSION_NUMBER. [ruby-list:39056]</div><div class='del'>-</div><div class='del'>-Tue Jan 20 14:43:17 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/base64.rb: Add RDoc</div><div class='del'>-</div><div class='del'>-Tue Jan 20 14:25:51 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/abbrev.rb: Add RDoc</div><div class='del'>-</div><div class='del'>-Tue Jan 20 13:22:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Document aliases at</div><div class='del'>-	  top-most level.</div><div class='del'>-</div><div class='del'>-	* lib/English.rb: Document English.rb.</div><div class='del'>-</div><div class='del'>-Tue Jan 20 02:49:22 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: add check for OpenSSL version.</div><div class='del'>-	  [ruby-list:39054]</div><div class='del'>-</div><div class='del'>-Tue Jan 20 02:38:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_class): should not dump singleton class.</div><div class='del'>-	  [ruby-dev:22631]</div><div class='del'>-</div><div class='del'>-Tue Jan 20 01:31:36 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (lineno): typo fix(FIX2INT -&gt; INT2FIX).</div><div class='del'>-</div><div class='del'>-Mon Jan 19 21:53:38 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c, re.c, string.c, time.c: fixed up positions of RDocs.</div><div class='del'>-</div><div class='del'>-Mon Jan 19 07:09:20 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date.rb: zone was wrong when it was behind UTC.</div><div class='del'>-	  Thanks Mark J. Reed.</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb: %z is now always replaced by four digits</div><div class='del'>-	  with a leading plus or minus sign.</div><div class='del'>-</div><div class='del'>-	* sample/cal.rb: added a class, anyway.</div><div class='del'>-</div><div class='del'>-Sun Jan 18 20:47:35 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.c: use translate_char() on Cygwin.</div><div class='del'>-</div><div class='del'>-Sun Jan 18 02:33:26 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h (_WIN32): undef _WIN32 on Cygwin before defining DOSISH.</div><div class='del'>-</div><div class='del'>-Sun Jan 18 00:23:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (class2path): check anonymous class/module before</div><div class='del'>-	  checking referable, and allow singleton classes.</div><div class='del'>-</div><div class='del'>-Fri Jan 16 14:33:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (class2path): get class path and check referable.</div><div class='del'>-	  [ruby-dev:22588]</div><div class='del'>-</div><div class='del'>-Fri Jan 16 09:52:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_eq): Proc with empty body may not be equal.</div><div class='del'>-	  [ruby-dev:22590]</div><div class='del'>-</div><div class='del'>-Thu Jan 15 13:03:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): do not append EOF.  (ruby-bugs-ja:PR#585)</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio</div><div class='del'>-	  weird behavior.  [ruby-dev:22424]</div><div class='del'>-</div><div class='del'>-Wed Jan 14 13:31:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/extconf.rb: wrapper iconv.rb is dependent on platform.</div><div class='del'>-</div><div class='del'>-Tue Jan 13 18:54:28 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb(Logger#msg2str): no special treatment for the object</div><div class='del'>-	  which responds to :to_str.  commited at 2004-01-11T21:46:27 by</div><div class='del'>-	  gsinclair.</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb(LogDevice#initialize): remove type checking if the</div><div class='del'>-	  given object is a String.  Kernel.open handles it correctly.</div><div class='del'>-	  commited at 2004-01-11T21:46:27 by gsinclair.</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: follow above change (ArgumentError -&gt;</div><div class='del'>-	  TypeError.)  follow above commit.</div><div class='del'>-</div><div class='del'>-Tue Jan 13 14:27:13 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/testrunnerutilities.rb (TestRunnerUtilities):</div><div class='del'>-	  moved run method which allows output level.  [ruby-dev:22554]</div><div class='del'>-</div><div class='del'>-Tue Jan 13 04:29:52 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_driver.rb (RiDriver::report_method_stuff):</div><div class='del'>-	  Show fully-qualified class names in class list.</div><div class='del'>-</div><div class='del'>-Tue Jan 13 01:04:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_paths.rb (RI::Paths): First attempt at</div><div class='del'>-	  incorporating DESTDIR in the rdoc installation.</div><div class='del'>-</div><div class='del'>-Mon Jan 12 23:27:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (primary): fix position after FCALL.  [ruby-dev:22574]</div><div class='del'>-</div><div class='del'>-Mon Jan 12 12:07:22 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods):</div><div class='del'>-	  Someone changed the "// in eval.c" comments to "/*...*/" style,</div><div class='del'>-	  so the parsing of the source file name broke.</div><div class='del'>-</div><div class='del'>-	* object.c: Remove spurious space in TrueClass documentation.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Fix</div><div class='del'>-	  bad regexp: if the code before a documented method contained</div><div class='del'>-	  a comment that wasn't terminated by whitespace, that comment</div><div class='del'>-	  and all intervening code was included in the following</div><div class='del'>-	  method's documentation.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter::break_to_newline):</div><div class='del'>-	  HTML formats need explicit line breaks.</div><div class='del'>-</div><div class='del'>-Mon Jan 12 11:46:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single</div><div class='del'>-	  quotes.  [ruby-dev:22564]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (libpathflag): do not enclose with quotes always.</div><div class='del'>-</div><div class='del'>-	* {bcc32,win32,wince}/Makefile.sub (LIBPATHFLAG): quoted.</div><div class='del'>-</div><div class='del'>-Mon Jan 12 02:24:07 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML</div><div class='del'>-	  generation support to ri (Elliot Hughes)</div><div class='del'>-</div><div class='del'>-Mon Jan 12 02:24:07 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML</div><div class='del'>-	  generation support to ri (Elliot Hughes)</div><div class='del'>-</div><div class='del'>-Sun Jan 11 02:07:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):</div><div class='del'>-	  Also accept command line options via the 'RI' environment variable.</div><div class='del'>-</div><div class='del'>-Sun Jan 11 02:07:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):</div><div class='del'>-	  Also accept command line options via the 'RI' environment variable.</div><div class='del'>-</div><div class='del'>-Sat Jan 10 21:27:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): need to add message delimiter. [ruby-dev:22561]</div><div class='del'>-</div><div class='del'>-Sat Jan 10 01:54:50 2004  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h (__NeXT__): Ensure that all standard S_IRUSR, S_IWGRP,</div><div class='del'>-	  S_IRWXO, etc. macros are defined since future code might require</div><div class='del'>-	  them (even though present code only requires a subset).</div><div class='del'>-</div><div class='del'>-	* defines.h (__NeXT__): Bug fix: WORDS_BIGENDIAN was not being set</div><div class='del'>-	  correctly on Rhapsody when -arch compiler flag was used (via</div><div class='del'>-	  configure's --enable-fat-binary option).</div><div class='del'>-</div><div class='del'>-Fri Jan  9 10:05:14 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (libpathflag): use single quotes.  [ruby-dev:22440]</div><div class='del'>-</div><div class='del'>-Thu Jan  8 23:49:21 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (RDOCTARGET): new macro.  if you want to install</div><div class='del'>-	  rdoc documentation, you need to run configure with</div><div class='del'>-	  --enable-install-doc.</div><div class='del'>-</div><div class='del'>-Thu Jan  8 21:29:43 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.c (ossl_pkey_to_der): removed; it returns</div><div class='del'>-	  public key only.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dh.c (ossl_dh_to_der): new function for</div><div class='del'>-	  OpenSSL::PKey::DH#to_der.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_to_der): new function for</div><div class='del'>-	  OpenSSL::PKey::DSA#to_der.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_to_der): new function for</div><div class='del'>-	  OpenSSL::PKey::RSA#to_der.</div><div class='del'>-</div><div class='del'>-Thu Jan  8 16:51:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/wsdl/datetime/test_datetime.rb: fixed a stupid testcase which</div><div class='del'>-	  dumps "E" at month-end.</div><div class='del'>-</div><div class='del'>-Thu Jan  8 11:20:01 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c, object.c, process.c, re.c: don't use C++ style comments.</div><div class='del'>-</div><div class='del'>-Thu Jan  8 04:36:21 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (WEBrick::CGI#initialize): should create</div><div class='del'>-	  @config[:Logger] if it was not given.</div><div class='del'>-</div><div class='del'>-	* sample/webrick/*: new files.</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add sample/webrick/*</div><div class='del'>-</div><div class='del'>-Wed Jan  7 13:00:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_driver.rb: Fix problem where ri was</div><div class='del'>-	  being too eager to find matches of ambiguous method</div><div class='del'>-	  names (such as "ri Thread.join" would return both</div><div class='del'>-	  Thread.join and ThreadsWait.join)</div><div class='del'>-</div><div class='del'>-Wed Jan  7 12:35:41 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb: revert command parse regexps.  [ruby-list:39014] by</div><div class='del'>-	  Shirai,Kaoru.</div><div class='del'>-</div><div class='del'>-Wed Jan  7 08:21:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parserfactory.rb: Check for shebang</div><div class='del'>-	  line in files that would otherwise be treated as</div><div class='del'>-	  plain text.</div><div class='del'>-</div><div class='del'>-Tue Jan  6 22:13:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_mod_modfunc): should break if m has no super class.</div><div class='del'>-	  [ruby-dev:22498]</div><div class='del'>-</div><div class='del'>-Tue Jan  6 21:55:02 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (fptr_finalize): should save errno just after failure.</div><div class='del'>-	  [ruby-dev:22492]</div><div class='del'>-</div><div class='del'>-Tue Jan  6 14:53:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* bin/ri: split out the display side, making it pluggable. Added</div><div class='del'>-	  new ri_driver and ri_display files in lib/rdoc/ri.</div><div class='del'>-</div><div class='del'>-Tue Jan  6 06:37:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* bin/rdoc: Add --ri-system switch</div><div class='del'>-</div><div class='del'>-	* lib/.document: Update with list of files that seem to have</div><div class='del'>-	  documentation</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: Reorder comment to make it RDoc friendly.</div><div class='del'>-</div><div class='del'>-	* Makefile.in: add install-nodoc target, and make it</div><div class='del'>-	  generate RDoc on default install.</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_options.rb (RI::Options::parse): Add</div><div class='del'>-	  --doc-dir option to ri.</div><div class='del'>-</div><div class='del'>-Tue Jan  6 00:04:40 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):</div><div class='del'>-	  fix parsing if there are braces in a method parameter list</div><div class='del'>-</div><div class='del'>-Fri Jan  2 14:54:11 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* bin/ri: Add new --classes option, and arrange for</div><div class='del'>-	  help messages to be paged too.</div><div class='del'>-</div><div class='del'>-	* bin/rdoc: Add statistics.</div><div class='del'>-</div><div class='del'>-	* process.c: (MG) Added Process documentation</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::AttributeFormatter::wrap):</div><div class='del'>-	  Fix problem with labels not displaying in RI labeled</div><div class='del'>-	  lists using BS and ANSI modes.</div><div class='del'>-</div><div class='del'>-Fri Jan  2 01:50:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_eof): ARGF.eof? should not have any side effect.</div><div class='del'>-	  [ruby-dev:22469]</div><div class='del'>-</div><div class='del'>-Wed Dec 31 17:25:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_each_byte): should return self.  [ruby-dev:22465]</div><div class='del'>-</div><div class='del'>-Wed Dec 31 11:20:34 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Make</div><div class='del'>-	  file referenced in "// in sss.c" relative to current file.</div><div class='del'>-</div><div class='del'>-Wed Dec 31 11:17:37 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/generators/html_generator.rb: Fix problem when</div><div class='del'>-	  a public method was aliased, but the alias is then</div><div class='del'>-	  made private, and hence doesn't appear in RDoc output.</div><div class='del'>-</div><div class='del'>-Wed Dec 31 01:33:05 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* array.c, error.c, eval.c, io.c, prec.c, range.c, re.c,</div><div class='del'>-	  string.c, time.c: Add RDoc for Kernel functions, and tidy.</div><div class='del'>-</div><div class='del'>-Tue Dec 30 19:39:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_readline): should raise EOFError at the end of</div><div class='del'>-	  files.  [ruby-dev:22458]</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): should concatenate input files when length</div><div class='del'>-	  argument is nil. [ruby-dev:22450]</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): should update supplied string buffer (2nd</div><div class='del'>-	  argument) even when IO#read is called multiple times.</div><div class='del'>-</div><div class='del'>-	* io.c: should initialize lineno by zero. [ruby-dev:22460]</div><div class='del'>-</div><div class='del'>-Tue Dec 30 12:30:30 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): If a</div><div class='del'>-	  class and a method have the same name, finding Xxx.abc was trying</div><div class='del'>-	  to find 'abc' in method 'Xxx', not class 'Xxx'.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Tue Dec 30 08:32:32 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):</div><div class='del'>-	  Handle undoing nesting of yield parameters correctly for:</div><div class='del'>-</div><div class='del'>-	  def each_entry(&amp;b) Dir.foreach(@path) {|f| yield P.new(f) } end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Tue Dec 30 08:32:32 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):</div><div class='del'>-	  Handle undoing nesting of yield parameters correctly for:</div><div class='del'>-</div><div class='del'>-	    def each_entry(&amp;block) Dir.foreach(@path) {|f| yield Pathname.new(f) } end</div><div class='del'>-</div><div class='del'>-Mon Dec 29 12:51:02 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: Add RDoc for Kernel global functions.</div><div class='del'>-</div><div class='del'>-Mon Dec 29 11:00:16 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* array.c: Tidy up RDoc loose ends.</div><div class='del'>-</div><div class='del'>-Mon Dec 29 05:05:51 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* struct.c, random: Add RDoc comments</div><div class='del'>-</div><div class='del'>-Mon Dec 29 02:20:54 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: Add RDoc for class Proc, Method, UnboundMethod</div><div class='del'>-</div><div class='del'>-Mon Dec 29 00:41:44 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* math.c: Add RDoc comments</div><div class='del'>-</div><div class='del'>-Sun Dec 28 20:19:11 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_sysread): StringIO.new.sysread didn't</div><div class='del'>-	  raise EOFError.</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (gzreader_gets): don't increment lineno when</div><div class='del'>-	  gzfile_read_all returns "".</div><div class='del'>-</div><div class='del'>-Sun Dec 28 15:25:08 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* class.c,object.c,parse.y,sprintf.c,variable.c: Document classes</div><div class='del'>-	  Object, Module, etc...</div><div class='del'>-</div><div class='del'>-Sun Dec 28 11:55:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: generate bom.csv and mac.csv files on the fly.</div><div class='del'>-	  [ruby-talk:88852]</div><div class='del'>-</div><div class='del'>-	* test/csv/{bom.csv,mac.csv}: removed.</div><div class='del'>-</div><div class='del'>-Sun Dec 28 08:56:51 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: Thead[Group] RDoc (thanks to MG)</div><div class='del'>-</div><div class='del'>-Sun Dec 28 03:50:05 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_override_comment):</div><div class='del'>-	  Escape method names used in regexp</div><div class='del'>-</div><div class='del'>-Sun Dec 28 01:46:02 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item):</div><div class='del'>-	  Add support for rules in 'ri' output.</div><div class='del'>-</div><div class='del'>-Sun Dec 28 01:35:35 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body):</div><div class='del'>-	  Sometimes the Ruby source aliases two otherwise</div><div class='del'>-	  unrelated methods (for example Kernel#object_id and</div><div class='del'>-	  Kernel#hash are both the same C function). Provide a</div><div class='del'>-	  facility to allow the methods to be documented</div><div class='del'>-	  separately.</div><div class='del'>-</div><div class='del'>-Sun Dec 28 01:05:31 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c, signal.c: RDoc collemts added by Elliott Hughes</div><div class='del'>-</div><div class='del'>-Sun Dec 28 00:48:47 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_class_comment):</div><div class='del'>-	  Some source files use lower case class or module names</div><div class='del'>-	  when naming the Init_XXX function in C.</div><div class='del'>-</div><div class='del'>-Sat Dec 27 23:41:46 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: fix "test: too many arguments" error.</div><div class='del'>-</div><div class='del'>-Sat Dec 27 15:32:19 2003  Dave Thomas  &lt;dave@wireless_3.local.thomases.com&gt;</div><div class='del'>-</div><div class='del'>-	* time.c: RDoc comments added</div><div class='del'>-</div><div class='del'>-Sat Dec 27 15:07:57 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* object.c: Add RDoc comments for Symbol class.</div><div class='del'>-</div><div class='del'>-Sat Dec 27 14:42:30 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c: Add RDoc comments.</div><div class='del'>-</div><div class='del'>-Sat Dec 27 00:44:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (next_argv): warn always for stdin on inplace edit mode.</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): need to check string value.</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): allow ARGF.read(nil).  [ruby-dev:22433]</div><div class='del'>-</div><div class='del'>-Fri Dec 26 23:02:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_backquote): need not to check nil result.</div><div class='del'>-	  [ruby-core:02078]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_getline): should return nil when read_all gives</div><div class='del'>-	  empty string, even when nil rs is specified. [ruby-core:02077]</div><div class='del'>-</div><div class='del'>-Fri Dec 26 18:50:59 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check if getcontext and setcontext are available.</div><div class='del'>-</div><div class='del'>-	* eval.c: use presence of getcontext/setcontext.</div><div class='del'>-</div><div class='del'>-Fri Dec 26 16:40:53 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (PathnameTest#test_plus): add 2 assertions.</div><div class='del'>-</div><div class='del'>-Fri Dec 26 09:26:58 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): add sign check for 'i', and 'l'.</div><div class='del'>-	  [ruby-dev:22427]</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_quad_pack): add range check for 'quad int'.</div><div class='del'>-</div><div class='del'>-Thu Dec 25 22:39:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_update): don't return any value.</div><div class='del'>-</div><div class='del'>-Thu Dec 25 15:30:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_update): call rb_str_modify().</div><div class='del'>-</div><div class='del'>-Thu Dec 25 05:08:09 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (search_required): search actual file name once when no</div><div class='del'>-	  extension specified.</div><div class='del'>-</div><div class='del'>-Thu Dec 25 04:00:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.1 released.</div><div class='del'>-</div><div class='del'>-Thu Dec 25 00:17:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check for nanosleep, -lrt if required.</div><div class='del'>-	  [ruby-core:02059]</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_timer): use select(2) if nanosleep(2) is not</div><div class='del'>-	  available.</div><div class='del'>-</div><div class='del'>-	* eval.c: check __stub_getcontext for glibc on some platforms.</div><div class='del'>-	  [ruby-list:38984]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 23:48:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb</div><div class='del'>-	  test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0"</div><div class='del'>-	  to express -0.0.  [ruby-talk:88786]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 23:29:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/tsort.rb (test_orphaned_break): removed.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 20:53:06 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmulticolumnlist.rb: new sample</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmultilistframe.rb: bug fix</div><div class='del'>-</div><div class='del'>-Wed Dec 24 20:37:37 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (LDSHARED): Fixed typographical error in assignment of</div><div class='del'>-	  LDSHARED for Rhapsody which caused linking of extension modules to</div><div class='del'>-	  fail.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 17:51:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_thread_flock): enable thread support again.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 16:46:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (catch_timer): do not call rb_thread_schedule() inside to</div><div class='del'>-	  avoid pthread_mutex_lock() deadlock.  interrupts to system calls</div><div class='del'>-	  are detected by TRAP_END via EINTR error.</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_timer): do not post signal unless it is</div><div class='del'>-	  absolutely necessary.</div><div class='del'>-</div><div class='del'>-	* rubysig.h (TRAP_END): add CHECK_INTS to switch thread.</div><div class='del'>-</div><div class='del'>-	* regex.c (re_compile_pattern): check if nextp is smaller than</div><div class='del'>-	  pend.  [ruby-dev:22372]</div><div class='del'>-</div><div class='del'>-	* eval.c (umethod_bind): remove method overridden check.</div><div class='del'>-	  [ruby-dev:22366]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 16:13:05 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_read): should check for error</div><div class='del'>-	  status by SSL_get_error().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_write): ditto.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 14:23:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): clear the buffer argument</div><div class='del'>-	  when returning nil.  [ruby-dev:22363]</div><div class='del'>-</div><div class='del'>-	* test/ruby/ut_eof.rb (TestEOF::test_eof_0, TestEOF::test_eof_1):</div><div class='del'>-	  add buffer argument tests.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 14:07:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: Modules are allowed to rescue.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb: show output_level in order.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb: get rid of successive same</div><div class='del'>-	  directories in load path.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb (test_assert_nothing_raised,</div><div class='del'>-	  test_assert_raise): test for modules.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 13:43:34 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/imap.rb (authenticate): remove "\n" from base64 encoded</div><div class='del'>-	  strings.</div><div class='del'>-</div><div class='del'>-Wed Dec 24 11:26:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: should not create any</div><div class='del'>-	  files or directories in current directory.  [ruby-talk:88724]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 10:29:53 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): never return nil at</div><div class='del'>-	  unlimited read.  [ruby-dev:22334]</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): support second</div><div class='del'>-	  argument.  [ruby-dev:22350]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 09:38:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (arg): should return 0 after error.  [ruby-dev:22360]</div><div class='del'>-</div><div class='del'>-Wed Dec 24 00:56:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): do not return nil at the end of file.</div><div class='del'>-	  [ruby-dev:22334]</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): do not depend on nil at eof behavior of</div><div class='del'>-	  IO#read().</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_join): dup exception before re-raising it.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_eof): call clearerr() to prevent side effect.  this</div><div class='del'>-	  patch is supplied by Masahiro Sakai &lt;sakai@tom.sfc.keio.ac.jp&gt;.</div><div class='del'>-	  [ruby-dev:22234]</div><div class='del'>-</div><div class='del'>-	* pack.c (OFF16): get offset for big endian machines.</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): use OFF16 instead of OFF16B.</div><div class='del'>-	  [ruby-dev:22344]</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_unpack): ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 22:47:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_check_readable): set FMODE_RBUF always, even if</div><div class='del'>-	  NEED_IO_SEEK_BETWEEN_RW is not defined. [ruby-dev:22340]</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_check_writable): clear FMODE_RBUF before writing</div><div class='del'>-	  something.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 22:25:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb: incomplete RDoc documentation added in place of</div><div class='del'>-	  existing RD comments.  Tabs converted to spaces.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 19:44:47 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/test_streamhandler.rb (test_basic_auth): removed.</div><div class='del'>-	  soap4r + basic_auth is not officially supported in ruby/1.8.1 even</div><div class='del'>-	  though soap4r + basic_auth + http-access2 should run fine.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 19:42:59 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_ungetc): raise an exception at unread stream to</div><div class='del'>-	  avoid unspecified behavior.  [ruby-dev:22330]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_system.rb (test_syntax): glob relatively from</div><div class='del'>-	  __FILE__.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 18:09:40 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (pack_pack): remove unnecessary negative value check.</div><div class='del'>-	  [ruby-dev:22329]</div><div class='del'>-</div><div class='del'>-Tue Dec 23 17:26:55 2003  KONISHI Hiromasa  &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub (config.h): bcc has finite(). [ruby-list:38940]</div><div class='del'>-</div><div class='del'>-Tue Dec 23 16:08:16 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/encodings/US-ASCII.rb: typo.  [ruby-talk:88650]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_system.rb: num of asserts depended on running dir.</div><div class='del'>-</div><div class='del'>-	* test/xsd/test_noencoding.rb: rexml + without iconv/uconv cannot</div><div class='del'>-	  handle euc-jp.  install iconv, uconv or xmlscan.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 14:13:51 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::check_userinfo,</div><div class='del'>-	  URI::Generic::check_user, URI::Generic::check_password): tests</div><div class='del'>-	  conflicts/depends with other components closely.</div><div class='del'>-</div><div class='del'>-	* test/uri/test_generic.rb (TestGeneric::test_set_component):</div><div class='del'>-	  added tets.</div><div class='del'>-</div><div class='del'>-Tue Dec 23 11:08:34 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/xsd/test_noencoding.rb: rescue Errno::EINVAL and do not test.</div><div class='del'>-	  "euc-jp" might not be in supported encoding name list.</div><div class='del'>-	  [ruby-talk:88650]</div><div class='del'>-</div><div class='del'>-Tue Dec 23 06:10:31 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (CGI): add support for mod_ruby.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (CGI::Socket): add check for existence of</div><div class='del'>-	  OpenSSL module in all HTTPS related methods.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (CGI::Socket#cipher): should create similar</div><div class='del'>-	  value to OpenSSL::SSLSocket#cipher.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpresponse.rb (HTTPResponse#setup_header): should</div><div class='del'>-	  set "connection: close" if @keep_alive is false.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb (HTTPrequest#meta_vars): add supprt for</div><div class='del'>-	  SSL_PROTOCOL, SSL_CIPHER_USEKEYSIZE and SSL_CIPHER_ALGKEYSIZE.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 23:00:05 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic::check_opaque): fixed typo.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 21:59:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (map_charset): always ensure code is a String.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 21:15:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* class.c (rb_mod_init_copy): always copy singleton class.</div><div class='del'>-	  [ruby-dev:22325]</div><div class='del'>-</div><div class='del'>-Mon Dec 22 20:44:36 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic#route_from): accepts urls which</div><div class='del'>-	  has no host-part.</div><div class='del'>-</div><div class='del'>-	* test/uri/test_generic.rb (TestGeneric::test_route): added a test.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 20:38:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb: reduce eval.</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::read_multipart): alias path to</div><div class='del'>-	  local_path.  [ruby-list:38883]</div><div class='del'>-</div><div class='del'>-Mon Dec 22 20:09:31 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/test_property.rb: remove duplicated test method.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 18:22:04 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): remove</div><div class='del'>-	  HAVE_ISINF definition to follow previous commits of missing.h</div><div class='del'>-	  and win32/win32.h.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 17:23:42 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ac_cv_func_setitimer): moved from defines.h</div><div class='del'>-</div><div class='del'>-	* defines.h, rubysig.h, signal.c: removed macro handling which</div><div class='del'>-	  should be done in configure.</div><div class='del'>-</div><div class='del'>-	* configure.in (intrinsics.h): check if present.</div><div class='del'>-</div><div class='del'>-	* ruby.h: include intrinsics.h if available.</div><div class='del'>-</div><div class='del'>-	* bignum.c, marshal.c: include ieeefp.h if available.</div><div class='del'>-</div><div class='del'>-	* missing.h (isinf): define as a macro if finite() and isnan()</div><div class='del'>-	  are available.  [ruby-core:02032]</div><div class='del'>-</div><div class='del'>-Mon Dec 22 17:07:31 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (mingw): set isnan, finite and isinf to yes.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 13:40:19 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/property.rb: passing block by reference.</div><div class='del'>-</div><div class='del'>-Mon Dec 22 00:32:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_with_disable_interrupt): use ENABLE_INTS instead of</div><div class='del'>-	  ALLOW_INTS which may switch context.  [ruby-dev:22319]</div><div class='del'>-</div><div class='del'>-	* ext/syck/emitter.c (syck_emitter_write): str bigger than</div><div class='del'>-	  e-&gt;bufsize causes buffer overflow.  [ruby-dev:22307]</div><div class='del'>-</div><div class='del'>-Sun Dec 21 17:29:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* class.c (rb_check_inheritable): new function.  [ruby-dev:22316]</div><div class='del'>-</div><div class='del'>-	* intern.h: add prototype.</div><div class='del'>-</div><div class='del'>-	* eval.c (superclass): use rb_check_inheritable().</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_initialize): check argument validity.</div><div class='del'>-</div><div class='del'>-Sun Dec 21 16:25:10 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#+): re-implemented to resolve ".." in</div><div class='del'>-	  beginning of the argument.</div><div class='del'>-	  (Pathname#join): concatenate from the last argument.</div><div class='del'>-	  (Pathname#parent): just use Pathname#+.</div><div class='del'>-</div><div class='del'>-Sun Dec 21 00:12:37 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add new methods (TkScrollbar#assign, assign_list)</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmultilistframe.rb: use TkScrollbar#assign method</div><div class='del'>-</div><div class='del'>-Sat Dec 20 21:59:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): refine regexp.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (CGI#start): NPH scripts return status line</div><div class='del'>-	  instead of Status: header field.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb (CGI::Socket): refine some coditions.</div><div class='del'>-</div><div class='del'>-Sat Dec 20 16:07:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Completion::complete): wrong</div><div class='del'>-	  Regexp for word boundary.  pointed out by Gavin Sinclair.</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::make_switch): [no-] prefix was</div><div class='del'>-	  missing.</div><div class='del'>-</div><div class='del'>-Sat Dec 20 11:40:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml.rb (YAML::YAML): adjust Marshal version.</div><div class='del'>-</div><div class='del'>-Sat Dec 20 03:56:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_with_disable_interrupt): prohibit thread context</div><div class='del'>-	  switch during proc execution.  [ruby-dev:21899]</div><div class='del'>-</div><div class='del'>-Sat Dec 20 02:41:02 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/cgi.rb: add file. (yet another CGI library)</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add lib/webrick/cgi.rb.</div><div class='del'>-</div><div class='del'>-Sat Dec 20 02:18:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-calculate-indent): proper indentation</div><div class='del'>-	  inside of parentheses.  [ruby-dev:22308]</div><div class='del'>-</div><div class='del'>-Fri Dec 19 21:24:22 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): should not set</div><div class='del'>-	  HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb (HTTPRequest#parse): should check presence</div><div class='del'>-	  of cert() method to detect SSLSocket.</div><div class='del'>-</div><div class='del'>-Fri Dec 19 22:56:46 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/property.rb (SOAP::Property#load): new method for loading</div><div class='del'>-	  property value into existing property tree.</div><div class='del'>-</div><div class='del'>-	* test/soap/test_property.rb: add test.</div><div class='del'>-</div><div class='del'>-Fri Dec 19 19:21:49 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/runit/cui/testrunner.rb (RUNIT::CUI::TestRunner::run):</div><div class='del'>-	  should use Test::Unit::UI::{PROGRESS_ONLY,VERBOSE}.</div><div class='del'>-</div><div class='del'>-Fri Dec 19 17:36:49 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmultilistbox.rb: bug fix</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmultilistframe.rb: new sample script</div><div class='del'>-</div><div class='del'>-Fri Dec 19 03:44:27 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (parse_form_data): should return an</div><div class='del'>-	  empty Hash if the body is empty.</div><div class='del'>-</div><div class='del'>-Thu Dec 18 21:47:35 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): should remove deffile if it's</div><div class='del'>-	  made by miniruby. based on nobu's patch.</div><div class='del'>-</div><div class='del'>-Thu Dec 18 21:44:21 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (stack_extend): ignore inline optimization on VC7.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (OS, RT): can override.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub (LDFLAGS): ditto. shouldn't use pdb:none</div><div class='del'>-	  option. based on Tietew's patch [ruby-dev:22289]</div><div class='del'>-</div><div class='del'>-Thu Dec 18 16:38:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (fnmatch): unlike find_dirsep(), rb_path_next() never</div><div class='del'>-	  return NULL.</div><div class='del'>-</div><div class='del'>-Thu Dec 18 15:27:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ipaddr.rb (IPSocket::getaddress): merge usa's patch.</div><div class='del'>-	  [ruby-dev:21678]</div><div class='del'>-</div><div class='del'>-Wed Dec 17 15:15:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::Value::[]): should work like</div><div class='del'>-	  String#[] if more than one arguments are specified.</div><div class='del'>-</div><div class='del'>-	* lib/delegate.rb: avoid using common instance name as "@obj".</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer</div><div class='del'>-	  subclass of String, but DelegateClass(String).</div><div class='del'>-</div><div class='del'>-	* ext/curses/extconf.rb: restore function check for init_color.</div><div class='del'>-	  [ruby-list:38905]</div><div class='del'>-</div><div class='del'>-	* Makefile.in: need to specify $(MAINLIBS) for the miniruby</div><div class='del'>-	  generation rule.</div><div class='del'>-</div><div class='del'>-	* configure.in: better FreeBSD -lc_r support.</div><div class='del'>-</div><div class='del'>-Wed Dec 17 00:16:14 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: new method</div><div class='del'>-	  StringScanner#beginning_of_line? (alias #bol?)</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: new method StringScanner#concat and #&lt;&lt;.</div><div class='del'>-</div><div class='del'>-	* ext/strscan/strscan.c: StringScanner#new(str) does not duplicate</div><div class='del'>-	  nor freeze STR (allow destructive modification).</div><div class='del'>-</div><div class='del'>-	* test/strscan/test_stringscanner.rb: test new methods above.</div><div class='del'>-</div><div class='del'>-	* test/strscan/test_stringscanner.rb: test destructive string</div><div class='del'>-	  modification.</div><div class='del'>-</div><div class='del'>-Tue Dec 16 21:20:47 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pp.rb: don't use local variable `pp'.</div><div class='del'>-</div><div class='del'>-	* lib/prettyprint.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec 16 13:20:43 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: condition bug of if statement on</div><div class='del'>-	  {pack,grid}_propagate methods</div><div class='del'>-</div><div class='del'>-Tue Dec 16 03:17:29 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: comments in strings. [ruby-talk:88012]</div><div class='del'>-</div><div class='del'>-	* test/yaml/test_yaml.rb: add test.</div><div class='del'>-</div><div class='del'>-Tue Dec 16 01:14:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (catch_timer): check rb_thread_crtical in main native</div><div class='del'>-	  thread.</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_timer): just sends signals periodically, to</div><div class='del'>-	  prevent main native thread from receiving them in critical</div><div class='del'>-	  section.  [ruby-core:01959]</div><div class='del'>-</div><div class='del'>-Mon Dec 15 13:32:22 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (check_dirname): check string safety and remove extraneous</div><div class='del'>-	  trailing directory separators.  [ruby-dev:22279]</div><div class='del'>-</div><div class='del'>-	* file.c: renamed and externalized rb_path_next,</div><div class='del'>-	  rb_path_skip_prefix, rb_path_last_separator, rb_path_end.</div><div class='del'>-</div><div class='del'>-	* intern.h: prototypes for rb_path_next, rb_path_skip_prefix,</div><div class='del'>-	  rb_path_last_separator, rb_path_end.</div><div class='del'>-</div><div class='del'>-Mon Dec 15 09:27:46 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): first argument</div><div class='del'>-	  of rb_protect should take an argument of VALUE.</div><div class='del'>-</div><div class='del'>-Sun Dec 14 18:46:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (Init_socket): IPv6 is not supported although</div><div class='del'>-	  AF_INET6 is defined on MinGW.</div><div class='del'>-</div><div class='del'>-	* lib/ipaddr.rb (AF_INET6): workaround in the environment which does</div><div class='del'>-	  not support IPv6.</div><div class='del'>-</div><div class='del'>-Sat Dec 13 18:55:16 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/charset_alias.rb: preserve original order.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/extconf.rb: remove wrapper file at clean.</div><div class='del'>-</div><div class='del'>-Sat Dec 13 18:09:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_timer): use timer by sub-thread and nanosleep.</div><div class='del'>-	  [ruby-talk:87519]</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): no stack adjustment for THREAD_SAFE.</div><div class='del'>-</div><div class='del'>-Sat Dec 13 17:17:59 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_alloc): cache the created object at first time.</div><div class='del'>-	  [ruby-talk:61288], [ruby-dev:22240]</div><div class='del'>-</div><div class='del'>-Sat Dec 13 09:01:23 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check ucontext.h.</div><div class='del'>-</div><div class='del'>-	* eval.c: use getcontext/setcontext() instead of setjmp/longjmp()</div><div class='del'>-	  on ia64 or with native thread enabled.  [ruby-core:01932]</div><div class='del'>-</div><div class='del'>-Sat Dec 13 03:09:14 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: anonymous struct fix. [ruby-core:01946]</div><div class='del'>-</div><div class='del'>-	* test/yaml/test_yaml.rb: add test.</div><div class='del'>-</div><div class='del'>-Fri Dec 12 22:36:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: add Cell#to_str and Cell#to_s for /.../ =~ aCell,</div><div class='del'>-	  "#{aCell}" and so on.</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: add tests.</div><div class='del'>-</div><div class='del'>-Fri Dec 12 19:33:06 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir): remove trailing `/' from pathes.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238]</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (rmdir_r): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_copy_dir): check if it is a directory after</div><div class='del'>-	  mkdir(2).</div><div class='del'>-</div><div class='del'>-Fri Dec 12 06:06:09 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): fix class name in warning message for</div><div class='del'>-	  define_method.  [ruby-dev:22235]</div><div class='del'>-</div><div class='del'>-Thu Dec 11 21:24:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs12.[ch]: new files. add OpenSSL::PKCS12.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.[ch]: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/MANIFEST: add ossl_pkcs12.[ch].</div><div class='del'>-</div><div class='del'>-Thu Dec 11 20:54:28 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir_p): remove trailing `/' befere mkdir(2).</div><div class='del'>-	  mkdir("nonexistdir/") does not work on NetBSD/Alpha 1.6.1.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_list): call to_str for all arguments.</div><div class='del'>-</div><div class='del'>-Thu Dec 11 20:07:01 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ftools.rb (makedirs): sync with fileutils.</div><div class='del'>-</div><div class='del'>-Thu Dec 11 19:53:03 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir_p): catch all SystemCallErrors.</div><div class='del'>-	  (mkdir("C:\") causes EACCESS on Windows 2000/NTFS)</div><div class='del'>-</div><div class='del'>-Thu Dec 11 19:08:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (mkdir_p): check if it is a directory after</div><div class='del'>-	  mkdir(2) instead of before mkdir(2), to avoid race condition.</div><div class='del'>-	  [ruby-talk:87730]</div><div class='del'>-	  Refer: mkinstalldirs sh script, GNU mkdir(1) (coreutils 5.0)</div><div class='del'>-</div><div class='del'>-Thu Dec 11 18:49:30 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: def m( arg ) -&gt; def m(arg).</div><div class='del'>-</div><div class='del'>-Thu Dec 11 11:39:43 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (ieeefp.h), numeric.c: needed for finite() on</div><div class='del'>-	  Solaris.  [ruby-core:01921]</div><div class='del'>-</div><div class='del'>-	* file.c (rb_stat_inspect): adjust format specifier.</div><div class='del'>-</div><div class='del'>-	* parse.c (arg_prepend): nodetype() is for debug use.</div><div class='del'>-</div><div class='del'>-	* ruby.h (ISASCII, etc): cast to int to get rid of warning.</div><div class='del'>-</div><div class='del'>-	* ruby.h (alloca.h): include even in GCC.  [ruby-core:01925]</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format</div><div class='del'>-	  specifier.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,</div><div class='del'>-	  BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be</div><div class='del'>-	  volatile.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_convert): ensure actual parameter with</div><div class='del'>-	  format specifier.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not</div><div class='del'>-	  define unless used.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (getDevice): get rid of warning.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (port_str, sock_s_getaddrinfo,</div><div class='del'>-	  sock_s_getnameinfo): FIX2INT() now returns long.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (init_inetsock_internal): uninitialized</div><div class='del'>-	  variable.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (syck_parser_assign_io): add prototype.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use</div><div class='del'>-	  ISDIGIT() instead of isdigit() to avoid warnings and for</div><div class='del'>-	  platforms which don't support non-ascii charater.</div><div class='del'>-</div><div class='del'>-Wed Dec 10 19:28:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): set EOF flag at short read.</div><div class='del'>-	  [ruby-dev:22223], [ruby-dev:22224]</div><div class='del'>-</div><div class='del'>-Wed Dec 10 18:07:25 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/erb.rb: new method ERB#filename(=). [ruby-dev:22208]</div><div class='del'>-</div><div class='del'>-Wed Dec 10 17:54:51 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): do not set EOF flag when</div><div class='del'>-	  requested length is zero.  [ruby-dev:22214]</div><div class='del'>-</div><div class='del'>-Wed Dec 10 17:17:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): should return given string even if data read is</div><div class='del'>-	  empty.  [ruby-dev:22207]</div><div class='del'>-</div><div class='del'>-Wed Dec 10 17:16:06 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): adjust behavior at reading</div><div class='del'>-	  beyond EOF to IO.  [ruby-dev:22205]</div><div class='del'>-</div><div class='del'>-	* test/ruby/ut_eof.rb (TestEOF::Seek): test behaviors at reading</div><div class='del'>-	  beyond EOF.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_file.rb, test/stringio/test_stringio.rb: include</div><div class='del'>-	  TestEOF::Seek test case.</div><div class='del'>-</div><div class='del'>-Wed Dec 10 15:01:19 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/monitor/test_monitor.rb (test_cond): use Queue#deq</div><div class='del'>-	  instead of sleep.</div><div class='del'>-</div><div class='del'>-Wed Dec 10 14:45:39 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (HAVE_SYS_IOCTL_H): need to include &lt;sys/ioctl.h&gt;</div><div class='del'>-	  for TIOCSCTTY on *BSD.  based on gotoyuzo's patch.</div><div class='del'>-	  (ruby-bugs:PR#1211)</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c (establishShell): should close descriptors if fork</div><div class='del'>-	  failed.</div><div class='del'>-</div><div class='del'>-Wed Dec 10 12:53:05 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.h: define execv() using do_aspawn().</div><div class='del'>-</div><div class='del'>-	* process.c (proc_exec_v): remove #ifdef's which stopped needing.</div><div class='del'>-</div><div class='del'>-Tue Dec  9 23:32:23 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tkdialog.rb,</div><div class='del'>-	  ext/tk/lib/tkentry.rb, ext/tk/lib/tkscrollbox.rb, ext/tk/lib/tktext.rb,</div><div class='del'>-	  ext/tk/sample/tkalignbox.rb, ext/tk/sample/tkcombobox.rb,</div><div class='del'>-	  ext/tk/sample/tkmultilistbox.rb, ext/tk/sample/tkoptdb.rb, ext/tk/sample/tktextframe.rb,</div><div class='del'>-	  ext/tk/sample/demos-en/dialog1.rb, ext/tk/sample/demos-en/dialog2.rb,</div><div class='del'>-	  ext/tk/sample/demos-jp/dialog1.rb, ext/tk/sample/demos-jp/dialog2.rb:</div><div class='del'>-	  overrided instance methods, which are private methods on the super</div><div class='del'>-	  class, are changed to 'private'</div><div class='del'>-</div><div class='del'>-Tue Dec  9 19:53:02 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/generic.rb (URI::Generic#route_from0): make case insensitive</div><div class='del'>-	  for host-part.</div><div class='del'>-</div><div class='del'>-	* test/uri/test_generic.rb (test_route): added tests for the above</div><div class='del'>-	  change.</div><div class='del'>-</div><div class='del'>-Tue Dec  9 14:10:48 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_check_readable): don't call io_seek if EOF flag is set,</div><div class='del'>-	  to avoid clearing EOF flag.</div><div class='del'>-	  (rb_io_check_writable): ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec  9 02:53:55 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkalignbox.rb: new sample script</div><div class='del'>-</div><div class='del'>-Tue Dec  9 00:45:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: renamed #assert_raises to #assert_raise</div><div class='del'>-	  and made the former call the latter. [ruby-core:01890]</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec  9 00:07:35 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/standaloneServer.rb: add 'shutdown' and 'status'</div><div class='del'>-	  methods as delegates to WEBrick.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/{test_calc.rb,test_calc2.rb},</div><div class='del'>-	  test/soap/helloworld/test_helloworld.rb,</div><div class='del'>-	  test/wsdl/datetime/test_datetime.rb, test/wsdl/raa/test_raa.rb:</div><div class='del'>-	  follow the change.</div><div class='del'>-</div><div class='del'>-Mon Dec  8 22:48:03 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb: remove dependency to a particular</div><div class='del'>-	  runner.  [ruby-core:01901], [ruby-list:38869]</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/testrunnerutilities.rb: moved output level</div><div class='del'>-	  constants from Console.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/console/testrunner.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/{fox,gtk,gtk2,tk}/testrunner.rb (initialize):</div><div class='del'>-	  accept output_level.</div><div class='del'>-</div><div class='del'>-Mon Dec  8 15:03:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c (syck_io_str_read): get rid of buffer overflow.</div><div class='del'>-</div><div class='del'>-Mon Dec  8 13:02:11 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/common.rb: new method URI.regexp. [ruby-dev:22121]</div><div class='del'>-</div><div class='del'>-	* test/uri/test_common.rb: add test for URI.regexp.</div><div class='del'>-</div><div class='del'>-Mon Dec  8 12:44:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c: define swap16 and swap32 only if they are not</div><div class='del'>-	  defined. OpenBSD defines these macros. [ruby-dev:22181]</div><div class='del'>-</div><div class='del'>-Sun Dec  7 20:54:17 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (map_charset): make case sensitive.</div><div class='del'>-	  ext/iconv/charset_alias.rb (charset_alias): don't ignore</div><div class='del'>-	  config.charset's information.  sort aliases.</div><div class='del'>-</div><div class='del'>-Sat Dec  6 22:58:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_start_ssl): new function to wrap</div><div class='del'>-	  SSL_connect and SSL_accept; if SSL_connect (or SSL_accept) returned</div><div class='del'>-	  but not finished the handshake process, we should retry it.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_connect): call ossl_start_ssl.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_read): allow signal traps.</div><div class='del'>-</div><div class='del'>-Sat Dec  6 21:45:10 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (flush_before_seek): flush before seek on any platform.</div><div class='del'>-</div><div class='del'>-	* configure.in: ditto.</div><div class='del'>-</div><div class='del'>-Sat Dec  6 17:23:00 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/soap.rb(SOAP::Env.getenv): allow upcase environment variable</div><div class='del'>-	  as well as downcase one.</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb(SOAP::NetHttpClient#proxy=): check URI.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 23:22:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises,</div><div class='del'>-	  Test::Unit::Assertions::assert_nothing_raised): use the last</div><div class='del'>-	  argument as message unless class object.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb (test_assert_raises): test for</div><div class='del'>-	  multiple exception list.  [ruby-core:01891]</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb (test_assert_nothing_raised): test</div><div class='del'>-	  for non-exception classes.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 22:23:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: proxy support did not work.  fixed.</div><div class='del'>-</div><div class='del'>-	* lib/soap/property.rb: add class methods for loading property from</div><div class='del'>-	  stream/file/propertyfile.  propertyfile is a file which is located at</div><div class='del'>-	  somedir in $:.</div><div class='del'>-</div><div class='del'>-	* lib/soap/soap.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb,</div><div class='del'>-	  lib/wsdl/importer.rb: load property from propertyfile 'soap/property'</div><div class='del'>-	  e.g. /usr/local/lib/ruby/site_ruby/1.8/soap/property.</div><div class='del'>-</div><div class='del'>-	* test/soap/test_property.rb, test/soap/test_streamhandler.rb: new file.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 17:26:23 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_exec_end_proc): maintain tmp_end_procs.</div><div class='del'>-	  [ruby-dev:22154]</div><div class='del'>-</div><div class='del'>-Fri Dec  5 13:36:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_exec_end_proc): should not clear end_procs and</div><div class='del'>-	  ephemeral_end_procs before execution. [ruby-dev:22144]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_obj_extend): call Module#extended hook after</div><div class='del'>-	  extended_object.  [ruby-list:38866]</div><div class='del'>-</div><div class='del'>-	* object.c (Init_Object): Module#extended defined.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 13:17:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_pipe.rb: use IO.pipe instead of IO.popen.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 11:54:45 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): follow IO#read.</div><div class='del'>-</div><div class='del'>-	* test/ruby/ut_eof.rb, test/ruby/test_file.rb, test/ruby/test_pipe.rb,</div><div class='del'>-	  test/stringio/test_stringio.rb: add EOF test.</div><div class='del'>-</div><div class='del'>-Fri Dec  5 02:49:35 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises):</div><div class='del'>-	  allow multiple exception list.  [ruby-core:01884]</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_nothing_raised):</div><div class='del'>-	  check whether arguments are subclass of Exception.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 23:54:00 2003  Rick Ohnemus  &lt;rick.ohnemus@systemware.com&gt;</div><div class='del'>-</div><div class='del'>-	* dln.c (aix_loaderror): should not use member named 'errno' which</div><div class='del'>-	  might be a macro (e.g. on AIX).</div><div class='del'>-</div><div class='del'>-Thu Dec  4 23:32:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): do not depend on lseek position.</div><div class='del'>-	  [ruby-dev:22026]</div><div class='del'>-</div><div class='del'>-Thu Dec  4 22:37:26 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): preserve $! value when retry happens in the</div><div class='del'>-	  rescue clause.  [ruby-talk:86697]</div><div class='del'>-</div><div class='del'>-Thu Dec  4 21:50:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRb::DRbMessage::send_request, send_reply):</div><div class='del'>-	  should rescue errors and re-raise DRbConnError on write too.</div><div class='del'>-	  [ruby-dev:22132]</div><div class='del'>-</div><div class='del'>-Thu Dec  4 16:41:17 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (exc_list): allow expanding list.  [ruby-dev:22134]</div><div class='del'>-</div><div class='del'>-Thu Dec  4 14:09:24 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_cp): test if the error is</div><div class='del'>-	  kind of SystemCallError.  It is needless details that which errno</div><div class='del'>-	  is set on each systems.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 13:24:13 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb: use Object#__send__ instead of Object#send.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 13:17:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/streamHandler.rb: support latest released version of</div><div class='del'>-	  http-access2.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 13:04:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/soap.rb: add SOAP::Env module for environment repository</div><div class='del'>-	  such as HTTP_PROXY.</div><div class='del'>-</div><div class='del'>-	* lib/soap/property.rb: property implementation.</div><div class='del'>-</div><div class='del'>-	* lib/soap/streamHandler.rb, lib/soap/wsdlDriver.rb,</div><div class='del'>-	  lib/soap/rpc/driver.rb: use soap/property.rb.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/importer.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb:</div><div class='del'>-	  use SOAP::Env.</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: add basic_auth, ssl_config, and cookie</div><div class='del'>-	  management interface, but ignored for now.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/charset.rb: add XSD::Charset.encoding= interface to set</div><div class='del'>-	  wiredump charset explicitly.  it was fixed to 'utf-8' when iconv or</div><div class='del'>-	  uconv module was found.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 10:43:58 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/dl/sym.c (rb_dlsym_guardcall): __declspec(noinline) is VC7</div><div class='del'>-	  feature.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 10:27:12 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: update hyperlink to the Japanese document.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 09:12:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (asn1time_to_time): should check that</div><div class='del'>-	  the underlying value of ASN1_TIME isn't NULL. [ruby-core:01881]</div><div class='del'>-</div><div class='del'>-Thu Dec  4 08:29:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='del'>-	  Exception to avoid unexpected aborting. [ruby-core:01853]</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#start_thread): should check</div><div class='del'>-	  that peeraddr isn't nil before printing.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpresponse.rb (HTTPResponse#start_thread): should</div><div class='del'>-	  rescue Exception to avoid unexpected aborting of thread.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 03:48:59 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#link, Pathname#symlink): obsoleted.</div><div class='del'>-	  (Pathname#make_link, Pathname#make_symlink): new method.</div><div class='del'>-</div><div class='del'>-Thu Dec  4 01:45:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): should not terminate on empty string; wait</div><div class='del'>-	  until real EOF.  [ruby-dev:21969]</div><div class='del'>-</div><div class='del'>-	* io.c (argf_read): should adjust length to read, when length is</div><div class='del'>-	  specified and read spans command line argument files.</div><div class='del'>-</div><div class='del'>-Wed Dec  3 19:38:36 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: correct fcntl parameter. [ruby-dev:22120]</div><div class='del'>-</div><div class='del'>-Wed Dec  3 13:49:07 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: 'format'==&gt;'Kernel.format' (avoid override trouble)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkafter.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkcanvas.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkdialog.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tktext.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Dec  3 13:28:13 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (lex.c): try gperf first, and copy from the source</div><div class='del'>-	  directory if failed.  [ruby-dev:22123]</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (MTIMES): let makefiles depend to mkmf.rb.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): DLDFLAGS was duplicated.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 23:18:12 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: wrote the warning about HTTP_PROXY environment</div><div class='del'>-	  variable.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 21:31:42 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bin/testrb: new test runner.  [ruby-core:01845]</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner.run,</div><div class='del'>-	  Test::Unit::AutoRunner#process_args): take test list to run and</div><div class='del'>-	  options.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::RUNNERS,</div><div class='del'>-	  Test::Unit::AutoRunner#run): should not exit inside a library,</div><div class='del'>-	  just return the result instead.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: exit with the test result.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 20:18:48 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found</div><div class='del'>-	  instead of Bison or byacc.</div><div class='del'>-</div><div class='del'>-	* parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least</div><div class='del'>-	  10000 (Bison's default) since some old versions of Yacc define it as</div><div class='del'>-	  low as 150 by default, which is too low for Ruby to parse some files,</div><div class='del'>-	  such as date/format.rb.  Among other issues, the parse problem causes</div><div class='del'>-	  "make test" to fail.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 20:03:20 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: check if Pathnames are usable</div><div class='del'>-	  for arguments.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 04:22:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: fixed #assert_no_match message.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Dec  2 00:43:00 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c: string buffering bug.  decrementing by full</div><div class='del'>-	  max_size now. [ruby-core:01834]</div><div class='del'>-</div><div class='del'>-Mon Dec  1 21:33:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* numeric.c (num_sadded): prohibit singleton method definition for</div><div class='del'>-	  Numerics.  fill yet another gap between Fixnum and Bignum.</div><div class='del'>-</div><div class='del'>-Mon Dec  1 17:33:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (htov16): converts endian using swap16. htov32(), hton16,</div><div class='del'>-	  hton32 as well. [ruby-talk:85377]</div><div class='del'>-</div><div class='del'>-	* pack.c (swap16): swap 2 bytes no matter how big short is on the</div><div class='del'>-	  platform.  swap32() is also prepared.</div><div class='del'>-</div><div class='del'>-	* numeric.c (rb_num2int): returns long to preserve information.</div><div class='del'>-	  rb_fix2int(), rb_num2uint(), rb_fix2uint() as well.</div><div class='del'>-	  [ruby-talk:85377]</div><div class='del'>-</div><div class='del'>-	* numeric.c (rb_num2uint): should not check for value range if the</div><div class='del'>-	  source value is negative.</div><div class='del'>-</div><div class='del'>-Mon Dec  1 17:14:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/optparse/opttest.rb: added.</div><div class='del'>-</div><div class='del'>-Mon Dec  1 16:10:52 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rdoc/rdoc.rb: (etc) initial merge into main tree.</div><div class='del'>-</div><div class='del'>-Mon Dec  1 14:17:49 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_each_src_dest0): call #to_str to allow</div><div class='del'>-	  Pathname for arguments. [ruby-core:01795]</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: does much strict test on</div><div class='del'>-	  "same" files detecting.</div><div class='del'>-</div><div class='del'>-Mon Dec  1 09:28:14 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='del'>-	  (XCFLAGS): re-export $(XCFLAGS).</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='del'>-	  (ARCH_FLAG): export $(ARCH_FLAG) (perhaps empty value).</div><div class='del'>-</div><div class='del'>-Mon Dec  1 01:03:27 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (TRY_LINK, link_command): added support for DLDFLAGS</div><div class='del'>-	  and ARCH_FLAG.  [ruby-dev:22085]</div><div class='del'>-</div><div class='del'>-Sun Nov 30 20:18:07 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: keep ARCH_FLAG separate. export ARCH_FLAG.</div><div class='del'>-	  [ruby-core:01819]</div><div class='del'>-</div><div class='del'>-	* Makefile.in: add ARCH_FLAG to CFLAGS.</div><div class='del'>-</div><div class='del'>-	* Makefile.in: add @CPPFLAGS@ to CPPFLAGS.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (link_command, cc_command): use ARCH_FLAG.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (configuration): add ARCH_FLAG to DLDFLAGS.</div><div class='del'>-</div><div class='del'>-	* Makefile.in: add ARCH_FLAG to DLDFLAGS.</div><div class='del'>-</div><div class='del'>-	* configure.in: should put getcwd in AC_CHECK_FUNCS, not</div><div class='del'>-	  AC_REPLACE_FUNCS.  [ruby-core:01826]</div><div class='del'>-</div><div class='del'>-Sun Nov 30 18:22:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: do not override CCDLDFLAGS, LDFLAGS, XLDFLAGS,</div><div class='del'>-	  DLDFLAGS and LDSHARED.</div><div class='del'>-</div><div class='del'>-	* configure.in: XCFLAGS for compiling ruby itself.  ARCH_FLAG is</div><div class='del'>-	  reflected in CFLAGS.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: ditto.  do not import XCFLAGS from config.status.</div><div class='del'>-</div><div class='del'>-Sun Nov 30 17:37:36 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix [ruby-talk:86746]</div><div class='del'>-</div><div class='del'>-Sun Nov 30 13:02:00 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/encodingstyle/soapHandler.rb: refactoring - Simplifying</div><div class='del'>-	  Conditional Expressions.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/soap/definitions.rb: refactoring - Move Method.</div><div class='del'>-</div><div class='del'>-	* test/xsd/{test_noencoding.rb,noencoding.xml}: new files.  test for</div><div class='del'>-	  encoding unspecified XML file parsing.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/{test_fault.rb,map,datetime}: new files.  test of</div><div class='del'>-	  SOAPFault, dateTime and Apache's Map.</div><div class='del'>-</div><div class='del'>-Sun Nov 30 09:35:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_update): get rid of SEGV at just allocated String.</div><div class='del'>-	  [ruby-core:01812]</div><div class='del'>-</div><div class='del'>-Fri Nov 28 23:19:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_mark): explicitly check mark recursion levels, instead</div><div class='del'>-	  of unreliable stack length.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 22:49:56 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rinda/rinda.rb: fix TupleSpaceProxy#read, read_all.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 21:44:40 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_ln_s): should be a file, not</div><div class='del'>-	  a directory for FreeBSD.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 19:37:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (env_has_value, env_index): must match exactly.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_env.rb (test_has_value, test_index): condition for</div><div class='del'>-	  aboves.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 17:59:20 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_env.rb: add tests for ENV.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 17:47:46 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb (DRbMessage#load): rescue Errno::* and raise</div><div class='del'>-	  DRbConnError.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 15:41:15 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#realpath): obsolete the force_absolute</div><div class='del'>-	  argument.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 14:41:52 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/streamHandler.rb: drop unused http parameters.</div><div class='del'>-</div><div class='del'>-	* lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb,</div><div class='del'>-	  lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb,</div><div class='del'>-	  lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken</div><div class='del'>-	  under WSDL dynanic client environment.  fixed.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/raa/*: add tests.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.)</div><div class='del'>-	  bug of soap4r.  XSDDateTimeImple.to_time passed a Float to</div><div class='del'>-	  Time.local/Time.gm as an usec, and NUM2LONG(rb_num2long for Float)</div><div class='del'>-	  causes rounding error.</div><div class='del'>-</div><div class='del'>-	* test/soap/test_basetype.rb, test/xsd/test_xsd.rb: add tests.</div><div class='del'>-</div><div class='del'>-Fri Nov 28 04:15:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (method_arity): used wrong Proc object.  [ruby-talk:86504]</div><div class='del'>-</div><div class='del'>-Fri Nov 28 00:47:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): treat true as</div><div class='del'>-	  success, false as failure.  [ruby-dev:22067]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_abort, rb_thread_switch), process.c (rb_f_system): use</div><div class='del'>-	  ANSI macro instead of hard coded value.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): use VALUEs not but</div><div class='del'>-	  TYPEs.</div><div class='del'>-</div><div class='del'>-Thu Nov 27 22:05:48 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c, gc.c: FreeBSD/ia64 currently does not have a way for a</div><div class='del'>-	  process to get the base address for the RSE backing store, so</div><div class='del'>-	  hardcode it for the moment.</div><div class='del'>-	  [submitted by: Marcel Moolenaar &lt;marcel@FreeBSD.org&gt;]</div><div class='del'>-</div><div class='del'>-Thu Nov 27 17:36:42 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkafter.rb: bug fix on TkTimer#cancel_on_exception=(mode).</div><div class='del'>-	  TkTimer#wait recieves the exception of the callback.</div><div class='del'>-	  The exception is kept on @return_value.</div><div class='del'>-</div><div class='del'>-Thu Nov 27 16:58:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_stat): remove _fullpath() for NUL: device.</div><div class='del'>-</div><div class='del'>-Wed Nov 26 15:38:47 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_ln_s): should take the</div><div class='del'>-	  existing symbolic link for OpenBSD.</div><div class='del'>-</div><div class='del'>-Wed Nov 26 04:48:42 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: removed YYTOKTMP references which</div><div class='del'>-	  were causing buffer overflows on large block scalars,</div><div class='del'>-	  comments, quoted scalars and plain scalars.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: dynamic changing of buffer size.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: default buffer size of 4k.</div><div class='del'>-</div><div class='del'>-Wed Nov 26 00:55:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpresponse.rb: add HTTPResponse#keep_alive=.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (HTTPServer#run): should pass the</div><div class='del'>-	  request's keep_alive flag to the response.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 21:41:35 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h (ENV_IGNORECASE): should define when DOSISH without</div><div class='del'>-	  human68k. [ruby-dev:22047]</div><div class='del'>-</div><div class='del'>-	* hash.c (env_has_value, env_index): don't ignore case of value.</div><div class='del'>-	  [ruby-dev:22048]</div><div class='del'>-</div><div class='del'>-Tue Nov 25 21:39:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (path_check_1): honor sticky bits always.</div><div class='del'>-	  [ruby-talk:86273]</div><div class='del'>-</div><div class='del'>-Tue Nov 25 20:02:14 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: do test in more deep</div><div class='del'>-	  directory.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 19:04:23 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): ENV case sensitivity test</div><div class='del'>-	  refined.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 18:13:30 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: chdir Dir.tmpdir before each</div><div class='del'>-	  test. [ruby-dev:22045]</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 17:52:11 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): use http_proxy under CGI</div><div class='del'>-	  if the environment variable is case sensitive.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 16:41:33 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb:</div><div class='del'>-	  removed.  this test requires extra libraries in soap4r/1.5.*.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 16:24:42 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/**/*.rb, lib/wsdl/**/*.rb, lib/xsd/**/*.rb: changed license;</div><div class='del'>-	  GPL2 -&gt; Ruby's.</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/driver.rb, lib/soap/wsdlDriver.rb,</div><div class='del'>-	  lib/soap/streamHandler.rb: add interface to streamhandler.</div><div class='del'>-</div><div class='del'>-	* lib/soap/marshal.rb: raise error if parse fails.</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: add https support.  Patched by</div><div class='del'>-	  Oliver M. Bolzer.</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: dump HTTP response message body by itself.</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/driver.rb, lib/soap/rpc/proxy.rb,</div><div class='del'>-	  lib/soap/wsdlDriver.rb: add driver#mandatorycharset interface to foce</div><div class='del'>-	  using charset for parsing response from buggy server.</div><div class='del'>-</div><div class='del'>-	* lib/soap/encodingstyle/soapHandler.rb: support Apache Axis's half</div><div class='del'>-	  typed multi-ref array.</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/factory.rb, lib/soap/mapping/registry.rb: map</div><div class='del'>-	  SOAPStruct which has multi-accessors which name are the same, to an</div><div class='del'>-	  array.</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/element.rb: fixed illegal parameter order.</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/element.rb: element name of response message could have</div><div class='del'>-	  the name other than 'return'.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/operation.rb, lib/wsdl/operationBinding.rb,</div><div class='del'>-	  lib/wsdl/soap/classDefCreator.rb, lib/wsdl/soap/methodDefCreator.rb,</div><div class='del'>-	  lib/wsdl/soap/methodDefCreatorSupport.rb: WSDL/1.1 allows plural</div><div class='del'>-	  fault definition in a operation. [ruby-talk:84948]</div><div class='del'>-</div><div class='del'>-	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb: add</div><div class='del'>-	  test for above fix.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/soap/complexType.rb: support WSDL array definition with</div><div class='del'>-	  maxOccures="unbound".</div><div class='del'>-</div><div class='del'>-	* lib/xsd/charset.rb: use cp932 under emx.  Patched by</div><div class='del'>-	  Siena. / SHINAGAWA, Norihide in [ruby-dev:21972]</div><div class='del'>-</div><div class='del'>-	* lib/xsd/xmlparser/parser.rb: set @charset nil by default.  Nil means</div><div class='del'>-	  'follow encoding declaration in XML'.</div><div class='del'>-</div><div class='del'>-	* sample/soap/digraph.rb, sample/wsdl/amazon/wsdlDriver.rb,</div><div class='del'>-	  sample/wsdl/googleSearch/sampleClient.rb,</div><div class='del'>-	  sample/wsdl/googleSearch/wsdlDriver.rb,</div><div class='del'>-	  test/wsdl/test_emptycomplextype.rb,</div><div class='del'>-	  test/wsdl/marshal/test_wsdlmarshal.rb,</div><div class='del'>-	  test/xsd/test_xmlschemaparser.rb: use File.open(...) { |f| f.read }</div><div class='del'>-	  instead of File.open(...).read. [ruby-dev:21964]</div><div class='del'>-</div><div class='del'>-	* test/wsdl/emptycomplextype.wsdl, test/wsdl/test_emptycomplextype.rb:</div><div class='del'>-	  simplify the test case.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/axisArray/*: add tests for axis's array encoding.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 16:15:29 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: don't treat Cygwin as Windows.</div><div class='del'>-</div><div class='del'>-Tue Nov 25 15:18:28 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: change default value of --enable-pthread (default: no)</div><div class='del'>-</div><div class='del'>-Tue Nov 25 07:31:16 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (primary): allow newlines just before right argument</div><div class='del'>-	  parenthesis.  (ruby-bugs:PR#1221)</div><div class='del'>-</div><div class='del'>-Mon Nov 24 23:32:06 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI.open_loop, URI::HTTP#proxy_open): use</div><div class='del'>-	  catch/throw for redirection instead of exception.</div><div class='del'>-	  (OpenURI.open_loop, OpenURI.redirectable?): restrict redirection.</div><div class='del'>-</div><div class='del'>-Mon Nov 24 19:59:48 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): use CGI_HTTP_PROXY</div><div class='del'>-	  instead of HTTP_PROXY in the CGI environment.</div><div class='del'>-</div><div class='del'>-Mon Nov 24 19:32:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/extconf.rb: check for pw_passwd in struct passwd and</div><div class='del'>-	  gr_passwd in struct group for DJGPP.</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/Setup.dj: support for curses, etc, zlib.</div><div class='del'>-</div><div class='del'>-Mon Nov 24 17:00:00 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb: validate option names.</div><div class='del'>-	  :content_length_proc and :progress_proc option implemented.</div><div class='del'>-</div><div class='del'>-Mon Nov 24 14:53:10 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='del'>-	  (XCFLAGS): output empty value instead of `-DRUBY_EXPORT'.</div><div class='del'>-</div><div class='del'>-Sat Nov 22 23:09:45 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: set enable_pthread to no on MinGW.</div><div class='del'>-</div><div class='del'>-Sat Nov 22 22:56:20 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: add --enable-pthread option (default: yes)</div><div class='del'>-</div><div class='del'>-Sat Nov 22 22:48:46 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkComposite</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkafter.rb: bug fix of TkAfter#start</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkcombobox.rb: new sample script</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add native thread check</div><div class='del'>-</div><div class='del'>-Sat Nov 22 18:49:47 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (window_nodelay): nodelay() of NetBSD's</div><div class='del'>-	  libcruses returns no value, just like keypad().</div><div class='del'>-</div><div class='del'>-Sat Nov 22 17:36:36 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='del'>-	  (HAVE_GETCWD): output to config.h.</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='del'>-	  (XCFLAGS): output to config.status.</div><div class='del'>-</div><div class='del'>-Sat Nov 22 13:10:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (have_st_ino?): djgpp has valid st_ino.</div><div class='del'>-</div><div class='del'>-Sat Nov 22 11:28:48 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): stack region is far smaller than usual if</div><div class='del'>-	  pthread is used.</div><div class='del'>-</div><div class='del'>-Sat Nov 22 07:30:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/util/backtracefilter.rb: fixed a bug that occurred</div><div class='del'>-	  when an exception had no backtrace.</div><div class='del'>-</div><div class='del'>-	* test/testunit/util/test_backtracefilter.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Nov 21 16:44:18 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkentry.rb: fix the encoding trouble of percent</div><div class='del'>-	  substitutions on validatecommand option of TkEntry widget</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fix bug on {pack|grid}_propagate() method</div><div class='del'>-</div><div class='del'>-Fri Nov 21 16:12:11 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.1: Fix markups and grammar.</div><div class='del'>-</div><div class='del'>-Fri Nov 21 14:49:42 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.1: wrote about ruby related environment variables.</div><div class='del'>-</div><div class='del'>-Fri Nov 21 12:28:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_extended): singleton methods should not be checked</div><div class='del'>-	  when dumping via marshal_dump() or _dump(). [ruby-talk:85909]</div><div class='del'>-</div><div class='del'>-Fri Nov 21 01:40:00 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: check &lt;pthread.h&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: include pthread.h if existence.</div><div class='del'>-	  define is_ruby_native() macro when not HAVE_NATIVETHREAD</div><div class='del'>-</div><div class='del'>-	* eval.c: undef is_ruby_native() function when not HAVE_NATIVETHREAD</div><div class='del'>-</div><div class='del'>-Fri Nov 21 00:43:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: use #__send__ instead of #send.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Nov 20 19:19:22 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: don't find the Cygwin's pthread library on MinGW.</div><div class='del'>-</div><div class='del'>-Thu Nov 20 19:15:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (have_st_ino?): emx (OS/2 with EMX) does not</div><div class='del'>-	  have st_ino (always 0). [ruby-dev:21972]</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (rename_cannot_overwrite_file?): emx does not</div><div class='del'>-	  allow overwriting files by rename(2).</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: windows? -&gt;</div><div class='del'>-	  have_drive_letter?, have_file_perm?</div><div class='del'>-</div><div class='del'>-Thu Nov 20 17:50:58 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkballoonhelp.rb: new sample script</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tkmultilistbox.rb: ditto</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/tktextframe.rb: ditto</div><div class='del'>-</div><div class='del'>-Thu Nov 20 13:37:34 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ruby.h: define is_ruby_native_thread() for no native thread</div><div class='del'>-	  environment</div><div class='del'>-</div><div class='del'>-	* eval.c: ditto</div><div class='del'>-</div><div class='del'>-Thu Nov 20 12:42:47 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: always check existence of the pthread library</div><div class='del'>-</div><div class='del'>-	* ruby.h: define macros for ruby's native thread check</div><div class='del'>-</div><div class='del'>-	* eval.c: add ruby's native thread check</div><div class='del'>-</div><div class='del'>-	* gc.c: ditto</div><div class='del'>-</div><div class='del'>-Wed Nov 19 14:45:18 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (to_ary): print more friendly warning message.</div><div class='del'>-</div><div class='del'>-Wed Nov 19 14:32:08 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_same?): add djgpp and wince.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cannot_overwrite_file?): add wince.</div><div class='del'>-</div><div class='del'>-Wed Nov 19 11:04:47 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (cannot_overwrite_file?, have_st_ino?): bccwin32</div><div class='del'>-	  is same as mswin32.</div><div class='del'>-</div><div class='del'>-Wed Nov 19 07:54:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: do not run tests if $! is set.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertionfailederror.rb: extend StandardError instead</div><div class='del'>-	  Exception (irb catches the former but not the latter).</div><div class='del'>-</div><div class='del'>-Tue Nov 18 23:31:36 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/memmove.c (memmove): take void *, not char *.</div><div class='del'>-</div><div class='del'>-	* missing.h (memmove): ditto.</div><div class='del'>-</div><div class='del'>-	* missing.h (strchr, strrchr): return char *, not int.</div><div class='del'>-</div><div class='del'>-Tue Nov 18 22:20:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_same?): temporal fix for windows.</div><div class='del'>-</div><div class='del'>-Tue Nov 18 19:05:04 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_same?): check by inode instead of path</div><div class='del'>-	  name, to detect two hard links pointing to the same content.</div><div class='del'>-</div><div class='del'>-	* test/fileutils.rb: did not create correctly looped symlinks.</div><div class='del'>-</div><div class='del'>-Tue Nov 18 18:23:05 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_read): behave as IO at empty string.</div><div class='del'>-	  [ruby-dev:21939], [ruby-dev:21941]</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_getc, strio_getline): set EOF flag.</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_rewind, strio_seek, strio_ungetc):</div><div class='del'>-	  clear EOF flag.</div><div class='del'>-</div><div class='del'>-	* test/stringio/test_stringio.rb: imported from [ruby-dev:21941].</div><div class='del'>-</div><div class='del'>-Tue Nov 18 14:06:35 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (fu_each_src_dest): raise if src==dest.</div><div class='del'>-	  [ruby-talk:85344] [ruby-core:01699]</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: use Object#is_a? instead of Class#=== to allow</div><div class='del'>-	  e.g. remote objects for receivers.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: FileTest -&gt; File.</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb: put parentheses for arguments of File.xxxx?</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_cp): test "cp a a".</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_mv): test "mv a a".</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_ln): test "ln a a".</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_ln_s): test "ln_s a a".</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb (test_install): test "install a a".</div><div class='del'>-</div><div class='del'>-	* test/fileutils/fileasserts.rb: new method assert_symlink.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/fileasserts.rb: assert_is_directory -&gt; assert_directory.</div><div class='del'>-</div><div class='del'>-Mon Nov 17 19:38:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (getcwdofdrv): avoid using getcwd() directly, use</div><div class='del'>-	  my_getcwd() instead.</div><div class='del'>-</div><div class='del'>-	* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine</div><div class='del'>-	  &lt;sunshine@sunshineco.com&gt;.  [ruby-core:01596]</div><div class='del'>-</div><div class='del'>-Mon Nov 17 10:50:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Completion::complete): allow least</div><div class='del'>-	  common completion for three or more candidates.</div><div class='del'>-</div><div class='del'>-Mon Nov 17 09:41:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/tk/testrunner.rb,</div><div class='del'>-	  lib/test/unit/ui/gtk/testrunner.rb:</div><div class='del'>-	  run GUI main loop in sub thread.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/gtk2/testrunner.rb: imported from rough.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb (keyword_display): sort keywords.</div><div class='del'>-</div><div class='del'>-Sun Nov 16 18:10:57 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): iterator should return value from next inside</div><div class='del'>-	  begin/rescue/end.  (ruby-bugs:PR#1218)</div><div class='del'>-</div><div class='del'>-Sun Nov 16 13:26:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): LINK check earlier than anything else,</div><div class='del'>-	  i.e. do not dump TYPE_IVAR for already dumped objects.</div><div class='del'>-	  (ruby-bugs:PR#1220)</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): call "inherited" only when a new class is</div><div class='del'>-	  generated; not on reopening.</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): prepend error position in evaluating string to</div><div class='del'>-	  "mesg" attribute string only when it's available and is a</div><div class='del'>-	  string.</div><div class='del'>-</div><div class='del'>-Sun Nov 16 12:16:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb: logging response body. [experimental]</div><div class='del'>-	  [ruby-list:38800]</div><div class='del'>-</div><div class='del'>-Sun Nov 16 10:49:38 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='del'>-</div><div class='del'>-	* lib/thread.rb (Thread.exclusive): wrap method definition in</div><div class='del'>-	  class Thread to enable rdoc to process.</div><div class='del'>-</div><div class='del'>-Sun Nov 16 09:45:23 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (set_debug_output): warn if method is called</div><div class='del'>-	  after #start.  [ruby-dev:38798]</div><div class='del'>-</div><div class='del'>-Sun Nov 16 04:41:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (eval): do not re-raise exception to avoid unnecessary</div><div class='del'>-	  exception copying, instead modify exception and internal</div><div class='del'>-	  information to adjust eval().</div><div class='del'>-</div><div class='del'>-	* eval.c (backtrace): can return the current frame information</div><div class='del'>-	  only if lev &lt; -1.</div><div class='del'>-</div><div class='del'>-Sat Nov 15 22:16:42 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* /ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext):</div><div class='del'>-	  refine error message.</div><div class='del'>-</div><div class='del'>-Sat Nov 15 10:05:40 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI.open_loop, OpenURI::HTTP#proxy_open):</div><div class='del'>-	  refactored to support options.</div><div class='del'>-	  (Buffer): maintain size by this class.</div><div class='del'>-</div><div class='del'>-Sat Nov 15 07:40:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_method_node): new API to retrieve method body.</div><div class='del'>-</div><div class='del'>-Fri Nov 14 13:21:30 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkdialog.rb: TkDialog.new accepts a parent widget</div><div class='del'>-	  argument [ruby-talk:85066]</div><div class='del'>-</div><div class='del'>-Thu Nov 13 20:53:35 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (Kernel[#.]open): hard coded URI schemes removed.</div><div class='del'>-	  [ruby-ext:02251]</div><div class='del'>-</div><div class='del'>-Thu Nov 13 19:17:00 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/tk/testrunner.rb: use grid and panedwindow</div><div class='del'>-	  (if available)</div><div class='del'>-</div><div class='del'>-Thu Nov 13 17:56:41 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (OpenURI.open_uri): use File::RDONLY.</div><div class='del'>-	  reported by Take_tk &lt;ggb03124@nifty.ne.jp&gt;.</div><div class='del'>-	  [ruby-ext:02245]</div><div class='del'>-</div><div class='del'>-Thu Nov 13 16:45:53 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509req.c (ossl_x509req_to_der): add function for</div><div class='del'>-	  X509::Request#to_der.</div><div class='del'>-</div><div class='del'>-Thu Nov 13 11:31:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Completion#complete): prior shorter</div><div class='del'>-	  name to containing longer name.</div><div class='del'>-</div><div class='del'>-Thu Nov 13 06:08:54 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: stop freezing some classes</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 17:32:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb (assert_throws, assert_nothing_thrown):</div><div class='del'>-	  uncaught throw in sub thread raises ThreadError.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/tk/testrunner.rb (setup_ui): "expand" is not</div><div class='del'>-	  necessary.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 14:09:43 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/monitor/test_monitor.rb: fix the timing problem by Queue.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 12:59:44 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/monitor/test_monitor.rb: added.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 10:14:28 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb: refactored. Thanks, Gennady Bystritsky.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 06:11:39 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_x509_sk2ary, ossl_x509crl_sk2ary):</div><div class='del'>-	  add functions to convert STACK into Array.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: add prototypes.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_set_certificates,</div><div class='del'>-	  ossl_pkcs7_get_certificates, ossl_pkcs7_get_crls,</div><div class='del'>-	  ossl_pkcs7_set_crls): add functions for PKCS7#certificates=</div><div class='del'>-	  PKCS7#certificates, PKCS7#crls= and PKCS7#crls.</div><div class='del'>-</div><div class='del'>-Wed Nov 12 00:47:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/testrunnermediator.rb: should require 'test/unit'.</div><div class='del'>-</div><div class='del'>-Tue Nov 11 23:54:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/gtk/testrunner.rb: added a rescue clause to handle</div><div class='del'>-	  the case when the requested font is not available.</div><div class='del'>-</div><div class='del'>-Tue Nov 11 22:44:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (appendline): file may not end with newline.  a bug if</div><div class='del'>-	  READ_DATA_PENDING_PTR is defined. [ruby-talk:84925]</div><div class='del'>-</div><div class='del'>-Tue Nov 11 10:42:41 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: raise an exception when creating TkWindow</div><div class='del'>-	  object, because TkWindow class is an abstract class.</div><div class='del'>-</div><div class='del'>-Tue Nov 11 03:30:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ext/openssl/ossl_conf.c (ossl_config_get_value): return nil</div><div class='del'>-	  if the specified value doesn't exist.</div><div class='del'>-</div><div class='del'>-	* lib/ext/openssl/ossl_conf.c (ossl_config_get_section): return</div><div class='del'>-	  a empty hash if the specified section doesn't exist.</div><div class='del'>-</div><div class='del'>-Mon Nov 10 11:40:29 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb (wait): return true on signal/broadcastfalse and</div><div class='del'>-	  false on timeout. Thanks Gennady Bystritsky.</div><div class='del'>-</div><div class='del'>-Mon Nov 10 00:07:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (primary): primary_value may be 0 when syntax error.</div><div class='del'>-	  [ruby-talk:84893]</div><div class='del'>-</div><div class='del'>-Sun Nov  9 02:05:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: un-deprecated #assert_not_nil to</div><div class='del'>-	  maintain symmetry with #assert_nil. Also added better output for</div><div class='del'>-	  #assert_kind_of.</div><div class='del'>-</div><div class='del'>-	* test/testunit/tc_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Nov  8 18:50:20 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/wsdl/raa/*: add new testcase for WSDL loading, parsing and</div><div class='del'>-	  reading.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/*: backport from soap4r/1.5.1.  all differences are</div><div class='del'>-	  for ruby/1.6.</div><div class='del'>-</div><div class='del'>-	* lib/soap/*: backport from soap4r/1.5.1.  all differences are for</div><div class='del'>-	  ruby/1.6.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/data.rb, lib/wsdl/xmlSchema/data.rb: move definition of</div><div class='del'>-	  ArrayTypeAttrName from ::WSDL::XMLSchema::* to ::WSDL::*.</div><div class='del'>-	  [ruby-talk:84813]</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/soap/definitions.rb: element name typo in custom exception</div><div class='del'>-	  struct definition which is needed for wsdlDriver; camelCase -&gt;</div><div class='del'>-	  underscore_name.</div><div class='del'>-</div><div class='del'>-Sat Nov  8 13:49:50 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: improvement of pthread check</div><div class='del'>-</div><div class='del'>-Sat Nov  8 13:28:46 2003  Takaaki Tateishi  &lt;ttate@ttsky.net&gt;</div><div class='del'>-	* ext/dl/sym.c: Add DL.win32_last_error and DL.last_error.</div><div class='del'>-	  Thanks, Kaoru Shirai.</div><div class='del'>-</div><div class='del'>-Sat Nov  8 06:19:38 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,</div><div class='del'>-	  TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only</div><div class='del'>-	  (queueing a handler to the EventQueue).</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/README.1st: edit the description of '--with-pthread-ext'</div><div class='del'>-</div><div class='del'>-Fri Nov  7 23:23:04 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (Pathname#+): if self or the argument is `.', return</div><div class='del'>-	  another.</div><div class='del'>-	  (Pathname#parent): if self is `.', return `..'.</div><div class='del'>-	  (Pathname#children): if self is `.', don't prepend self for a</div><div class='del'>-	  pathname in a result.</div><div class='del'>-	  (Pathname#join): re-implemented using Pathname#+.</div><div class='del'>-	  (Pathname#find): if self is `.', remove `./' prefix of yielding</div><div class='del'>-	  pathname.</div><div class='del'>-</div><div class='del'>-Fri Nov  7 10:23:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (make_hostent): get rid of SEGV on aliases</div><div class='del'>-	  lookup failure.  (ruby-bugs:PR#1215)</div><div class='del'>-</div><div class='del'>-Fri Nov  7 04:08:05 2003  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/zlib/zlib.c (Init_zlib): define Zlib::GzipReader#each_line as</div><div class='del'>-	  an alias of Zlib::GzipReader#each.</div><div class='del'>-</div><div class='del'>-Fri Nov  7 01:03:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load): save and restore rb_prohibit_interrupt.</div><div class='del'>-	  [ruby-dev:21857]</div><div class='del'>-</div><div class='del'>-Thu Nov  6 18:05:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_inspect): show the path also at a closed file.</div><div class='del'>-	  [ruby-dev:21851]</div><div class='del'>-</div><div class='del'>-Thu Nov  6 11:42:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_set_string, strio_reopen): check</div><div class='del'>-	  tainted.</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write,</div><div class='del'>-	  strio_putc): add infection.</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (strio_path): just nil.  [ruby-dev:21846]</div><div class='del'>-</div><div class='del'>-	* ruby.c (proc_options): reserve searched script path in the</div><div class='del'>-	  source file name table.  [ruby-list:38765]</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Completion#complete): default not to</div><div class='del'>-	  ignore case on completion.  [ruby-talk:84726]</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (make_cmdvector): process backslashes even if a quote</div><div class='del'>-	  is not enclosed.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 23:49:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/openssl/gen_csr.rb: there (at least) is a CA which does not</div><div class='del'>-	  accept DN in UTF8STRING format.  it's a sample.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 22:55:16 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, eval.c, signal.c: : add '--with-pthread-ext'</div><div class='del'>-	  option to fix the pthread trouble on 'tcltklib'</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/README.1st: add the description of '--with-pthread-ext'</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste</div><div class='del'>-	  to support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's</div><div class='del'>-	  tk_menuSetFocus</div><div class='del'>-</div><div class='del'>-Wed Nov  5 17:33:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load): allow interrupt during loaded program</div><div class='del'>-	  evaluation.  [ruby-dev:21834]</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_fetch): always warn if default argument and a</div><div class='del'>-	  block are supplied at the same time. [ruby-dev:21842]</div><div class='del'>-</div><div class='del'>-	* hash.c (env_fetch): ditto.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fetch): ditto.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 19:08:47 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser::Switch::PlacedArgument::parse):</div><div class='del'>-	  do not remove next argument if empty value is placed.</div><div class='del'>-</div><div class='del'>-	* test/optparse: added.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 17:05:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/gtk/testrunner.rb: typo.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 11:13:32 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c: add #include "version.h". this file still depends on it.</div><div class='del'>-</div><div class='del'>-	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,</div><div class='del'>-	  wince/Makefile.sub: add version.h dependency to string.c.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 09:14:23 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb: revert to the previous revision.</div><div class='del'>-</div><div class='del'>-Wed Nov  5 08:39:51 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb (HTTPRequest#parse): set @client_cert_chain.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb (HTTPRequest#meta_vars): create</div><div class='del'>-	  SSL_CLIENT_CERT_CHAIN_n from @client_cert_chain.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_get_peer_cert_chain): return nil</div><div class='del'>-	  if no cert-chain was given.</div><div class='del'>-</div><div class='del'>-Tue Nov  4 23:44:48 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:</div><div class='del'>-	  remove needless version.h dependency.</div><div class='del'>-</div><div class='del'>-Tue Nov  4 23:38:43 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* class.c, hash.c, string.c: remove #include "version.h".</div><div class='del'>-</div><div class='del'>-	* Makefile.in: remove needless version.h dependency.</div><div class='del'>-</div><div class='del'>-Tue Nov  4 06:54:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (read_all): fptr-&gt;f may be NULL, if IO is closed in the</div><div class='del'>-	  signal handler.</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): ditto.</div><div class='del'>-</div><div class='del'>-	* string.c (get_pat): remove 1.8.0 warning code.</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_match): extend warning until 1.8.2.</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_match2): ditto.</div><div class='del'>-</div><div class='del'>-	* class.c (class_instance_method_list): remove 1.8.0 warnings.</div><div class='del'>-	  method_list now recurs.  [ruby-dev:21816]</div><div class='del'>-</div><div class='del'>-	* class.c (rb_obj_singleton_methods): ditto.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_select): remove select with block.</div><div class='del'>-	  [ruby-dev:21824]</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_select): ditto.</div><div class='del'>-</div><div class='del'>-	* hash.c (env_select): ditto.</div><div class='del'>-</div><div class='del'>-	* re.c (match_select): ditto.</div><div class='del'>-</div><div class='del'>-	* struct.c (rb_struct_select): ditto.</div><div class='del'>-</div><div class='del'>-Mon Nov  3 22:53:21 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/racc/parser.rb: synchronize with Racc 1.4.4.</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/racc/cparse/cparse.c (parse_main): should abort when</div><div class='del'>-	  the length of LR state stack &lt;=1, not ==0.</div><div class='del'>-</div><div class='del'>-Mon Nov  3 08:50:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (check_uid_switch): remove duplicated error messages.</div><div class='del'>-</div><div class='del'>-	* process.c (check_gid_switch): ditto.</div><div class='del'>-</div><div class='del'>-Sun Nov  2 02:28:33 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/ssl.rb: new option :SSLExtraChainCert.</div><div class='del'>-</div><div class='del'>-Sun Nov  2 01:02:04 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_hash): Update the HASH_PERL alternative hash</div><div class='del'>-	  algorithm in sync with Perl 5.8.</div><div class='del'>-</div><div class='del'>-	* st.c (strhash): Ditto.</div><div class='del'>-</div><div class='del'>-Sat Nov  1 18:21:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method</div><div class='del'>-	  SSLSocket#peer_cert_chain.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509req.c (GetX509ReqPtr): new function</div><div class='del'>-	  which returns underlying X509_REQ.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_issuer_cert,</div><div class='del'>-	  ossl_x509extfactory_set_subject_cert, ossl_x509extfactory_set_crl,</div><div class='del'>-	  ossl_x509extfactory_set_subject_req, ossl_x509extfactory_set_config):</div><div class='del'>-	  use underlying C struct without duplication not to leak momory.</div><div class='del'>-</div><div class='del'>-Sat Nov  1 01:49:03 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/factory.rb: mark marshalled basetype objects when</div><div class='del'>-	  @allow_original_mapping is true.  multi-referencing basetype node is</div><div class='del'>-	  prohibited in SOAP/1.1 encoding but soap4r's original ruby object</div><div class='del'>-	  mapping requires basetype to be marked to detect self referencing</div><div class='del'>-	  loop.  e.g. o = 1; o.instance_eval { @iv = o }  soap4r's original</div><div class='del'>-	  mapping is only used through soap/marshal API.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/test_marshal.rb: add tests for self referencing</div><div class='del'>-	  immutable objects.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/test_calc_cgi.rb: fix test name.</div><div class='del'>-</div><div class='del'>-Fri Oct 31 22:26:29 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* wince/string_wce.c (strrchr): should decrement pointer.</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub: correct a range of isdigit().</div><div class='del'>-</div><div class='del'>-Fri Oct 31 12:55:24 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in, lib/mkmf.rb: add RPATHFLAG for NetBSD.</div><div class='del'>-	  [ruby-dev:21791]</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub, win32/Makefile.sub, win32/Makefile.sub: ditto.</div><div class='del'>-</div><div class='del'>-Fri Oct 31 01:38:14 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub, win32/Makefile.sub (.y.c): allow white spaces</div><div class='del'>-	  at the beginning of line to remove by sed. (ruby-bugs-ja:PR#580)</div><div class='del'>-</div><div class='del'>-Fri Oct 31 01:02:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* compar.c (cmp_equal): protect exceptions from &lt;=&gt; comparison</div><div class='del'>-	  again.  returns nil if any exception or error happened during</div><div class='del'>-	  comparison.</div><div class='del'>-</div><div class='del'>-	* eval.c (search_required): should update *featurep when DLEXT2 is</div><div class='del'>-	  defined. (ruby-bugs-ja:PR#581)</div><div class='del'>-</div><div class='del'>-Thu Oct 30 23:41:04 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: add DRbArray</div><div class='del'>-</div><div class='del'>-	* lib/drb/invokemethod.rb: fix Hash#each problem. [ruby-dev:21773]</div><div class='del'>-</div><div class='del'>-	* lib/drb/unix.rb: add LoadError. [ruby-dev:21743]</div><div class='del'>-</div><div class='del'>-Thu Oct 30 23:19:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/generator.rb: better XML pretty printing.</div><div class='del'>-</div><div class='del'>-	* lib/soap/encodingstyle/soapHandler.rb: remove unnecessary namespace</div><div class='del'>-	  assignment in the element which has "encodingStyle" attribute, and</div><div class='del'>-	  add necessary namespace assignment for "arrayType" attribute.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/test_calc_cgi.rb: take over $DEBUG to ruby process</div><div class='del'>-	  through CGI.</div><div class='del'>-</div><div class='del'>-Thu Oct 30 22:59:39 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/yaml2byte.c: HASH const too long.  Thanks, matz.</div><div class='del'>-</div><div class='del'>-Thu Oct 30 19:13:53 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/MANIFEST: Add yamlbyte.h.</div><div class='del'>-</div><div class='del'>-Thu Oct 30 14:25:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (READ_DATA_BUFFERED): new macro to detect whether stdio</div><div class='del'>-	  buffer filled.</div><div class='del'>-</div><div class='del'>-	* io.c (rb_io_fptr_cleanup): move path deallocation to</div><div class='del'>-	  rb_io_fptr_finalize (finalizer called by GC).</div><div class='del'>-</div><div class='del'>-Thu Oct 30 13:23:39 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (logop): left may be NULL. [ruby-talk:84539]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): NODE_CASE nd_head may be NULL.</div><div class='del'>-</div><div class='del'>-Thu Oct 30 10:14:51 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb: make fox runner work.</div><div class='del'>-</div><div class='del'>-Thu Oct 30 09:32:26 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (rb_f_system): fixed lack of security check before</div><div class='del'>-	  calling do_spawn() on win32. [ruby-talk:84555]</div><div class='del'>-</div><div class='del'>-Thu Oct 30 02:46:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): single array value to normal Proc#call</div><div class='del'>-	  (i.e. not via lambda call), should be treated just like yield.</div><div class='del'>-	  [ruby-dev:21726]</div><div class='del'>-</div><div class='del'>-Thu Oct 30 02:25:48 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb (Buffering#initialize):</div><div class='del'>-	  add new method to inherit @sync from @io.sync.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): no need to</div><div class='del'>-	  set sync flag explicitly.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): call super.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): set extra chain</div><div class='del'>-	  certificates in @extra_chain_cert.</div><div class='del'>-</div><div class='del'>-Wed Oct 29 22:02:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb: use rbconfig.rb to make the path of ruby</div><div class='del'>-	  interpreter to exec, instead of test/ruby/envutil.rb,</div><div class='del'>-</div><div class='del'>-Wed Oct 29 19:58:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is not</div><div class='del'>-	  defined and TCL_MAJOR_VERSION &gt;= 8.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc,</div><div class='del'>-	  rb_threadVwaitProc): use CONST84 instead of CONST.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand,</div><div class='del'>-	  ip_rb_threadTkWaitCommand): use CONST84 always.</div><div class='del'>-</div><div class='del'>-Wed Oct 29 17:27:05 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_reg_s_union, Init_Regexp): new method `Regexp.union'.</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (realpath): examine Dir.pwd because it may have</div><div class='del'>-	  symlinks.</div><div class='del'>-</div><div class='del'>-Wed Oct 29 17:16:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_longjmp): must not disturb original jump.</div><div class='del'>-	  [ruby-dev:21733]</div><div class='del'>-</div><div class='del'>-Wed Oct 29 15:28:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_Proc): taint preallocated exception object</div><div class='del'>-	  sysstack_error. [ruby-talk:84534]</div><div class='del'>-</div><div class='del'>-Wed Oct 29 11:27:39 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (ret_args): node may be NULL. [ruby-talk:84530]</div><div class='del'>-</div><div class='del'>-Tue Oct 28 15:20:12 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,</div><div class='del'>-	  WaitVariableProc, WaitVisibilityProc, WaitWindowProc,</div><div class='del'>-	  ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc,</div><div class='del'>-	  rb_threadWaitVisibilityProc, rb_threadWaitWindowProc,</div><div class='del'>-	  ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype;</div><div class='del'>-	  avoid VC++ warnings.</div><div class='del'>-</div><div class='del'>-Mon Oct 27 19:19:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_longjmp): ignore reentering error while warning.</div><div class='del'>-	  [ruby-dev:21730]</div><div class='del'>-</div><div class='del'>-Mon Oct 27 00:23:50 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_ruby): bug fix on Win : hang-up when</div><div class='del'>-	  calling 'exit' in the Tk callback procedure. [ruby-list:38656]</div><div class='del'>-</div><div class='del'>-Sat Oct 25 09:18:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_method_missing): protect exception from within</div><div class='del'>-	  "inspect".  (ruby-bugs:PR#1204)</div><div class='del'>-</div><div class='del'>-Fri Oct 24 23:26:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* hash.c (rb_hash_each): Hash#each should yield single value.</div><div class='del'>-	  [ruby-talk:84420]</div><div class='del'>-</div><div class='del'>-	* hash.c (env_each): ditto for ENV.each.</div><div class='del'>-</div><div class='del'>-Thu Oct 23 20:25:32 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='del'>-	  IOError from IO::accept. [ruby-dev:21692]</div><div class='del'>-</div><div class='del'>-Thu Oct 23 17:59:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): initialize stack bottom for embedding.</div><div class='del'>-	  [ruby-dev:21686]</div><div class='del'>-</div><div class='del'>-	* ext/dl/extconf.rb: move list of files to clean from DEPEND file,</div><div class='del'>-	  to get rid of macro redefinitions.</div><div class='del'>-</div><div class='del'>-Thu Oct 23 13:44:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y: integrate operations for stack_type.  [ruby-dev:21681]</div><div class='del'>-</div><div class='del'>-Thu Oct 23 00:41:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/*, test/soap/helloworld/*: set logging threshold</div><div class='del'>-	  to ERROR.</div><div class='del'>-</div><div class='del'>-Wed Oct 22 12:53:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='del'>-	  ignore tests which raised LoadError.</div><div class='del'>-</div><div class='del'>-	* test/drb/drbtest.rb, test/ruby/test_beginendblock.rb,</div><div class='del'>-	  test/ruby/test_system.rb: avoid requiring same file twice.</div><div class='del'>-</div><div class='del'>-	* test/drb/test_drbssl.rb, test/drb/test_drbunix.rb: should not use</div><div class='del'>-	  ARGV unless invoked directly.  do not create test cases unless</div><div class='del'>-	  required libraries are available.</div><div class='del'>-</div><div class='del'>-Wed Oct 22 02:31:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): should not ignore exit_value in END</div><div class='del'>-	  execution. [ruby-dev:21670]</div><div class='del'>-</div><div class='del'>-Tue Oct 21 23:16:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): call finalizers and exit procs before</div><div class='del'>-	  terminating threads.</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().</div><div class='del'>-</div><div class='del'>-Tue Oct 21 15:57:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='del'>-	  prepend the directory of target file to the load path.</div><div class='del'>-</div><div class='del'>-Tue Oct 21 15:08:53 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (do_spawn, do_aspawn): should wait child process even</div><div class='del'>-	  if callded with P_OVERLAY.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (do_spawn, do_aspawn): should return child's exit</div><div class='del'>-	  status to parent.</div><div class='del'>-</div><div class='del'>-Tue Oct 21 00:35:02 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/*, test/soap/helloworld/*: catch the exception from</div><div class='del'>-	  test server thread and recover.</div><div class='del'>-</div><div class='del'>-Tue Oct 21 00:22:57 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* test/drb/*: import drb/runit.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 23:55:47 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): set current node after arguments evaluation.</div><div class='del'>-	  [ruby-dev:21632]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): set current node and keep it at local jump.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 22:01:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_cleanup): keep thread group for main thread.</div><div class='del'>-	  [ruby-dev:21644]</div><div class='del'>-</div><div class='del'>-Mon Oct 20 18:28:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_catch): backout.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 17:31:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()</div><div class='del'>-	  destination.</div><div class='del'>-</div><div class='del'>-	* eval.c (localjump_destination): use unique number in ruby_frame</div><div class='del'>-	  for localjump destination.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 11:31:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_signal.rb (test_signal): restore old trap.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 11:00:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_sweep): loosen page free condition to avoid add_heap()</div><div class='del'>-	  race condition. [ruby-dev:21633]</div><div class='del'>-</div><div class='del'>-	* gc.c (gc_sweep): do not update malloc_limit when malloc_increase</div><div class='del'>-	  is smaller than malloc_limit.</div><div class='del'>-</div><div class='del'>-Mon Oct 20 09:45:12 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb (debug_command): remove debug print.</div><div class='del'>-</div><div class='del'>-Wed Oct 20 00:25:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (search_required): required name must not be changed before</div><div class='del'>-	  loading.  [ruby-dev:24492]</div><div class='del'>-</div><div class='del'>-Sun Oct 19 13:12:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (foreachline, dir_foreach): add obsolete warning.</div><div class='del'>-</div><div class='del'>-Sun Oct 19 00:14:22 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/*, test/soap/helloworkd/*: changed port# of test</div><div class='del'>-	  server. (17171)</div><div class='del'>-</div><div class='del'>-Sat Oct 18 23:01:32 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* missing/acosh.c (DBL_MANT_DIG): typo fix(ifdef -&gt; ifndef).</div><div class='del'>-</div><div class='del'>-Sat Oct 18 05:48:59 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: YAML::Syck::compile method.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c: Buffer edge bug.</div><div class='del'>-</div><div class='del'>-	* ext/syck/yaml2byte.c: YAML to bytecode converter.</div><div class='del'>-</div><div class='del'>-	* ext/syck/yamlbyte.h: Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/bytecode.c: Bytecode parser fixes to empty collections</div><div class='del'>-	  and empty strings.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: Ditto.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 23:07:38 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/enumerator.c, ext/enumerator/enumerator.txt:</div><div class='del'>-	  Provide Kernel#to_enum as an alias for Kernel#enum_for.  Maybe</div><div class='del'>-	  this is a better name.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 23:00:30 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/generator.rb: Add rdoc documentation.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 22:16:42 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/set.rb: Reword and fix Overview.</div><div class='del'>-</div><div class='del'>-	* lib/set.rb: It is not necessary to require</div><div class='del'>-	  'test/unit/ui/console/testrunner'.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 11:15:22 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_range.rb: added.</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add test/ruby/test_range.rb.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 03:21:23 2003  William Sobel  &lt;will.sobel@barra.com&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (make_hostent): h_aliases may be NULL.</div><div class='del'>-	  (ruby-bugs:PR#1195)</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_gethostbyaddr): ditto.</div><div class='del'>-</div><div class='del'>-Fri Oct 17 00:12:41 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: (bug fix) instance variable @frame was used</div><div class='del'>-	  without initializing on TkComposite module.</div><div class='del'>-</div><div class='del'>-Thu Oct 16 23:51:04 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: If $DEBUG == true and some exception is caused</div><div class='del'>-	  in a callback operation, Ruby/Tk shows a (verbose) backtrace</div><div class='del'>-	  information on the callback process.</div><div class='del'>-</div><div class='del'>-Thu Oct 16 17:09:19 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb (DEBUGGER__::Context::debug_command): do not call</div><div class='del'>-	  debug_silent_eval() when $1 is not set. (ruby-bugs:PR#1194)</div><div class='del'>-</div><div class='del'>-Thu Oct 16 16:54:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_upto): ("a"..."a").to_a should return [].</div><div class='del'>-	  [ruby-core:01634]</div><div class='del'>-</div><div class='del'>-Thu Oct 16 16:40:51 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb:</div><div class='del'>-	  Add Tk::EncodedString and Tk::UTF8_String class to support</div><div class='del'>-	  characters using the \uXXXX escape to the UNICODE string.</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/{demos-en,demos-jp}/unicodeout.rb</div><div class='del'>-	  new demo-scripts (samples of Tk::UTF8_String)</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/{demos-en,demos-jp}/widget</div><div class='del'>-	  add entries for 'unicodeout.rb'</div><div class='del'>-</div><div class='del'>-Thu Oct 16 08:38:06 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/digest/test_digest.rb (test_eq): show failed class.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb (test_break, test_return_trace_func):</div><div class='del'>-	  test localjump destination.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 20:22:31 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: use URI::HTTP#request_uri instead of</div><div class='del'>-	  instance_eval('path_query').  [ruby-list:38575]</div><div class='del'>-</div><div class='del'>-Wed Oct 15 17:24:45 2003  URABE Shyouhei  &lt;root@mput.dip.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/cgi.rb (CGI::Cookie): tiny typo fix.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 15:00:54 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_run): just return FAILURE instead of parse error</div><div class='del'>-	  count.  [ruby-list:38569]</div><div class='del'>-</div><div class='del'>-Wed Oct 15 13:17:02 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (rb_digest_base_alloc): need to initialize</div><div class='del'>-	  buffer. [ruby-dev:21622]</div><div class='del'>-</div><div class='del'>-Wed Oct 15 11:23:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): dump extended modules as well.</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0): TYPE_USRMARSHAL should restore extended</div><div class='del'>-	  modules before invoking marshal_load.  these two fixes are done</div><div class='del'>-	  by Masatoshi Seki &lt;m_seki@mva.biglobe.ne.jp&gt;.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 09:30:34 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/enumerator/enumerator.c (enumerator_each): avoid VC++ warning.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: include stdio.h for definition of FILE.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 08:09:07 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/bytecode.c: Checkin of YAML bytecode support.</div><div class='del'>-</div><div class='del'>-	* ext/syck/gram.c: Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.c: Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/handler.c: Ditto.</div><div class='del'>-</div><div class='del'>-	* ext/syck/handler.c: Now using 'tag' rather than 'taguri' in type URIs.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: Ditto (on both counts).</div><div class='del'>-</div><div class='del'>-Wed Oct 15 05:05:53 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/generator.rb: A new library which converts an internal</div><div class='del'>-	  iterator to an external iterator.</div><div class='del'>-</div><div class='del'>-	* lib/abbrev.rb: A new library which creates an abbreviation table</div><div class='del'>-	  from a list.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 04:31:51 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/entry3.rb, ext/tk/sample/demos-jp/entry3.rb :</div><div class='del'>-	  new demo-scripts</div><div class='del'>-</div><div class='del'>-	* ext/tk/sample/demos-en/widget, ext/tk/sample/demos-jp/widget :</div><div class='del'>-	  add entries for 'entry3.rb'</div><div class='del'>-</div><div class='del'>-Wed Oct 15 04:31:47 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/digest/test_digest.rb: Moved from ext/digest/test.rb.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 03:53:20 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: fixed trouble on auto-load Tcl commands (enbug</div><div class='del'>-	  on the last commit).</div><div class='del'>-</div><div class='del'>-Wed Oct 15 00:25:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (yylex): argument parentheses preceded by spaces should</div><div class='del'>-	  be warned; not error.  [ruby-talk:84103]</div><div class='del'>-</div><div class='del'>-Wed Oct 15 00:20:15 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: replace Tcl/Tk's vwait and tkwait to</div><div class='del'>-	  switch on threads smoothly and avoid seg-fault.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c: add TclTkIp._thread_vwait and</div><div class='del'>-	  _thread_tkwait for waiting on a thread. (Because Tcl/Tk's vwait</div><div class='del'>-	  and tkwait command wait on an eventloop.)</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: support TclTkIp._thread_vwait and</div><div class='del'>-	  _thread_tkwait.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: now, TkVariable#wait has 2 arguments.</div><div class='del'>-	  If 1st argument is true, waits on a thread. If false, waits on</div><div class='del'>-	  an eventloop. If 2nd argument is true, checks existence of</div><div class='del'>-	  rootwidgets. If false, doesn't. Default is wait(true, false).</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: add TkVariable#tkwait(arg) which is equal to</div><div class='del'>-	  TkVariable#wait(arg, true). wait_visibility and wait_destroy</div><div class='del'>-	  have an argument for waiting on a thread or an eventloop.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: improve of accessing Tcl/Tk's special variables.</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkafter.rb: support 'wait on a thread' and 'wait on</div><div class='del'>-	  an eventloop'.</div><div class='del'>-</div><div class='del'>-Wed Oct 15 00:10:24 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of</div><div class='del'>-	  SOAPBasetype and SOAPCompoundtype.</div><div class='del'>-</div><div class='del'>-	* lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:</div><div class='del'>-	  Encoding methods signature change.  Pass SOAPGenerator as a parameter.</div><div class='del'>-</div><div class='del'>-	* lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring</div><div class='del'>-	  for better marshalling/unmarshalling support.  Now I think SOAP</div><div class='del'>-	  marshaller supports all kind of object graph which is supported by</div><div class='del'>-	  Ruby's original marshaller.  Of course there could be bugs as always.</div><div class='del'>-	  Find it.  :-)</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO.</div><div class='del'>-	  DEBUG is too noisy.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb: DateTime#of is obsoleted.  Use DateTime#offset.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid</div><div class='del'>-	  useless warning.</div><div class='del'>-</div><div class='del'>-Tue Oct 14 19:09:35 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (ruby_finalize_0): return the given exit status unless</div><div class='del'>-	  SystemExit got raised.</div><div class='del'>-</div><div class='del'>-Tue Oct 14 11:53:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h (ruby_stop): never return.</div><div class='del'>-</div><div class='del'>-	* ruby.h (ruby_run): ditto.</div><div class='del'>-</div><div class='del'>-Tue Oct 14 04:43:55 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (realpath): make ELOOP check bit more robust.</div><div class='del'>-	  (children): prepend self by default.</div><div class='del'>-	  (chroot): obsoleted.</div><div class='del'>-</div><div class='del'>-Tue Oct 14 02:29:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_require_safe): segfault after loading .so.</div><div class='del'>-</div><div class='del'>-Tue Oct 14 02:05:23 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Setup*, ext/enumerator/*: Add ext/enumerator, a helper</div><div class='del'>-	  module for the Enumerable interface.</div><div class='del'>-</div><div class='del'>-Mon Oct 13 23:55:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/envutil.rb: use Config::CONFIG["ruby_install_name"],</div><div class='del'>-	  not "ruby".</div><div class='del'>-</div><div class='del'>-Mon Oct 13 23:57:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_feature_p): match by classified suffix.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_require_safe): require library in the specified safe</div><div class='del'>-	  level.</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_autoload, rb_autoload_load): restore safe level</div><div class='del'>-	  when autoload was called.  [ruby-dev:21338]</div><div class='del'>-</div><div class='del'>-	* intern.h: prototypes; rb_require_safe.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: accept non-option arguments.</div><div class='del'>-</div><div class='del'>-Mon Oct 13 20:49:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_new4): should not preserve FL_TAINT status in the</div><div class='del'>-	  internal shared string. [ruby-dev:21601]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_new4): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.</div><div class='del'>-</div><div class='del'>-	* process.c: ditto. [ruby-list:38521]</div><div class='del'>-</div><div class='del'>-Mon Oct 13 19:51:02 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb (debug_command): should enter emacs mode when</div><div class='del'>-	  assigned any value to the environment variable "EMACS".</div><div class='del'>-	  On Meadow, (getenv "EMACS") is "meadow".</div><div class='del'>-</div><div class='del'>-Sun Oct 12 14:45:03 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/extconf.rb: check "windows.h", not "windows".</div><div class='del'>-	  [ruby-talk:84051]</div><div class='del'>-</div><div class='del'>-Sat Oct 11 20:41:03 2003  Corinna Vinschen  &lt;corinna@vinschen.de&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (eaccess): Use access(2) on Cygwin.</div><div class='del'>-</div><div class='del'>-Sat Oct 11 17:09:21 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rexml/quickpath.rb (REXML::QuickPath::match):</div><div class='del'>-	  escape '[' to avoid warning.</div><div class='del'>-</div><div class='del'>-Sat Oct 11 16:08:41 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (realpath): check existence of the file.</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (realpath): re-implemented.</div><div class='del'>-	  (realpath_root?, realpath_rec): removed</div><div class='del'>-</div><div class='del'>-Sat Oct 11 10:19:39 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/monitor.rb: handle exceptions correctly. Thanks, Gennady</div><div class='del'>-	  Bystritsky.</div><div class='del'>-</div><div class='del'>-Fri Oct 10 07:50:54 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (is_defined): inheritance line adjustment as like as</div><div class='del'>-	  rb_call_super().</div><div class='del'>-</div><div class='del'>-Fri Oct 10 01:19:00 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): add</div><div class='del'>-	  optional argument to specify the DirectoryString type</div><div class='del'>-	  (ASN1::UTF8STRING by default). RFC3280 deprecates PrintableString</div><div class='del'>-	  for DirectoryString, and strongly requires to use UTF8String for</div><div class='del'>-	  all certificates issued after December, 31 2003.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.rb (X509::Name::parse): ditto.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 23:50:21 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): prevent thread from GC.</div><div class='del'>-	  [ruby-dev:21572]</div><div class='del'>-</div><div class='del'>-Thu Oct  9 19:11:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): non-volatile should be restored from</div><div class='del'>-	  volatile.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 17:43:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_save_safe_level, proc_get_safe_level,</div><div class='del'>-	  proc_set_safe_level): save/restore safe level 1..4.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 16:33:23 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0): remove unnecessary iv restoration for</div><div class='del'>-	  USRMARSHAL. [ruby-dev:21582]</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): dump generic instance variables from</div><div class='del'>-	  a string from '_dump'.</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_generic_ivar_table): return 0 if obj's FL_EXIVAR</div><div class='del'>-	  is not set.</div><div class='del'>-</div><div class='del'>-	* time.c (time_dump): copy instance variables to dumped string, to</div><div class='del'>-	  be included in the marshaled data.</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big2ulong): add range check to ensure round trip.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 15:45:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* pack.c (uv_to_utf8): change message to "out of range", since</div><div class='del'>-	  negative values are not "too big". [ruby-dev:21567]</div><div class='del'>-</div><div class='del'>-Thu Oct  9 14:05:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_set_end_proc, rb_exec_end_proc): restore safe level.</div><div class='del'>-	  [ruby-dev:21557]</div><div class='del'>-</div><div class='del'>-Thu Oct  9 10:51:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): no error if block is empty.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 06:43:33 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (localjump_error): id should be ID.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): nd_rval is set in copy_node_scope().</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): unused variable.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): nothing to do for empty node.</div><div class='del'>-</div><div class='del'>-	* eval.c (call_end_proc, proc_invoke): adjust backtrace in END.</div><div class='del'>-	  [ruby-dev:21551]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): set the value by break as the result.</div><div class='del'>-	  [ruby-dev:21552]</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0, rb_thread_raise, rb_callcc): save</div><div class='del'>-	  variables across THREAD_SAVE_CONTEXT.</div><div class='del'>-</div><div class='del'>-Thu Oct  9 12:05:46 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: revived NextStep, OpenStep, and Rhapsody ports which</div><div class='del'>-	  had become unbuildable; enhanced --enable-fat-binary option so that</div><div class='del'>-	  it accepts a list of desired architectures (rather than assuming a</div><div class='del'>-	  fixed list), or defaults to a platform-appropriate list if user does</div><div class='del'>-	  not provide an explicit list; made the default list of architectures</div><div class='del'>-	  for MAB (fat binary) more comprehensive; now uses -fno-common even</div><div class='del'>-	  when building the interpreter (in addition to using it for</div><div class='del'>-	  extensions), thus allowing the interpreter to be embedded into a</div><div class='del'>-	  plugin module of an external project (in addition to allowing</div><div class='del'>-	  embedding directly into an application); added checks for</div><div class='del'>-	  &lt;netinet/in_systm.h&gt; (needed by `socket' extension) and getcwd(); now</div><div class='del'>-	  ensures that -I/usr/local/include is employed when extensions'</div><div class='del'>-	  extconf.rb scripts invoke have_header() since extension checks on</div><div class='del'>-	  NextStep and OpenStep will fail without it if the desired resource</div><div class='del'>-	  resides in the /usr/local tree; fixed formatting of --help message.</div><div class='del'>-</div><div class='del'>-	* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before</div><div class='del'>-	  invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives</div><div class='del'>-	  (see configure's --enable-fat-binary option); added rule for new</div><div class='del'>-	  missing/getcwd.c.</div><div class='del'>-</div><div class='del'>-	* defines.h: fixed endian handling during MAB build (see configure's</div><div class='del'>-	  --enable-fat-binary option) to ensure that all portions of the</div><div class='del'>-	  project see the correct WORDS_BIGENDIAN value (some extension modules</div><div class='del'>-	  were getting the wrong endian setting); added missing constants</div><div class='del'>-	  GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep</div><div class='del'>-	  and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H</div><div class='del'>-	  define in NeXT section.</div><div class='del'>-</div><div class='del'>-	* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on</div><div class='del'>-	  NextStep since, on some installations, this value always resolves</div><div class='del'>-	  uselessly to zero.</div><div class='del'>-</div><div class='del'>-	* dln.c: added error reporting to NextStep extension loader since the</div><div class='del'>-	  previous behavior of failing silently was not useful; now ensures</div><div class='del'>-	  that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined</div><div class='del'>-	  for OpenStep and Rhapsody; no longer includes &lt;mach-o/dyld.h&gt; twice</div><div class='del'>-	  on Rhapsody since this header lacks multiple-include protection,</div><div class='del'>-	  which resulted in "redefinition" compilation errors.</div><div class='del'>-</div><div class='del'>-	* main.c: also create hard reference to objc_msgSend() on NeXT</div><div class='del'>-	  platforms (in addition to Apple platforms).</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb: now exports XCFLAGS from configure script to extension</div><div class='del'>-	  makefiles so that extensions can be built MAB (see configure's</div><div class='del'>-	  --enable-fat-binary option); also utilize XCFLAGS in cc_command()</div><div class='del'>-	  (but not cpp_command() because MAB flags are incompatible with</div><div class='del'>-	  direct invocation of `cpp').</div><div class='del'>-</div><div class='del'>-	* ext/curses/extconf.rb: now additionally checks for presence of these</div><div class='del'>-	  curses functions which are not present on NextStep or Openstep:</div><div class='del'>-	  bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),</div><div class='del'>-	  setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),</div><div class='del'>-	  wscrl(), wsetscrreg()</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c: added appropriate #ifdef's for additional set of</div><div class='del'>-	  curses functions now checked by extconf.rb; fixed curses_bkgd() and</div><div class='del'>-	  window_bkgd() to correctly return boolean result rather than numeric</div><div class='del'>-	  result; fixed window_getbkgd() to correctly signal an error by</div><div class='del'>-	  returning nil rather than -1.</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c: setup_passwd() and setup_group() now check for null</div><div class='del'>-	  pointers before invoking rb_tainted_str_new2() upon fields extracted</div><div class='del'>-	  from `struct passwd' and `struct group' since null pointers in some</div><div class='del'>-	  fields are common on NextStep/OpenStep (especially so for the</div><div class='del'>-	  `pw_comment' field) and rb_tainted_str_new2() throws an exception</div><div class='del'>-	  when it receives a null pointer.</div><div class='del'>-</div><div class='del'>-	* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='del'>-	  platforms such as NextStep and OpenStep which lack strdup().</div><div class='del'>-</div><div class='del'>-	* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),</div><div class='del'>-	  gethostbyaddr(), and gethostbyname() from (const char*) to non-const</div><div class='del'>-	  (char*) for older platforms such as NextStep and OpenStep.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='del'>-	  platforms such as NextStep and OpenStep which lack strdup(); include</div><div class='del'>-	  &lt;netinet/in_systm.h&gt; if present for NextStep and OpenStep; cast first</div><div class='del'>-	  argument of gethostbyaddr() and getservbyname() from (const char*) to</div><div class='del'>-	  non-const (char*) for older platforms.</div><div class='del'>-</div><div class='del'>-	* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='del'>-	  platforms such as NextStep and OpenStep which lack strdup().</div><div class='del'>-</div><div class='del'>-Wed Oct  8 22:19:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: removed installation instructions.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/testrunnermediator.rb: moved the run flag to a more</div><div class='del'>-	  central location.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: extracted the running code in to AutoRunner.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/autorunner.rb: added.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/objectspace.rb: extracted common test</div><div class='del'>-	  collection functionality in to a module.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector.rb: ditto; added.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/dir.rb: added. Supports collecting tests out</div><div class='del'>-	  of a directory structure.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_dir.rb: added.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: simplified to use the new capabilities.</div><div class='del'>-</div><div class='del'>-Tue Oct  7 15:23:09 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb: add tests for nested BEGIN/END.</div><div class='del'>-</div><div class='del'>-	* test/ruby/beginmainend.rb: add tests for nested BEGIN/END.</div><div class='del'>-</div><div class='del'>-	* test/ruby/endblockwarn.rb: new file added to test of END-in-method</div><div class='del'>-	  warning.</div><div class='del'>-</div><div class='del'>-Tue Oct  7 12:23:47 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/fcntl/fcntl.c (Init_fcntl): define Fcntl::O_ACCMODE.</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: useless assignment removed.</div><div class='del'>-</div><div class='del'>-Tue Oct  7 09:13:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb (test_endinmethod): END{} is now</div><div class='del'>-	  allowed in eval.</div><div class='del'>-</div><div class='del'>-Tue Oct  7 04:15:25 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt): should not expand mrhs if lhs is solely starred.</div><div class='del'>-</div><div class='del'>-Tue Oct  7 02:57:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt): rhs of multiple assignment should not be</div><div class='del'>-	  expanded using "to_a". [ruby-dev:21527]</div><div class='del'>-</div><div class='del'>-Tue Oct  7 01:42:34 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): use appropriate</div><div class='del'>-	  free function for ASN1_OBJECT.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_sn): add new function for</div><div class='del'>-	  ASN1::ObjectId#sn; it returns short name text representation of OID.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_ln): add new function for</div><div class='del'>-	  ASN1::ObjectId#ln; it returns long name text representation of OID.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_oid): add new function for</div><div class='del'>-	  ASN1::ObjectId#oid; it returns numerical representation of OID.</div><div class='del'>-</div><div class='del'>-Mon Oct  6 22:59:46 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb (IOReader, BasicWriter): call binmode when a given IO</div><div class='del'>-	  respond_to?(:binmode).  record separator was wrong when you gave</div><div class='del'>-	  text mode IO to Reader.parse and Writer.generate.</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: add tests for above change.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 23:27:09 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: check recvmsg even if sendmsg is exists.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (thread_read_select): restored.</div><div class='del'>-</div><div class='del'>-Mon Oct  6 16:23:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): wrong method name in the message.</div><div class='del'>-</div><div class='del'>-Mon Oct  6 16:02:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (stmt): END in method should cause warning.</div><div class='del'>-	  [ruby-dev:21519]</div><div class='del'>-</div><div class='del'>-Mon Oct  6 15:17:23 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb (test_block_argument_without_paren):</div><div class='del'>-	  added. (follows sample/test.rb)</div><div class='del'>-</div><div class='del'>-Mon Oct  6 11:57:06 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: added</div><div class='del'>-	  test for eval-ed BEGIN END order.</div><div class='del'>-</div><div class='del'>-Mon Oct  6 09:19:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): should pass "weak" value to next level.</div><div class='del'>-	  [ruby-dev:21496]</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_alloc): should not use cached object if klass is</div><div class='del'>-	  different. [ruby-talk:83685]</div><div class='del'>-</div><div class='del'>-Sun Oct  5 23:27:09 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb: version information is added in document.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 23:07:03 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_END): block should be given.  [ruby-dev:21497]</div><div class='del'>-</div><div class='del'>-Sun Oct  5 22:51:23 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ext/openssl/extconf.rb: add check for some engine functions</div><div class='del'>-	  unavailable in OpenSSL-0.9.6.</div><div class='del'>-</div><div class='del'>-	* lib/ext/openssl/ossl_engine.c: ditto.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 17:56:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): fix evaluation order.  [ruby-list:38431]</div><div class='del'>-</div><div class='del'>-Sun Oct  5 15:05:06 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/uri/*: translated RUNIT to Test::Unit.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 14:37:39 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb: Rational -&gt; Decimal string bug fix.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/test_marshal.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/test_calc_cgi.rb: add Config::CONFIG["EXEEXT"] to</div><div class='del'>-	  RUBYBIN.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 13:47:22 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: add tests</div><div class='del'>-	  about scope, order and allowed syntax.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 11:54:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/envutil.rb: added.  split "rubybin" from test_system.rb.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_system.rb: use envutil.rb</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_beginendblock.rb: added.</div><div class='del'>-</div><div class='del'>-	* test/ruby/beginmainend.rb: added.  used in test_beginendblock.rb.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 11:23:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/testunit/runit/test_testresult.rb: removed some unnecessary</div><div class='del'>-	  cruft.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 11:14:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/rubyunit.rb: aliasing TestCase into the top level is</div><div class='del'>-	  problematic.</div><div class='del'>-</div><div class='del'>-	* lib/runit/assert.rb: fixed a couple of bugs caused by recent</div><div class='del'>-	  refactoring in Test::Unit.</div><div class='del'>-</div><div class='del'>-	* test/testunit/runit/*: added.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 10:55:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/open-uri.rb (URI::Generic#find_proxy): no_proxy support did not</div><div class='del'>-	  work.  [ruby-dev:21484]</div><div class='del'>-</div><div class='del'>-Sun Oct  5 09:52:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: will use pp for output if available.</div><div class='del'>-	  Can be disabled by setting Assertions.use_pp = false.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: made a small change to exception</div><div class='del'>-	  formatting.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 07:42:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: made small improvements to assertion</div><div class='del'>-	  messages. Deprecated Assertions#assert_not_nil; use #assert instead.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/testunit/util/test_procwrapper.rb: use #assert instead of</div><div class='del'>-	  #assert_not_nil.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 04:10:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: refactored message building.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 03:40:22 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.h: global symbols should be declared</div><div class='del'>-	  as external.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 03:03:20 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_exception.rb (test_else): added.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 02:12:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: changed assertion messages to rely more</div><div class='del'>-	  heavily on #inspect. Added backtrace filtering for exceptions in</div><div class='del'>-	  assertion messages.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sun Oct  5 02:12:00 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* lib/drb/acl.rb, lib/drb/ssl.rb: added.</div><div class='del'>-</div><div class='del'>-	* lib/drb/drb.rb: exit from a thread using 'break'.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 21:49:14 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): the type of space is changed to unsigned int</div><div class='del'>-	  from double.  [ruby-dev:21483]</div><div class='del'>-</div><div class='del'>-Sat Oct  4 17:52:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/netHttpClient.rb: follow http-access2.  hosts which matches</div><div class='del'>-	  ENV['no_proxy'] or ENV['NO_PROXY'] are not proxyed.</div><div class='del'>-	  - [,:] separated. ("ruby-lang.org:rubyist.net")</div><div class='del'>-	  - no regexp. (give "ruby-lang.org", not "*.ruby-lang.org")</div><div class='del'>-	  - if you want specify host by IP address, give full address.</div><div class='del'>-	    ("192.168.1.1, 192.168.1.2")</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/cgistub.rb: return "Status: XXX MMM" line.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: give testsuite name.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 15:16:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): instance variable dump do not cause error</div><div class='del'>-	  for objects that cannot be dumped, if they traversed from</div><div class='del'>-	  marshal_dump.  they are just ignored.</div><div class='del'>-</div><div class='del'>-	* gc.c (Init_stack): cast "space" (doble value) into unsigned</div><div class='del'>-	  int.  should run on PowerPC.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): should not execute else part if any exception</div><div class='del'>-	  is caught. [ruby-dev:21482]</div><div class='del'>-</div><div class='del'>-	* parse.y (f_args): should allow unparenthesized block argument.</div><div class='del'>-</div><div class='del'>-	* parse.y (f_rest_arg): should allow unparenthesized rest</div><div class='del'>-	  argument.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 14:59:51 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (initialize): raise ArgumentError if argument has</div><div class='del'>-	  '\0' character.</div><div class='del'>-	  (relative_path_from): new method.</div><div class='del'>-	  (each_entry): new method for replacement of dir_foreach.</div><div class='del'>-	  (foreach, foreachline, dir_foreach, chdir): obsoleted.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 12:58:48 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/uri/* (6 files): added.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 12:44:45 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/uri/ftp.rb, lib/uri/mailto.rb: renamed to #to_s from #to_str.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 07:33:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testsuite.rb: changed #&lt;&lt; to return self, and added</div><div class='del'>-	  #delete.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_testsuite.rb: ditto. Also slightly refactored</div><div class='del'>-	  #test_size.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/objectspace.rb: collector now preserves the</div><div class='del'>-	  hierarchy of suites.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 04:48:49 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: default keys handled.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: lowered default buffer size to 16k for increased</div><div class='del'>-	  performance.</div><div class='del'>-</div><div class='del'>-	* test/yaml: checkin of basic unit tests.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 04:24:19 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: add check for X509V3_set_nconf.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):</div><div class='del'>-	  cannot implement if X509V3_set_nconf doesn't exist.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 02:12:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb: dump sign by itself.  under the problematic</div><div class='del'>-	  platform, sprintf("%+.10g", -0.0) =&gt; +0.  sigh.</div><div class='del'>-</div><div class='del'>-	* sample/wsdl/amazon/*: update schema ver2 to ver3.</div><div class='del'>-</div><div class='del'>-Sat Oct  4 01:33:46 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb (initialize): duplicate and freeze argument.</div><div class='del'>-	  (to_s): return duplicated string.</div><div class='del'>-	  (children): new method.</div><div class='del'>-	  (each_line): new alias to foreachline.</div><div class='del'>-</div><div class='del'>-Fri Oct  3 16:13:19 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.c: add DER encoder and decoder.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.h: add OpenSSL::ASN1 module.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (Init_openssl): call Init_ossl_asn1.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: check if X509_ATTRIBUTE has field "single".</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): accept</div><div class='del'>-	  DER encoded data argument.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509attr.c (ossl_x509attr_get_value): return</div><div class='del'>-	  DER encoded data in OpenSSL::ASN1 types.</div><div class='del'>-</div><div class='del'>-Fri Oct  3 13:02:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: refactored to use optparse.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: added support for selecting the output</div><div class='del'>-	  level from the command-line.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: added a command-line switch to stop processing</div><div class='del'>-	  the command-line, allowing arguments to be passed to tests.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: changed the method for specifying a runner or a</div><div class='del'>-	  filter from the command-line.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/objectspace.rb: fixed a bug causing all</div><div class='del'>-	  tests to be excluded when the filter was set to an empty array.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='del'>-</div><div class='del'>-Fri Oct  3 08:14:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support</div><div class='del'>-	  'class ::Foo' syntax. [ruby-talk:83514]</div><div class='del'>-</div><div class='del'>-Fri Oct  3 08:01:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: added a default message for #assert,</div><div class='del'>-	  #assert_block, and #flunk.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/failure.rb: failures now show a better trace of where</div><div class='del'>-	  they occurred.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_failure.rb: ditto (added).</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_testcase.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/util/backtracefilter.rb: added.</div><div class='del'>-</div><div class='del'>-	* test/testunit/util/test_backtracefilter.rb: added.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/error.rb: changed to use BacktraceFilter and improved</div><div class='del'>-	  output.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_error.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 20:33:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_failure_initialize): conform with</div><div class='del'>-	  orthodox initialization method.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_fail): initialize exception instance</div><div class='del'>-	  from the class, and do not share instance variables with the</div><div class='del'>-	  others.  [ruby-dev:21470]</div><div class='del'>-</div><div class='del'>-Thu Oct  2 18:20:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (Init_Time): define initialize.  [ruby-dev:21469]</div><div class='del'>-</div><div class='del'>-Thu Oct  2 17:39:38 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.c: add a new module OpenSSL::Engine.</div><div class='del'>-	  it supports OpenSSL hardware cryptographic engine interface.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_engine.h: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/MANIFEST: add ossl_engine.c and ossl_engine.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: add check for openssl/engine.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c: call Init_ossl_engine().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: include openssl/engine.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_{rsa,dsa,dh}.c: check if underlying</div><div class='del'>-	  EVP_PKEY referes engine.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 17:22:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_load): restore instance variables (if any) before</div><div class='del'>-	  loading from marshaled data.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 14:19:15 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_fail): now yield erred substring, and</div><div class='del'>-	  set error object to $!.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_convert): error handler block should</div><div class='del'>-	  return appended part and the rest.  if rest is nil, the</div><div class='del'>-	  conversion stops.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 12:00:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_const_defined_0): look up constants in Object as</div><div class='del'>-	  well.  [ruby-dev:21458]</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_defined.rb (TestDefined::test_defined): test for</div><div class='del'>-	  constants.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 11:17:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/assertions.rb: should not capture an</div><div class='del'>-	  AssertionFailedError unless explicitly requested.</div><div class='del'>-</div><div class='del'>-	* test/testunit/test_assertions.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* test/testunit/collector/test_objectspace.rb: fixed a test failure</div><div class='del'>-	  caused by methods being returned in different orders on different</div><div class='del'>-	  platforms by moving test sorting from TestSuite into the locations</div><div class='del'>-	  where suites are constructed. [ruby-talk:83156]</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testsuite.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/objectspace.rb: ditto.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 03:25:01 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_raise): prototype; avoid VC++ warning.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 01:37:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* time.c (time_mdump): new marshal dumper. _dump is still</div><div class='del'>-	  available for compatibility.</div><div class='del'>-</div><div class='del'>-	* time.c (time_mload): new marshal loader.</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): preserve instance variables for objects</div><div class='del'>-	  with marshal_dump.</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_object0): restore instance variables before calling</div><div class='del'>-	  marshal_load.</div><div class='del'>-</div><div class='del'>-	* error.c (rb_warn_m): always return nil.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 01:32:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_block_given_p): real required condition is</div><div class='del'>-	  ruby_frame-&gt;prev-&gt;iter == ITER_CUR.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_block_given_p): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c (block_pass): update ruby_frame-&gt;iter only when previous</div><div class='del'>-	  value is ITER_NOT.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 01:02:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_const_defined_at): should exclude constants from</div><div class='del'>-	  Object when TYPE(klass) == T_MODULE *and* exclude is on.</div><div class='del'>-	  [ruby-dev:21458]</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_const_get_0): do not lookup constants from Object</div><div class='del'>-	  when TYPE(klass) == T_MODULE *and* exclude is on.</div><div class='del'>-</div><div class='del'>-Thu Oct  2 00:21:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: unlinking file before close causes</div><div class='del'>-	  problem under win32 box.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/datatypes.rb(XSDFloat, XSDDouble): add +/- sign explicitly</div><div class='del'>-	  when stringified and embedded into XML instance.  Ruby's sprintf may</div><div class='del'>-	  format -0.0 as "0.0" (no minus sign) depending on underlying C</div><div class='del'>-	  sprintf implementation.</div><div class='del'>-</div><div class='del'>-	* test/xsd/test_xsd.rb, test/soap/test_basetype.rb: follow above change.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/*: give httpd config param "CGIInterpreter".</div><div class='del'>-	  "/usr/bin/env ruby" thing does not work under non-Unix boxes.</div><div class='del'>-</div><div class='del'>-Sat Oct  2 00:42:20 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_byte): retrieve pointer from string value for each</div><div class='del'>-	  time.  [ruby-dev:24404]</div><div class='del'>-</div><div class='del'>-	* marshal.c (r_bytes0): ditto.</div><div class='del'>-</div><div class='del'>-	* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]</div><div class='del'>-</div><div class='del'>-	* io.c (io_read): should freeze all reading buffer.</div><div class='del'>-	  [ruby-dev:24400]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): should use bignums when bits is greater</div><div class='del'>-	  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]</div><div class='del'>-</div><div class='del'>-	* eval.c (specific_eval): defer pointer retrieval to prevent</div><div class='del'>-	  unsafe sourcefile string modification.  [ruby-dev:24382]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): wrong cast caused wrong result.</div><div class='del'>-	  [ruby-dev:24385]</div><div class='del'>-</div><div class='del'>-	* enum.c (enum_sort_by): hide temporary array from</div><div class='del'>-	  ObjectSpace.each_object.  [ruby-dev:24386]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): check was done with false pointer.</div><div class='del'>-	  [ruby-dev:24383]</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]</div><div class='del'>-</div><div class='del'>-Thu Oct  2 00:25:21 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* signal.c (ruby_signal_name): adjust to the prototype.</div><div class='del'>-</div><div class='del'>-	* process.c (pst_inspect): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c (etc_getgrent, Init_etc): typo.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 20:49:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (heaps): manage slots and limits together.  [ruby-dev:21453]</div><div class='del'>-</div><div class='del'>-	* gc.c (add_heap): should not clear heaps slot even if realloc()</div><div class='del'>-	  failed.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 20:36:49 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add wince/mkconfig_wce.rb.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 17:22:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/etc/etc.c: add new functions: setpwent, getpwent, endpwent,</div><div class='del'>-	  setgrent, getgrent, endgrent.</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 17:01:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load): Object scope had priority over required file</div><div class='del'>-	  scope.  [ruby-dev:21415]</div><div class='del'>-</div><div class='del'>-Wed Oct  1 14:09:53 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* wince/mkconfig_wce.rb: sorry, forget to commit.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 10:08:42 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* wince/setup.mak: add sigmarionIII SDK support.</div><div class='del'>-</div><div class='del'>-	* wince/Makefile.sub: ditto.</div><div class='del'>-</div><div class='del'>-	* wince/mkexports.rb: fix linker error in SH4.</div><div class='del'>-</div><div class='del'>-	* wince/mkconfig_wce.rb: camouflage RUBY_PLATFORM for compiling ext.</div><div class='del'>-</div><div class='del'>-Wed Oct  1 08:02:52 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* wince/time_wce.c (time): add zero check.</div><div class='del'>-</div><div class='del'>-Tue Sep 30 16:11:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in: copy lex.c from $(srcdir) if it's not the current</div><div class='del'>-	  directory.  [ruby-dev:21437]</div><div class='del'>-</div><div class='del'>-Tue Sep 30 11:29:23 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (pst_inspect): describe stopped process "stopped".</div><div class='del'>-</div><div class='del'>-Tue Sep 30 09:31:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: glob for directories.</div><div class='del'>-</div><div class='del'>-Tue Sep 30 09:11:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): while/until should not capture break unless</div><div class='del'>-	  they are destination of the break.</div><div class='del'>-</div><div class='del'>-Tue Sep 30 03:12:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (finish): revert to 1.93.</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb (finish): revert to 1.60.</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb (finish): revert to 1.67.</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (do_start): ensure to close socket if failed to</div><div class='del'>-	  start session.</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb (do_start): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb (do_start): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb: SMTP#started? wrongly returned false always.</div><div class='del'>-</div><div class='del'>-Tue Sep 30 02:54:49 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb: new test</div><div class='del'>-	  test_break__nested_loop[123].</div><div class='del'>-</div><div class='del'>-Mon Sep 29 23:39:13 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb (finish): does not raise IOError even if</div><div class='del'>-	  !started?, to allow closing socket which was opened before</div><div class='del'>-	  session started.</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb (finish): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb (finish): ditto.</div><div class='del'>-</div><div class='del'>-Mon Sep 29 19:06:51 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/extconf.rb: add windows.h checking.</div><div class='del'>-	  (ruby-bugs:PR#1185)</div><div class='del'>-</div><div class='del'>-Mon Sep 29 16:18:30 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: check if the given logdevice object respond_to :write</div><div class='del'>-	  and :close, not is_a? IO.  duck duck.</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: self IO.pipe reading/writing may be</div><div class='del'>-	  locked by the flood.  use tempfile.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/xmlSchema/data.rb: wrong constant reference.</div><div class='del'>-</div><div class='del'>-Mon Sep 29 16:11:23 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: clean up temporary symlink.</div><div class='del'>-	  Patched by NaHi.  [ruby-dev:21420]</div><div class='del'>-</div><div class='del'>-Mon Sep 29 11:16:55 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_atfork): wrong format specifier.</div><div class='del'>-	  [ruby-dev:21428]</div><div class='del'>-</div><div class='del'>-	* process.c (pst_inspect): better description.</div><div class='del'>-</div><div class='del'>-Mon Sep 29 02:31:44 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/utils.rb (Utils::su): use setgid and setuid to</div><div class='del'>-	  set real and effective IDs. and setup group access list by</div><div class='del'>-	  initgroups.</div><div class='del'>-</div><div class='del'>-Sun Sep 28 11:14:19 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/digest/digest.c (Init_digest): `copy_object' was deprecated.</div><div class='del'>-	  `initialize_copy' should be defined.</div><div class='del'>-</div><div class='del'>-	* ext/stringio/stringio.c (Init_stringio): ditto.</div><div class='del'>-</div><div class='del'>-Sat Sep 27 18:25:13 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/xsd/charset.rb: XSD::Charset.is_ces did return always true under</div><div class='del'>-	  $KCODE = "NONE" environment.  check added.</div><div class='del'>-</div><div class='del'>-	* test/xsd/test_xsd.rb: add tests for above fix.</div><div class='del'>-</div><div class='del'>-Sat Sep 27 15:58:50 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/cgistub.rb: make logging severity threshold higher.</div><div class='del'>-</div><div class='del'>-	* lib/soap/rpc/standaloneServer.rb: defer WEBrick server start to give</div><div class='del'>-	  a chance to reset logging severity threshold.</div><div class='del'>-</div><div class='del'>-	* test/soap/calc/test_*, test/soap/helloworld/test_helloworld.rb: run</div><div class='del'>-	  silent.</div><div class='del'>-</div><div class='del'>-Sat Sep 27 09:44:18 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: clear all errors on Windows.</div><div class='del'>-	  [ruby-dev:21417]</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: ditto.</div><div class='del'>-</div><div class='del'>-Mon Sep 27 09:14:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_delete): comparison may change the capacity.</div><div class='del'>-	  [ruby-dev:24348]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): fill should honor length argument.</div><div class='del'>-	  [ruby-dev:24346]</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_replace): should not use ptr from shared array.</div><div class='del'>-	  [ruby-dev:24345]</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.</div><div class='del'>-	  [ruby-talk:113807]</div><div class='del'>-</div><div class='del'>-Sat Sep 27 04:57:07 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_file.rb: new file.  only asserts unlink-before-close</div><div class='del'>-	  behaviour now.</div><div class='del'>-</div><div class='del'>-	* test/soap/marshal/test_digraph.rb: should close before unlink.</div><div class='del'>-	  unlink-before-close pattern is not needed here.</div><div class='del'>-</div><div class='del'>-Sat Sep 27 03:32:37 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/soap/*, test/wsdl/*, test/xsd/*: move TestCase classes into</div><div class='del'>-	  each module namespace.  TestMarshal in</div><div class='del'>-	  test/soap/marshal/test_marshal.rb crashed with</div><div class='del'>-	  test/ruby/test_marshal.rb.</div><div class='del'>-</div><div class='del'>-Sat Sep 27 01:30:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_connect): on win32, type of the 4th</div><div class='del'>-	  argument of getsockopt is char *.</div><div class='del'>-</div><div class='del'>-Fri Sep 26 18:35:40 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/resolv-replace.rb: 1.8 compliance.  [ruby-talk:82946]</div><div class='del'>-</div><div class='del'>-Fri Sep 26 17:39:27 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_marshal.rb: add test for ruby's objects.</div><div class='del'>-</div><div class='del'>-Fri Sep 26 09:52:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* defines.h (flush_register_windows): use volatile only for gcc on</div><div class='del'>-	  Solaris.  [ruby-dev:21403]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (xsystem): use system directly to honor shell meta</div><div class='del'>-	  charaters.</div><div class='del'>-</div><div class='del'>-Fri Sep 26 00:10:13 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/README: updated.</div><div class='del'>-</div><div class='del'>-Thu Sep 25 17:48:10 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_buf2str): fix type of 1st argument for</div><div class='del'>-	  rb_protect.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_hmac.c (ossl_hmac_digest): should return meaningful</div><div class='del'>-	  value.</div><div class='del'>-</div><div class='del'>-Thu Sep 25 09:00:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb: Added OpenStruct#==.</div><div class='del'>-</div><div class='del'>-	* test/ostruct/test_ostruct.rb: Added.</div><div class='del'>-</div><div class='del'>-Thu Sep 25 07:55:26 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c, ext/openssl/ossl_pkey_dsa.c,</div><div class='del'>-	  ext/openssl/ossl_pkey_rsa.c, ext/bigdecimal/bigdecimal.h: must</div><div class='del'>-	  not use C++ or C99 style comment yet.  (ruby-bugs:PR#1184)</div><div class='del'>-</div><div class='del'>-Thu Sep 25 00:23:22 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add SOAP4R.</div><div class='del'>-</div><div class='del'>-Thu Sep 25 00:13:15 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/soap/* (29 files): SOAP4R added.</div><div class='del'>-</div><div class='del'>-	* lib/wsdl/* (42 files): WSDL4R added.</div><div class='del'>-</div><div class='del'>-	* lib/xsd/* (12 files): XSD4R added.</div><div class='del'>-</div><div class='del'>-	* test/soap/* (16 files): added.</div><div class='del'>-</div><div class='del'>-	* test/wsdl/* (2 files): added.</div><div class='del'>-</div><div class='del'>-	* test/xsd/* (3 files): added.</div><div class='del'>-</div><div class='del'>-	* sample/soap/* (27 files): added.</div><div class='del'>-</div><div class='del'>-	* sample/wsdl/* (13 files): added.</div><div class='del'>-</div><div class='del'>-Wed Sep 24 02:08:11 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/cgihandler.rb: conform to mswin32.</div><div class='del'>-	  [ruby-talk:82735], [ruby-talk:82748], [ruby-talk:82818]</div><div class='del'>-</div><div class='del'>-Tue Sep 23 23:10:16 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: add Logger#&lt;&lt;(msg) for writing msg without any</div><div class='del'>-	  formatting.</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: ditto.</div><div class='del'>-</div><div class='del'>-Tue Sep 23 20:47:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (rb_warn_m): should not warn if -W0 is specified.</div><div class='del'>-	  [ruby-talk:82675]</div><div class='del'>-</div><div class='del'>-Mon Sep 22 21:28:57 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: updated.</div><div class='del'>-</div><div class='del'>-Mon Sep 22 19:22:26 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (AC_CHECK_FUNCS): add setuid and setgid.</div><div class='del'>-</div><div class='del'>-Mon Sep 22 12:34:55 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* util.c (ruby_strtod): skip preceding zeros before counting</div><div class='del'>-	  digits in the mantissa. (ruby-bugs:PR#1181)</div><div class='del'>-</div><div class='del'>-Sun Sep 21 04:12:36 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): the argument</div><div class='del'>-	  should be a String.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): ditt.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.</div><div class='del'>-</div><div class='del'>-Sat Sep 20 11:49:05 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: typo fixed.</div><div class='del'>-</div><div class='del'>-	* test/logger/test_logger.rb: new file.</div><div class='del'>-</div><div class='del'>-Fri Sep 19 11:39:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/testunit/*: Added.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: Documentation update.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/ui/console/testrunner.rb (TestRunner#initialize):</div><div class='del'>-	  Ditto.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit.rb: Factored out an ObjectSpace collector.</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/collector/objectspace.rb: Ditto.</div><div class='del'>-</div><div class='del'>-	* sample/testunit/*: Added.</div><div class='del'>-</div><div class='del'>-Fri Sep 19 01:00:48 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/log.rb (BasicLog#log): get rid of as ineffectual</div><div class='del'>-	  condition.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/log.rb (BasicLog#format): add "\n" to message.</div><div class='del'>-</div><div class='del'>-Thu Sep 18 22:43:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): should push PROT_PCALL tag for orphans.</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): should update "result" for orphans.</div><div class='del'>-</div><div class='del'>-Thu Sep 18 20:33:03 2003  Tietew  &lt;tietew-ml-ruby-list@tietew.net&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (str_xquote): do not prepend escapes in</div><div class='del'>-	  backqoute literals.  [ruby-list:38409]</div><div class='del'>-</div><div class='del'>-Thu Sep 18 20:30:17 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/pathname.rb: update document.</div><div class='del'>-</div><div class='del'>-Thu Sep 18 15:27:05 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/logger.rb: new file.  Logger, formerly called devel-logger or</div><div class='del'>-	  Devel::Logger.</div><div class='del'>-</div><div class='del'>-	* sample/logger/*: new file.  samples of logger.rb.</div><div class='del'>-</div><div class='del'>-Wed Sep 17 23:41:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (localjump_destination): should not raise ThreadError</div><div class='del'>-	  exception for "break". [ruby-dev:21348]</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): use result instead of prot_tag-&gt;retval.</div><div class='del'>-	  retval is no longer propagated to the ancestors.</div><div class='del'>-</div><div class='del'>-Wed Sep 17 20:34:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (tokadd_string, parse_string, yylex): escaped terminator</div><div class='del'>-	  is now interpreted as is.  [ruby-talk:82206]</div><div class='del'>-</div><div class='del'>-Wed Sep 17 18:52:36 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/fileutils/fileassertions.rb: new file.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_fileutils.rb: new file.</div><div class='del'>-</div><div class='del'>-	* test/fileutils/test_nowrite.rb: new file.</div><div class='del'>-</div><div class='del'>-Wed Sep 17 18:51:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/strscan/test_stringscanner.rb: require test/unit.</div><div class='del'>-</div><div class='del'>-Wed Sep 17 18:35:34 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* test/strscan/test_stringscanner.rb: new file.</div><div class='del'>-</div><div class='del'>-Wed Sep 17 18:03:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl: all files are reviewed to simplify and avoid memory leak.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: add check for assert.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_buf2str): new function to convert</div><div class='del'>-	  C buffer to String and free buffer.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert</div><div class='del'>-	  Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new</div><div class='del'>-	  functions to convert object to DER string.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert</div><div class='del'>-	  BIO to String object and free BIO.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_bio.h: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (create_ext_from_array): removed</div><div class='del'>-	  and reimplement in openssl/x509.rb.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509attr.c: reimplemented and disable some</div><div class='del'>-	  method temporarily. this class doesn't work fine without ASN.1</div><div class='del'>-	  data support;-) I'll rewrite in near future.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off</div><div class='del'>-	  unused code.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.</div><div class='del'>-</div><div class='del'>-Tue Sep 16 22:25:06 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: add negative tests of row_sep.</div><div class='del'>-</div><div class='del'>-Tue Sep 16 18:02:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* regex.c (re_compile_pattern): should not translate character</div><div class='del'>-	  class range edge. [ruby-list:38393]</div><div class='del'>-</div><div class='del'>-Tue Sep 16 16:47:56 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* MANIFEST: add test/csv/mac.csv.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, bcc32/Makefile.sub (test): add phony NUL target.</div><div class='del'>-</div><div class='del'>-Mon Sep 15 19:02:52 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/csv.rb: add extra pamameter to specify row(record) separater</div><div class='del'>-	  character.  To parse Mac's CR separated CSV, do like this.</div><div class='del'>-	    CSV.open("mac.csv", "r", ?,, ?\r) { |row| p row.to_a }</div><div class='del'>-	  The 3rd parameter in this example ?, is for column separater and the</div><div class='del'>-	  4th ?\r is for row separater.  Row separater is nil by default.  Nil</div><div class='del'>-	  separater means "\r\n" or "\n".</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: add tests for above feature.</div><div class='del'>-</div><div class='del'>-	* test/csv/mac.csv: added.  Sample CR separated CSV file.</div><div class='del'>-</div><div class='del'>-Fri Sep 12 22:41:48 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c: move ASN.1 stuff to ossl_asn1.[ch]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.c: move BIO stuff to ossl_bio.[ch]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_asn1.[ch]: new files</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_bio.[ch]: new files</div><div class='del'>-</div><div class='del'>-Fri Sep 12 12:30:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* intern.h (rb_disable_super, rb_enable_super): replace with dummy</div><div class='del'>-	  expressions instead of prototypes.  the functions remain yet for</div><div class='del'>-	  binary compatibility.  [ruby-talk:81758]</div><div class='del'>-</div><div class='del'>-Fri Sep 12 12:09:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_and): convert argument using 'to_int'.</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_or): ditto.</div><div class='del'>-</div><div class='del'>-	* bignum.c (rb_big_xor): ditto.</div><div class='del'>-</div><div class='del'>-Fri Sep 12 07:06:14 2003  David Black  &lt;dblack@superlink.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/scanf.rb: Took out useless @matched_item variable; some small</div><div class='del'>-	  refactoring.</div><div class='del'>-</div><div class='del'>-Thu Sep 11 08:43:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_require): allow "require" on $SAFE&gt;0, if feature</div><div class='del'>-	  name is not tainted.</div><div class='del'>-</div><div class='del'>-	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::stream):</div><div class='del'>-	  Supports StringIO.</div><div class='del'>-</div><div class='del'>-Wed Sep 10 22:47:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: add a workaround for win32 platform.</div><div class='del'>-	  libeay32.dll doesn't export functions defined in conf_api.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (ossl_config_initialize): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (ossl_config_add_value): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c (set_conf_section_i): should check</div><div class='del'>-	  if the argument is Array.</div><div class='del'>-</div><div class='del'>-Wed Sep 10 22:41:54 2003  Tietew  &lt;tietew@tietew.net&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (win32_get_exception_list): avoid VC7 warning.</div><div class='del'>-	  [ruby-win32:577]</div><div class='del'>-</div><div class='del'>-Tue Sep  9 10:39:51 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (struct tag): dst should be VALUE.</div><div class='del'>-</div><div class='del'>-Tue Sep  9 10:39:51 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (localjump_destination): stop at the scope where the current</div><div class='del'>-	  block was created.  [ruby-dev:21353]</div><div class='del'>-</div><div class='del'>-Tue Sep  9 05:17:04 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.rb: avoid compile error in OpenSSL-0.9.6.</div><div class='del'>-</div><div class='del'>-Tue Sep  9 02:41:35 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c: Refine compatibility.</div><div class='del'>-</div><div class='del'>-Tue Sep  9 01:50:45 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (HTTPServer#access_log): add "\n" to</div><div class='del'>-	  the message.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/log.rb (BasicLog#log): add "\n" only if needed.</div><div class='del'>-</div><div class='del'>-Mon Sep  8 22:15:33 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb: modify security check at creating</div><div class='del'>-	  a new interpreter</div><div class='del'>-</div><div class='del'>-Mon Sep  8 20:00:12 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb, lib/optparse/version.rb: search also all</div><div class='del'>-	  capital versions.</div><div class='del'>-</div><div class='del'>-Mon Sep  8 19:26:33 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: include openssl/conf.h and openssl/conf_api.h.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.c: refine all with backward compatibility.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509.c: added new constants under X509 module.</div><div class='del'>-	  DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,</div><div class='del'>-	  DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free</div><div class='del'>-	  the members of the struct. it's left to GC.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):</div><div class='del'>-	  add attr readers: issuer_certificate, subject_certificate,</div><div class='del'>-	  subject_request, crl and config.</div><div class='del'>-</div><div class='del'>-Mon Sep  8 18:26:41 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/accesslog.rb (AccessLog::setup_params): use req.port</div><div class='del'>-	  instead of config[:Port] or req.request_uri.port.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpservlet/filehandler.rb (FileHandler#dir_list): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/config.rb: :Listen option never be used.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#initialize): don't use :Listen</div><div class='del'>-	  option and add warning message.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/log.rb (BasicLog#&lt;&lt;): shortcut of log(INFO, ...).</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (HTTPServer#accesslog): use &lt;&lt; for logging.</div><div class='del'>-</div><div class='del'>-Sun Sep  7 16:08:28 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_mainloop_core): fixed signal-trap bug</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/*.rb : Ruby/Tk works at $SAFE == 4</div><div class='del'>-</div><div class='del'>-Sat Sep  6 02:26:34 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_*.rb: assert_same, assert_match, and so on.</div><div class='del'>-</div><div class='del'>-Sat Sep  6 18:45:46 2003  Mauricio Fernandez  &lt;batsman.geo@yahoo.com&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (assignable): call rb_compile_error(), not rb_bug().</div><div class='del'>-	  [ruby-core:01523]</div><div class='del'>-</div><div class='del'>-Sat Sep  6 17:40:41 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ruby_missing.c: rid of unnecessary backward</div><div class='del'>-	  compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from</div><div class='del'>-	  all sources.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.</div><div class='del'>-</div><div class='del'>-Sat Sep  6 01:23:22 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): need to quote cmd if RUBYSHELL is set.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (CreateChild): fix condition about whether to call</div><div class='del'>-	  shell or not.</div><div class='del'>-</div><div class='del'>-Sat Sep  6 00:36:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in (test): phony target.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_library, find_library): configure by library</div><div class='del'>-	  name.</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#order, #permute, #parse): allow an</div><div class='del'>-	  array as argument.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_*.rb: moved invariants to left side in</div><div class='del'>-	  assert_equal, and use assert_nil, assert_raises and so on.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (isInternalCmd): distinguish command.com and</div><div class='del'>-	  cmd.exe.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (make_cmdvector): a character just after wildcard</div><div class='del'>-	  was ignored.  [ruby-core:01518]</div><div class='del'>-</div><div class='del'>-Fri Sep  5 20:27:08 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_*.rb: replace 'assert(a == b)' with assert_equal(a, b)'</div><div class='del'>-</div><div class='del'>-Fri Sep  5 18:00:51 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.c: add ossl_digest_new().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_digest.h: ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.c: add ossl_cipher_new().</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_cipher.h: ditto.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 15:32:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): should not</div><div class='del'>-	  search delimiter forward if found in backward.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 13:32:48 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: arguments should be keys.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 12:09:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_system.rb (test_system): check existence of ruby</div><div class='del'>-	  interpreter.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 11:32:17 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (--version): fix assignment/reference order.</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb (OptionParser#help): new; OptionParser#to_s may</div><div class='del'>-	  be deprecated in future.</div><div class='del'>-</div><div class='del'>-	* lib/optparse/version.rb (OptionParser#show_version): hide Object.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: fix optparse usage.</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: glob all testsuits if no tests given.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 10:42:58 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/runner.rb: added.  gets testcases from command line and runs it.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_gc.rb: remove useless part which was for dumping test</div><div class='del'>-	  result.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 09:28:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_gc.rb: added.  splitter.rb which I made to split</div><div class='del'>-	  sample/test.rb into test/ruby/test_* kindly removed GC test (the</div><div class='del'>-	  last section in the original test) to reduce things to be worried.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 03:00:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb (test_block_in_arg): add no block</div><div class='del'>-	  given tests.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_iterator.rb (test_ljump): uncomment LocalJumpError</div><div class='del'>-	  test.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 01:10:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/ruby: tests for ruby itself.</div><div class='del'>-</div><div class='del'>-	* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases.</div><div class='del'>-	  some tests could not be translates...  search '!!' mark to see it.</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'.  test</div><div class='del'>-	  runner should set load path correctly.</div><div class='del'>-</div><div class='del'>-Fri Sep  5 01:03:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: close opened files for CSV::IOBuf explicitly.</div><div class='del'>-	  opened file cannot be removed under win32 box.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 23:59:40 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (tokadd_string): newlines have no special meanings in</div><div class='del'>-	  %w/%W, otherwise they are ignored only when interpolation is</div><div class='del'>-	  enabled.  [ruby-dev:21325]</div><div class='del'>-</div><div class='del'>-Thu Sep  4 19:38:25 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/.cvsignore: added.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/.cvsignore: added.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 19:28:24 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* sample/openssl: added.  Sample of standard distribution library</div><div class='del'>-	  should be locate in sample/{module_name}/*.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/sample/*: removed.  move to sample/openssl/*.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 18:02:15 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: use remove_const to reduce warnings.  use</div><div class='del'>-	  Dir.tmpdir to locate working files.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 17:41:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is</div><div class='del'>-	  valid delimiter.</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-here-doc-end-match): must quote</div><div class='del'>-	  arbitrary string to use as regexp.</div><div class='del'>-</div><div class='del'>-	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not</div><div class='del'>-	  call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'</div><div class='del'>-	  matched.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 15:40:07 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test/csv/test_csv.rb: run on test/unit original layer.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 12:54:50 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: headerless documents with root-level spacing now</div><div class='del'>-	  honored.</div><div class='del'>-</div><div class='del'>-Thu Sep  4 00:06:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (mark_frame_adj): need to adjust argv pointer if using</div><div class='del'>-	  system's alloca. [ruby-core:01503]</div><div class='del'>-</div><div class='del'>-Wed Sep  3 21:33:20 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* test: add test directory.  Test::Unit aware testcases and needed</div><div class='del'>-	  files should be located in this directory.  dir/file name convention;</div><div class='del'>-	    test/{module_name}/test_{testcase_name}.rb</div><div class='del'>-	    test/{module_name}/{needed_files}</div><div class='del'>-	  someday, someone will write testrunner which searches test_*.rb and</div><div class='del'>-	  run testcases automatically.</div><div class='del'>-</div><div class='del'>-	* test/csv/*: add testcase for lib/csv.rb.</div><div class='del'>-</div><div class='del'>-Wed Sep  3 01:37:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (rb_f_gets): should call next_argv() before type check</div><div class='del'>-	  current_file. [ruby-list:38336]</div><div class='del'>-</div><div class='del'>-Tue Sep  2 20:37:15 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): warning</div><div class='del'>-	  for skipping server verification.</div><div class='del'>-</div><div class='del'>-Tue Sep  2 23:36:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): should retrieve retval when pcall is true.</div><div class='del'>-</div><div class='del'>-Tue Sep  2 14:09:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/extconf.rb: check s6_addr8 in in6_addr (Tru64 UNIX).</div><div class='del'>-	  the patch is submitted by nmu &lt;nmu@users.sourceforge.jp&gt;.</div><div class='del'>-</div><div class='del'>-	* ext/socket/getaddrinfo.c (getaddrinfo): should use in6_addr8 on</div><div class='del'>-	  some platforms.</div><div class='del'>-</div><div class='del'>-	* ext/socket/getnameinfo.c (getnameinfo): ditto.</div><div class='del'>-</div><div class='del'>-Tue Sep  2 14:02:19 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :</div><div class='del'>-	  bug fix and improvement of font control</div><div class='del'>-</div><div class='del'>-Tue Sep  2 09:51:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): should not handle exceptions within rescue</div><div class='del'>-	  argument.  [ruby-talk:80804]</div><div class='del'>-</div><div class='del'>-Tue Sep  2 00:44:37 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* re.c (rb_memsearch): fix overrun.  [ruby-talk:80759]</div><div class='del'>-</div><div class='del'>-Tue Sep  2 00:41:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (map_charset): use lower case keys.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_fail): just yield error and return the</div><div class='del'>-	  result if a block is given.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/iconv.c (iconv_convert): yield error and append the</div><div class='del'>-	  result if a block is given.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/charset_alias.rb (charset_alias): optional third</div><div class='del'>-	  argument.</div><div class='del'>-</div><div class='del'>-	* ext/iconv/charset_alias.rb (charset_alias): use CP932 instead of</div><div class='del'>-	  SHIFT_JIS on cygwin.</div><div class='del'>-</div><div class='del'>-Mon Sep  1 18:34:25 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): make tail recursion in ELSE clause of</div><div class='del'>-	  RESCUE a jump.</div><div class='del'>-</div><div class='del'>-Mon Sep  1 18:00:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (aref_args): forgot to call NEW_SPLAT(). reported by</div><div class='del'>-	  Dave Butcher.</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_Thread): protect thgroup_default.  suggested by Guy</div><div class='del'>-	  Decoux in [ruby-talk:80623]</div><div class='del'>-</div><div class='del'>-Mon Sep  1 16:59:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_switch): add RESTORE_EXIT; exit by another</div><div class='del'>-	  thread termination.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_start_0): should not error_print() within</div><div class='del'>-	  terminated thread, because $stderr used by it might be</div><div class='del'>-	  overriden now.  [ruby-dev:21280]</div><div class='del'>-</div><div class='del'>-Sun Aug 31 22:46:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (TAG_DST()): take no argument.</div><div class='del'>-</div><div class='del'>-	* process.c (p_gid_sw_ensure): return VALUE.</div><div class='del'>-</div><div class='del'>-Sun Aug 31 22:27:10 2003  Hidetoshi NAGAI  &lt;nagai@dumbo.ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* process.c (p_gid_sw_ensure): lack of function type</div><div class='del'>-</div><div class='del'>-Sun Aug 31 12:25:06 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/optparse.rb: --version takes an optional argument; "all" or</div><div class='del'>-	  a list of package names.</div><div class='del'>-</div><div class='del'>-Sun Aug 31 10:17:02 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/date/format.rb: yyyy/mm is not an acceptable format.</div><div class='del'>-</div><div class='del'>-	* lib/time.rb: follow above.</div><div class='del'>-</div><div class='del'>-Sat Aug 30 14:25:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_iter_break): should not call TAG_JUMP directly.</div><div class='del'>-</div><div class='del'>-Sat Aug 30 03:58:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (struct BLOCK): remove BLOCKTAG, use scope instead.</div><div class='del'>-</div><div class='del'>-	* eval.c (POP_TAG): no longer propagate retval.  retval is now set</div><div class='del'>-	  directly by localjump_destination().</div><div class='del'>-</div><div class='del'>-	* eval.c (localjump_destination): new function to cast</div><div class='del'>-	  return/break local jump.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): stop TAG_RETURN/TAG_BREAK escaping.</div><div class='del'>-</div><div class='del'>-Fri Aug 29 22:35:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bigdecimal.c *.html: The 2nd arg. for add,sub,mult, and div is 0,</div><div class='del'>-	  then result will be the same as +,-,*,/ respectively.</div><div class='del'>-</div><div class='del'>-Fri Aug 29 17:30:15 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='del'>-</div><div class='del'>-	* process.c: bug fix</div><div class='del'>-</div><div class='del'>-	* process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}</div><div class='del'>-</div><div class='del'>-	* process.c: deny handling IDs during evaluating the block given to</div><div class='del'>-	  the Process::{UID,GID}.switch method</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c : can create a interpreter without Tk</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/tcltklib.c : bug fix on handling exceptions</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/MANUAL.euc : modify</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb : freeze some core modules</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/multi-tk.rb : more secure</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: TkVariable.new(array) --&gt; treat the array as the</div><div class='del'>-	  Tk's list</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb: improve accessibility of TkVariable object</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,</div><div class='del'>-	  ext/tk/lib/tktext.rb : fix bug of font handling</div><div class='del'>-</div><div class='del'>-	* ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts</div><div class='del'>-</div><div class='del'>-Thu Aug 28 22:07:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_autoload_load): call const_missing if autoloading</div><div class='del'>-	  constant is not defined to allow hook.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): use rb_const_get_from() instead of</div><div class='del'>-	  rb_const_get_at().</div><div class='del'>-</div><div class='del'>-	* eval.c (is_defined): forgot to check NODE_COLON3.</div><div class='del'>-</div><div class='del'>-Thu Aug 28 17:30:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* variable.c (rb_const_get_0): should check constants defined in</div><div class='del'>-	  included modules, if klass is Object. [ruby-talk:79302]</div><div class='del'>-</div><div class='del'>-	* numeric.c (check_uint): check should be done using UINT_MAX, not</div><div class='del'>-	  INT_MAX. this fix is submitted by Lyle Johnson</div><div class='del'>-	  &lt;lyle@knology.net&gt; in [ruby-core:01486]</div><div class='del'>-</div><div class='del'>-Thu Aug 28 05:02:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (singleton): typo fixed (ruby-bugs-ja:PR#562)</div><div class='del'>-</div><div class='del'>-Thu Aug 28 02:37:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval): *a = [1,2] now assigns [[1,2]] to a.</div><div class='del'>-	  consistent with *a = [1], which set [[1]] to a.</div><div class='del'>-</div><div class='del'>-	* node.h: merge NODE_RESTARY to NODE_SPLAT.</div><div class='del'>-</div><div class='del'>-	* parse.y: rules simplified a bit by removing NODE_RESTARY.</div><div class='del'>-</div><div class='del'>-	* sample/test.rb: updated for new assignment behavior.</div><div class='del'>-</div><div class='del'>-Wed Aug 27 22:33:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* error.c (rb_bug): should not use other methods; this function is</div><div class='del'>-	  not for ordinary use.  [ruby-dev:21259]</div><div class='del'>-</div><div class='del'>-Wed Aug 27 15:07:57 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/smtp.rb (check_response): AUTH CRAM-MD5 returns 334</div><div class='del'>-	  response. [ruby-list:38279]</div><div class='del'>-</div><div class='del'>-Wed Aug 27 05:10:15 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (map_errno): support winsock error.</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid,</div><div class='del'>-	  kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime):</div><div class='del'>-	  pass errno to map_errno().</div><div class='del'>-</div><div class='del'>-	* win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind,</div><div class='del'>-	  rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,</div><div class='del'>-	  rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,</div><div class='del'>-	  rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,</div><div class='del'>-	  rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,</div><div class='del'>-	  rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,</div><div class='del'>-	  rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport,</div><div class='del'>-	  rb_w32_fclose, rb_w32_close): use map_errno().</div><div class='del'>-</div><div class='del'>-	* win32/win32.h: add winsock errors.</div><div class='del'>-</div><div class='del'>-Tue Aug 26 23:53:23 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/ostruct.rb (OpenStruct::method_missing): prohibit modifying</div><div class='del'>-	  frozen OpenStruct. [ruby-talk:80214]</div><div class='del'>-</div><div class='del'>-Tue Aug 26 20:03:50 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_tmpsrc): add the hook for source.</div><div class='del'>-	  [ruby-list:38122]</div><div class='del'>-</div><div class='del'>-Tue Aug 26 15:59:53 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* implicit.c (syck_type_id_to_taguri): corrected detection of</div><div class='del'>-	  x-private types.</div><div class='del'>-</div><div class='del'>-Sun Aug 24 01:02:48 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (file_expand_path): performance improvement.</div><div class='del'>-	  [ruby-talk:79748]</div><div class='del'>-</div><div class='del'>-Sat Aug 23 23:41:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* file.c (rb_file_s_expand_path): avoid calling rb_scan_args() for</div><div class='del'>-	  apparent cases. [ruby-talk:79748]</div><div class='del'>-</div><div class='del'>-Sat Aug 23 18:56:53 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just</div><div class='del'>-	  resize a string, rb_str_cat() disallows NULL.  [ruby-dev:21237]</div><div class='del'>-</div><div class='del'>-Sat Aug 23 16:48:41 2003  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='del'>-</div><div class='del'>-	* lib/irb/ruby-lex.rb: bug fix for "foo" !~ /bar/. [ruby-talk:79942]</div><div class='del'>-</div><div class='del'>-Sat Aug 23 15:59:58 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_eval, rb_iterate, block_pass): reduce PUSH/POP_TAG and</div><div class='del'>-	  EXEC_TAG() for retry.  [ruby-dev:21216]</div><div class='del'>-</div><div class='del'>-Sat Aug 23 02:32:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_splat): should check if "values" is array.</div><div class='del'>-</div><div class='del'>-	* enum.c (each_with_index_i): typo.</div><div class='del'>-</div><div class='del'>-Fri Aug 22 17:07:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* enum.c (inject_i): use rb_yield_values.</div><div class='del'>-</div><div class='del'>-	* enum.c (each_with_index_i): ditto.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_splat): new function to call "yield *values".</div><div class='del'>-</div><div class='del'>-	* string.c (rb_str_scan): use rb_yield_splat().</div><div class='del'>-</div><div class='del'>-Fri Aug 22 06:13:22 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: refactoring of the transfer method</div><div class='del'>-	  dispatch.  added yaml_org_handler for faster dispatch of</div><div class='del'>-	  transfers to base types.</div><div class='del'>-</div><div class='del'>-	* lib/yaml/rubytypes.rb: removed handling of builtins from</div><div class='del'>-	  Ruby library.</div><div class='del'>-</div><div class='del'>-	* ext/syck/token.c: quoted and block scalars are now implicit !str</div><div class='del'>-</div><div class='del'>-	* ext/syck/implicit.c: empty string detected as !null.</div><div class='del'>-</div><div class='del'>-Fri Aug 22 01:00:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (block_pass): improve passing current block.</div><div class='del'>-</div><div class='del'>-Fri Aug 22 00:13:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: Int. overflow bug in multiplication</div><div class='del'>-	  fixed, and VpNmlz() speed up.</div><div class='del'>-</div><div class='del'>-Wed Aug 20 16:44:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/socket/socket.c (ruby_connect): many systems seem to have</div><div class='del'>-	  a problem in select() after EINPROGRESS.  [ruby-list:38080]</div><div class='del'>-</div><div class='del'>-Wed Aug 20 01:31:17 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.h: Parser definition problems on HP-UX.</div><div class='del'>-	  [ruby-talk:79389]</div><div class='del'>-</div><div class='del'>-	* ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak.</div><div class='del'>-</div><div class='del'>-	* ext/syck/syck.s (syck_io_file_read): Bad arguments to fread.</div><div class='del'>-</div><div class='del'>-	* ext/syck/rubyext.c: Tainting issues.</div><div class='del'>-</div><div class='del'>-Tue Aug 19 23:20:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c .h .html: to_s("+") implemented.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/math.rb: E implemented.</div><div class='del'>-</div><div class='del'>-Tue Aug 19 07:47:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/ssl.rb: new file; SSL/TLS enhancement for GenericServer.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb: SSLSocket handling is moved to webrick/ssl.rb.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/compat.rb (File::fnmatch): remove old migration code.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httpserver.rb (HTTPServer#run): ditto.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#listen): the body of this</div><div class='del'>-	  method is pull out as Utils::create_lisnteners.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/utils.rb (Utils::create_lisnteners): new method.</div><div class='del'>-</div><div class='del'>-	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='del'>-	  unknown errors. and refine comments.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): should close</div><div class='del'>-	  socket if SSLSocket raises error.</div><div class='del'>-</div><div class='del'>-Tue Aug 19 11:19:33 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* io.c (next_argv): should not call GetOpenFile() if rb_stdout is</div><div class='del'>-	  not a IO (T_FILE).</div><div class='del'>-</div><div class='del'>-Tue Aug 19 07:47:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c: sync_close is moved to SSLSocket as</div><div class='del'>-	  a builtin.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb (Buffering#close): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb (Buffering#puts): should</div><div class='del'>-	  add a return to the tails of each line.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb: new class OpenSSL::SSL::SSLServer.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): use sync_close.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/sample/echo_svr.rb: use SSLServer.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/sample/echo_cli.rb: add example of SSLSocket#sync_close.</div><div class='del'>-</div><div class='del'>-Tue Aug 19 01:24:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): Mac OS X standard</div><div class='del'>-	  headers are inconsistent at this macro.  [ruby-core:01432]</div><div class='del'>-</div><div class='del'>-	* ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks.</div><div class='del'>-</div><div class='del'>-	* ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers</div><div class='del'>-	  winspool.h</div><div class='del'>-</div><div class='del'>-	* instruby.rb: make list at first instead of iterator.</div><div class='del'>-	  [ruby-talk:79347]</div><div class='del'>-</div><div class='del'>-Mon Aug 18 11:23:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* dir.c (glob_helper): preserve raw order for **.</div><div class='del'>-</div><div class='del'>-Sun Aug 17 23:39:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.</div><div class='del'>-</div><div class='del'>-Sun Aug 17 17:10:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/ssl.rb (SSLSocket#sync_close=): add a</div><div class='del'>-	  method to specify if the underlying IO will be closed in</div><div class='del'>-	  SSLSocket#close.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb: add forwarders to</div><div class='del'>-	  setsockopt, getsockopt and fcntl.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/net/protocols.rb: enable sync for SSLSocket.</div><div class='del'>-</div><div class='del'>-Sun Aug 17 11:32:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): should not force to remake Makefile when</div><div class='del'>-	  installation and so on.</div><div class='del'>-</div><div class='del'>-Sat Aug 16 23:58:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_symbol, w_object): get rid of warnings.</div><div class='del'>-</div><div class='del'>-	* re.c (rb_memsearch): ditto.</div><div class='del'>-</div><div class='del'>-	* time.c (time_dump): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): not continue making when extconf.rb</div><div class='del'>-	  failed.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/extconf.rb: check __VA_ARGS__ macro more precisely.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl.h: remove version.h dependency.</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ruby_missing.h: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (pkg_config): use --libs output except with</div><div class='del'>-	  only-L for other options.  [ruby-list:38099]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (create_makefile): separate rule for static</div><div class='del'>-	  library from shared object.</div><div class='del'>-</div><div class='del'>-	* win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub:</div><div class='del'>-	  define exec_prefix and libdir.</div><div class='del'>-</div><div class='del'>-Fri Aug 15 23:15:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c .h: Bug in combination of limit &amp; div</div><div class='del'>-	  method fixed.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/math.rb: atan() &amp; sqrt() added.</div><div class='del'>-</div><div class='del'>-Fri Aug 15 12:01:43 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in (HUGE_ST_INO): check whether struct stat.st_ino</div><div class='del'>-	  is larger than long.  [ruby-dev:21194]</div><div class='del'>-	  http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html</div><div class='del'>-</div><div class='del'>-	* error.c (syserr_eqq): errno might exceed Fixnum limit.</div><div class='del'>-</div><div class='del'>-	* error.c (Init_Exception): moved base initialization from</div><div class='del'>-	  init_syserr().</div><div class='del'>-</div><div class='del'>-	* inits.c (rb_call_inits): postpone initializing errnos until</div><div class='del'>-	  Bignum is available.</div><div class='del'>-</div><div class='del'>-Fri Aug 15 12:01:43 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let</div><div class='del'>-	  keyname() and so on be declared.</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (curses_resizeterm, window_resize):</div><div class='del'>-	  arguments conflicted with macros in term.h.</div><div class='del'>-</div><div class='del'>-	* ext/curses/curses.c (Curses module methods): ensure</div><div class='del'>-	  initialized.  [ruby-dev:21191]</div><div class='del'>-</div><div class='del'>-Fri Aug 15 02:08:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (id2ref): recycle check should be done by klass == 0.</div><div class='del'>-	  [ruby-core:01408]</div><div class='del'>-</div><div class='del'>-Fri Aug 15 01:34:23 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey.c: move generate_cb here</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_pkey_{dh|dsa|rsa}.c: adapt to this cb</div><div class='del'>-</div><div class='del'>-	* ext/openssl/openssl_missing.[ch]: add (0.9.6x, x&lt;j) missing BN funcs</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_bn.c: use supplied funcs from openssl_missing.c</div><div class='del'>-</div><div class='del'>-Fri Aug 15 00:38:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c: Bug in div method fixed.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/lib/bigdecimal/math.rb: Newly added.</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/sample/pi.rb: Changed so as to use math.rb.</div><div class='del'>-</div><div class='del'>-Thu Aug 14 21:19:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (Init_Thread): Continuation#[] added.  [ruby-talk:79028]</div><div class='del'>-</div><div class='del'>-Thu Aug 14 20:03:34 2003  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (OLE_FREE): should not call</div><div class='del'>-	  ole_message_loop.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_event_free): ditto.</div><div class='del'>-</div><div class='del'>-	* ext/win32ole/win32ole.c (ole_initialize): stop calling</div><div class='del'>-	  OleUninitialize at exit.</div><div class='del'>-</div><div class='del'>-Thu Aug 14 11:27:37 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c (rb_data_object_alloc): check type of 1st argument.</div><div class='del'>-	  [ruby-dev:21192]</div><div class='del'>-</div><div class='del'>-Thu Aug 14 00:21:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.</div><div class='del'>-</div><div class='del'>-	* parse.y (lhs): ditto.</div><div class='del'>-</div><div class='del'>-	* parse.y (yylex): should return tCOLON3 right after kCLASS.</div><div class='del'>-	  [ruby-talk:78918]</div><div class='del'>-</div><div class='del'>-	* error.c (exc_initialize): was converting argument to string too</div><div class='del'>-	  eagerly.  Only check was needed. [ruby-talk:78958]</div><div class='del'>-</div><div class='del'>-Wed Aug 13 23:31:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal/bigdecimal.c .h .html: Ambiguity of</div><div class='del'>-	  BigDecimal::limit removed.</div><div class='del'>-</div><div class='del'>-Wed Aug 13 19:21:34 2003  Christian Neukirchen  &lt;chneukirchen@yahoo.de&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/https.rb (HTTPServer#run): should set syncing-mode</div><div class='del'>-	  to SSLSocket. [ruby-talk:78919]</div><div class='del'>-</div><div class='del'>-Wed Aug 13 18:13:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (POP_BLOCK): turn on BLOCK_LEFT flag when leaving block.</div><div class='del'>-</div><div class='del'>-	* eval.c (proc_invoke): unpack return/break destination when block</div><div class='del'>-	  is already left.</div><div class='del'>-</div><div class='del'>-Wed Aug 13 15:58:31 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_s_alloc): add function prototype to avoid VC++</div><div class='del'>-	  warning.</div><div class='del'>-</div><div class='del'>-Wed Aug 13 13:50:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Win32API/Win32API.c (Win32API_initialize): should pass some</div><div class='del'>-	  class to first argument of Data_Wrap_Struct(). (ruby-bugs:PR#1109)</div><div class='del'>-</div><div class='del'>-Tue Aug 12 16:55:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* Makefile.in: static link libraries to LIBRUBY_SO with static linked</div><div class='del'>-	  ext.  [ruby-dev:21157]</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): sort extension library initialization order.</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): compact $extlibs.</div><div class='del'>-</div><div class='del'>-Tue Aug 12 02:48:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (THREAD_SAVE_CONTEXT): should explicitly turn off the</div><div class='del'>-	  flag before calling getcontext(2).</div><div class='del'>-</div><div class='del'>-	* eval.c (struct thread): add member to save backing store on</div><div class='del'>-	  IA64. (ruby-bugs PR1086)</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_mark): mark IA64 backing store region.</div><div class='del'>-</div><div class='del'>-	* eval.c (thread_free): free saved IA64 backing store.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_save_context): save IA64 backing store as well.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_thread_restore_context): restore IA64 backing store.</div><div class='del'>-</div><div class='del'>-	* eval.c (THREAD_ALLOC): initialize IA64 members.</div><div class='del'>-</div><div class='del'>-Mon Aug 11 22:31:50 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-	* lib/debug.rb(debug_command): inspection command should inspect</div><div class='del'>-	  resulting value even if it's nil.  [ruby-dev:21180] by OMAE, jun</div><div class='del'>-	  &lt;jun66j5@ybb.ne.jp&gt;.</div><div class='del'>-</div><div class='del'>-	* lib/debug.rb(debug_command): incomplete regexp.</div><div class='del'>-</div><div class='del'>-Mon Aug 11 17:33:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call_super): do not use rb_block_given_p() for</div><div class='del'>-	  check. [ruby-talk:78656]</div><div class='del'>-</div><div class='del'>-	* eval.c (BEGIN_CALLARGS): push ITER_NOT only when ITER_PRE.</div><div class='del'>-</div><div class='del'>-Sun Aug 10 10:43:05 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/openssl/lib/openssl/buffering.rb: increase BLOCK_SIZE</div><div class='del'>-	  from 1k to 16k bytes. [ruby-talk:78603]</div><div class='del'>-</div><div class='del'>-	* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): enable</div><div class='del'>-	  partial write to allow interruption in SSLSocket#write.</div><div class='del'>-</div><div class='del'>-Sun Aug 10 00:34:16 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* cygwin/GNUmakefile: remove unnecessary '--drive-name=$(CC)'</div><div class='del'>-	  for ccache.</div><div class='del'>-</div><div class='del'>-Sat Aug  9 10:36:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): do not dump generic instance variable when</div><div class='del'>-	  marshal_dump is defined.</div><div class='del'>-</div><div class='del'>-Sat Aug  9 00:35:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal.c: F style output(like 1234.56789) implemented</div><div class='del'>-	  to to_s method.</div><div class='del'>-	* ext/bigdecimal_??.html: F style output(like 1234.56789)</div><div class='del'>-	  implemented to to_s method.</div><div class='del'>-</div><div class='del'>-Fri Aug  8 12:33:17 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* bcc32/Makefile.sub: rubyw.exe should be a Windows GUI program.</div><div class='del'>-	  add the -aa option to WLDFLAGS.</div><div class='del'>-</div><div class='del'>-Fri Aug  8 11:29:26 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): should set `c_arg' at first.</div><div class='del'>-</div><div class='del'>-Fri Aug  8 03:22:28 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/webrick/httputils.rb (FormData#list): should not take</div><div class='del'>-	  a side effect for the receiver.</div><div class='del'>-</div><div class='del'>-Thu Aug  7 14:40:37 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* cygwin/GNUmakefile: better --disbale-shared option support.</div><div class='del'>-</div><div class='del'>-	* cygwin/GNUmakefile: add forwarding DLL target for cygwin.</div><div class='del'>-</div><div class='del'>-Thu Aug  7 14:21:05 2003  Corinna Vinschen  &lt;vinschen@redhat.com&gt;</div><div class='del'>-</div><div class='del'>-	* configure.in: Fix Cygwin specific naming of libraries to</div><div class='del'>-	  be net distribution compliant. (ruby-bugs:PR#1077)</div><div class='del'>-	  cygwin-ruby18.dll -&gt; cygruby18.dll</div><div class='del'>-</div><div class='del'>-Thu Aug  7 12:51:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_at_exit): should not be called without a block.</div><div class='del'>-	  block_given check added.</div><div class='del'>-</div><div class='del'>-Thu Aug  7 06:46:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): forgot to pop ruby_class.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_call0): update ruby_class as well as ruby_cref.</div><div class='del'>-	  (ruby-bugs-ja:PR#540)</div><div class='del'>-</div><div class='del'>-Thu Aug  7 04:52:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_yield_0): remove ruby_frame-&gt;cbase and unify to</div><div class='del'>-	  ruby_cref.  [ruby-talk:78141]</div><div class='del'>-</div><div class='del'>-Thu Aug  7 04:19:15 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='del'>-</div><div class='del'>-	* gc.c: FreeBSD/ia64's mcontext_t is a bit different from that of</div><div class='del'>-	  Linux/ia64.  This makes gc.c compile but miniruby coredumps for</div><div class='del'>-	  the moment.</div><div class='del'>-</div><div class='del'>-Thu Aug  7 00:15:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/bigdecimal.c: Comparison results adjusted to Float's.</div><div class='del'>-	* ext/bigdecimal.c: Use rb_num_coerce_????(x,y) instead of own.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 22:58:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/test/unit/testcase.rb: Added equality checking.</div><div class='del'>-	* lib/test/unit/testsuite.rb: Added equality checking.</div><div class='del'>-	* lib/test/unit/assertions.rb: Fixed a warning.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 17:28:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): pass LIBPATH to make ruby.  [ruby-dev:21137]</div><div class='del'>-</div><div class='del'>-	* ext/extmk.rb (extmake): set library name as source file name in</div><div class='del'>-	  Init_ext().  [ruby-dev:21137]</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (Logging::postpone): postpone logging messages after</div><div class='del'>-	  heading message as the result of the block.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (macro_defined?): append newline to src unless ended</div><div class='del'>-	  with it.</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (have_library): treat nil function name as "main".</div><div class='del'>-	  (ruby-bugs:PR#1083)</div><div class='del'>-</div><div class='del'>-	* lib/mkmf.rb (pkg_config): should append additional libraries to</div><div class='del'>-	  $libs but not $LIBS.  [ruby-dev:21137]</div><div class='del'>-</div><div class='del'>-	* ext/io/wait/extconf.rb: check DOSISH macro instead of platform.</div><div class='del'>-</div><div class='del'>-	* ext/digest/sha1/extconf.rb: have_library already appends library</div><div class='del'>-	  name.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 17:23:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c: initialize /* OK */ variables by Qnil to stop warnings.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 04:58:32 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* ext/Setup*: add io/wait and openssl.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 01:13:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_autoload): use ruby_cbase instead of ruby_class.</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_f_autoload_p): ditto.</div><div class='del'>-</div><div class='del'>-	* class.c (rb_mod_init_copy): no longer implements independent</div><div class='del'>-	  clone and dup methods.  override "initialize_copy" instead.</div><div class='del'>-	  [ruby-core:01352]</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_s_alloc): define Class allocation function.</div><div class='del'>-	  this makes Classes to follow clone framework that uses</div><div class='del'>-	  initialize_copy.</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_initialize): separate instantiation and</div><div class='del'>-	  initialization.</div><div class='del'>-</div><div class='del'>-	* object.c (rb_obj_alloc): prohibit instantiation from</div><div class='del'>-	  uninitialized class.</div><div class='del'>-</div><div class='del'>-	* object.c (rb_class_superclass): check uninitialized class.</div><div class='del'>-</div><div class='del'>-	* array.c (rb_ary_fill): wrong index processing with block.  this</div><div class='del'>-	  fix was done by Koji Arai &lt;JCA02266@nifty.ne.jp&gt; [ruby-list:38029]</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): should preserve generic ivar for nil,</div><div class='del'>-	  true, false, symbols, and fixnums.</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_uclass): base_klass check should be done after</div><div class='del'>-	  rb_class_real().</div><div class='del'>-</div><div class='del'>-Wed Aug  6 01:18:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='del'>-</div><div class='del'>-	* lib/net/http.rb: update document.</div><div class='del'>-</div><div class='del'>-	* lib/net/pop.rb: ditto.</div><div class='del'>-</div><div class='del'>-	* lib/net/protocol.rb: ditto.</div><div class='del'>-</div><div class='del'>-Wed Aug  6 00:48:37 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='del'>-</div><div class='del'>-	* marshal.c (w_object): should recommend marshal_dump rather than</div><div class='del'>-	  _dump_data.</div><div class='del'>-</div><div class='del'>-Tue Aug  5 17:58:57 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/fileutils.rb (install): should preserve timestamp only.</div><div class='del'>-</div><div class='del'>-Tue Aug  5 17:31:59 2003  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='del'>-</div><div class='del'>-	* lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir):</div><div class='del'>-	  simple typo.</div><div class='del'>-</div><div class='del'>-Tue Aug  5 15:47:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* eval.c (rb_load): should preserve current source file/line.</div><div class='del'>-</div><div class='del'>-Tue Aug  5 10:04:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* string.c (str_new4): ptr may refer null_str.</div><div class='del'>-</div><div class='del'>-Mon Aug  4 17:25:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-	* stable version 1.8.0 released.</div><div class='del'>-</div><div class='del'>-For the changes before 1.8.0, see doc/ChangeLog-1.8.0</div><div class='del'>-</div><div class='del'>-Local variables:</div><div class='del'>-add-log-time-format: (lambda ()</div><div class='del'>-  (let* ((time (current-time))</div><div class='del'>-	 (diff (+ (cadr time) 32400))</div><div class='del'>-	 (lo (% diff 65536))</div><div class='del'>-	 (hi  (+ (car time) (/ diff 65536))))</div><div class='del'>-  (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))</div><div class='del'>-indent-tabs-mode: t</div><div class='del'>-tab-width: 8</div><div class='del'>-end:</div><div class='head'>diff --git a/GPL b/GPL<br/>index 5b6e7c66c2..d159169d10 100644<br/>--- a/<a href='/ruby.git/tree/GPL?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>GPL</a><br/>+++ b/<a href='/ruby.git/tree/GPL?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>GPL</a></div><div class='hunk'>@@ -1,12 +1,12 @@</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='del'>-		       Version 2, June 1991</div><div class='add'>+                    GNU GENERAL PUBLIC LICENSE</div><div class='add'>+                       Version 2, June 1991</div><div class='ctx'> </div><div class='del'>- Copyright (C) 1989, 1991 Free Software Foundation, Inc.</div><div class='del'>-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='add'>+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,</div><div class='add'>+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</div><div class='ctx'>  Everyone is permitted to copy and distribute verbatim copies</div><div class='ctx'>  of this license document, but changing it is not allowed.</div><div class='ctx'> </div><div class='del'>-			    Preamble</div><div class='add'>+                            Preamble</div><div class='ctx'> </div><div class='ctx'>   The licenses for most software are designed to take away your</div><div class='ctx'> freedom to share and change it.  By contrast, the GNU General Public</div><div class='hunk'>@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users.  This</div><div class='ctx'> General Public License applies to most of the Free Software</div><div class='ctx'> Foundation's software and to any other program whose authors commit to</div><div class='ctx'> using it.  (Some other Free Software Foundation software is covered by</div><div class='del'>-the GNU Library General Public License instead.)  You can apply it to</div><div class='add'>+the GNU Lesser General Public License instead.)  You can apply it to</div><div class='ctx'> your programs, too.</div><div class='ctx'> </div><div class='ctx'>   When we speak of free software, we are referring to freedom, not</div><div class='hunk'>@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.</div><div class='ctx'> </div><div class='ctx'>   The precise terms and conditions for copying, distribution and</div><div class='ctx'> modification follow.</div><div class='del'>-</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='add'>+</div><div class='add'>+                    GNU GENERAL PUBLIC LICENSE</div><div class='ctx'>    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</div><div class='ctx'> </div><div class='ctx'>   0. This License applies to any program or other work which contains</div><div class='hunk'>@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:</div><div class='ctx'>     License.  (Exception: if the Program itself is interactive but</div><div class='ctx'>     does not normally print such an announcement, your work based on</div><div class='ctx'>     the Program is not required to print an announcement.)</div><div class='del'>-</div><div class='add'>+</div><div class='ctx'> These requirements apply to the modified work as a whole.  If</div><div class='ctx'> identifiable sections of that work are not derived from the Program,</div><div class='ctx'> and can be reasonably considered independent and separate works in</div><div class='hunk'>@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent</div><div class='ctx'> access to copy the source code from the same place counts as</div><div class='ctx'> distribution of the source code, even though third parties are not</div><div class='ctx'> compelled to copy the source along with the object code.</div><div class='del'>-</div><div class='add'>+</div><div class='ctx'>   4. You may not copy, modify, sublicense, or distribute the Program</div><div class='ctx'> except as expressly provided under this License.  Any attempt</div><div class='ctx'> otherwise to copy, modify, sublicense or distribute the Program is</div><div class='hunk'>@@ -225,7 +225,7 @@ impose that choice.</div><div class='ctx'> </div><div class='ctx'> This section is intended to make thoroughly clear what is believed to</div><div class='ctx'> be a consequence of the rest of this License.</div><div class='del'>-</div><div class='add'>+</div><div class='ctx'>   8. If the distribution and/or use of the Program is restricted in</div><div class='ctx'> certain countries either by patents or by copyrighted interfaces, the</div><div class='ctx'> original copyright holder who places the Program under this License</div><div class='hunk'>@@ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals</div><div class='ctx'> of preserving the free status of all derivatives of our free software and</div><div class='ctx'> of promoting the sharing and reuse of software generally.</div><div class='ctx'> </div><div class='del'>-			    NO WARRANTY</div><div class='add'>+                            NO WARRANTY</div><div class='ctx'> </div><div class='ctx'>   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</div><div class='ctx'> FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN</div><div class='hunk'>@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</div><div class='ctx'> PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</div><div class='ctx'> POSSIBILITY OF SUCH DAMAGES.</div><div class='ctx'> </div><div class='del'>-		     END OF TERMS AND CONDITIONS</div><div class='del'>-</div><div class='del'>-	    How to Apply These Terms to Your New Programs</div><div class='add'>+                     END OF TERMS AND CONDITIONS</div><div class='add'>+</div><div class='add'>+            How to Apply These Terms to Your New Programs</div><div class='ctx'> </div><div class='ctx'>   If you develop a new program, and you want it to be of the greatest</div><div class='ctx'> possible use to the public, the best way to achieve this is to make it</div><div class='hunk'>@@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.</div><div class='ctx'>     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='ctx'>     GNU General Public License for more details.</div><div class='ctx'> </div><div class='del'>-    You should have received a copy of the GNU General Public License</div><div class='del'>-    along with this program; if not, write to the Free Software</div><div class='del'>-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>-</div><div class='add'>+    You should have received a copy of the GNU General Public License along</div><div class='add'>+    with this program; if not, write to the Free Software Foundation, Inc.,</div><div class='add'>+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</div><div class='ctx'> </div><div class='ctx'> Also add information on how to contact you by electronic and paper mail.</div><div class='ctx'> </div><div class='hunk'>@@ -336,5 +335,5 @@ necessary.  Here is a sample; alter the names:</div><div class='ctx'> This General Public License does not permit incorporating your program into</div><div class='ctx'> proprietary programs.  If your program is a subroutine library, you may</div><div class='ctx'> consider it more useful to permit linking proprietary applications with the</div><div class='del'>-library.  If this is what you want to do, use the GNU Library General</div><div class='add'>+library.  If this is what you want to do, use the GNU Lesser General</div><div class='ctx'> Public License instead of this License.</div><div class='head'>diff --git a/KNOWNBUGS.rb b/KNOWNBUGS.rb<br/>new file mode 100644<br/>index 0000000000..35a8e75876<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/KNOWNBUGS.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>KNOWNBUGS.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+#</div><div class='add'>+# IMPORTANT: Always keep the first 7 lines (comments),</div><div class='add'>+# even if this file is otherwise empty.</div><div class='add'>+#</div><div class='add'>+# This test file includes tests which point out known bugs.</div><div class='add'>+# So all tests will cause failure.</div><div class='add'>+#</div><div class='head'>diff --git a/LEGAL b/LEGAL<br/>index 908eb270f5..0479751691 100644<br/>--- a/<a href='/ruby.git/tree/LEGAL?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>LEGAL</a><br/>+++ b/<a href='/ruby.git/tree/LEGAL?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>LEGAL</a></div><div class='hunk'>@@ -5,34 +5,190 @@ All the files in this distribution are covered under either the Ruby's</div><div class='ctx'> license (see the file COPYING) or public-domain except some files</div><div class='ctx'> mentioned below.</div><div class='ctx'> </div><div class='del'>-regex.[ch]:</div><div class='del'>-</div><div class='del'>-  These files are under LGPL.  Treat them as LGPL says. (See the file</div><div class='del'>-  LGPL for details)</div><div class='del'>-</div><div class='del'>-    Extended regular expression matching and search library.</div><div class='del'>-    Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-    The GNU C Library is free software; you can redistribute it and/or</div><div class='del'>-    modify it under the terms of the GNU Library General Public License as</div><div class='del'>-    published by the Free Software Foundation; either version 2 of the</div><div class='del'>-    License, or (at your option) any later version.</div><div class='del'>-</div><div class='del'>-    The GNU C Library is distributed in the hope that it will be useful,</div><div class='del'>-    but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>-    Library General Public License for more details.</div><div class='del'>-</div><div class='del'>-    You should have received a copy of the GNU Library General Public</div><div class='del'>-    License along with the GNU C Library; see the file LGPL.  If not,</div><div class='del'>-    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>-    Boston, MA 02111-1307, USA.  */</div><div class='del'>-</div><div class='del'>-    Multi-byte extension added May, 1993 by t^2 (Takahiro Tanimoto)</div><div class='del'>-    Last change: May 21, 1993 by t^2</div><div class='del'>-    removed gapped buffer support, multiple syntax support by matz &lt;matz@nts.co.jp&gt;</div><div class='del'>-    Perl5 extension added by matz &lt;matz@caelum.co.jp&gt;</div><div class='del'>-    UTF-8 extension added Jan 16 1999 by Yoshida Masato  &lt;yoshidam@tau.bekkoame.ne.jp&gt;</div><div class='add'>+ccan/build_assert/build_assert.h</div><div class='add'>+ccan/check_type/check_type.h</div><div class='add'>+ccan/container_of/container_of.h</div><div class='add'>+ccan/str/str.h</div><div class='add'>+</div><div class='add'>+  These files are licensed under the CC0.</div><div class='add'>+</div><div class='add'>+    https://creativecommons.org/choose/zero/</div><div class='add'>+</div><div class='add'>+ccan/list/list.h</div><div class='add'>+</div><div class='add'>+  This file is licensed under the MIT License.</div><div class='add'>+</div><div class='add'>+    Permission is hereby granted, free of charge, to any person obtaining a copy</div><div class='add'>+    of this software and associated documentation files (the "Software"), to deal</div><div class='add'>+    in the Software without restriction, including without limitation the rights</div><div class='add'>+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</div><div class='add'>+    copies of the Software, and to permit persons to whom the Software is</div><div class='add'>+    furnished to do so, subject to the following conditions:</div><div class='add'>+</div><div class='add'>+    The above copyright notice and this permission notice shall be included in</div><div class='add'>+    all copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</div><div class='add'>+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</div><div class='add'>+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</div><div class='add'>+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</div><div class='add'>+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</div><div class='add'>+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</div><div class='add'>+    THE SOFTWARE.</div><div class='add'>+</div><div class='add'>+include/ruby/onigmo.h:</div><div class='add'>+include/ruby/oniguruma.h:</div><div class='add'>+regcomp.c:</div><div class='add'>+regenc.[ch]:</div><div class='add'>+regerror.c:</div><div class='add'>+regexec.c:</div><div class='add'>+regint.h:</div><div class='add'>+regparse.[ch]:</div><div class='add'>+enc/ascii.c</div><div class='add'>+enc/big5.c</div><div class='add'>+enc/cp949.c</div><div class='add'>+enc/emacs_mule.c</div><div class='add'>+enc/encdb.c</div><div class='add'>+enc/euc_jp.c</div><div class='add'>+enc/euc_kr.c</div><div class='add'>+enc/euc_tw.c</div><div class='add'>+enc/gb18030.c</div><div class='add'>+enc/gb2312.c</div><div class='add'>+enc/gbk.c</div><div class='add'>+enc/iso_8859_1.c</div><div class='add'>+enc/iso_8859_10.c</div><div class='add'>+enc/iso_8859_11.c</div><div class='add'>+enc/iso_8859_13.c</div><div class='add'>+enc/iso_8859_14.c</div><div class='add'>+enc/iso_8859_15.c</div><div class='add'>+enc/iso_8859_16.c</div><div class='add'>+enc/iso_8859_2.c</div><div class='add'>+enc/iso_8859_3.c</div><div class='add'>+enc/iso_8859_4.c</div><div class='add'>+enc/iso_8859_5.c</div><div class='add'>+enc/iso_8859_6.c</div><div class='add'>+enc/iso_8859_7.c</div><div class='add'>+enc/iso_8859_8.c</div><div class='add'>+enc/iso_8859_9.c</div><div class='add'>+enc/koi8_r.c</div><div class='add'>+enc/koi8_u.c</div><div class='add'>+enc/shift_jis.c</div><div class='add'>+enc/unicode.c</div><div class='add'>+enc/us_ascii.c</div><div class='add'>+enc/utf_16be.c</div><div class='add'>+enc/utf_16le.c</div><div class='add'>+enc/utf_32be.c</div><div class='add'>+enc/utf_32le.c</div><div class='add'>+enc/utf_8.c</div><div class='add'>+enc/windows_1251.c</div><div class='add'>+</div><div class='add'>+Onigmo (Oniguruma-mod) LICENSE</div><div class='add'>+------------------------------</div><div class='add'>+</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2009  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+ * Copyright (c) 2011-2014  K.Takata  &lt;kentkt AT csc DOT jp&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ *</div><div class='add'>+ * Redistribution and use in source and binary forms, with or without</div><div class='add'>+ * modification, are permitted provided that the following conditions</div><div class='add'>+ * are met:</div><div class='add'>+ * 1. Redistributions of source code must retain the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer.</div><div class='add'>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer in the</div><div class='add'>+ *    documentation and/or other materials provided with the distribution.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+ * SUCH DAMAGE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Oniguruma LICENSE</div><div class='add'>+-----------------</div><div class='add'>+</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2009  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ *</div><div class='add'>+ * Redistribution and use in source and binary forms, with or without</div><div class='add'>+ * modification, are permitted provided that the following conditions</div><div class='add'>+ * are met:</div><div class='add'>+ * 1. Redistributions of source code must retain the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer.</div><div class='add'>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer in the</div><div class='add'>+ *    documentation and/or other materials provided with the distribution.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+ * SUCH DAMAGE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+https://github.com/k-takata/Onigmo/</div><div class='add'>+https://github.com/kkos/oniguruma</div><div class='add'>+https://svnweb.freebsd.org/ports/head/devel/oniguruma/</div><div class='add'>+</div><div class='add'>+   When this software is partly used or it is distributed with Ruby,</div><div class='add'>+   this of Ruby follows the license of Ruby.</div><div class='add'>+</div><div class='add'>+enc/trans/GB/GB12345%UCS.src:</div><div class='add'>+enc/trans/GB/UCS%GB12345.src:</div><div class='add'>+enc/trans/GB/GB2312%UCS.src:</div><div class='add'>+enc/trans/GB/UCS%GB2312.src:</div><div class='add'>+</div><div class='add'>+    This mapping data was created from files provided by Unicode, Inc.</div><div class='add'>+    (The Unicode Consortium). The files were used to create a product supporting</div><div class='add'>+    Unicode, as explicitly permitted in the files' copyright notices.</div><div class='add'>+    Please note that Unicode, Inc. never made any claims as to fitness of these</div><div class='add'>+    files for any particular purpose, and has ceased to publish the files many</div><div class='add'>+    years ago.</div><div class='add'>+</div><div class='add'>+enc/trans/JIS/JISX0201-KANA%UCS.src:</div><div class='add'>+enc/trans/JIS/JISX0208@1990%UCS.src:</div><div class='add'>+enc/trans/JIS/JISX0212%UCS.src:</div><div class='add'>+enc/trans/JIS/UCS%JISX0201-KANA.src:</div><div class='add'>+enc/trans/JIS/UCS%JISX0208@1990.src:</div><div class='add'>+enc/trans/JIS/UCS%JISX0212.src:</div><div class='add'>+</div><div class='add'>+    Â© 2015 UnicodeÂ®, Inc.</div><div class='add'>+    For terms of use, see http://www.unicode.org/terms_of_use.html</div><div class='add'>+</div><div class='add'>+enc/trans/JIS/JISX0213-1%UCS@BMP.src:</div><div class='add'>+enc/trans/JIS/JISX0213-1%UCS@SIP.src:</div><div class='add'>+enc/trans/JIS/JISX0213-2%UCS@BMP.src:</div><div class='add'>+enc/trans/JIS/JISX0213-2%UCS@SIP.src:</div><div class='add'>+</div><div class='add'>+ 	Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.</div><div class='add'>+ 	Copyright (C) 2001 I'O, All Rights Reserved.</div><div class='add'>+ 	Copyright (C) 2006 Project X0213, All Rights Reserved.</div><div class='add'>+ 	You can use, modify, distribute this table freely.</div><div class='add'>+</div><div class='add'>+enc/trans/JIS/UCS@BMP%JISX0213-1.src:</div><div class='add'>+enc/trans/JIS/UCS@BMP%JISX0213-2.src:</div><div class='add'>+enc/trans/JIS/UCS@SIP%JISX0213-1.src:</div><div class='add'>+enc/trans/JIS/UCS@SIP%JISX0213-2.src:</div><div class='add'>+</div><div class='add'>+ 	Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.</div><div class='add'>+ 	Copyright (C) 2001 I'O, All Rights Reserved.</div><div class='add'>+ 	You can use, modify, distribute this table freely.</div><div class='ctx'> </div><div class='ctx'> configure:</div><div class='ctx'> </div><div class='hunk'>@@ -43,9 +199,8 @@ configure:</div><div class='ctx'>     This configure script is free software; the Free Software Foundation</div><div class='ctx'>     gives unlimited permission to copy, distribute and modify it.</div><div class='ctx'> </div><div class='del'>-config.guess:</div><div class='del'>-config.sub:</div><div class='del'>-parse.c:</div><div class='add'>+tool/config.guess:</div><div class='add'>+tool/config.sub:</div><div class='ctx'> </div><div class='ctx'>   As long as you distribute these files with the file configure, they</div><div class='ctx'>   are covered under the Ruby's license.</div><div class='hunk'>@@ -72,7 +227,58 @@ parse.c:</div><div class='ctx'>     configuration script generated by Autoconf, you may include it under</div><div class='ctx'>     the same distribution terms that you use for the rest of that program.</div><div class='ctx'> </div><div class='add'>+parse.c:</div><div class='add'>+</div><div class='add'>+  This file is licensed under the GPL, but is incorporated into Ruby and</div><div class='add'>+  redistributed under the terms of the Ruby license, as permitted by the</div><div class='add'>+  exception to the GPL below.</div><div class='add'>+</div><div class='add'>+     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006</div><div class='add'>+     Free Software Foundation, Inc.</div><div class='add'>+</div><div class='add'>+     This program is free software; you can redistribute it and/or modify</div><div class='add'>+     it under the terms of the GNU General Public License as published by</div><div class='add'>+     the Free Software Foundation; either version 2, or (at your option)</div><div class='add'>+     any later version.</div><div class='add'>+</div><div class='add'>+     This program is distributed in the hope that it will be useful,</div><div class='add'>+     but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='add'>+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='add'>+     GNU General Public License for more details.</div><div class='add'>+</div><div class='add'>+     You should have received a copy of the GNU General Public License</div><div class='add'>+     along with this program; if not, write to the Free Software</div><div class='add'>+     Foundation, Inc., 51 Franklin Street, Fifth Floor,</div><div class='add'>+     Boston, MA 02110-1301, USA.  */</div><div class='add'>+</div><div class='add'>+  /* As a special exception, you may create a larger work that contains</div><div class='add'>+     part or all of the Bison parser skeleton and distribute that work</div><div class='add'>+     under terms of your choice, so long as that work isn't itself a</div><div class='add'>+     parser generator using the skeleton or a modified version thereof</div><div class='add'>+     as a parser skeleton.  Alternatively, if you modify or redistribute</div><div class='add'>+     the parser skeleton itself, you may (at your option) remove this</div><div class='add'>+     special exception, which will cause the skeleton and the resulting</div><div class='add'>+     Bison output files to be licensed under the GNU General Public</div><div class='add'>+     License without this special exception.</div><div class='add'>+</div><div class='add'>+     This special exception was added by the Free Software Foundation in</div><div class='add'>+     version 2.2 of Bison.  */</div><div class='add'>+</div><div class='ctx'> util.c (partly):</div><div class='add'>+</div><div class='add'>+    Copyright (c) 1991, 2000, 2001 by Lucent Technologies.</div><div class='add'>+</div><div class='add'>+    Permission to use, copy, modify, and distribute this software for any</div><div class='add'>+    purpose without fee is hereby granted, provided that this entire notice</div><div class='add'>+    is included in all copies of any software which is or includes a copy</div><div class='add'>+    or modification of this software and in all copies of the supporting</div><div class='add'>+    documentation for such software.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED</div><div class='add'>+    WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY</div><div class='add'>+    REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY</div><div class='add'>+    OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.</div><div class='add'>+</div><div class='ctx'> win32/win32.[ch]:</div><div class='ctx'> </div><div class='ctx'>   You can apply the Artistic License to these files. (or GPL,</div><div class='hunk'>@@ -83,6 +289,32 @@ win32/win32.[ch]:</div><div class='ctx'>     You may distribute under the terms of either the GNU General Public</div><div class='ctx'>     License or the Artistic License, as specified in the perl README file.</div><div class='ctx'> </div><div class='add'>+util.c (partly):</div><div class='add'>+</div><div class='add'>+   Copyright (c) 2004-2008 David Schultz &lt;das@FreeBSD.ORG&gt;</div><div class='add'>+   All rights reserved.</div><div class='add'>+</div><div class='add'>+   Redistribution and use in source and binary forms, with or without</div><div class='add'>+   modification, are permitted provided that the following conditions</div><div class='add'>+   are met:</div><div class='add'>+   1. Redistributions of source code must retain the above copyright</div><div class='add'>+      notice, this list of conditions and the following disclaimer.</div><div class='add'>+   2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+      notice, this list of conditions and the following disclaimer in the</div><div class='add'>+      documentation and/or other materials provided with the distribution.</div><div class='add'>+</div><div class='add'>+   THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+   FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+   OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+   SUCH DAMAGE.</div><div class='add'>+</div><div class='ctx'> random.c</div><div class='ctx'> </div><div class='ctx'>   This file is under the new-style BSD license.</div><div class='hunk'>@@ -92,11 +324,11 @@ random.c</div><div class='ctx'>     This is a faster version by taking Shawn Cokus's optimization,</div><div class='ctx'>     Matthe Bellew's simplification, Isaku Wada's real version.</div><div class='ctx'> </div><div class='del'>-    Before using, initialize the state by using init_genrand(seed) </div><div class='add'>+    Before using, initialize the state by using init_genrand(seed)</div><div class='ctx'>     or init_by_array(init_key, key_length).</div><div class='ctx'> </div><div class='ctx'>     Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,</div><div class='del'>-    All rights reserved.                          </div><div class='add'>+    All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -109,8 +341,8 @@ random.c</div><div class='ctx'> 	 notice, this list of conditions and the following disclaimer in the</div><div class='ctx'> 	 documentation and/or other materials provided with the distribution.</div><div class='ctx'> </div><div class='del'>-      3. The names of its contributors may not be used to endorse or promote </div><div class='del'>-	 products derived from this software without specific prior written </div><div class='add'>+      3. The names of its contributors may not be used to endorse or promote</div><div class='add'>+	 products derived from this software without specific prior written</div><div class='ctx'> 	 permission.</div><div class='ctx'> </div><div class='ctx'>     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</div><div class='hunk'>@@ -130,72 +362,147 @@ random.c</div><div class='ctx'>     http://www.math.keio.ac.jp/matumoto/emt.html</div><div class='ctx'>     email: matumoto@math.keio.ac.jp</div><div class='ctx'> </div><div class='del'>-st.[ch]:</div><div class='del'>-x68/*:</div><div class='add'>+  The Wayback Machine url: http://web.archive.org/web/19990429082237/http://www.math.keio.ac.jp/matumoto/emt.html</div><div class='add'>+</div><div class='add'>+vm_dump.c:procstat_vm</div><div class='add'>+</div><div class='add'>+  This file is under the new-style BSD license.</div><div class='add'>+</div><div class='add'>+    Copyright (c) 2007 Robert N. M. Watson</div><div class='add'>+    All rights reserved.</div><div class='add'>+</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+    $FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $</div><div class='add'>+</div><div class='add'>+vsnprintf.c:</div><div class='add'>+</div><div class='add'>+  This file is under the old-style BSD license.  Note that the</div><div class='add'>+  paragraph 3 below is now null and void.</div><div class='add'>+</div><div class='add'>+    Copyright (c) 1990, 1993</div><div class='add'>+         The Regents of the University of California.  All rights reserved.</div><div class='add'>+</div><div class='add'>+    This code is derived from software contributed to Berkeley by</div><div class='add'>+    Chris Torek.</div><div class='add'>+</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+    3. Neither the name of the University nor the names of its contributors</div><div class='add'>+       may be used to endorse or promote products derived from this software</div><div class='add'>+       without specific prior written permission.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+    IMPORTANT NOTE:</div><div class='add'>+    --------------</div><div class='add'>+    From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change</div><div class='add'>+    paragraph 3 above is now null and void.</div><div class='add'>+</div><div class='add'>+st.c:</div><div class='add'>+strftime.c:</div><div class='add'>+include/ruby/st.h:</div><div class='add'>+missing/acosh.c:</div><div class='ctx'> missing/alloca.c:</div><div class='ctx'> missing/dup2.c:</div><div class='add'>+missing/erf.c:</div><div class='ctx'> missing/finite.c:</div><div class='ctx'> missing/hypot.c:</div><div class='ctx'> missing/isinf.c:</div><div class='ctx'> missing/isnan.c:</div><div class='add'>+missing/lgamma_r.c:</div><div class='ctx'> missing/memcmp.c:</div><div class='ctx'> missing/memmove.c:</div><div class='del'>-missing/strcasecmp.c:</div><div class='ctx'> missing/strchr.c:</div><div class='del'>-missing/streror.c:</div><div class='del'>-missing/strftime.c:</div><div class='del'>-missing/strncasecmp.c:</div><div class='add'>+missing/strerror.c:</div><div class='ctx'> missing/strstr.c:</div><div class='del'>-missing/strtol.c:</div><div class='add'>+missing/tgamma.c:</div><div class='add'>+ext/date/date_strftime.c:</div><div class='ctx'> ext/digest/sha1/sha1.[ch]:</div><div class='add'>+ext/sdbm/_sdbm.c:</div><div class='add'>+ext/sdbm/sdbm.h:</div><div class='ctx'> </div><div class='ctx'>   These files are all under public domain.</div><div class='ctx'> </div><div class='del'>-missing/strtod.c:</div><div class='del'>-</div><div class='del'>-  This file will not be used on most platforms depending on how the</div><div class='del'>-  configure script results.  In any case you must not receive any fee</div><div class='del'>-  with the file itself.</div><div class='del'>-</div><div class='del'>-    Copyright (c) 1988-1993 The Regents of the University of California.</div><div class='del'>-    Copyright (c) 1994 Sun Microsystems, Inc.</div><div class='add'>+missing/crypt.c:</div><div class='ctx'> </div><div class='del'>-    Permission to use, copy, modify, and distribute this</div><div class='del'>-    software and its documentation for any purpose and without</div><div class='del'>-    fee is hereby granted, provided that the above copyright</div><div class='del'>-    notice appear in all copies.  The University of California</div><div class='del'>-    makes no representations about the suitability of this</div><div class='del'>-    software for any purpose.  It is provided "as is" without</div><div class='del'>-    express or implied warranty.</div><div class='add'>+  This file is under the old-style BSD license.  Note that the</div><div class='add'>+  paragraph 3 below is now null and void.</div><div class='ctx'> </div><div class='del'>-missing/strtoul.c:</div><div class='add'>+    Copyright (c) 1989, 1993</div><div class='add'>+    	The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='del'>-  This file will not be used on most platforms depending on how the</div><div class='del'>-  configure script results.  In any case you must not receive any fee</div><div class='del'>-  with the file itself.</div><div class='add'>+    This code is derived from software contributed to Berkeley by</div><div class='add'>+    Tom Truscott.</div><div class='ctx'> </div><div class='del'>-    Copyright 1988 Regents of the University of California</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+    3. Neither the name of the University nor the names of its contributors</div><div class='add'>+       may be used to endorse or promote products derived from this software</div><div class='add'>+       without specific prior written permission.</div><div class='ctx'> </div><div class='del'>-    Permission to use, copy, modify, and distribute this</div><div class='del'>-    software and its documentation for any purpose and without</div><div class='del'>-    fee is hereby granted, provided that the above copyright</div><div class='del'>-    notice appear in all copies.  The University of California</div><div class='del'>-    makes no representations about the suitability of this</div><div class='del'>-    software for any purpose.  It is provided "as is" without</div><div class='del'>-    express or implied warranty.</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-missing/erf.c:</div><div class='del'>-missing/crypt.c:</div><div class='del'>-missing/vsnprintf.c:</div><div class='add'>+missing/setproctitle.c</div><div class='ctx'> </div><div class='ctx'>   This file is under the old-style BSD license.  Note that the</div><div class='ctx'>   paragraph 3 below is now null and void.</div><div class='ctx'> </div><div class='del'>-    Copyright (c) 1990, 1993</div><div class='del'>-         The Regents of the University of California.  All rights reserved.</div><div class='del'>-</div><div class='del'>-    This code is derived from software contributed to Berkeley by</div><div class='del'>-    Chris Torek.</div><div class='add'>+    Copyright 2003 Damien Miller</div><div class='add'>+    Copyright (c) 1983, 1995-1997 Eric P. Allman</div><div class='add'>+    Copyright (c) 1988, 1993</div><div class='add'>+    	The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -221,10 +528,35 @@ missing/vsnprintf.c:</div><div class='ctx'>     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='ctx'>     SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-    IMPORTANT NOTE:</div><div class='del'>-    --------------</div><div class='del'>-    From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change</div><div class='del'>-    paragraph 3 above is now null and void.</div><div class='add'>+missing/strlcat.c</div><div class='add'>+missing/strlcpy.c</div><div class='add'>+</div><div class='add'>+  These files are under an ISC-style license.</div><div class='add'>+</div><div class='add'>+    Copyright (c) 1998, 2015 Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;</div><div class='add'>+</div><div class='add'>+    Permission to use, copy, modify, and distribute this software for any</div><div class='add'>+    purpose with or without fee is hereby granted, provided that the above</div><div class='add'>+    copyright notice and this permission notice appear in all copies.</div><div class='add'>+</div><div class='add'>+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES</div><div class='add'>+    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF</div><div class='add'>+    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR</div><div class='add'>+    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES</div><div class='add'>+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN</div><div class='add'>+    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</div><div class='add'>+    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</div><div class='add'>+</div><div class='add'>+missing/langinfo.c</div><div class='add'>+</div><div class='add'>+  This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.</div><div class='add'>+  Ruby uses a modified version. The file contains the following</div><div class='add'>+  author/copyright notice:</div><div class='add'>+</div><div class='add'>+  Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11</div><div class='add'>+  Permission to use, copy, modify, and distribute this software</div><div class='add'>+  for any purpose and without fee is hereby granted. The author</div><div class='add'>+  disclaims all warranties with regard to this software.</div><div class='ctx'> </div><div class='ctx'> ext/digest/md5/md5.[ch]:</div><div class='ctx'> </div><div class='hunk'>@@ -264,18 +596,7 @@ ext/digest/rmd160/rmd160.[ch]:</div><div class='ctx'>     Copyright (c) Katholieke Universiteit Leuven</div><div class='ctx'>     1996, All Rights Reserved</div><div class='ctx'> </div><div class='del'>-ext/digest/rmd160/rmd160hl.c:</div><div class='del'>-ext/digest/sha1/sha1hl.c:</div><div class='del'>-</div><div class='del'>-  These files are under the beer-ware license.</div><div class='del'>-</div><div class='del'>-    "THE BEER-WARE LICENSE" (Revision 42):</div><div class='del'>-    &lt;phk@login.dkuug.dk&gt; wrote this file.  As long as you retain this notice you</div><div class='del'>-    can do whatever you want with this stuff. If we meet some day, and you think</div><div class='del'>-    this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp</div><div class='del'>-</div><div class='ctx'> ext/digest/sha2/sha2.[ch]:</div><div class='del'>-ext/digest/sha2/sha2hl.c:</div><div class='ctx'> </div><div class='ctx'>   These files are under the new-style BSD license.</div><div class='ctx'> </div><div class='hunk'>@@ -305,6 +626,28 @@ ext/digest/sha2/sha2hl.c:</div><div class='ctx'>     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='ctx'>     SUCH DAMAGE.</div><div class='ctx'> </div><div class='add'>+ext/json/generator/generator.c:</div><div class='add'>+</div><div class='add'>+    Copyright 2001-2004 Unicode, Inc.</div><div class='add'>+</div><div class='add'>+    Disclaimer</div><div class='add'>+</div><div class='add'>+    This source code is provided as is by Unicode, Inc. No claims are</div><div class='add'>+    made as to fitness for any particular purpose. No warranties of any</div><div class='add'>+    kind are expressed or implied. The recipient agrees to determine</div><div class='add'>+    applicability of information provided. If this file has been</div><div class='add'>+    purchased on magnetic or optical media from Unicode, Inc., the</div><div class='add'>+    sole remedy for any claim will be exchange of defective media</div><div class='add'>+    within 90 days of receipt.</div><div class='add'>+</div><div class='add'>+    Limitations on Rights to Redistribute This Code</div><div class='add'>+</div><div class='add'>+    Unicode, Inc. hereby grants the right to freely use the information</div><div class='add'>+    supplied in this file in the creation of products supporting the</div><div class='add'>+    Unicode Standard, and to make copies of this file in any form</div><div class='add'>+    for internal or external distribution as long as this notice</div><div class='add'>+    remains attached.</div><div class='add'>+</div><div class='ctx'> ext/nkf/nkf-utf8/config.h:</div><div class='ctx'> ext/nkf/nkf-utf8/nkf.c:</div><div class='ctx'> ext/nkf/nkf-utf8/utf8tbl.c:</div><div class='hunk'>@@ -313,7 +656,7 @@ ext/nkf/nkf-utf8/utf8tbl.c:</div><div class='ctx'>   copyrighted semi-public-domain software.</div><div class='ctx'> </div><div class='ctx'>     Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)</div><div class='del'>-       Everyone is permitted to do anything on this program </div><div class='add'>+       Everyone is permitted to do anything on this program</div><div class='ctx'>        including copying, modifying, improving,</div><div class='ctx'>        as long as you don't try to pretend that you wrote it.</div><div class='ctx'>        i.e., the above copyright notice has to appear in all copies.</div><div class='hunk'>@@ -321,6 +664,51 @@ ext/nkf/nkf-utf8/utf8tbl.c:</div><div class='ctx'>        You don't have to ask before copying, redistribution or publishing.</div><div class='ctx'>        THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.</div><div class='ctx'> </div><div class='add'>+ext/psych:</div><div class='add'>+test/psych:</div><div class='add'>+</div><div class='add'>+  Copyright 2009 Aaron Patterson, et al.</div><div class='add'>+</div><div class='add'>+  Permission is hereby granted, free of charge, to any person obtaining a copy of</div><div class='add'>+  this software and associated documentation files (the 'Software'), to deal in</div><div class='add'>+  the Software without restriction, including without limitation the rights to</div><div class='add'>+  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies</div><div class='add'>+  of the Software, and to permit persons to whom the Software is furnished to do</div><div class='add'>+  so, subject to the following conditions:</div><div class='add'>+</div><div class='add'>+  The above copyright notice and this permission notice shall be included in all</div><div class='add'>+  copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+  THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</div><div class='add'>+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</div><div class='add'>+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</div><div class='add'>+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</div><div class='add'>+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</div><div class='add'>+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</div><div class='add'>+  SOFTWARE.</div><div class='add'>+</div><div class='add'>+ext/psych/yaml:</div><div class='add'>+</div><div class='add'>+  Copyright (c) 2006 Kirill Simonov</div><div class='add'>+</div><div class='add'>+  Permission is hereby granted, free of charge, to any person obtaining a copy of</div><div class='add'>+  this software and associated documentation files (the "Software"), to deal in</div><div class='add'>+  the Software without restriction, including without limitation the rights to</div><div class='add'>+  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies</div><div class='add'>+  of the Software, and to permit persons to whom the Software is furnished to do</div><div class='add'>+  so, subject to the following conditions:</div><div class='add'>+</div><div class='add'>+  The above copyright notice and this permission notice shall be included in all</div><div class='add'>+  copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</div><div class='add'>+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</div><div class='add'>+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</div><div class='add'>+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</div><div class='add'>+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</div><div class='add'>+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</div><div class='add'>+  SOFTWARE.</div><div class='add'>+</div><div class='ctx'> ext/socket/addrinfo.h:</div><div class='ctx'> ext/socket/getaddrinfo.c:</div><div class='ctx'> ext/socket/getnameinfo.c:</div><div class='hunk'>@@ -364,7 +752,99 @@ ext/win32ole/win32ole.c:</div><div class='ctx'> </div><div class='ctx'>     Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy</div><div class='ctx'>     &lt;gsar@umich.edu&gt; and Jan Dubois &lt;jan.dubois@ibm.net&gt;</div><div class='del'>- </div><div class='add'>+</div><div class='ctx'>     You may distribute under the terms of either the GNU General Public</div><div class='ctx'>     License or the Artistic License, as specified in the README file</div><div class='ctx'>     of the Perl distribution.</div><div class='add'>+</div><div class='add'>+  The Wayback Machine url: http://web.archive.org/web/19970607104352/http://www.activeware.com:80/</div><div class='add'>+</div><div class='add'>+lib/rdoc/generator/template/darkfish/css/fonts.css:</div><div class='add'>+</div><div class='add'>+  This file is licensed under the SIL Open Font License.</div><div class='add'>+</div><div class='add'>+    http://scripts.sil.org/OFL</div><div class='add'>+</div><div class='add'>+spec/mspec:</div><div class='add'>+spec/ruby:</div><div class='add'>+</div><div class='add'>+    Copyright (c) 2008 Engine Yard, Inc. All rights reserved.</div><div class='add'>+</div><div class='add'>+    Permission is hereby granted, free of charge, to any person</div><div class='add'>+    obtaining a copy of this software and associated documentation</div><div class='add'>+    files (the "Software"), to deal in the Software without</div><div class='add'>+    restriction, including without limitation the rights to use,</div><div class='add'>+    copy, modify, merge, publish, distribute, sublicense, and/or sell</div><div class='add'>+    copies of the Software, and to permit persons to whom the</div><div class='add'>+    Software is furnished to do so, subject to the following</div><div class='add'>+    conditions:</div><div class='add'>+</div><div class='add'>+    The above copyright notice and this permission notice shall be</div><div class='add'>+    included in all copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</div><div class='add'>+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES</div><div class='add'>+    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</div><div class='add'>+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</div><div class='add'>+    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,</div><div class='add'>+    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</div><div class='add'>+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</div><div class='add'>+    OTHER DEALINGS IN THE SOFTWARE.</div><div class='add'>+</div><div class='add'>+lib/rubygems.rb:</div><div class='add'>+lib/rubygems:</div><div class='add'>+test/rubygems:</div><div class='add'>+</div><div class='add'>+  RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim</div><div class='add'>+  Weirich and others.  You can redistribute it and/or modify it under</div><div class='add'>+  either the terms of the MIT license (see the file MIT.txt), or the</div><div class='add'>+  conditions below:</div><div class='add'>+</div><div class='add'>+  1. You may make and give away verbatim copies of the source form of the</div><div class='add'>+     software without restriction, provided that you duplicate all of the</div><div class='add'>+     original copyright notices and associated disclaimers.</div><div class='add'>+</div><div class='add'>+  2. You may modify your copy of the software in any way, provided that</div><div class='add'>+     you do at least ONE of the following:</div><div class='add'>+</div><div class='add'>+     a. place your modifications in the Public Domain or otherwise</div><div class='add'>+        make them Freely Available, such as by posting said</div><div class='add'>+        modifications to Usenet or an equivalent medium, or by allowing</div><div class='add'>+        the author to include your modifications in the software.</div><div class='add'>+</div><div class='add'>+     b. use the modified software only within your corporation or</div><div class='add'>+        organization.</div><div class='add'>+</div><div class='add'>+     c. give non-standard executables non-standard names, with</div><div class='add'>+        instructions on where to get the original software distribution.</div><div class='add'>+</div><div class='add'>+     d. make other distribution arrangements with the author.</div><div class='add'>+</div><div class='add'>+  3. You may distribute the software in object code or executable</div><div class='add'>+     form, provided that you do at least ONE of the following:</div><div class='add'>+</div><div class='add'>+     a. distribute the executables and library files of the software,</div><div class='add'>+        together with instructions (in the manual page or equivalent)</div><div class='add'>+        on where to get the original distribution.</div><div class='add'>+</div><div class='add'>+     b. accompany the distribution with the machine-readable source of</div><div class='add'>+        the software.</div><div class='add'>+</div><div class='add'>+     c. give non-standard executables non-standard names, with</div><div class='add'>+        instructions on where to get the original software distribution.</div><div class='add'>+</div><div class='add'>+     d . make other distribution arrangements with the author.</div><div class='add'>+</div><div class='add'>+  4. You may modify and include the part of the software into any other</div><div class='add'>+     software (possibly commercial).</div><div class='add'>+</div><div class='add'>+  5. The scripts and library files supplied as input to or produced as</div><div class='add'>+     output from the software do not automatically fall under the</div><div class='add'>+     copyright of the software, but belong to whomever generated them,</div><div class='add'>+     and may be sold commercially, and may be aggregated with this</div><div class='add'>+     software.</div><div class='add'>+</div><div class='add'>+  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR</div><div class='add'>+     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED</div><div class='add'>+     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</div><div class='add'>+     PURPOSE.</div><div class='head'>diff --git a/LGPL b/LGPL<br/>deleted file mode 100644<br/>index b1e3f5a263..0000000000<br/>--- a/<a href='/ruby.git/tree/LGPL?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>LGPL</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,504 +0,0 @@</div><div class='del'>-		  GNU LESSER GENERAL PUBLIC LICENSE</div><div class='del'>-		       Version 2.1, February 1999</div><div class='del'>-</div><div class='del'>- Copyright (C) 1991, 1999 Free Software Foundation, Inc.</div><div class='del'>-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>- Everyone is permitted to copy and distribute verbatim copies</div><div class='del'>- of this license document, but changing it is not allowed.</div><div class='del'>-</div><div class='del'>-[This is the first released version of the Lesser GPL.  It also counts</div><div class='del'>- as the successor of the GNU Library Public License, version 2, hence</div><div class='del'>- the version number 2.1.]</div><div class='del'>-</div><div class='del'>-			    Preamble</div><div class='del'>-</div><div class='del'>-  The licenses for most software are designed to take away your</div><div class='del'>-freedom to share and change it.  By contrast, the GNU General Public</div><div class='del'>-Licenses are intended to guarantee your freedom to share and change</div><div class='del'>-free software--to make sure the software is free for all its users.</div><div class='del'>-</div><div class='del'>-  This license, the Lesser General Public License, applies to some</div><div class='del'>-specially designated software packages--typically libraries--of the</div><div class='del'>-Free Software Foundation and other authors who decide to use it.  You</div><div class='del'>-can use it too, but we suggest you first think carefully about whether</div><div class='del'>-this license or the ordinary General Public License is the better</div><div class='del'>-strategy to use in any particular case, based on the explanations below.</div><div class='del'>-</div><div class='del'>-  When we speak of free software, we are referring to freedom of use,</div><div class='del'>-not price.  Our General Public Licenses are designed to make sure that</div><div class='del'>-you have the freedom to distribute copies of free software (and charge</div><div class='del'>-for this service if you wish); that you receive source code or can get</div><div class='del'>-it if you want it; that you can change the software and use pieces of</div><div class='del'>-it in new free programs; and that you are informed that you can do</div><div class='del'>-these things.</div><div class='del'>-</div><div class='del'>-  To protect your rights, we need to make restrictions that forbid</div><div class='del'>-distributors to deny you these rights or to ask you to surrender these</div><div class='del'>-rights.  These restrictions translate to certain responsibilities for</div><div class='del'>-you if you distribute copies of the library or if you modify it.</div><div class='del'>-</div><div class='del'>-  For example, if you distribute copies of the library, whether gratis</div><div class='del'>-or for a fee, you must give the recipients all the rights that we gave</div><div class='del'>-you.  You must make sure that they, too, receive or can get the source</div><div class='del'>-code.  If you link other code with the library, you must provide</div><div class='del'>-complete object files to the recipients, so that they can relink them</div><div class='del'>-with the library after making changes to the library and recompiling</div><div class='del'>-it.  And you must show them these terms so they know their rights.</div><div class='del'>-</div><div class='del'>-  We protect your rights with a two-step method: (1) we copyright the</div><div class='del'>-library, and (2) we offer you this license, which gives you legal</div><div class='del'>-permission to copy, distribute and/or modify the library.</div><div class='del'>-</div><div class='del'>-  To protect each distributor, we want to make it very clear that</div><div class='del'>-there is no warranty for the free library.  Also, if the library is</div><div class='del'>-modified by someone else and passed on, the recipients should know</div><div class='del'>-that what they have is not the original version, so that the original</div><div class='del'>-author's reputation will not be affected by problems that might be</div><div class='del'>-introduced by others.</div><div class='del'>-</div><div class='del'>-  Finally, software patents pose a constant threat to the existence of</div><div class='del'>-any free program.  We wish to make sure that a company cannot</div><div class='del'>-effectively restrict the users of a free program by obtaining a</div><div class='del'>-restrictive license from a patent holder.  Therefore, we insist that</div><div class='del'>-any patent license obtained for a version of the library must be</div><div class='del'>-consistent with the full freedom of use specified in this license.</div><div class='del'>-</div><div class='del'>-  Most GNU software, including some libraries, is covered by the</div><div class='del'>-ordinary GNU General Public License.  This license, the GNU Lesser</div><div class='del'>-General Public License, applies to certain designated libraries, and</div><div class='del'>-is quite different from the ordinary General Public License.  We use</div><div class='del'>-this license for certain libraries in order to permit linking those</div><div class='del'>-libraries into non-free programs.</div><div class='del'>-</div><div class='del'>-  When a program is linked with a library, whether statically or using</div><div class='del'>-a shared library, the combination of the two is legally speaking a</div><div class='del'>-combined work, a derivative of the original library.  The ordinary</div><div class='del'>-General Public License therefore permits such linking only if the</div><div class='del'>-entire combination fits its criteria of freedom.  The Lesser General</div><div class='del'>-Public License permits more lax criteria for linking other code with</div><div class='del'>-the library.</div><div class='del'>-</div><div class='del'>-  We call this license the "Lesser" General Public License because it</div><div class='del'>-does Less to protect the user's freedom than the ordinary General</div><div class='del'>-Public License.  It also provides other free software developers Less</div><div class='del'>-of an advantage over competing non-free programs.  These disadvantages</div><div class='del'>-are the reason we use the ordinary General Public License for many</div><div class='del'>-libraries.  However, the Lesser license provides advantages in certain</div><div class='del'>-special circumstances.</div><div class='del'>-</div><div class='del'>-  For example, on rare occasions, there may be a special need to</div><div class='del'>-encourage the widest possible use of a certain library, so that it becomes</div><div class='del'>-a de-facto standard.  To achieve this, non-free programs must be</div><div class='del'>-allowed to use the library.  A more frequent case is that a free</div><div class='del'>-library does the same job as widely used non-free libraries.  In this</div><div class='del'>-case, there is little to gain by limiting the free library to free</div><div class='del'>-software only, so we use the Lesser General Public License.</div><div class='del'>-</div><div class='del'>-  In other cases, permission to use a particular library in non-free</div><div class='del'>-programs enables a greater number of people to use a large body of</div><div class='del'>-free software.  For example, permission to use the GNU C Library in</div><div class='del'>-non-free programs enables many more people to use the whole GNU</div><div class='del'>-operating system, as well as its variant, the GNU/Linux operating</div><div class='del'>-system.</div><div class='del'>-</div><div class='del'>-  Although the Lesser General Public License is Less protective of the</div><div class='del'>-users' freedom, it does ensure that the user of a program that is</div><div class='del'>-linked with the Library has the freedom and the wherewithal to run</div><div class='del'>-that program using a modified version of the Library.</div><div class='del'>-</div><div class='del'>-  The precise terms and conditions for copying, distribution and</div><div class='del'>-modification follow.  Pay close attention to the difference between a</div><div class='del'>-"work based on the library" and a "work that uses the library".  The</div><div class='del'>-former contains code derived from the library, whereas the latter must</div><div class='del'>-be combined with the library in order to run.</div><div class='del'>-</div><div class='del'>-		  GNU LESSER GENERAL PUBLIC LICENSE</div><div class='del'>-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</div><div class='del'>-</div><div class='del'>-  0. This License Agreement applies to any software library or other</div><div class='del'>-program which contains a notice placed by the copyright holder or</div><div class='del'>-other authorized party saying it may be distributed under the terms of</div><div class='del'>-this Lesser General Public License (also called "this License").</div><div class='del'>-Each licensee is addressed as "you".</div><div class='del'>-</div><div class='del'>-  A "library" means a collection of software functions and/or data</div><div class='del'>-prepared so as to be conveniently linked with application programs</div><div class='del'>-(which use some of those functions and data) to form executables.</div><div class='del'>-</div><div class='del'>-  The "Library", below, refers to any such software library or work</div><div class='del'>-which has been distributed under these terms.  A "work based on the</div><div class='del'>-Library" means either the Library or any derivative work under</div><div class='del'>-copyright law: that is to say, a work containing the Library or a</div><div class='del'>-portion of it, either verbatim or with modifications and/or translated</div><div class='del'>-straightforwardly into another language.  (Hereinafter, translation is</div><div class='del'>-included without limitation in the term "modification".)</div><div class='del'>-</div><div class='del'>-  "Source code" for a work means the preferred form of the work for</div><div class='del'>-making modifications to it.  For a library, complete source code means</div><div class='del'>-all the source code for all modules it contains, plus any associated</div><div class='del'>-interface definition files, plus the scripts used to control compilation</div><div class='del'>-and installation of the library.</div><div class='del'>-</div><div class='del'>-  Activities other than copying, distribution and modification are not</div><div class='del'>-covered by this License; they are outside its scope.  The act of</div><div class='del'>-running a program using the Library is not restricted, and output from</div><div class='del'>-such a program is covered only if its contents constitute a work based</div><div class='del'>-on the Library (independent of the use of the Library in a tool for</div><div class='del'>-writing it).  Whether that is true depends on what the Library does</div><div class='del'>-and what the program that uses the Library does.</div><div class='del'>-  </div><div class='del'>-  1. You may copy and distribute verbatim copies of the Library's</div><div class='del'>-complete source code as you receive it, in any medium, provided that</div><div class='del'>-you conspicuously and appropriately publish on each copy an</div><div class='del'>-appropriate copyright notice and disclaimer of warranty; keep intact</div><div class='del'>-all the notices that refer to this License and to the absence of any</div><div class='del'>-warranty; and distribute a copy of this License along with the</div><div class='del'>-Library.</div><div class='del'>-</div><div class='del'>-  You may charge a fee for the physical act of transferring a copy,</div><div class='del'>-and you may at your option offer warranty protection in exchange for a</div><div class='del'>-fee.</div><div class='del'>-</div><div class='del'>-  2. You may modify your copy or copies of the Library or any portion</div><div class='del'>-of it, thus forming a work based on the Library, and copy and</div><div class='del'>-distribute such modifications or work under the terms of Section 1</div><div class='del'>-above, provided that you also meet all of these conditions:</div><div class='del'>-</div><div class='del'>-    a) The modified work must itself be a software library.</div><div class='del'>-</div><div class='del'>-    b) You must cause the files modified to carry prominent notices</div><div class='del'>-    stating that you changed the files and the date of any change.</div><div class='del'>-</div><div class='del'>-    c) You must cause the whole of the work to be licensed at no</div><div class='del'>-    charge to all third parties under the terms of this License.</div><div class='del'>-</div><div class='del'>-    d) If a facility in the modified Library refers to a function or a</div><div class='del'>-    table of data to be supplied by an application program that uses</div><div class='del'>-    the facility, other than as an argument passed when the facility</div><div class='del'>-    is invoked, then you must make a good faith effort to ensure that,</div><div class='del'>-    in the event an application does not supply such function or</div><div class='del'>-    table, the facility still operates, and performs whatever part of</div><div class='del'>-    its purpose remains meaningful.</div><div class='del'>-</div><div class='del'>-    (For example, a function in a library to compute square roots has</div><div class='del'>-    a purpose that is entirely well-defined independent of the</div><div class='del'>-    application.  Therefore, Subsection 2d requires that any</div><div class='del'>-    application-supplied function or table used by this function must</div><div class='del'>-    be optional: if the application does not supply it, the square</div><div class='del'>-    root function must still compute square roots.)</div><div class='del'>-</div><div class='del'>-These requirements apply to the modified work as a whole.  If</div><div class='del'>-identifiable sections of that work are not derived from the Library,</div><div class='del'>-and can be reasonably considered independent and separate works in</div><div class='del'>-themselves, then this License, and its terms, do not apply to those</div><div class='del'>-sections when you distribute them as separate works.  But when you</div><div class='del'>-distribute the same sections as part of a whole which is a work based</div><div class='del'>-on the Library, the distribution of the whole must be on the terms of</div><div class='del'>-this License, whose permissions for other licensees extend to the</div><div class='del'>-entire whole, and thus to each and every part regardless of who wrote</div><div class='del'>-it.</div><div class='del'>-</div><div class='del'>-Thus, it is not the intent of this section to claim rights or contest</div><div class='del'>-your rights to work written entirely by you; rather, the intent is to</div><div class='del'>-exercise the right to control the distribution of derivative or</div><div class='del'>-collective works based on the Library.</div><div class='del'>-</div><div class='del'>-In addition, mere aggregation of another work not based on the Library</div><div class='del'>-with the Library (or with a work based on the Library) on a volume of</div><div class='del'>-a storage or distribution medium does not bring the other work under</div><div class='del'>-the scope of this License.</div><div class='del'>-</div><div class='del'>-  3. You may opt to apply the terms of the ordinary GNU General Public</div><div class='del'>-License instead of this License to a given copy of the Library.  To do</div><div class='del'>-this, you must alter all the notices that refer to this License, so</div><div class='del'>-that they refer to the ordinary GNU General Public License, version 2,</div><div class='del'>-instead of to this License.  (If a newer version than version 2 of the</div><div class='del'>-ordinary GNU General Public License has appeared, then you can specify</div><div class='del'>-that version instead if you wish.)  Do not make any other change in</div><div class='del'>-these notices.</div><div class='del'>-</div><div class='del'>-  Once this change is made in a given copy, it is irreversible for</div><div class='del'>-that copy, so the ordinary GNU General Public License applies to all</div><div class='del'>-subsequent copies and derivative works made from that copy.</div><div class='del'>-</div><div class='del'>-  This option is useful when you wish to copy part of the code of</div><div class='del'>-the Library into a program that is not a library.</div><div class='del'>-</div><div class='del'>-  4. You may copy and distribute the Library (or a portion or</div><div class='del'>-derivative of it, under Section 2) in object code or executable form</div><div class='del'>-under the terms of Sections 1 and 2 above provided that you accompany</div><div class='del'>-it with the complete corresponding machine-readable source code, which</div><div class='del'>-must be distributed under the terms of Sections 1 and 2 above on a</div><div class='del'>-medium customarily used for software interchange.</div><div class='del'>-</div><div class='del'>-  If distribution of object code is made by offering access to copy</div><div class='del'>-from a designated place, then offering equivalent access to copy the</div><div class='del'>-source code from the same place satisfies the requirement to</div><div class='del'>-distribute the source code, even though third parties are not</div><div class='del'>-compelled to copy the source along with the object code.</div><div class='del'>-</div><div class='del'>-  5. A program that contains no derivative of any portion of the</div><div class='del'>-Library, but is designed to work with the Library by being compiled or</div><div class='del'>-linked with it, is called a "work that uses the Library".  Such a</div><div class='del'>-work, in isolation, is not a derivative work of the Library, and</div><div class='del'>-therefore falls outside the scope of this License.</div><div class='del'>-</div><div class='del'>-  However, linking a "work that uses the Library" with the Library</div><div class='del'>-creates an executable that is a derivative of the Library (because it</div><div class='del'>-contains portions of the Library), rather than a "work that uses the</div><div class='del'>-library".  The executable is therefore covered by this License.</div><div class='del'>-Section 6 states terms for distribution of such executables.</div><div class='del'>-</div><div class='del'>-  When a "work that uses the Library" uses material from a header file</div><div class='del'>-that is part of the Library, the object code for the work may be a</div><div class='del'>-derivative work of the Library even though the source code is not.</div><div class='del'>-Whether this is true is especially significant if the work can be</div><div class='del'>-linked without the Library, or if the work is itself a library.  The</div><div class='del'>-threshold for this to be true is not precisely defined by law.</div><div class='del'>-</div><div class='del'>-  If such an object file uses only numerical parameters, data</div><div class='del'>-structure layouts and accessors, and small macros and small inline</div><div class='del'>-functions (ten lines or less in length), then the use of the object</div><div class='del'>-file is unrestricted, regardless of whether it is legally a derivative</div><div class='del'>-work.  (Executables containing this object code plus portions of the</div><div class='del'>-Library will still fall under Section 6.)</div><div class='del'>-</div><div class='del'>-  Otherwise, if the work is a derivative of the Library, you may</div><div class='del'>-distribute the object code for the work under the terms of Section 6.</div><div class='del'>-Any executables containing that work also fall under Section 6,</div><div class='del'>-whether or not they are linked directly with the Library itself.</div><div class='del'>-</div><div class='del'>-  6. As an exception to the Sections above, you may also combine or</div><div class='del'>-link a "work that uses the Library" with the Library to produce a</div><div class='del'>-work containing portions of the Library, and distribute that work</div><div class='del'>-under terms of your choice, provided that the terms permit</div><div class='del'>-modification of the work for the customer's own use and reverse</div><div class='del'>-engineering for debugging such modifications.</div><div class='del'>-</div><div class='del'>-  You must give prominent notice with each copy of the work that the</div><div class='del'>-Library is used in it and that the Library and its use are covered by</div><div class='del'>-this License.  You must supply a copy of this License.  If the work</div><div class='del'>-during execution displays copyright notices, you must include the</div><div class='del'>-copyright notice for the Library among them, as well as a reference</div><div class='del'>-directing the user to the copy of this License.  Also, you must do one</div><div class='del'>-of these things:</div><div class='del'>-</div><div class='del'>-    a) Accompany the work with the complete corresponding</div><div class='del'>-    machine-readable source code for the Library including whatever</div><div class='del'>-    changes were used in the work (which must be distributed under</div><div class='del'>-    Sections 1 and 2 above); and, if the work is an executable linked</div><div class='del'>-    with the Library, with the complete machine-readable "work that</div><div class='del'>-    uses the Library", as object code and/or source code, so that the</div><div class='del'>-    user can modify the Library and then relink to produce a modified</div><div class='del'>-    executable containing the modified Library.  (It is understood</div><div class='del'>-    that the user who changes the contents of definitions files in the</div><div class='del'>-    Library will not necessarily be able to recompile the application</div><div class='del'>-    to use the modified definitions.)</div><div class='del'>-</div><div class='del'>-    b) Use a suitable shared library mechanism for linking with the</div><div class='del'>-    Library.  A suitable mechanism is one that (1) uses at run time a</div><div class='del'>-    copy of the library already present on the user's computer system,</div><div class='del'>-    rather than copying library functions into the executable, and (2)</div><div class='del'>-    will operate properly with a modified version of the library, if</div><div class='del'>-    the user installs one, as long as the modified version is</div><div class='del'>-    interface-compatible with the version that the work was made with.</div><div class='del'>-</div><div class='del'>-    c) Accompany the work with a written offer, valid for at</div><div class='del'>-    least three years, to give the same user the materials</div><div class='del'>-    specified in Subsection 6a, above, for a charge no more</div><div class='del'>-    than the cost of performing this distribution.</div><div class='del'>-</div><div class='del'>-    d) If distribution of the work is made by offering access to copy</div><div class='del'>-    from a designated place, offer equivalent access to copy the above</div><div class='del'>-    specified materials from the same place.</div><div class='del'>-</div><div class='del'>-    e) Verify that the user has already received a copy of these</div><div class='del'>-    materials or that you have already sent this user a copy.</div><div class='del'>-</div><div class='del'>-  For an executable, the required form of the "work that uses the</div><div class='del'>-Library" must include any data and utility programs needed for</div><div class='del'>-reproducing the executable from it.  However, as a special exception,</div><div class='del'>-the materials to be distributed need not include anything that is</div><div class='del'>-normally distributed (in either source or binary form) with the major</div><div class='del'>-components (compiler, kernel, and so on) of the operating system on</div><div class='del'>-which the executable runs, unless that component itself accompanies</div><div class='del'>-the executable.</div><div class='del'>-</div><div class='del'>-  It may happen that this requirement contradicts the license</div><div class='del'>-restrictions of other proprietary libraries that do not normally</div><div class='del'>-accompany the operating system.  Such a contradiction means you cannot</div><div class='del'>-use both them and the Library together in an executable that you</div><div class='del'>-distribute.</div><div class='del'>-</div><div class='del'>-  7. You may place library facilities that are a work based on the</div><div class='del'>-Library side-by-side in a single library together with other library</div><div class='del'>-facilities not covered by this License, and distribute such a combined</div><div class='del'>-library, provided that the separate distribution of the work based on</div><div class='del'>-the Library and of the other library facilities is otherwise</div><div class='del'>-permitted, and provided that you do these two things:</div><div class='del'>-</div><div class='del'>-    a) Accompany the combined library with a copy of the same work</div><div class='del'>-    based on the Library, uncombined with any other library</div><div class='del'>-    facilities.  This must be distributed under the terms of the</div><div class='del'>-    Sections above.</div><div class='del'>-</div><div class='del'>-    b) Give prominent notice with the combined library of the fact</div><div class='del'>-    that part of it is a work based on the Library, and explaining</div><div class='del'>-    where to find the accompanying uncombined form of the same work.</div><div class='del'>-</div><div class='del'>-  8. You may not copy, modify, sublicense, link with, or distribute</div><div class='del'>-the Library except as expressly provided under this License.  Any</div><div class='del'>-attempt otherwise to copy, modify, sublicense, link with, or</div><div class='del'>-distribute the Library is void, and will automatically terminate your</div><div class='del'>-rights under this License.  However, parties who have received copies,</div><div class='del'>-or rights, from you under this License will not have their licenses</div><div class='del'>-terminated so long as such parties remain in full compliance.</div><div class='del'>-</div><div class='del'>-  9. You are not required to accept this License, since you have not</div><div class='del'>-signed it.  However, nothing else grants you permission to modify or</div><div class='del'>-distribute the Library or its derivative works.  These actions are</div><div class='del'>-prohibited by law if you do not accept this License.  Therefore, by</div><div class='del'>-modifying or distributing the Library (or any work based on the</div><div class='del'>-Library), you indicate your acceptance of this License to do so, and</div><div class='del'>-all its terms and conditions for copying, distributing or modifying</div><div class='del'>-the Library or works based on it.</div><div class='del'>-</div><div class='del'>-  10. Each time you redistribute the Library (or any work based on the</div><div class='del'>-Library), the recipient automatically receives a license from the</div><div class='del'>-original licensor to copy, distribute, link with or modify the Library</div><div class='del'>-subject to these terms and conditions.  You may not impose any further</div><div class='del'>-restrictions on the recipients' exercise of the rights granted herein.</div><div class='del'>-You are not responsible for enforcing compliance by third parties with</div><div class='del'>-this License.</div><div class='del'>-</div><div class='del'>-  11. If, as a consequence of a court judgment or allegation of patent</div><div class='del'>-infringement or for any other reason (not limited to patent issues),</div><div class='del'>-conditions are imposed on you (whether by court order, agreement or</div><div class='del'>-otherwise) that contradict the conditions of this License, they do not</div><div class='del'>-excuse you from the conditions of this License.  If you cannot</div><div class='del'>-distribute so as to satisfy simultaneously your obligations under this</div><div class='del'>-License and any other pertinent obligations, then as a consequence you</div><div class='del'>-may not distribute the Library at all.  For example, if a patent</div><div class='del'>-license would not permit royalty-free redistribution of the Library by</div><div class='del'>-all those who receive copies directly or indirectly through you, then</div><div class='del'>-the only way you could satisfy both it and this License would be to</div><div class='del'>-refrain entirely from distribution of the Library.</div><div class='del'>-</div><div class='del'>-If any portion of this section is held invalid or unenforceable under any</div><div class='del'>-particular circumstance, the balance of the section is intended to apply,</div><div class='del'>-and the section as a whole is intended to apply in other circumstances.</div><div class='del'>-</div><div class='del'>-It is not the purpose of this section to induce you to infringe any</div><div class='del'>-patents or other property right claims or to contest validity of any</div><div class='del'>-such claims; this section has the sole purpose of protecting the</div><div class='del'>-integrity of the free software distribution system which is</div><div class='del'>-implemented by public license practices.  Many people have made</div><div class='del'>-generous contributions to the wide range of software distributed</div><div class='del'>-through that system in reliance on consistent application of that</div><div class='del'>-system; it is up to the author/donor to decide if he or she is willing</div><div class='del'>-to distribute software through any other system and a licensee cannot</div><div class='del'>-impose that choice.</div><div class='del'>-</div><div class='del'>-This section is intended to make thoroughly clear what is believed to</div><div class='del'>-be a consequence of the rest of this License.</div><div class='del'>-</div><div class='del'>-  12. If the distribution and/or use of the Library is restricted in</div><div class='del'>-certain countries either by patents or by copyrighted interfaces, the</div><div class='del'>-original copyright holder who places the Library under this License may add</div><div class='del'>-an explicit geographical distribution limitation excluding those countries,</div><div class='del'>-so that distribution is permitted only in or among countries not thus</div><div class='del'>-excluded.  In such case, this License incorporates the limitation as if</div><div class='del'>-written in the body of this License.</div><div class='del'>-</div><div class='del'>-  13. The Free Software Foundation may publish revised and/or new</div><div class='del'>-versions of the Lesser General Public License from time to time.</div><div class='del'>-Such new versions will be similar in spirit to the present version,</div><div class='del'>-but may differ in detail to address new problems or concerns.</div><div class='del'>-</div><div class='del'>-Each version is given a distinguishing version number.  If the Library</div><div class='del'>-specifies a version number of this License which applies to it and</div><div class='del'>-"any later version", you have the option of following the terms and</div><div class='del'>-conditions either of that version or of any later version published by</div><div class='del'>-the Free Software Foundation.  If the Library does not specify a</div><div class='del'>-license version number, you may choose any version ever published by</div><div class='del'>-the Free Software Foundation.</div><div class='del'>-</div><div class='del'>-  14. If you wish to incorporate parts of the Library into other free</div><div class='del'>-programs whose distribution conditions are incompatible with these,</div><div class='del'>-write to the author to ask for permission.  For software which is</div><div class='del'>-copyrighted by the Free Software Foundation, write to the Free</div><div class='del'>-Software Foundation; we sometimes make exceptions for this.  Our</div><div class='del'>-decision will be guided by the two goals of preserving the free status</div><div class='del'>-of all derivatives of our free software and of promoting the sharing</div><div class='del'>-and reuse of software generally.</div><div class='del'>-</div><div class='del'>-			    NO WARRANTY</div><div class='del'>-</div><div class='del'>-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO</div><div class='del'>-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.</div><div class='del'>-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR</div><div class='del'>-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY</div><div class='del'>-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='del'>-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</div><div class='del'>-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE</div><div class='del'>-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME</div><div class='del'>-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</div><div class='del'>-</div><div class='del'>-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN</div><div class='del'>-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY</div><div class='del'>-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU</div><div class='del'>-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR</div><div class='del'>-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE</div><div class='del'>-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING</div><div class='del'>-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A</div><div class='del'>-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF</div><div class='del'>-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH</div><div class='del'>-DAMAGES.</div><div class='del'>-</div><div class='del'>-		     END OF TERMS AND CONDITIONS</div><div class='del'>-</div><div class='del'>-           How to Apply These Terms to Your New Libraries</div><div class='del'>-</div><div class='del'>-  If you develop a new library, and you want it to be of the greatest</div><div class='del'>-possible use to the public, we recommend making it free software that</div><div class='del'>-everyone can redistribute and change.  You can do so by permitting</div><div class='del'>-redistribution under these terms (or, alternatively, under the terms of the</div><div class='del'>-ordinary General Public License).</div><div class='del'>-</div><div class='del'>-  To apply these terms, attach the following notices to the library.  It is</div><div class='del'>-safest to attach them to the start of each source file to most effectively</div><div class='del'>-convey the exclusion of warranty; and each file should have at least the</div><div class='del'>-"copyright" line and a pointer to where the full notice is found.</div><div class='del'>-</div><div class='del'>-    &lt;one line to give the library's name and a brief idea of what it does.&gt;</div><div class='del'>-    Copyright (C) &lt;year&gt;  &lt;name of author&gt;</div><div class='del'>-</div><div class='del'>-    This library is free software; you can redistribute it and/or</div><div class='del'>-    modify it under the terms of the GNU Lesser General Public</div><div class='del'>-    License as published by the Free Software Foundation; either</div><div class='del'>-    version 2.1 of the License, or (at your option) any later version.</div><div class='del'>-</div><div class='del'>-    This library is distributed in the hope that it will be useful,</div><div class='del'>-    but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>-    Lesser General Public License for more details.</div><div class='del'>-</div><div class='del'>-    You should have received a copy of the GNU Lesser General Public</div><div class='del'>-    License along with this library; if not, write to the Free Software</div><div class='del'>-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='del'>-</div><div class='del'>-Also add information on how to contact you by electronic and paper mail.</div><div class='del'>-</div><div class='del'>-You should also get your employer (if you work as a programmer) or your</div><div class='del'>-school, if any, to sign a "copyright disclaimer" for the library, if</div><div class='del'>-necessary.  Here is a sample; alter the names:</div><div class='del'>-</div><div class='del'>-  Yoyodyne, Inc., hereby disclaims all copyright interest in the</div><div class='del'>-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.</div><div class='del'>-</div><div class='del'>-  &lt;signature of Ty Coon&gt;, 1 April 1990</div><div class='del'>-  Ty Coon, President of Vice</div><div class='del'>-</div><div class='del'>-That's all there is to it!</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/Makefile.in b/Makefile.in<br/>index 314e1ed256..25075f5900 100644<br/>--- a/<a href='/ruby.git/tree/Makefile.in?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>Makefile.in</a><br/>+++ b/<a href='/ruby.git/tree/Makefile.in?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>Makefile.in</a></div><div class='hunk'>@@ -1,17 +1,36 @@</div><div class='ctx'> SHELL = /bin/sh</div><div class='del'>-NULLCMD = :</div><div class='add'>+NULLCMD = @NULLCMD@</div><div class='add'>+n=$(NULLCMD)</div><div class='add'>+ECHO1 = $(V:1=$n)</div><div class='add'>+RUNCMD = $(SHELL)</div><div class='add'>+CDPATH = .</div><div class='add'>+CHDIR = @CHDIR@</div><div class='add'>+exec = exec</div><div class='add'>+NULL = /dev/null</div><div class='add'>+PATH_SEPARATOR = @PATH_SEPARATOR@</div><div class='ctx'> </div><div class='ctx'> #### Start of system configuration section. ####</div><div class='ctx'> </div><div class='ctx'> srcdir = @srcdir@</div><div class='del'>-VPATH = $(srcdir):$(srcdir)/missing</div><div class='add'>+top_srcdir = $(srcdir)</div><div class='add'>+hdrdir = $(srcdir)/include</div><div class='add'>+PLATFORM_DIR = @PLATFORM_DIR@</div><div class='ctx'> </div><div class='ctx'> CC = @CC@</div><div class='del'>-YACC = @YACC@</div><div class='add'>+CPP = @CPP@</div><div class='add'>+LD = @LD@</div><div class='add'>+YACC = bison</div><div class='ctx'> PURIFY =</div><div class='ctx'> AUTOCONF = autoconf</div><div class='add'>+ACLOCAL = aclocal</div><div class='add'>+CONFIGURE = @CONFIGURE@</div><div class='ctx'> @SET_MAKE@</div><div class='ctx'> MKFILES = @MAKEFILES@</div><div class='add'>+BASERUBY = @BASERUBY@</div><div class='add'>+HAVE_BASERUBY = @HAVE_BASERUBY@</div><div class='add'>+TEST_RUNNABLE = @TEST_RUNNABLE@</div><div class='add'>+CROSS_COMPILING = @CROSS_COMPILING@</div><div class='add'>+DOXYGEN = @DOXYGEN@</div><div class='ctx'> </div><div class='ctx'> prefix = @prefix@</div><div class='ctx'> exec_prefix = @exec_prefix@</div><div class='hunk'>@@ -24,157 +43,489 @@ datadir = @datadir@</div><div class='ctx'> arch = @arch@</div><div class='ctx'> sitearch = @sitearch@</div><div class='ctx'> sitedir = @sitedir@</div><div class='add'>+archlibdir = @archlibdir@</div><div class='add'>+ruby_version = @ruby_version@</div><div class='ctx'> </div><div class='ctx'> TESTUI = console</div><div class='ctx'> TESTS =</div><div class='del'>-RDOCTARGET = @RDOCTARGET@</div><div class='add'>+INSTALLDOC = @INSTALLDOC@</div><div class='add'>+DOCTARGETS = @RDOCTARGET@ @CAPITARGET@</div><div class='ctx'> </div><div class='ctx'> EXTOUT = @EXTOUT@</div><div class='del'>-RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system</div><div class='add'>+arch_hdrdir = $(EXTOUT)/include/$(arch)</div><div class='add'>+VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/missing</div><div class='ctx'> </div><div class='ctx'> empty =</div><div class='add'>+CC_VERSION = @CC_VERSION@</div><div class='ctx'> OUTFLAG = @OUTFLAG@$(empty)</div><div class='del'>-CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@</div><div class='del'>-CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@</div><div class='add'>+COUTFLAG = @COUTFLAG@$(empty)</div><div class='add'>+ARCH_FLAG = @ARCH_FLAG@</div><div class='add'>+CFLAGS_NO_ARCH = @CFLAGS@</div><div class='add'>+CFLAGS = $(CFLAGS_NO_ARCH) $(ARCH_FLAG)</div><div class='add'>+cflags = @cflags@</div><div class='add'>+optflags = @optflags@</div><div class='add'>+debugflags = @debugflags@</div><div class='add'>+warnflags = @warnflags@ @strict_warnflags@</div><div class='add'>+cppflags = @cppflags@</div><div class='add'>+XCFLAGS = @XCFLAGS@</div><div class='add'>+CPPFLAGS = @CPPFLAGS@ $(INCFLAGS)</div><div class='ctx'> LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@</div><div class='del'>-EXTLDFLAGS = </div><div class='add'>+EXTLDFLAGS = @EXTLDFLAGS@</div><div class='ctx'> XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)</div><div class='del'>-EXTLIBS = </div><div class='add'>+EXTLIBS =</div><div class='ctx'> LIBS = @LIBS@ $(EXTLIBS)</div><div class='ctx'> MISSING = @LIBOBJS@ @ALLOCA@</div><div class='add'>+ENABLE_SHARED = @ENABLE_SHARED@</div><div class='ctx'> LDSHARED = @LIBRUBY_LDSHARED@</div><div class='del'>-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@</div><div class='add'>+DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)</div><div class='ctx'> SOLIBS = @SOLIBS@</div><div class='add'>+ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@</div><div class='ctx'> MAINLIBS = @MAINLIBS@</div><div class='del'>-MINIOBJS = @MINIOBJS@</div><div class='del'>-</div><div class='add'>+ARCHMINIOBJS = @MINIOBJS@</div><div class='add'>+DLNOBJ = @DLNOBJ@</div><div class='add'>+ENCOBJS = @ENCOBJS@</div><div class='add'>+EXTOBJS = @EXTOBJS@</div><div class='add'>+BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@</div><div class='add'>+BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@</div><div class='add'>+BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@</div><div class='add'>+POSTLINK = @POSTLINK@</div><div class='add'>+</div><div class='add'>+RUBY_BASE_NAME=@RUBY_BASE_NAME@</div><div class='add'>+RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@</div><div class='add'>+RUBY_API_VERSION=@RUBY_API_VERSION@</div><div class='ctx'> RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@</div><div class='ctx'> RUBY_SO_NAME=@RUBY_SO_NAME@</div><div class='ctx'> EXEEXT = @EXEEXT@</div><div class='add'>+LIBEXT = @LIBEXT@</div><div class='ctx'> PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='ctx'> RUBY = $(RUBY_INSTALL_NAME)</div><div class='del'>-MINIRUBY = @MINIRUBY@ $(MINIRUBYOPT)</div><div class='del'>-RUNRUBY = @RUNRUBY@</div><div class='add'>+MINIRUBY = @MINIRUBY@\</div><div class='add'>+	$(MINIRUBYOPT)</div><div class='add'>+# RUNRUBY_COMMAND:: runruby.rb or baseruby. do not append options directly</div><div class='add'>+RUNRUBY_COMMAND = @RUNRUBY_COMMAND@</div><div class='add'>+# RUNRUBY:: run ruby with RUN_OPTS which is passed to ruby</div><div class='add'>+RUNRUBY = @RUNRUBY@ $(RUN_OPTS)</div><div class='add'>+# RUNRUBY_DEBUGGER:: debugging option for runruby.rb</div><div class='add'>+RUNRUBY_DEBUGGER = --debugger='gdb -x run.gdb --quiet --args'</div><div class='add'>+XRUBY = @XRUBY@</div><div class='add'>+BTESTRUBY = @BTESTRUBY@\</div><div class='add'>+	$(MINIRUBYOPT)</div><div class='add'>+INSTALL = @INSTALL@</div><div class='add'>+INSTALL_DATA = @INSTALL_DATA@</div><div class='add'>+INSTALL_SCRIPT = @INSTALL_SCRIPT@</div><div class='add'>+INSTALL_PROGRAM = @INSTALL_PROGRAM@</div><div class='add'>+XRUBY_LIBDIR = @XRUBY_LIBDIR@</div><div class='add'>+XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@</div><div class='add'>+XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@</div><div class='add'>+BOOTSTRAPRUBY = @BOOTSTRAPRUBY@</div><div class='ctx'> </div><div class='ctx'> #### End of system configuration section. ####</div><div class='ctx'> </div><div class='ctx'> MAJOR=	@MAJOR@</div><div class='ctx'> MINOR=	@MINOR@</div><div class='ctx'> TEENY=	@TEENY@</div><div class='add'>+RUBY_PROGRAM_VERSION = @RUBY_PROGRAM_VERSION@</div><div class='ctx'> </div><div class='ctx'> LIBRUBY_A     = @LIBRUBY_A@</div><div class='ctx'> LIBRUBY_SO    = @LIBRUBY_SO@</div><div class='add'>+LIBRUBY_SONAME= @LIBRUBY_SONAME@</div><div class='ctx'> LIBRUBY_ALIASES= @LIBRUBY_ALIASES@</div><div class='ctx'> LIBRUBY	      = @LIBRUBY@</div><div class='ctx'> LIBRUBYARG    = @LIBRUBYARG@</div><div class='ctx'> LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@</div><div class='ctx'> LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@</div><div class='add'>+LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@</div><div class='add'>+LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@</div><div class='add'>+</div><div class='add'>+DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))</div><div class='add'>+</div><div class='add'>+DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \</div><div class='add'>+			eval.$(OBJEXT) \</div><div class='add'>+			gc.$(OBJEXT) \</div><div class='add'>+			hash.$(OBJEXT) \</div><div class='add'>+			load.$(OBJEXT) \</div><div class='add'>+			object.$(OBJEXT) \</div><div class='add'>+			parse.$(OBJEXT) \</div><div class='add'>+			string.$(OBJEXT) \</div><div class='add'>+			symbol.$(OBJEXT) \</div><div class='add'>+			vm.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+THREAD_MODEL  = @THREAD_MODEL@</div><div class='ctx'> </div><div class='ctx'> PREP          = @PREP@</div><div class='ctx'> ARCHFILE      = @ARCHFILE@</div><div class='ctx'> SETUP         =</div><div class='ctx'> EXTSTATIC     = @EXTSTATIC@</div><div class='add'>+ENCSTATIC     = @ENCSTATIC@</div><div class='add'>+SET_LC_MESSAGES = env LC_MESSAGES=C</div><div class='ctx'> </div><div class='add'>+MAKEDIRS      = @MKDIR_P@</div><div class='add'>+CP            = cp</div><div class='add'>+MV            = mv</div><div class='ctx'> RM            = rm -f</div><div class='add'>+RMDIR         = @RMDIR@</div><div class='add'>+RMDIRS        = @RMDIRS@</div><div class='add'>+RMALL         = @RMALL@</div><div class='ctx'> NM            = @NM@</div><div class='ctx'> AR            = @AR@</div><div class='del'>-ARFLAGS       = rcu</div><div class='add'>+ARFLAGS       = @ARFLAGS@$(empty)</div><div class='ctx'> RANLIB        = @RANLIB@</div><div class='ctx'> AS            = @AS@</div><div class='del'>-ASFLAGS       = @ASFLAGS@</div><div class='add'>+ASFLAGS       = @ASFLAGS@ $(INCFLAGS)</div><div class='add'>+IFCHANGE      = $(srcdir)/tool/ifchange</div><div class='add'>+SET_LC_MESSAGES = env LC_MESSAGES=C</div><div class='add'>+OBJDUMP       = @OBJDUMP@</div><div class='add'>+OBJCOPY       = @OBJCOPY@</div><div class='add'>+HAVE_GIT      = @HAVE_GIT@</div><div class='add'>+GIT           = @GIT@</div><div class='add'>+VCS           = @VCS@</div><div class='add'>+VCSUP         = @VCSUP@</div><div class='add'>+DTRACE        = @DTRACE@ @DTRACE_OPT@</div><div class='add'>+DTRACE_EXT    = @DTRACE_EXT@</div><div class='add'>+DTRACE_OBJ    = @DTRACE_OBJ@</div><div class='add'>+DTRACE_REBUILD= @DTRACE_REBUILD@</div><div class='add'>+DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))</div><div class='ctx'> </div><div class='ctx'> OBJEXT        = @OBJEXT@</div><div class='add'>+ASMEXT        = S</div><div class='add'>+SOEXT         = @SOEXT@</div><div class='add'>+DLEXT         = @DLEXT@</div><div class='ctx'> MANTYPE	      = @MANTYPE@</div><div class='add'>+SYMBOL_PREFIX = @SYMBOL_PREFIX@</div><div class='ctx'> </div><div class='ctx'> INSTALLED_LIST= .installed.list</div><div class='add'>+</div><div class='add'>+NEWLINE_C     = enc/trans/newline.c</div><div class='add'>+MINIPRELUDE_C = miniprelude.c</div><div class='add'>+PRELUDE_C     = prelude.c</div><div class='add'>+RBCONFIG      = .rbconfig.time</div><div class='add'>+</div><div class='add'>+MAINSRC = $(MAINOBJ:@OBJEXT@=c)</div><div class='add'>+</div><div class='add'>+SRC_FILE      = $&lt;</div><div class='add'>+OS_SRC_FILE   = $&lt;</div><div class='add'>+DEST_FILE     = $@</div><div class='add'>+OS_DEST_FILE  = $@</div><div class='add'>+</div><div class='add'>+MESSAGE_BEGIN = @for line in</div><div class='add'>+MESSAGE_END = ; do echo "$$line"; done</div><div class='add'>+ECHO_BEGIN = @sep=''; for word in</div><div class='add'>+ECHO_END = ; do echo @ECHO_N@ "$$sep'$$word'@ECHO_C@"; sep=' '; done; echo</div><div class='add'>+</div><div class='add'>+DESTDIR       = @DESTDIR@</div><div class='add'>+</div><div class='add'>+configure_args = @configure_args@</div><div class='ctx'> #### End of variables</div><div class='ctx'> </div><div class='del'>-all:</div><div class='add'>+.SUFFIXES: .inc .h .c .y .i .$(DTRACE_EXT)</div><div class='ctx'> </div><div class='del'>-.DEFAULT: all</div><div class='add'>+all:</div><div class='ctx'> </div><div class='ctx'> # Prevent GNU make v3 from overflowing arg limit on SysV.</div><div class='ctx'> .NOEXPORT:</div><div class='ctx'> </div><div class='ctx'> miniruby$(EXEEXT):</div><div class='del'>-		@$(RM) $@</div><div class='del'>-		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@</div><div class='add'>+		@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi</div><div class='add'>+		$(ECHO) linking $@</div><div class='add'>+		$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@</div><div class='add'>+		$(Q) $(POSTLINK)</div><div class='ctx'> </div><div class='ctx'> $(PROGRAM):</div><div class='ctx'> 		@$(RM) $@</div><div class='del'>-		$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@</div><div class='add'>+		$(ECHO) linking $@</div><div class='add'>+		$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@</div><div class='add'>+		$(Q) $(POSTLINK)</div><div class='ctx'> </div><div class='ctx'> # We must `rm' the library each time this rule is invoked because "updating" a</div><div class='ctx'> # MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not</div><div class='ctx'> # supported.</div><div class='ctx'> $(LIBRUBY_A):</div><div class='ctx'> 		@$(RM) $@</div><div class='del'>-		$(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT)</div><div class='add'>+		$(ECHO) linking static-library $@</div><div class='add'>+		$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)</div><div class='ctx'> 		@-$(RANLIB) $@ 2&gt; /dev/null || true</div><div class='ctx'> </div><div class='add'>+verify-static-library: $(LIBRUBY_A)</div><div class='add'>+		$(ECHO) verifying static-library $@</div><div class='add'>+		@$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)conftest$(EXEEXT)</div><div class='add'>+		@$(RMALL) conftest$(EXEEXT) conftest.c conftest.dSYM</div><div class='add'>+</div><div class='ctx'> $(LIBRUBY_SO):</div><div class='ctx'> 		@-$(PRE_LIBRUBY_UPDATE)</div><div class='del'>-		$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@</div><div class='del'>-		@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \</div><div class='add'>+		$(ECHO) linking shared-library $@</div><div class='add'>+		$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@</div><div class='add'>+		-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)ruby_static_id_*' \</div><div class='add'>+			-L '$(SYMBOL_PREFIX)*_threadptr_*' -L '$(SYMBOL_PREFIX)*_ec_*' $@</div><div class='add'>+		$(Q) $(POSTLINK)</div><div class='add'>+		@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link rescue nil; \</div><div class='ctx'> 						  File.symlink "$(LIBRUBY_SO)", link}' \</div><div class='ctx'> 				$(LIBRUBY_ALIASES) || true</div><div class='ctx'> </div><div class='del'>-fake.rb:	Makefile</div><div class='del'>-		@echo ' \</div><div class='del'>-		class Object; \</div><div class='del'>-		  CROSS_COMPILING = RUBY_PLATFORM; \</div><div class='del'>-		  remove_const :RUBY_PLATFORM; \</div><div class='del'>-		  remove_const :RUBY_VERSION; \</div><div class='del'>-		  RUBY_PLATFORM = "@arch@"; \</div><div class='del'>-		  RUBY_VERSION = "@MAJOR@.@MINOR@.@TEENY@"; \</div><div class='del'>-		end; \</div><div class='del'>-		if RUBY_PLATFORM =~ /mswin|bccwin|mingw/; \</div><div class='del'>-		  class File; \</div><div class='del'>-		    remove_const :ALT_SEPARATOR; \</div><div class='del'>-		    ALT_SEPARATOR = "\\"; \</div><div class='del'>-		  end; \</div><div class='del'>-		end; \</div><div class='del'>-		' &gt; $@</div><div class='del'>-</div><div class='del'>-Makefile:	$(srcdir)/Makefile.in</div><div class='del'>-</div><div class='del'>-$(MKFILES): config.status $(srcdir)/common.mk</div><div class='del'>-		MAKE=$(MAKE) $(SHELL) ./config.status</div><div class='del'>-		@{ \</div><div class='add'>+ruby_pc = @ruby_pc@</div><div class='add'>+$(ruby_pc):</div><div class='add'>+		@./config.status --file=$@:$(srcdir)/template/ruby.pc.in</div><div class='add'>+</div><div class='add'>+ruby-runner.h: template/ruby-runner.h.in</div><div class='add'>+		@./config.status --file=$@:$(srcdir)/template/$(@F).in</div><div class='add'>+</div><div class='add'>+$(RBCONFIG): $(PREP)</div><div class='add'>+</div><div class='add'>+rbconfig.rb: $(RBCONFIG)</div><div class='add'>+</div><div class='add'>+install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \</div><div class='add'>+	$(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE)</div><div class='add'>+	$(ECHO) installing cross-compiling stuff</div><div class='add'>+	$(Q) $(MAKEDIRS) $(XRUBY_RUBYLIBDIR)/$(arch) $(XRUBY_RUBYHDRDIR)/$(arch)/ruby</div><div class='add'>+	$(Q) sed '/^\$$:\.unshift/q' $(arch)-fake.rb &gt; fake.rb</div><div class='add'>+	$(Q) $(BASERUBY) -p \</div><div class='add'>+	-e '~/^\s*CONFIG\["LDFLAGS"\]/ and' \</div><div class='add'>+	-e '$$_[/(?=\s*"$$)/] = %q[ #{(CONFIG["LIBPATHFLAG"]%File.dirname(__FILE__)).strip}]' \</div><div class='add'>+	rbconfig.rb &gt; fake-rbconfig.rb</div><div class='add'>+	$(INSTALL_SCRIPT) fake.rb $(XRUBY_RUBYLIBDIR)/$(arch)/fake.rb</div><div class='add'>+	$(INSTALL_SCRIPT) fake-rbconfig.rb $(XRUBY_RUBYLIBDIR)/$(arch)/rbconfig.rb</div><div class='add'>+	@$(RM) fake.rb fake-rbconfig.rb</div><div class='add'>+	$(INSTALL_DATA) $(arch_hdrdir)/ruby/config.h $(XRUBY_RUBYHDRDIR)/$(arch)/ruby</div><div class='add'>+	$(INSTALL_DATA) $(top_srcdir)/include/ruby/win32.h $(XRUBY_RUBYHDRDIR)/ruby</div><div class='add'>+	$(INSTALL_DATA) $(LIBRUBY) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)</div><div class='add'>+	$(INSTALL_PROGRAM) $(LIBRUBY_SO) $(XRUBY_RUBYLIBDIR)/$(arch)</div><div class='add'>+</div><div class='add'>+Makefile:	$(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in</div><div class='add'>+</div><div class='add'>+$(MKFILES): config.status $(srcdir)/version.h</div><div class='add'>+		@[ -f $@ ] &amp;&amp; mv $@ $@.old</div><div class='add'>+		MAKE=$(MAKE) $(SHELL) ./config.status $@</div><div class='add'>+		@cmp $@ $@.old &gt; /dev/null 2&gt;&amp;1 &amp;&amp; echo $@ unchanged &amp;&amp; exit 0; \</div><div class='add'>+		{ \</div><div class='ctx'> 		    echo "all:; -@rm -f conftest.mk"; \</div><div class='ctx'> 		    echo "conftest.mk: .force; @echo AUTO_REMAKE"; \</div><div class='ctx'> 		    echo ".force:"; \</div><div class='ctx'> 		} &gt; conftest.mk || exit 1; \</div><div class='ctx'> 		$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' &gt;/dev/null 2&gt;&amp;1 || \</div><div class='del'>-		{ echo "Makefile updated, restart."; exit 1; }</div><div class='del'>-</div><div class='del'>-config.status:	$(srcdir)/configure</div><div class='del'>-		MINIRUBY="$(MINIRUBY)" $(SHELL) ./config.status --recheck</div><div class='del'>-</div><div class='del'>-$(srcdir)/configure: $(srcdir)/configure.in</div><div class='del'>-		cd $(srcdir) &amp;&amp; $(AUTOCONF)</div><div class='del'>-</div><div class='del'>-lex.c: keywords</div><div class='del'>-	@-$(RM) $@</div><div class='del'>-	gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? &gt; $@ || \</div><div class='del'>-	cp "$(srcdir)/$@" .</div><div class='del'>-</div><div class='del'>-.y.c:</div><div class='del'>-	$(YACC) $&lt;</div><div class='del'>-	sed '/^#/s|y\.tab\.c|$@|' y.tab.c &gt; $@</div><div class='del'>-	rm -f y.tab.c</div><div class='add'>+		{ echo "$@ updated, restart."; exit 1; }</div><div class='add'>+</div><div class='add'>+uncommon.mk: $(srcdir)/common.mk</div><div class='add'>+		sed 's/{\$$([^(){}]*)[^{}]*}//g' $&lt; &gt; $@</div><div class='add'>+</div><div class='add'>+.PHONY: reconfig</div><div class='add'>+reconfig-args = $(srcdir)/$(CONFIGURE) $(configure_args)</div><div class='add'>+config.status-args = ./config.status --recheck</div><div class='add'>+reconfig-exec-0 = test -t 1 &amp;&amp; { CONFIGURE_TTY=yes; export CONFIGURE_TTY; }; exec 3&gt;&amp;1; exit `exec 4&gt;&amp;1; { "$$@" 3&gt;&amp;- 4&gt;&amp;-; echo $$? 1&gt;&amp;4; } | fgrep -v '(cached)' 1&gt;&amp;3 3&gt;&amp;- 4&gt;&amp;-`</div><div class='add'>+reconfig-exec-1 = set -x; "$$@"</div><div class='add'>+</div><div class='add'>+reconfig config.status:	$(srcdir)/$(CONFIGURE) $(srcdir)/enc/Makefile.in \</div><div class='add'>+			$(srcdir)/include/ruby/version.h</div><div class='add'>+	@PWD= MINIRUBY="$(MINIRUBY)"; export MINIRUBY; \</div><div class='add'>+	set $(SHELL) $($@-args); $(reconfig-exec-$(V))</div><div class='add'>+</div><div class='add'>+$(srcdir)/$(CONFIGURE): $(srcdir)/configure.ac $(srcdir)/aclocal.m4</div><div class='add'>+	$(CHDIR) $(srcdir) &amp;&amp; exec $(AUTOCONF) -o $(@F)</div><div class='add'>+</div><div class='add'>+$(srcdir)/aclocal.m4:</div><div class='add'>+	$(CHDIR) $(srcdir) &amp;&amp; \</div><div class='add'>+	type $(ACLOCAL) &gt;/dev/null 2&gt;&amp;1 &amp;&amp; exec $(ACLOCAL); \</div><div class='add'>+	touch $(@F)</div><div class='add'>+</div><div class='add'>+prereq: $(srcdir)/$(CONFIGURE)</div><div class='add'>+</div><div class='add'>+incs: id.h</div><div class='add'>+all-incs: probes.h</div><div class='add'>+</div><div class='add'>+# Things which should be considered:</div><div class='add'>+# * with gperf v.s. without gperf</div><div class='add'>+# * committers may have various versions of gperf</div><div class='add'>+# * ./configure v.s. ../ruby/configure</div><div class='add'>+# * GNU make v.s. HP-UX make	# HP-UX make invokes the action if lex.c and keywords has same mtime.</div><div class='add'>+# * svn checkout generate a file with mtime as current time</div><div class='add'>+# * ext4 and XFS has a mtime with fractional part</div><div class='add'>+lex.c: defs/keywords</div><div class='add'>+	@\</div><div class='add'>+	if cmp -s $(srcdir)/defs/lex.c.src $?; then \</div><div class='add'>+	  [ $(Q) ] &amp;&amp; echo copying $@ || set -x; \</div><div class='add'>+	  $(CP) $(srcdir)/lex.c.blt $@; \</div><div class='add'>+	else \</div><div class='add'>+	  [ $(Q) ] &amp;&amp; echo generating $@ || set -x; \</div><div class='add'>+	  gperf -C -P -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? \</div><div class='add'>+	  | sed -f $(srcdir)/tool/gperf.sed \</div><div class='add'>+	  &gt; $@.tmp &amp;&amp; \</div><div class='add'>+	  $(MV) $@.tmp $@ &amp;&amp; \</div><div class='add'>+	  $(CP) $? $(srcdir)/defs/lex.c.src &amp;&amp; \</div><div class='add'>+	  $(CP) $@ $(srcdir)/lex.c.blt; \</div><div class='add'>+	fi</div><div class='add'>+</div><div class='add'>+JIS_PROPS_OPTIONS = -k1,3 -7 -c -j1 -i1 -t -C -P -t --ignore-case -H onig_jis_property_hash -Q onig_jis_property_pool -N onig_jis_property</div><div class='add'>+</div><div class='add'>+$(srcdir)/enc/jis/props.h: enc/jis/props.kwd</div><div class='add'>+	$(MAKEDIRS) $(@D)</div><div class='add'>+	@set +e; \</div><div class='add'>+	if cmp -s $(?:.kwd=.src) $?; then \</div><div class='add'>+	  set -x; \</div><div class='add'>+	  $(CP) $(?:.kwd=.h.blt) $@; \</div><div class='add'>+	else \</div><div class='add'>+	  set -x; \</div><div class='add'>+	  gperf $(JIS_PROPS_OPTIONS) $? | \</div><div class='add'>+	  sed -f $(srcdir)/tool/gperf.sed &gt; $@ &amp;&amp; \</div><div class='add'>+	  $(CP) $? $(?:.kwd=.src) &amp;&amp; \</div><div class='add'>+	  $(CP) $@ $(?:.kwd=.h.blt); \</div><div class='add'>+	fi</div><div class='ctx'> </div><div class='ctx'> .c.@OBJEXT@:</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c $&lt;</div><div class='add'>+	@$(ECHO) compiling $&lt;</div><div class='add'>+	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $&lt;</div><div class='ctx'> </div><div class='ctx'> .s.@OBJEXT@:</div><div class='del'>-	$(AS) $(ASFLAGS) -o $@ $&lt;</div><div class='add'>+	@$(ECHO) assembling $&lt;</div><div class='add'>+	$(Q) $(AS) $(ASFLAGS) -o $@ $&lt;</div><div class='add'>+</div><div class='add'>+.c.S:</div><div class='add'>+	@$(ECHO) translating $&lt;</div><div class='add'>+	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $&lt;</div><div class='add'>+</div><div class='add'>+.c.i:</div><div class='add'>+	@$(ECHO) preprocessing $&lt;</div><div class='add'>+	$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $&lt; &gt; $@</div><div class='add'>+</div><div class='add'>+.d.h:</div><div class='add'>+	@$(ECHO) translating probes $&lt;</div><div class='add'>+	$(Q) $(DTRACE) -o $@.tmp -h -C $(INCFLAGS) -s $&lt;</div><div class='add'>+	$(Q) sed -e 's/RUBY_/RUBY_DTRACE_/g' -e 's/PROBES_H_TMP/RUBY_PROBES_H/' -e 's/(char \*/(const char */g' -e 's/, char \*/, const char */g' $@.tmp &gt; $@</div><div class='add'>+	$(Q) $(RM) $@.tmp</div><div class='add'>+</div><div class='add'>+.dmyh.h:</div><div class='add'>+	@$(ECHO) making dummy $(DEST_FILE)</div><div class='add'>+	$(Q)echo '#include "$(*F).dmyh"' &gt; $@</div><div class='add'>+</div><div class='add'>+probes.stamp: $(DTRACE_REBUILD_OBJS)</div><div class='add'>+	$(Q) if test -f $@ -o -f probes.$(OBJEXT); then \</div><div class='add'>+	  $(RM) $(DTRACE_REBUILD_OBJS) $@; \</div><div class='add'>+	  $(ECHO0) "rebuilding objects which were modified by \"dtrace -G\""; \</div><div class='add'>+	  $(MAKE) $(DTRACE_REBUILD_OBJS); \</div><div class='add'>+	fi</div><div class='add'>+	$(Q) touch $@</div><div class='add'>+</div><div class='add'>+probes.@OBJEXT@: $(srcdir)/probes.d $(DTRACE_REBUILD:yes=probes.stamp)</div><div class='add'>+	@$(ECHO) processing probes in object files</div><div class='add'>+	$(Q) $(RM) $@</div><div class='add'>+	$(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_REBUILD_OBJS)</div><div class='add'>+</div><div class='add'>+# DTrace static library hacks described here:</div><div class='add'>+# http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html</div><div class='add'>+ruby-glommed.$(OBJEXT):</div><div class='add'>+	@$(ECHO) generating a glommed object with DTrace probes for static library</div><div class='add'>+	$(Q) $(LD) -r -o $@ $(OBJS)</div><div class='ctx'> </div><div class='ctx'> clean-local::</div><div class='del'>-	@$(RM) ext/extinit.c ext/extinit.$(OBJEXT)</div><div class='add'>+	$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \</div><div class='add'>+		enc/encinit.c enc/encinit.$(OBJEXT)</div><div class='add'>+	-$(Q)$(RM) $(pkgconfig_DATA)</div><div class='add'>+	-$(Q)$(RMALL) exe/ ruby-runner.h *.dSYM</div><div class='ctx'> </div><div class='ctx'> distclean-local::</div><div class='del'>-	@$(RM) ext/config.cache $(RBCONFIG)</div><div class='add'>+	$(Q)$(RM) ext/config.cache $(RBCONFIG) Doxyfile</div><div class='add'>+	-$(Q)$(RM) run.gdb</div><div class='add'>+	-$(Q)$(RM) $(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h verconf.h</div><div class='add'>+	-$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+ext/clean.sub gems/clean.sub:: ext/clean.mk</div><div class='add'>+ext/distclean.sub gems/distclean.sub:: ext/distclean.mk</div><div class='add'>+ext/realclean.sub gems/realclean.sub:: ext/realclean.mk</div><div class='add'>+</div><div class='add'>+ext/clean.mk ext/distclean.mk ext/realclean.mk::</div><div class='add'>+	-$(Q) if [ -f $(EXTS_MK) ]; then exec $(MAKE) -f $(EXTS_MK) $(@F:.mk=); fi</div><div class='add'>+</div><div class='add'>+ext/clean:: ext/clean.sub</div><div class='add'>+ext/distclean:: ext/distclean.sub</div><div class='add'>+ext/realclean:: ext/realclean.sub</div><div class='add'>+gems/clean:: gems/clean.sub</div><div class='add'>+gems/distclean:: gems/distclean.sub</div><div class='add'>+gems/realclean:: gems/realclean.sub</div><div class='add'>+</div><div class='add'>+ext/clean.sub ext/distclean.sub ext/realclean.sub \</div><div class='add'>+gems/clean.sub gems/distclean.sub gems/realclean.sub::</div><div class='add'>+	$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \</div><div class='add'>+	test "$$#" = 0 &amp;&amp; set .; \</div><div class='add'>+	set dummy `\</div><div class='add'>+	    cd $(@D) 2&gt;/dev/null &amp;&amp; \</div><div class='add'>+	    find "$$@" \( -name Makefile -o -name exts.mk \) -print | \</div><div class='add'>+	    sed -n 's:^\./::;s:^:$(@D)/:;s:/[^/][^/]*$$::p' | sort -u; \</div><div class='add'>+	`; shift; \</div><div class='add'>+	for dir do \</div><div class='add'>+	    $(RM) "$$dir/exts.mk"; \</div><div class='add'>+	    if [ -f "$$dir/Makefile" ]; then \</div><div class='add'>+		echo $(@F:.sub=)ing "$$dir"; \</div><div class='add'>+		(cd "$$dir" &amp;&amp; exec $(MAKE) $(mflags) $(@F:.sub=)); \</div><div class='add'>+	    fi; \</div><div class='add'>+	done || true</div><div class='add'>+</div><div class='add'>+ext/distclean ext/realclean gems/distclean gems/realclean::</div><div class='add'>+	$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \</div><div class='add'>+	test "$$#" = 0 &amp;&amp; set .; \</div><div class='add'>+	cd $(@D) 2&gt;/dev/null &amp;&amp; \</div><div class='add'>+	find "$$@" -type d -empty -exec $(RMDIRS) {} + 2&gt; /dev/null || true</div><div class='add'>+	$(Q) $(RMDIRS) $(@D) 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+clean-enc distclean-enc realclean-enc:</div><div class='add'>+	@test -f "$(ENC_MK)" || exit 0; \</div><div class='add'>+	echo $(@:-enc=ing) encodings; \</div><div class='add'>+	exec $(MAKE) $(MAKE_ENC) $(@:-enc=)</div><div class='ctx'> </div><div class='ctx'> ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)</div><div class='del'>-	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ -c ext/extinit.c</div><div class='add'>+	$(ECHO) compiling $@</div><div class='add'>+	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c</div><div class='add'>+</div><div class='add'>+enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)</div><div class='add'>+</div><div class='add'>+test-bundled-gems-run:</div><div class='add'>+	$(Q) set -e; while read gem _; do \</div><div class='add'>+	  echo testing $$gem gem &amp;&amp; \</div><div class='add'>+	  $(XRUBY) -C $(srcdir)/gems/src/$$gem -Ilib ../../../.bundle/bin/rake; \</div><div class='add'>+	done &lt; $(srcdir)/gems/bundled_gems</div><div class='add'>+</div><div class='add'>+update-src::</div><div class='add'>+	@$(CHDIR) "$(srcdir)" &amp;&amp; LC_TIME=C exec $(VCSUP)</div><div class='add'>+</div><div class='add'>+update-download:: update-config_files</div><div class='add'>+</div><div class='add'>+after-update:: prereq</div><div class='add'>+</div><div class='add'>+gcov:</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/run-gcov.rb</div><div class='add'>+</div><div class='add'>+lcov:</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/run-lcov.rb</div><div class='add'>+</div><div class='add'>+update-doclie:</div><div class='add'>+	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='add'>+		--branch $(DOCLIE_GIT_REF) \</div><div class='add'>+		$(DOCLIE_GIT_URL) doclie $(GIT_OPTS)</div><div class='add'>+</div><div class='add'>+update-simplecov-html:</div><div class='add'>+	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='add'>+		--branch $(SIMPLECOV_HTML_GIT_REF) \</div><div class='add'>+		$(SIMPLECOV_HTML_GIT_URL) simplecov-html $(GIT_OPTS)</div><div class='add'>+</div><div class='add'>+update-simplecov:</div><div class='add'>+	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='add'>+		--branch $(SIMPLECOV_GIT_REF)  \</div><div class='add'>+		$(SIMPLECOV_GIT_URL) simplecov $(GIT_OPTS)</div><div class='add'>+</div><div class='add'>+update-coverage: update-simplecov update-simplecov-html update-doclie</div><div class='add'>+</div><div class='add'>+INSNS	= opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \</div><div class='add'>+	  vmtc.inc vm.inc</div><div class='add'>+</div><div class='add'>+$(INSNS): $(srcdir)/insns.def vm_opts.h \</div><div class='add'>+	  $(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \</div><div class='add'>+	  $(srcdir)/tool/instruction.rb $(srcdir)/tool/insns2vm.rb</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) -Ku $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@</div><div class='add'>+</div><div class='add'>+verconf.h: $(RBCONFIG)</div><div class='add'>+</div><div class='add'>+loadpath: verconf.h</div><div class='add'>+	@$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \</div><div class='add'>+	sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \</div><div class='add'>+	    -e '/^ /!d;s/ *"\\0"$$//;s/" *"//g'</div><div class='add'>+</div><div class='add'>+un-runnable:</div><div class='add'>+	$(ECHO) cannot make runnable, configure with --enable-load-relative.</div><div class='add'>+	$(Q) exit 1</div><div class='head'>diff --git a/NEWS b/NEWS<br/>index de1dafb533..e1b91f38b7 100644<br/>--- a/<a href='/ruby.git/tree/NEWS?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>NEWS</a><br/>+++ b/<a href='/ruby.git/tree/NEWS?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>NEWS</a></div><div class='hunk'>@@ -1,115 +1,577 @@</div><div class='del'>-= NEWS</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.5.0</div><div class='ctx'> </div><div class='ctx'> This document is a list of user visible feature changes made between</div><div class='del'>-releases excluding bug fixes.</div><div class='add'>+releases except for bug fixes.</div><div class='ctx'> </div><div class='ctx'> Note that each entry is kept so brief that no reason behind or</div><div class='ctx'> reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file.</div><div class='add'>+with all sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='add'>+</div><div class='add'>+== Changes since the 2.4.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Top-level constant look-up is removed.  [Feature #11547]</div><div class='add'>+</div><div class='add'>+* rescue/else/ensure are allowed inside do/end blocks.  [Feature #12906]</div><div class='add'>+</div><div class='add'>+* refinements take place in string interpolations.  [Feature #13812]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Array#append  [Feature #12746]</div><div class='add'>+    * Array#prepend  [Feature #12746]</div><div class='add'>+</div><div class='add'>+* Data</div><div class='add'>+</div><div class='add'>+  * Is deprecated. It was a base class for C extensions, and it's not</div><div class='add'>+    necessary to expose in Ruby level. [Feature #3072]</div><div class='add'>+</div><div class='add'>+* Exception</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Exception#full_message to retrieve a String expression of an exception,</div><div class='add'>+      formatted in the same way in which Ruby prints out an uncaught exception.</div><div class='add'>+      [Feature #14141] [experimental]</div><div class='add'>+</div><div class='add'>+* Dir</div><div class='add'>+</div><div class='add'>+  * Dir.glob provides new optional keyword argument, :base.</div><div class='add'>+    [Feature #13056]</div><div class='add'>+  * Dir.chdir (without block arg), Dir.open, Dir.new, Dir.mkdir, Dir.rmdir,</div><div class='add'>+    Dir.empty? releases GVL</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Dir.children  [Feature #11302]</div><div class='add'>+    * Dir.each_child  [Feature #11302]</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+</div><div class='add'>+  * Enumerable#{any?,all?,none?,one?} accept a pattern argument [Feature #11286]</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+</div><div class='add'>+  * File.open accepts :newline option to imply text mode.  [Bug #13350]</div><div class='add'>+  * File#path raises an IOError for files opened with</div><div class='add'>+    File::Constants::TMPFILE option. [Feature #13568]</div><div class='add'>+  * File.stat, File.exist?, and other rb_stat()-using methods release GVL</div><div class='add'>+    [Bug #13941]</div><div class='add'>+  * File.rename releases GVL [Feature #13951]</div><div class='add'>+  * File::Stat#{atime,mtime,ctime} support fractional second timestamps on</div><div class='add'>+    Windows 8 and later  [Feature #13726]</div><div class='add'>+  * File::Stat#ino and File.indentical? support ReFS 128bit ino on Windows 8.1</div><div class='add'>+    and later  [Feature #13731]</div><div class='add'>+  * File.readable?, File.readable_real?, File.writable?, File.writable_real?,</div><div class='add'>+    File.executable?, File.executable_real?, File.mkfifo, File.readlink,</div><div class='add'>+    File.truncate, File#truncate, File.chmod, File.lchmod, File.chown,</div><div class='add'>+    File.lchown, File.unlink, File.utime, File.lstat release GVL</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * File.lutime  [Feature #4052]</div><div class='add'>+</div><div class='add'>+* Exception</div><div class='add'>+</div><div class='add'>+  * Exception#full_message takes :highlight and :order options [Bug #14324]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Hash#transform_keys  [Feature #13583]</div><div class='add'>+    * Hash#transform_keys!  [Feature #13583]</div><div class='add'>+    * Hash#slice  [Feature #8499]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+  * IO#copy_stream tries copy offload with copy_file_range(2) [Feature #13867]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * IO#pread  [Feature #4532]</div><div class='add'>+    * IO#pwrite  [Feature #4532]</div><div class='add'>+    * IO#write accepts multiple arguments  [Feature #9323]</div><div class='add'>+</div><div class='add'>+* IOError</div><div class='add'>+</div><div class='add'>+  * IO#close might raise an error with message "stream closed",</div><div class='add'>+    but it is refined to "stream closed in another thread". The new message</div><div class='add'>+    is more clear for user.</div><div class='add'>+    [Bug #13405]</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+</div><div class='add'>+  * Integer#step no longer hides errors from coerce method when</div><div class='add'>+    given a step value which cannot be compared with #&gt; to 0.</div><div class='add'>+    [Feature #7688]</div><div class='add'>+  * Integer#{round,floor,ceil,truncate} always return an Integer.</div><div class='add'>+    [Bug #13420]</div><div class='add'>+  * Integer#pow accepts modulo argument for calculating modular</div><div class='add'>+    exponentiation.  [Feature #12508] [Feature #11003]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Integer#allbits?, Integer#anybits?, Integer#nobits? [Feature #12753]</div><div class='add'>+    * Integer.sqrt  [Feature #13219]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+  * Kernel#yield_self   [Feature #6721]</div><div class='add'>+  * Kernel#pp  [Feature #14123]</div><div class='add'>+  * Kernel#warn(..., uplevel:n)  [Feature #12882]</div><div class='add'>+</div><div class='add'>+* Method</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Method#=== that invokes Method#call, as same as Proc#=== [Feature #14142]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+  * Module#{attr,attr_accessor,attr_reader,attr_writer} become public [Feature #14132]</div><div class='add'>+  * Module#{define_method,alias_method,undef_method,remove_method} become public [Feature #14133]</div><div class='add'>+</div><div class='add'>+* Numeric</div><div class='add'>+</div><div class='add'>+  * Numerical comparison operators (&lt;,&lt;=,&gt;=,&gt;) no longer hide exceptions</div><div class='add'>+    from #coerce method internally. Return nil in #coerce if the coercion is</div><div class='add'>+    impossible.  [Feature #7688]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+</div><div class='add'>+  * Precision of Process.times is improved if getrusage(2) exists. [Feature #11952]</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Process.last_status as an alias of $? [Feature #14043]</div><div class='add'>+</div><div class='add'>+* Range</div><div class='add'>+  * Range#initialize no longer hides exceptions when comparing begin and</div><div class='add'>+    end with #&lt;=&gt; and raise a "bad value for range" ArgumentError</div><div class='add'>+    but instead lets the exception from the #&lt;=&gt; call go through.</div><div class='add'>+    [Feature #7688]</div><div class='add'>+</div><div class='add'>+* Regexp</div><div class='add'>+</div><div class='add'>+  * Update to Onigmo 6.1.3-669ac9997619954c298da971fcfacccf36909d05.</div><div class='add'>+</div><div class='add'>+    * Support absence operator https://github.com/k-takata/Onigmo/issues/82</div><div class='add'>+</div><div class='add'>+  * Support new 5 emoji-related Unicode character properties</div><div class='add'>+</div><div class='add'>+* RubyVM::InstructionSequence</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * RubyVM::InstructionSequence#each_child</div><div class='add'>+    * RubyVM::InstructionSequence#trace_points</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+  * String#-@ deduplicates unfrozen strings.  Already-frozen</div><div class='add'>+    strings remain unchanged for compatibility.  [Feature #13077]</div><div class='add'>+  * -"literal" (String#-@) optimized to return the same object</div><div class='add'>+    (same as "literal".freeze in Ruby 2.1+) [Feature #13295]</div><div class='add'>+  * String#{casecmp,casecmp?} return nil for non-string arguments</div><div class='add'>+    instead of raising a TypeError. [Bug #13312]</div><div class='add'>+  * String#start_with? accepts a regexp [Feature #13712]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * String#delete_prefix, String#delete_prefix! [Feature #12694]</div><div class='add'>+    * String#delete_suffix, String#delete_suffix! [Feature #13665]</div><div class='add'>+    * String#each_grapheme_cluster and String#grapheme_clusters to</div><div class='add'>+      enumerate grapheme clusters [Feature #13780]</div><div class='add'>+    * String#undump to unescape String#dump'ed string [Feature #12275]</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+</div><div class='add'>+  * Struct.new takes `keyword_init: true` option to initialize members</div><div class='add'>+    with keyword arguments. [Feature #11925]</div><div class='add'>+</div><div class='add'>+* Regexp/String: Update Unicode version from 9.0.0 to 10.0.0 [Feature #13685]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+  * Description set by Thread#name= is now visible on Windows 10.</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+    * Thread#fetch  [Feature #13009]</div><div class='add'>+</div><div class='add'>+  * The default of Thread.report_on_exception is now true,</div><div class='add'>+    showing unhandled exceptions terminating threads on $stderr.</div><div class='add'>+    [Feature #14143]</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+</div><div class='add'>+  * Time#at receives 3rd argument which specifies the unit of 2nd argument.</div><div class='add'>+    [Feature #13919]</div><div class='add'>+</div><div class='add'>+* KeyError</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * KeyError#receiver [Feature #12063]</div><div class='add'>+    * KeyError#key      [Feature #12063]</div><div class='ctx'> </div><div class='del'>-== Changes with Ruby 1.8.5</div><div class='add'>+* FrozenError</div><div class='ctx'> </div><div class='del'>-=== New platforms/build tools support</div><div class='add'>+  * New exception class. [Feature #13224]</div><div class='ctx'> </div><div class='del'>-* IA64 HP-UX</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='ctx'> </div><div class='del'>-* Visual C++ 8 SP1</div><div class='add'>+* BigDecimal</div><div class='ctx'> </div><div class='del'>-* autoconf 2.6x</div><div class='add'>+  * Update to BigDecimal 1.3.4</div><div class='ctx'> </div><div class='del'>-=== Library updates (outstanding ones only)</div><div class='add'>+  * The following features are added:</div><div class='ctx'> </div><div class='del'>-* date</div><div class='add'>+    * BigDecimal::VERSION</div><div class='ctx'> </div><div class='del'>-  * Updated based on date2 4.0.3.</div><div class='add'>+  * The following features have been deprecated,</div><div class='add'>+    and are planned to be removed in the version 1.4.0:</div><div class='ctx'> </div><div class='del'>-* digest</div><div class='add'>+    * BigDecimal.new</div><div class='ctx'> </div><div class='del'>-  * New internal APIs for C and Ruby.</div><div class='add'>+    * BigDecimal.ver</div><div class='ctx'> </div><div class='del'>-  * Support for autoloading.</div><div class='add'>+  * BigDecimal#clone and #dup now do not make a new instance,</div><div class='add'>+    but returns the receiver itself.</div><div class='ctx'> </div><div class='del'>-  * See below for new features and compatibility issues.</div><div class='add'>+* Coverage</div><div class='ctx'> </div><div class='del'>-* nkf</div><div class='add'>+  * Support branch coverage and method coverage measurement. [Feature #13901]</div><div class='add'>+    Branch coverage tells you which branches are executed, and which not.</div><div class='add'>+    Method coverage tells you which methods are invoked, and which not.</div><div class='add'>+    By running a test suite with this new feature, you can know which branches</div><div class='add'>+    and methods are executed by a test, and evaluate total coverage of a test</div><div class='add'>+    suite more strictly.</div><div class='ctx'> </div><div class='del'>-  * Updated based on nkf as of 2007-01-28.</div><div class='add'>+    You can specify the measuring target by an option to `Coverage.start`:</div><div class='ctx'> </div><div class='del'>-* tk</div><div class='add'>+        Coverage.start(lines: true, branches: true, methods: true)</div><div class='ctx'> </div><div class='del'>-  * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable</div><div class='del'>-    (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available,</div><div class='del'>-    but it is an alias name.</div><div class='add'>+    After some Ruby files are loaded, you can use `Coverage.result` to get</div><div class='add'>+    the coverage result:</div><div class='ctx'> </div><div class='del'>-  * Updated Tile extension support based on Tile 0.7.8.</div><div class='add'>+        Coverage.result</div><div class='add'>+        #=&gt; { "/path/to/file.rb"=&gt;</div><div class='add'>+        #     { :lines =&gt; [1, 2, 0, nil, ...],</div><div class='add'>+        #       :branches =&gt;</div><div class='add'>+        #         { [:if, 0, 2, 1, 6, 4] =&gt;</div><div class='add'>+        #             { [:then, 1, 3, 2, 3, 8] =&gt; 0,</div><div class='add'>+        #               [:else, 2, 5, 2, 5, 8] =&gt; 2</div><div class='add'>+        #             }</div><div class='add'>+        #         },</div><div class='add'>+        #       :methods =&gt; {</div><div class='add'>+        #          [Object, :foo, 1, 0, 7, 3] =&gt; 2</div><div class='add'>+        #       }</div><div class='add'>+        #     }</div><div class='add'>+        #   }</div><div class='ctx'> </div><div class='del'>-  * Support --without-X11 configure option for non-X11 versions of</div><div class='del'>-    Tcl/Tk (e.g. Tcl/Tk Aqua).</div><div class='add'>+    The result type of line coverage is not changed; it is just an array that</div><div class='add'>+    contains numbers, which means the count that each line was executed,</div><div class='add'>+    or `nil`s, which means that the line is not relevant.</div><div class='ctx'> </div><div class='del'>-  * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble</div><div class='del'>-    about STDIN blocking on Windows.</div><div class='add'>+    The result type of branch coverage is:</div><div class='ctx'> </div><div class='del'>-=== New methods and features</div><div class='add'>+        { (jump base) =&gt; { (jump target) =&gt; (counter) } }</div><div class='ctx'> </div><div class='del'>-* builtin classes</div><div class='add'>+    where jump base and targets have the format</div><div class='ctx'> </div><div class='del'>-  * New method: Kernel#instance_variable_defined?</div><div class='add'>+        [type, unique-id, start lineno, start column, end lineno, end column]</div><div class='ctx'> </div><div class='del'>-  * New method: Module#class_variable_defined?</div><div class='add'>+    For example, `[:if, 0, 2, 1, 6, 4]` reads an `if` statement that ranges from</div><div class='add'>+    line 2 and column 1, to line 6 and column 4.  `[:then, 1, 3, 2, 3, 8]` reads</div><div class='add'>+    a `then` clause that ranges from line 3 and column 2, to line 3 and column 8.</div><div class='add'>+    Note that lineno starts from 1, and that columnno starts from 0.  So, the</div><div class='add'>+    above example shows a branch from the `if` to the `then` was never executed,</div><div class='add'>+    and a branch from the `if` to the `else` was executed twice.</div><div class='ctx'> </div><div class='del'>-  * New feature: Dir::glob() can now take an array of glob patterns.</div><div class='add'>+    The result type of method coverage is:</div><div class='ctx'> </div><div class='del'>-* digest</div><div class='add'>+        { (method key) =&gt; (counter) }</div><div class='ctx'> </div><div class='del'>-  * New digest class methods: file</div><div class='add'>+    where method key has the format</div><div class='ctx'> </div><div class='del'>-  * New digest instance methods: clone, reset, new,</div><div class='del'>-    inspect, digest_length (alias size or length),</div><div class='del'>-    block_length()</div><div class='add'>+        [class, method-name, start lineno, start column, end lineno, end column]</div><div class='ctx'> </div><div class='del'>-  * New library: digest/bubblebabble</div><div class='add'>+    For example, `[Object, :foo, 1, 0, 7, 3]` reads `Object#foo` that ranges from</div><div class='add'>+    line 1 and column 0, to line 7 and column 3.  The above example shows this</div><div class='add'>+    `Object#foo` was invoked twice.</div><div class='ctx'> </div><div class='del'>-  * New function: Digest(name)</div><div class='add'>+    Note: To keep compatibility, passing no option to `Coverage.start` will measure</div><div class='add'>+    only line coverage, and `Coverage.result` will return the old format:</div><div class='ctx'> </div><div class='del'>-* fileutils</div><div class='add'>+        Coverage.result</div><div class='add'>+        #=&gt; { "/path/to/file.rb"=&gt; [1, 2, 0, nil, ...] }</div><div class='ctx'> </div><div class='del'>-  * New option for FileUtils.cp_r(): :remove_destination</div><div class='add'>+* DRb</div><div class='ctx'> </div><div class='del'>-* thread</div><div class='add'>+  * ACL::ACLEntry.new no longer suppresses IPAddr::InvalidPrefixError.</div><div class='ctx'> </div><div class='del'>-  * Replaced with much faster mutex implementation in C.</div><div class='del'>-    The former implementation is available with a</div><div class='del'>-    configure option `--disable-fastthread'.</div><div class='add'>+* ERB</div><div class='ctx'> </div><div class='del'>-* webrick</div><div class='add'>+  * Add ERB#result_with_hash to render a template with local variables passed</div><div class='add'>+    with a Hash object. [Feature #8631]</div><div class='ctx'> </div><div class='del'>-  * New method: WEBrick::Cookie.parse_set_cookies()</div><div class='add'>+  * Default template file encoding is changed from ASCII-8BIT to UTF-8 in erb</div><div class='add'>+    command. [Bug #14095]</div><div class='add'>+</div><div class='add'>+  * Carriage returns are changed to be trimmed properly if trim_mode is specified</div><div class='add'>+    and used. Duplicated newlines will be removed on Windows. [Bug #5339] [Bug #11464]</div><div class='add'>+</div><div class='add'>+* IPAddr</div><div class='add'>+</div><div class='add'>+  * IPAddr no longer accepts invalid address mask. [Bug #13399]</div><div class='add'>+  * IPAddr#{ipv4_compat,ipv4_compat?} are marked for deprecation. [Bug #13769]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * IPAddr#prefix</div><div class='add'>+    * IPAddr#loopback?</div><div class='add'>+    * IPAddr#private? [Feature #11666]</div><div class='add'>+    * IPAddr#link_local? [Feature #10912]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* IRB</div><div class='add'>+</div><div class='add'>+  * Print backtrace and error message in reverse order [Feature #8661] [experimental]</div><div class='add'>+  * `binding.irb` automatically requires irb and runs [Bug #13099] [experimental]</div><div class='add'>+  * `binding.irb` on its start shows source around the line where it was called</div><div class='add'>+    [Feature #14124]</div><div class='add'>+</div><div class='add'>+* Matrix</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Matrix.combine and Matrix#combine [Feature #10903]</div><div class='add'>+    * Matrix#{hadamard_product,entrywise_product}</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+  * Net::HTTP.new supports no_proxy parameter [Feature #11195]</div><div class='add'>+  * Net::HTTP#{min_version,max_version}, [Feature #9450]</div><div class='add'>+  * Add more HTTP status classes</div><div class='add'>+  * Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]</div><div class='add'>+  * Net::HTTP#{proxy_user,proxy_pass} reflect http_proxy environment variable</div><div class='add'>+    if the system's environment variable is multiuser safe. [Bug #12921]</div><div class='add'>+</div><div class='add'>+* open-uri</div><div class='add'>+  * URI.open method defined as an alias to open-uri's Kernel.open.</div><div class='add'>+    open-uri's Kernel.open will be deprecated in future.</div><div class='add'>+</div><div class='add'>+* OpenSSL</div><div class='add'>+</div><div class='add'>+  * Updated Ruby/OpenSSL from version 2.0 to 2.1. Changes are noted in</div><div class='add'>+    "Version 2.1.0" section in ext/openssl/History.md.</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Pathname#glob [Feature #7360]</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+</div><div class='add'>+  * Update to Psych 3.0.2.</div><div class='add'>+</div><div class='add'>+    * Convert fallback option to a keyword argument</div><div class='add'>+      https://github.com/ruby/psych/pull/342</div><div class='add'>+    * Add :symbolize_names option to Psych.load, Psych.safe_load like JSON.parse</div><div class='add'>+      https://github.com/ruby/psych/pull/333, https://github.com/ruby/psych/pull/337</div><div class='add'>+    * Add Psych::Handler#event_location</div><div class='add'>+      https://github.com/ruby/psych/pull/326</div><div class='add'>+    * Make frozen string literal = true</div><div class='add'>+      https://github.com/ruby/psych/pull/320</div><div class='add'>+    * Preserve time zone offset when deserializing times</div><div class='add'>+      https://github.com/ruby/psych/pull/316</div><div class='add'>+    * Remove deprecated method aliases for syck gem</div><div class='add'>+      https://github.com/ruby/psych/pull/312</div><div class='add'>+</div><div class='add'>+* RbConfig</div><div class='add'>+</div><div class='add'>+  * RbConfig::LIMITS is added to provide the limits of C types.</div><div class='add'>+    This is available when rbconfig/sizeof is loaded.</div><div class='add'>+</div><div class='add'>+* Ripper</div><div class='add'>+</div><div class='add'>+  * Ripper::EXPR_BEG and so on for Ripper#state.</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Ripper#state to tell the state of scanner. [Feature #13686]</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+</div><div class='add'>+  * Update to RDoc 6.0.1.</div><div class='add'>+</div><div class='add'>+    * Replace IRB based lexer with Ripper.</div><div class='add'>+      * https://github.com/ruby/rdoc/pull/512</div><div class='add'>+      * This much improves the speed of generating documents.</div><div class='add'>+      * It also facilitates supporting new syntax in the future.</div><div class='add'>+    * Support many new syntaxes of Ruby from the past few years.</div><div class='add'>+    * Use "frozen_string_literal: true".</div><div class='add'>+      Performance survey: https://gist.github.com/aycabta/abdfaa75ea8a6877eeb734e942e73800</div><div class='add'>+    * Support did_you_mean.</div><div class='add'>+</div><div class='add'>+* Rubygems</div><div class='add'>+</div><div class='add'>+  * Update to Rubygems 2.7.3.</div><div class='add'>+    * http://blog.rubygems.org/2017/11/28/2.7.3-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/08/2.7.2-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/03/2.7.1-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/01/2.7.0-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/10/09/2.6.14-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/08/27/2.6.13-released.html</div><div class='add'>+</div><div class='add'>+* SecureRandom</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * SecureRandom.alphanumeric</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Set#to_s as alias to #inspect [Feature #13676]</div><div class='add'>+    * Set#=== as alias to #include? [Feature #13801]</div><div class='add'>+    * Set#reset [Feature #6589]</div><div class='add'>+</div><div class='add'>+* StringIO</div><div class='add'>+</div><div class='add'>+  * StringIO#write accepts multiple arguments</div><div class='add'>+</div><div class='add'>+* StringScanner</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * StringScanner#size, StringScanner#captures, StringScanner#values_at  [Feature #836]</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+</div><div class='add'>+  * Relative path operations no longer collapse consecutive slashes to a single slash. [Bug #8352]</div><div class='add'>+</div><div class='add'>+* WEBrick</div><div class='add'>+</div><div class='add'>+  * Add Server Name Indication (SNI) support [Feature #13729]</div><div class='add'>+  * support Proc objects as body responses [Feature #855]</div><div class='add'>+  * released as a RubyGem [Feature #13173]</div><div class='add'>+  * avoid unintended behavior from Kernel#open [Misc #14216]</div><div class='add'>+</div><div class='add'>+* Zlib</div><div class='add'>+</div><div class='add'>+  * Zlib::GzipWriter#write accepts multiple arguments</div><div class='ctx'> </div><div class='ctx'> === Compatibility issues (excluding feature bug fixes)</div><div class='ctx'> </div><div class='del'>-* builtin classes</div><div class='add'>+* Socket</div><div class='add'>+</div><div class='add'>+  * BasicSocket#read_nonblock and BasicSocket#write_nonblock no</div><div class='add'>+    longer set the O_NONBLOCK file description flag as side effect</div><div class='add'>+    (on Linux only) [Feature #13362]</div><div class='add'>+</div><div class='add'>+* Random</div><div class='add'>+</div><div class='add'>+  * Random.raw_seed renamed to become Random.urandom.  It is now</div><div class='add'>+    applicable to non-seeding purposes due to [Bug #9569].</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+</div><div class='add'>+  * Socket::Ifaddr#vhid is added [Feature #13803]</div><div class='add'>+</div><div class='add'>+* ConditionVariable, Queue and SizedQueue reimplemented for speed.</div><div class='add'>+  They no longer subclass Struct. [Feature #13552]</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Gemification</div><div class='add'>+</div><div class='add'>+  * Promote following standard libraries to default gems.</div><div class='add'>+    * cmath</div><div class='add'>+    * csv</div><div class='add'>+    * date</div><div class='add'>+    * dbm</div><div class='add'>+    * etc</div><div class='add'>+    * fcntl</div><div class='add'>+    * fiddle</div><div class='add'>+    * fileutils</div><div class='add'>+    * gdbm</div><div class='add'>+    * ipaddr</div><div class='add'>+    * scanf</div><div class='add'>+    * sdbm</div><div class='add'>+    * stringio</div><div class='add'>+    * strscan</div><div class='add'>+    * webrick</div><div class='add'>+    * zlib</div><div class='add'>+</div><div class='add'>+* Logger</div><div class='add'>+</div><div class='add'>+  * Logger.new("| command") had been working to open a command</div><div class='add'>+    unintentionally. It was prohibited, and now Logger#initialize</div><div class='add'>+    treats a String argument only as a filename, as its specification.</div><div class='add'>+    [Bug #14212]</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+  * Net::HTTP#start now passes :ENV to p_addr by default. [Bug #13351]</div><div class='add'>+    To avoid this, pass nil explicitly.</div><div class='add'>+</div><div class='add'>+* mathn.rb</div><div class='add'>+</div><div class='add'>+  * Removed from stdlib. [Feature #10169]</div><div class='add'>+</div><div class='add'>+* Rubygems</div><div class='add'>+</div><div class='add'>+  * Removed "ubygems.rb" file from stdlib. It's needless since Ruby 1.9.</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+=== Supported platform changes</div><div class='add'>+</div><div class='add'>+* Drop support of NaCl platform</div><div class='add'>+</div><div class='add'>+  * https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+* (This might not be a "user visible feature change" but) Hash class's</div><div class='add'>+  hash function is now SipHash13. [Feature #13017]</div><div class='add'>+</div><div class='add'>+* SecureRandom now prefers OS-provided sources than OpenSSL. [Bug #9569]</div><div class='add'>+</div><div class='add'>+* Mutex rewritten to be smaller and faster [Feature #13517]</div><div class='add'>+</div><div class='add'>+* Performance of block passing using block parameters is improved by</div><div class='add'>+  lazy Proc allocation [Feature #14045]</div><div class='add'>+</div><div class='add'>+* Dynamic instrumentation for TracePoint hooks instead of using "trace"</div><div class='add'>+  instruction to avoid overhead [Feature #14104]</div><div class='ctx'> </div><div class='del'>-  * String#intern now raises SecurityError when $SAFE level is greater</div><div class='del'>-    than zero.</div><div class='add'>+* ERB now generates code from a template which runs 2 times faster than Ruby 2.4</div><div class='ctx'> </div><div class='del'>-* fileutils</div><div class='add'>+=== Miscellaneous changes</div><div class='ctx'> </div><div class='del'>-  * A minor implementation change breaks Rake &lt;=0.7.1.</div><div class='del'>-    Updating Rake to 0.7.2 fixes the problem.</div><div class='add'>+* Print backtrace and error message in reverse order if STDERR is unchanged and a tty.</div><div class='add'>+  [Feature #8661] [experimental]</div><div class='ctx'> </div><div class='del'>-* digest</div><div class='add'>+* Print error message in bold/underlined text if STDERR is unchanged and a tty.</div><div class='add'>+  [Feature #14140] [experimental]</div><div class='ctx'> </div><div class='del'>-  * The constructor does no longer take an initial</div><div class='del'>-    string to feed; digest() and hexdigest() now do,</div><div class='del'>-    instead.  The following examples show how to</div><div class='del'>-    migrate:</div><div class='add'>+* configure option --with-ext now mandates its arguments.  So for</div><div class='add'>+  instance if you run ./configure --with-ext=openssl,+ then the</div><div class='add'>+  openssl library is guaranteed compiled, otherwise the build fails</div><div class='add'>+  abnormally.</div><div class='ctx'> </div><div class='del'>-      # Before</div><div class='del'>-      md = Digest::MD5.new("string")</div><div class='del'>-      # After (works with any version)</div><div class='del'>-      md = Digest::MD5.new.update("string")</div><div class='del'>-        </div><div class='del'>-      # Before</div><div class='del'>-      hd = Digest::MD5.new("string").hexdigest</div><div class='del'>-      # After (works with any version)</div><div class='del'>-      hd = Digest::MD5.hexdigest("string")</div><div class='add'>+  Note however to always add the ",+" at the end of the argument.</div><div class='add'>+  Otherwise nothing but openssl are built.  [Feature #13302]</div><div class='head'>diff --git a/README b/README<br/>deleted file mode 100644<br/>index cf836415ad..0000000000<br/>--- a/<a href='/ruby.git/tree/README?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>README</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,114 +0,0 @@</div><div class='del'>-* What's Ruby</div><div class='del'>-</div><div class='del'>-Ruby is the interpreted scripting language for quick and</div><div class='del'>-easy object-oriented programming.  It has many features to</div><div class='del'>-process text files and to do system management tasks (as in</div><div class='del'>-Perl).  It is simple, straight-forward, and extensible.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Features of Ruby</div><div class='del'>-</div><div class='del'>-  + Simple Syntax</div><div class='del'>-  + *Normal* Object-Oriented features(ex. class, method calls)</div><div class='del'>-  + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)</div><div class='del'>-  + Operator Overloading</div><div class='del'>-  + Exception Handling</div><div class='del'>-  + Iterators and Closures</div><div class='del'>-  + Garbage Collection</div><div class='del'>-  + Dynamic Loading of Object files(on some architecture)</div><div class='del'>-  + Highly Portable(works on many UNIX machines, and on DOS,</div><div class='del'>-    Windows, Mac, BeOS etc.)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* How to get Ruby</div><div class='del'>-</div><div class='del'>-The Ruby distribution files can be found in the following FTP site:</div><div class='del'>-</div><div class='del'>-  ftp://ftp.ruby-lang.org/pub/ruby/</div><div class='del'>-</div><div class='del'>-The latest source code of this version series can be checked out</div><div class='del'>-through SVN with the following command:</div><div class='del'>-</div><div class='del'>-  $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6/</div><div class='del'>-</div><div class='del'>-The trunk of the Ruby source tree can be checked out with the</div><div class='del'>-following command:</div><div class='del'>-</div><div class='del'>-  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='del'>-</div><div class='del'>-There are some other branches under development.  Try the following</div><div class='del'>-command and see the list of branches:</div><div class='del'>-</div><div class='del'>-  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Ruby home-page</div><div class='del'>-</div><div class='del'>-The URL of the Ruby home-page is:</div><div class='del'>-</div><div class='del'>-   http://www.ruby-lang.org/</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Mailing list</div><div class='del'>-</div><div class='del'>-There is a mailing list to talk about Ruby.</div><div class='del'>-To subscribe this list, please send the following phrase</div><div class='del'>-</div><div class='del'>-	subscribe YourFirstName YourFamilyName</div><div class='del'>-e.g.</div><div class='del'>-        subscribe Joseph Smith</div><div class='del'>-</div><div class='del'>-in the mail body (not subject) to the address &lt;ruby-talk-ctl@ruby-lang.org&gt;.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* How to compile and install</div><div class='del'>-</div><div class='del'>-This is what you need to do to compile and install Ruby:</div><div class='del'>-</div><div class='del'>-  1. If ./configure does not exist or is older than configure.in,</div><div class='del'>-     run autoconf to (re)generate configure.</div><div class='del'>-</div><div class='del'>-  2. Run ./configure, which will generate config.h and Makefile.</div><div class='del'>-</div><div class='del'>-  3. Edit defines.h if you need.  Usually this step will not be needed.</div><div class='del'>-</div><div class='del'>-  4. Remove comment mark(#) before the module names from ext/Setup (or</div><div class='del'>-     add module names if not present), if you want to link modules</div><div class='del'>-     statically.</div><div class='del'>-</div><div class='del'>-     If you don't want to compile non static extension modules</div><div class='del'>-     (probably on architectures which does not allow dynamic loading),</div><div class='del'>-     remove comment mark from the line "#option nodynamic" in</div><div class='del'>-     ext/Setup.</div><div class='del'>-</div><div class='del'>-  5. Run make.</div><div class='del'>-</div><div class='del'>-  6. Optionally, run 'make test' to check whether the compiled Ruby</div><div class='del'>-     interpreter works well.  If you see the message "test succeeded",</div><div class='del'>-     your ruby works as it should (hopefully).</div><div class='del'>-</div><div class='del'>-  7. Run 'make install'</div><div class='del'>-</div><div class='del'>-     You may have to be a super user to install ruby.</div><div class='del'>-</div><div class='del'>-If you fail to compile ruby, please send the detailed error report with</div><div class='del'>-the error log and machine/OS type, to help others.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Copying</div><div class='del'>-</div><div class='del'>-See the file COPYING.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* The Author</div><div class='del'>-</div><div class='del'>-Feel free to send comments and bug reports to the author.  Here is the </div><div class='del'>-author's latest mail address:</div><div class='del'>-</div><div class='del'>-  matz@netlab.jp</div><div class='del'>-</div><div class='del'>--------------------------------------------------------</div><div class='del'>-created at: Thu Aug  3 11:57:36 JST 1995</div><div class='del'>-Local variables:</div><div class='del'>-mode: indented-text</div><div class='del'>-end:</div><div class='head'>diff --git a/README.EXT b/README.EXT<br/>index 2fc2fd606a..48b8d964c4 100644<br/>--- a/<a href='/ruby.git/tree/README.EXT?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>README.EXT</a><br/>+++ b/<a href='/ruby.git/tree/README.EXT?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>README.EXT</a></div><div class='hunk'>@@ -1,1159 +1 @@</div><div class='del'>-.\" README.EXT -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995</div><div class='del'>-</div><div class='del'>-This document explains how to make extension libraries for Ruby.</div><div class='del'>-</div><div class='del'>-1. Basic knowledge</div><div class='del'>-</div><div class='del'>-In C, variables have types and data do not have types.  In contrast,</div><div class='del'>-Ruby variables do not have a static type, and data themselves have</div><div class='del'>-types, so data will need to be converted between the languages.</div><div class='del'>-</div><div class='del'>-Data in Ruby are represented by the C type `VALUE'.  Each VALUE data</div><div class='del'>-has its data-type.</div><div class='del'>-</div><div class='del'>-To retrieve C data from a VALUE, you need to:</div><div class='del'>-</div><div class='del'>- (1) Identify the VALUE's data type</div><div class='del'>- (2) Convert the VALUE into C data</div><div class='del'>-</div><div class='del'>-Converting to the wrong data type may cause serious problems.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-1.1 Data-types</div><div class='del'>-</div><div class='del'>-The Ruby interpreter has the following data types:</div><div class='del'>-</div><div class='del'>-	T_NIL		nil</div><div class='del'>-	T_OBJECT	ordinary object</div><div class='del'>-	T_CLASS		class</div><div class='del'>-	T_MODULE	module</div><div class='del'>-	T_FLOAT		floating point number</div><div class='del'>-	T_STRING	string</div><div class='del'>-	T_REGEXP	regular expression</div><div class='del'>-	T_ARRAY		array</div><div class='del'>-	T_FIXNUM	Fixnum(31bit integer)</div><div class='del'>-	T_HASH		associative array</div><div class='del'>-	T_STRUCT	(Ruby) structure</div><div class='del'>-	T_BIGNUM	multi precision integer</div><div class='del'>-	T_FILE		IO</div><div class='del'>-	T_TRUE		true</div><div class='del'>-	T_FALSE		false</div><div class='del'>-	T_DATA		data</div><div class='del'>-	T_SYMBOL        symbol</div><div class='del'>-</div><div class='del'>-In addition, there are several other types used internally:</div><div class='del'>-</div><div class='del'>-	T_ICLASS</div><div class='del'>-	T_MATCH</div><div class='del'>-	T_UNDEF</div><div class='del'>-	T_VARMAP</div><div class='del'>-	T_SCOPE</div><div class='del'>-	T_NODE</div><div class='del'>-</div><div class='del'>-Most of the types are represented by C structures.</div><div class='del'>-</div><div class='del'>-1.2 Check Data Type of the VALUE</div><div class='del'>-</div><div class='del'>-The macro TYPE() defined in ruby.h shows the data type of the VALUE.</div><div class='del'>-TYPE() returns the constant number T_XXXX described above.  To handle</div><div class='del'>-data types, your code will look something like this:</div><div class='del'>-</div><div class='del'>-  switch (TYPE(obj)) {</div><div class='del'>-    case T_FIXNUM:</div><div class='del'>-      /* process Fixnum */</div><div class='del'>-      break;</div><div class='del'>-    case T_STRING:</div><div class='del'>-      /* process String */</div><div class='del'>-      break;</div><div class='del'>-    case T_ARRAY:</div><div class='del'>-      /* process Array */</div><div class='del'>-      break;</div><div class='del'>-    default:</div><div class='del'>-      /* raise exception */</div><div class='del'>-      rb_raise(rb_eTypeError, "not valid value");</div><div class='del'>-      break;</div><div class='del'>-  }</div><div class='del'>-</div><div class='del'>-There is the data-type check function</div><div class='del'>-</div><div class='del'>-  void Check_Type(VALUE value, int type)</div><div class='del'>-</div><div class='del'>-which raises an exception if the VALUE does not have the type specified.</div><div class='del'>-</div><div class='del'>-There are also faster check macros for fixnums and nil.</div><div class='del'>-</div><div class='del'>-  FIXNUM_P(obj)</div><div class='del'>-  NIL_P(obj)</div><div class='del'>-</div><div class='del'>-1.3 Convert VALUE into C data</div><div class='del'>-</div><div class='del'>-The data for type T_NIL, T_FALSE, T_TRUE are nil, true, false</div><div class='del'>-respectively.  They are singletons for the data type.</div><div class='del'>-</div><div class='del'>-The T_FIXNUM data is a 31bit length fixed integer (63bit length on</div><div class='del'>-some machines), which can be converted to a C integer by using the</div><div class='del'>-FIX2INT() macro.  There is also NUM2INT() which converts any Ruby</div><div class='del'>-numbers into C integers.  The NUM2INT() macro includes a type check, so</div><div class='del'>-an exception will be raised if the conversion failed.  NUM2DBL() can</div><div class='del'>-be used to retrieve the double float value in the same way.</div><div class='del'>-</div><div class='del'>-In version 1.7 or later it is recommended that you use the new macros</div><div class='del'>-StringValue() and StringValuePtr() to get a char* from a VALUE.</div><div class='del'>-StringValue(var) replaces var's value with the result of "var.to_str()".</div><div class='del'>-StringValuePtr(var) does same replacement and returns char*</div><div class='del'>-representation of var.  These macros will skip the replacement if var is</div><div class='del'>-a String.  Notice that the macros take only the lvalue as their</div><div class='del'>-argument, to change the value of var in place.</div><div class='del'>-</div><div class='del'>-In version 1.6 or earlier, STR2CSTR() was used to do the same thing</div><div class='del'>-but now it is deprecated in version 1.7, because STR2CSTR() has a risk</div><div class='del'>-of a dangling pointer problem in the to_str() impliclit conversion.</div><div class='del'>-</div><div class='del'>-Other data types have corresponding C structures, e.g. struct RArray</div><div class='del'>-for T_ARRAY etc. The VALUE of the type which has the corresponding structure</div><div class='del'>-can be cast to retrieve the pointer to the struct.  The casting macro</div><div class='del'>-will be of the form RXXXX for each data type; for instance, RARRAY(obj). </div><div class='del'>-See "ruby.h".</div><div class='del'>-</div><div class='del'>-For example, `RSTRING(str)-&gt;len' is the way to get the size of the</div><div class='del'>-Ruby String object.  The allocated region can be accessed by</div><div class='del'>-`RSTRING(str)-&gt;ptr'.  For arrays, use `RARRAY(ary)-&gt;len' and</div><div class='del'>-`RARRAY(ary)-&gt;ptr' respectively.</div><div class='del'>-</div><div class='del'>-Notice: Do not change the value of the structure directly, unless you</div><div class='del'>-are responsible for the result.  This ends up being the cause of interesting</div><div class='del'>-bugs.</div><div class='del'>-</div><div class='del'>-1.4 Convert C data into VALUE</div><div class='del'>-</div><div class='del'>-To convert C data to Ruby values:</div><div class='del'>-</div><div class='del'>-  * FIXNUM</div><div class='del'>-</div><div class='del'>-    left shift 1 bit, and turn on LSB.</div><div class='del'>-</div><div class='del'>-  * Other pointer values</div><div class='del'>-</div><div class='del'>-    cast to VALUE.</div><div class='del'>-</div><div class='del'>-You can determine whether a VALUE is pointer or not by checking its LSB.  </div><div class='del'>-</div><div class='del'>-Notice Ruby does not allow arbitrary pointer values to be a VALUE.  They</div><div class='del'>-should be pointers to the structures which Ruby knows about.  The known</div><div class='del'>-structures are defined in &lt;ruby.h&gt;.</div><div class='del'>-</div><div class='del'>-To convert C numbers to Ruby values, use these macros.</div><div class='del'>-</div><div class='del'>-  INT2FIX()	for integers within 31bits.</div><div class='del'>-  INT2NUM()	for arbitrary sized integer.</div><div class='del'>-</div><div class='del'>-INT2NUM() converts an integer into a Bignum if it is out of the FIXNUM</div><div class='del'>-range, but is a bit slower.</div><div class='del'>-</div><div class='del'>-1.5 Manipulating Ruby data</div><div class='del'>-</div><div class='del'>-As I already mentioned, it is not recommended to modify an object's internal</div><div class='del'>-structure.  To manipulate objects, use the functions supplied by the Ruby</div><div class='del'>-interpreter. Some (not all) of the useful functions are listed below:</div><div class='del'>-</div><div class='del'>- String functions</div><div class='del'>-</div><div class='del'>-  rb_str_new(const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    Creates a new Ruby string.</div><div class='del'>-</div><div class='del'>-  rb_str_new2(const char *ptr)</div><div class='del'>-</div><div class='del'>-    Creates a new Ruby string from a C string.  This is equivalent to</div><div class='del'>-    rb_str_new(ptr, strlen(ptr)).</div><div class='del'>-</div><div class='del'>-  rb_tainted_str_new(const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    Creates a new tainted Ruby string.  Strings from external data</div><div class='del'>-    sources should be tainted.</div><div class='del'>-</div><div class='del'>-  rb_tainted_str_new2(const char *ptr)</div><div class='del'>-</div><div class='del'>-    Creates a new tainted Ruby string from a C string.</div><div class='del'>-</div><div class='del'>-  rb_str_cat(VALUE str, const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    Appends len bytes of data from ptr to the Ruby string.</div><div class='del'>-</div><div class='del'>- Array functions</div><div class='del'>-</div><div class='del'>-  rb_ary_new()</div><div class='del'>-</div><div class='del'>-    Creates an array with no elements.</div><div class='del'>-</div><div class='del'>-  rb_ary_new2(long len)</div><div class='del'>-</div><div class='del'>-    Creates an array with no elements, allocating internal buffer</div><div class='del'>-    for len elements.</div><div class='del'>-</div><div class='del'>-  rb_ary_new3(long n, ...)</div><div class='del'>-</div><div class='del'>-    Creates an n-element array from the arguments.</div><div class='del'>-</div><div class='del'>-  rb_ary_new4(long n, VALUE *elts)</div><div class='del'>-</div><div class='del'>-    Creates an n-element array from a C array.</div><div class='del'>-</div><div class='del'>-  rb_ary_push(VALUE ary, VALUE val)</div><div class='del'>-  rb_ary_pop(VALUE ary)</div><div class='del'>-  rb_ary_shift(VALUE ary)</div><div class='del'>-  rb_ary_unshift(VALUE ary, VALUE val)</div><div class='del'>-</div><div class='del'>-    Array operations.  The first argument to each functions must be an </div><div class='del'>-    array.  They may dump core if other types are given.</div><div class='del'>-</div><div class='del'>-2. Extending Ruby with C</div><div class='del'>-</div><div class='del'>-2.1 Addding new features to Ruby</div><div class='del'>-</div><div class='del'>-You can add new features (classes, methods, etc.) to the Ruby</div><div class='del'>-interpreter.  Ruby provides APIs for defining the following things:</div><div class='del'>-</div><div class='del'>- * Classes, Modules</div><div class='del'>- * Methods, Singleton Methods</div><div class='del'>- * Constants</div><div class='del'>-</div><div class='del'>-2.1.1 Class/module definition</div><div class='del'>-</div><div class='del'>-To define a class or module, use the functions below:</div><div class='del'>-</div><div class='del'>-  VALUE rb_define_class(const char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module(const char *name)</div><div class='del'>-</div><div class='del'>-These functions return the newly created class or module.  You may</div><div class='del'>-want to save this reference into a variable to use later.</div><div class='del'>-</div><div class='del'>-To define nested classes or modules, use the functions below:</div><div class='del'>-</div><div class='del'>-  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module_under(VALUE outer, const char *name)</div><div class='del'>-</div><div class='del'>-2.1.2 Method/singleton method definition</div><div class='del'>-</div><div class='del'>-To define methods or singleton methods, use these functions:</div><div class='del'>-</div><div class='del'>-  void rb_define_method(VALUE klass, const char *name, </div><div class='del'>-		        VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-  void rb_define_singleton_method(VALUE object, const char *name, </div><div class='del'>-			          VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-The `argc' represents the number of the arguments to the C function,</div><div class='del'>-which must be less than 17.  But I doubt you'll need that many.</div><div class='del'>-</div><div class='del'>-If `argc' is negative, it specifies the calling sequence, not number of</div><div class='del'>-the arguments.  </div><div class='del'>-</div><div class='del'>-If argc is -1, the function will be called as:</div><div class='del'>-</div><div class='del'>-  VALUE func(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-</div><div class='del'>-where argc is the actual number of arguments, argv is the C array of</div><div class='del'>-the arguments, and obj is the receiver.</div><div class='del'>-</div><div class='del'>-If argc is -2, the arguments are passed in a Ruby array. The function</div><div class='del'>-will be called like:</div><div class='del'>-</div><div class='del'>-  VALUE func(VALUE obj, VALUE args)</div><div class='del'>-</div><div class='del'>-where obj is the receiver, and args is the Ruby array containing</div><div class='del'>-actual arguments.</div><div class='del'>-</div><div class='del'>-There are two more functions to define methods.  One is to define</div><div class='del'>-private methods:</div><div class='del'>-</div><div class='del'>-  void rb_define_private_method(VALUE klass, const char *name, </div><div class='del'>-			        VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-The other is to define module functions, which are private AND singleton</div><div class='del'>-methods of the module.  For example, sqrt is the module function</div><div class='del'>-defined in Math module.  It can be called in the following way:</div><div class='del'>-</div><div class='del'>-  Math.sqrt(4)</div><div class='del'>-</div><div class='del'>-or</div><div class='del'>-</div><div class='del'>-  include Math</div><div class='del'>-  sqrt(4)</div><div class='del'>-</div><div class='del'>-To define module functions, use:</div><div class='del'>-</div><div class='del'>-  void rb_define_module_function(VALUE module, const char *name, </div><div class='del'>-				 VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-Oh, in addition, function-like methods, which are private methods defined</div><div class='del'>-in the Kernel module, can be defined using:</div><div class='del'>-</div><div class='del'>-  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-To define an alias for the method,</div><div class='del'>-</div><div class='del'>-  void rb_define_alias(VALUE module, const char* new, const char* old);</div><div class='del'>-</div><div class='del'>-To define and undefine the `allocate' class method,</div><div class='del'>-</div><div class='del'>-  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));</div><div class='del'>-  void rb_undef_alloc_func(VALUE klass);</div><div class='del'>-</div><div class='del'>-func have to take the klass as the argument and return a newly</div><div class='del'>-allocated instance.  This instance should be empty as possible,</div><div class='del'>-without any expensive (including external) resources.</div><div class='del'>-</div><div class='del'>-2.1.3 Constant definition</div><div class='del'>-</div><div class='del'>-We have 2 functions to define constants:</div><div class='del'>-</div><div class='del'>-  void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='del'>-  void rb_define_global_const(const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-The former is to define a constant under specified class/module.  The</div><div class='del'>-latter is to define a global constant.</div><div class='del'>-</div><div class='del'>-2.2 Use Ruby features from C</div><div class='del'>-</div><div class='del'>-There are several ways to invoke Ruby's features from C code.</div><div class='del'>-</div><div class='del'>-2.2.1 Evaluate Ruby Programs in a String</div><div class='del'>-</div><div class='del'>-The easiest way to use Ruby's functionality from a C program is to</div><div class='del'>-evaluate the string as Ruby program.  This function will do the job:</div><div class='del'>-</div><div class='del'>-  VALUE rb_eval_string(const char *str)</div><div class='del'>-</div><div class='del'>-Evaluation is done under the current context, thus current local variables</div><div class='del'>-of the innermost method (which is defined by Ruby) can be accessed.</div><div class='del'>-</div><div class='del'>-2.2.2 ID or Symbol</div><div class='del'>-</div><div class='del'>-You can invoke methods directly, without parsing the string.  First I need</div><div class='del'>-to explain about ID.  ID is the integer number to represent Ruby's</div><div class='del'>-identifiers such as variable names.  The Ruby data type corresponding to ID</div><div class='del'>-is Symbol.  It can be accessed from Ruby in the form:</div><div class='del'>-</div><div class='del'>- :Identifier</div><div class='del'>-</div><div class='del'>-You can get the ID value from a string within C code by using</div><div class='del'>-</div><div class='del'>-  rb_intern(const char *name)</div><div class='del'>-</div><div class='del'>-You can retrieve ID from Ruby object (Symbol or String) given as an</div><div class='del'>-argument by using</div><div class='del'>-</div><div class='del'>-  rb_to_id(VALUE symbol)</div><div class='del'>-</div><div class='del'>-You can convert C ID to Ruby Symbol by using</div><div class='del'>-</div><div class='del'>-  VALUE ID2SYM(ID id)</div><div class='del'>-</div><div class='del'>-and to convert Ruby Symbol object to ID, use</div><div class='del'>-</div><div class='del'>-  ID SYM2ID(VALUE symbol)</div><div class='del'>-</div><div class='del'>-2.2.3 Invoke Ruby method from C</div><div class='del'>-</div><div class='del'>-To invoke methods directly, you can use the function below</div><div class='del'>-</div><div class='del'>-  VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)</div><div class='del'>-</div><div class='del'>-This function invokes a method on the recv, with the method name</div><div class='del'>-specified by the symbol mid.</div><div class='del'>-</div><div class='del'>-2.2.4 Accessing the variables and constants</div><div class='del'>-</div><div class='del'>-You can access class variables and instance variables using access</div><div class='del'>-functions.  Also, global variables can be shared between both environments.</div><div class='del'>-There's no way to access Ruby's local variables.</div><div class='del'>-</div><div class='del'>-The functions to access/modify instance variables are below:</div><div class='del'>-</div><div class='del'>-  VALUE rb_ivar_get(VALUE obj, ID id)</div><div class='del'>-  VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)</div><div class='del'>-</div><div class='del'>-id must be the symbol, which can be retrieved by rb_intern().</div><div class='del'>-</div><div class='del'>-To access the constants of the class/module:</div><div class='del'>-</div><div class='del'>-  VALUE rb_const_get(VALUE obj, ID id)</div><div class='del'>-</div><div class='del'>-See 2.1.3 for defining new constant.</div><div class='del'>-</div><div class='del'>-3. Information sharing between Ruby and C</div><div class='del'>-</div><div class='del'>-3.1 Ruby constants that C can be accessed from C</div><div class='del'>-</div><div class='del'>-The following Ruby constants can be referred from C.</div><div class='del'>-</div><div class='del'>-  Qtrue</div><div class='del'>-  Qfalse</div><div class='del'>-</div><div class='del'>-Boolean values.  Qfalse is false in C also (i.e. 0).</div><div class='del'>-</div><div class='del'>-  Qnil</div><div class='del'>-</div><div class='del'>-Ruby nil in C scope.</div><div class='del'>-</div><div class='del'>-3.2 Global variables shared between C and Ruby</div><div class='del'>-</div><div class='del'>-Information can be shared between the two environments using shared global</div><div class='del'>-variables.  To define them, you can use functions listed below:</div><div class='del'>-</div><div class='del'>-  void rb_define_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-This function defines the variable which is shared by both environments.</div><div class='del'>-The value of the global variable pointed to by `var' can be accessed</div><div class='del'>-through Ruby's global variable named `name'.</div><div class='del'>-</div><div class='del'>-You can define read-only (from Ruby, of course) variables using the</div><div class='del'>-function below.</div><div class='del'>-</div><div class='del'>-  void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-You can defined hooked variables.  The accessor functions (getter and</div><div class='del'>-setter) are called on access to the hooked variables.</div><div class='del'>-</div><div class='del'>-  void rb_define_hooked_variable(constchar *name, VALUE *var,</div><div class='del'>-				 VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-If you need to supply either setter or getter, just supply 0 for the</div><div class='del'>-hook you don't need.  If both hooks are 0, rb_define_hooked_variable()</div><div class='del'>-works just like rb_define_variable().</div><div class='del'>-</div><div class='del'>-  void rb_define_virtual_variable(const char *name,</div><div class='del'>-				  VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-This function defines a Ruby global variable without a corresponding C</div><div class='del'>-variable.  The value of the variable will be set/get only by hooks.</div><div class='del'>-</div><div class='del'>-The prototypes of the getter and setter functions are as follows:</div><div class='del'>-</div><div class='del'>-  (*getter)(ID id, void *data, struct global_entry* entry);</div><div class='del'>-  (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);</div><div class='del'>-</div><div class='del'>-3.3 Encapsulate C data into a Ruby object</div><div class='del'>-</div><div class='del'>-To wrap and objectify a C pointer as a Ruby object (so called</div><div class='del'>-DATA), use Data_Wrap_Struct().</div><div class='del'>-</div><div class='del'>-  Data_Wrap_Struct(klass, mark, free, ptr)</div><div class='del'>-</div><div class='del'>-Data_Wrap_Struct() returns a created DATA object.  The klass argument</div><div class='del'>-is the class for the DATA object.  The mark argument is the function</div><div class='del'>-to mark Ruby objects pointed by this data.  The free argument is the</div><div class='del'>-function to free the pointer allocation.  If this is -1, the pointer</div><div class='del'>-will be just freed.  The functions mark and free will be called from</div><div class='del'>-garbage collector.</div><div class='del'>-</div><div class='del'>-You can allocate and wrap the structure in one step.</div><div class='del'>-</div><div class='del'>-  Data_Make_Struct(klass, type, mark, free, sval)</div><div class='del'>-</div><div class='del'>-This macro returns an allocated Data object, wrapping the pointer to</div><div class='del'>-the structure, which is also allocated.  This macro works like:</div><div class='del'>-</div><div class='del'>-  (sval = ALLOC(type), Data_Wrap_Struct(klass, mark, free, sval))</div><div class='del'>-</div><div class='del'>-Arguments klass, mark, and free work like their counterparts in</div><div class='del'>-Data_Wrap_Struct().  A pointer to the allocated structure will be</div><div class='del'>-assigned to sval, which should be a pointer of the type specified.</div><div class='del'>-</div><div class='del'>-To retrieve the C pointer from the Data object, use the macro</div><div class='del'>-Data_Get_Struct().</div><div class='del'>-</div><div class='del'>-  Data_Get_Struct(obj, type, sval)</div><div class='del'>-</div><div class='del'>-A pointer to the structure will be assigned to the variable sval.</div><div class='del'>-</div><div class='del'>-See the example below for details. </div><div class='del'>-</div><div class='del'>-4. Example - Creating dbm extension</div><div class='del'>-</div><div class='del'>-OK, here's the example of making an extension library.  This is the</div><div class='del'>-extension to access DBMs.  The full source is included in the ext/</div><div class='del'>-directory in the Ruby's source tree.</div><div class='del'>-</div><div class='del'>-(1) make the directory</div><div class='del'>-</div><div class='del'>-  % mkdir ext/dbm</div><div class='del'>-</div><div class='del'>-Make a directory for the extension library under ext directory.</div><div class='del'>-</div><div class='del'>-(2) design the library</div><div class='del'>-</div><div class='del'>-You need to design the library features, before making it.</div><div class='del'>-</div><div class='del'>-(3) write C code.</div><div class='del'>-</div><div class='del'>-You need to write C code for your extension library.  If your library</div><div class='del'>-has only one source file, choosing ``LIBRARY.c'' as a file name is</div><div class='del'>-preferred.  On the other hand, in case your library has multiple source</div><div class='del'>-files, avoid choosing ``LIBRARY.c'' for a file name.  It may conflict</div><div class='del'>-with an intermediate file ``LIBRARY.o'' on some platforms.</div><div class='del'>-</div><div class='del'>-Ruby will execute the initializing function named ``Init_LIBRARY'' in</div><div class='del'>-the library.  For example, ``Init_dbm()'' will be executed when loading</div><div class='del'>-the library.</div><div class='del'>-</div><div class='del'>-Here's the example of an initializing function.</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-Init_dbm()</div><div class='del'>-{</div><div class='del'>-    /* define DBM class */</div><div class='del'>-    cDBM = rb_define_class("DBM", rb_cObject);</div><div class='del'>-    /* DBM includes Enumerate module */</div><div class='del'>-    rb_include_module(cDBM, rb_mEnumerable);</div><div class='del'>-</div><div class='del'>-    /* DBM has class method open(): arguments are received as C array */</div><div class='del'>-    rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);</div><div class='del'>-</div><div class='del'>-    /* DBM instance method close(): no args */</div><div class='del'>-    rb_define_method(cDBM, "close", fdbm_close, 0);</div><div class='del'>-    /* DBM instance method []: 1 argument */</div><div class='del'>-    rb_define_method(cDBM, "[]", fdbm_fetch, 1);</div><div class='del'>-		:</div><div class='del'>-</div><div class='del'>-    /* ID for a instance variable to store DBM data */</div><div class='del'>-    id_dbm = rb_intern("dbm");</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-The dbm extension wraps the dbm struct in the C environment using </div><div class='del'>-Data_Make_Struct.</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-struct dbmdata {</div><div class='del'>-    int  di_size;</div><div class='del'>-    DBM *di_dbm;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-This code wraps the dbmdata structure into a Ruby object.  We avoid wrapping</div><div class='del'>-DBM* directly, because we want to cache size information.</div><div class='del'>-</div><div class='del'>-To retrieve the dbmdata structure from a Ruby object, we define the</div><div class='del'>-following macro:</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-#define GetDBM(obj, dbmp) {\</div><div class='del'>-    Data_Get_Struct(obj, struct dbmdata, dbmp);\</div><div class='del'>-    if (dbmp-&gt;di_dbm == 0) closed_dbm();\</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-This sort of complicated macro does the retrieving and close checking for</div><div class='del'>-the DBM.</div><div class='del'>-</div><div class='del'>-There are three kinds of way to receive method arguments.  First,</div><div class='del'>-methods with a fixed number of arguments receive arguments like this:</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_delete(obj, keystr)</div><div class='del'>-    VALUE obj, keystr;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-The first argument of the C function is the self, the rest are the</div><div class='del'>-arguments to the method.</div><div class='del'>-</div><div class='del'>-Second, methods with an arbitrary number of arguments receive</div><div class='del'>-arguments like this:</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_s_open(argc, argv, klass)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE klass;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;file, &amp;vmode) == 1) {</div><div class='del'>-	mode = 0666;		/* default value */</div><div class='del'>-    }</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-The first argument is the number of method arguments, the second</div><div class='del'>-argument is the C array of the method arguments, and the third</div><div class='del'>-argument is the receiver of the method.</div><div class='del'>-</div><div class='del'>-You can use the function rb_scan_args() to check and retrieve the</div><div class='del'>-arguments.  For example, "11" means that the method requires at least one</div><div class='del'>-argument, and at most receives two arguments.</div><div class='del'>-</div><div class='del'>-Methods with an arbitrary number of arguments can receive arguments</div><div class='del'>-by Ruby's array, like this:</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_indexes(obj, args)</div><div class='del'>-    VALUE obj, args;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-The first argument is the receiver, the second one is the Ruby array</div><div class='del'>-which contains the arguments to the method.</div><div class='del'>-</div><div class='del'>-** Notice</div><div class='del'>-</div><div class='del'>-GC should know about global variables which refer to Ruby's objects, but</div><div class='del'>-are not exported to the Ruby world.  You need to protect them by</div><div class='del'>-</div><div class='del'>-  void rb_global_variable(VALUE *var)</div><div class='del'>-</div><div class='del'>-(4) prepare extconf.rb</div><div class='del'>-</div><div class='del'>-If the file named extconf.rb exists, it will be executed to generate</div><div class='del'>-Makefile.</div><div class='del'>-</div><div class='del'>-extconf.rb is the file for checking compilation conditions etc.  You</div><div class='del'>-need to put</div><div class='del'>-</div><div class='del'>-  require 'mkmf'</div><div class='del'>-</div><div class='del'>-at the top of the file.  You can use the functions below to check</div><div class='del'>-various conditions.</div><div class='del'>-</div><div class='del'>-  have_library(lib, func): check whether library containing function exists.</div><div class='del'>-  have_func(func, header): check whether function exists</div><div class='del'>-  have_header(header): check whether header file exists</div><div class='del'>-  create_makefile(target): generate Makefile</div><div class='del'>-</div><div class='del'>-The value of the variables below will affect the Makefile.</div><div class='del'>-</div><div class='del'>-  $CFLAGS: included in CFLAGS make variable (such as -O)</div><div class='del'>-  $CPPFLAGS: included in CPPFLAGS make variable (such as -I, -D)</div><div class='del'>-  $LDFLAGS: included in LDFLAGS make variable (such as -L)</div><div class='del'>-  $objs: list of object file names</div><div class='del'>-</div><div class='del'>-Normally, the object files list is automatically generated by searching</div><div class='del'>-source files, but you must define them explicitly if any sources will</div><div class='del'>-be generated while building.</div><div class='del'>-</div><div class='del'>-If a compilation condition is not fulfilled, you should not call</div><div class='del'>-``create_makefile''.  The Makefile will not be generated, compilation will</div><div class='del'>-not be done.</div><div class='del'>-</div><div class='del'>-(5) prepare depend (optional)</div><div class='del'>-</div><div class='del'>-If the file named depend exists, Makefile will include that file to</div><div class='del'>-check dependencies.  You can make this file by invoking</div><div class='del'>-</div><div class='del'>-  % gcc -MM *.c &gt; depend</div><div class='del'>-</div><div class='del'>-It's harmless.  Prepare it.</div><div class='del'>-</div><div class='del'>-(6) generate Makefile</div><div class='del'>-</div><div class='del'>-Try generating the Makefile by:</div><div class='del'>-</div><div class='del'>-  ruby extconf.rb</div><div class='del'>-</div><div class='del'>-You don't need this step if you put the extension library under the ext</div><div class='del'>-directory of the ruby source tree.  In that case, compilation of the</div><div class='del'>-interpreter will do this step for you.</div><div class='del'>-</div><div class='del'>-(7) make</div><div class='del'>-</div><div class='del'>-Type</div><div class='del'>-</div><div class='del'>-  make</div><div class='del'>-</div><div class='del'>-to compile your extension.  You don't need this step either if you have</div><div class='del'>-put the extension library under the ext directory of the ruby source tree.</div><div class='del'>-</div><div class='del'>-(8) debug</div><div class='del'>-</div><div class='del'>-You may need to rb_debug the extension.  Extensions can be linked</div><div class='del'>-statically by adding the directory name in the ext/Setup file so that</div><div class='del'>-you can inspect the extension with the debugger.</div><div class='del'>-</div><div class='del'>-(9) done, now you have the extension library</div><div class='del'>-</div><div class='del'>-You can do anything you want with your library.  The author of Ruby</div><div class='del'>-will not claim any restrictions on your code depending on the Ruby API.</div><div class='del'>-Feel free to use, modify, distribute or sell your program.</div><div class='del'>-</div><div class='del'>-Appendix A. Ruby source files overview</div><div class='del'>-</div><div class='del'>-ruby language core</div><div class='del'>-</div><div class='del'>-  class.c</div><div class='del'>-  error.c</div><div class='del'>-  eval.c</div><div class='del'>-  gc.c</div><div class='del'>-  object.c</div><div class='del'>-  parse.y</div><div class='del'>-  variable.c</div><div class='del'>-</div><div class='del'>-utility functions</div><div class='del'>-</div><div class='del'>-  dln.c</div><div class='del'>-  regex.c</div><div class='del'>-  st.c</div><div class='del'>-  util.c</div><div class='del'>-</div><div class='del'>-ruby interpreter implementation</div><div class='del'>-</div><div class='del'>-  dmyext.c</div><div class='del'>-  inits.c</div><div class='del'>-  main.c</div><div class='del'>-  ruby.c</div><div class='del'>-  version.c</div><div class='del'>-</div><div class='del'>-class library</div><div class='del'>-</div><div class='del'>-  array.c</div><div class='del'>-  bignum.c</div><div class='del'>-  compar.c</div><div class='del'>-  dir.c</div><div class='del'>-  enum.c</div><div class='del'>-  file.c</div><div class='del'>-  hash.c</div><div class='del'>-  io.c</div><div class='del'>-  marshal.c</div><div class='del'>-  math.c</div><div class='del'>-  numeric.c</div><div class='del'>-  pack.c</div><div class='del'>-  prec.c</div><div class='del'>-  process.c</div><div class='del'>-  random.c</div><div class='del'>-  range.c</div><div class='del'>-  re.c</div><div class='del'>-  signal.c</div><div class='del'>-  sprintf.c</div><div class='del'>-  string.c</div><div class='del'>-  struct.c</div><div class='del'>-  time.c</div><div class='del'>-</div><div class='del'>-Appendix B. Ruby extension API reference</div><div class='del'>-</div><div class='del'>-** Types</div><div class='del'>-</div><div class='del'>- VALUE</div><div class='del'>-</div><div class='del'>-The type for the Ruby object.  Actual structures are defined in ruby.h,</div><div class='del'>-such as struct RString, etc.  To refer the values in structures, use</div><div class='del'>-casting macros like RSTRING(obj).</div><div class='del'>-</div><div class='del'>-** Variables and constants</div><div class='del'>-</div><div class='del'>- Qnil</div><div class='del'>-</div><div class='del'>-const: nil object</div><div class='del'>-</div><div class='del'>- Qtrue</div><div class='del'>-</div><div class='del'>-const: true object(default true value)</div><div class='del'>-</div><div class='del'>- Qfalse</div><div class='del'>-</div><div class='del'>-const: false object</div><div class='del'>-</div><div class='del'>-** C pointer wrapping</div><div class='del'>-</div><div class='del'>- Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)</div><div class='del'>-</div><div class='del'>-Wrap a C pointer into a Ruby object.  If object has references to other</div><div class='del'>-Ruby objects, they should be marked by using the mark function during</div><div class='del'>-the GC process.  Otherwise, mark should be 0.  When this object is no</div><div class='del'>-longer referred by anywhere, the pointer will be discarded by free</div><div class='del'>-function.</div><div class='del'>-</div><div class='del'>- Data_Make_Struct(klass, type, mark, free, sval)</div><div class='del'>-</div><div class='del'>-This macro allocates memory using malloc(), assigns it to the variable</div><div class='del'>-sval, and returns the DATA encapsulating the pointer to memory region.</div><div class='del'>-</div><div class='del'>- Data_Get_Struct(data, type, sval)</div><div class='del'>-</div><div class='del'>-This macro retrieves the pointer value from DATA, and assigns it to</div><div class='del'>-the variable sval. </div><div class='del'>-</div><div class='del'>-** Checking data types</div><div class='del'>-</div><div class='del'>-TYPE(value)</div><div class='del'>-FIXNUM_P(value)</div><div class='del'>-NIL_P(value)</div><div class='del'>-void Check_Type(VALUE value, int type)</div><div class='del'>-void Check_SafeStr(VALUE value)</div><div class='del'>-</div><div class='del'>-** Data type conversion</div><div class='del'>-</div><div class='del'>-FIX2INT(value)</div><div class='del'>-INT2FIX(i)</div><div class='del'>-NUM2INT(value)</div><div class='del'>-INT2NUM(i)</div><div class='del'>-NUM2DBL(value)</div><div class='del'>-rb_float_new(f)</div><div class='del'>-StringValue(value)</div><div class='del'>-StringValuePtr(value)</div><div class='del'>-StringValueCStr(value)</div><div class='del'>-rb_str_new2(s)</div><div class='del'>-</div><div class='del'>-** defining class/module</div><div class='del'>-</div><div class='del'>- VALUE rb_define_class(const char *name, VALUE super)</div><div class='del'>-</div><div class='del'>-Defines a new Ruby class as a subclass of super.</div><div class='del'>-</div><div class='del'>- VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)</div><div class='del'>-</div><div class='del'>-Creates a new Ruby class as a subclass of super, under the module's</div><div class='del'>-namespace.</div><div class='del'>-</div><div class='del'>- VALUE rb_define_module(const char *name)</div><div class='del'>-</div><div class='del'>-Defines a new Ruby module.</div><div class='del'>-</div><div class='del'>- VALUE rb_define_module_under(VALUE module, const char *name)</div><div class='del'>-</div><div class='del'>-Defines a new Ruby module under the module's namespace.</div><div class='del'>-</div><div class='del'>- void rb_include_module(VALUE klass, VALUE module)</div><div class='del'>-</div><div class='del'>-Includes module into class.  If class already includes it, just</div><div class='del'>-ignored.</div><div class='del'>-</div><div class='del'>- void rb_extend_object(VALUE object, VALUE module)</div><div class='del'>-</div><div class='del'>-Extend the object with the module's attributes.</div><div class='del'>-</div><div class='del'>-** Defining Global Variables</div><div class='del'>-</div><div class='del'>- void rb_define_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-Defines a global variable which is shared between C and Ruby.  If name</div><div class='del'>-contains a character which is not allowed to be part of the symbol,</div><div class='del'>-it can't be seen from Ruby programs.</div><div class='del'>-</div><div class='del'>- void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-Defines a read-only global variable.  Works just like</div><div class='del'>-rb_define_variable(), except the defined variable is read-only.</div><div class='del'>-</div><div class='del'>- void rb_define_virtual_variable(const char *name,</div><div class='del'>-				 VALUE (*getter)(), VALUE (*setter)())</div><div class='del'>-</div><div class='del'>-Defines a virtual variable, whose behavior is defined by a pair of C</div><div class='del'>-functions.  The getter function is called when the variable is</div><div class='del'>-referenced.  The setter function is called when the variable is set to a</div><div class='del'>-value.  The prototype for getter/setter functions are:</div><div class='del'>-</div><div class='del'>-	VALUE getter(ID id)</div><div class='del'>-	void setter(VALUE val, ID id)</div><div class='del'>-</div><div class='del'>-The getter function must return the value for the access.</div><div class='del'>-</div><div class='del'>- void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='del'>-				VALUE (*getter)(), VALUE (*setter)())</div><div class='del'>-</div><div class='del'>-Defines hooked variable.  It's a virtual variable with a C variable.  </div><div class='del'>-The getter is called as</div><div class='del'>-</div><div class='del'>-	VALUE getter(ID id, VALUE *var)</div><div class='del'>-</div><div class='del'>-returning a new value.  The setter is called as</div><div class='del'>-</div><div class='del'>-	void setter(VALUE val, ID id, VALUE *var)</div><div class='del'>-</div><div class='del'>-GC requires C global variables which hold Ruby values to be marked.</div><div class='del'>-</div><div class='del'>- void rb_global_variable(VALUE *var)</div><div class='del'>-</div><div class='del'>-Tells GC to protect these variables.</div><div class='del'>-</div><div class='del'>-** Constant Definition</div><div class='del'>-</div><div class='del'>- void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-Defines a new constant under the class/module.</div><div class='del'>-</div><div class='del'>- void rb_define_global_const(const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-Defines a global constant.  This is just the same as</div><div class='del'>-</div><div class='del'>-     rb_define_const(cKernal, name, val)</div><div class='del'>-</div><div class='del'>-** Method Definition</div><div class='del'>-</div><div class='del'>- rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-Defines a method for the class.  func is the function pointer.  argc</div><div class='del'>-is the number of arguments.  if argc is -1, the function will receive</div><div class='del'>-3 arguments: argc, argv, and self.  if argc is -2, the function will</div><div class='del'>-receive 2 arguments, self and args, where args is a Ruby array of</div><div class='del'>-the method arguments.</div><div class='del'>-</div><div class='del'>- rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-Defines a private method for the class.  Arguments are same as</div><div class='del'>-rb_define_method().</div><div class='del'>-</div><div class='del'>- rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-Defines a singleton method.  Arguments are same as rb_define_method().</div><div class='del'>-</div><div class='del'>- rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Retrieve argument from argc, argv.  The fmt is the format string for</div><div class='del'>-the arguments, such as "12" for 1 non-optional argument, 2 optional</div><div class='del'>-arguments.  If `*' appears at the end of fmt, it means the rest of</div><div class='del'>-the arguments are assigned to the corresponding variable, packed in</div><div class='del'>-an array.</div><div class='del'>-</div><div class='del'>-** Invoking Ruby method</div><div class='del'>-</div><div class='del'>- VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)</div><div class='del'>-</div><div class='del'>-Invokes a method.  To retrieve mid from a method name, use rb_intern().</div><div class='del'>-</div><div class='del'>- VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='del'>-</div><div class='del'>-Invokes a method, passing arguments by an array of values.</div><div class='del'>-</div><div class='del'>- VALUE rb_eval_string(const char *str)</div><div class='del'>-</div><div class='del'>-Compiles and executes the string as a Ruby program.</div><div class='del'>-</div><div class='del'>- ID rb_intern(const char *name)</div><div class='del'>-</div><div class='del'>-Returns ID corresponding to the name.</div><div class='del'>-</div><div class='del'>- char *rb_id2name(ID id)</div><div class='del'>-</div><div class='del'>-Returns the name corresponding ID.</div><div class='del'>-</div><div class='del'>- char *rb_class2name(VALUE klass)</div><div class='del'>-</div><div class='del'>-Returns the name of the class.</div><div class='del'>-</div><div class='del'>- int rb_respond_to(VALUE object, ID id)</div><div class='del'>-</div><div class='del'>-Returns true if the object responds to the message specified by id.</div><div class='del'>-</div><div class='del'>-** Instance Variables</div><div class='del'>-</div><div class='del'>- VALUE rb_iv_get(VALUE obj, const char *name)</div><div class='del'>-</div><div class='del'>-Retrieve the value of the instance variable.  If the name is not</div><div class='del'>-prefixed by `@', that variable shall be inaccessible from Ruby.</div><div class='del'>-</div><div class='del'>- VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-Sets the value of the instance variable.</div><div class='del'>-</div><div class='del'>-** Control Structure</div><div class='del'>-</div><div class='del'>- VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)</div><div class='del'>-</div><div class='del'>-Calls the function func1, supplying func2 as the block.  func1 will be</div><div class='del'>-called with the argument arg1.  func2 receives the value from yield as</div><div class='del'>-the first argument, arg2 as the second argument.</div><div class='del'>- </div><div class='del'>- VALUE rb_yield(VALUE val)</div><div class='del'>-</div><div class='del'>-Evaluates the block with value val.</div><div class='del'>-</div><div class='del'>- VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)</div><div class='del'>-</div><div class='del'>-Calls the function func1, with arg1 as the argument.  If an exception</div><div class='del'>-occurs during func1, it calls func2 with arg2 as the argument.  The</div><div class='del'>-return value of rb_rescue() is the return value from func1 if no</div><div class='del'>-exception occurs, from func2 otherwise.</div><div class='del'>-</div><div class='del'>- VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)</div><div class='del'>-</div><div class='del'>-Calls the function func1 with arg1 as the argument, then calls func2</div><div class='del'>-with arg2 if execution terminated.  The return value from</div><div class='del'>-rb_ensure() is that of func1.</div><div class='del'>-</div><div class='del'>-** Exceptions and Errors</div><div class='del'>-</div><div class='del'>- void rb_warn(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Prints a warning message according to a printf-like format.</div><div class='del'>-</div><div class='del'>- void rb_warning(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Prints a warning message according to a printf-like format, if</div><div class='del'>-$VERBOSE is true.</div><div class='del'>-</div><div class='del'>-void rb_raise(rb_eRuntimeError, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Raises RuntimeError.  The fmt is a format string just like printf().</div><div class='del'>-</div><div class='del'>- void rb_raise(VALUE exception, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Raises a class exception.  The fmt is a format string just like printf().</div><div class='del'>-</div><div class='del'>- void rb_fatal(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Raises a fatal error, terminates the interpreter.  No exception handling</div><div class='del'>-will be done for fatal errors, but ensure blocks will be executed.</div><div class='del'>-</div><div class='del'>- void rb_bug(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-Terminates the interpreter immediately.  This function should be</div><div class='del'>-called under the situation caused by the bug in the interpreter.  No</div><div class='del'>-exception handling nor ensure execution will be done.</div><div class='del'>-</div><div class='del'>-** Initialize and Start the Interpreter</div><div class='del'>-</div><div class='del'>-The embedding API functions are below (not needed for extension libraries):</div><div class='del'>-</div><div class='del'>- void ruby_init()</div><div class='del'>-</div><div class='del'>-Initializes the interpreter.</div><div class='del'>-</div><div class='del'>- void ruby_options(int argc, char **argv)</div><div class='del'>-</div><div class='del'>-Process command line arguments for the interpreter.</div><div class='del'>-</div><div class='del'>- void ruby_run()</div><div class='del'>-</div><div class='del'>-Starts execution of the interpreter.</div><div class='del'>-</div><div class='del'>- void ruby_script(char *name)</div><div class='del'>-</div><div class='del'>-Specifies the name of the script ($0).</div><div class='del'>-</div><div class='del'>-** Hooks for the Interpreter Events</div><div class='del'>-</div><div class='del'>- void rb_add_event_hook(rb_event_hook_func_t func, rb_event_t events)</div><div class='del'>-</div><div class='del'>-Adds a hook function for the specified interpreter events.</div><div class='del'>-events should be Or'ed value of:</div><div class='del'>-</div><div class='del'>-	RUBY_EVENT_LINE</div><div class='del'>-	RUBY_EVENT_CLASS</div><div class='del'>-	RUBY_EVENT_END</div><div class='del'>-	RUBY_EVENT_CALL</div><div class='del'>-	RUBY_EVENT_RETURN</div><div class='del'>-	RUBY_EVENT_C_CALL</div><div class='del'>-	RUBY_EVENT_C_RETURN</div><div class='del'>-	RUBY_EVENT_RAISE</div><div class='del'>-	RUBY_EVENT_ALL</div><div class='del'>-</div><div class='del'>-The definition of rb_event_hook_func_t is below:</div><div class='del'>-</div><div class='del'>- typedef void (*rb_event_hook_func_t)(rb_event_t event, NODE *node,</div><div class='del'>- 				      VALUE self, ID id, VALUE klass)</div><div class='del'>-</div><div class='del'>- int rb_remove_event_hook(rb_event_hook_func_t func)</div><div class='del'>-</div><div class='del'>-Removes the specified hook function.</div><div class='del'>-</div><div class='del'>-Appendix C. Functions Available in extconf.rb</div><div class='del'>-</div><div class='del'>-These functions are available in extconf.rb:</div><div class='del'>-</div><div class='del'>- have_macro(macro, headers)</div><div class='del'>-</div><div class='del'>-Checks whether macro is defined with header.  Returns true if the macro</div><div class='del'>-is defined.</div><div class='del'>-</div><div class='del'>- have_library(lib, func)</div><div class='del'>-</div><div class='del'>-Checks whether the library exists, containing the specified function.</div><div class='del'>-Returns true if the library exists.</div><div class='del'>-</div><div class='del'>- find_library(lib, func, path...)</div><div class='del'>-</div><div class='del'>-Checks whether a library which contains the specified function exists in</div><div class='del'>-path.  Returns true if the library exists.</div><div class='del'>-</div><div class='del'>- have_func(func, header)</div><div class='del'>-</div><div class='del'>-Checks whether func exists with header.  Returns true if the function</div><div class='del'>-exists.  To check functions in an additional library, you need to</div><div class='del'>-check that library first using have_library().</div><div class='del'>-</div><div class='del'>- have_var(var, header)</div><div class='del'>-</div><div class='del'>-Checks whether var exists with header.  Returns true if the variable</div><div class='del'>-exists.  To check variables in an additional library, you need to</div><div class='del'>-check that library first using have_library().</div><div class='del'>-</div><div class='del'>- have_header(header)</div><div class='del'>-</div><div class='del'>-Checks whether header exists.  Returns true if the header file exists.</div><div class='del'>-</div><div class='del'>- find_header(header, path...)</div><div class='del'>-</div><div class='del'>-Checks whether header exists in path.  Returns true if the header file</div><div class='del'>-exists.</div><div class='del'>-</div><div class='del'>- have_struct_member(type, member, header)</div><div class='del'>-</div><div class='del'>-Checks whether type has member with header.  Returns true if the type</div><div class='del'>-is defined and has the member.</div><div class='del'>-</div><div class='del'>- have_type(type, header, opt)</div><div class='del'>-</div><div class='del'>-Checks whether type is defined with header.  Returns true if the type</div><div class='del'>-is defined.</div><div class='del'>-</div><div class='del'>- check_sizeof(type, header)</div><div class='del'>-</div><div class='del'>-Checks the size of type in char with header.  Returns the size if the</div><div class='del'>-type is defined, otherwise nil.</div><div class='del'>-</div><div class='del'>- create_makefile(target)</div><div class='del'>-</div><div class='del'>-Generates the Makefile for the extension library.  If you don't invoke</div><div class='del'>-this method, the compilation will not be done.</div><div class='del'>-</div><div class='del'>- find_executable(bin, path)</div><div class='del'>-</div><div class='del'>-Finds command in path, which is File::PATH_SEPARATOR-separated list of</div><div class='del'>-directories.  If path is nil or omitted, environment varialbe PATH</div><div class='del'>-will be used.  Returns the path name of the command if it is found,</div><div class='del'>-otherwise nil.</div><div class='del'>-</div><div class='del'>- with_config(withval[, default=nil])</div><div class='del'>-</div><div class='del'>-Parses the command line options and returns the value specified by</div><div class='del'>---with-&lt;withval&gt;.</div><div class='del'>-</div><div class='del'>- enable_config(config, *defaults)</div><div class='del'>- disable_config(config, *defaults)</div><div class='del'>-</div><div class='del'>-Parses the command line options for boolean.  Returns true if</div><div class='del'>---enable-&lt;config&gt; is given, or false if --disable-&lt;config&gt; is given.</div><div class='del'>-Otherwise, yields defaults to the given block and returns the result</div><div class='del'>-if it is called with a block, or returns defaults.</div><div class='del'>-</div><div class='del'>- dir_config(target[, default_dir])</div><div class='del'>- dir_config(target[, default_include, default_lib])</div><div class='del'>-</div><div class='del'>-Parses the command line options and adds the directories specified by</div><div class='del'>---with-&lt;target&gt;-dir, --with-&lt;target&gt;-include, and/or --with-&lt;target&gt;-lib</div><div class='del'>-to $CFLAGS and/or $LDFLAGS.  --with-&lt;target&gt;-dir=/path is equivalent to</div><div class='del'>---with-&lt;target&gt;-include=/path/include --with-&lt;target&gt;-lib=/path/lib.</div><div class='del'>-Returns an array of the added directories ([include_dir, lib_dir]).</div><div class='del'>-</div><div class='del'>- pkg_config(pkg)</div><div class='del'>-</div><div class='del'>-Obtains the information for pkg by pkg-config command.  The actual</div><div class='del'>-command name can be overriden by --with-pkg-config command line</div><div class='del'>-option.</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Local variables:</div><div class='del'>- * fill-column: 70</div><div class='del'>- * end:</div><div class='del'>- */</div><div class='add'>+Moved to doc/extension.rdoc</div><div class='head'>diff --git a/README.EXT.ja b/README.EXT.ja<br/>index 30c4d520ba..f884ecbb0e 100644<br/>--- a/<a href='/ruby.git/tree/README.EXT.ja?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>README.EXT.ja</a><br/>+++ b/<a href='/ruby.git/tree/README.EXT.ja?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>README.EXT.ja</a></div><div class='hunk'>@@ -1,1258 +1 @@</div><div class='del'>-.\" README.EXT.ja -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995</div><div class='del'>-</div><div class='del'>-Ruby¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Îºî¤êÊý¤òÀâÌÀ¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-1¡¥´ðÁÃÃÎ¼±</div><div class='del'>-</div><div class='del'>-C¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¡¤¥Ç¡¼¥¿¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¡¥¤Ç¤¹¤«¤é¡¤¤¿</div><div class='del'>-¤È¤¨¤Ð¥Ý¥¤¥ó¥¿¤òint¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤È¡¤¤½¤ÎÃÍ¤ÏÀ°¿ô¤È¤·¤Æ¼è</div><div class='del'>-¤ê°·¤ï¤ì¤Þ¤¹¡¥µÕ¤ËRuby¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤Ê¤¯¡¤¥Ç¡¼¥¿¤Ë·¿¤¬¤¢¤ê¤Þ</div><div class='del'>-¤¹¡¥¤³¤Î°ã¤¤¤Î¤¿¤á¡¤C¤ÈRuby¤ÏÁê¸ß¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¡¤¤ª¸ß¤¤¤Î</div><div class='del'>-¥Ç¡¼¥¿¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-Ruby¤Î¥Ç¡¼¥¿¤ÏVALUE¤È¤¤¤¦C¤Î·¿¤ÇÉ½¸½¤µ¤ì¤Þ¤¹¡¥VALUE·¿¤Î¥Ç¡¼</div><div class='del'>-¥¿¤Ï¤½¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¼«Ê¬¤ÇÃÎ¤Ã¤Æ¤¤¤Þ¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤È</div><div class='del'>-¤¤¤¦¤Î¤Ï¥Ç¡¼¥¿(¥ª¥Ö¥¸¥§¥¯¥È)¤Î¼ÂºÝ¤Î¹½Â¤¤ò°ÕÌ£¤·¤Æ¤¤¤Æ¡¤Ruby</div><div class='del'>-¤Î¥¯¥é¥¹¤È¤Ï¤Þ¤¿°ã¤Ã¤¿¤â¤Î¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-VALUE¤«¤éC¤Ë¤È¤Ã¤Æ°ÕÌ£¤Î¤¢¤ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë¤Ï</div><div class='del'>-</div><div class='del'>- (1) VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤òÃÎ¤ë</div><div class='del'>- (2) VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë</div><div class='del'>-</div><div class='del'>-¤ÎÎ¾Êý¤¬É¬Í×¤Ç¤¹¡¥(1)¤òËº¤ì¤ë¤È´Ö°ã¤Ã¤¿¥Ç¡¼¥¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì</div><div class='del'>-¤Æ¡¤ºÇ°­¥×¥í¥°¥é¥à¤¬core dump¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-1.1 ¥Ç¡¼¥¿¥¿¥¤¥×</div><div class='del'>-</div><div class='del'>-Ruby¤Ë¤Ï¥æ¡¼¥¶¤¬»È¤¦²ÄÇ½À­¤Î¤¢¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-	T_NIL		nil</div><div class='del'>-	T_OBJECT	ÄÌ¾ï¤Î¥ª¥Ö¥¸¥§¥¯¥È</div><div class='del'>-	T_CLASS		¥¯¥é¥¹</div><div class='del'>-	T_MODULE	¥â¥¸¥å¡¼¥ë</div><div class='del'>-	T_FLOAT		ÉâÆ°¾®¿ôÅÀ¿ô</div><div class='del'>-	T_STRING	Ê¸»úÎó</div><div class='del'>-	T_REGEXP	Àµµ¬É½¸½</div><div class='del'>-	T_ARRAY		ÇÛÎó</div><div class='del'>-	T_FIXNUM	Fixnum(31bitÄ¹À°¿ô)</div><div class='del'>-	T_HASH		Ï¢ÁÛÇÛÎó</div><div class='del'>-	T_STRUCT	(Ruby¤Î)¹½Â¤ÂÎ</div><div class='del'>-	T_BIGNUM	Â¿ÇÜÄ¹À°¿ô</div><div class='del'>-	T_FILE		Æþ½ÐÎÏ</div><div class='del'>-	T_TRUE		¿¿</div><div class='del'>-	T_FALSE		µ¶</div><div class='del'>-	T_DATA		¥Ç¡¼¥¿</div><div class='del'>-	T_SYMBOL	¥·¥ó¥Ü¥ë</div><div class='del'>-</div><div class='del'>-¤½¤ÎÂ¾¤ËÆâÉô¤ÇÍøÍÑ¤µ¤ì¤Æ¤¤¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-	T_ICLASS</div><div class='del'>-	T_MATCH</div><div class='del'>-	T_UNDEF</div><div class='del'>-	T_VARMAP</div><div class='del'>-	T_SCOPE</div><div class='del'>-	T_NODE</div><div class='del'>-</div><div class='del'>-¤Û¤È¤ó¤É¤Î¥¿¥¤¥×¤ÏC¤Î¹½Â¤ÂÎ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-1.2 VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë</div><div class='del'>-</div><div class='del'>-ruby.h¤Ç¤ÏTYPE()¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤VALUE¤Î¥Ç¡¼¥¿</div><div class='del'>-¥¿¥¤¥×¤òÃÎ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥TYPE()¥Þ¥¯¥í¤Ï¾å¤Ç¾Ò²ð¤·¤¿T_XXXX</div><div class='del'>-¤Î·Á¼°¤ÎÄê¿ô¤òÊÖ¤·¤Þ¤¹¡¥VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ë±þ¤¸¤Æ½èÍý¤¹¤ë</div><div class='del'>-¾ì¹ç¤Ë¤Ï¡¤TYPE()¤ÎÃÍ¤ÇÊ¬´ô¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  switch (TYPE(obj)) {</div><div class='del'>-    case T_FIXNUM:</div><div class='del'>-      /* FIXNUM¤Î½èÍý */</div><div class='del'>-      break;</div><div class='del'>-    case T_STRING:</div><div class='del'>-      /* Ê¸»úÎó¤Î½èÍý */</div><div class='del'>-      break;</div><div class='del'>-    case T_ARRAY:</div><div class='del'>-      /* ÇÛÎó¤Î½èÍý */</div><div class='del'>-      break;</div><div class='del'>-    default:</div><div class='del'>-      /* Îã³°¤òÈ¯À¸¤µ¤»¤ë */</div><div class='del'>-      rb_raise(rb_eTypeError, "not valid value");</div><div class='del'>-      break;</div><div class='del'>-  }</div><div class='del'>-</div><div class='del'>-¤½¤ì¤È¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¤Àµ¤·¤¯¤Ê¤±¤ì¤ÐÎã³°¤òÈ¯À¸¤¹</div><div class='del'>-¤ë´Ø¿ô¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void Check_Type(VALUE value, int type)</div><div class='del'>-</div><div class='del'>-¤³¤Î´Ø¿ô¤Ïvalue¤¬type¤ÇÌµ¤±¤ì¤Ð¡¤Îã³°¤òÈ¯À¸¤µ¤»¤Þ¤¹¡¥°ú¿ô¤È</div><div class='del'>-¤·¤ÆÍ¿¤¨¤é¤ì¤¿VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤¬Àµ¤·¤¤¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹</div><div class='del'>-¤ë¤¿¤á¤Ë¤Ï¡¤¤³¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-FIXNUM¤ÈNIL¤Ë´Ø¤·¤Æ¤Ï¤è¤ê¹âÂ®¤ÊÈ½ÊÌ¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  FIXNUM_P(obj)</div><div class='del'>-  NIL_P(obj)</div><div class='del'>-</div><div class='del'>-1.3 VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë</div><div class='del'>-</div><div class='del'>-¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_NIL, T_FALSE, T_TRUE¤Ç¤¢¤ë»þ¡¤¥Ç¡¼¥¿¤Ï¤½¤ì¤¾</div><div class='del'>-¤ìnil, false, true¤Ç¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ò¤È</div><div class='del'>-¤Ä¤º¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_FIXNUM¤Î»þ¡¤¤³¤ì¤Ï31bit¤Î¥µ¥¤¥º¤ò»ý¤ÄÀ°¿ô¤Ç</div><div class='del'>-¤¹¡¥FIXNUM¤òC¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¤Ï¥Þ¥¯¥í¡ÖFIX2INT()¡×¤ò»È</div><div class='del'>-¤¤¤Þ¤¹¡¥¤½¤ì¤«¤é¡¤FIXNUM¤Ë¸Â¤é¤ºRuby¤Î¥Ç¡¼¥¿¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë</div><div class='del'>-¡ÖNUM2INT()¡×¤È¤¤¤¦¥Þ¥¯¥í¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¥Ç¡¼¥¿¥¿¥¤</div><div class='del'>-¥×¤Î¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤Þ¤¹(À°¿ô¤ËÊÑ´¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤ÏÎã³°¤¬</div><div class='del'>-È¯À¸¤¹¤ë)¡¥Æ±ÍÍ¤Ë¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤ëÊÑ´¹¥Þ¥¯¥í¤Ïdouble¤ò</div><div class='del'>-¼è¤ê½Ð¤¹¡ÖNUM2DBL()¡×¤¬¤¢¤ê¤Þ¤¹¡£</div><div class='del'>-</div><div class='del'>-char* ¤ò¼è¤ê½Ð¤¹¾ì¹ç¡¢version 1.6 °ÊÁ°¤Ç¤Ï¡ÖSTR2CSTR()¡×¤È</div><div class='del'>-¤¤¤¦¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Ï to_str() ¤Ë¤è¤ë°ÅÌÛ¤Î</div><div class='del'>-·¿ÊÑ´¹·ë²Ì¤¬ GC ¤µ¤ì¤ë²ÄÇ½À­¤¬¤¢¤ë¤¿¤á¡¢version 1.7 °Ê¹ß¤Ç¤Ï</div><div class='del'>-obsolete ¤È¤Ê¤ê¡¢Âå¤ï¤ê¤Ë StringValue() ¤È StringValuePtr()</div><div class='del'>-¤ò»È¤¦»ö¤ò¿ä¾©¤·¤Æ¤¤¤Þ¤¹¡£StringValue(var) ¤Ï var ¤¬ String</div><div class='del'>- ¤Ç¤¢¤ì¤Ð²¿¤â¤»¤º¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð var ¤ò var.to_str() ¤Î·ë²Ì¤Ë</div><div class='del'>-ÃÖ¤­´¹¤¨¤ë¥Þ¥¯¥í¡¢StringValuePtr(var) ¤ÏÆ±ÍÍ¤Ë var ¤òÃÖ¤­´¹¤¨</div><div class='del'>-¤Æ¤«¤é var ¤ÎÊ¸»úÎóÉ½¸½¤ËÂÐ¤¹¤ë char* ¤òÊÖ¤¹¥Þ¥¯¥í¤Ç¤¹¡£var ¤Î</div><div class='del'>-ÆâÍÆ¤òÄ¾ÀÜÃÖ¤­´¹¤¨¤ë½èÍý¤¬Æþ¤ë¤Î¤Ç¡¢var ¤Ï lvalue ¤Ç¤¢¤ëÉ¬Í×¤¬</div><div class='del'>-¤¢¤ê¤Þ¤¹¡£</div><div class='del'>-</div><div class='del'>-¤½¤ì°Ê³°¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ÏÂÐ±þ¤¹¤ëC¤Î¹½Â¤ÂÎ¤¬¤¢¤ê¤Þ¤¹¡¥ÂÐ±þ¤¹</div><div class='del'>-¤ë¹½Â¤ÂÎ¤Î¤¢¤ëVALUE¤Ï¤½¤Î¤Þ¤Þ¥­¥ã¥¹¥È(·¿ÊÑ´¹)¤¹¤ì¤Ð¹½Â¤ÂÎ¤Î</div><div class='del'>-¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¹½Â¤ÂÎ¤Ï¡Östruct RXxxxx¡×¤È¤¤¤¦Ì¾Á°¤Çruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ</div><div class='del'>-¤¹¡¥Îã¤¨¤ÐÊ¸»úÎó¤Ï¡Östruct RString¡×¤Ç¤¹¡¥¼ÂºÝ¤Ë»È¤¦²ÄÇ½À­¤¬</div><div class='del'>-¤¢¤ë¤Î¤ÏÊ¸»úÎó¤ÈÇÛÎó¤¯¤é¤¤¤À¤È»×¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-ruby.h¤Ç¤Ï¹½Â¤ÂÎ¤Ø¥­¥ã¥¹¥È¤¹¤ë¥Þ¥¯¥í¤â¡ÖRXXXXX()¡×(Á´ÉôÂçÊ¸</div><div class='del'>-»ú¤Ë¤·¤¿¤â¤Î)¤È¤¤¤¦Ì¾Á°¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹(Îã: RSTRING())¡¥</div><div class='del'>-</div><div class='del'>-Îã¤¨¤Ð¡¤Ê¸»úÎóstr¤ÎÄ¹¤µ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)-&gt;len¡×¤È</div><div class='del'>-¤·¡¤Ê¸»úÎóstr¤òchar*¤È¤·¤ÆÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)-&gt;ptr¡×</div><div class='del'>-¤È¤·¤Þ¤¹¡¥ÇÛÎó¤Î¾ì¹ç¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¡ÖRARRAY(ary)-&gt;len¡×¡¤</div><div class='del'>-¡ÖRARRAY(ary)-&gt;ptr¡×¤È¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-Ruby¤Î¹½Â¤ÂÎ¤òÄ¾ÀÜ¥¢¥¯¥»¥¹¤¹¤ë»þ¤Ëµ¤¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³</div><div class='del'>-¤È¤Ï¡¤ÇÛÎó¤äÊ¸»úÎó¤Î¹½Â¤ÂÎ¤ÎÃæ¿È¤Ï»²¾È¤¹¤ë¤À¤±¤Ç¡¤Ä¾ÀÜÊÑ¹¹¤·</div><div class='del'>-¤Ê¤¤¤³¤È¤Ç¤¹¡¥Ä¾ÀÜÊÑ¹¹¤·¤¿¾ì¹ç¡¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÆâÍÆ¤ÎÀ°¹çÀ­¤¬</div><div class='del'>-¤È¤ì¤Ê¤¯¤Ê¤Ã¤Æ¡¤»×¤ï¤Ì¥Ð¥°¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-1.4 C¤Î¥Ç¡¼¥¿¤òVALUE¤ËÊÑ´¹¤¹¤ë</div><div class='del'>-</div><div class='del'>-VALUE¤Î¼ÂºÝ¤Î¹½Â¤¤Ï</div><div class='del'>-</div><div class='del'>-  * FIXNUM¤Î¾ì¹ç</div><div class='del'>-</div><div class='del'>-    1bitº¸¥·¥Õ¥È¤·¤Æ¡¤LSB¤òÎ©¤Æ¤ë¡¥</div><div class='del'>-</div><div class='del'>-  * ¤½¤ÎÂ¾¤Î¥Ý¥¤¥ó¥¿¤Î¾ì¹ç</div><div class='del'>-</div><div class='del'>-    ¤½¤Î¤Þ¤ÞVALUE¤Ë¥­¥ã¥¹¥È¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤è¤Ã¤Æ¡¤LSB¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤ÐVALUE¤¬FIXNUM¤«¤É</div><div class='del'>-¤¦¤«¤ï¤«¤ë¤ï¤±¤Ç¤¹(¥Ý¥¤¥ó¥¿¤ÎLSB¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò²¾Äê¤·¤Æ</div><div class='del'>-¤¤¤ë)¡¥</div><div class='del'>-</div><div class='del'>-¤Ç¤¹¤«¤é¡¤FIXNUM°Ê³°¤ÎRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½Â¤ÂÎ¤ÏÃ±¤ËVALUE</div><div class='del'>-¤Ë¥­¥ã¥¹¥È¤¹¤ë¤À¤±¤ÇVALUE¤ËÊÑ´¹½ÐÍè¤Þ¤¹¡¥¤¿¤À¤·¡¤Ç¤°Õ¤Î¹½Â¤</div><div class='del'>-ÂÎ¤¬VALUE¤Ë¥­¥ã¥¹¥È½ÐÍè¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¥­¥ã¥¹¥È¤¹¤ë¤Î</div><div class='del'>-¤ÏRuby¤ÎÃÎ¤Ã¤Æ¤¤¤ë¹½Â¤ÂÎ(ruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëstruct RXxxx</div><div class='del'>-¤Î¤â¤Î)¤À¤±¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-FIXNUM¤Ë´Ø¤·¤Æ¤ÏÊÑ´¹¥Þ¥¯¥í¤ò·ÐÍ³¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥C¤ÎÀ°¿ô</div><div class='del'>-¤«¤éVALUE¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥É¬Í×¤Ë±þ¤¸</div><div class='del'>-¤Æ»È¤¤Ê¬¤±¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-  INT2FIX()	¤â¤È¤ÎÀ°¿ô¤¬31bit°ÊÆâ¤Ë¼ý¤Þ¤ë¼«¿®¤¬¤¢¤ë»þ</div><div class='del'>-  INT2NUM()	Ç¤°Õ¤ÎÀ°¿ô¤«¤éVALUE¤Ø</div><div class='del'>-</div><div class='del'>-INT2NUM()¤ÏÀ°¿ô¤¬FIXNUM¤ÎÈÏ°Ï¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¤Bignum¤ËÊÑ´¹</div><div class='del'>-¤·¤Æ¤¯¤ì¤Þ¤¹(¤¬¡¤¾¯¤·ÃÙ¤¤)¡¥</div><div class='del'>-</div><div class='del'>-1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë</div><div class='del'>-</div><div class='del'>-ÀèÄø¤â½Ò¤Ù¤¿ÄÌ¤ê¡¤Ruby¤Î¹½Â¤ÂÎ¤ò¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËÆâÍÆ¤Î¹¹¿·¤ò</div><div class='del'>-¹Ô¤¦¤³¤È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥¤Ç¡¤Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë»þ¤Ë¤Ï</div><div class='del'>-Ruby¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë´Ø¿ô¤òÍÑ¤¤¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-¤³¤³¤Ç¤Ï¤â¤Ã¤È¤â»È¤ï¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»úÎó¤ÈÇÛÎó¤ÎÀ¸À®/Áàºî¤ò¹Ô</div><div class='del'>-¤¤´Ø¿ô¤ò¤¢¤²¤Þ¤¹(Á´Éô¤Ç¤Ï¤Ê¤¤¤Ç¤¹)¡¥</div><div class='del'>-</div><div class='del'>- Ê¸»úÎó¤ËÂÐ¤¹¤ë´Ø¿ô</div><div class='del'>-</div><div class='del'>-  rb_str_new(const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    ¿·¤·¤¤Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_str_new2(const char *ptr)</div><div class='del'>-</div><div class='del'>-    C¤ÎÊ¸»úÎó¤«¤éRuby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï</div><div class='del'>-    rb_str_new(ptr, strlen(ptr))¤ÈÆ±Åù¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_tainted_str_new(const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    ±øÀ÷¥Þ¡¼¥¯¤¬ÉÕ²Ã¤µ¤ì¤¿¿·¤·¤¤Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥³°Éô</div><div class='del'>-    ¤«¤é¤Î¥Ç¡¼¥¿¤Ë´ð¤Å¤¯Ê¸»úÎó¤Ë¤Ï±øÀ÷¥Þ¡¼¥¯¤¬ÉÕ²Ã¤µ¤ì¤ë¤Ù¤­</div><div class='del'>-    ¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_tainted_str_new2(const char *ptr)</div><div class='del'>-</div><div class='del'>-    C¤ÎÊ¸»úÎó¤«¤é±øÀ÷¥Þ¡¼¥¯¤¬ÉÕ²Ã¤µ¤ì¤¿Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_str_cat(VALUE str, const char *ptr, long len)</div><div class='del'>-</div><div class='del'>-    Ruby¤ÎÊ¸»úÎóstr¤Ëlen¥Ð¥¤¥È¤ÎÊ¸»úÎóptr¤òÄÉ²Ã¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>- ÇÛÎó¤ËÂÐ¤¹¤ë´Ø¿ô</div><div class='del'>-</div><div class='del'>-  rb_ary_new()</div><div class='del'>-</div><div class='del'>-    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_ary_new2(long len)</div><div class='del'>-</div><div class='del'>-    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥lenÍ×ÁÇÊ¬¤ÎÎÎ°è¤ò¤¢¤é¤«¤¸¤á³ä¤ê</div><div class='del'>-    Åö¤Æ¤Æ¤ª¤¯¡¥</div><div class='del'>-</div><div class='del'>-  rb_ary_new3(long n, ...)</div><div class='del'>-</div><div class='del'>-    °ú¿ô¤Ç»ØÄê¤·¤¿nÍ×ÁÇ¤ò´Þ¤àÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_ary_new4(long n, VALUE *elts)</div><div class='del'>-</div><div class='del'>-    ÇÛÎó¤ÇÍ¿¤¨¤¿nÍ×ÁÇ¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  rb_ary_push(VALUE ary, VALUE val)</div><div class='del'>-  rb_ary_pop(VALUE ary)</div><div class='del'>-  rb_ary_shift(VALUE ary)</div><div class='del'>-  rb_ary_unshift(VALUE ary, VALUE val)</div><div class='del'>-</div><div class='del'>-    Array¤ÎÆ±Ì¾¤Î¥á¥½¥Ã¥É¤ÈÆ±¤¸Æ¯¤­¤ò¤¹¤ë´Ø¿ô¡¥Âè1°ú¿ô¤ÏÉ¬¤º</div><div class='del'>-    ÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥</div><div class='del'>-</div><div class='del'>-2¡¥Ruby¤Îµ¡Ç½¤ò»È¤¦</div><div class='del'>-</div><div class='del'>-¸¶ÍýÅª¤ËRuby¤Ç½ñ¤±¤ë¤³¤È¤ÏC¤Ç¤â½ñ¤±¤Þ¤¹¡¥Ruby¤½¤Î¤â¤Î¤¬C¤Çµ­</div><div class='del'>-½Ò¤µ¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤«¤é¡¤ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¥¤³¤³¤Ç</div><div class='del'>-¤ÏRuby¤Î³ÈÄ¥¤Ë»È¤¦¤³¤È¤¬Â¿¤¤¤À¤í¤¦¤ÈÍ½Â¬¤µ¤ì¤ëµ¡Ç½¤òÃæ¿´¤Ë¾Ò</div><div class='del'>-²ð¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.1 Ruby¤Ëµ¡Ç½¤òÄÉ²Ã¤¹¤ë</div><div class='del'>-</div><div class='del'>-Ruby¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¨¤ÐRuby¥¤¥ó¥¿¥×¥ê¥¿¤Ë¿·¤·¤¤µ¡Ç½</div><div class='del'>-¤òÄÉ²Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥Ruby¤Ç¤Ï°Ê²¼¤Îµ¡Ç½¤òÄÉ²Ã¤¹¤ë´Ø¿ô¤¬</div><div class='del'>-Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>- * ¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë</div><div class='del'>- * ¥á¥½¥Ã¥É¡¤ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É</div><div class='del'>- * Äê¿ô</div><div class='del'>-</div><div class='del'>-¤Ç¤Ï½ç¤Ë¾Ò²ð¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.1.1 ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='del'>-</div><div class='del'>-¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_define_class(const char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module(const char *name)</div><div class='del'>-</div><div class='del'>-¤³¤ì¤é¤Î´Ø¿ô¤Ï¿·¤·¤¯ÄêµÁ¤µ¤ì¤¿¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÊÖ¤·¤Þ¤¹¡¥</div><div class='del'>-¥á¥½¥Ã¥É¤äÄê¿ô¤ÎÄêµÁ¤Ë¤³¤ì¤é¤ÎÃÍ¤¬É¬Í×¤Ê¤Î¤Ç¡¤¤Û¤È¤ó¤É¤Î¾ì¹ç</div><div class='del'>-¤ÏÌá¤êÃÍ¤òÊÑ¿ô¤Ë³ÊÇ¼¤·¤Æ¤ª¤¯É¬Í×¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥</div><div class='del'>-</div><div class='del'>-¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÂ¾¤Î¥¯¥é¥¹¤ÎÆâÉô¤Ë¥Í¥¹¥È¤·¤ÆÄêµÁ¤¹¤ë»þ¤Ë</div><div class='del'>-¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module_under(VALUE outer, const char *name)</div><div class='del'>-</div><div class='del'>-2.1.2 ¥á¥½¥Ã¥É/ÆÃ°Û¥á¥½¥Ã¥ÉÄêµÁ</div><div class='del'>-</div><div class='del'>-¥á¥½¥Ã¥É¤äÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_method(VALUE klass, const char *name, </div><div class='del'>-		        VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-  void rb_define_singleton_method(VALUE object, const char *name, </div><div class='del'>-			          VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Ç°¤Î¤¿¤áÀâÌÀ¤¹¤ë¤È¡ÖÆÃ°Û¥á¥½¥Ã¥É¡×¤È¤Ï¡¤¤½¤ÎÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯</div><div class='del'>-¥È¤ËÂÐ¤·¤Æ¤À¤±Í­¸ú¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡¥Ruby¤Ç¤Ï¤è¤¯Smalltalk¤Ë¤ª</div><div class='del'>-¤±¤ë¥¯¥é¥¹¥á¥½¥Ã¥É¤È¤·¤Æ¡¤¥¯¥é¥¹¤ËÂÐ¤¹¤ëÆÃ°Û¥á¥½¥Ã¥É¤¬»È¤ï¤ì</div><div class='del'>-¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¤³¤ì¤é¤Î´Ø¿ô¤Î argc¤È¤¤¤¦°ú¿ô¤ÏC¤Î´Ø¿ô¤ØÅÏ¤µ¤ì¤ë°ú¿ô¤Î¿ô(¤È</div><div class='del'>-·Á¼°)¤ò·è¤á¤Þ¤¹¡¥argc¤¬0°Ê¾å¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅÏ¤¹°ú¿ô¤Î¿ô¤ò°Õ</div><div class='del'>-Ì£¤·¤Þ¤¹¡¥16¸Ä°Ê¾å¤Î°ú¿ô¤Ï»È¤¨¤Þ¤»¤ó(¤¬¡¤Í×¤ê¤Þ¤»¤ó¤è¤Í¡¤¤½</div><div class='del'>-¤ó¤Ê¤Ë)¡¥¼ÂºÝ¤Î´Ø¿ô¤Ë¤ÏÀèÆ¬¤Î°ú¿ô¤È¤·¤Æself¤¬Í¿¤¨¤é¤ì¤Þ¤¹¤Î</div><div class='del'>-¤Ç¡¤»ØÄê¤·¤¿¿ô¤è¤ê1Â¿¤¤°ú¿ô¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-argc¤¬Éé¤Î»þ¤Ï°ú¿ô¤Î¿ô¤Ç¤Ï¤Ê¤¯¡¤·Á¼°¤ò»ØÄê¤·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-argc¤¬-1¤Î»þ¤Ï°ú¿ô¤òÇÛÎó¤ËÆþ¤ì¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥argc¤¬-2¤Î»þ¤Ï°ú</div><div class='del'>-¿ô¤ÏRuby¤ÎÇÛÎó¤È¤·¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï¤â¤¦Æó¤Ä¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ïprivate¥á</div><div class='del'>-¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ç¡¤°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_private_method(VALUE klass, const char *name, </div><div class='del'>-				VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-private¥á¥½¥Ã¥É¤È¤Ï´Ø¿ô·Á¼°¤Ç¤·¤«¸Æ¤Ó½Ð¤¹¤³¤È¤Î½ÐÍè¤Ê¤¤¥á¥½¥Ã</div><div class='del'>-¥É¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-¤â¤¦¤Ò¤È¤Ä¤Ï¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô</div><div class='del'>-¤È¤Ï¥â¥¸¥å¡¼¥ë¤ÎÆÃ°Û¥á¥½¥Ã¥É¤Ç¤¢¤ê¡¤Æ±»þ¤Ëprivate¥á¥½¥Ã¥É¤Ç</div><div class='del'>-¤â¤¢¤ë¤â¤Î¤Ç¤¹¡¥Îã¤ò¤¢¤²¤ë¤ÈMath¥â¥¸¥å¡¼¥ë¤Îsqrt()¤Ê¤É¤¬¤¢¤²</div><div class='del'>-¤é¤ì¤Þ¤¹¡¥¤³¤Î¥á¥½¥Ã¥É¤Ï</div><div class='del'>-</div><div class='del'>-  Math.sqrt(4)</div><div class='del'>-</div><div class='del'>-¤È¤¤¤¦·Á¼°¤Ç¤â</div><div class='del'>-</div><div class='del'>-  include Math</div><div class='del'>-  sqrt(4)</div><div class='del'>-</div><div class='del'>-¤È¤¤¤¦·Á¼°¤Ç¤â»È¤¨¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤Î</div><div class='del'>-ÄÌ¤ê¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_module_function(VALUE module, const char *name, </div><div class='del'>-		                 VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-´Ø¿ôÅª¥á¥½¥Ã¥É(Kernel¥â¥¸¥å¡¼¥ë¤Îprivate method)¤òÄêµÁ¤¹¤ë¤¿</div><div class='del'>-¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-¥á¥½¥Ã¥É¤ÎÊÌÌ¾¤òÄêµÁ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡£</div><div class='del'>-</div><div class='del'>-  void rb_define_alias(VALUE module, const char* new, const char* old);</div><div class='del'>-</div><div class='del'>-¥¯¥é¥¹¥á¥½¥Ã¥Éallocate¤òÄêµÁ¤·¤¿¤êºï½ü¤·¤¿¤ê¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï</div><div class='del'>-°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡£</div><div class='del'>-</div><div class='del'>-  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));</div><div class='del'>-  void rb_undef_alloc_func(VALUE klass);</div><div class='del'>-</div><div class='del'>-func¤Ï¥¯¥é¥¹¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤Æ¡¢¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥¤¥ó</div><div class='del'>-¥¹¥¿¥ó¥¹¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢³°Éô¥ê</div><div class='del'>-¥½¡¼¥¹¤Ê¤É¤ò´Þ¤Þ¤Ê¤¤¡¢¤Ç¤­¤ë¤À¤±¡Ö¶õ¡×¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤¤¿¤Û¤¦</div><div class='del'>-¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£</div><div class='del'>-</div><div class='del'>-2.1.3 Äê¿ôÄêµÁ</div><div class='del'>-</div><div class='del'>-³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤¬É¬Í×¤ÊÄê¿ô¤Ï¤¢¤é¤«¤¸¤áÄêµÁ¤·¤Æ¤ª¤¤¤¿Êý¤¬ÎÉ¤¤</div><div class='del'>-¤Ç¤·¤ç¤¦¡¥Äê¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='del'>-  void rb_define_global_const(const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-Á°¼Ô¤ÏÆÃÄê¤Î¥¯¥é¥¹/¥â¥¸¥å¡¼¥ë¤ËÂ°¤¹¤ëÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¡¤¸å</div><div class='del'>-¼Ô¤Ï¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.2 Ruby¤Îµ¡Ç½¤òC¤«¤é¸Æ¤Ó½Ð¤¹</div><div class='del'>-</div><div class='del'>-´û¤Ë¡Ø1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë¡Ù¤Ç°ìÉô¾Ò²ð¤·¤¿¤è¤¦¤Ê´Ø¿ô¤ò</div><div class='del'>-»È¤¨¤Ð¡¤Ruby¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤ë´Ø¿ô¤òÄ¾ÀÜ¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè</div><div class='del'>-¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-# ¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Î°ìÍ÷É½¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¢¤ê¤Þ¤»¤ó¡¥¥½¡¼¥¹¤ò¸«</div><div class='del'>-# ¤ë¤·¤«¤Ê¤¤¤Ç¤¹¤Í¡¥</div><div class='del'>-</div><div class='del'>-¤½¤ì°Ê³°¤Ë¤âRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹ÊýË¡¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.2.1 Ruby¤Î¥×¥í¥°¥é¥à¤òeval¤¹¤ë</div><div class='del'>-</div><div class='del'>-C¤«¤éRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹¤â¤Ã¤È¤â´ÊÃ±¤ÊÊýË¡¤È¤·¤Æ¡¤Ê¸»úÎó¤Ç</div><div class='del'>-Í¿¤¨¤é¤ì¤¿Ruby¤Î¥×¥í¥°¥é¥à¤òÉ¾²Á¤¹¤ë°Ê²¼¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_eval_string(const char *str)</div><div class='del'>-</div><div class='del'>-¤³¤ÎÉ¾²Á¤Ï¸½ºß¤Î´Ä¶­¤Ç¹Ô¤ï¤ì¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤¸½ºß¤Î¥í¡¼¥«¥ëÊÑ¿ô</div><div class='del'>-¤Ê¤É¤ò¼õ¤±·Ñ¤®¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.2.2 ID¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë</div><div class='del'>-</div><div class='del'>-C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ</div><div class='del'>-¤¹¡¥¤½¤ÎÁ°¤Ë¡¤Ruby¥¤¥ó¥¿¥×¥ê¥¿Æâ¤Ç¥á¥½¥Ã¥É¤äÊÑ¿ôÌ¾¤ò»ØÄê¤¹¤ë</div><div class='del'>-»þ¤Ë»È¤ï¤ì¤Æ¤¤¤ëID¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡¥</div><div class='del'>-</div><div class='del'>-ID¤È¤ÏÊÑ¿ôÌ¾¡¤¥á¥½¥Ã¥ÉÌ¾¤òÉ½¤¹À°¿ô¤Ç¤¹¡¥Ruby¤Ç¤ÏID¤ËÂÐ±þ¤¹¤ë</div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¥·¥ó¥Ü¥ë(Symbol)¤¬¤¢¤ê¡¤</div><div class='del'>-</div><div class='del'>- :¼±ÊÌ»Ò</div><div class='del'>-</div><div class='del'>-¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡¥C¤«¤é¤³¤ÎÀ°¿ô¤òÆÀ¤ë¤¿¤á¤Ë¤Ï´Ø¿ô</div><div class='del'>-</div><div class='del'>-  rb_intern(const char *name)</div><div class='del'>-</div><div class='del'>-¤ò»È¤¤¤Þ¤¹¡¥Ruby¤«¤é°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ë(¤Þ¤¿¤ÏÊ¸»ú</div><div class='del'>-Îó)¤òID¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  rb_to_id(VALUE symbol)</div><div class='del'>-</div><div class='del'>-ID¤«¤é¥·¥ó¥Ü¥ë¤òÆÀ¤ë¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE ID2SYM(ID id)</div><div class='del'>-</div><div class='del'>-¥·¥ó¥Ü¥ë¤«¤éID¤òÆÀ¤ë¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  ID SYM2ID(VALUE symbol)</div><div class='del'>-</div><div class='del'>-2.2.3 C¤«¤éRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹</div><div class='del'>-</div><div class='del'>-C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¤Ï°Ê²¼</div><div class='del'>-¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)</div><div class='del'>-</div><div class='del'>-¤³¤Î´Ø¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥Èrecv¤Îmid¤Ç»ØÄê¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð</div><div class='del'>-¤·¤Þ¤¹¡¥¤½¤ÎÂ¾¤Ë°ú¿ô¤Î»ØÄê¤Î»ÅÊý¤¬°ã¤¦°Ê²¼¤Î´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='del'>-  VALUE rb_apply(VALUE recv, ID mid, VALUE args)</div><div class='del'>-</div><div class='del'>-apply¤Ë¤Ï°ú¿ô¤È¤·¤ÆRuby¤ÎÇÛÎó¤òÍ¿¤¨¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-2.2.4 ÊÑ¿ô/Äê¿ô¤ò»²¾È/¹¹¿·¤¹¤ë</div><div class='del'>-</div><div class='del'>-C¤«¤é´Ø¿ô¤ò»È¤Ã¤Æ»²¾È¡¦¹¹¿·¤Ç¤­¤ë¤Î¤Ï¡¤Äê¿ô¡¤¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ</div><div class='del'>-¿ô¤Ç¤¹¡¥Âç°èÊÑ¿ô¤Ï°ìÉô¤Î¤â¤Î¤ÏC¤ÎÂç°èÊÑ¿ô¤È¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­</div><div class='del'>-¤Þ¤¹¡¥¥í¡¼¥«¥ëÊÑ¿ô¤ò»²¾È¤¹¤ëÊýË¡¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò»²¾È¡¦¹¹¿·¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ</div><div class='del'>-¤ê¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_ivar_get(VALUE obj, ID id)</div><div class='del'>-  VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)</div><div class='del'>-</div><div class='del'>-id¤Ïrb_intern()¤ÇÆÀ¤é¤ì¤ë¤â¤Î¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-Äê¿ô¤ò»²¾È¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-  VALUE rb_const_get(VALUE obj, ID id)</div><div class='del'>-</div><div class='del'>-Äê¿ô¤ò¿·¤·¤¯ÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡Ø2.1.3 Äê¿ôÄêµÁ¡Ù¤Ç¾Ò²ð¤µ</div><div class='del'>-¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-3¡¥Ruby¤ÈC¤È¤Î¾ðÊó¶¦Í­</div><div class='del'>-</div><div class='del'>-C¸À¸ì¤ÈRuby¤Î´Ö¤Ç¾ðÊó¤ò¶¦Í­¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ²òÀâ¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-3.1 C¤«¤é»²¾È¤Ç¤­¤ëRuby¤ÎÄê¿ô</div><div class='del'>-</div><div class='del'>-°Ê²¼¤ÎRuby¤ÎÄê¿ô¤ÏC¤Î¥ì¥Ù¥ë¤«¤é»²¾È¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  Qtrue</div><div class='del'>-  Qfalse</div><div class='del'>-</div><div class='del'>-    ¿¿µ¶ÃÍ¡¥Qfalse¤ÏC¸À¸ì¤Ç¤âµ¶¤È¤ß¤Ê¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê0)¡¥</div><div class='del'>-</div><div class='del'>-  Qnil</div><div class='del'>-</div><div class='del'>-    C¸À¸ì¤«¤é¸«¤¿¡Önil¡×¡¥</div><div class='del'>-</div><div class='del'>-3.2 C¤ÈRuby¤Ç¶¦Í­¤µ¤ì¤ëÂç°èÊÑ¿ô</div><div class='del'>-</div><div class='del'>-C¤ÈRuby¤ÇÂç°èÊÑ¿ô¤ò»È¤Ã¤Æ¾ðÊó¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡¥¶¦Í­¤Ç¤­¤ëÂç°è</div><div class='del'>-ÊÑ¿ô¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ïÎà¤¬¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤Ê¤«¤Ç¤â¤Ã¤È¤âÎÉ¤¯»È¤ï</div><div class='del'>-¤ì¤ë¤È»×¤ï¤ì¤ë¤Î¤Ïrb_define_variable()¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-¤³¤Î´Ø¿ô¤ÏRuby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëÂç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥ÊÑ¿ôÌ¾¤¬</div><div class='del'>-`$'¤Ç»Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤ÎÃÍ¤òÊÑ</div><div class='del'>-¹¹¤¹¤ë¤È¼«Æ°Åª¤ËRuby¤ÎÂÐ±þ¤¹¤ëÊÑ¿ô¤ÎÃÍ¤âÊÑ¤ï¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¤Þ¤¿RubyÂ¦¤«¤é¤Ï¹¹¿·¤Ç¤­¤Ê¤¤ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Îread only¤Î</div><div class='del'>-ÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ÇÄêµÁ¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-¤³¤ì¤éÊÑ¿ô¤ÎÂ¾¤Ëhook¤ò¤Ä¤±¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤Ç¤­¤Þ¤¹¡¥hookÉÕ¤­</div><div class='del'>-¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤òÍÑ¤¤¤ÆÄêµÁ¤·¤Þ¤¹¡¥hookÉÕ¤­Âç°èÊÑ¿ô¤Î</div><div class='del'>-ÃÍ¤Î»²¾È¤äÀßÄê¤Ïhook¤Ç¹Ô¤¦É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='del'>-				 VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-¤³¤Î´Ø¿ô¤ÏC¤Î´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ</div><div class='del'>-¤¹¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï´Ø¿ôgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì</div><div class='del'>-¤¿»þ¤Ë¤Ï´Ø¿ôsetter¤¬¸Æ¤Ð¤ì¤ë¡¥hook¤ò»ØÄê¤·¤Ê¤¤¾ì¹ç¤Ïgetter¤ä</div><div class='del'>-setter¤Ë0¤ò»ØÄê¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-# getter¤âsetter¤â0¤Ê¤é¤Ðrb_define_variable()¤ÈÆ±¤¸¤Ë¤Ê¤ë¡¥</div><div class='del'>-</div><div class='del'>-¤½¤ì¤«¤é¡¤C¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRuby¤ÎÂç°èÊÑ¿ô¤òÄêµÁ¤¹¤ë</div><div class='del'>-´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_define_virtual_variable(const char *name,</div><div class='del'>-				  VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿Ruby¤ÎÂç°èÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï</div><div class='del'>-getter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-getter¤Èsetter¤Î»ÅÍÍ¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  (*getter)(ID id, void *data, struct global_entry* entry);</div><div class='del'>-  (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);</div><div class='del'>-</div><div class='del'>-3.3 C¤Î¥Ç¡¼¥¿¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¹¤ë</div><div class='del'>-</div><div class='del'>-C¤ÎÀ¤³¦¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¡¼¥¿(¹½Â¤ÂÎ)¤òRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ</div><div class='del'>-¼è¤ê°·¤¤¤¿¤¤¾ì¹ç¤¬¤¢¤ê¤¨¤Þ¤¹¡¥¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤Data¤È¤¤¤¦</div><div class='del'>-Ruby¥ª¥Ö¥¸¥§¥¯¥È¤ËC¤Î¹½Â¤ÂÎ(¤Ø¤Î¥Ý¥¤¥ó¥¿)¤ò¤¯¤ë¤à¤³¤È¤ÇRuby</div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¼è¤ê°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¹½Â¤ÂÎ¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥«¥×¥»¥ë</div><div class='del'>-²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  Data_Wrap_Struct(klass, mark, free, ptr)</div><div class='del'>-</div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-klass¤Ï¤³¤ÎData¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤¹¡¥ptr¤Ï¥«¥×¥»¥ë²½¤¹¤ë</div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡¥mark¤Ï¤³¤Î¹½Â¤ÂÎ¤¬Ruby¤Î¥ª¥Ö¥¸¥§</div><div class='del'>-¥¯¥È¤Ø¤Î»²¾È¤¬¤¢¤ë»þ¤Ë»È¤¦´Ø¿ô¤Ç¤¹¡¥¤½¤Î¤è¤¦¤Ê»²¾È¤ò´Þ¤Þ¤Ê¤¤</div><div class='del'>-»þ¤Ë¤Ï0¤ò»ØÄê¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-# ¤½¤Î¤è¤¦¤Ê»²¾È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-free¤Ï¤³¤Î¹½Â¤ÂÎ¤¬¤â¤¦ÉÔÍ×¤Ë¤Ê¤Ã¤¿»þ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ç¤¹¡¥¤³¤Î</div><div class='del'>-´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥¤³¤ì¤¬-1¤Î¾ì¹ç¤Ï¡¤Ã±</div><div class='del'>-½ã¤Ë³«Êü¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Î³äÅö¤ÈData¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤òÆ±»þ¤Ë¹Ô¤¦¥Þ¥¯¥í¤È</div><div class='del'>-¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  Data_Make_Struct(klass, type, mark, free, sval)</div><div class='del'>-</div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-klass, mark, free¤ÏData_Wrap_Struct¤ÈÆ±¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡¥type</div><div class='del'>-¤Ï³ä¤êÅö¤Æ¤ëC¹½Â¤ÂÎ¤Î·¿¤Ç¤¹¡¥³ä¤êÅö¤Æ¤é¤ì¤¿¹½Â¤ÂÎ¤ÏÊÑ¿ôsval</div><div class='del'>-¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Î·¿¤Ï (type*) ¤Ç¤¢¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤Î¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤òÍÑ¤¤</div><div class='del'>-¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  Data_Get_Struct(obj, type, sval)</div><div class='del'>-</div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ôsval¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¤³¤ì¤é¤ÎData¤Î»È¤¤Êý¤Ï¤Á¤ç¤Ã¤ÈÊ¬¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¤¸å¤ÇÀâÌÀ¤¹¤ë</div><div class='del'>-ÎãÂê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-4¡¥ÎãÂê - dbm¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë</div><div class='del'>-</div><div class='del'>-¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤È¤ê¤¢¤¨¤º³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïºî¤ì¤ë¤Ï¤º¤Ç¤¹¡¥</div><div class='del'>-Ruby¤Îext¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëdbm¥é¥¤¥Ö¥é¥ê¤òÎã¤Ë</div><div class='del'>-¤·¤ÆÃÊ³¬Åª¤ËÀâÌÀ¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-(1) ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ë</div><div class='del'>-</div><div class='del'>-  % mkdir ext/dbm</div><div class='del'>-</div><div class='del'>-Ruby 1.1¤«¤é¤ÏÇ¤°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî</div><div class='del'>-¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡¥Ruby¤ËÀÅÅª¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë</div><div class='del'>-¤ÏRuby¤òÅ¸³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¡¤ext¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë³ÈÄ¥</div><div class='del'>-¥é¥¤¥Ö¥é¥êÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥Ì¾Á°¤ÏÅ¬Åö¤Ë</div><div class='del'>-Áª¤ó¤Ç¹½¤¤¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-(2) Àß·×¤¹¤ë</div><div class='del'>-</div><div class='del'>-¤Þ¤¢¡¤ÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¤¤É¤¦¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤«¤É¤¦¤«¤Þ¤ºÀß</div><div class='del'>-·×¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤É¤ó¤Ê¥¯¥é¥¹¤ò¤Ä¤¯¤ë¤«¡¤¤½¤Î¥¯¥é¥¹¤Ë¤Ï</div><div class='del'>-¤É¤ó¤Ê¥á¥½¥Ã¥É¤¬¤¢¤ë¤«¡¤¥¯¥é¥¹¤¬Äó¶¡¤¹¤ëÄê¿ô¤Ê¤É¤Ë¤Ä¤¤¤ÆÀß·×</div><div class='del'>-¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-(3) C¥³¡¼¥É¤ò½ñ¤¯</div><div class='del'>-</div><div class='del'>-³ÈÄ¥¥é¥¤¥Ö¥é¥êËÜÂÎ¤È¤Ê¤ëC¸À¸ì¤Î¥½¡¼¥¹¤ò½ñ¤­¤Þ¤¹¡¥C¸À¸ì¤Î¥½¡¼</div><div class='del'>-¥¹¤¬¤Ò¤È¤Ä¤Î»þ¤Ë¤Ï¡Ö¥é¥¤¥Ö¥é¥êÌ¾.c¡×¤òÁª¤Ö¤ÈÎÉ¤¤¤Ç¤·¤ç¤¦¡¥C</div><div class='del'>-¸À¸ì¤Î¥½¡¼¥¹¤¬Ê£¿ô¤Î¾ì¹ç¤Ë¤ÏµÕ¤Ë¡Ö¥é¥¤¥Ö¥é¥êÌ¾.c¡×¤È¤¤¤¦¥Õ¥¡</div><div class='del'>-¥¤¥ëÌ¾¤ÏÈò¤±¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¥â¥¸¥å¡¼</div><div class='del'>-¥ëÀ¸À®»þ¤ËÃæ´ÖÅª¤ËÀ¸À®¤µ¤ì¤ë¡Ö¥é¥¤¥Ö¥é¥êÌ¾.o¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë</div><div class='del'>-¤È¤¬¾×ÆÍ¤¹¤ë¤«¤é¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-Ruby¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë»þ¤Ë¡ÖInit_¥é¥¤¥Ö¥é¥êÌ¾¡×¤È</div><div class='del'>-¤¤¤¦´Ø¿ô¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¡ÖInit_dbm¡×</div><div class='del'>-¤Ç¤¹¡¥¤³¤Î´Ø¿ô¤ÎÃæ¤Ç¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë¡¤¥á¥½¥Ã¥É¡¤Äê¿ô¤Ê¤É¤Î</div><div class='del'>-ÄêµÁ¤ò¹Ô¤¤¤Þ¤¹¡¥dbm.c¤«¤é°ìÉô°úÍÑ¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-Init_dbm()</div><div class='del'>-{</div><div class='del'>-    /* DBM¥¯¥é¥¹¤òÄêµÁ¤¹¤ë */</div><div class='del'>-    cDBM = rb_define_class("DBM", rb_cObject);</div><div class='del'>-    /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */</div><div class='del'>-    rb_include_module(cDBM, rb_mEnumerable);</div><div class='del'>-</div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥Éopen(): °ú¿ô¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë */</div><div class='del'>-    rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);</div><div class='del'>-</div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éclose(): °ú¿ô¤Ï¤Ê¤· */</div><div class='del'>-    rb_define_method(cDBM, "close", fdbm_close, 0);</div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥É[]: °ú¿ô¤Ï1¸Ä */</div><div class='del'>-    rb_define_method(cDBM, "[]", fdbm_fetch, 1);</div><div class='del'>-		:</div><div class='del'>-</div><div class='del'>-    /* DBM¥Ç¡¼¥¿¤ò³ÊÇ¼¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ôÌ¾¤Î¤¿¤á¤ÎID */</div><div class='del'>-    id_dbm = rb_intern("dbm");</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-DBM¥é¥¤¥Ö¥é¥ê¤Ïdbm¤Î¥Ç¡¼¥¿¤ÈÂÐ±þ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ë¤Ï¤º¤Ç</div><div class='del'>-¤¹¤«¤é¡¤C¤ÎÀ¤³¦¤Îdbm¤òRuby¤ÎÀ¤³¦¤Ë¼è¤ê¹þ¤àÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-dbm.c¤Ç¤ÏData_Make_Struct¤ò°Ê²¼¤Î¤è¤¦¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-struct dbmdata {</div><div class='del'>-    int  di_size;</div><div class='del'>-    DBM *di_dbm;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-¤³¤³¤Ç¤Ïdbmstruct¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òData¤Ë¥«¥×¥»¥ë²½¤·¤Æ¤¤</div><div class='del'>-¤Þ¤¹¡¥DBM*¤òÄ¾ÀÜ¥«¥×¥»¥ë²½¤·¤Ê¤¤¤Î¤Ïclose()¤·¤¿»þ¤Î½èÍý¤ò¹Í</div><div class='del'>-¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á</div><div class='del'>-¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-#define GetDBM(obj, dbmp) {\</div><div class='del'>-    Data_Get_Struct(obj, struct dbmdata, dbmp);\</div><div class='del'>-    if (dbmp-&gt;di_dbm == 0) closed_dbm();\</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-¤Á¤ç¤Ã¤ÈÊ£»¨¤Ê¥Þ¥¯¥í¤Ç¤¹¤¬¡¤Í×¤¹¤ë¤Ëdbmdata¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿</div><div class='del'>-¤Î¼è¤ê½Ð¤·¤È¡¤close¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤Þ¤È¤á¤Æ¤¤</div><div class='del'>-¤ë¤À¤±¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-DBM¥¯¥é¥¹¤Ë¤Ï¤¿¤¯¤µ¤ó¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Ê¬Îà¤¹¤ë¤È3¼ïÎà¤Î</div><div class='del'>-°ú¿ô¤Î¼õ¤±Êý¤¬¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ï°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¤â¤Î¤Ç¡¤Îã¤È</div><div class='del'>-¤·¤Æ¤Ïdelete¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡¥delete¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë</div><div class='del'>-fdbm_delete()¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_delete(obj, keystr)</div><div class='del'>-    VALUE obj, keystr;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¥¿¥¤¥×¤ÏÂè1°ú¿ô¤¬self¡¤Âè2°ú¿ô°Ê¹ß¤¬¥á¥½¥Ã¥É</div><div class='del'>-¤Î°ú¿ô¤È¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-°ú¿ô¤Î¿ô¤¬ÉÔÄê¤Î¤â¤Î¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î¤ÈRuby¤ÎÇÛÎó¤Ç¼õ¤±</div><div class='del'>-¤ë¤â¤Î¤È¤¬¤¢¤ê¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç¡¤C¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î</div><div class='del'>-¤ÏDBM¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤Ç¤¢¤ëopen()¤Ç¤¹¡¥¤³¤ì¤ò¼ÂÁõ¤·¤Æ¤¤¤ë´Ø</div><div class='del'>-¿ôfdbm_s_open()¤Ï¤³¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_s_open(argc, argv, klass)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE klass;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;file, &amp;vmode) == 1) {</div><div class='del'>-	mode = 0666;		/* default value */</div><div class='del'>-    }</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-¤³¤Î¥¿¥¤¥×¤Î´Ø¿ô¤ÏÂè1°ú¿ô¤¬Í¿¤¨¤é¤ì¤¿°ú¿ô¤Î¿ô¡¤Âè2°ú¿ô¤¬Í¿¤¨</div><div class='del'>-¤é¤ì¤¿°ú¿ô¤ÎÆþ¤Ã¤Æ¤¤¤ëÇÛÎó¤Ë¤Ê¤ê¤Þ¤¹¡¥self¤ÏÂè3°ú¿ô¤È¤·¤ÆÍ¿</div><div class='del'>-¤¨¤é¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-¤³¤ÎÇÛÎó¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤ò²òÀÏ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤¬open()¤Ç¤â»È¤ï</div><div class='del'>-¤ì¤Æ¤¤¤ërb_scan_args()¤Ç¤¹¡¥Âè3°ú¿ô¤Ë»ØÄê¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë</div><div class='del'>-½¾¤¤¡¤Âè4ÊÑ¿ô°Ê¹ß¤Ë»ØÄê¤·¤¿ÊÑ¿ô¤ËÃÍ¤òÂåÆþ¤·¤Æ¤¯¤ì¤Þ¤¹¡¥¤³¤Î</div><div class='del'>-¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¤Âè1Ê¸»úÌÜ¤¬¾ÊÎ¬¤Ç¤­¤Ê¤¤°ú¿ô¤Î¿ô¡¤Âè2Ê¸»úÌÜ¤¬</div><div class='del'>-¾ÊÎ¬¤Ç¤­¤ë°ú¿ô¤Î¿ô¡¤Âè3Ê¸»úÌÜ¤¬ÂÐ±þ¤¹¤ëÁê¼ê¤¬Ìµ¤¤¤¢¤Þ¤ê¤Î°ú</div><div class='del'>-¿ô¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤¹"*"¤Ç¤¹¡¥2Ê¸»úÌÜ¤È3Ê¸»úÌÜ¤Ï¾ÊÎ¬¤Ç¤­¤Þ</div><div class='del'>-¤¹¡¥dbm.c¤ÎÎã¤Ç¤Ï¡¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï"11"¤Ç¤¹¤«¤é¡¤°ú¿ô¤ÏºÇÄã1¤Ä</div><div class='del'>-¤Ç¡¤2¤Ä¤Þ¤Çµö¤µ¤ì¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡¥¾ÊÎ¬¤µ¤ì¤Æ¤¤¤ë»þ¤Î</div><div class='del'>-ÊÑ¿ô¤ÎÃÍ¤Ïnil(C¸À¸ì¤Î¥ì¥Ù¥ë¤Ç¤ÏQnil)¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-Ruby¤ÎÇÛÎó¤Ç°ú¿ô¤ò¼õ¤±¼è¤ë¤â¤Î¤Ïindexes¤¬¤¢¤ê¤Þ¤¹¡¥¼ÂÁõ¤Ï¤³</div><div class='del'>-¤¦¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>---</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_indexes(obj, args)</div><div class='del'>-    VALUE obj, args;</div><div class='del'>-{</div><div class='del'>-	:</div><div class='del'>-}</div><div class='del'>---</div><div class='del'>-</div><div class='del'>-Âè1°ú¿ô¤Ïself¡¤Âè2°ú¿ô¤ÏRuby¤ÎÇÛÎó¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-** Ãí°Õ»ö¹à</div><div class='del'>-</div><div class='del'>-Ruby¤È¶¦Í­¤Ï¤·¤Ê¤¤¤¬Ruby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊÇ¼¤¹¤ë²ÄÇ½À­¤Î¤¢¤ë</div><div class='del'>-C¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤ÆRuby¥¤¥ó¥¿¥×¥ê¥¿¤ËÊÑ¿ô¤ÎÂ¸ºß</div><div class='del'>-¤ò¶µ¤¨¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤ÈGC¤Ç¥È¥é¥Ö¥ë¤òµ¯¤³¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  void rb_global_variable(VALUE *var)</div><div class='del'>-</div><div class='del'>-(4) extconf.rb¤òÍÑ°Õ¤¹¤ë</div><div class='del'>-</div><div class='del'>-Makefile¤òºî¤ë¾ì¹ç¤Î¿÷·¿¤Ë¤Ê¤ëextconf.rb¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê</div><div class='del'>-¤Þ¤¹¡¥extconf.rb¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÉ¬Í×¤Ê¾ò·ï¤Î¥Á¥§¥Ã</div><div class='del'>-¥¯¤Ê¤É¤ò¹Ô¤¦¤³¤È¤¬ÌÜÅª¤Ç¤¹¡¥¤Þ¤º¡¤</div><div class='del'>-</div><div class='del'>-  require 'mkmf'</div><div class='del'>-</div><div class='del'>-¤òextconf.rb¤ÎÀèÆ¬¤ËÃÖ¤­¤Þ¤¹¡¥extconf.rb¤ÎÃæ¤Ç¤Ï°Ê²¼¤ÎRuby´Ø</div><div class='del'>-¿ô¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  have_library(lib, func): ¥é¥¤¥Ö¥é¥ê¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  have_func(func, header): ´Ø¿ô¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  have_header(header): ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  create_makefile(target): Makefile¤ÎÀ¸À®</div><div class='del'>-</div><div class='del'>-°Ê²¼¤ÎÊÑ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  $CFLAGS: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-O¤Ê¤É)</div><div class='del'>-  $CPPFLAGS: ¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-I¤ä-D¤Ê¤É)</div><div class='del'>-  $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-L¤Ê¤É)</div><div class='del'>-  $objs: ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ëÌ¾¤Î¥ê¥¹¥È</div><div class='del'>-</div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Ï¡¢ÄÌ¾ï¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·</div><div class='del'>-¤Æ¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤Þ¤¹¤¬¡¢make¤ÎÅÓÃæ¤Ç¥½¡¼¥¹¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê</div><div class='del'>-¾ì¹ç¤ÏÌÀ¼¨Åª¤Ë»ØÄê¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡£</div><div class='del'>-</div><div class='del'>-¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ò·ï¤¬Â·¤ï¤º¡¤¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó</div><div class='del'>-¥Ñ¥¤¥ë¤·¤Ê¤¤»þ¤Ë¤Ïcreate_makefile¤ò¸Æ¤Ð¤Ê¤±¤ì¤ÐMakefile¤ÏÀ¸</div><div class='del'>-À®¤µ¤ì¤º¡¤¥³¥ó¥Ñ¥¤¥ë¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-(5) depend¤òÍÑ°Õ¤¹¤ë</div><div class='del'>-</div><div class='del'>-¤â¤·¡¤¥Ç¥£¥ì¥¯¥È¥ê¤Ëdepend¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤</div><div class='del'>-Makefile¤¬°ÍÂ¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  % gcc -MM *.c &gt; depend</div><div class='del'>-</div><div class='del'>-¤Ê¤É¤Çºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤¢¤Ã¤ÆÂ»¤ÏÌµ¤¤¤Ç¤·¤ç¤¦¡¥</div><div class='del'>-</div><div class='del'>-(6) Makefile¤òÀ¸À®¤¹¤ë</div><div class='del'>-</div><div class='del'>-Makefile¤ò¼ÂºÝ¤ËÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï</div><div class='del'>-</div><div class='del'>-  ruby extconf.rb</div><div class='del'>-</div><div class='del'>-¤È¤·¤Þ¤¹¡¥extconf.rb¤Ë require 'mkmf' ¤Î¹Ô¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼</div><div class='del'>-¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¤°ú¿ô¤òÄÉ²Ã¤·¤Æ</div><div class='del'>-</div><div class='del'>-  ruby -r mkmf extconf.rb</div><div class='del'>-</div><div class='del'>-¤È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-¥Ç¥£¥ì¥¯¥È¥ê¤òext°Ê²¼¤ËÍÑ°Õ¤·¤¿¾ì¹ç¤Ë¤ÏRubyÁ´ÂÎ¤Îmake¤Î»þ¤Ë</div><div class='del'>-¼«Æ°Åª¤ËMakefile¤¬À¸À®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¤¤³¤Î¥¹¥Æ¥Ã¥×¤ÏÉÔÍ×¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-(7) make¤¹¤ë</div><div class='del'>-</div><div class='del'>-Æ°Åª¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¾ì¤Çmake¤·¤Æ¤¯¤À¤µ</div><div class='del'>-¤¤¡¥É¬Í×¤Ç¤¢¤ì¤Ð make install ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-ext°Ê²¼¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÍÑ°Õ¤·¤¿¾ì¹ç¤Ï¡¤Ruby¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç</div><div class='del'>-make¤ò¼Â¹Ô¤¹¤ë¤ÈMakefile¤òÀ¸À®¤«¤émake¡¤É¬Í×¤Ë¤è¤Ã¤Æ¤Ï¤½¤Î¥â</div><div class='del'>-¥¸¥å¡¼¥ë¤ÎRuby¤Ø¤Î¥ê¥ó¥¯¤Þ¤Ç¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Æ¤¯¤ì¤Þ¤¹¡¥</div><div class='del'>-extconf.rb¤ò½ñ¤­´¹¤¨¤ë¤Ê¤É¤·¤ÆMakefile¤ÎºÆÀ¸À®¤¬É¬Í×¤Ê»þ¤Ï¤Þ</div><div class='del'>-¤¿Ruby¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïmake install¤ÇRuby¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î</div><div class='del'>-²¼¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡¥¤â¤·³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤È¶¨Ä´¤·¤Æ»È¤¦Ruby¤Çµ­</div><div class='del'>-½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¤¢¤ê¡¤Ruby¥é¥¤¥Ö¥é¥ê¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤</div><div class='del'>-³ÈÄ¥¥é¥¤¥Ö¥é¥êÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë lib ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê</div><div class='del'>-¤òºî¤ê¡¤¤½¤³¤Ë ³ÈÄ¥»Ò .rb ¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤±¤ÐÆ±»þ¤Ë¥¤¥ó</div><div class='del'>-¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-(8) ¥Ç¥Ð¥Ã¥°</div><div class='del'>-</div><div class='del'>-¤Þ¤¢¡¤¥Ç¥Ð¥Ã¥°¤·¤Ê¤¤¤ÈÆ°¤«¤Ê¤¤¤Ç¤·¤ç¤¦¤Í¡¥ext/Setup¤Ë¥Ç¥£¥ì</div><div class='del'>-¥¯¥È¥êÌ¾¤ò½ñ¤¯¤ÈÀÅÅª¤Ë¥ê¥ó¥¯¤¹¤ë¤Î¤Ç¥Ç¥Ð¥Ã¥¬¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê</div><div class='del'>-¤ê¤Þ¤¹¡¥¤½¤ÎÊ¬¥³¥ó¥Ñ¥¤¥ë¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¤±¤É¡¥</div><div class='del'>-</div><div class='del'>-(9) ¤Ç¤­¤¢¤¬¤ê</div><div class='del'>-</div><div class='del'>-¸å¤Ï¤³¤Ã¤½¤ê»È¤¦¤Ê¤ê¡¤¹­¤¯¸ø³«¤¹¤ë¤Ê¤ê¡¤Çä¤ë¤Ê¤ê¡¤¤´¼«Í³¤Ë¤ª</div><div class='del'>-»È¤¤¤¯¤À¤µ¤¤¡¥Ruby¤Îºî¼Ô¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ°ìÀÚ¤Î¸¢Íø¤ò</div><div class='del'>-¼çÄ¥¤·¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-Appendix A. Ruby¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÊ¬Îà</div><div class='del'>-</div><div class='del'>-Ruby¤Î¥½¡¼¥¹¤Ï¤¤¤¯¤Ä¤«¤ËÊ¬Îà¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤³¤Î¤¦¤Á¥¯¥é</div><div class='del'>-¥¹¥é¥¤¥Ö¥é¥ê¤ÎÉôÊ¬¤Ï´ðËÜÅª¤Ë³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ÈÆ±¤¸ºî¤êÊý¤Ë¤Ê¤Ã</div><div class='del'>-¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤Î¥½¡¼¥¹¤Ïº£¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤Û¤È¤ó¤ÉÍý²ò¤Ç¤­¤ë¤È</div><div class='del'>-»×¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-Ruby¸À¸ì¤Î¥³¥¢</div><div class='del'>-</div><div class='del'>-  class.c</div><div class='del'>-  error.c</div><div class='del'>-  eval.c</div><div class='del'>-  gc.c</div><div class='del'>-  object.c</div><div class='del'>-  parse.y</div><div class='del'>-  variable.c</div><div class='del'>-</div><div class='del'>-¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô</div><div class='del'>-</div><div class='del'>-  dln.c</div><div class='del'>-  regex.c</div><div class='del'>-  st.c</div><div class='del'>-  util.c</div><div class='del'>-</div><div class='del'>-Ruby¥³¥Þ¥ó¥É¤Î¼ÂÁõ</div><div class='del'>-</div><div class='del'>-  dmyext.c</div><div class='del'>-  inits.c</div><div class='del'>-  main.c</div><div class='del'>-  ruby.c</div><div class='del'>-  version.c</div><div class='del'>-</div><div class='del'>-¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê</div><div class='del'>-</div><div class='del'>-  array.c</div><div class='del'>-  bignum.c</div><div class='del'>-  compar.c</div><div class='del'>-  dir.c</div><div class='del'>-  enum.c</div><div class='del'>-  file.c</div><div class='del'>-  hash.c</div><div class='del'>-  io.c</div><div class='del'>-  marshal.c</div><div class='del'>-  math.c</div><div class='del'>-  numeric.c</div><div class='del'>-  pack.c</div><div class='del'>-  prec.c</div><div class='del'>-  process.c</div><div class='del'>-  random.c</div><div class='del'>-  range.c</div><div class='del'>-  re.c</div><div class='del'>-  signal.c</div><div class='del'>-  sprintf.c</div><div class='del'>-  string.c</div><div class='del'>-  struct.c</div><div class='del'>-  time.c</div><div class='del'>-</div><div class='del'>-Appendix B. ³ÈÄ¥ÍÑ´Ø¿ô¥ê¥Õ¥¡¥ì¥ó¥¹</div><div class='del'>-</div><div class='del'>-C¸À¸ì¤«¤éRuby¤Îµ¡Ç½¤òÍøÍÑ¤¹¤ëAPI¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-** ·¿</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-</div><div class='del'>-  Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÉ½¸½¤¹¤ë·¿¡¥É¬Í×¤Ë±þ¤¸¤Æ¥­¥ã¥¹¥È¤·¤ÆÍÑ¤¤¤ë¡¥</div><div class='del'>-  ÁÈ¤ß¹þ¤ß·¿¤òÉ½¸½¤¹¤ëC¤Î·¿¤Ïruby.h¤Ëµ­½Ò¤·¤Æ¤¢¤ëR¤Ç»Ï¤Þ¤ë¹½Â¤</div><div class='del'>-  ÂÎ¤Ç¤¢¤ë¡¥VALUE·¿¤ò¤³¤ì¤é¤Ë¥­¥ã¥¹¥È¤¹¤ë¤¿¤á¤ËR¤Ç»Ï¤Þ¤ë¹½Â¤ÂÎ</div><div class='del'>-  Ì¾¤òÁ´¤ÆÂçÊ¸»ú¤Ë¤·¤¿Ì¾Á°¤Î¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡¥</div><div class='del'>-</div><div class='del'>-** ÊÑ¿ô¡¦Äê¿ô</div><div class='del'>-</div><div class='del'>-Qnil</div><div class='del'>-</div><div class='del'>-  Äê¿ô: nil¥ª¥Ö¥¸¥§¥¯¥È</div><div class='del'>-</div><div class='del'>-Qtrue</div><div class='del'>-</div><div class='del'>-  Äê¿ô: true¥ª¥Ö¥¸¥§¥¯¥È(¿¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ)</div><div class='del'>-</div><div class='del'>-Qfalse</div><div class='del'>-</div><div class='del'>-  Äê¿ô: false¥ª¥Ö¥¸¥§¥¯¥È</div><div class='del'>-</div><div class='del'>-** C¥Ç¡¼¥¿¤Î¥«¥×¥»¥ë²½</div><div class='del'>-</div><div class='del'>-Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)</div><div class='del'>-</div><div class='del'>-  C¤ÎÇ¤°Õ¤Î¥Ý¥¤¥ó¥¿¤ò¥«¥×¥»¥ë²½¤·¤¿Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡¥¤³</div><div class='del'>-  ¤Î¥Ý¥¤¥ó¥¿¤¬Ruby¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿»þ¡¤free¤Ç»ØÄê¤·¤¿</div><div class='del'>-  ´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¡¥¤Þ¤¿¡¤¤³¤Î¥Ý¥¤¥ó¥¿¤Î»Ø¤¹¥Ç¡¼¥¿¤¬Â¾¤ÎRuby¥ª¥Ö</div><div class='del'>-  ¥¸¥§¥¯¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¡¤mark¤Ë»ØÄê¤¹¤ë´Ø¿ô¤Ç¥Þ¡¼¥¯¤¹¤ëÉ¬Í×</div><div class='del'>-  ¤¬¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-Data_Make_Struct(klass, type, mark, free, sval)</div><div class='del'>-</div><div class='del'>-  type·¿¤Î¥á¥â¥ê¤òmalloc¤·¡¤ÊÑ¿ôsval¤ËÂåÆþ¤·¤¿¸å¡¤¤½¤ì¤ò¥«¥×¥»</div><div class='del'>-  ¥ë²½¤·¤¿¥Ç¡¼¥¿¤òÊÖ¤¹¥Þ¥¯¥í¡¥</div><div class='del'>-</div><div class='del'>-Data_Get_Struct(data, type, sval)</div><div class='del'>-</div><div class='del'>-  data¤«¤étype·¿¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤·ÊÑ¿ôsval¤ËÂåÆþ¤¹¤ë¥Þ¥¯¥í¡¥</div><div class='del'>-</div><div class='del'>-** ·¿¥Á¥§¥Ã¥¯</div><div class='del'>-</div><div class='del'>-TYPE(value)</div><div class='del'>-FIXNUM_P(value)</div><div class='del'>-NIL_P(value)</div><div class='del'>-void Check_Type(VALUE value, int type)</div><div class='del'>-void Check_SafeStr(VALUE value)</div><div class='del'>-</div><div class='del'>-** ·¿ÊÑ´¹</div><div class='del'>-</div><div class='del'>-FIX2INT(value)</div><div class='del'>-INT2FIX(i)</div><div class='del'>-NUM2INT(value)</div><div class='del'>-INT2NUM(i)</div><div class='del'>-NUM2DBL(value)</div><div class='del'>-rb_float_new(f)</div><div class='del'>-StringValue(value)</div><div class='del'>-StringValuePtr(value)</div><div class='del'>-StringValueCStr(value)</div><div class='del'>-rb_str_new2(s)</div><div class='del'>-</div><div class='del'>-** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='del'>-</div><div class='del'>-VALUE rb_define_class(const char *name, VALUE super)</div><div class='del'>-</div><div class='del'>-  super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)</div><div class='del'>-</div><div class='del'>-  super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤·¡¤module¤Î</div><div class='del'>-  Äê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_define_module(const char *name)</div><div class='del'>-</div><div class='del'>-  ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_define_module_under(VALUE module, const char *name)</div><div class='del'>-</div><div class='del'>-  ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-void rb_include_module(VALUE klass, VALUE module)</div><div class='del'>-</div><div class='del'>-  ¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡¥class¤¬¤¹¤Ç¤Ëmodule¤ò¥¤¥ó¥¯</div><div class='del'>-  ¥ë¡¼¥É¤·¤Æ¤¤¤ë»þ¤Ë¤Ï²¿¤â¤·¤Ê¤¤(Â¿½Å¥¤¥ó¥¯¥ë¡¼¥É¤Î¶Ø»ß)¡¥</div><div class='del'>-</div><div class='del'>-void rb_extend_object(VALUE object, VALUE module)</div><div class='del'>-</div><div class='del'>-  ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥â¥¸¥å¡¼¥ë(¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É)¤Ç³ÈÄ¥¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-** Âç°èÊÑ¿ôÄêµÁ</div><div class='del'>-</div><div class='del'>-void rb_define_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-  Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ôÌ¾¤¬`$'¤Ç</div><div class='del'>-  »Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤ë¡¥name¤È¤·¤ÆRuby¤Î¼±ÊÌ»Ò</div><div class='del'>-  ¤È¤·¤Æµö¤µ¤ì¤Ê¤¤Ê¸»ú(Îã¤¨¤Ð` ')¤ò´Þ¤à¾ì¹ç¤Ë¤ÏRuby¥×¥í¥°¥é</div><div class='del'>-  ¥à¤«¤é¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë¡¥</div><div class='del'>-</div><div class='del'>-void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-  Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-  read only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-void rb_define_virtual_variable(const char *name,</div><div class='del'>-				VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-  ´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿</div><div class='del'>-  »þ¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì</div><div class='del'>-  ¤ë¡¥</div><div class='del'>-</div><div class='del'>-void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='del'>-			       VALUE (*getter)(), void (*setter)())</div><div class='del'>-</div><div class='del'>-  ´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô</div><div class='del'>-  ¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï</div><div class='del'>-  setter¤¬¸Æ¤Ð¤ì¤ë¡¥getter¤äsetter¤Ë0¤ò»ØÄê¤·¤¿»þ¤Ë¤Ïhook¤ò</div><div class='del'>-  »ØÄê¤·¤Ê¤¤¤Î¤ÈÆ±¤¸»ö¤Ë¤Ê¤ë¡¥</div><div class='del'>-</div><div class='del'>-void rb_global_variable(VALUE *var)</div><div class='del'>-</div><div class='del'>-  GC¤Î¤¿¤á¡¤Ruby¥×¥í¥°¥é¥à¤«¤é¤Ï¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¤¬, Ruby¥ª¥Ö</div><div class='del'>-  ¥¸¥§¥¯¥È¤ò´Þ¤àÂç°èÊÑ¿ô¤ò¥Þ¡¼¥¯¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-** Äê¿ô</div><div class='del'>-</div><div class='del'>-void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-  Äê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-void rb_define_global_const(const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-  Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-     rb_define_const(rb_cObject, name, val)</div><div class='del'>-</div><div class='del'>-  ¤ÈÆ±¤¸°ÕÌ£¡¥</div><div class='del'>-</div><div class='del'>-** ¥á¥½¥Ã¥ÉÄêµÁ</div><div class='del'>-</div><div class='del'>-rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-  ¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥argc¤Ïself¤ò½ü¤¯°ú¿ô¤Î¿ô¡¥argc¤¬-1¤Î»þ, </div><div class='del'>-  ´Ø¿ô¤Ë¤Ï°ú¿ô¤Î¿ô(self¤ò´Þ¤Þ¤Ê¤¤)¤òÂè1°ú¿ô, °ú¿ô¤ÎÇÛÎó¤òÂè2</div><div class='del'>-  °ú¿ô¤È¤¹¤ë·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë(Âè3°ú¿ô¤Ïself)¡¥argc¤¬-2¤Î»þ, </div><div class='del'>-  Âè1°ú¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È</div><div class='del'>-  ¤¤¤¦·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥</div><div class='del'>- </div><div class='del'>-rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-  private¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='del'>-</div><div class='del'>-  ÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  argc, argv·Á¼°¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤òÊ¬²ò¤¹¤ë¡¥fmt¤ÏÉ¬¿Ü°ú¿ô¤Î¿ô, </div><div class='del'>-  ÉÕ²Ã°ú¿ô¤Î¿ô, »Ä¤ê¤Î°ú¿ô¤¬¤¢¤ë¤«¤ò»ØÄê¤¹¤ëÊ¸»úÎó¤Ç, "¿ô»ú</div><div class='del'>-  ¿ô»ú*"¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡¥ 2 ÈÖÌÜ¤Î¿ô»ú¤È"*"¤Ï¤½¤ì¤¾¤ì¾ÊÎ¬²Ä</div><div class='del'>-  Ç½¤Ç¤¢¤ë¡¥É¬¿Ü°ú¿ô¤¬°ì¤Ä¤â¤Ê¤¤¾ì¹ç¤Ï0¤ò»ØÄê¤¹¤ë¡¥Âè3°ú¿ô°Ê</div><div class='del'>-  ¹ß¤ÏÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç, ³ºÅö¤¹¤ëÍ×ÁÇ¤¬¤½¤ÎÊÑ¿ô¤Ë³ÊÇ¼¤µ¤ì¤ë¡¥</div><div class='del'>-  ÉÕ²Ã°ú¿ô¤ËÂÐ±þ¤¹¤ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏÊÑ¿ô¤ËQnil¤¬</div><div class='del'>-  ÂåÆþ¤µ¤ì¤ë¡¥</div><div class='del'>-</div><div class='del'>-** Ruby¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·</div><div class='del'>-</div><div class='del'>-VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)</div><div class='del'>-</div><div class='del'>-  ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥Ê¸»úÎó¤«¤émid¤òÆÀ¤ë¤¿¤á¤Ë¤Ïrb_intern()¤ò</div><div class='del'>-  »È¤¦¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='del'>-</div><div class='del'>-  ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥°ú¿ô¤òargc, argv·Á¼°¤ÇÅÏ¤¹¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_eval_string(const char *str)</div><div class='del'>-</div><div class='del'>-  Ê¸»úÎó¤òRuby¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-ID rb_intern(const char *name)</div><div class='del'>-</div><div class='del'>-  Ê¸»úÎó¤ËÂÐ±þ¤¹¤ëID¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-char *rb_id2name(ID id)</div><div class='del'>-</div><div class='del'>-  ID¤ËÂÐ±þ¤¹¤ëÊ¸»úÎó¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥</div><div class='del'>-</div><div class='del'>-char *rb_class2name(VALUE klass)</div><div class='del'>-</div><div class='del'>-  ¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥¥¯¥é¥¹¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë¤Ï, </div><div class='del'>-  ÁÄÀè¤òÁÌ¤Ã¤ÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-int rb_respond_to(VALUE obj, ID id)</div><div class='del'>-</div><div class='del'>-  obj¤¬id¤Ç¼¨¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò»ý¤Ä¤«¤É¤¦¤«¤òÊÖ¤¹¡£</div><div class='del'>-</div><div class='del'>-** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô</div><div class='del'>-</div><div class='del'>-VALUE rb_iv_get(VALUE obj, const char *name)</div><div class='del'>-</div><div class='del'>-  obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÎÃÍ¤òÆÀ¤ë¡¥`@'¤Ç»Ï¤Þ¤é¤Ê¤¤¥¤¥ó¥¹¥¿¥ó</div><div class='del'>-  ¥¹ÊÑ¿ô¤Ï Ruby¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡Ö±£¤ì¤¿¡×¥¤¥ó</div><div class='del'>-  ¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ë¤Ê¤ë¡¥Äê¿ô¤ÏÂçÊ¸»ú¤ÎÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹(¤Þ¤¿¤Ï</div><div class='del'>-  ¥â¥¸¥å¡¼¥ë)¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-  obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òval¤Ë¥»¥Ã¥È¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-** À©¸æ¹½Â¤</div><div class='del'>-</div><div class='del'>-VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='del'>-</div><div class='del'>-  func2¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄê¤·, func1¤ò¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ö¡¥ </div><div class='del'>-  func1¤Ë¤Ï arg1¤¬°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì, func2¤Ë¤ÏÂè1°ú¿ô¤Ë¥¤¥Æ¥ì¡¼</div><div class='del'>-  ¥¿¤«¤éÍ¿¤¨¤é¤ì¤¿ÃÍ, Âè2°ú¿ô¤Ëarg2¤¬ÅÏ¤µ¤ì¤ë¡¥</div><div class='del'>- </div><div class='del'>-VALUE rb_yield(VALUE val)</div><div class='del'>-</div><div class='del'>-  val¤òÃÍ¤È¤·¤Æ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¸Æ¤Ó½Ð¤¹¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='del'>-</div><div class='del'>-  ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤Ë¸Æ¤Ó½Ð¤¹¡¥func1¤Î¼Â¹ÔÃæ¤ËÎã³°¤¬È¯À¸</div><div class='del'>-  ¤·¤¿»þ¤Ë¤Ï func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ö¡¥Ìá¤êÃÍ¤ÏÎã³°¤¬È¯À¸</div><div class='del'>-  ¤·¤Ê¤«¤Ã¤¿»þ¤Ïfunc1¤ÎÌá¤êÃÍ, Îã³°¤¬È¯À¸¤·¤¿»þ¤Ë¤Ïfunc2¤ÎÌá</div><div class='del'>-  ¤êÃÍ¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, void (*func2)(), VALUE arg2)</div><div class='del'>-</div><div class='del'>-  ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, ¼Â¹Ô½ªÎ»¸å(¤¿¤È¤¨Îã³°¤¬</div><div class='del'>-  È¯À¸¤·¤Æ¤â) func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤¹¤ë¡¥Ìá¤êÃÍ¤Ïfunc1</div><div class='del'>-  ¤ÎÌá¤êÃÍ¤Ç¤¢¤ë(Îã³°¤¬È¯À¸¤·¤¿»þ¤ÏÌá¤é¤Ê¤¤)¡¥</div><div class='del'>-</div><div class='del'>-** Îã³°¡¦¥¨¥é¡¼</div><div class='del'>-</div><div class='del'>-void rb_warning(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  rb_verbose»þ¤ËÉ¸½à¥¨¥é¡¼½ÐÎÏ¤Ë·Ù¹ð¾ðÊó¤òÉ½¼¨¤¹¤ë¡¥°ú¿ô¤Ï</div><div class='del'>-  printf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-void rb_raise(rb_eRuntimeError, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  RuntimeErrorÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-void rb_raise(VALUE exception, const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  exception¤Ç»ØÄê¤·¤¿Îã³°¤òÈ¯À¸¤µ¤»¤ë¡¥fmt°Ê²¼¤Î°ú¿ô¤Ï</div><div class='del'>-  printf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>-void rb_fatal(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  Ã×Ì¿ÅªÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥ÄÌ¾ï¤ÎÎã³°½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º, ¥¤¥ó¥¿¡¼</div><div class='del'>-  ¥×¥ê¥¿¤¬½ªÎ»¤¹¤ë(¤¿¤À¤·ensure¤Ç»ØÄê¤µ¤ì¤¿¥³¡¼¥É¤Ï½ªÎ»Á°¤Ë</div><div class='del'>-  ¼Â¹Ô¤µ¤ì¤ë)¡¥</div><div class='del'>-</div><div class='del'>-void rb_bug(const char *fmt, ...)</div><div class='del'>-</div><div class='del'>-  ¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ê¤É¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Ç¤·¤«È¯À¸¤¹¤ë¤Ï¤º¤Î¤Ê¤¤</div><div class='del'>-  ¾õ¶·¤Î»þ¸Æ¤Ö¡¥¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥³¥¢¥À¥ó¥×¤·Ä¾¤Á¤Ë½ªÎ»¤¹¤ë¡¥</div><div class='del'>-  Îã³°½èÍý¤Ï°ìÀÚ¹Ô¤Ê¤ï¤ì¤Ê¤¤¡¥</div><div class='del'>-</div><div class='del'>-** Ruby¤Î½é´ü²½¡¦¼Â¹Ô</div><div class='del'>-</div><div class='del'>-Ruby¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹</div><div class='del'>-¤ò»È¤¦¡¥ÄÌ¾ï¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë¤ÏÉ¬Í×¤Ê¤¤¡¥</div><div class='del'>-</div><div class='del'>-void ruby_init()</div><div class='del'>-</div><div class='del'>-  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î½é´ü²½¤ò¹Ô¤Ê¤¦¡¥</div><div class='del'>-</div><div class='del'>-void ruby_options(int argc, char **argv)</div><div class='del'>-</div><div class='del'>-  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½èÍý¤ò¹Ô¤Ê¤¦¡¥</div><div class='del'>-</div><div class='del'>-void ruby_run()</div><div class='del'>-</div><div class='del'>-  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-void ruby_script(char *name)</div><div class='del'>-</div><div class='del'>-  Ruby¤Î¥¹¥¯¥ê¥×¥ÈÌ¾($0)¤òÀßÄê¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-Appendix C. extconf.rb¤Ç»È¤¨¤ë´Ø¿ô¤¿¤Á</div><div class='del'>-</div><div class='del'>-extconf.rb¤ÎÃæ¤Ç¤ÏÍøÍÑ²ÄÇ½¤Ê¥³¥ó¥Ñ¥¤¥ë¾ò·ï¥Á¥§¥Ã¥¯¤Î´Ø¿ô¤Ï°Ê</div><div class='del'>-²¼¤ÎÄÌ¤ê¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-have_macro(macro, headers)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¥Þ¥¯¥ímacro¤¬ÄêµÁ¤µ</div><div class='del'>-  ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue</div><div class='del'>-  ¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_library(lib, func)</div><div class='del'>-</div><div class='del'>-  ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥</div><div class='del'>-  ¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-find_library(lib, func, path...)</div><div class='del'>-</div><div class='del'>-  ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤ÎÂ¸ºß¤ò -Lpath ¤òÄÉ²Ã</div><div class='del'>-  ¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥é¥¤¥Ö¥é¥ê¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_func(func, header)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ´Ø¿ôfunc¤ÎÂ¸ºß¤ò¥Á¥§¥Ã</div><div class='del'>-  ¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢</div><div class='del'>-  ¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯</div><div class='del'>-  »ö¡¥´Ø¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_var(var, header)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤ÆÊÑ¿ôvar¤ÎÂ¸ºß¤ò¥Á¥§¥Ã</div><div class='del'>-  ¥¯¤¹¤ë¡¥var¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢</div><div class='del'>-  ¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯</div><div class='del'>-  »ö¡¥ÊÑ¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_header(header)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹</div><div class='del'>-  ¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-find_header(header, path...)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ÎÂ¸ºß¤ò -Ipath ¤òÄÉ²Ã¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯</div><div class='del'>-  ¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_struct_member(type, member, header)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤Ë¥á¥ó¥Ðmember</div><div class='del'>-  ¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤member¤ò</div><div class='del'>-  »ý¤Ä¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-have_type(type, header, opt)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤¬Â¸ºß¤¹¤ë¤«¤ò</div><div class='del'>-  ¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-check_sizeof(type, header)</div><div class='del'>-</div><div class='del'>-  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤ÎcharÃ±°Ì¥µ¥¤</div><div class='del'>-  ¥º¤òÄ´¤Ù¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þ¤½¤Î¥µ¥¤¥º¤òÊÖ¤¹¡¥ÄêµÁ¤µ</div><div class='del'>-  ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ïnil¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-create_makefile(target)</div><div class='del'>-</div><div class='del'>-  ³ÈÄ¥¥é¥¤¥Ö¥é¥êÍÑ¤ÎMakefile¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤ò¸Æ¤Ð¤Ê¤±¤ì</div><div class='del'>-  ¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¡¥target¤Ï¥â¥¸¥å¡¼¥ëÌ¾</div><div class='del'>-  ¤òÉ½¤¹¡¥</div><div class='del'>-</div><div class='del'>-find_executable(command, path)</div><div class='del'>-</div><div class='del'>-  ¥³¥Þ¥ó¥Écommand¤òFile::PATH_SEPARATOR¤Ç¶èÀÚ¤é¤ì¤¿¥Ñ¥¹Ì¾¤Î</div><div class='del'>-  ¥ê¥¹¥Èpath¤«¤éÃµ¤¹¡¥path¤¬nil¤Þ¤¿¤Ï¾ÊÎ¬¤µ¤ì¤¿¾ì¹ç¤Ï¡¤´Ä¶­</div><div class='del'>-  ÊÑ¿ôPATH¤ÎÃÍ¤ò»ÈÍÑ¤¹¤ë¡¥¼Â¹Ô²ÄÇ½¤Ê¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç</div><div class='del'>-  ¤Ï¥Ñ¥¹¤ò´Þ¤à¥Õ¥¡¥¤¥ëÌ¾¡¤¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ïnil¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-with_config(withval[, default=nil])</div><div class='del'>-</div><div class='del'>-  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-&lt;withval&gt;¤Ç»ØÄê¤µ¤ì¤¿¥ª¥×¥·¥ç¥óÃÍ¤òÆÀ¤ë¡¥</div><div class='del'>-</div><div class='del'>-enable_config(config, *defaults)</div><div class='del'>-disable_config(config, *defaults)</div><div class='del'>-</div><div class='del'>-  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--enable-&lt;config&gt;¤Þ¤¿¤Ï</div><div class='del'>-  --disable-&lt;config&gt;¤Ç»ØÄê¤µ¤ì¤¿¿¿µ¶ÃÍ¤òÆÀ¤ë¡¥</div><div class='del'>-  --enable-&lt;config&gt;¤¬»ØÄê¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïtrue¡¤</div><div class='del'>-  --disable-&lt;config&gt;¤¬»ØÄê¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡¥</div><div class='del'>-  ¤É¤Á¤é¤â»ØÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤¥Ö¥í¥Ã¥¯¤Ä¤­¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï</div><div class='del'>-  *defaults¤òyield¤·¤¿·ë²Ì¡¤¥Ö¥í¥Ã¥¯¤Ê¤·¤Ê¤é*defaults¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-dir_config(target[, default_dir])</div><div class='del'>-dir_config(target[, default_include, default_lib])</div><div class='del'>-</div><div class='del'>-  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-&lt;target&gt;-dir, --with-&lt;target&gt;-include,</div><div class='del'>-  --with-&lt;target&gt;-lib¤Î¤¤¤º¤ì¤«¤Ç»ØÄê¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò</div><div class='del'>-  $CFLAGS ¤ä $LDFLAGS ¤ËÄÉ²Ã¤¹¤ë¡¥--with-&lt;target&gt;-dir=/path¤Ï</div><div class='del'>-  --with-&lt;target&gt;-include=/path/include --with-&lt;target&gt;-lib=/path/lib</div><div class='del'>-  ¤ÈÅù²Á¤Ç¤¢¤ë¡¥ÄÉ²Ã¤µ¤ì¤¿ include ¥Ç¥£¥ì¥¯¥È¥ê¤È lib ¥Ç¥£¥ì¥¯¥È¥ê¤Î</div><div class='del'>-  ÇÛÎó¤òÊÖ¤¹¡¥ ([include_dir, lib_dir])</div><div class='del'>-</div><div class='del'>-pkg_config(pkg)</div><div class='del'>-</div><div class='del'>-  pkg-config¥³¥Þ¥ó¥É¤«¤é¥Ñ¥Ã¥±¡¼¥¸pkg¤Î¾ðÊó¤òÆÀ¤ë¡¥ </div><div class='del'>-  pkg-config¤Î¼ÂºÝ¤Î¥³¥Þ¥ó¥ÉÌ¾¤Ï¡¤--with-pkg-config¥³¥Þ¥ó¥É</div><div class='del'>-  ¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç»ØÄê²ÄÇ½¡¥</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Local variables:</div><div class='del'>- * fill-column: 60</div><div class='del'>- * end:</div><div class='del'>- */</div><div class='add'>+doc/extension.ja.rdocã«ç§»å‹•ã—ã¾ã—ãŸ</div><div class='head'>diff --git a/README.ja b/README.ja<br/>deleted file mode 100644<br/>index df8cfc03f4..0000000000<br/>--- a/<a href='/ruby.git/tree/README.ja?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>README.ja</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,160 +0,0 @@</div><div class='del'>-* Ruby¤È¤Ï</div><div class='del'>-</div><div class='del'>-Ruby¤Ï¥·¥ó¥×¥ë¤«¤Ä¶¯ÎÏ¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç¤¹¡¥</div><div class='del'>-Ruby¤ÏºÇ½é¤«¤é½ã¿è¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤È¤·¤ÆÀß·×¤µ¤ì¤Æ¤¤¤Þ</div><div class='del'>-¤¹¤«¤é¡¤¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦»ö¤¬½ÐÍè¤Þ</div><div class='del'>-¤¹¡¥¤â¤Á¤í¤óÄÌ¾ï¤Î¼êÂ³¤­·¿¤Î¥×¥í¥°¥é¥ß¥ó¥°¤â²ÄÇ½¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-Ruby¤Ï¥Æ¥­¥¹¥È½èÍý´Ø·¸¤ÎÇ½ÎÏ¤Ê¤É¤ËÍ¥¤ì¡¤Perl¤ÈÆ±¤¸¤¯¤é¤¤¶¯ÎÏ</div><div class='del'>-¤Ç¤¹¡¥¤µ¤é¤Ë¥·¥ó¥×¥ë¤ÊÊ¸Ë¡¤È¡¤Îã³°½èÍý¤ä¥¤¥Æ¥ì¡¼¥¿¤Ê¤É¤Îµ¡¹½</div><div class='del'>-¤Ë¤è¤Ã¤Æ¡¤¤è¤êÊ¬¤«¤ê¤ä¤¹¤¤¥×¥í¥°¥é¥ß¥ó¥°¤¬½ÐÍè¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Ruby¤ÎÆÃÄ¹</div><div class='del'>-</div><div class='del'>-  + ¥·¥ó¥×¥ë¤ÊÊ¸Ë¡</div><div class='del'>-  + ÉáÄÌ¤Î¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(¥¯¥é¥¹¡¤¥á¥½¥Ã¥É¥³¡¼¥ë¤Ê¤É)</div><div class='del'>-  + ÆÃ¼ì¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(Mixin, ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É)</div><div class='del'>-  + ±é»»»Ò¥ª¡¼¥Ð¡¼¥í¡¼¥É</div><div class='del'>-  + Îã³°½èÍýµ¡Ç½</div><div class='del'>-  + ¥¤¥Æ¥ì¡¼¥¿¤È¥¯¥í¡¼¥¸¥ã</div><div class='del'>-  + ¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿</div><div class='del'>-  + ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥° (¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤ë)</div><div class='del'>-  + °Ü¿¢À­¤¬¹â¤¤¡¥Â¿¤¯¤ÎUNIX¾å¤ÇÆ°¤¯¤À¤±¤Ç¤Ê¤¯¡¤DOS¤äWindows¡¤</div><div class='del'>-    Mac¡¤BeOS¤Ê¤É¤Î¾å¤Ç¤âÆ°¤¯</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Æþ¼êË¡</div><div class='del'>-</div><div class='del'>-** FTP¤Ç</div><div class='del'>-</div><div class='del'>-°Ê²¼¤Î¾ì½ê¤Ë¤ª¤¤¤Æ¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  ftp://ftp.ruby-lang.org/pub/ruby/</div><div class='del'>-</div><div class='del'>-** Subversion¤Ç</div><div class='del'>-</div><div class='del'>-ËÜ¥Ö¥é¥ó¥Á¤ÎRuby¤ÎºÇ¿·¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6/</div><div class='del'>-</div><div class='del'>-³«È¯ÀèÃ¼¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='del'>-</div><div class='del'>-Â¾¤Ë³«È¯Ãæ¤Î¥Ö¥é¥ó¥Á¤Î°ìÍ÷¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¸«¤é¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* ¥Û¡¼¥à¥Ú¡¼¥¸</div><div class='del'>-</div><div class='del'>-Ruby¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤ÎURL¤Ï</div><div class='del'>-</div><div class='del'>-   http://www.ruby-lang.org/</div><div class='del'>-</div><div class='del'>-¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È</div><div class='del'>-</div><div class='del'>-Ruby¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤¹¡£»²²Ã´õË¾¤ÎÊý¤Ï</div><div class='del'>-</div><div class='del'>-   ruby-list-ctl@ruby-lang.org</div><div class='del'>-</div><div class='del'>-¤Þ¤ÇËÜÊ¸¤Ë</div><div class='del'>-</div><div class='del'>-   subscribe YourFirstName YourFamilyName</div><div class='del'>-   </div><div class='del'>-¤È½ñ¤¤¤ÆÁ÷¤Ã¤Æ²¼¤µ¤¤¡£ </div><div class='del'>-</div><div class='del'>-Ruby³«È¯¼Ô¸þ¤±¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ç¤Ïruby¤Î¥Ð</div><div class='del'>-¥°¡¢¾­Íè¤Î»ÅÍÍ³ÈÄ¥¤Ê¤É¼ÂÁõ¾å¤ÎÌäÂê¤Ë¤Ä¤¤¤ÆµÄÏÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£</div><div class='del'>-»²²Ã´õË¾¤ÎÊý¤Ï</div><div class='del'>-</div><div class='del'>-   ruby-dev-ctl@ruby-lang.org</div><div class='del'>-</div><div class='del'>-¤Þ¤Çruby-list¤ÈÆ±ÍÍ¤ÎÊýË¡¤Ç¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ </div><div class='del'>-</div><div class='del'>-Ruby³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë¤Ä¤¤¤ÆÏÃ¤·¹ç¤¦ruby-ext¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤È</div><div class='del'>-¿ô³Ø´Ø·¸¤ÎÏÃÂê¤Ë¤Ä¤¤¤ÆÏÃ¤·¹ç¤¦ruby-math¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤È</div><div class='del'>-±Ñ¸ì¤ÇÏÃ¤·¹ç¤¦ruby-talk¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£»²²ÃÊýË¡</div><div class='del'>-¤Ï¤É¤ì¤âÆ±¤¸¤Ç¤¹¡£ </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* ¥³¥ó¥Ñ¥¤¥ë¡¦¥¤¥ó¥¹¥È¡¼¥ë</div><div class='del'>-</div><div class='del'>-°Ê²¼¤Î¼ê½ç¤Ç¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-  1. ¤â¤·configure¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¤¡¢¤â¤·¤¯¤Ï</div><div class='del'>-     configure.in¤è¤ê¸Å¤¤¤è¤¦¤Ê¤é¡¢autoconf¤ò¼Â¹Ô¤·¤Æ</div><div class='del'>-     ¿·¤·¤¯configure¤òÀ¸À®¤¹¤ë</div><div class='del'>-</div><div class='del'>-  2. configure¤ò¼Â¹Ô¤·¤ÆMakefile¤Ê¤É¤òÀ¸À®¤¹¤ë</div><div class='del'>-</div><div class='del'>-  3. (É¬Í×¤Ê¤é¤Ð)defines.h¤òÊÔ½¸¤¹¤ë</div><div class='del'>-</div><div class='del'>-     Â¿Ê¬¡¤É¬Í×Ìµ¤¤¤È»×¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  4. (É¬Í×¤Ê¤é¤Ð)ext/Setup¤ËÀÅÅª¤Ë¥ê¥ó¥¯¤¹¤ë³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ò</div><div class='del'>-     »ØÄê¤¹¤ë</div><div class='del'>-</div><div class='del'>-     ext/Setup¤Ëµ­½Ò¤·¤¿¥â¥¸¥å¡¼¥ë¤ÏÀÅÅª¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-     ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥¢¡¼¥­¥Æ¥¯</div><div class='del'>-     ¥Á¥ã¤Ç¤ÏSetup¤Î1¹ÔÌÜ¤Î¡Öoption nodynamic¡×¤È¤¤¤¦¹Ô¤Î¥³</div><div class='del'>-     ¥á¥ó¥È¤ò³°¤¹É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤Þ¤¿¡¤¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç</div><div class='del'>-     ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤òÍøÍÑ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤¤¢¤é¤«¤¸¤áÀÅÅª¤Ë¥ê¥ó</div><div class='del'>-     ¥¯¤·¤Æ¤ª¤¯É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  5. make¤ò¼Â¹Ô¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë</div><div class='del'>-</div><div class='del'>-  6. make test¤Ç¥Æ¥¹¥È¤ò¹Ô¤¦¡¥</div><div class='del'>-</div><div class='del'>-     ¡Ötest succeeded¡×¤ÈÉ½¼¨¤µ¤ì¤ì¤ÐÀ®¸ù¤Ç¤¹¡¥¤¿¤À¤·¥Æ¥¹¥È</div><div class='del'>-     ¤ËÀ®¸ù¤·¤Æ¤â´°àú¤À¤ÈÊÝ¾Ú¤µ¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-  7. make install</div><div class='del'>-</div><div class='del'>-     root¤Çºî¶È¤¹¤ëÉ¬Í×¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-¤â¤·¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Î¥í¥°¤È¥Þ</div><div class='del'>-¥·¥ó¡¤OS¤Î¼ïÎà¤ò´Þ¤à¤Ç¤­¤ë¤À¤±¾Ü¤·¤¤¥ì¥Ý¡¼¥È¤òºî¼Ô¤ËÁ÷¤Ã¤Æ¤¯</div><div class='del'>-¤À¤µ¤ë¤ÈÂ¾¤ÎÊý¤Î¤¿¤á¤Ë¤â¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* °Ü¿¢</div><div class='del'>-</div><div class='del'>-UNIX¤Ç¤¢¤ì¤Ðconfigure¤¬¤Û¤È¤ó¤É¤Îº¹°Û¤òµÛ¼ý¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç</div><div class='del'>-¤¹¤¬¡¤»×¤ï¤Ì¸«Íî¤È¤·¤¬¤¢¤Ã¤¿¾ì¹ç(¤¢¤ë¤Ë°ã¤¤¤Ê¤¤)¡¤ºî¼Ô¤Ë¤½¤Î</div><div class='del'>-¤³¤È¤ò¥ì¥Ý¡¼¥È¤¹¤ì¤Ð¡¤²ò·è¤Ç¤­¤ë¤«¤âÃÎ¤ì¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤â¤Ã¤È¤â°ÍÂ¸¤¹¤ë¤Î¤ÏGCÉô¤Ç¤¹¡¥Ruby¤ÎGC¤ÏÂÐ¾Ý</div><div class='del'>-¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬setjmp()¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î¥ì¥¸¥¹¥¿¤ò jmp_buf¤Ë</div><div class='del'>-³ÊÇ¼¤¹¤ë¤³¤È¤È¡¤jmp_buf¤È¥¹¥¿¥Ã¥¯¤¬32bit¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ</div><div class='del'>-¤¤¤ë¤³¤È¤ò²¾Äê¤·¤Æ¤¤¤Þ¤¹¡¥ÆÃ¤ËÁ°¼Ô¤¬À®Î©¤·¤Ê¤¤¾ì¹ç¤ÎÂÐ±þ¤ÏÈó</div><div class='del'>-¾ï¤Ëº¤Æñ¤Ç¤·¤ç¤¦¡¥¸å¼Ô¤Î²ò·è¤ÏÈæ³ÓÅª´ÊÃ±¤Ç¡¤gc.c¤Ç¥¹¥¿¥Ã¥¯¤ò</div><div class='del'>-¥Þ¡¼¥¯¤·¤Æ¤¤¤ëÉôÊ¬¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¤À¤±¤º¤é¤·¤Æ¥Þ¡¼</div><div class='del'>-¥¯¤¹¤ë¥³¡¼¥É¤òÄÉ²Ã¤¹¤ë¤À¤±¤ÇºÑ¤ß¤Þ¤¹¡¥¡Ödefined(THINK_C)¡×¤Ç</div><div class='del'>-³ç¤é¤ì¤Æ¤¤¤ëÉôÊ¬¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤</div><div class='del'>-</div><div class='del'>-# ¼ÂºÝ¤Ë¤ÏRuby¤ÏThink C¤Ç¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò»ý¤ÄCPU¤Ç¤Ï¡¤¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò¥¹¥¿¥Ã</div><div class='del'>-¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÄÉ²Ã¤¹¤ëÉ¬Í×¤¬¤¢¤ë¤«¤âÃÎ</div><div class='del'>-¤ì¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* ÇÛÉÛ¾ò·ï</div><div class='del'>-</div><div class='del'>-COPYING.ja¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* Ãø¼Ô</div><div class='del'>-</div><div class='del'>-¥³¥á¥ó¥È¡¤¥Ð¥°¥ì¥Ý¡¼¥È¤½¤ÎÂ¾¤Ï matz@netlab.jp ¤Þ¤Ç¡¥</div><div class='del'>--------------------------------------------------------</div><div class='del'>-created at: Thu Aug  3 11:57:36 JST 1995</div><div class='del'>-Local variables:</div><div class='del'>-mode: indented-text</div><div class='del'>-end:</div><div class='head'>diff --git a/README.ja.md b/README.ja.md<br/>new file mode 100644<br/>index 0000000000..2902216f99<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/README.ja.md?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>README.ja.md</a></div><div class='hunk'>@@ -0,0 +1,171 @@</div><div class='add'>+# Rubyã¨ã¯</div><div class='add'>+</div><div class='add'>+Rubyã¯ã‚·ãƒ³ãƒ—ãƒ«ã‹ã¤å¼·åŠ›ãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘ã‚¹ã‚¯ãƒªãƒ—ãƒˆè¨€èªžã§ã™ï¼Ž Rubyã¯ç´”ç²‹ãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘è¨€èªžã¨ã—ã¦è¨­è¨ˆã•ã‚Œã¦ã„ã‚‹ã®ã§ï¼Œ</div><div class='add'>+ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘ãƒ—ãƒ­ã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚’æ‰‹è»½ã«è¡Œã†äº‹ãŒå‡ºæ¥ã¾ã™ï¼Žã‚‚ã¡ã‚ã‚“æ™®é€šã®æ‰‹ç¶šãåž‹ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚‚å¯èƒ½ã§ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Rubyã¯ãƒ†ã‚­ã‚¹ãƒˆå‡¦ç†é–¢ä¿‚ã®èƒ½åŠ›ãªã©ã«å„ªã‚Œï¼ŒPerlã¨åŒã˜ãã‚‰ã„å¼·åŠ›ã§ã™ï¼Žã•ã‚‰ã«ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•ã¨ï¼Œ</div><div class='add'>+ä¾‹å¤–å‡¦ç†ã‚„ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãªã©ã®æ©Ÿæ§‹ã«ã‚ˆã£ã¦ï¼Œã‚ˆã‚Šåˆ†ã‹ã‚Šã‚„ã™ã„ãƒ—ãƒ­ã‚°ãƒ©ãƒŸãƒ³ã‚°ãŒå‡ºæ¥ã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+## Rubyã®ç‰¹é•·</div><div class='add'>+</div><div class='add'>+*   ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•</div><div class='add'>+*   æ™®é€šã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(ã‚¯ãƒ©ã‚¹ï¼Œãƒ¡ã‚½ãƒƒãƒ‰ã‚³ãƒ¼ãƒ«ãªã©)</div><div class='add'>+*   ç‰¹æ®Šãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(Mixin, ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãªã©)</div><div class='add'>+*   æ¼”ç®—å­ã‚ªãƒ¼ãƒãƒ¼ãƒ­ãƒ¼ãƒ‰</div><div class='add'>+*   ä¾‹å¤–å‡¦ç†æ©Ÿèƒ½</div><div class='add'>+*   ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã‚¯ãƒ­ãƒ¼ã‚¸ãƒ£</div><div class='add'>+*   ã‚¬ãƒ¼ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿</div><div class='add'>+*   ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚° (ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã«ã‚ˆã‚‹)</div><div class='add'>+*   ç§»æ¤æ€§ãŒé«˜ã„ï¼Žå¤šãã®Unix-like/POSIXäº’æ›ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ä¸Šã§å‹•ãã ã‘ã§ãªãï¼ŒWindowsï¼Œ Mac OS</div><div class='add'>+    Xï¼ŒHaikuãªã©ã®ä¸Šã§ã‚‚å‹•ã cf.</div><div class='add'>+    https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## å…¥æ‰‹æ³•</div><div class='add'>+</div><div class='add'>+### FTPã§</div><div class='add'>+</div><div class='add'>+ä»¥ä¸‹ã®å ´æ‰€ã«ãŠã„ã¦ã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+ftp://ftp.ruby-lang.org/pub/ruby/</div><div class='add'>+</div><div class='add'>+### Subversionã§</div><div class='add'>+</div><div class='add'>+é–‹ç™ºå…ˆç«¯ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    $ svn co https://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='add'>+</div><div class='add'>+ä»–ã«é–‹ç™ºä¸­ã®ãƒ–ãƒ©ãƒ³ãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/</div><div class='add'>+</div><div class='add'>+### Gitã§</div><div class='add'>+</div><div class='add'>+Subversionã®ãƒŸãƒ©ãƒ¼ã‚’GitHubã«å…¬é–‹ã—ã¦ã„ã¾ã™ï¼Ž ä»¥ä¸‹ã®ã‚³ãƒžãƒ³ãƒ‰ã§ãƒªãƒã‚¸ãƒˆãƒªã‚’å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    $ git clone git://github.com/ruby/ruby.git</div><div class='add'>+</div><div class='add'>+## ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸</div><div class='add'>+</div><div class='add'>+Rubyã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®URLã¯</div><div class='add'>+</div><div class='add'>+https://www.ruby-lang.org/</div><div class='add'>+</div><div class='add'>+ã§ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+## ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆ</div><div class='add'>+</div><div class='add'>+Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯</div><div class='add'>+</div><div class='add'>+mailto:ruby-list-request@ruby-lang.org</div><div class='add'>+</div><div class='add'>+ã¾ã§æœ¬æ–‡ã«</div><div class='add'>+</div><div class='add'>+    subscribe</div><div class='add'>+</div><div class='add'>+ã¨æ›¸ã„ã¦é€ã£ã¦ä¸‹ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Rubyé–‹ç™ºè€…å‘ã‘ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚‚ã‚ã‚Šã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•æ§˜æ‹¡å¼µãªã©å®Ÿè£…ä¸Šã®å•é¡Œã«ã¤ã„ã¦è­°è«–ã•ã‚Œã¦ã„ã¾ã™ï¼Ž å‚åŠ å¸Œæœ›ã®æ–¹ã¯</div><div class='add'>+</div><div class='add'>+mailto:ruby-dev-request@ruby-lang.org</div><div class='add'>+</div><div class='add'>+ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Rubyæ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã¤ã„ã¦è©±ã—åˆã†ruby-extãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨æ•°å­¦é–¢ä¿‚ã®è©±é¡Œã«ã¤ã„ã¦è©±ã—åˆã†ruby-mathãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨</div><div class='add'>+è‹±èªžã§rubyã«ã¤ã„ã¦è©±ã—åˆã†ruby-talkãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚‚ã‚ã‚Šã¾ã™ï¼Žå‚åŠ æ–¹æ³•ã¯ã©ã‚Œã‚‚åŒã˜ã§ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+## ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ãƒ»ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«</div><div class='add'>+</div><div class='add'>+ä»¥ä¸‹ã®æ‰‹é †ã§è¡Œã£ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+1.  ã‚‚ã— `configure` ãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚‰ãªã„ï¼Œã‚‚ã—ãã¯ `configure.ac` ã‚ˆã‚Šå¤ã„ã‚ˆã†ãªã‚‰ï¼Œ `autoconf` ã‚’å®Ÿè¡Œã—ã¦</div><div class='add'>+    æ–°ã—ã `configure` ã‚’ç”Ÿæˆã™ã‚‹</div><div class='add'>+</div><div class='add'>+2.  `configure` ã‚’å®Ÿè¡Œã—ã¦ `Makefile` ãªã©ã‚’ç”Ÿæˆã™ã‚‹</div><div class='add'>+</div><div class='add'>+    ç’°å¢ƒã«ã‚ˆã£ã¦ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®Cã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ç”¨ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒä»˜ãã¾ã™ï¼Ž `configure` ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§ `optflags=..`</div><div class='add'>+    `warnflags=..` ç­‰ã§ä¸Šæ›¸ãã§ãã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+3.  (å¿…è¦ãªã‚‰ã°)`defines.h` ã‚’ç·¨é›†ã™ã‚‹</div><div class='add'>+</div><div class='add'>+    å¤šåˆ†ï¼Œå¿…è¦ç„¡ã„ã¨æ€ã„ã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+4.  (å¿…è¦ãªã‚‰ã°)`ext/Setup` ã«é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æŒ‡å®šã™ã‚‹</div><div class='add'>+</div><div class='add'>+    `ext/Setup` ã«è¨˜è¿°ã—ãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯é™çš„ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã¯ `Setup` ã®1è¡Œç›®ã®ã€Œ`option nodynamic`ã€ã¨ã„ã†è¡Œã®ã‚³</div><div class='add'>+    ãƒ¡ãƒ³ãƒˆã‚’å¤–ã™å¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Žã¾ãŸï¼Œã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ï¼Œã‚ã‚‰ã‹ã˜ã‚é™çš„ã«ãƒªãƒ³ã‚¯ã‚’ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+5.  `make` ã‚’å®Ÿè¡Œã—ã¦ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã™ã‚‹</div><div class='add'>+</div><div class='add'>+6.  `make check`ã§ãƒ†ã‚¹ãƒˆã‚’è¡Œã†ï¼Ž</div><div class='add'>+</div><div class='add'>+    ã€Œ`check succeeded`ã€ã¨è¡¨ç¤ºã•ã‚Œã‚Œã°æˆåŠŸã§ã™ï¼ŽãŸã ã—ãƒ†ã‚¹ãƒˆã«æˆåŠŸã—ã¦ã‚‚å®Œç’§ã ã¨ä¿è¨¼ã•ã‚Œã¦ã„ã‚‹è¨³ã§ã¯ã‚ã‚Šã¾ã›ã‚“ï¼Ž</div><div class='add'>+</div><div class='add'>+7.  `make install`</div><div class='add'>+</div><div class='add'>+    ä»¥ä¸‹ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ä½œã£ã¦ï¼Œãã“ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ ãƒ«ã—ã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    *   `${DESTDIR}${prefix}/bin`</div><div class='add'>+    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/share/man/man1`</div><div class='add'>+    *   `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    Rubyã®APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒ'*x.y.z*'ã§ã‚ã‚Œã°ï¼Œ`${MAJOR}`ã¯</div><div class='add'>+    '*x*'ã§ï¼Œ`${MINOR}`ã¯'*y*'ï¼Œ`${TEENY}`ã¯'*z*'ã§ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    **æ³¨æ„**: APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® `teeny` ã¯ï¼ŒRubyãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨ã¯ç•°ãªã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    `root` ã§ä½œæ¥­ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ï¼Ž</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+ã‚‚ã—ï¼Œã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«ã¯ã‚¨ãƒ©ãƒ¼ã®ãƒ­ã‚°ã¨ãƒžã‚·ãƒ³ï¼ŒOSã®ç¨®é¡žã‚’å«ã‚€ã§ãã‚‹ã ã‘è©³ã—ã„ãƒ¬ãƒãƒ¼ãƒˆã‚’ä½œè€…ã«é€ã£ã¦ä¸‹ã•ã‚‹ã¨ä»–ã®æ–¹ã®ãŸã‚ã«ã‚‚ãªã‚Šã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+## ç§»æ¤</div><div class='add'>+</div><div class='add'>+UNIXã§ã‚ã‚Œã° `configure` ãŒã»ã¨ã‚“ã©ã®å·®ç•°ã‚’å¸åŽã—ã¦ãã‚Œã‚‹ã¯ãšã§ã™ãŒï¼Œæ€ã‚ã¬è¦‹è½ã¨ã—ãŒã‚ã£ãŸå ´åˆ(ã‚ã‚‹äº‹ãŒå¤šã„)ï¼Œä½œè€…ã«ãã®</div><div class='add'>+ã“ã¨ã‚’å ±å‘Šã™ã‚Œã°ï¼Œè§£æ±ºã§ãã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã«ã‚‚ã£ã¨ã‚‚ä¾å­˜ã™ã‚‹ã®ã¯GCéƒ¨ã§ã™ï¼ŽRubyã®GCã¯å¯¾è±¡</div><div class='add'>+ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ãŒ`setjmp()`ã¾ãŸã¯`getcontext()`ã«ã‚ˆã£ã¦å…¨ã¦ã®ãƒ¬ã‚¸ã‚¹ã‚¿ã‚’ `jmp_buf` ã‚„ `ucontext_t`</div><div class='add'>+ã«æ ¼ç´ã™ã‚‹ã“ã¨ã¨ï¼Œ `jmp_buf` ã‚„ `ucontext_t` ã¨ã‚¹ã‚¿ãƒƒã‚¯ãŒ32bitã‚¢ãƒ©ã‚¤ãƒ³ãƒ¡ãƒ³ãƒˆã•ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’ä»®å®š</div><div class='add'>+ã—ã¦ã„ã¾ã™ï¼Žç‰¹ã«å‰è€…ãŒæˆç«‹ã—ãªã„å ´åˆã®å¯¾å¿œã¯éžå¸¸ã«å›°é›£ã§ã—ã‚‡ã†ï¼Ž å¾Œè€…ã®è§£æ±ºã¯æ¯”è¼ƒçš„ç°¡å˜ã§ï¼Œ `gc.c` ã§ã‚¹ã‚¿ãƒƒã‚¯ã‚’ãƒžãƒ¼ã‚¯ã—ã¦ã„ã‚‹</div><div class='add'>+éƒ¨åˆ†ã«ã‚¢ãƒ©ã‚¤ãƒ³ãƒ¡ãƒ³ãƒˆã®ãƒã‚¤ãƒˆæ•°ã ã‘ãšã‚‰ã—ã¦ãƒžãƒ¼ã‚¯ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã™ã‚‹ã ã‘ã§æ¸ˆã¿ã¾ã™ï¼Ž`defined(__mc68000__)`ã§æ‹¬ã‚‰ã‚Œã¦ã„</div><div class='add'>+ã‚‹éƒ¨åˆ†ã‚’å‚è€ƒã«ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+ãƒ¬ã‚¸ã‚¹ã‚¿ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’æŒã¤CPUã§ã¯ï¼Œãƒ¬ã‚¸ã‚¹ã‚¿ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’ã‚¹ã‚¿ãƒƒã‚¯ã«ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã™ã‚‹ã‚¢ã‚»ãƒ³ãƒ–ãƒ©ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ï¼Ž</div><div class='add'>+</div><div class='add'>+## é…å¸ƒæ¡ä»¶</div><div class='add'>+</div><div class='add'>+[COPYING.ja](COPYING.ja) ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+## ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+Rubyã«é–¢ã™ã‚‹è³ªå•ã¯ Ruby-Talkï¼ˆè‹±èªžï¼‰ã‚„ Ruby-Listï¼ˆæ—¥æœ¬èªžï¼‰ (https://www.ruby-lang.org/ja/community/mailing-lists) ã‚„ï¼Œ</div><div class='add'>+stackoverflow (https://ja.stackoverflow.com/) ãªã©ã®Webã‚µã‚¤ãƒˆã«æŠ•ç¨¿ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+ãƒã‚°å ±å‘Šã¯ https://bugs.ruby-lang.org ã§å—ã‘ä»˜ã‘ã¦ã„ã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## è‘—è€…</div><div class='add'>+</div><div class='add'>+Rubyã®ã‚ªãƒªã‚¸ãƒŠãƒ«ç‰ˆã¯ï¼Œ1995å¹´ã«ã¾ã¤ã‚‚ã¨ã‚†ãã²ã‚æ°ã«ã‚ˆã£ã¦è¨­è¨ˆãƒ»é–‹ç™ºã•ã‚Œã¾ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+&lt;mailto:matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+created at: Thu Aug  3 11:57:36 JST 1995</div><div class='head'>diff --git a/README.md b/README.md<br/>new file mode 100644<br/>index 0000000000..7a24329fe8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/README.md?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>README.md</a></div><div class='hunk'>@@ -0,0 +1,175 @@</div><div class='add'>+[![Build Status](https://travis-ci.org/ruby/ruby.svg)](https://travis-ci.org/ruby/ruby)</div><div class='add'>+[![Build status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/trunk?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/trunk)</div><div class='add'>+</div><div class='add'>+# What's Ruby</div><div class='add'>+</div><div class='add'>+Ruby is the interpreted scripting language for quick and easy object-oriented</div><div class='add'>+programming. It has many features to process text files and to do system</div><div class='add'>+management tasks (as in Perl). It is simple, straight-forward, and</div><div class='add'>+extensible.</div><div class='add'>+</div><div class='add'>+## Features of Ruby</div><div class='add'>+</div><div class='add'>+*   Simple Syntax</div><div class='add'>+*   **Normal** Object-oriented Features (e.g. class, method calls)</div><div class='add'>+*   **Advanced** Object-oriented Features (e.g. mix-in, singleton-method)</div><div class='add'>+*   Operator Overloading</div><div class='add'>+*   Exception Handling</div><div class='add'>+*   Iterators and Closures</div><div class='add'>+*   Garbage Collection</div><div class='add'>+*   Dynamic Loading of Object Files (on some architectures)</div><div class='add'>+*   Highly Portable (works on many Unix-like/POSIX compatible platforms as</div><div class='add'>+    well as Windows, macOS, Haiku, etc.) cf.</div><div class='add'>+    https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## How to get Ruby</div><div class='add'>+</div><div class='add'>+For a complete list of ways to install Ruby, including using third-party tools</div><div class='add'>+like rvm, see:</div><div class='add'>+</div><div class='add'>+https://www.ruby-lang.org/en/downloads/</div><div class='add'>+</div><div class='add'>+The Ruby distribution files can be found on the following FTP site:</div><div class='add'>+</div><div class='add'>+ftp://ftp.ruby-lang.org/pub/ruby/</div><div class='add'>+</div><div class='add'>+The trunk of the Ruby source tree can be checked out with the following</div><div class='add'>+command:</div><div class='add'>+</div><div class='add'>+    $ svn co https://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='add'>+</div><div class='add'>+Or if you are using git then use the following command:</div><div class='add'>+</div><div class='add'>+    $ git clone https://github.com/ruby/ruby.git</div><div class='add'>+</div><div class='add'>+There are some other branches under development. Try the following command</div><div class='add'>+to see the list of branches:</div><div class='add'>+</div><div class='add'>+    $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/</div><div class='add'>+</div><div class='add'>+Or if you are using git then use the following command:</div><div class='add'>+</div><div class='add'>+    $ git ls-remote git://github.com/ruby/ruby.git</div><div class='add'>+</div><div class='add'>+## Ruby home page</div><div class='add'>+</div><div class='add'>+The URL of the Ruby home page is:</div><div class='add'>+</div><div class='add'>+https://www.ruby-lang.org/</div><div class='add'>+</div><div class='add'>+## Mailing list</div><div class='add'>+</div><div class='add'>+There is a mailing list to talk about Ruby. To subscribe to this list, please</div><div class='add'>+send the following phrase:</div><div class='add'>+</div><div class='add'>+    subscribe</div><div class='add'>+</div><div class='add'>+in the mail body (not subject) to the address</div><div class='add'>+&lt;mailto:ruby-talk-request@ruby-lang.org&gt;.</div><div class='add'>+</div><div class='add'>+## How to compile and install</div><div class='add'>+</div><div class='add'>+This is what you need to do to compile and install Ruby:</div><div class='add'>+</div><div class='add'>+1.  If you want to use Microsoft Visual C++ to compile Ruby, read</div><div class='add'>+    [win32/README.win32](win32/README.win32) instead of this document.</div><div class='add'>+</div><div class='add'>+2.  If `./configure` does not exist or is older than `configure.ac`, run</div><div class='add'>+    `autoconf` to (re)generate configure.</div><div class='add'>+</div><div class='add'>+3.  Run `./configure`, which will generate `config.h` and `Makefile`.</div><div class='add'>+</div><div class='add'>+    Some C compiler flags may be added by default depending on your</div><div class='add'>+    environment. Specify `optflags=..` and `warnflags=..` as necessary to</div><div class='add'>+    override them.</div><div class='add'>+</div><div class='add'>+4.  Edit `defines.h` if you need. Usually this step will not be needed.</div><div class='add'>+</div><div class='add'>+5.  Remove comment mark(`#`) before the module names from `ext/Setup` (or add</div><div class='add'>+    module names if not present), if you want to link modules statically.</div><div class='add'>+</div><div class='add'>+    If you don't want to compile non static extension modules (probably on</div><div class='add'>+    architectures which do not allow dynamic loading), remove comment mark</div><div class='add'>+    from the line "`#option nodynamic`" in `ext/Setup`.</div><div class='add'>+</div><div class='add'>+    Usually this step will not be needed.</div><div class='add'>+</div><div class='add'>+6.  Run `make`.</div><div class='add'>+</div><div class='add'>+    * On Mac, set RUBY\_CODESIGN environment variable with a signing identity.</div><div class='add'>+      It uses the identity to sign `ruby` binary. See also codesign(1).</div><div class='add'>+</div><div class='add'>+7.  Optionally, run '`make check`' to check whether the compiled Ruby</div><div class='add'>+    interpreter works well. If you see the message "`check succeeded`", your</div><div class='add'>+    Ruby works as it should (hopefully).</div><div class='add'>+</div><div class='add'>+8.  Optionally, run `make update-gems` and `make extract-gems`.</div><div class='add'>+</div><div class='add'>+    If you want to install bundled gems, run `make update-gems` and</div><div class='add'>+    `make extract-gems` before running `make install`.</div><div class='add'>+</div><div class='add'>+9.  Run '`make install`'.</div><div class='add'>+</div><div class='add'>+    This command will create the following directories and install files into</div><div class='add'>+    them.</div><div class='add'>+</div><div class='add'>+    *   `${DESTDIR}${prefix}/bin`</div><div class='add'>+    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`</div><div class='add'>+    *   `${DESTDIR}${prefix}/share/man/man1`</div><div class='add'>+    *   `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    If Ruby's API version is '*x.y.z*', the `${MAJOR}` is '*x*', the</div><div class='add'>+    `${MINOR}` is '*y*', and the `${TEENY}` is '*z*'.</div><div class='add'>+</div><div class='add'>+    **NOTE**: teeny of the API version may be different from one of Ruby's</div><div class='add'>+    program version</div><div class='add'>+</div><div class='add'>+    You may have to be a super user to install Ruby.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+If you fail to compile Ruby, please send the detailed error report with the</div><div class='add'>+error log and machine/OS type, to help others.</div><div class='add'>+</div><div class='add'>+Some extension libraries may not get compiled because of lack of necessary</div><div class='add'>+external libraries and/or headers, then you will need to run '`make distclean-ext`'</div><div class='add'>+to remove old configuration after installing them in such case.</div><div class='add'>+</div><div class='add'>+## Copying</div><div class='add'>+</div><div class='add'>+See the file [COPYING](COPYING).</div><div class='add'>+</div><div class='add'>+## Feedback</div><div class='add'>+</div><div class='add'>+Questions about the Ruby language can be asked on the Ruby-Talk mailing list</div><div class='add'>+(https://www.ruby-lang.org/en/community/mailing-lists) or on websites like</div><div class='add'>+(https://stackoverflow.com).</div><div class='add'>+</div><div class='add'>+Bug reports should be filed at https://bugs.ruby-lang.org. Read [HowToReport] for more information.</div><div class='add'>+</div><div class='add'>+[HowToReport]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport</div><div class='add'>+</div><div class='add'>+## Contributing</div><div class='add'>+</div><div class='add'>+See the file [CONTRIBUTING.md](CONTRIBUTING.md)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## The Author</div><div class='add'>+</div><div class='add'>+Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in</div><div class='add'>+1995.</div><div class='add'>+</div><div class='add'>+&lt;mailto:matz@ruby-lang.org&gt;</div><div class='head'>diff --git a/ToDo b/ToDo<br/>deleted file mode 100644<br/>index b55e399edf..0000000000<br/>--- a/<a href='/ruby.git/tree/ToDo?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>ToDo</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,126 +0,0 @@</div><div class='del'>-Language Spec.</div><div class='del'>-</div><div class='del'>-- Class#allocate - basicNew</div><div class='del'>-- class Foo::Bar&lt;Baz .. end, module Boo::Bar .. end</div><div class='del'>-* operator !! for rescue. ???</div><div class='del'>-* objectify characters</div><div class='del'>-* ../... outside condition invokes operator method too.</div><div class='del'>-* ... inside condition turns off just before right condition.???</div><div class='del'>-* package or access control for global variables??</div><div class='del'>-* named arguments like foo(nation:="german") or foo(nation: "german").</div><div class='del'>-* method to retrieve argument information (needs new C API)</div><div class='del'>-* multiple return values, yield values.  maybe incompatible ???</div><div class='del'>-* cascading method invocation ???</div><div class='del'>-* def Class#method .. end ??</div><div class='del'>-* def Foo::Bar::baz() .. end ??</div><div class='del'>-* I18N (or M17N) script/string/regexp</div><div class='del'>-* Fixnum 0 as false ????</div><div class='del'>-* discourage use of symbol variables (e.g. $/, etc.) in manual</div><div class='del'>-* discourage use of Perlish features by giving warnings.</div><div class='del'>-* non confusing in-block local variable (is it possible?)</div><div class='del'>-  + remove scope by block</div><div class='del'>-  + variables appears within block may have independent values.</div><div class='del'>-* Regexp: make /o thread safe.</div><div class='del'>-* decide whether begin with rescue or ensure make do..while loop.</div><div class='del'>-* a +1 to be a+1, not a(+1).</div><div class='del'>-* unify == and eql? again</div><div class='del'>-* to_i returns nil if str contains no digit.</div><div class='del'>-* raise exception by `` error</div><div class='del'>-* jar like combined library package. -&gt; RubyGems?</div><div class='del'>-* resumable Exception via Exception#resume.</div><div class='del'>-* method combination, e.g. before, after, around, etc.</div><div class='del'>-* .. or something like defadvice in Emacs.</div><div class='del'>-* property - for methods, or for objects in general.</div><div class='del'>-* "in" modifier, to annotate, or to encourage assertion.</div><div class='del'>-* selector namespace - something like generic-flet in CLOS, to help RubyBehavior</div><div class='del'>-* private instance variable (as in Python?) @_foo in class Foo =&gt; @_Foo_foo</div><div class='del'>-* warn/error "bare word" method, like "foo",  you should type "foo()"</div><div class='del'>-* clarify evaluation order of operator argument (=~, .., ...)</div><div class='del'>-* :symbol =&gt; value hash in the form of {symbol: value, ...} ??</div><div class='del'>-</div><div class='del'>-Hacking Interpreter</div><div class='del'>-</div><div class='del'>-- generational GC</div><div class='del'>-* non-blocking open (e.g. for named pipe) for thread</div><div class='del'>-* avoid blocking with gethostbyname/gethostbyaddr (use fork ???)</div><div class='del'>-* objectify interpreters ???</div><div class='del'>-* remove rb_eval() recursions</div><div class='del'>-* syntax tree -&gt; bytecode ???</div><div class='del'>-* scrambled script, or script filter</div><div class='del'>-* setuid ruby</div><div class='del'>-* performance tune for in-block (dynamic) local variables.</div><div class='del'>-* give warnings to assign magic variables.</div><div class='del'>-* export rb_io_{addstr,printf,puts,print}</div><div class='del'>-* autoload should work with threads [ruby-talk:4589]</div><div class='del'>-* remove stdio dependency from IOs.</div><div class='del'>-* warn for inconsistent local variable usage (lv m and method m at the same time). </div><div class='del'>-* MicroRuby</div><div class='del'>-* Built-in Interactive Ruby.</div><div class='del'>-* Parser API</div><div class='del'>-* trap every method invocation, which can be enabled by e.g. trap_call :method.</div><div class='del'>-* unify Errno exceptions of same errno, or new exception comparison scheme.</div><div class='del'>-* 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil.</div><div class='del'>-* Thread#max_stack_size attribute (possible??)</div><div class='del'>-</div><div class='del'>-Standard Libraries</div><div class='del'>-</div><div class='del'>-- Module#define_method which takes a name and a body (block, proc or method).</div><div class='del'>-- Enume#inject</div><div class='del'>-- Array#fetch</div><div class='del'>-- IO::for_fd</div><div class='del'>-- Process::waitall [ruby-talk:4557]</div><div class='del'>-- Process::Status</div><div class='del'>-- File::lchown, File::lchmod; xxx - still need work for non existing platforms</div><div class='del'>-- move Time::times to Process.</div><div class='del'>-- Enumerable#sort_by for Schwartzian transformation</div><div class='del'>-- fork_and_kill_other_threads.</div><div class='del'>-- signal list (Signal::trap, Signal::list).</div><div class='del'>-- move NameError under StandardError.</div><div class='del'>-- Integer#to_s(base)</div><div class='del'>-- Hash::new{default}</div><div class='del'>-- hash etc. should handle self referenceing array/hash</div><div class='del'>-- Array#select(n1,n2...) works like Array#indexes(n1,n2...)</div><div class='del'>-- use Mersenne Twister RNG for random.</div><div class='del'>-- deprecate Array#indexes, and Array#indices.</div><div class='del'>-- remove dependency on MAXPATHLEN.</div><div class='del'>-* String#scanf(?)</div><div class='del'>-* Object#fmt(?)</div><div class='del'>-* Time::strptime</div><div class='del'>-* Integer[num], Float[num];  Fixnum[num]?</div><div class='del'>-* method to retrieve non-number trailer for to_i/to_f.</div><div class='del'>-* Stream or Port, abstract superclass of IO ?</div><div class='del'>-* String#{pred,prev}, String#downto</div><div class='del'>-* optional stepsize argument for succ()</div><div class='del'>-* Ruby module -- Ruby::Version, Ruby::Interpreter</div><div class='del'>-* introduce Boolean class; super of TrueClass, FalseClass</div><div class='del'>-* synchronized method - synchronized{...}, synchronized :foo, :bar</div><div class='del'>-* Array#&amp;, Array#| to allow duplication. ???</div><div class='del'>-* way to specify immortal (fork endurance) thread;</div><div class='del'>-* or raise ForkException to every thread but fork caller.</div><div class='del'>-* new user-defined marshal scheme. _dump(dumper), _load(restorer)</div><div class='del'>-* library to load per-user profile seeking .ruby_profile or ruby.ini file.</div><div class='del'>-* warning framework (warn, warning for Ruby level)</div><div class='del'>-* marshal should not depend on sprintf (works bad with locale).</div><div class='del'>-* ternary arg pow: a.pow(b,c) == a**b%c</div><div class='del'>-* new caller(), e.g. call_stack; needs better name.</div><div class='del'>-* pointer share mechanism similar to one in String for Array.</div><div class='del'>-* require "1.6" etc. by /usr/lib/ruby/1.6/1.6.rb ;-)</div><div class='del'>-* save both "feature names" and "normalized path" in $"</div><div class='del'>-* implement Mutex_m (or MutexMixin) using Mutex.</div><div class='del'>-</div><div class='del'>-Extension Libraries</div><div class='del'>-</div><div class='del'>-* ptk.rb pTk wrapper that is compatible to tk.rb</div><div class='del'>-* Berkeley DB extension</div><div class='del'>-* BitVector</div><div class='del'>-* thread-safe fcgi</div><div class='del'>-</div><div class='del'>-Ruby Libraries</div><div class='del'>-</div><div class='del'>-* urllib.rb, nttplib.rb, etc.</div><div class='del'>-* format like perl's</div><div class='del'>-</div><div class='del'>-Tools</div><div class='del'>-</div><div class='del'>-* freeze or undump to bundle everything</div><div class='del'>-* bundle using zlib</div><div class='head'>diff --git a/acinclude.m4 b/acinclude.m4<br/>new file mode 100644<br/>index 0000000000..99b24e6d93<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/acinclude.m4?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>acinclude.m4</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+# -*- autoconf -*-</div><div class='add'>+</div><div class='add'>+AC_DEFUN([_COLORIZE_RESULT_PREPARE], [</div><div class='add'>+    msg_checking= msg_result_yes= msg_result_no= msg_result_other= msg_reset=</div><div class='add'>+    AS_IF([test "x${CONFIGURE_TTY}" = xyes -o -t 1], [</div><div class='add'>+	msg_begin="`tput smso 2&gt;/dev/null`"</div><div class='add'>+	AS_CASE(["$msg_begin"], ['@&lt;:@'*m],</div><div class='add'>+	    [msg_begin="`echo "$msg_begin" | sed ['s/[0-9]*m$//']`"</div><div class='add'>+	    msg_checking="${msg_begin}33m"</div><div class='add'>+	    AS_IF([test ${TEST_COLORS:+set}], [</div><div class='add'>+		msg_result_yes=[`expr ":$TEST_COLORS:" : ".*:pass=\([^:]*\):"`]</div><div class='add'>+		msg_result_no=[`expr ":$TEST_COLORS:" : ".*:fail=\([^:]*\):"`]</div><div class='add'>+		msg_result_other=[`expr ":$TEST_COLORS:" : ".*:skip=\([^:]*\):"`]</div><div class='add'>+	    ])</div><div class='add'>+	    msg_result_yes="${msg_begin}${msg_result_yes:-32;1}m"</div><div class='add'>+	    msg_result_no="${msg_begin}${msg_result_no:-31;1}m"</div><div class='add'>+	    msg_result_other="${msg_begin}${msg_result_other:-33;1}m"</div><div class='add'>+	    msg_reset="${msg_begin}m"</div><div class='add'>+	    ])</div><div class='add'>+	AS_UNSET(msg_begin)</div><div class='add'>+	])</div><div class='add'>+    AS_REQUIRE_SHELL_FN([colorize_result],</div><div class='add'>+	[AS_FUNCTION_DESCRIBE([colorize_result], [MSG], [Colorize result])],</div><div class='add'>+        [AS_CASE(["$[]1"],</div><div class='add'>+            [yes], [AS_ECHO(["${msg_result_yes}$[]1${msg_reset}]")],</div><div class='add'>+            [no], [AS_ECHO(["${msg_result_no}$[]1${msg_reset}]")],</div><div class='add'>+            [AS_ECHO(["${msg_result_other}$[]1${msg_reset}]")])])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([COLORIZE_RESULT], [AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl</div><div class='add'>+    AS_LITERAL_IF([$1],</div><div class='add'>+	[m4_case([$1],</div><div class='add'>+		[yes], [AS_ECHO(["${msg_result_yes}$1${msg_reset}"])],</div><div class='add'>+		[no], [AS_ECHO(["${msg_result_no}$1${msg_reset}"])],</div><div class='add'>+		[AS_ECHO(["${msg_result_other}$1${msg_reset}"])])],</div><div class='add'>+	[colorize_result "$1"]) dnl</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([AC_CHECKING],[dnl</div><div class='add'>+AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl</div><div class='add'>+AS_MESSAGE([checking ${msg_checking}$1${msg_reset}...])])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([AC_MSG_RESULT], [dnl</div><div class='add'>+{ _AS_ECHO_LOG([result: $1])</div><div class='add'>+COLORIZE_RESULT([$1]); dnl</div><div class='add'>+}])</div><div class='head'>diff --git a/aclocal.m4 b/aclocal.m4<br/>new file mode 100644<br/>index 0000000000..18ba297b05<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/aclocal.m4?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>aclocal.m4</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-</div><div class='add'>+</div><div class='add'>+# Copyright (C) 1996-2017 Free Software Foundation, Inc.</div><div class='add'>+</div><div class='add'>+# This file is free software; the Free Software Foundation</div><div class='add'>+# gives unlimited permission to copy and/or distribute it,</div><div class='add'>+# with or without modifications, as long as this notice is preserved.</div><div class='add'>+</div><div class='add'>+# This program is distributed in the hope that it will be useful,</div><div class='add'>+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without</div><div class='add'>+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A</div><div class='add'>+# PARTICULAR PURPOSE.</div><div class='add'>+</div><div class='add'>+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])</div><div class='add'>+m4_include([acinclude.m4])</div><div class='head'>diff --git a/addr2line.c b/addr2line.c<br/>new file mode 100644<br/>index 0000000000..09fcc3c225<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/addr2line.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>addr2line.c</a></div><div class='hunk'>@@ -0,0 +1,1234 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  addr2line.c -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2010 Shinichiro Hamaji</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "ruby/config.h"</div><div class='add'>+#include "ruby/missing.h"</div><div class='add'>+#include "addr2line.h"</div><div class='add'>+</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDBOOL_H</div><div class='add'>+#include &lt;stdbool.h&gt;</div><div class='add'>+#else</div><div class='add'>+#include "missing/stdbool.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef USE_ELF</div><div class='add'>+</div><div class='add'>+#include &lt;fcntl.h&gt;</div><div class='add'>+#include &lt;limits.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+#include &lt;sys/mman.h&gt;</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;sys/stat.h&gt;</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef __OpenBSD__</div><div class='add'>+#include &lt;elf_abi.h&gt;</div><div class='add'>+#else</div><div class='add'>+#include &lt;elf.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* Make alloca work the best possible way.  */</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+# ifndef alloca</div><div class='add'>+#  define alloca __builtin_alloca</div><div class='add'>+# endif</div><div class='add'>+#else</div><div class='add'>+# ifdef HAVE_ALLOCA_H</div><div class='add'>+#  include &lt;alloca.h&gt;</div><div class='add'>+# else</div><div class='add'>+#  ifdef _AIX</div><div class='add'>+#pragma alloca</div><div class='add'>+#  else</div><div class='add'>+#   ifndef alloca		/* predefined by HP cc +Olibcalls */</div><div class='add'>+void *alloca();</div><div class='add'>+#   endif</div><div class='add'>+#  endif /* AIX */</div><div class='add'>+# endif	/* HAVE_ALLOCA_H */</div><div class='add'>+#endif /* __GNUC__ */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_DLADDR</div><div class='add'>+# include &lt;dlfcn.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define DW_LNS_copy                     0x01</div><div class='add'>+#define DW_LNS_advance_pc               0x02</div><div class='add'>+#define DW_LNS_advance_line             0x03</div><div class='add'>+#define DW_LNS_set_file                 0x04</div><div class='add'>+#define DW_LNS_set_column               0x05</div><div class='add'>+#define DW_LNS_negate_stmt              0x06</div><div class='add'>+#define DW_LNS_set_basic_block          0x07</div><div class='add'>+#define DW_LNS_const_add_pc             0x08</div><div class='add'>+#define DW_LNS_fixed_advance_pc         0x09</div><div class='add'>+#define DW_LNS_set_prologue_end         0x0a /* DWARF3 */</div><div class='add'>+#define DW_LNS_set_epilogue_begin       0x0b /* DWARF3 */</div><div class='add'>+#define DW_LNS_set_isa                  0x0c /* DWARF3 */</div><div class='add'>+</div><div class='add'>+/* Line number extended opcode name. */</div><div class='add'>+#define DW_LNE_end_sequence             0x01</div><div class='add'>+#define DW_LNE_set_address              0x02</div><div class='add'>+#define DW_LNE_define_file              0x03</div><div class='add'>+#define DW_LNE_set_discriminator        0x04  /* DWARF4 */</div><div class='add'>+</div><div class='add'>+#ifndef ElfW</div><div class='add'>+# if SIZEOF_VOIDP == 8</div><div class='add'>+#  define ElfW(x) Elf64##_##x</div><div class='add'>+# else</div><div class='add'>+#  define ElfW(x) Elf32##_##x</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#ifndef ELF_ST_TYPE</div><div class='add'>+# if SIZEOF_VOIDP == 8</div><div class='add'>+#  define ELF_ST_TYPE ELF64_ST_TYPE</div><div class='add'>+# else</div><div class='add'>+#  define ELF_ST_TYPE ELF32_ST_TYPE</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#ifndef PATH_MAX</div><div class='add'>+#define PATH_MAX 4096</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef SHF_COMPRESSED /* compatibility with glibc &lt; 2.22 */</div><div class='add'>+#define SHF_COMPRESSED 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+int kprintf(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    const char *dirname;</div><div class='add'>+    const char *filename;</div><div class='add'>+    const char *path; /* object path */</div><div class='add'>+    int line;</div><div class='add'>+</div><div class='add'>+    uintptr_t base_addr;</div><div class='add'>+    uintptr_t saddr;</div><div class='add'>+    const char *sname; /* function name */</div><div class='add'>+} line_info_t;</div><div class='add'>+typedef struct obj_info obj_info_t;</div><div class='add'>+struct obj_info {</div><div class='add'>+    const char *path; /* object path */</div><div class='add'>+    int fd;</div><div class='add'>+    void *mapped;</div><div class='add'>+    size_t mapped_size;</div><div class='add'>+    uintptr_t base_addr;</div><div class='add'>+    obj_info_t *next;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* Avoid consuming stack as this module may be used from signal handler */</div><div class='add'>+static char binary_filename[PATH_MAX];</div><div class='add'>+</div><div class='add'>+static unsigned long</div><div class='add'>+uleb128(char **p)</div><div class='add'>+{</div><div class='add'>+    unsigned long r = 0;</div><div class='add'>+    int s = 0;</div><div class='add'>+    for (;;) {</div><div class='add'>+	unsigned char b = *(unsigned char *)(*p)++;</div><div class='add'>+	if (b &lt; 0x80) {</div><div class='add'>+	    r += (unsigned long)b &lt;&lt; s;</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	r += (b &amp; 0x7f) &lt;&lt; s;</div><div class='add'>+	s += 7;</div><div class='add'>+    }</div><div class='add'>+    return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static long</div><div class='add'>+sleb128(char **p)</div><div class='add'>+{</div><div class='add'>+    long r = 0;</div><div class='add'>+    int s = 0;</div><div class='add'>+    for (;;) {</div><div class='add'>+	unsigned char b = *(unsigned char *)(*p)++;</div><div class='add'>+	if (b &lt; 0x80) {</div><div class='add'>+	    if (b &amp; 0x40) {</div><div class='add'>+		r -= (0x80 - b) &lt;&lt; s;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		r += (b &amp; 0x3f) &lt;&lt; s;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	r += (b &amp; 0x7f) &lt;&lt; s;</div><div class='add'>+	s += 7;</div><div class='add'>+    }</div><div class='add'>+    return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+get_nth_dirname(unsigned long dir, char *p)</div><div class='add'>+{</div><div class='add'>+    if (!dir--) {</div><div class='add'>+	return "";</div><div class='add'>+    }</div><div class='add'>+    while (dir--) {</div><div class='add'>+	while (*p) p++;</div><div class='add'>+	p++;</div><div class='add'>+	if (!*p) {</div><div class='add'>+	    kprintf("Unexpected directory number %lu in %s\n",</div><div class='add'>+		    dir, binary_filename);</div><div class='add'>+	    return "";</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return p;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fill_filename(int file, char *include_directories, char *filenames,</div><div class='add'>+	      line_info_t *line)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    char *p = filenames;</div><div class='add'>+    char *filename;</div><div class='add'>+    unsigned long dir;</div><div class='add'>+    for (i = 1; i &lt;= file; i++) {</div><div class='add'>+	filename = p;</div><div class='add'>+	if (!*p) {</div><div class='add'>+	    /* Need to output binary file name? */</div><div class='add'>+	    kprintf("Unexpected file number %d in %s\n",</div><div class='add'>+		    file, binary_filename);</div><div class='add'>+	    return;</div><div class='add'>+	}</div><div class='add'>+	while (*p) p++;</div><div class='add'>+	p++;</div><div class='add'>+	dir = uleb128(&amp;p);</div><div class='add'>+	/* last modified. */</div><div class='add'>+	uleb128(&amp;p);</div><div class='add'>+	/* size of the file. */</div><div class='add'>+	uleb128(&amp;p);</div><div class='add'>+</div><div class='add'>+	if (i == file) {</div><div class='add'>+	    line-&gt;filename = filename;</div><div class='add'>+	    line-&gt;dirname = get_nth_dirname(dir, include_directories);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,</div><div class='add'>+	  char *include_directories, char *filenames,</div><div class='add'>+	  obj_info_t *obj, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    addr += obj-&gt;base_addr;</div><div class='add'>+    for (i = offset; i &lt; num_traces; i++) {</div><div class='add'>+	uintptr_t a = (uintptr_t)traces[i];</div><div class='add'>+	/* We assume one line code doesn't result &gt;100 bytes of native code.</div><div class='add'>+       We may want more reliable way eventually... */</div><div class='add'>+	if (addr &lt; a &amp;&amp; a &lt; addr + 100) {</div><div class='add'>+	    fill_filename(file, include_directories, filenames, &amp;lines[i]);</div><div class='add'>+	    lines[i].line = line;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='add'>+		obj_info_t *obj, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    char *p, *cu_end, *cu_start, *include_directories, *filenames;</div><div class='add'>+    unsigned long unit_length;</div><div class='add'>+    int default_is_stmt, line_base;</div><div class='add'>+    unsigned int header_length, minimum_instruction_length, line_range,</div><div class='add'>+		 opcode_base;</div><div class='add'>+    /* unsigned char *standard_opcode_lengths; */</div><div class='add'>+</div><div class='add'>+    /* The registers. */</div><div class='add'>+    unsigned long addr = 0;</div><div class='add'>+    unsigned int file = 1;</div><div class='add'>+    unsigned int line = 1;</div><div class='add'>+    /* unsigned int column = 0; */</div><div class='add'>+    int is_stmt;</div><div class='add'>+    /* int basic_block = 0; */</div><div class='add'>+    /* int end_sequence = 0; */</div><div class='add'>+    /* int prologue_end = 0; */</div><div class='add'>+    /* int epilogue_begin = 0; */</div><div class='add'>+    /* unsigned int isa = 0; */</div><div class='add'>+</div><div class='add'>+    p = *debug_line;</div><div class='add'>+</div><div class='add'>+    unit_length = *(unsigned int *)p;</div><div class='add'>+    p += sizeof(unsigned int);</div><div class='add'>+    if (unit_length == 0xffffffff) {</div><div class='add'>+	unit_length = *(unsigned long *)p;</div><div class='add'>+	p += sizeof(unsigned long);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    cu_end = p + unit_length;</div><div class='add'>+</div><div class='add'>+    /*dwarf_version = *(unsigned short *)p;*/</div><div class='add'>+    p += 2;</div><div class='add'>+</div><div class='add'>+    header_length = *(unsigned int *)p;</div><div class='add'>+    p += sizeof(unsigned int);</div><div class='add'>+</div><div class='add'>+    cu_start = p + header_length;</div><div class='add'>+</div><div class='add'>+    minimum_instruction_length = *(unsigned char *)p;</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    is_stmt = default_is_stmt = *(unsigned char *)p;</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    line_base = *(signed char *)p;</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    line_range = *(unsigned char *)p;</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    opcode_base = *(unsigned char *)p;</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    /* standard_opcode_lengths = (unsigned char *)p - 1; */</div><div class='add'>+    p += opcode_base - 1;</div><div class='add'>+</div><div class='add'>+    include_directories = p;</div><div class='add'>+</div><div class='add'>+    /* temporary measure for compress-debug-sections */</div><div class='add'>+    if (p &gt;= cu_end) return -1;</div><div class='add'>+</div><div class='add'>+    /* skip include directories */</div><div class='add'>+    while (*p) {</div><div class='add'>+	p = memchr(p, '\0', cu_end - p);</div><div class='add'>+	if (!p) return -1;</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+    p++;</div><div class='add'>+</div><div class='add'>+    filenames = p;</div><div class='add'>+</div><div class='add'>+    p = cu_start;</div><div class='add'>+</div><div class='add'>+#define FILL_LINE()						    \</div><div class='add'>+    do {							    \</div><div class='add'>+	fill_line(num_traces, traces, addr, file, line,		    \</div><div class='add'>+		  include_directories, filenames,		    \</div><div class='add'>+		  obj, lines, offset);				    \</div><div class='add'>+	/*basic_block = prologue_end = epilogue_begin = 0;*/	    \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+    while (p &lt; cu_end) {</div><div class='add'>+	unsigned long a;</div><div class='add'>+	unsigned char op = *p++;</div><div class='add'>+	switch (op) {</div><div class='add'>+	case DW_LNS_copy:</div><div class='add'>+	    FILL_LINE();</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_advance_pc:</div><div class='add'>+	    a = uleb128(&amp;p);</div><div class='add'>+	    addr += a;</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_advance_line: {</div><div class='add'>+	    long a = sleb128(&amp;p);</div><div class='add'>+	    line += a;</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	case DW_LNS_set_file:</div><div class='add'>+	    file = (unsigned int)uleb128(&amp;p);</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_set_column:</div><div class='add'>+	    /*column = (unsigned int)*/(void)uleb128(&amp;p);</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_negate_stmt:</div><div class='add'>+	    is_stmt = !is_stmt;</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_set_basic_block:</div><div class='add'>+	    /*basic_block = 1; */</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_const_add_pc:</div><div class='add'>+	    a = ((255 - opcode_base) / line_range) *</div><div class='add'>+		minimum_instruction_length;</div><div class='add'>+	    addr += a;</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_fixed_advance_pc:</div><div class='add'>+	    a = *(unsigned char *)p++;</div><div class='add'>+	    addr += a;</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_set_prologue_end:</div><div class='add'>+	    /* prologue_end = 1; */</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_set_epilogue_begin:</div><div class='add'>+	    /* epilogue_begin = 1; */</div><div class='add'>+	    break;</div><div class='add'>+	case DW_LNS_set_isa:</div><div class='add'>+	    /* isa = (unsigned int)*/(void)uleb128(&amp;p);</div><div class='add'>+	    break;</div><div class='add'>+	case 0:</div><div class='add'>+	    a = *(unsigned char *)p++;</div><div class='add'>+	    op = *p++;</div><div class='add'>+	    switch (op) {</div><div class='add'>+	    case DW_LNE_end_sequence:</div><div class='add'>+		/* end_sequence = 1; */</div><div class='add'>+		FILL_LINE();</div><div class='add'>+		addr = 0;</div><div class='add'>+		file = 1;</div><div class='add'>+		line = 1;</div><div class='add'>+		/* column = 0; */</div><div class='add'>+		is_stmt = default_is_stmt;</div><div class='add'>+		/* end_sequence = 0; */</div><div class='add'>+		/* isa = 0; */</div><div class='add'>+		break;</div><div class='add'>+	    case DW_LNE_set_address:</div><div class='add'>+		addr = *(unsigned long *)p;</div><div class='add'>+		p += sizeof(unsigned long);</div><div class='add'>+		break;</div><div class='add'>+	    case DW_LNE_define_file:</div><div class='add'>+		kprintf("Unsupported operation in %s\n",</div><div class='add'>+			binary_filename);</div><div class='add'>+		break;</div><div class='add'>+	    case DW_LNE_set_discriminator:</div><div class='add'>+		/* TODO:currently ignore */</div><div class='add'>+		uleb128(&amp;p);</div><div class='add'>+		break;</div><div class='add'>+	    default:</div><div class='add'>+		kprintf("Unknown extended opcode: %d in %s\n",</div><div class='add'>+			op, binary_filename);</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	default: {</div><div class='add'>+	    unsigned long addr_incr;</div><div class='add'>+	    unsigned long line_incr;</div><div class='add'>+	    a = op - opcode_base;</div><div class='add'>+	    addr_incr = (a / line_range) * minimum_instruction_length;</div><div class='add'>+	    line_incr = line_base + (a % line_range);</div><div class='add'>+	    addr += (unsigned int)addr_incr;</div><div class='add'>+	    line += (unsigned int)line_incr;</div><div class='add'>+	    FILL_LINE();</div><div class='add'>+	}</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    *debug_line = p;</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+parse_debug_line(int num_traces, void **traces,</div><div class='add'>+		 char *debug_line, unsigned long size,</div><div class='add'>+		 obj_info_t *obj, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    char *debug_line_end = debug_line + size;</div><div class='add'>+    while (debug_line &lt; debug_line_end) {</div><div class='add'>+	if (parse_debug_line_cu(num_traces, traces, &amp;debug_line, obj, lines, offset))</div><div class='add'>+	    return -1;</div><div class='add'>+    }</div><div class='add'>+    if (debug_line != debug_line_end) {</div><div class='add'>+	kprintf("Unexpected size of .debug_line in %s\n",</div><div class='add'>+		binary_filename);</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* read file and fill lines */</div><div class='add'>+static uintptr_t</div><div class='add'>+fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='add'>+	   obj_info_t **objp, line_info_t *lines, int offset);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+append_obj(obj_info_t **objp)</div><div class='add'>+{</div><div class='add'>+    obj_info_t *newobj = calloc(1, sizeof(obj_info_t));</div><div class='add'>+    if (*objp) (*objp)-&gt;next = newobj;</div><div class='add'>+    *objp = newobj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+follow_debuglink(const char *debuglink, int num_traces, void **traces,</div><div class='add'>+		 obj_info_t **objp, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    /* Ideally we should check 4 paths to follow gnu_debuglink,</div><div class='add'>+       but we handle only one case for now as this format is used</div><div class='add'>+       by some linux distributions. See GDB's info for detail. */</div><div class='add'>+    static const char global_debug_dir[] = "/usr/lib/debug";</div><div class='add'>+    const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;</div><div class='add'>+    char *p;</div><div class='add'>+    obj_info_t *o1 = *objp, *o2;</div><div class='add'>+    size_t len;</div><div class='add'>+</div><div class='add'>+    p = strrchr(binary_filename, '/');</div><div class='add'>+    if (!p) {</div><div class='add'>+	return;</div><div class='add'>+    }</div><div class='add'>+    p[1] = '\0';</div><div class='add'>+</div><div class='add'>+    len = strlen(binary_filename);</div><div class='add'>+    if (len &gt;= PATH_MAX - global_debug_dir_len)</div><div class='add'>+	len = PATH_MAX - global_debug_dir_len - 1;</div><div class='add'>+    memmove(binary_filename + global_debug_dir_len, binary_filename, len);</div><div class='add'>+    memcpy(binary_filename, global_debug_dir, global_debug_dir_len);</div><div class='add'>+    len += global_debug_dir_len;</div><div class='add'>+    strlcpy(binary_filename + len, debuglink, PATH_MAX - len);</div><div class='add'>+</div><div class='add'>+    append_obj(objp);</div><div class='add'>+    o2 = *objp;</div><div class='add'>+    o2-&gt;base_addr = o1-&gt;base_addr;</div><div class='add'>+    o2-&gt;path = o1-&gt;path;</div><div class='add'>+    fill_lines(num_traces, traces, 0, objp, lines, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* read file and fill lines */</div><div class='add'>+static uintptr_t</div><div class='add'>+fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='add'>+	   obj_info_t **objp, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    int i, j;</div><div class='add'>+    char *shstr;</div><div class='add'>+    char *section_name;</div><div class='add'>+    ElfW(Ehdr) *ehdr;</div><div class='add'>+    ElfW(Shdr) *shdr, *shstr_shdr;</div><div class='add'>+    ElfW(Shdr) *debug_line_shdr = NULL, *gnu_debuglink_shdr = NULL;</div><div class='add'>+    int fd;</div><div class='add'>+    off_t filesize;</div><div class='add'>+    char *file;</div><div class='add'>+    ElfW(Shdr) *symtab_shdr = NULL, *strtab_shdr = NULL;</div><div class='add'>+    ElfW(Shdr) *dynsym_shdr = NULL, *dynstr_shdr = NULL;</div><div class='add'>+    obj_info_t *obj = *objp;</div><div class='add'>+    uintptr_t dladdr_fbase = 0;</div><div class='add'>+    bool compressed_p = false;</div><div class='add'>+</div><div class='add'>+    fd = open(binary_filename, O_RDONLY);</div><div class='add'>+    if (fd &lt; 0) {</div><div class='add'>+	goto fail;</div><div class='add'>+    }</div><div class='add'>+    filesize = lseek(fd, 0, SEEK_END);</div><div class='add'>+    if (filesize &lt; 0) {</div><div class='add'>+	int e = errno;</div><div class='add'>+	close(fd);</div><div class='add'>+	kprintf("lseek: %s\n", strerror(e));</div><div class='add'>+	goto fail;</div><div class='add'>+    }</div><div class='add'>+#if SIZEOF_OFF_T &gt; SIZEOF_SIZE_T</div><div class='add'>+    if (filesize &gt; (off_t)SIZE_MAX) {</div><div class='add'>+	close(fd);</div><div class='add'>+	kprintf("Too large file %s\n", binary_filename);</div><div class='add'>+	goto fail;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    lseek(fd, 0, SEEK_SET);</div><div class='add'>+    /* async-signal unsafe */</div><div class='add'>+    file = (char *)mmap(NULL, (size_t)filesize, PROT_READ, MAP_SHARED, fd, 0);</div><div class='add'>+    if (file == MAP_FAILED) {</div><div class='add'>+	int e = errno;</div><div class='add'>+	close(fd);</div><div class='add'>+	kprintf("mmap: %s\n", strerror(e));</div><div class='add'>+	goto fail;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ehdr = (ElfW(Ehdr) *)file;</div><div class='add'>+    if (memcmp(ehdr-&gt;e_ident, "\177ELF", 4) != 0) {</div><div class='add'>+	/*</div><div class='add'>+	 * Huh? Maybe filename was overridden by setproctitle() and</div><div class='add'>+	 * it match non-elf file.</div><div class='add'>+	 */</div><div class='add'>+	close(fd);</div><div class='add'>+	goto fail;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    obj-&gt;fd = fd;</div><div class='add'>+    obj-&gt;mapped = file;</div><div class='add'>+    obj-&gt;mapped_size = (size_t)filesize;</div><div class='add'>+</div><div class='add'>+    shdr = (ElfW(Shdr) *)(file + ehdr-&gt;e_shoff);</div><div class='add'>+</div><div class='add'>+    shstr_shdr = shdr + ehdr-&gt;e_shstrndx;</div><div class='add'>+    shstr = file + shstr_shdr-&gt;sh_offset;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; ehdr-&gt;e_shnum; i++) {</div><div class='add'>+	section_name = shstr + shdr[i].sh_name;</div><div class='add'>+	switch (shdr[i].sh_type) {</div><div class='add'>+	  case SHT_STRTAB:</div><div class='add'>+	    if (!strcmp(section_name, ".strtab")) {</div><div class='add'>+		strtab_shdr = shdr + i;</div><div class='add'>+	    }</div><div class='add'>+	    else if (!strcmp(section_name, ".dynstr")) {</div><div class='add'>+		dynstr_shdr = shdr + i;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	  case SHT_SYMTAB:</div><div class='add'>+	    /* if (!strcmp(section_name, ".symtab")) */</div><div class='add'>+	    symtab_shdr = shdr + i;</div><div class='add'>+	    break;</div><div class='add'>+	  case SHT_DYNSYM:</div><div class='add'>+	    /* if (!strcmp(section_name, ".dynsym")) */</div><div class='add'>+	    dynsym_shdr = shdr + i;</div><div class='add'>+	    break;</div><div class='add'>+	  case SHT_PROGBITS:</div><div class='add'>+	    if (!strcmp(section_name, ".debug_line")) {</div><div class='add'>+		if (shdr[i].sh_flags &amp; SHF_COMPRESSED) {</div><div class='add'>+		    compressed_p = true;</div><div class='add'>+		}</div><div class='add'>+		debug_line_shdr = shdr + i;</div><div class='add'>+	    }</div><div class='add'>+	    else if (!strcmp(section_name, ".gnu_debuglink")) {</div><div class='add'>+		gnu_debuglink_shdr = shdr + i;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (offset == -1) {</div><div class='add'>+	/* main executable */</div><div class='add'>+	offset = 0;</div><div class='add'>+	if (dynsym_shdr &amp;&amp; dynstr_shdr) {</div><div class='add'>+	    char *strtab = file + dynstr_shdr-&gt;sh_offset;</div><div class='add'>+	    ElfW(Sym) *symtab = (ElfW(Sym) *)(file + dynsym_shdr-&gt;sh_offset);</div><div class='add'>+	    int symtab_count = (int)(dynsym_shdr-&gt;sh_size / sizeof(ElfW(Sym)));</div><div class='add'>+	    for (j = 0; j &lt; symtab_count; j++) {</div><div class='add'>+		ElfW(Sym) *sym = &amp;symtab[j];</div><div class='add'>+		Dl_info info;</div><div class='add'>+		void *h, *s;</div><div class='add'>+		if (ELF_ST_TYPE(sym-&gt;st_info) != STT_FUNC || sym-&gt;st_size &lt;= 0) continue;</div><div class='add'>+		h = dlopen(NULL, RTLD_NOW|RTLD_LOCAL);</div><div class='add'>+		if (!h) continue;</div><div class='add'>+		s = dlsym(h, strtab + sym-&gt;st_name);</div><div class='add'>+		if (!s) continue;</div><div class='add'>+		if (dladdr(s, &amp;info)) {</div><div class='add'>+		    dladdr_fbase = (uintptr_t)info.dli_fbase;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    if (ehdr-&gt;e_type == ET_EXEC) {</div><div class='add'>+		obj-&gt;base_addr = 0;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* PIE (position-independent executable) */</div><div class='add'>+		obj-&gt;base_addr = dladdr_fbase;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!symtab_shdr) {</div><div class='add'>+	symtab_shdr = dynsym_shdr;</div><div class='add'>+	strtab_shdr = dynstr_shdr;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (symtab_shdr &amp;&amp; strtab_shdr) {</div><div class='add'>+	char *strtab = file + strtab_shdr-&gt;sh_offset;</div><div class='add'>+	ElfW(Sym) *symtab = (ElfW(Sym) *)(file + symtab_shdr-&gt;sh_offset);</div><div class='add'>+	int symtab_count = (int)(symtab_shdr-&gt;sh_size / sizeof(ElfW(Sym)));</div><div class='add'>+	for (j = 0; j &lt; symtab_count; j++) {</div><div class='add'>+	    ElfW(Sym) *sym = &amp;symtab[j];</div><div class='add'>+	    uintptr_t saddr = (uintptr_t)sym-&gt;st_value + obj-&gt;base_addr;</div><div class='add'>+	    if (ELF_ST_TYPE(sym-&gt;st_info) != STT_FUNC || sym-&gt;st_size &lt;= 0) continue;</div><div class='add'>+	    for (i = offset; i &lt; num_traces; i++) {</div><div class='add'>+		uintptr_t d = (uintptr_t)traces[i] - saddr;</div><div class='add'>+		if (lines[i].line &gt; 0 || d &lt;= 0 || d &gt; (uintptr_t)sym-&gt;st_size)</div><div class='add'>+		    continue;</div><div class='add'>+		/* fill symbol name and addr from .symtab */</div><div class='add'>+		lines[i].sname = strtab + sym-&gt;st_name;</div><div class='add'>+		lines[i].saddr = saddr;</div><div class='add'>+		lines[i].path  = obj-&gt;path;</div><div class='add'>+		lines[i].base_addr = obj-&gt;base_addr;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!debug_line_shdr) {</div><div class='add'>+	/* This file doesn't have .debug_line section,</div><div class='add'>+	   let's check .gnu_debuglink section instead. */</div><div class='add'>+	if (gnu_debuglink_shdr &amp;&amp; check_debuglink) {</div><div class='add'>+	    follow_debuglink(file + gnu_debuglink_shdr-&gt;sh_offset,</div><div class='add'>+			     num_traces, traces,</div><div class='add'>+			     objp, lines, offset);</div><div class='add'>+	}</div><div class='add'>+	goto finish;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!compressed_p &amp;&amp;</div><div class='add'>+	    parse_debug_line(num_traces, traces,</div><div class='add'>+			 file + debug_line_shdr-&gt;sh_offset,</div><div class='add'>+			 debug_line_shdr-&gt;sh_size,</div><div class='add'>+			 obj, lines, offset))</div><div class='add'>+	goto fail;</div><div class='add'>+finish:</div><div class='add'>+    return dladdr_fbase;</div><div class='add'>+fail:</div><div class='add'>+    return (uintptr_t)-1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define HAVE_MAIN_EXE_PATH</div><div class='add'>+#if defined(__FreeBSD__)</div><div class='add'>+# include &lt;sys/sysctl.h&gt;</div><div class='add'>+#endif</div><div class='add'>+/* ssize_t main_exe_path(void)</div><div class='add'>+ *</div><div class='add'>+ * store the path of the main executable to `binary_filename`,</div><div class='add'>+ * and returns strlen(binary_filename).</div><div class='add'>+ * it is NUL terminated.</div><div class='add'>+ */</div><div class='add'>+#if defined(__linux__)</div><div class='add'>+static ssize_t</div><div class='add'>+main_exe_path(void)</div><div class='add'>+{</div><div class='add'>+# define PROC_SELF_EXE "/proc/self/exe"</div><div class='add'>+    ssize_t len = readlink(PROC_SELF_EXE, binary_filename, PATH_MAX);</div><div class='add'>+    binary_filename[len] = 0;</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='add'>+#elif defined(__FreeBSD__)</div><div class='add'>+static ssize_t</div><div class='add'>+main_exe_path(void)</div><div class='add'>+{</div><div class='add'>+    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};</div><div class='add'>+    size_t len = PATH_MAX;</div><div class='add'>+    int err = sysctl(mib, 4, binary_filename, &amp;len, NULL, 0);</div><div class='add'>+    if (err) {</div><div class='add'>+	kprintf("Can't get the path of ruby");</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    len--; /* sysctl sets strlen+1 */</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#undef HAVE_MAIN_EXE_PATH</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_dump_backtrace_with_lines(int num_traces, void **traces)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    /* async-signal unsafe */</div><div class='add'>+    line_info_t *lines = (line_info_t *)calloc(num_traces, sizeof(line_info_t));</div><div class='add'>+    obj_info_t *obj = NULL;</div><div class='add'>+    /* 2 is NULL + main executable */</div><div class='add'>+    void **dladdr_fbases = (void **)calloc(num_traces+2, sizeof(void *));</div><div class='add'>+#ifdef HAVE_MAIN_EXE_PATH</div><div class='add'>+    char *main_path = NULL; /* used on printing backtrace */</div><div class='add'>+    ssize_t len;</div><div class='add'>+    if ((len = main_exe_path()) &gt; 0) {</div><div class='add'>+	main_path = (char *)alloca(len + 1);</div><div class='add'>+	if (main_path) {</div><div class='add'>+	    uintptr_t addr;</div><div class='add'>+	    memcpy(main_path, binary_filename, len+1);</div><div class='add'>+	    append_obj(&amp;obj);</div><div class='add'>+	    obj-&gt;path = main_path;</div><div class='add'>+	    addr = fill_lines(num_traces, traces, 1, &amp;obj, lines, -1);</div><div class='add'>+	    if (addr != (uintptr_t)-1) {</div><div class='add'>+		dladdr_fbases[0] = (void *)addr;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    /* fill source lines by reading dwarf */</div><div class='add'>+    for (i = 0; i &lt; num_traces; i++) {</div><div class='add'>+	Dl_info info;</div><div class='add'>+	if (lines[i].line) continue;</div><div class='add'>+	if (dladdr(traces[i], &amp;info)) {</div><div class='add'>+	    const char *path;</div><div class='add'>+	    void **p;</div><div class='add'>+</div><div class='add'>+	    /* skip symbols which is in already checked objects */</div><div class='add'>+	    /* if the binary is strip-ed, this may effect */</div><div class='add'>+	    for (p=dladdr_fbases; *p; p++) {</div><div class='add'>+		if (*p == info.dli_fbase) {</div><div class='add'>+		    lines[i].path = info.dli_fname;</div><div class='add'>+		    lines[i].sname = info.dli_sname;</div><div class='add'>+		    goto next_line;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    *p = info.dli_fbase;</div><div class='add'>+</div><div class='add'>+	    append_obj(&amp;obj);</div><div class='add'>+	    obj-&gt;base_addr = (uintptr_t)info.dli_fbase;</div><div class='add'>+	    path = info.dli_fname;</div><div class='add'>+	    obj-&gt;path = path;</div><div class='add'>+	    lines[i].path = path;</div><div class='add'>+	    strlcpy(binary_filename, path, PATH_MAX);</div><div class='add'>+	    if (fill_lines(num_traces, traces, 1, &amp;obj, lines, i) == (uintptr_t)-1)</div><div class='add'>+		break;</div><div class='add'>+	}</div><div class='add'>+next_line:</div><div class='add'>+	continue;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* output */</div><div class='add'>+    for (i = 0; i &lt; num_traces; i++) {</div><div class='add'>+	line_info_t *line = &amp;lines[i];</div><div class='add'>+	uintptr_t addr = (uintptr_t)traces[i];</div><div class='add'>+	uintptr_t d = addr - line-&gt;saddr;</div><div class='add'>+	if (!line-&gt;path) {</div><div class='add'>+	    kprintf("[0x%lx]\n", addr);</div><div class='add'>+	}</div><div class='add'>+	else if (!line-&gt;saddr || !line-&gt;sname) {</div><div class='add'>+	    kprintf("%s(0x%lx) [0x%lx]\n", line-&gt;path, addr-line-&gt;base_addr, addr);</div><div class='add'>+	}</div><div class='add'>+	else if (line-&gt;line &lt;= 0) {</div><div class='add'>+	    kprintf("%s(%s+0x%lx) [0x%lx]\n", line-&gt;path, line-&gt;sname,</div><div class='add'>+		    d, addr);</div><div class='add'>+	}</div><div class='add'>+	else if (!line-&gt;filename) {</div><div class='add'>+	    kprintf("%s(%s+0x%lx) [0x%lx] ???:%d\n", line-&gt;path, line-&gt;sname,</div><div class='add'>+		    d, addr, line-&gt;line);</div><div class='add'>+	}</div><div class='add'>+	else if (line-&gt;dirname &amp;&amp; line-&gt;dirname[0]) {</div><div class='add'>+	    kprintf("%s(%s+0x%lx) [0x%lx] %s/%s:%d\n", line-&gt;path, line-&gt;sname,</div><div class='add'>+		    d, addr, line-&gt;dirname, line-&gt;filename, line-&gt;line);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    kprintf("%s(%s+0x%lx) [0x%lx] %s:%d\n", line-&gt;path, line-&gt;sname,</div><div class='add'>+		    d, addr, line-&gt;filename, line-&gt;line);</div><div class='add'>+	}</div><div class='add'>+	/* FreeBSD's backtrace may show _start and so on */</div><div class='add'>+	if (line-&gt;sname &amp;&amp; strcmp("main", line-&gt;sname) == 0)</div><div class='add'>+	    break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* free */</div><div class='add'>+    while (obj) {</div><div class='add'>+	obj_info_t *o = obj;</div><div class='add'>+	obj = o-&gt;next;</div><div class='add'>+	if (o-&gt;fd) {</div><div class='add'>+	    munmap(o-&gt;mapped, o-&gt;mapped_size);</div><div class='add'>+	    close(o-&gt;fd);</div><div class='add'>+	}</div><div class='add'>+	free(o);</div><div class='add'>+    }</div><div class='add'>+    free(lines);</div><div class='add'>+    free(dladdr_fbases);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* From FreeBSD's lib/libstand/printf.c */</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 1986, 1988, 1991, 1993</div><div class='add'>+ *	The Regents of the University of California.  All rights reserved.</div><div class='add'>+ * (c) UNIX System Laboratories, Inc.</div><div class='add'>+ * All or some portions of this file are derived from material licensed</div><div class='add'>+ * to the University of California by American Telephone and Telegraph</div><div class='add'>+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with</div><div class='add'>+ * the permission of UNIX System Laboratories, Inc.</div><div class='add'>+ *</div><div class='add'>+ * Redistribution and use in source and binary forms, with or without</div><div class='add'>+ * modification, are permitted provided that the following conditions</div><div class='add'>+ * are met:</div><div class='add'>+ * 1. Redistributions of source code must retain the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer.</div><div class='add'>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer in the</div><div class='add'>+ *    documentation and/or other materials provided with the distribution.</div><div class='add'>+ * 4. Neither the name of the University nor the names of its contributors</div><div class='add'>+ *    may be used to endorse or promote products derived from this software</div><div class='add'>+ *    without specific prior written permission.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='add'>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+ * SUCH DAMAGE.</div><div class='add'>+ *</div><div class='add'>+ *	@(#)subr_prf.c	8.3 (Berkeley) 1/21/94</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include &lt;stdarg.h&gt;</div><div class='add'>+#define MAXNBUF (sizeof(intmax_t) * CHAR_BIT + 1)</div><div class='add'>+static inline int toupper(int c) { return ('A' &lt;= c &amp;&amp; c &lt;= 'Z') ? (c&amp;0x5f) : c; }</div><div class='add'>+#define    hex2ascii(hex)  (hex2ascii_data[hex])</div><div class='add'>+char const hex2ascii_data[] = "0123456789abcdefghijklmnopqrstuvwxyz";</div><div class='add'>+static inline int imax(int a, int b) { return (a &gt; b ? a : b); }</div><div class='add'>+static int kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap);</div><div class='add'>+</div><div class='add'>+static void putce(int c)</div><div class='add'>+{</div><div class='add'>+    char s[1];</div><div class='add'>+    ssize_t ret;</div><div class='add'>+</div><div class='add'>+    s[0] = (char)c;</div><div class='add'>+    ret = write(2, s, 1);</div><div class='add'>+    (void)ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+kprintf(const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+	va_list ap;</div><div class='add'>+	int retval;</div><div class='add'>+</div><div class='add'>+	va_start(ap, fmt);</div><div class='add'>+	retval = kvprintf(fmt, putce, NULL, 10, ap);</div><div class='add'>+	va_end(ap);</div><div class='add'>+	return retval;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Put a NUL-terminated ASCII number (base &lt;= 36) in a buffer in reverse</div><div class='add'>+ * order; return an optional length and a pointer to the last character</div><div class='add'>+ * written in the buffer (i.e., the first character of the string).</div><div class='add'>+ * The buffer pointed to by `nbuf' must have length &gt;= MAXNBUF.</div><div class='add'>+ */</div><div class='add'>+static char *</div><div class='add'>+ksprintn(char *nbuf, uintmax_t num, int base, int *lenp, int upper)</div><div class='add'>+{</div><div class='add'>+	char *p, c;</div><div class='add'>+</div><div class='add'>+	p = nbuf;</div><div class='add'>+	*p = '\0';</div><div class='add'>+	do {</div><div class='add'>+		c = hex2ascii(num % base);</div><div class='add'>+		*++p = upper ? toupper(c) : c;</div><div class='add'>+	} while (num /= base);</div><div class='add'>+	if (lenp)</div><div class='add'>+		*lenp = (int)(p - nbuf);</div><div class='add'>+	return (p);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Scaled down version of printf(3).</div><div class='add'>+ *</div><div class='add'>+ * Two additional formats:</div><div class='add'>+ *</div><div class='add'>+ * The format %b is supported to decode error registers.</div><div class='add'>+ * Its usage is:</div><div class='add'>+ *</div><div class='add'>+ *	printf("reg=%b\n", regval, "&lt;base&gt;&lt;arg&gt;*");</div><div class='add'>+ *</div><div class='add'>+ * where &lt;base&gt; is the output base expressed as a control character, e.g.</div><div class='add'>+ * \10 gives octal; \20 gives hex.  Each arg is a sequence of characters,</div><div class='add'>+ * the first of which gives the bit number to be inspected (origin 1), and</div><div class='add'>+ * the next characters (up to a control character, i.e. a character &lt;= 32),</div><div class='add'>+ * give the name of the register.  Thus:</div><div class='add'>+ *</div><div class='add'>+ *	kvprintf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n");</div><div class='add'>+ *</div><div class='add'>+ * would produce output:</div><div class='add'>+ *</div><div class='add'>+ *	reg=3&lt;BITTWO,BITONE&gt;</div><div class='add'>+ *</div><div class='add'>+ * XXX:  %D  -- Hexdump, takes pointer and separator string:</div><div class='add'>+ *		("%6D", ptr, ":")   -&gt; XX:XX:XX:XX:XX:XX</div><div class='add'>+ *		("%*D", len, ptr, " " -&gt; XX XX XX XX ...</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap)</div><div class='add'>+{</div><div class='add'>+#define PCHAR(c) {int cc=(c); if (func) (*func)(cc); else *d++ = cc; retval++; }</div><div class='add'>+	char nbuf[MAXNBUF];</div><div class='add'>+	char *d;</div><div class='add'>+	const char *p, *percent, *q;</div><div class='add'>+	unsigned char *up;</div><div class='add'>+	int ch, n;</div><div class='add'>+	uintmax_t num;</div><div class='add'>+	int base, lflag, qflag, tmp, width, ladjust, sharpflag, neg, sign, dot;</div><div class='add'>+	int cflag, hflag, jflag, tflag, zflag;</div><div class='add'>+	int dwidth, upper;</div><div class='add'>+	char padc;</div><div class='add'>+	int stop = 0, retval = 0;</div><div class='add'>+</div><div class='add'>+	num = 0;</div><div class='add'>+	if (!func)</div><div class='add'>+		d = (char *) arg;</div><div class='add'>+	else</div><div class='add'>+		d = NULL;</div><div class='add'>+</div><div class='add'>+	if (fmt == NULL)</div><div class='add'>+		fmt = "(fmt null)\n";</div><div class='add'>+</div><div class='add'>+	if (radix &lt; 2 || radix &gt; 36)</div><div class='add'>+		radix = 10;</div><div class='add'>+</div><div class='add'>+	for (;;) {</div><div class='add'>+		padc = ' ';</div><div class='add'>+		width = 0;</div><div class='add'>+		while ((ch = (unsigned char)*fmt++) != '%' || stop) {</div><div class='add'>+			if (ch == '\0')</div><div class='add'>+				return (retval);</div><div class='add'>+			PCHAR(ch);</div><div class='add'>+		}</div><div class='add'>+		percent = fmt - 1;</div><div class='add'>+		qflag = 0; lflag = 0; ladjust = 0; sharpflag = 0; neg = 0;</div><div class='add'>+		sign = 0; dot = 0; dwidth = 0; upper = 0;</div><div class='add'>+		cflag = 0; hflag = 0; jflag = 0; tflag = 0; zflag = 0;</div><div class='add'>+reswitch:	switch (ch = (unsigned char)*fmt++) {</div><div class='add'>+		case '.':</div><div class='add'>+			dot = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case '#':</div><div class='add'>+			sharpflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case '+':</div><div class='add'>+			sign = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case '-':</div><div class='add'>+			ladjust = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case '%':</div><div class='add'>+			PCHAR(ch);</div><div class='add'>+			break;</div><div class='add'>+		case '*':</div><div class='add'>+			if (!dot) {</div><div class='add'>+				width = va_arg(ap, int);</div><div class='add'>+				if (width &lt; 0) {</div><div class='add'>+					ladjust = !ladjust;</div><div class='add'>+					width = -width;</div><div class='add'>+				}</div><div class='add'>+			} else {</div><div class='add'>+				dwidth = va_arg(ap, int);</div><div class='add'>+			}</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case '0':</div><div class='add'>+			if (!dot) {</div><div class='add'>+				padc = '0';</div><div class='add'>+				goto reswitch;</div><div class='add'>+			}</div><div class='add'>+		case '1': case '2': case '3': case '4':</div><div class='add'>+		case '5': case '6': case '7': case '8': case '9':</div><div class='add'>+				for (n = 0;; ++fmt) {</div><div class='add'>+					n = n * 10 + ch - '0';</div><div class='add'>+					ch = *fmt;</div><div class='add'>+					if (ch &lt; '0' || ch &gt; '9')</div><div class='add'>+						break;</div><div class='add'>+				}</div><div class='add'>+			if (dot)</div><div class='add'>+				dwidth = n;</div><div class='add'>+			else</div><div class='add'>+				width = n;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'b':</div><div class='add'>+			num = (unsigned int)va_arg(ap, int);</div><div class='add'>+			p = va_arg(ap, char *);</div><div class='add'>+			for (q = ksprintn(nbuf, num, *p++, NULL, 0); *q;)</div><div class='add'>+				PCHAR(*q--);</div><div class='add'>+</div><div class='add'>+			if (num == 0)</div><div class='add'>+				break;</div><div class='add'>+</div><div class='add'>+			for (tmp = 0; *p;) {</div><div class='add'>+				n = *p++;</div><div class='add'>+				if (num &amp; (1 &lt;&lt; (n - 1))) {</div><div class='add'>+					PCHAR(tmp ? ',' : '&lt;');</div><div class='add'>+					for (; (n = *p) &gt; ' '; ++p)</div><div class='add'>+						PCHAR(n);</div><div class='add'>+					tmp = 1;</div><div class='add'>+				} else</div><div class='add'>+					for (; *p &gt; ' '; ++p)</div><div class='add'>+						continue;</div><div class='add'>+			}</div><div class='add'>+			if (tmp)</div><div class='add'>+				PCHAR('&gt;');</div><div class='add'>+			break;</div><div class='add'>+		case 'c':</div><div class='add'>+			PCHAR(va_arg(ap, int));</div><div class='add'>+			break;</div><div class='add'>+		case 'D':</div><div class='add'>+			up = va_arg(ap, unsigned char *);</div><div class='add'>+			p = va_arg(ap, char *);</div><div class='add'>+			if (!width)</div><div class='add'>+				width = 16;</div><div class='add'>+			while(width--) {</div><div class='add'>+				PCHAR(hex2ascii(*up &gt;&gt; 4));</div><div class='add'>+				PCHAR(hex2ascii(*up &amp; 0x0f));</div><div class='add'>+				up++;</div><div class='add'>+				if (width)</div><div class='add'>+					for (q=p;*q;q++)</div><div class='add'>+						PCHAR(*q);</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		case 'd':</div><div class='add'>+		case 'i':</div><div class='add'>+			base = 10;</div><div class='add'>+			sign = 1;</div><div class='add'>+			goto handle_sign;</div><div class='add'>+		case 'h':</div><div class='add'>+			if (hflag) {</div><div class='add'>+				hflag = 0;</div><div class='add'>+				cflag = 1;</div><div class='add'>+			} else</div><div class='add'>+				hflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'j':</div><div class='add'>+			jflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'l':</div><div class='add'>+			if (lflag) {</div><div class='add'>+				lflag = 0;</div><div class='add'>+				qflag = 1;</div><div class='add'>+			} else</div><div class='add'>+				lflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'n':</div><div class='add'>+			if (jflag)</div><div class='add'>+				*(va_arg(ap, intmax_t *)) = retval;</div><div class='add'>+			else if (qflag)</div><div class='add'>+				*(va_arg(ap, int64_t *)) = retval;</div><div class='add'>+			else if (lflag)</div><div class='add'>+				*(va_arg(ap, long *)) = retval;</div><div class='add'>+			else if (zflag)</div><div class='add'>+				*(va_arg(ap, size_t *)) = retval;</div><div class='add'>+			else if (hflag)</div><div class='add'>+				*(va_arg(ap, short *)) = retval;</div><div class='add'>+			else if (cflag)</div><div class='add'>+				*(va_arg(ap, char *)) = retval;</div><div class='add'>+			else</div><div class='add'>+				*(va_arg(ap, int *)) = retval;</div><div class='add'>+			break;</div><div class='add'>+		case 'o':</div><div class='add'>+			base = 8;</div><div class='add'>+			goto handle_nosign;</div><div class='add'>+		case 'p':</div><div class='add'>+			base = 16;</div><div class='add'>+			sharpflag = (width == 0);</div><div class='add'>+			sign = 0;</div><div class='add'>+			num = (uintptr_t)va_arg(ap, void *);</div><div class='add'>+			goto number;</div><div class='add'>+		case 'q':</div><div class='add'>+			qflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'r':</div><div class='add'>+			base = radix;</div><div class='add'>+			if (sign)</div><div class='add'>+				goto handle_sign;</div><div class='add'>+			goto handle_nosign;</div><div class='add'>+		case 's':</div><div class='add'>+			p = va_arg(ap, char *);</div><div class='add'>+			if (p == NULL)</div><div class='add'>+				p = "(null)";</div><div class='add'>+			if (!dot)</div><div class='add'>+				n = (int)strlen (p);</div><div class='add'>+			else</div><div class='add'>+				for (n = 0; n &lt; dwidth &amp;&amp; p[n]; n++)</div><div class='add'>+					continue;</div><div class='add'>+</div><div class='add'>+			width -= n;</div><div class='add'>+</div><div class='add'>+			if (!ladjust &amp;&amp; width &gt; 0)</div><div class='add'>+				while (width--)</div><div class='add'>+					PCHAR(padc);</div><div class='add'>+			while (n--)</div><div class='add'>+				PCHAR(*p++);</div><div class='add'>+			if (ladjust &amp;&amp; width &gt; 0)</div><div class='add'>+				while (width--)</div><div class='add'>+					PCHAR(padc);</div><div class='add'>+			break;</div><div class='add'>+		case 't':</div><div class='add'>+			tflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+		case 'u':</div><div class='add'>+			base = 10;</div><div class='add'>+			goto handle_nosign;</div><div class='add'>+		case 'X':</div><div class='add'>+			upper = 1;</div><div class='add'>+		case 'x':</div><div class='add'>+			base = 16;</div><div class='add'>+			goto handle_nosign;</div><div class='add'>+		case 'y':</div><div class='add'>+			base = 16;</div><div class='add'>+			sign = 1;</div><div class='add'>+			goto handle_sign;</div><div class='add'>+		case 'z':</div><div class='add'>+			zflag = 1;</div><div class='add'>+			goto reswitch;</div><div class='add'>+handle_nosign:</div><div class='add'>+			sign = 0;</div><div class='add'>+			if (jflag)</div><div class='add'>+				num = va_arg(ap, uintmax_t);</div><div class='add'>+			else if (qflag)</div><div class='add'>+				num = va_arg(ap, uint64_t);</div><div class='add'>+			else if (tflag)</div><div class='add'>+				num = va_arg(ap, ptrdiff_t);</div><div class='add'>+			else if (lflag)</div><div class='add'>+				num = va_arg(ap, unsigned long);</div><div class='add'>+			else if (zflag)</div><div class='add'>+				num = va_arg(ap, size_t);</div><div class='add'>+			else if (hflag)</div><div class='add'>+				num = (unsigned short)va_arg(ap, int);</div><div class='add'>+			else if (cflag)</div><div class='add'>+				num = (unsigned char)va_arg(ap, int);</div><div class='add'>+			else</div><div class='add'>+				num = va_arg(ap, unsigned int);</div><div class='add'>+			goto number;</div><div class='add'>+handle_sign:</div><div class='add'>+			if (jflag)</div><div class='add'>+				num = va_arg(ap, intmax_t);</div><div class='add'>+			else if (qflag)</div><div class='add'>+				num = va_arg(ap, int64_t);</div><div class='add'>+			else if (tflag)</div><div class='add'>+				num = va_arg(ap, ptrdiff_t);</div><div class='add'>+			else if (lflag)</div><div class='add'>+				num = va_arg(ap, long);</div><div class='add'>+			else if (zflag)</div><div class='add'>+				num = va_arg(ap, ssize_t);</div><div class='add'>+			else if (hflag)</div><div class='add'>+				num = (short)va_arg(ap, int);</div><div class='add'>+			else if (cflag)</div><div class='add'>+				num = (char)va_arg(ap, int);</div><div class='add'>+			else</div><div class='add'>+				num = va_arg(ap, int);</div><div class='add'>+number:</div><div class='add'>+			if (sign &amp;&amp; (intmax_t)num &lt; 0) {</div><div class='add'>+				neg = 1;</div><div class='add'>+				num = -(intmax_t)num;</div><div class='add'>+			}</div><div class='add'>+			p = ksprintn(nbuf, num, base, &amp;n, upper);</div><div class='add'>+			tmp = 0;</div><div class='add'>+			if (sharpflag &amp;&amp; num != 0) {</div><div class='add'>+				if (base == 8)</div><div class='add'>+					tmp++;</div><div class='add'>+				else if (base == 16)</div><div class='add'>+					tmp += 2;</div><div class='add'>+			}</div><div class='add'>+			if (neg)</div><div class='add'>+				tmp++;</div><div class='add'>+</div><div class='add'>+			if (!ladjust &amp;&amp; padc == '0')</div><div class='add'>+				dwidth = width - tmp;</div><div class='add'>+			width -= tmp + imax(dwidth, n);</div><div class='add'>+			dwidth -= n;</div><div class='add'>+			if (!ladjust)</div><div class='add'>+				while (width-- &gt; 0)</div><div class='add'>+					PCHAR(' ');</div><div class='add'>+			if (neg)</div><div class='add'>+				PCHAR('-');</div><div class='add'>+			if (sharpflag &amp;&amp; num != 0) {</div><div class='add'>+				if (base == 8) {</div><div class='add'>+					PCHAR('0');</div><div class='add'>+				} else if (base == 16) {</div><div class='add'>+					PCHAR('0');</div><div class='add'>+					PCHAR('x');</div><div class='add'>+				}</div><div class='add'>+			}</div><div class='add'>+			while (dwidth-- &gt; 0)</div><div class='add'>+				PCHAR('0');</div><div class='add'>+</div><div class='add'>+			while (*p)</div><div class='add'>+				PCHAR(*p--);</div><div class='add'>+</div><div class='add'>+			if (ladjust)</div><div class='add'>+				while (width-- &gt; 0)</div><div class='add'>+					PCHAR(' ');</div><div class='add'>+</div><div class='add'>+			break;</div><div class='add'>+		default:</div><div class='add'>+			while (percent &lt; fmt)</div><div class='add'>+				PCHAR(*percent++);</div><div class='add'>+			/*</div><div class='add'>+			 * Since we ignore an formatting argument it is no</div><div class='add'>+			 * longer safe to obey the remaining formatting</div><div class='add'>+			 * arguments as the arguments will no longer match</div><div class='add'>+			 * the format specs.</div><div class='add'>+			 */</div><div class='add'>+			stop = 1;</div><div class='add'>+			break;</div><div class='add'>+		}</div><div class='add'>+	}</div><div class='add'>+#undef PCHAR</div><div class='add'>+}</div><div class='add'>+#else /* defined(USE_ELF) */</div><div class='add'>+#error not supported</div><div class='add'>+#endif</div><div class='head'>diff --git a/addr2line.h b/addr2line.h<br/>new file mode 100644<br/>index 0000000000..d99f010934<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/addr2line.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>addr2line.h</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  addr2line.h -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2010 Shinichiro Hamaji</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_ADDR2LINE_H</div><div class='add'>+#define RUBY_ADDR2LINE_H</div><div class='add'>+</div><div class='add'>+#ifdef USE_ELF</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_dump_backtrace_with_lines(int num_traces, void **traces);</div><div class='add'>+</div><div class='add'>+#endif /* USE_ELF */</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_ADDR2LINE_H */</div><div class='head'>diff --git a/appveyor.yml b/appveyor.yml<br/>new file mode 100644<br/>index 0000000000..22c7bdce6a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/appveyor.yml?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>appveyor.yml</a></div><div class='hunk'>@@ -0,0 +1,55 @@</div><div class='add'>+---</div><div class='add'>+shallow_clone: true</div><div class='add'>+platform:</div><div class='add'>+  - x64</div><div class='add'>+environment:</div><div class='add'>+  ruby_version: "24-%Platform%"</div><div class='add'>+  zlib_version: "1.2.11"</div><div class='add'>+  matrix:</div><div class='add'>+    - vs: "120"</div><div class='add'>+install:</div><div class='add'>+  - chcp</div><div class='add'>+  - SET BITS=%Platform:x86=32%</div><div class='add'>+  - SET BITS=%BITS:x=%</div><div class='add'>+  - SET OPENSSL_DIR=c:\OpenSSL-Win%BITS%</div><div class='add'>+  - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat</div><div class='add'>+  - SET vcvars</div><div class='add'>+  - '"%vcvars%" %Platform:x64=amd64%'</div><div class='add'>+  - SET ruby_path=C:\Ruby%ruby_version:-x86=%</div><div class='add'>+  - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin</div><div class='add'>+  - ruby --version</div><div class='add'>+  - 'cl'</div><div class='add'>+  - SET</div><div class='add'>+  - echo&gt; Makefile srcdir=.</div><div class='add'>+  - echo&gt;&gt; Makefile MSC_VER=0</div><div class='add'>+  - echo&gt;&gt; Makefile RT=none</div><div class='add'>+  - echo&gt;&gt; Makefile RT_VER=0</div><div class='add'>+  - echo&gt;&gt; Makefile BUILTIN_ENCOBJS=nul</div><div class='add'>+  - type win32\Makefile.sub &gt;&gt; Makefile</div><div class='add'>+  - nmake %mflags% touch-unicode-files</div><div class='add'>+  - nmake %mflags% up incs UNICODE_FILES=.</div><div class='add'>+  - del Makefile</div><div class='add'>+  - mkdir \usr\local\bin</div><div class='add'>+  - mkdir \usr\local\include</div><div class='add'>+  - mkdir \usr\local\lib</div><div class='add'>+  - appveyor DownloadFile https://zlib.net/zlib%zlib_version:.=%.zip</div><div class='add'>+  - 7z x -o%APPVEYOR_BUILD_FOLDER%\ext\zlib zlib%zlib_version:.=%.zip</div><div class='add'>+  - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I</div><div class='add'>+  - mkdir %Platform%-mswin_%vs%</div><div class='add'>+  - ps: Get-ChildItem "win32" -Recurse | foreach {$_.Attributes = 'Readonly'}</div><div class='add'>+  - ps: Get-Item $env:Platform"-mswin_"$env:vs | foreach {$_.Attributes = 'Normal'}</div><div class='add'>+build_script:</div><div class='add'>+  - cd %APPVEYOR_BUILD_FOLDER%</div><div class='add'>+  - cd %Platform%-mswin_%vs%</div><div class='add'>+  - ..\win32\configure.bat --without-ext=+,dbm,gdbm,readline --with-opt-dir=/usr/local --with-openssl-dir=%OPENSSL_DIR:\=/%</div><div class='add'>+  - nmake -l</div><div class='add'>+  - nmake install-nodoc</div><div class='add'>+  - \usr\bin\ruby -v -e "p :locale =&gt; Encoding.find('locale'), :filesystem =&gt; Encoding.find('filesystem')"</div><div class='add'>+test_script:</div><div class='add'>+  - set /a JOBS=%NUMBER_OF_PROCESSORS%</div><div class='add'>+  - nmake -l "TESTOPTS=-v -q" btest</div><div class='add'>+  - nmake -l "TESTOPTS=-v -q" test-basic</div><div class='add'>+  - nmake -l "TESTOPTS=-q -j%JOBS%" test-all</div><div class='add'>+  - nmake -l test-spec</div><div class='add'>+matrix:</div><div class='add'>+  fast_finish: true</div><div class='head'>diff --git a/array.c b/array.c<br/>index fbca3c193e..1600e484fe 100644<br/>--- a/<a href='/ruby.git/tree/array.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>array.c</a><br/>+++ b/<a href='/ruby.git/tree/array.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>array.c</a></div><div class='hunk'>@@ -3,163 +3,506 @@</div><div class='ctx'>   array.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Fri Aug  6 09:46:12 JST 1993</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'>   Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='ctx'>   Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='del'>-#include "util.h"</div><div class='del'>-#include "st.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "probes.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+</div><div class='add'>+#ifndef ARRAY_DEBUG</div><div class='add'>+# define NDEBUG</div><div class='add'>+#endif</div><div class='add'>+#include "ruby_assert.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cArray;</div><div class='del'>-static ID id_cmp;</div><div class='add'>+</div><div class='add'>+/* for OPTIMIZED_CMP: */</div><div class='add'>+#define id_cmp idCmp</div><div class='ctx'> </div><div class='ctx'> #define ARY_DEFAULT_SIZE 16</div><div class='add'>+#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))</div><div class='add'>+#define SMALL_ARRAY_LEN 16</div><div class='add'>+</div><div class='add'>+# define ARY_SHARED_P(ary) \</div><div class='add'>+    (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='add'>+     FL_TEST((ary),ELTS_SHARED)!=0)</div><div class='add'>+# define ARY_EMBED_P(ary) \</div><div class='add'>+    (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='add'>+     FL_TEST((ary), RARRAY_EMBED_FLAG)!=0)</div><div class='add'>+</div><div class='add'>+#define ARY_HEAP_PTR(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)-&gt;as.heap.ptr)</div><div class='add'>+#define ARY_HEAP_LEN(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)-&gt;as.heap.len)</div><div class='add'>+#define ARY_EMBED_PTR(a) (assert(ARY_EMBED_P(a)), RARRAY(a)-&gt;as.ary)</div><div class='add'>+#define ARY_EMBED_LEN(a) \</div><div class='add'>+    (assert(ARY_EMBED_P(a)), \</div><div class='add'>+     (long)((RBASIC(a)-&gt;flags &gt;&gt; RARRAY_EMBED_LEN_SHIFT) &amp; \</div><div class='add'>+	 (RARRAY_EMBED_LEN_MASK &gt;&gt; RARRAY_EMBED_LEN_SHIFT)))</div><div class='add'>+#define ARY_HEAP_SIZE(a) (assert(!ARY_EMBED_P(a)), assert(ARY_OWNS_HEAP_P(a)), RARRAY(a)-&gt;as.heap.aux.capa * sizeof(VALUE))</div><div class='add'>+</div><div class='add'>+#define ARY_OWNS_HEAP_P(a) (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))</div><div class='add'>+#define FL_SET_EMBED(a) do { \</div><div class='add'>+    assert(!ARY_SHARED_P(a)); \</div><div class='add'>+    FL_SET((a), RARRAY_EMBED_FLAG); \</div><div class='add'>+} while (0)</div><div class='add'>+#define FL_UNSET_EMBED(ary) FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)</div><div class='add'>+#define FL_SET_SHARED(ary) do { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    FL_SET((ary), ELTS_SHARED); \</div><div class='add'>+} while (0)</div><div class='add'>+#define FL_UNSET_SHARED(ary) FL_UNSET((ary), ELTS_SHARED)</div><div class='add'>+</div><div class='add'>+#define ARY_SET_PTR(ary, p) do { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    RARRAY(ary)-&gt;as.heap.ptr = (p); \</div><div class='add'>+} while (0)</div><div class='add'>+#define ARY_SET_EMBED_LEN(ary, n) do { \</div><div class='add'>+    long tmp_n = (n); \</div><div class='add'>+    assert(ARY_EMBED_P(ary)); \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    RBASIC(ary)-&gt;flags &amp;= ~RARRAY_EMBED_LEN_MASK; \</div><div class='add'>+    RBASIC(ary)-&gt;flags |= (tmp_n) &lt;&lt; RARRAY_EMBED_LEN_SHIFT; \</div><div class='add'>+} while (0)</div><div class='add'>+#define ARY_SET_HEAP_LEN(ary, n) do { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    RARRAY(ary)-&gt;as.heap.len = (n); \</div><div class='add'>+} while (0)</div><div class='add'>+#define ARY_SET_LEN(ary, n) do { \</div><div class='add'>+    if (ARY_EMBED_P(ary)) { \</div><div class='add'>+        ARY_SET_EMBED_LEN((ary), (n)); \</div><div class='add'>+    } \</div><div class='add'>+    else { \</div><div class='add'>+        ARY_SET_HEAP_LEN((ary), (n)); \</div><div class='add'>+    } \</div><div class='add'>+    assert(RARRAY_LEN(ary) == (n)); \</div><div class='add'>+} while (0)</div><div class='add'>+#define ARY_INCREASE_PTR(ary, n) do  { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    RARRAY(ary)-&gt;as.heap.ptr += (n); \</div><div class='add'>+} while (0)</div><div class='add'>+#define ARY_INCREASE_LEN(ary, n) do  { \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    if (ARY_EMBED_P(ary)) { \</div><div class='add'>+        ARY_SET_EMBED_LEN((ary), RARRAY_LEN(ary)+(n)); \</div><div class='add'>+    } \</div><div class='add'>+    else { \</div><div class='add'>+        RARRAY(ary)-&gt;as.heap.len += (n); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define ARY_CAPA(ary) (ARY_EMBED_P(ary) ? RARRAY_EMBED_LEN_MAX : \</div><div class='add'>+		       ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : RARRAY(ary)-&gt;as.heap.aux.capa)</div><div class='add'>+#define ARY_SET_CAPA(ary, n) do { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    assert(!ARY_SHARED_P(ary)); \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    RARRAY(ary)-&gt;as.heap.aux.capa = (n); \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define ARY_SHARED(ary) (assert(ARY_SHARED_P(ary)), RARRAY(ary)-&gt;as.heap.aux.shared)</div><div class='add'>+#define ARY_SET_SHARED(ary, value) do { \</div><div class='add'>+    const VALUE _ary_ = (ary); \</div><div class='add'>+    const VALUE _value_ = (value); \</div><div class='add'>+    assert(!ARY_EMBED_P(_ary_)); \</div><div class='add'>+    assert(ARY_SHARED_P(_ary_)); \</div><div class='add'>+    assert(ARY_SHARED_ROOT_P(_value_)); \</div><div class='add'>+    RB_OBJ_WRITE(_ary_, &amp;RARRAY(_ary_)-&gt;as.heap.aux.shared, _value_); \</div><div class='add'>+} while (0)</div><div class='add'>+#define RARRAY_SHARED_ROOT_FLAG FL_USER5</div><div class='add'>+#define ARY_SHARED_ROOT_P(ary) (FL_TEST((ary), RARRAY_SHARED_ROOT_FLAG))</div><div class='add'>+#define ARY_SHARED_NUM(ary) \</div><div class='add'>+    (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)-&gt;as.heap.aux.capa)</div><div class='add'>+#define ARY_SHARED_OCCUPIED(ary) (ARY_SHARED_NUM(ary) == 1)</div><div class='add'>+#define ARY_SET_SHARED_NUM(ary, value) do { \</div><div class='add'>+    assert(ARY_SHARED_ROOT_P(ary)); \</div><div class='add'>+    RARRAY(ary)-&gt;as.heap.aux.capa = (value); \</div><div class='add'>+} while (0)</div><div class='add'>+#define FL_SET_SHARED_ROOT(ary) do { \</div><div class='add'>+    assert(!ARY_EMBED_P(ary)); \</div><div class='add'>+    FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define ARY_SET(a, i, v) RARRAY_ASET((assert(!ARY_SHARED_P(a)), (a)), (i), (v))</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_mem_clear(mem, size)</div><div class='del'>-    register VALUE *mem;</div><div class='del'>-    register long size;</div><div class='add'>+rb_mem_clear(register VALUE *mem, register long size)</div><div class='ctx'> {</div><div class='ctx'>     while (size--) {</div><div class='ctx'> 	*mem++ = Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+ary_mem_clear(VALUE ary, long beg, long size)</div><div class='add'>+{</div><div class='add'>+    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	rb_mem_clear(ptr + beg, size);</div><div class='add'>+    });</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void</div><div class='del'>-memfill(mem, size, val)</div><div class='del'>-    register VALUE *mem;</div><div class='del'>-    register long size;</div><div class='del'>-    register VALUE val;</div><div class='add'>+memfill(register VALUE *mem, register long size, register VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     while (size--) {</div><div class='ctx'> 	*mem++ = val;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define ARY_TMPLOCK  FL_USER1</div><div class='add'>+static void</div><div class='add'>+ary_memfill(VALUE ary, long beg, long size, VALUE val)</div><div class='add'>+{</div><div class='add'>+    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	memfill(ptr + beg, size, val);</div><div class='add'>+	RB_OBJ_WRITTEN(ary, Qundef, val);</div><div class='add'>+    });</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_memcpy0(VALUE ary, long beg, long argc, const VALUE *argv, VALUE buff_owner_ary)</div><div class='add'>+{</div><div class='add'>+#if 1</div><div class='add'>+    assert(!ARY_SHARED_P(buff_owner_ary));</div><div class='add'>+</div><div class='add'>+    if (argc &gt; (int)(128/sizeof(VALUE)) /* is magic number (cache line size) */) {</div><div class='add'>+	rb_gc_writebarrier_remember(buff_owner_ary);</div><div class='add'>+	RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	    MEMCPY(ptr+beg, argv, VALUE, argc);</div><div class='add'>+	});</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	int i;</div><div class='add'>+	RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	    for (i=0; i&lt;argc; i++) {</div><div class='add'>+		RB_OBJ_WRITE(buff_owner_ary, &amp;ptr[i+beg], argv[i]);</div><div class='add'>+	    }</div><div class='add'>+	});</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    /* giveup write barrier (traditional way) */</div><div class='add'>+    RARRAY_PTR(buff_owner_ary);</div><div class='add'>+    MEMCPY(RARRAY_PTR(ary)+beg, argv, VALUE, argc);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_memcpy(VALUE ary, long beg, long argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    ary_memcpy0(ary, beg, argc, argv, ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_resize_capa(VALUE ary, long capacity)</div><div class='add'>+{</div><div class='add'>+    assert(RARRAY_LEN(ary) &lt;= capacity);</div><div class='add'>+    assert(!OBJ_FROZEN(ary));</div><div class='add'>+    assert(!ARY_SHARED_P(ary));</div><div class='add'>+    if (capacity &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        if (ARY_EMBED_P(ary)) {</div><div class='add'>+            long len = ARY_EMBED_LEN(ary);</div><div class='add'>+            VALUE *ptr = ALLOC_N(VALUE, (capacity));</div><div class='add'>+            MEMCPY(ptr, ARY_EMBED_PTR(ary), VALUE, len);</div><div class='add'>+            FL_UNSET_EMBED(ary);</div><div class='add'>+            ARY_SET_PTR(ary, ptr);</div><div class='add'>+            ARY_SET_HEAP_LEN(ary, len);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+	    SIZED_REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, capacity, RARRAY(ary)-&gt;as.heap.aux.capa);</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_CAPA(ary, (capacity));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (!ARY_EMBED_P(ary)) {</div><div class='add'>+            long len = RARRAY_LEN(ary);</div><div class='add'>+	    const VALUE *ptr = RARRAY_CONST_PTR(ary);</div><div class='add'>+</div><div class='add'>+	    if (len &gt; capacity) len = capacity;</div><div class='add'>+            MEMCPY((VALUE *)RARRAY(ary)-&gt;as.ary, ptr, VALUE, len);</div><div class='add'>+            FL_SET_EMBED(ary);</div><div class='add'>+            ARY_SET_LEN(ary, len);</div><div class='add'>+	    ruby_xfree((VALUE *)ptr);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='del'>-rb_ary_modify_check(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+ary_shrink_capa(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (OBJ_FROZEN(ary)) rb_error_frozen("array");</div><div class='del'>-    if (FL_TEST(ary, ARY_TMPLOCK))</div><div class='del'>-	rb_raise(rb_eRuntimeError, "can't modify array during iteration");</div><div class='del'>-    if (!OBJ_TAINTED(ary) &amp;&amp; rb_safe_level() &gt;= 4)</div><div class='del'>-	rb_raise(rb_eSecurityError, "Insecure: can't modify array");</div><div class='add'>+    long capacity = ARY_HEAP_LEN(ary);</div><div class='add'>+    long old_capa = RARRAY(ary)-&gt;as.heap.aux.capa;</div><div class='add'>+    assert(!ARY_SHARED_P(ary));</div><div class='add'>+    assert(old_capa &gt;= capacity);</div><div class='add'>+    if (old_capa &gt; capacity)</div><div class='add'>+	REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, capacity);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-rb_ary_modify(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+ary_double_capa(VALUE ary, long min)</div><div class='add'>+{</div><div class='add'>+    long new_capa = ARY_CAPA(ary) / 2;</div><div class='add'>+</div><div class='add'>+    if (new_capa &lt; ARY_DEFAULT_SIZE) {</div><div class='add'>+	new_capa = ARY_DEFAULT_SIZE;</div><div class='add'>+    }</div><div class='add'>+    if (new_capa &gt;= ARY_MAX_SIZE - min) {</div><div class='add'>+	new_capa = (ARY_MAX_SIZE - min) / 2;</div><div class='add'>+    }</div><div class='add'>+    new_capa += min;</div><div class='add'>+    ary_resize_capa(ary, new_capa);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_ary_decrement_share(VALUE shared)</div><div class='add'>+{</div><div class='add'>+    if (shared) {</div><div class='add'>+	long num = ARY_SHARED_NUM(shared) - 1;</div><div class='add'>+	if (num == 0) {</div><div class='add'>+	    rb_ary_free(shared);</div><div class='add'>+	    rb_gc_force_recycle(shared);</div><div class='add'>+	}</div><div class='add'>+	else if (num &gt; 0) {</div><div class='add'>+	    ARY_SET_SHARED_NUM(shared, num);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_ary_unshare(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE shared = RARRAY(ary)-&gt;as.heap.aux.shared;</div><div class='add'>+    rb_ary_decrement_share(shared);</div><div class='add'>+    FL_UNSET_SHARED(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_ary_unshare_safe(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE *ptr;</div><div class='add'>+    if (ARY_SHARED_P(ary) &amp;&amp; !ARY_EMBED_P(ary)) {</div><div class='add'>+	rb_ary_unshare(ary);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_increment_share(VALUE shared)</div><div class='add'>+{</div><div class='add'>+    long num = ARY_SHARED_NUM(shared);</div><div class='add'>+    if (num &gt;= 0) {</div><div class='add'>+	ARY_SET_SHARED_NUM(shared, num + 1);</div><div class='add'>+    }</div><div class='add'>+    return shared;</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+rb_ary_set_shared(VALUE ary, VALUE shared)</div><div class='add'>+{</div><div class='add'>+    rb_ary_increment_share(shared);</div><div class='add'>+    FL_SET_SHARED(ary);</div><div class='add'>+    ARY_SET_SHARED(ary, shared);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_ary_modify_check(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    rb_check_frozen(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_ary_modify(VALUE ary)</div><div class='add'>+{</div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='del'>-    if (FL_TEST(ary, ELTS_SHARED)) {</div><div class='del'>-	ptr = ALLOC_N(VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-	FL_UNSET(ary, ELTS_SHARED);</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa = RARRAY(ary)-&gt;len;</div><div class='del'>-	MEMCPY(ptr, RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-	RARRAY(ary)-&gt;ptr = ptr;</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	long shared_len, len = RARRAY_LEN(ary);</div><div class='add'>+	VALUE shared = ARY_SHARED(ary);</div><div class='add'>+        if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+	    const VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='add'>+            FL_UNSET_SHARED(ary);</div><div class='add'>+            FL_SET_EMBED(ary);</div><div class='add'>+	    MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);</div><div class='add'>+            rb_ary_decrement_share(shared);</div><div class='add'>+            ARY_SET_EMBED_LEN(ary, len);</div><div class='add'>+        }</div><div class='add'>+	else if (ARY_SHARED_OCCUPIED(shared) &amp;&amp; len &gt; ((shared_len = RARRAY_LEN(shared))&gt;&gt;1)) {</div><div class='add'>+	    long shift = RARRAY_CONST_PTR(ary) - RARRAY_CONST_PTR(shared);</div><div class='add'>+	    FL_UNSET_SHARED(ary);</div><div class='add'>+	    ARY_SET_PTR(ary, RARRAY_CONST_PTR(shared));</div><div class='add'>+	    ARY_SET_CAPA(ary, shared_len);</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+		MEMMOVE(ptr, ptr+shift, VALUE, len);</div><div class='add'>+	    });</div><div class='add'>+	    FL_SET_EMBED(shared);</div><div class='add'>+	    rb_ary_decrement_share(shared);</div><div class='add'>+	}</div><div class='add'>+        else {</div><div class='add'>+            VALUE *ptr = ALLOC_N(VALUE, len);</div><div class='add'>+            MEMCPY(ptr, RARRAY_CONST_PTR(ary), VALUE, len);</div><div class='add'>+            rb_ary_unshare(ary);</div><div class='add'>+            ARY_SET_CAPA(ary, len);</div><div class='add'>+            ARY_SET_PTR(ary, ptr);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+	rb_gc_writebarrier_remember(ary);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_ensure_room_for_push(VALUE ary, long add_len)</div><div class='add'>+{</div><div class='add'>+    long old_len = RARRAY_LEN(ary);</div><div class='add'>+    long new_len = old_len + add_len;</div><div class='add'>+    long capa;</div><div class='add'>+</div><div class='add'>+    if (old_len &gt; ARY_MAX_SIZE - add_len) {</div><div class='add'>+	rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='add'>+    }</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	if (new_len &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+	    VALUE shared = ARY_SHARED(ary);</div><div class='add'>+	    if (ARY_SHARED_OCCUPIED(shared)) {</div><div class='add'>+		if (RARRAY_CONST_PTR(ary) - RARRAY_CONST_PTR(shared) + new_len &lt;= RARRAY_LEN(shared)) {</div><div class='add'>+		    rb_ary_modify_check(ary);</div><div class='add'>+		    return shared;</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    /* if array is shared, then it is likely it participate in push/shift pattern */</div><div class='add'>+		    rb_ary_modify(ary);</div><div class='add'>+		    capa = ARY_CAPA(ary);</div><div class='add'>+		    if (new_len &gt; capa - (capa &gt;&gt; 6)) {</div><div class='add'>+			ary_double_capa(ary, new_len);</div><div class='add'>+		    }</div><div class='add'>+		    return ary;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	rb_ary_modify(ary);</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+	rb_ary_modify_check(ary);</div><div class='add'>+    }</div><div class='add'>+    capa = ARY_CAPA(ary);</div><div class='add'>+    if (new_len &gt; capa) {</div><div class='add'>+	ary_double_capa(ary, new_len);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *      ary.freeze -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Calls Object#freeze on +ary+ to prevent any further</div><div class='add'>+ *  modification. A RuntimeError will be raised if a modification</div><div class='add'>+ *  attempt is made.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_freeze(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_freeze(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     return rb_obj_freeze(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.frozen?  -&gt; true or false</div><div class='add'>+ *     ary.frozen?  -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Return &lt;code&gt;true&lt;/code&gt; if this array is frozen (or temporarily frozen</div><div class='del'>- *  while being sorted).</div><div class='add'>+ *  Return +true+ if this array is frozen (or temporarily frozen</div><div class='add'>+ *  while being sorted). See also Object#frozen?</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_frozen_p(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_frozen_p(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (OBJ_FROZEN(ary)) return Qtrue;</div><div class='del'>-    if (FL_TEST(ary, ARY_TMPLOCK)) return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE ary_alloc _((VALUE));</div><div class='del'>-static VALUE</div><div class='del'>-ary_alloc(klass)</div><div class='del'>-    VALUE klass;</div><div class='add'>+/* This can be used to take a snapshot of an array (with</div><div class='add'>+   e.g. rb_ary_replace) and check later whether the array has been</div><div class='add'>+   modified from the snapshot.  The snapshot is cheap, though if</div><div class='add'>+   something does modify the array it will pay the cost of copying</div><div class='add'>+   it.  If Array#pop or Array#shift has been called, the array will</div><div class='add'>+   be still shared with the snapshot, but the array length will</div><div class='add'>+   differ. */</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_shared_with_p(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(ary, struct RArray);</div><div class='del'>-    OBJSETUP(ary, klass, T_ARRAY);</div><div class='del'>-</div><div class='del'>-    ary-&gt;len = 0;</div><div class='del'>-    ary-&gt;ptr = 0;</div><div class='del'>-    ary-&gt;aux.capa = 0;</div><div class='add'>+    if (!ARY_EMBED_P(ary1) &amp;&amp; ARY_SHARED_P(ary1) &amp;&amp;</div><div class='add'>+	!ARY_EMBED_P(ary2) &amp;&amp; ARY_SHARED_P(ary2) &amp;&amp;</div><div class='add'>+	RARRAY(ary1)-&gt;as.heap.aux.shared == RARRAY(ary2)-&gt;as.heap.aux.shared &amp;&amp;</div><div class='add'>+	RARRAY(ary1)-&gt;as.heap.len == RARRAY(ary2)-&gt;as.heap.len) {</div><div class='add'>+	return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ary_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    NEWOBJ_OF(ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));</div><div class='add'>+    /* Created array is:</div><div class='add'>+     *   FL_SET_EMBED((VALUE)ary);</div><div class='add'>+     *   ARY_SET_EMBED_LEN((VALUE)ary, 0);</div><div class='add'>+     */</div><div class='ctx'>     return (VALUE)ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_new(klass, len)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    long len;</div><div class='add'>+empty_ary_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = ary_alloc(klass);</div><div class='add'>+    RUBY_DTRACE_CREATE_HOOK(ARRAY, 0);</div><div class='add'>+    return ary_alloc(klass);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (len &lt; 0) {</div><div class='add'>+static VALUE</div><div class='add'>+ary_new(VALUE klass, long capa)</div><div class='add'>+{</div><div class='add'>+    VALUE ary,*ptr;</div><div class='add'>+</div><div class='add'>+    if (capa &lt; 0) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "negative array size (or size too big)");</div><div class='ctx'>     }</div><div class='del'>-    if (len &gt; 0 &amp;&amp; len * sizeof(VALUE) &lt;= len) {</div><div class='add'>+    if (capa &gt; ARY_MAX_SIZE) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "array size too big");</div><div class='ctx'>     }</div><div class='del'>-    if (len == 0) len++;</div><div class='del'>-    RARRAY(ary)-&gt;ptr = ALLOC_N(VALUE, len);</div><div class='del'>-    RARRAY(ary)-&gt;aux.capa = len;</div><div class='add'>+</div><div class='add'>+    RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);</div><div class='add'>+</div><div class='add'>+    ary = ary_alloc(klass);</div><div class='add'>+    if (capa &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+	ptr = ALLOC_N(VALUE, capa);</div><div class='add'>+        FL_UNSET_EMBED(ary);</div><div class='add'>+        ARY_SET_PTR(ary, ptr);</div><div class='add'>+        ARY_SET_CAPA(ary, capa);</div><div class='add'>+        ARY_SET_HEAP_LEN(ary, 0);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_new2(len)</div><div class='del'>-    long len;</div><div class='add'>+rb_ary_new_capa(long capa)</div><div class='ctx'> {</div><div class='del'>-    return ary_new(rb_cArray, len);</div><div class='add'>+    return ary_new(rb_cArray, capa);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_new()</div><div class='add'>+rb_ary_new(void)</div><div class='ctx'> {</div><div class='del'>-    return rb_ary_new2(ARY_DEFAULT_SIZE);</div><div class='add'>+    return rb_ary_new2(RARRAY_EMBED_LEN_MAX);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-#define va_init_list(a,b) va_start(a,b)</div><div class='del'>-#else</div><div class='del'>-#include &lt;varargs.h&gt;</div><div class='del'>-#define va_init_list(a,b) va_start(a)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-rb_ary_new3(long n, ...)</div><div class='del'>-#else</div><div class='del'>-rb_ary_new3(n, va_alist)</div><div class='del'>-    long n;</div><div class='del'>-    va_dcl</div><div class='del'>-#endif</div><div class='add'>+(rb_ary_new_from_args)(long n, ...)</div><div class='ctx'> {</div><div class='ctx'>     va_list ar;</div><div class='ctx'>     VALUE ary;</div><div class='hunk'>@@ -167,120 +510,251 @@ rb_ary_new3(n, va_alist)</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new2(n);</div><div class='ctx'> </div><div class='del'>-    va_init_list(ar, n);</div><div class='add'>+    va_start(ar, n);</div><div class='ctx'>     for (i=0; i&lt;n; i++) {</div><div class='del'>-	RARRAY(ary)-&gt;ptr[i] = va_arg(ar, VALUE);</div><div class='add'>+	ARY_SET(ary, i, va_arg(ar, VALUE));</div><div class='ctx'>     }</div><div class='ctx'>     va_end(ar);</div><div class='ctx'> </div><div class='del'>-    RARRAY(ary)-&gt;len = n;</div><div class='add'>+    ARY_SET_LEN(ary, n);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_new4(n, elts)</div><div class='del'>-    long n;</div><div class='del'>-    const VALUE *elts;</div><div class='add'>+rb_ary_tmp_new_from_values(VALUE klass, long n, const VALUE *elts)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary;</div><div class='ctx'> </div><div class='del'>-    ary = rb_ary_new2(n);</div><div class='add'>+    ary = ary_new(klass, n);</div><div class='ctx'>     if (n &gt; 0 &amp;&amp; elts) {</div><div class='del'>-	MEMCPY(RARRAY(ary)-&gt;ptr, elts, VALUE, n);</div><div class='add'>+	ary_memcpy(ary, 0, n, elts);</div><div class='add'>+	ARY_SET_LEN(ary, n);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /* This assignment to len will be moved to the above "if" block in Ruby 1.9 */</div><div class='del'>-    RARRAY(ary)-&gt;len = n;</div><div class='del'>-</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_assoc_new(car, cdr)</div><div class='del'>-    VALUE car, cdr;</div><div class='add'>+rb_ary_new_from_values(long n, const VALUE *elts)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary;</div><div class='add'>+    return rb_ary_tmp_new_from_values(rb_cArray, n, elts);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    ary = rb_ary_new2(2);</div><div class='del'>-    RARRAY(ary)-&gt;ptr[0] = car;</div><div class='del'>-    RARRAY(ary)-&gt;ptr[1] = cdr;</div><div class='del'>-    RARRAY(ary)-&gt;len = 2;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_tmp_new(long capa)</div><div class='add'>+{</div><div class='add'>+    return ary_new(0, capa);</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_ary_tmp_new_fill(long capa)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = ary_new(0, capa);</div><div class='add'>+    ary_memfill(ary, 0, capa, Qnil);</div><div class='add'>+    ARY_SET_LEN(ary, capa);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_ary_free(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (ARY_OWNS_HEAP_P(ary)) {</div><div class='add'>+	RB_DEBUG_COUNTER_INC(obj_ary_ptr);</div><div class='add'>+	ruby_sized_xfree((void *)ARY_HEAP_PTR(ary), ARY_HEAP_SIZE(ary));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	RB_DEBUG_COUNTER_INC(obj_ary_embed);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_FUNC_EXPORTED size_t</div><div class='add'>+rb_ary_memsize(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (ARY_OWNS_HEAP_P(ary)) {</div><div class='add'>+	return ARY_CAPA(ary) * sizeof(VALUE);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ary_discard(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    rb_ary_free(ary);</div><div class='add'>+    RBASIC(ary)-&gt;flags |= RARRAY_EMBED_FLAG;</div><div class='add'>+    RBASIC(ary)-&gt;flags &amp;= ~RARRAY_EMBED_LEN_MASK;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-to_ary(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+ary_make_shared(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='add'>+    assert(!ARY_EMBED_P(ary));</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	return ARY_SHARED(ary);</div><div class='add'>+    }</div><div class='add'>+    else if (ARY_SHARED_ROOT_P(ary)) {</div><div class='add'>+	return ary;</div><div class='add'>+    }</div><div class='add'>+    else if (OBJ_FROZEN(ary)) {</div><div class='add'>+	ary_shrink_capa(ary);</div><div class='add'>+	FL_SET_SHARED_ROOT(ary);</div><div class='add'>+	ARY_SET_SHARED_NUM(ary, 1);</div><div class='add'>+	return ary;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);</div><div class='add'>+	NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));</div><div class='add'>+        FL_UNSET_EMBED(shared);</div><div class='add'>+</div><div class='add'>+	ARY_SET_LEN((VALUE)shared, capa);</div><div class='add'>+	ARY_SET_PTR((VALUE)shared, RARRAY_CONST_PTR(ary));</div><div class='add'>+	ary_mem_clear((VALUE)shared, len, capa - len);</div><div class='add'>+	FL_SET_SHARED_ROOT(shared);</div><div class='add'>+	ARY_SET_SHARED_NUM((VALUE)shared, 1);</div><div class='add'>+	FL_SET_SHARED(ary);</div><div class='add'>+	ARY_SET_SHARED(ary, (VALUE)shared);</div><div class='add'>+	OBJ_FREEZE(shared);</div><div class='add'>+	return (VALUE)shared;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_make_substitution(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+    if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+	VALUE subst = rb_ary_new2(len);</div><div class='add'>+	ary_memcpy(subst, 0, len, RARRAY_CONST_PTR(ary));</div><div class='add'>+        ARY_SET_EMBED_LEN(subst, len);</div><div class='add'>+        return subst;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_ary_increment_share(ary_make_shared(ary));</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_check_array_type(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_assoc_new(VALUE car, VALUE cdr)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_new3(2, car, cdr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_to_array_type(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return rb_check_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='add'>+    return rb_convert_type_with_id(ary, T_ARRAY, "Array", idTo_ary);</div><div class='ctx'> }</div><div class='add'>+#define to_ary rb_to_array_type</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_check_array_type(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_check_convert_type_with_id(ary, T_ARRAY, "Array", idTo_ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Array.try_convert(obj) -&gt; array or nil</div><div class='add'>+ *</div><div class='add'>+ *  Tries to convert +obj+ into an array, using +to_ary+ method.  Returns the</div><div class='add'>+ *  converted array or +nil+ if +obj+ cannot be converted for any reason.</div><div class='add'>+ *  This method can be used to check if an argument is an array.</div><div class='add'>+ *</div><div class='add'>+ *     Array.try_convert([1])   #=&gt; [1]</div><div class='add'>+ *     Array.try_convert("1")   #=&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *     if tmp = Array.try_convert(arg)</div><div class='add'>+ *       # the argument is an array</div><div class='add'>+ *     elsif tmp = String.try_convert(arg)</div><div class='add'>+ *       # the argument is a string</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-static VALUE rb_ary_replace _((VALUE, VALUE));</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_s_try_convert(VALUE dummy, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_check_array_type(ary);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Array.new(size=0, obj=nil)</div><div class='add'>+ *     Array.new(size=0, default=nil)</div><div class='ctx'>  *     Array.new(array)</div><div class='ctx'>  *     Array.new(size) {|index| block }</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array. In the first form, the new array is</div><div class='del'>- *  empty. In the second it is created with _size_ copies of _obj_</div><div class='del'>- *  (that is, _size_ references to the same</div><div class='del'>- *  _obj_). The third form creates a copy of the array</div><div class='del'>- *  passed as a parameter (the array is generated by calling</div><div class='del'>- *  to_ary  on the parameter). In the last form, an array</div><div class='del'>- *  of the given size is created. Each element in this array is</div><div class='del'>- *  calculated by passing the element's index to the given block and</div><div class='del'>- *  storing the return value.</div><div class='del'>- *</div><div class='del'>- *     Array.new</div><div class='del'>- *     Array.new(2)</div><div class='del'>- *     Array.new(5, "A")</div><div class='del'>- * </div><div class='del'>- *     # only one copy of the object is created</div><div class='add'>+ *  Returns a new array.</div><div class='add'>+ *</div><div class='add'>+ *  In the first form, if no arguments are sent, the new array will be empty.</div><div class='add'>+ *  When a +size+ and an optional +default+ are sent, an array is created with</div><div class='add'>+ *  +size+ copies of +default+.  Take notice that all elements will reference the</div><div class='add'>+ *  same object +default+.</div><div class='add'>+ *</div><div class='add'>+ *  The second form creates a copy of the array passed as a parameter (the</div><div class='add'>+ *  array is generated by calling to_ary on the parameter).</div><div class='add'>+ *</div><div class='add'>+ *    first_array = ["Matz", "Guido"]</div><div class='add'>+ *</div><div class='add'>+ *    second_array = Array.new(first_array) #=&gt; ["Matz", "Guido"]</div><div class='add'>+ *</div><div class='add'>+ *    first_array.equal? second_array       #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  In the last form, an array of the given size is created.  Each element in</div><div class='add'>+ *  this array is created by passing the element's index to the given block</div><div class='add'>+ *  and storing the return value.</div><div class='add'>+ *</div><div class='add'>+ *    Array.new(3){ |index| index ** 2 }</div><div class='add'>+ *    # =&gt; [0, 1, 4]</div><div class='add'>+ *</div><div class='add'>+ *  == Common gotchas</div><div class='add'>+ *</div><div class='add'>+ *  When sending the second parameter, the same object will be used as the</div><div class='add'>+ *  value for all the array elements:</div><div class='add'>+ *</div><div class='ctx'>  *     a = Array.new(2, Hash.new)</div><div class='add'>+ *     # =&gt; [{}, {}]</div><div class='add'>+ *</div><div class='ctx'>  *     a[0]['cat'] = 'feline'</div><div class='del'>- *     a</div><div class='add'>+ *     a # =&gt; [{"cat"=&gt;"feline"}, {"cat"=&gt;"feline"}]</div><div class='add'>+ *</div><div class='ctx'>  *     a[1]['cat'] = 'Felix'</div><div class='del'>- *     a</div><div class='del'>- * </div><div class='del'>- *     # here multiple copies are created</div><div class='add'>+ *     a # =&gt; [{"cat"=&gt;"Felix"}, {"cat"=&gt;"Felix"}]</div><div class='add'>+ *</div><div class='add'>+ *  Since all the Array elements store the same hash, changes to one of them</div><div class='add'>+ *  will affect them all.</div><div class='add'>+ *</div><div class='add'>+ *  If multiple copies are what you want, you should use the block</div><div class='add'>+ *  version which uses the result of that block each time an element</div><div class='add'>+ *  of the array needs to be initialized:</div><div class='add'>+ *</div><div class='ctx'>  *     a = Array.new(2) { Hash.new }</div><div class='ctx'>  *     a[0]['cat'] = 'feline'</div><div class='del'>- *     a</div><div class='del'>- * </div><div class='del'>- *     squares = Array.new(5) {|i| i*i}</div><div class='del'>- *     squares</div><div class='del'>- * </div><div class='del'>- *     copy = Array.new(squares)</div><div class='add'>+ *     a # =&gt; [{"cat"=&gt;"feline"}, {}]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_initialize(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_initialize(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long len;</div><div class='ctx'>     VALUE size, val;</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    if (rb_scan_args(argc, argv, "02", &amp;size, &amp;val) == 0) {</div><div class='del'>-	RARRAY(ary)-&gt;len = 0;</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	if (ARY_OWNS_HEAP_P(ary) &amp;&amp; RARRAY_CONST_PTR(ary) != 0) {</div><div class='add'>+	    ruby_sized_xfree((void *)RARRAY_CONST_PTR(ary), ARY_HEAP_SIZE(ary));</div><div class='add'>+	}</div><div class='add'>+        rb_ary_unshare_safe(ary);</div><div class='add'>+        FL_SET_EMBED(ary);</div><div class='add'>+	ARY_SET_EMBED_LEN(ary, 0);</div><div class='ctx'> 	if (rb_block_given_p()) {</div><div class='ctx'> 	    rb_warning("given block not used");</div><div class='ctx'> 	}</div><div class='ctx'> 	return ary;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;size, &amp;val);</div><div class='ctx'>     if (argc == 1 &amp;&amp; !FIXNUM_P(size)) {</div><div class='ctx'> 	val = rb_check_array_type(size);</div><div class='ctx'> 	if (!NIL_P(val)) {</div><div class='hunk'>@@ -290,16 +764,16 @@ rb_ary_initialize(argc, argv, ary)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     len = NUM2LONG(size);</div><div class='add'>+    /* NUM2LONG() may call size.to_int, ary can be frozen, modified, etc */</div><div class='ctx'>     if (len &lt; 0) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "negative array size");</div><div class='ctx'>     }</div><div class='del'>-    if (len &gt; 0 &amp;&amp; len * (long)sizeof(VALUE) &lt;= len) {</div><div class='add'>+    if (len &gt; ARY_MAX_SIZE) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "array size too big");</div><div class='ctx'>     }</div><div class='del'>-    if (len &gt; RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, len);</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa = len;</div><div class='del'>-    }</div><div class='add'>+    /* recheck after argument conversion */</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    ary_resize_capa(ary, len);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='ctx'> 	long i;</div><div class='ctx'> </div><div class='hunk'>@@ -308,339 +782,490 @@ rb_ary_initialize(argc, argv, ary)</div><div class='ctx'> 	}</div><div class='ctx'> 	for (i=0; i&lt;len; i++) {</div><div class='ctx'> 	    rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));</div><div class='del'>-	    RARRAY(ary)-&gt;len = i + 1;</div><div class='add'>+	    ARY_SET_LEN(ary, i + 1);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	memfill(RARRAY(ary)-&gt;ptr, len, val);</div><div class='del'>-	RARRAY(ary)-&gt;len = len;</div><div class='add'>+	ary_memfill(ary, 0, len, val);</div><div class='add'>+	ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/* </div><div class='del'>-* Returns a new array populated with the given objects. </div><div class='del'>-*</div><div class='del'>-*   Array.[]( 1, 'a', /^A/ )</div><div class='del'>-*   Array[ 1, 'a', /^A/ ]</div><div class='del'>-*   [ 1, 'a', /^A/ ]</div><div class='del'>-*/</div><div class='add'>+/*</div><div class='add'>+ * Returns a new array populated with the given objects.</div><div class='add'>+ *</div><div class='add'>+ *   Array.[]( 1, 'a', /^A/ ) # =&gt; [1, "a", /^A/]</div><div class='add'>+ *   Array[ 1, 'a', /^A/ ]    # =&gt; [1, "a", /^A/]</div><div class='add'>+ *   [ 1, 'a', /^A/ ]         # =&gt; [1, "a", /^A/]</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_s_create(argc, argv, klass)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE klass;</div><div class='add'>+rb_ary_s_create(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = ary_alloc(klass);</div><div class='del'>-</div><div class='del'>-    if (argc &gt; 0) {</div><div class='del'>-	RARRAY(ary)-&gt;ptr = ALLOC_N(VALUE, argc);</div><div class='del'>-	MEMCPY(RARRAY(ary)-&gt;ptr, argv, VALUE, argc);</div><div class='add'>+    VALUE ary = ary_new(klass, argc);</div><div class='add'>+    if (argc &gt; 0 &amp;&amp; argv) {</div><div class='add'>+        ary_memcpy(ary, 0, argc, argv);</div><div class='add'>+        ARY_SET_LEN(ary, argc);</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = RARRAY(ary)-&gt;aux.capa = argc;</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_ary_store(ary, idx, val)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long idx;</div><div class='del'>-    VALUE val;</div><div class='add'>+rb_ary_store(VALUE ary, long idx, VALUE val)</div><div class='ctx'> {</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	idx += RARRAY(ary)-&gt;len;</div><div class='add'>+	idx += len;</div><div class='ctx'> 	if (idx &lt; 0) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld out of array",</div><div class='del'>-		    idx - RARRAY(ary)-&gt;len);</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+		     idx - len, -len);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+    else if (idx &gt;= ARY_MAX_SIZE) {</div><div class='add'>+	rb_raise(rb_eIndexError, "index %ld too big", idx);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    if (idx &gt;= RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	long new_capa = RARRAY(ary)-&gt;aux.capa / 2;</div><div class='add'>+    if (idx &gt;= ARY_CAPA(ary)) {</div><div class='add'>+	ary_double_capa(ary, idx);</div><div class='add'>+    }</div><div class='add'>+    if (idx &gt; len) {</div><div class='add'>+	ary_mem_clear(ary, len, idx - len + 1);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	if (new_capa &lt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	    new_capa = ARY_DEFAULT_SIZE;</div><div class='del'>-	}</div><div class='del'>-	new_capa += idx;</div><div class='del'>-	if (new_capa * (long)sizeof(VALUE) &lt;= new_capa) {</div><div class='del'>-	    rb_raise(rb_eArgError, "index too big");</div><div class='del'>-	}</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, new_capa);</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa = new_capa;</div><div class='add'>+    if (idx &gt;= len) {</div><div class='add'>+	ARY_SET_LEN(ary, idx + 1);</div><div class='add'>+    }</div><div class='add'>+    ARY_SET(ary, idx, val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_make_partial(VALUE ary, VALUE klass, long offset, long len)</div><div class='add'>+{</div><div class='add'>+    assert(offset &gt;= 0);</div><div class='add'>+    assert(len &gt;= 0);</div><div class='add'>+    assert(offset+len &lt;= RARRAY_LEN(ary));</div><div class='add'>+</div><div class='add'>+    if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        VALUE result = ary_alloc(klass);</div><div class='add'>+	ary_memcpy(result, 0, len, RARRAY_CONST_PTR(ary) + offset);</div><div class='add'>+        ARY_SET_EMBED_LEN(result, len);</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='del'>-    if (idx &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	rb_mem_clear(RARRAY(ary)-&gt;ptr + RARRAY(ary)-&gt;len,</div><div class='del'>-		     idx-RARRAY(ary)-&gt;len + 1);</div><div class='add'>+    else {</div><div class='add'>+        VALUE shared, result = ary_alloc(klass);</div><div class='add'>+        FL_UNSET_EMBED(result);</div><div class='add'>+</div><div class='add'>+        shared = ary_make_shared(ary);</div><div class='add'>+        ARY_SET_PTR(result, RARRAY_CONST_PTR(ary));</div><div class='add'>+        ARY_SET_LEN(result, RARRAY_LEN(ary));</div><div class='add'>+        rb_ary_set_shared(result, shared);</div><div class='add'>+</div><div class='add'>+        ARY_INCREASE_PTR(result, offset);</div><div class='add'>+        ARY_SET_LEN(result, len);</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_make_shared_copy(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return ary_make_partial(ary, rb_obj_class(ary), 0, RARRAY_LEN(ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+enum ary_take_pos_flags</div><div class='add'>+{</div><div class='add'>+    ARY_TAKE_FIRST = 0,</div><div class='add'>+    ARY_TAKE_LAST = 1</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-    if (idx &gt;= RARRAY(ary)-&gt;len) {</div><div class='del'>-	RARRAY(ary)-&gt;len = idx + 1;</div><div class='add'>+static VALUE</div><div class='add'>+ary_take_first_or_last(int argc, const VALUE *argv, VALUE ary, enum ary_take_pos_flags last)</div><div class='add'>+{</div><div class='add'>+    VALUE nv;</div><div class='add'>+    long n;</div><div class='add'>+    long len;</div><div class='add'>+    long offset = 0;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1", &amp;nv);</div><div class='add'>+    n = NUM2LONG(nv);</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (n &gt; len) {</div><div class='add'>+	n = len;</div><div class='add'>+    }</div><div class='add'>+    else if (n &lt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "negative array size");</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;ptr[idx] = val;</div><div class='add'>+    if (last) {</div><div class='add'>+	offset = len - n;</div><div class='add'>+    }</div><div class='add'>+    return ary_make_partial(ary, rb_cArray, offset, n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array &lt;&lt; obj            -&gt; array</div><div class='del'>- *  </div><div class='add'>+ *     ary &lt;&lt; obj            -&gt; ary</div><div class='add'>+ *</div><div class='ctx'>  *  Append---Pushes the given object on to the end of this array. This</div><div class='ctx'>  *  expression returns the array itself, so several appends</div><div class='ctx'>  *  may be chained together.</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 2 ] &lt;&lt; "c" &lt;&lt; "d" &lt;&lt; [ 3, 4 ]</div><div class='add'>+ *     a = [ 1, 2 ]</div><div class='add'>+ *     a &lt;&lt; "c" &lt;&lt; "d" &lt;&lt; [ 3, 4 ]</div><div class='add'>+ *             #=&gt;  [ 1, 2, "c", "d", [ 3, 4 ] ]</div><div class='add'>+ *     a</div><div class='ctx'>  *             #=&gt;  [ 1, 2, "c", "d", [ 3, 4 ] ]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_push(ary, item)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE item;</div><div class='add'>+rb_ary_push(VALUE ary, VALUE item)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_store(ary, RARRAY(ary)-&gt;len, item);</div><div class='add'>+    long idx = RARRAY_LEN(ary);</div><div class='add'>+    VALUE target_ary = ary_ensure_room_for_push(ary, 1);</div><div class='add'>+    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	RB_OBJ_WRITE(target_ary, &amp;ptr[idx], item);</div><div class='add'>+    });</div><div class='add'>+    ARY_SET_LEN(ary, idx + 1);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+VALUE</div><div class='add'>+rb_ary_cat(VALUE ary, const VALUE *argv, long len)</div><div class='add'>+{</div><div class='add'>+    long oldlen = RARRAY_LEN(ary);</div><div class='add'>+    VALUE target_ary = ary_ensure_room_for_push(ary, len);</div><div class='add'>+    ary_memcpy0(ary, oldlen, len, argv, target_ary);</div><div class='add'>+    ARY_SET_LEN(ary, oldlen + len);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.push(obj, ... )   -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Append---Pushes the given object(s) on to the end of this array. This</div><div class='add'>+ *     ary.push(obj, ... )   -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Append --- Pushes the given object(s) on to the end of this array. This</div><div class='ctx'>  *  expression returns the array itself, so several appends</div><div class='del'>- *  may be chained together.</div><div class='add'>+ *  may be chained together. See also Array#pop for the opposite</div><div class='add'>+ *  effect.</div><div class='ctx'>  *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.push("d", "e", "f")  </div><div class='add'>+ *     a.push("d", "e", "f")</div><div class='ctx'>  *             #=&gt; ["a", "b", "c", "d", "e", "f"]</div><div class='add'>+ *     [1, 2, 3].push(4).push(5)</div><div class='add'>+ *             #=&gt; [1, 2, 3, 4, 5]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_push_m(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_push_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    while (argc--) {</div><div class='del'>-	rb_ary_push(ary, *argv++);</div><div class='del'>-    }</div><div class='del'>-    return ary;</div><div class='add'>+    return rb_ary_cat(ary, argv, argc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_pop(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long n;</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    n = RARRAY_LEN(ary);</div><div class='add'>+    if (n == 0) return Qnil;</div><div class='add'>+    if (ARY_OWNS_HEAP_P(ary) &amp;&amp;</div><div class='add'>+	n * 3 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='add'>+	ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE)</div><div class='add'>+    {</div><div class='add'>+	ary_resize_capa(ary, n * 2);</div><div class='add'>+    }</div><div class='add'>+    --n;</div><div class='add'>+    ARY_SET_LEN(ary, n);</div><div class='add'>+    return RARRAY_AREF(ary, n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.pop  -&gt; obj or nil</div><div class='del'>- *  </div><div class='del'>- *  Removes the last element from &lt;i&gt;self&lt;/i&gt; and returns it, or</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; if the array is empty.</div><div class='del'>- *     </div><div class='del'>- *     a = [ "a", "m", "z" ]</div><div class='del'>- *     a.pop   #=&gt; "z"</div><div class='del'>- *     a       #=&gt; ["a", "m"]</div><div class='add'>+ *     ary.pop    -&gt; obj or nil</div><div class='add'>+ *     ary.pop(n) -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Removes the last element from +self+ and returns it, or</div><div class='add'>+ *  +nil+ if the array is empty.</div><div class='add'>+ *</div><div class='add'>+ *  If a number +n+ is given, returns an array of the last +n+ elements</div><div class='add'>+ *  (or less) just like &lt;code&gt;array.slice!(-n, n)&lt;/code&gt; does. See also</div><div class='add'>+ *  Array#push for the opposite effect.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d" ]</div><div class='add'>+ *     a.pop     #=&gt; "d"</div><div class='add'>+ *     a.pop(2)  #=&gt; ["b", "c"]</div><div class='add'>+ *     a         #=&gt; ["a"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_pop(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_pop_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_modify_check(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-    if (!FL_TEST(ary, ELTS_SHARED) &amp;&amp;</div><div class='del'>-	    RARRAY(ary)-&gt;len * 2 &lt; RARRAY(ary)-&gt;aux.capa &amp;&amp;</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa &gt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa = RARRAY(ary)-&gt;len * 2;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;aux.capa);</div><div class='add'>+    VALUE result;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	return rb_ary_pop(ary);</div><div class='ctx'>     }</div><div class='del'>-    return RARRAY(ary)-&gt;ptr[--RARRAY(ary)-&gt;len];</div><div class='add'>+</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);</div><div class='add'>+    ARY_INCREASE_LEN(ary, -RARRAY_LEN(result));</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ary_make_shared(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_shift(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (!FL_TEST(ary, ELTS_SHARED)) {</div><div class='del'>-	NEWOBJ(shared, struct RArray);</div><div class='del'>-	OBJSETUP(shared, rb_cArray, T_ARRAY);</div><div class='add'>+    VALUE top;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-	shared-&gt;len = RARRAY(ary)-&gt;len;</div><div class='del'>-	shared-&gt;ptr = RARRAY(ary)-&gt;ptr;</div><div class='del'>-	shared-&gt;aux.capa = RARRAY(ary)-&gt;aux.capa;</div><div class='del'>-	RARRAY(ary)-&gt;aux.shared = (VALUE)shared;</div><div class='del'>-	FL_SET(ary, ELTS_SHARED);</div><div class='del'>-	OBJ_FREEZE(shared);</div><div class='del'>-	return (VALUE)shared;</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (len == 0) return Qnil;</div><div class='add'>+    top = RARRAY_AREF(ary, 0);</div><div class='add'>+    if (!ARY_SHARED_P(ary)) {</div><div class='add'>+	if (len &lt; ARY_DEFAULT_SIZE) {</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+		MEMMOVE(ptr, ptr+1, VALUE, len-1);</div><div class='add'>+	    }); /* WB: no new reference */</div><div class='add'>+            ARY_INCREASE_LEN(ary, -1);</div><div class='add'>+	    return top;</div><div class='add'>+	}</div><div class='add'>+        assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX &lt; ARY_DEFAULT_SIZE */</div><div class='add'>+</div><div class='add'>+	ARY_SET(ary, 0, Qnil);</div><div class='add'>+	ary_make_shared(ary);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	return RARRAY(ary)-&gt;aux.shared;</div><div class='add'>+    else if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {</div><div class='add'>+	RARRAY_PTR_USE(ary, ptr, ptr[0] = Qnil);</div><div class='ctx'>     }</div><div class='add'>+    ARY_INCREASE_PTR(ary, 1);		/* shift ptr */</div><div class='add'>+    ARY_INCREASE_LEN(ary, -1);</div><div class='add'>+</div><div class='add'>+    return top;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.shift   -&gt;   obj or nil</div><div class='del'>- *  </div><div class='del'>- *  Returns the first element of &lt;i&gt;self&lt;/i&gt; and removes it (shifting all</div><div class='del'>- *  other elements down by one). Returns &lt;code&gt;nil&lt;/code&gt; if the array</div><div class='add'>+ *     ary.shift    -&gt; obj or nil</div><div class='add'>+ *     ary.shift(n) -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Removes the first element of +self+ and returns it (shifting all</div><div class='add'>+ *  other elements down by one). Returns +nil+ if the array</div><div class='ctx'>  *  is empty.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='add'>+ *  If a number +n+ is given, returns an array of the first +n+ elements</div><div class='add'>+ *  (or less) just like &lt;code&gt;array.slice!(0, n)&lt;/code&gt; does. With +ary+</div><div class='add'>+ *  containing only the remainder elements, not including what was shifted to</div><div class='add'>+ *  +new_ary+. See also Array#unshift for the opposite effect.</div><div class='add'>+ *</div><div class='ctx'>  *     args = [ "-m", "-q", "filename" ]</div><div class='del'>- *     args.shift   #=&gt; "-m"</div><div class='del'>- *     args         #=&gt; ["-q", "filename"]</div><div class='add'>+ *     args.shift     #=&gt; "-m"</div><div class='add'>+ *     args           #=&gt; ["-q", "filename"]</div><div class='add'>+ *</div><div class='add'>+ *     args = [ "-m", "-q", "filename" ]</div><div class='add'>+ *     args.shift(2)  #=&gt; ["-m", "-q"]</div><div class='add'>+ *     args           #=&gt; ["filename"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_shift(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE top;</div><div class='add'>+    VALUE result;</div><div class='add'>+    long n;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	return rb_ary_shift(ary);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-    top = RARRAY(ary)-&gt;ptr[0];</div><div class='del'>-    if (RARRAY_LEN(ary) &lt; ARY_DEFAULT_SIZE &amp;&amp; !FL_TEST(ary, ELTS_SHARED)) {</div><div class='del'>-	MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+1, VALUE, RARRAY_LEN(ary)-1);</div><div class='add'>+    result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);</div><div class='add'>+    n = RARRAY_LEN(result);</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {</div><div class='add'>+	  setup_occupied_shared:</div><div class='add'>+	    ary_mem_clear(ary, 0, n);</div><div class='add'>+	}</div><div class='add'>+        ARY_INCREASE_PTR(ary, n);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (!FL_TEST(ary, ELTS_SHARED)) {</div><div class='del'>-	    RARRAY(ary)-&gt;ptr[0] = Qnil;</div><div class='add'>+	if (RARRAY_LEN(ary) &lt; ARY_DEFAULT_SIZE) {</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+		MEMMOVE(ptr, ptr+n, VALUE, RARRAY_LEN(ary)-n);</div><div class='add'>+	    }); /* WB: no new reference */</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ary_make_shared(ary);</div><div class='add'>+	    goto setup_occupied_shared;</div><div class='ctx'> 	}</div><div class='del'>-	ary_make_shared(ary);</div><div class='del'>-	RARRAY(ary)-&gt;ptr++;		/* shift ptr */</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len--;</div><div class='add'>+    ARY_INCREASE_LEN(ary, -n);</div><div class='ctx'> </div><div class='del'>-    return top;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_unshift(ary, item)</div><div class='del'>-    VALUE ary, item;</div><div class='add'>+static VALUE</div><div class='add'>+ary_ensure_room_for_unshift(VALUE ary, int argc)</div><div class='ctx'> {</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    long new_len = len + argc;</div><div class='add'>+    long capa;</div><div class='add'>+    const VALUE *head, *sharedp;</div><div class='add'>+</div><div class='add'>+    if (len &gt; ARY_MAX_SIZE - argc) {</div><div class='add'>+	rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len == RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	long capa_inc = RARRAY(ary)-&gt;aux.capa / 2;</div><div class='del'>-	if (capa_inc &lt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	    capa_inc = ARY_DEFAULT_SIZE;</div><div class='add'>+</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	VALUE shared = ARY_SHARED(ary);</div><div class='add'>+	capa = RARRAY_LEN(shared);</div><div class='add'>+	if (ARY_SHARED_OCCUPIED(shared) &amp;&amp; capa &gt; new_len) {</div><div class='add'>+	    head = RARRAY_CONST_PTR(ary);</div><div class='add'>+	    sharedp = RARRAY_CONST_PTR(shared);</div><div class='add'>+	    goto makeroom_if_need;</div><div class='ctx'> 	}</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa += capa_inc;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;aux.capa);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /* sliding items */</div><div class='del'>-    MEMMOVE(RARRAY(ary)-&gt;ptr + 1, RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='add'>+    capa = ARY_CAPA(ary);</div><div class='add'>+    if (capa - (capa &gt;&gt; 6) &lt;= new_len) {</div><div class='add'>+	ary_double_capa(ary, new_len);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    RARRAY(ary)-&gt;len++;</div><div class='del'>-    RARRAY(ary)-&gt;ptr[0] = item;</div><div class='add'>+    /* use shared array for big "queues" */</div><div class='add'>+    if (new_len &gt; ARY_DEFAULT_SIZE * 4) {</div><div class='add'>+	/* make a room for unshifted items */</div><div class='add'>+	capa = ARY_CAPA(ary);</div><div class='add'>+	ary_make_shared(ary);</div><div class='ctx'> </div><div class='del'>-    return ary;</div><div class='add'>+	head = sharedp = RARRAY_CONST_PTR(ary);</div><div class='add'>+	goto makeroom;</div><div class='add'>+      makeroom_if_need:</div><div class='add'>+	if (head - sharedp &lt; argc) {</div><div class='add'>+	    long room;</div><div class='add'>+	  makeroom:</div><div class='add'>+	    room = capa - new_len;</div><div class='add'>+	    room -= room &gt;&gt; 4;</div><div class='add'>+	    MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);</div><div class='add'>+	    head = sharedp + argc + room;</div><div class='add'>+	}</div><div class='add'>+	ARY_SET_PTR(ary, head - argc);</div><div class='add'>+	assert(ARY_SHARED_OCCUPIED(ARY_SHARED(ary)));</div><div class='add'>+	return ARY_SHARED(ary);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* sliding items */</div><div class='add'>+	RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	    MEMMOVE(ptr + argc, ptr, VALUE, len);</div><div class='add'>+	});</div><div class='add'>+</div><div class='add'>+	return ary;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.unshift(obj, ...)  -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Prepends objects to the front of &lt;i&gt;array&lt;/i&gt;.</div><div class='del'>- *  other elements up one.</div><div class='del'>- *     </div><div class='add'>+ *     ary.unshift(obj, ...)  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Prepends objects to the front of +self+, moving other elements upwards.</div><div class='add'>+ *  See also Array#shift for the opposite effect.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "b", "c", "d" ]</div><div class='ctx'>  *     a.unshift("a")   #=&gt; ["a", "b", "c", "d"]</div><div class='ctx'>  *     a.unshift(1, 2)  #=&gt; [ 1, 2, "a", "b", "c", "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_unshift_m(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long len = RARRAY(ary)-&gt;len;</div><div class='del'>-</div><div class='del'>-    if (argc == 0) return ary;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    VALUE target_ary;</div><div class='ctx'> </div><div class='del'>-    /* make rooms by setting the last item */</div><div class='del'>-    rb_ary_store(ary, len + argc - 1, Qnil);</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	rb_ary_modify_check(ary);</div><div class='add'>+	return ary;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    /* sliding items */</div><div class='del'>-    MEMMOVE(RARRAY(ary)-&gt;ptr + argc, RARRAY(ary)-&gt;ptr, VALUE, len);</div><div class='del'>-    MEMCPY(RARRAY(ary)-&gt;ptr, argv, VALUE, argc);</div><div class='del'>-    </div><div class='add'>+    target_ary = ary_ensure_room_for_unshift(ary, argc);</div><div class='add'>+    ary_memcpy0(ary, 0, argc, argv, target_ary);</div><div class='add'>+    ARY_SET_LEN(ary, len + argc);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_ary_unshift(VALUE ary, VALUE item)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_unshift_m(1,&amp;item,ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* faster version - use this if you don't need to treat negative offset */</div><div class='ctx'> static inline VALUE</div><div class='del'>-rb_ary_elt(ary, offset)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long offset;</div><div class='add'>+rb_ary_elt(VALUE ary, long offset)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-    if (offset &lt; 0 || RARRAY(ary)-&gt;len &lt;= offset) {</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    if (len == 0) return Qnil;</div><div class='add'>+    if (offset &lt; 0 || len &lt;= offset) {</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    return RARRAY(ary)-&gt;ptr[offset];</div><div class='add'>+    return RARRAY_AREF(ary, offset);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_entry(ary, offset)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long offset;</div><div class='add'>+rb_ary_entry(VALUE ary, long offset)</div><div class='ctx'> {</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    const VALUE *ptr = RARRAY_CONST_PTR(ary);</div><div class='add'>+    if (len == 0) return Qnil;</div><div class='ctx'>     if (offset &lt; 0) {</div><div class='del'>-	offset += RARRAY(ary)-&gt;len;</div><div class='add'>+        offset += len;</div><div class='add'>+        if (offset &lt; 0) return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (len &lt;= offset) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    return rb_ary_elt(ary, offset);</div><div class='add'>+    return ptr[offset];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_subseq(ary, beg, len)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long beg, len;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='ctx'> {</div><div class='del'>-    VALUE klass, ary2, shared;</div><div class='del'>-    VALUE *ptr;</div><div class='add'>+    VALUE klass;</div><div class='add'>+    long alen = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    if (beg &gt; RARRAY(ary)-&gt;len) return Qnil;</div><div class='add'>+    if (beg &gt; alen) return Qnil;</div><div class='ctx'>     if (beg &lt; 0 || len &lt; 0) return Qnil;</div><div class='ctx'> </div><div class='del'>-    if (RARRAY(ary)-&gt;len &lt; len || RARRAY(ary)-&gt;len &lt; beg + len) {</div><div class='del'>-	len = RARRAY(ary)-&gt;len - beg;</div><div class='del'>-	if (len &lt; 0)</div><div class='del'>-	    len = 0;</div><div class='add'>+    if (alen &lt; len || alen &lt; beg + len) {</div><div class='add'>+	len = alen - beg;</div><div class='ctx'>     }</div><div class='ctx'>     klass = rb_obj_class(ary);</div><div class='ctx'>     if (len == 0) return ary_new(klass, 0);</div><div class='ctx'> </div><div class='del'>-    shared = ary_make_shared(ary);</div><div class='del'>-    ptr = RARRAY(ary)-&gt;ptr;</div><div class='del'>-    ary2 = ary_alloc(klass);</div><div class='del'>-    RARRAY(ary2)-&gt;ptr = ptr + beg;</div><div class='del'>-    RARRAY(ary2)-&gt;len = len;</div><div class='del'>-    RARRAY(ary2)-&gt;aux.shared = shared;</div><div class='del'>-    FL_SET(ary2, ELTS_SHARED);</div><div class='del'>-</div><div class='del'>-    return ary2;</div><div class='add'>+    return ary_make_partial(ary, klass, beg, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array[index]                -&gt; obj      or nil</div><div class='del'>- *     array[start, length]        -&gt; an_array or nil</div><div class='del'>- *     array[range]                -&gt; an_array or nil</div><div class='del'>- *     array.slice(index)          -&gt; obj      or nil</div><div class='del'>- *     array.slice(start, length)  -&gt; an_array or nil</div><div class='del'>- *     array.slice(range)          -&gt; an_array or nil</div><div class='add'>+ *     ary[index]                -&gt; obj     or nil</div><div class='add'>+ *     ary[start, length]        -&gt; new_ary or nil</div><div class='add'>+ *     ary[range]                -&gt; new_ary or nil</div><div class='add'>+ *     ary.slice(index)          -&gt; obj     or nil</div><div class='add'>+ *     ary.slice(start, length)  -&gt; new_ary or nil</div><div class='add'>+ *     ary.slice(range)          -&gt; new_ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Element Reference --- Returns the element at +index+, or returns a</div><div class='add'>+ *  subarray starting at the +start+ index and continuing for +length+</div><div class='add'>+ *  elements, or returns a subarray specified by +range+ of indices.</div><div class='ctx'>  *</div><div class='del'>- *  Element Reference---Returns the element at _index_,</div><div class='del'>- *  or returns a subarray starting at _start_ and</div><div class='del'>- *  continuing for _length_ elements, or returns a subarray</div><div class='del'>- *  specified by _range_.</div><div class='del'>- *  Negative indices count backward from the end of the</div><div class='del'>- *  array (-1 is the last element). Returns nil if the index</div><div class='del'>- *  (or starting index) are out of range.</div><div class='add'>+ *  Negative indices count backward from the end of the array (-1 is the last</div><div class='add'>+ *  element).  For +start+ and +range+ cases the starting index is just before</div><div class='add'>+ *  an element.  Additionally, an empty array is returned when the starting</div><div class='add'>+ *  index for an element range is at the end of the array.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if the index (or starting index) are out of range.</div><div class='ctx'>  *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d", "e" ]</div><div class='ctx'>  *     a[2] +  a[0] + a[1]    #=&gt; "cab"</div><div class='hunk'>@@ -652,44 +1277,44 @@ rb_ary_subseq(ary, beg, len)</div><div class='ctx'>  *     a[-3, 3]               #=&gt; [ "c", "d", "e" ]</div><div class='ctx'>  *     # special cases</div><div class='ctx'>  *     a[5]                   #=&gt; nil</div><div class='add'>+ *     a[6, 1]                #=&gt; nil</div><div class='ctx'>  *     a[5, 1]                #=&gt; []</div><div class='ctx'>  *     a[5..10]               #=&gt; []</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_aref(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_aref(int argc, const VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE arg;</div><div class='del'>-    long beg, len;</div><div class='del'>-</div><div class='add'>+    rb_check_arity(argc, 1, 2);</div><div class='ctx'>     if (argc == 2) {</div><div class='del'>-	if (SYMBOL_P(argv[0])) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "Symbol as array index");</div><div class='del'>-	}</div><div class='del'>-	beg = NUM2LONG(argv[0]);</div><div class='del'>-	len = NUM2LONG(argv[1]);</div><div class='del'>-	if (beg &lt; 0) {</div><div class='del'>-	    beg += RARRAY(ary)-&gt;len;</div><div class='del'>-	}</div><div class='del'>-	return rb_ary_subseq(ary, beg, len);</div><div class='add'>+	return rb_ary_aref2(ary, argv[0], argv[1]);</div><div class='ctx'>     }</div><div class='del'>-    if (argc != 1) {</div><div class='del'>-	rb_scan_args(argc, argv, "11", 0, 0);</div><div class='add'>+    return rb_ary_aref1(ary, argv[0]);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_aref2(VALUE ary, VALUE b, VALUE e)</div><div class='add'>+{</div><div class='add'>+    long beg = NUM2LONG(b);</div><div class='add'>+    long len = NUM2LONG(e);</div><div class='add'>+    if (beg &lt; 0) {</div><div class='add'>+	beg += RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='del'>-    arg = argv[0];</div><div class='add'>+    return rb_ary_subseq(ary, beg, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_aref1(VALUE ary, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    long beg, len;</div><div class='add'>+</div><div class='ctx'>     /* special case - speeding up */</div><div class='ctx'>     if (FIXNUM_P(arg)) {</div><div class='ctx'> 	return rb_ary_entry(ary, FIX2LONG(arg));</div><div class='ctx'>     }</div><div class='del'>-    if (SYMBOL_P(arg)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "Symbol as array index");</div><div class='del'>-    }</div><div class='ctx'>     /* check if idx is Range */</div><div class='del'>-    switch (rb_range_beg_len(arg, &amp;beg, &amp;len, RARRAY(ary)-&gt;len, 0)) {</div><div class='add'>+    switch (rb_range_beg_len(arg, &amp;beg, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='ctx'>       case Qfalse:</div><div class='ctx'> 	break;</div><div class='ctx'>       case Qnil:</div><div class='hunk'>@@ -700,129 +1325,106 @@ rb_ary_aref(argc, argv, ary)</div><div class='ctx'>     return rb_ary_entry(ary, NUM2LONG(arg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.at(index)   -&gt;   obj  or nil</div><div class='add'>+ *     ary.at(index)   -&gt;   obj  or nil</div><div class='ctx'>  *</div><div class='del'>- *  Returns the element at _index_. A</div><div class='del'>- *  negative index counts from the end of _self_.  Returns +nil+</div><div class='del'>- *  if the index is out of range. See also &lt;code&gt;Array#[]&lt;/code&gt;.</div><div class='del'>- *  (&lt;code&gt;Array#at&lt;/code&gt; is slightly faster than &lt;code&gt;Array#[]&lt;/code&gt;,</div><div class='del'>- *  as it does not accept ranges and so on.)</div><div class='add'>+ *  Returns the element at +index+. A negative index counts from the end of</div><div class='add'>+ *  +self+. Returns +nil+ if the index is out of range. See also</div><div class='add'>+ *  Array#[].</div><div class='ctx'>  *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d", "e" ]</div><div class='ctx'>  *     a.at(0)     #=&gt; "a"</div><div class='ctx'>  *     a.at(-1)    #=&gt; "e"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_at(ary, pos)</div><div class='del'>-    VALUE ary, pos;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_at(VALUE ary, VALUE pos)</div><div class='ctx'> {</div><div class='ctx'>     return rb_ary_entry(ary, NUM2LONG(pos));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.first   -&gt;   obj or nil</div><div class='del'>- *     array.first(n) -&gt; an_array</div><div class='add'>+ *     ary.first     -&gt;   obj or nil</div><div class='add'>+ *     ary.first(n)  -&gt;   new_ary</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the first element, or the first +n+ elements, of the array.</div><div class='del'>- *  If the array is empty, the first form returns &lt;code&gt;nil&lt;/code&gt;, and the</div><div class='del'>- *  second form returns an empty array.</div><div class='add'>+ *  If the array is empty, the first form returns +nil+, and the</div><div class='add'>+ *  second form returns an empty array. See also Array#last for</div><div class='add'>+ *  the opposite effect.</div><div class='ctx'>  *</div><div class='ctx'>  *     a = [ "q", "r", "s", "t" ]</div><div class='del'>- *     a.first    #=&gt; "q"</div><div class='del'>- *     a.first(1) #=&gt; ["q"]</div><div class='del'>- *     a.first(3) #=&gt; ["q", "r", "s"]</div><div class='add'>+ *     a.first     #=&gt; "q"</div><div class='add'>+ *     a.first(2)  #=&gt; ["q", "r"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_first(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_first(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-	return RARRAY(ary)-&gt;ptr[0];</div><div class='add'>+	if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+	return RARRAY_AREF(ary, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE nv, result;</div><div class='del'>-	long n, i;</div><div class='del'>-</div><div class='del'>-	rb_scan_args(argc, argv, "01", &amp;nv);</div><div class='del'>-	n = NUM2LONG(nv);</div><div class='del'>-	if (n &gt; RARRAY(ary)-&gt;len) n = RARRAY(ary)-&gt;len;</div><div class='del'>-	result = rb_ary_new2(n);</div><div class='del'>-	for (i=0; i&lt;n; i++) {</div><div class='del'>-	    rb_ary_push(result, RARRAY(ary)-&gt;ptr[i]);</div><div class='del'>-	}</div><div class='del'>-	return result;</div><div class='add'>+	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.last     -&gt;  obj or nil</div><div class='del'>- *     array.last(n)  -&gt;  an_array</div><div class='del'>- *  </div><div class='del'>- *  Returns the last element(s) of &lt;i&gt;self&lt;/i&gt;. If the array is empty,</div><div class='del'>- *  the first form returns &lt;code&gt;nil&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     [ "w", "x", "y", "z" ].last   #=&gt; "z"</div><div class='add'>+ *     ary.last     -&gt;  obj or nil</div><div class='add'>+ *     ary.last(n)  -&gt;  new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns the last element(s) of +self+. If the array is empty,</div><div class='add'>+ *  the first form returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#first for the opposite effect.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "w", "x", "y", "z" ]</div><div class='add'>+ *     a.last     #=&gt; "z"</div><div class='add'>+ *     a.last(2)  #=&gt; ["y", "z"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_last(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_last(int argc, const VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-	return RARRAY(ary)-&gt;ptr[RARRAY(ary)-&gt;len-1];</div><div class='add'>+	long len = RARRAY_LEN(ary);</div><div class='add'>+	if (len == 0) return Qnil;</div><div class='add'>+	return RARRAY_AREF(ary, len-1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE nv, result;</div><div class='del'>-	long n, i;</div><div class='del'>-</div><div class='del'>-	rb_scan_args(argc, argv, "01", &amp;nv);</div><div class='del'>-	n = NUM2LONG(nv);</div><div class='del'>-	if (n &gt; RARRAY(ary)-&gt;len) n = RARRAY(ary)-&gt;len;</div><div class='del'>-	result = rb_ary_new2(n);</div><div class='del'>-	for (i=RARRAY(ary)-&gt;len-n; n--; i++) {</div><div class='del'>-	    rb_ary_push(result, RARRAY(ary)-&gt;ptr[i]);</div><div class='del'>-	}</div><div class='del'>-	return result;</div><div class='add'>+	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.fetch(index)                    -&gt; obj</div><div class='del'>- *     array.fetch(index, default )          -&gt; obj</div><div class='del'>- *     array.fetch(index) {|index| block }   -&gt; obj</div><div class='del'>- *  </div><div class='del'>- *  Tries to return the element at position &lt;i&gt;index&lt;/i&gt;. If the index</div><div class='del'>- *  lies outside the array, the first form throws an</div><div class='del'>- *  &lt;code&gt;IndexError&lt;/code&gt; exception, the second form returns</div><div class='del'>- *  &lt;i&gt;default&lt;/i&gt;, and the third form returns the value of invoking</div><div class='del'>- *  the block, passing in the index. Negative values of &lt;i&gt;index&lt;/i&gt;</div><div class='del'>- *  count from the end of the array.</div><div class='del'>- *     </div><div class='add'>+ *     ary.fetch(index)                    -&gt; obj</div><div class='add'>+ *     ary.fetch(index, default)           -&gt; obj</div><div class='add'>+ *     ary.fetch(index) { |index| block }  -&gt; obj</div><div class='add'>+ *</div><div class='add'>+ *  Tries to return the element at position +index+, but throws an IndexError</div><div class='add'>+ *  exception if the referenced +index+ lies outside of the array bounds.  This</div><div class='add'>+ *  error can be prevented by supplying a second argument, which will act as a</div><div class='add'>+ *  +default+ value.</div><div class='add'>+ *</div><div class='add'>+ *  Alternatively, if a block is given it will only be executed when an</div><div class='add'>+ *  invalid +index+ is referenced.</div><div class='add'>+ *</div><div class='add'>+ *  Negative values of +index+ count from the end of the array.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ 11, 22, 33, 44 ]</div><div class='ctx'>  *     a.fetch(1)               #=&gt; 22</div><div class='ctx'>  *     a.fetch(-1)              #=&gt; 44</div><div class='ctx'>  *     a.fetch(4, 'cat')        #=&gt; "cat"</div><div class='del'>- *     a.fetch(4) { |i| i*i }   #=&gt; 16</div><div class='add'>+ *     a.fetch(100) { |i| puts "#{i} is out of bounds" }</div><div class='add'>+ *                              #=&gt; "100 is out of bounds"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_fetch(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_fetch(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE pos, ifnone;</div><div class='ctx'>     long block_given;</div><div class='hunk'>@@ -836,198 +1438,282 @@ rb_ary_fetch(argc, argv, ary)</div><div class='ctx'>     idx = NUM2LONG(pos);</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	idx +=  RARRAY(ary)-&gt;len;</div><div class='add'>+	idx +=  RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='del'>-    if (idx &lt; 0 || RARRAY(ary)-&gt;len &lt;= idx) {</div><div class='add'>+    if (idx &lt; 0 || RARRAY_LEN(ary) &lt;= idx) {</div><div class='ctx'> 	if (block_given) return rb_yield(pos);</div><div class='ctx'> 	if (argc == 1) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld out of array", idx);</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld outside of array bounds: %ld...%ld",</div><div class='add'>+			idx - (idx &lt; 0 ? RARRAY_LEN(ary) : 0), -RARRAY_LEN(ary), RARRAY_LEN(ary));</div><div class='ctx'> 	}</div><div class='ctx'> 	return ifnone;</div><div class='ctx'>     }</div><div class='del'>-    return RARRAY(ary)-&gt;ptr[idx];</div><div class='add'>+    return RARRAY_AREF(ary, idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.index(obj)   -&gt;  int or nil</div><div class='del'>- *  </div><div class='del'>- *  Returns the index of the first object in &lt;i&gt;self&lt;/i&gt; such that is </div><div class='del'>- *  &lt;code&gt;==&lt;/code&gt; to &lt;i&gt;obj&lt;/i&gt;. Returns &lt;code&gt;nil&lt;/code&gt; if</div><div class='del'>- *  no match is found.</div><div class='del'>- *     </div><div class='add'>+ *     ary.find_index(obj)             -&gt;  int or nil</div><div class='add'>+ *     ary.find_index { |item| block } -&gt;  int or nil</div><div class='add'>+ *     ary.find_index                  -&gt;  Enumerator</div><div class='add'>+ *     ary.index(obj)             -&gt;  int or nil</div><div class='add'>+ *     ary.index { |item| block } -&gt;  int or nil</div><div class='add'>+ *     ary.index                  -&gt;  Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the _index_ of the first object in +ary+ such that the object is</div><div class='add'>+ *  &lt;code&gt;==&lt;/code&gt; to +obj+.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given instead of an argument, returns the _index_ of the</div><div class='add'>+ *  first object for which the block returns +true+.  Returns +nil+ if no</div><div class='add'>+ *  match is found.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#rindex.</div><div class='add'>+ *</div><div class='add'>+ *  An Enumerator is returned if neither a block nor argument is given.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.index("b")   #=&gt; 1</div><div class='del'>- *     a.index("z")   #=&gt; nil</div><div class='add'>+ *     a.index("b")              #=&gt; 1</div><div class='add'>+ *     a.index("z")              #=&gt; nil</div><div class='add'>+ *     a.index { |x| x == "b" }  #=&gt; 1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_index(ary, val)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE val;</div><div class='add'>+rb_ary_index(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='add'>+    VALUE val;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	if (rb_equal(RARRAY(ary)-&gt;ptr[i], val))</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	    if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='add'>+		return LONG2NUM(i);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    val = argv[0];</div><div class='add'>+    if (rb_block_given_p())</div><div class='add'>+	rb_warn("given block not used");</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	VALUE e = RARRAY_AREF(ary, i);</div><div class='add'>+	if (rb_equal(e, val)) {</div><div class='ctx'> 	    return LONG2NUM(i);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.rindex(obj)    -&gt;  int or nil</div><div class='del'>- *  </div><div class='del'>- *  Returns the index of the last object in &lt;i&gt;array&lt;/i&gt; </div><div class='del'>- *  &lt;code&gt;==&lt;/code&gt; to &lt;i&gt;obj&lt;/i&gt;. Returns &lt;code&gt;nil&lt;/code&gt; if</div><div class='del'>- *  no match is found.</div><div class='del'>- *     </div><div class='add'>+ *     ary.rindex(obj)             -&gt;  int or nil</div><div class='add'>+ *     ary.rindex { |item| block } -&gt;  int or nil</div><div class='add'>+ *     ary.rindex                  -&gt;  Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the _index_ of the last object in +self+ &lt;code&gt;==&lt;/code&gt; to +obj+.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given instead of an argument, returns the _index_ of the</div><div class='add'>+ *  first object for which the block returns +true+, starting from the last</div><div class='add'>+ *  object.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no match is found.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#index.</div><div class='add'>+ *</div><div class='add'>+ *  If neither block nor argument is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "b", "b", "c" ]</div><div class='del'>- *     a.rindex("b")   #=&gt; 3</div><div class='del'>- *     a.rindex("z")   #=&gt; nil</div><div class='add'>+ *     a.rindex("b")             #=&gt; 3</div><div class='add'>+ *     a.rindex("z")             #=&gt; nil</div><div class='add'>+ *     a.rindex { |x| x == "b" } #=&gt; 3</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_rindex(ary, val)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE val;</div><div class='add'>+rb_ary_rindex(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long i = RARRAY(ary)-&gt;len;</div><div class='add'>+    VALUE val;</div><div class='add'>+    long i = RARRAY_LEN(ary), len;</div><div class='ctx'> </div><div class='del'>-    while (i--) {</div><div class='del'>-	if (i &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	    i = RARRAY(ary)-&gt;len;</div><div class='del'>-	    continue;</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+	while (i--) {</div><div class='add'>+	    if (RTEST(rb_yield(RARRAY_AREF(ary, i))))</div><div class='add'>+		return LONG2NUM(i);</div><div class='add'>+	    if (i &gt; (len = RARRAY_LEN(ary))) {</div><div class='add'>+		i = len;</div><div class='add'>+	    }</div><div class='ctx'> 	}</div><div class='del'>-	if (rb_equal(RARRAY(ary)-&gt;ptr[i], val))</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    val = argv[0];</div><div class='add'>+    if (rb_block_given_p())</div><div class='add'>+	rb_warn("given block not used");</div><div class='add'>+    while (i--) {</div><div class='add'>+	VALUE e = RARRAY_AREF(ary, i);</div><div class='add'>+	if (rb_equal(e, val)) {</div><div class='ctx'> 	    return LONG2NUM(i);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     array.indexes( i1, i2, ... iN )   -&gt; an_array</div><div class='del'>- *     array.indices( i1, i2, ... iN )   -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Deprecated; use &lt;code&gt;Array#values_at&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_indexes(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='del'>-{</div><div class='del'>-    VALUE new_ary;</div><div class='del'>-    long i;</div><div class='del'>-</div><div class='del'>-    rb_warn("Array#%s is deprecated; use Array#values_at", rb_id2name(rb_frame_last_func()));</div><div class='del'>-    new_ary = rb_ary_new2(argc);</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-	rb_ary_push(new_ary, rb_ary_aref(1, argv+i, ary));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new_ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_to_ary(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_ary_to_ary(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    if (TYPE(obj) == T_ARRAY) {</div><div class='del'>-	return obj;</div><div class='del'>-    }</div><div class='del'>-    if (rb_respond_to(obj, rb_intern("to_ary"))) {</div><div class='del'>-	return rb_convert_type(obj, T_ARRAY, "Array", "to_ary");</div><div class='del'>-    }</div><div class='add'>+    VALUE tmp = rb_check_array_type(obj);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(tmp)) return tmp;</div><div class='ctx'>     return rb_ary_new3(1, obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-rb_ary_splice(ary, beg, len, rpl)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long beg, len;</div><div class='del'>-    VALUE rpl;</div><div class='add'>+rb_ary_splice(VALUE ary, long beg, long len, const VALUE *rptr, long rlen)</div><div class='ctx'> {</div><div class='del'>-    long rlen;</div><div class='add'>+    long olen;</div><div class='add'>+    long rofs;</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);</div><div class='add'>+    olen = RARRAY_LEN(ary);</div><div class='ctx'>     if (beg &lt; 0) {</div><div class='del'>-	beg += RARRAY(ary)-&gt;len;</div><div class='add'>+	beg += olen;</div><div class='ctx'> 	if (beg &lt; 0) {</div><div class='del'>-	    beg -= RARRAY(ary)-&gt;len;</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld out of array", beg);</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+		     beg - olen, -olen);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len &lt; len || RARRAY(ary)-&gt;len &lt; beg + len) {</div><div class='del'>-	len = RARRAY(ary)-&gt;len - beg;</div><div class='add'>+    if (olen &lt; len || olen &lt; beg + len) {</div><div class='add'>+	len = olen - beg;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(rpl)) {</div><div class='del'>-	rlen = 0;</div><div class='add'>+    {</div><div class='add'>+	const VALUE *optr = RARRAY_CONST_PTR(ary);</div><div class='add'>+	rofs = (rptr &gt;= optr &amp;&amp; rptr &lt; optr + olen) ? rptr - optr : -1;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	rpl = rb_ary_to_ary(rpl);</div><div class='del'>-	rlen = RARRAY(rpl)-&gt;len;</div><div class='del'>-    }</div><div class='del'>-    rb_ary_modify(ary);</div><div class='ctx'> </div><div class='del'>-    if (beg &gt;= RARRAY(ary)-&gt;len) {</div><div class='del'>-	len = beg + rlen;</div><div class='del'>-	if (len &gt;= RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, len);</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa = len;</div><div class='add'>+    if (beg &gt;= olen) {</div><div class='add'>+	VALUE target_ary;</div><div class='add'>+	if (beg &gt; ARY_MAX_SIZE - rlen) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too big", beg);</div><div class='ctx'> 	}</div><div class='del'>-	rb_mem_clear(RARRAY(ary)-&gt;ptr + RARRAY(ary)-&gt;len, beg - RARRAY(ary)-&gt;len);</div><div class='add'>+	target_ary = ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */</div><div class='add'>+	len = beg + rlen;</div><div class='add'>+	ary_mem_clear(ary, olen, beg - olen);</div><div class='ctx'> 	if (rlen &gt; 0) {</div><div class='del'>-	    MEMCPY(RARRAY(ary)-&gt;ptr + beg, RARRAY(rpl)-&gt;ptr, VALUE, rlen);</div><div class='add'>+	    if (rofs != -1) rptr = RARRAY_CONST_PTR(ary) + rofs;</div><div class='add'>+	    ary_memcpy0(ary, beg, rlen, rptr, target_ary);</div><div class='ctx'> 	}</div><div class='del'>-	RARRAY(ary)-&gt;len = len;</div><div class='add'>+	ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	long alen;</div><div class='ctx'> </div><div class='del'>-	if (beg + len &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	    len = RARRAY(ary)-&gt;len - beg;</div><div class='add'>+	if (olen - len &gt; ARY_MAX_SIZE - rlen) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too big", olen + rlen - len);</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-	alen = RARRAY(ary)-&gt;len + rlen - len;</div><div class='del'>-	if (alen &gt;= RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, alen);</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa = alen;</div><div class='add'>+	rb_ary_modify(ary);</div><div class='add'>+	alen = olen + rlen - len;</div><div class='add'>+	if (alen &gt;= ARY_CAPA(ary)) {</div><div class='add'>+	    ary_double_capa(ary, alen);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	if (len != rlen) {</div><div class='del'>-	    MEMMOVE(RARRAY(ary)-&gt;ptr + beg + rlen, RARRAY(ary)-&gt;ptr + beg + len,</div><div class='del'>-		    VALUE, RARRAY(ary)-&gt;len - (beg + len));</div><div class='del'>-	    RARRAY(ary)-&gt;len = alen;</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr,</div><div class='add'>+			   MEMMOVE(ptr + beg + rlen, ptr + beg + len,</div><div class='add'>+				   VALUE, olen - (beg + len)));</div><div class='add'>+	    ARY_SET_LEN(ary, alen);</div><div class='ctx'> 	}</div><div class='ctx'> 	if (rlen &gt; 0) {</div><div class='del'>-	    MEMMOVE(RARRAY(ary)-&gt;ptr + beg, RARRAY(rpl)-&gt;ptr, VALUE, rlen);</div><div class='add'>+	    if (rofs != -1) rptr = RARRAY_CONST_PTR(ary) + rofs;</div><div class='add'>+	    MEMMOVE(RARRAY_PTR(ary) + beg, rptr, VALUE, rlen);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+void</div><div class='add'>+rb_ary_set_len(VALUE ary, long len)</div><div class='add'>+{</div><div class='add'>+    long capa;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "can't set length of shared ");</div><div class='add'>+    }</div><div class='add'>+    if (len &gt; (capa = (long)ARY_CAPA(ary))) {</div><div class='add'>+	rb_bug("probable buffer overflow: %ld for %ld", len, capa);</div><div class='add'>+    }</div><div class='add'>+    ARY_SET_LEN(ary, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * expands or shrinks \a ary to \a len elements.</div><div class='add'>+ * expanded region will be filled with Qnil.</div><div class='add'>+ * \param ary  an array</div><div class='add'>+ * \param len  new size</div><div class='add'>+ * \return     \a ary</div><div class='add'>+ * \post       the size of \a ary is \a len.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_resize(VALUE ary, long len)</div><div class='add'>+{</div><div class='add'>+    long olen;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    olen = RARRAY_LEN(ary);</div><div class='add'>+    if (len == olen) return ary;</div><div class='add'>+    if (len &gt; ARY_MAX_SIZE) {</div><div class='add'>+	rb_raise(rb_eIndexError, "index %ld too big", len);</div><div class='add'>+    }</div><div class='add'>+    if (len &gt; olen) {</div><div class='add'>+	if (len &gt;= ARY_CAPA(ary)) {</div><div class='add'>+	    ary_double_capa(ary, len);</div><div class='add'>+	}</div><div class='add'>+	ary_mem_clear(ary, olen, len - olen);</div><div class='add'>+	ARY_SET_LEN(ary, len);</div><div class='add'>+    }</div><div class='add'>+    else if (ARY_EMBED_P(ary)) {</div><div class='add'>+        ARY_SET_EMBED_LEN(ary, len);</div><div class='add'>+    }</div><div class='add'>+    else if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+	VALUE tmp[RARRAY_EMBED_LEN_MAX];</div><div class='add'>+	MEMCPY(tmp, ARY_HEAP_PTR(ary), VALUE, len);</div><div class='add'>+	ary_discard(ary);</div><div class='add'>+	MEMCPY((VALUE *)ARY_EMBED_PTR(ary), tmp, VALUE, len); /* WB: no new reference */</div><div class='add'>+        ARY_SET_EMBED_LEN(ary, len);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (olen &gt; len + ARY_DEFAULT_SIZE) {</div><div class='add'>+	    SIZED_REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, len, RARRAY(ary)-&gt;as.heap.aux.capa);</div><div class='add'>+	    ARY_SET_CAPA(ary, len);</div><div class='add'>+	}</div><div class='add'>+	ARY_SET_HEAP_LEN(ary, len);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array[index]         = obj                     -&gt;  obj</div><div class='del'>- *     array[start, length] = obj or an_array or nil  -&gt;  obj or an_array or nil</div><div class='del'>- *     array[range]         = obj or an_array or nil  -&gt;  obj or an_array or nil</div><div class='add'>+ *     ary[index]         = obj                      -&gt;  obj</div><div class='add'>+ *     ary[start, length] = obj or other_ary or nil  -&gt;  obj or other_ary or nil</div><div class='add'>+ *     ary[range]         = obj or other_ary or nil  -&gt;  obj or other_ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Element Assignment --- Sets the element at +index+, or replaces a subarray</div><div class='add'>+ *  from the +start+ index for +length+ elements, or replaces a subarray</div><div class='add'>+ *  specified by the +range+ of indices.</div><div class='add'>+ *</div><div class='add'>+ *  If indices are greater than the current capacity of the array, the array</div><div class='add'>+ *  grows automatically.  Elements are inserted into the array at +start+ if</div><div class='add'>+ *  +length+ is zero.</div><div class='add'>+ *</div><div class='add'>+ *  Negative indices will count backward from the end of the array.  For</div><div class='add'>+ *  +start+ and +range+ cases the starting index is just before an element.</div><div class='add'>+ *</div><div class='add'>+ *  An IndexError is raised if a negative index points past the beginning of</div><div class='add'>+ *  the array.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#push, and Array#unshift.</div><div class='ctx'>  *</div><div class='del'>- *  Element Assignment---Sets the element at _index_,</div><div class='del'>- *  or replaces a subarray starting at _start_ and</div><div class='del'>- *  continuing for _length_ elements, or replaces a subarray</div><div class='del'>- *  specified by _range_.  If indices are greater than</div><div class='del'>- *  the current capacity of the array, the array grows</div><div class='del'>- *  automatically. A negative indices will count backward</div><div class='del'>- *  from the end of the array. Inserts elements if _length_ is</div><div class='del'>- *  zero. If +nil+ is used in the second and third form,</div><div class='del'>- *  deletes elements from _self_. An +IndexError+ is raised if a</div><div class='del'>- *  negative index points past the beginning of the array. See also</div><div class='del'>- *  &lt;code&gt;Array#push&lt;/code&gt;, and &lt;code&gt;Array#unshift&lt;/code&gt;.</div><div class='del'>- * </div><div class='ctx'>  *     a = Array.new</div><div class='ctx'>  *     a[4] = "4";                 #=&gt; [nil, nil, nil, nil, "4"]</div><div class='ctx'>  *     a[0, 3] = [ 'a', 'b', 'c' ] #=&gt; ["a", "b", "c", nil, "4"]</div><div class='hunk'>@@ -1035,41 +1721,37 @@ rb_ary_splice(ary, beg, len, rpl)</div><div class='ctx'>  *     a[0, 2] = "?"               #=&gt; ["?", 2, nil, "4"]</div><div class='ctx'>  *     a[0..2] = "A"               #=&gt; ["A", "4"]</div><div class='ctx'>  *     a[-1]   = "Z"               #=&gt; ["A", "Z"]</div><div class='del'>- *     a[1..-1] = nil              #=&gt; ["A"]</div><div class='add'>+ *     a[1..-1] = nil              #=&gt; ["A", nil]</div><div class='add'>+ *     a[1..-1] = []               #=&gt; ["A"]</div><div class='add'>+ *     a[0, 0] = [ 1, 2 ]          #=&gt; [1, 2, "A"]</div><div class='add'>+ *     a[3, 0] = "B"               #=&gt; [1, 2, "A", "B"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_aset(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_aset(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long offset, beg, len;</div><div class='add'>+    VALUE rpl;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 3) {</div><div class='del'>-	if (SYMBOL_P(argv[0])) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "Symbol as array index");</div><div class='del'>-	}</div><div class='del'>-	if (SYMBOL_P(argv[1])) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "Symbol as subarray length");</div><div class='del'>-	}</div><div class='del'>-	rb_ary_splice(ary, NUM2LONG(argv[0]), NUM2LONG(argv[1]), argv[2]);</div><div class='del'>-	return argv[2];</div><div class='del'>-    }</div><div class='del'>-    if (argc != 2) {</div><div class='del'>-	rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);</div><div class='add'>+	rb_ary_modify_check(ary);</div><div class='add'>+	beg = NUM2LONG(argv[0]);</div><div class='add'>+	len = NUM2LONG(argv[1]);</div><div class='add'>+	goto range;</div><div class='ctx'>     }</div><div class='add'>+    rb_check_arity(argc, 2, 2);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='ctx'>     if (FIXNUM_P(argv[0])) {</div><div class='ctx'> 	offset = FIX2LONG(argv[0]);</div><div class='ctx'> 	goto fixnum;</div><div class='ctx'>     }</div><div class='del'>-    if (SYMBOL_P(argv[0])) {</div><div class='del'>-	rb_raise(rb_eTypeError, "Symbol as array index");</div><div class='del'>-    }</div><div class='del'>-    if (rb_range_beg_len(argv[0], &amp;beg, &amp;len, RARRAY(ary)-&gt;len, 1)) {</div><div class='add'>+    if (rb_range_beg_len(argv[0], &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='ctx'> 	/* check if idx is Range */</div><div class='del'>-	rb_ary_splice(ary, beg, len, argv[1]);</div><div class='del'>-	return argv[1];</div><div class='add'>+      range:</div><div class='add'>+	rpl = rb_ary_to_ary(argv[argc-1]);</div><div class='add'>+	rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR(rpl), RARRAY_LEN(rpl));</div><div class='add'>+	RB_GC_GUARD(rpl);</div><div class='add'>+	return argv[argc-1];</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     offset = NUM2LONG(argv[0]);</div><div class='hunk'>@@ -1080,88 +1762,108 @@ fixnum:</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.insert(index, obj...)  -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Inserts the given values before the element with the given index</div><div class='del'>- *  (which may be negative).</div><div class='del'>- *     </div><div class='add'>+ *     ary.insert(index, obj...)  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Inserts the given values before the element with the given +index+.</div><div class='add'>+ *</div><div class='add'>+ *  Negative indices count backwards from the end of the array, where +-1+ is</div><div class='add'>+ *  the last element. If a negative index is used, the given values will be</div><div class='add'>+ *  inserted after that element, so using an index of +-1+ will insert the</div><div class='add'>+ *  values at the end of the array.</div><div class='add'>+ *</div><div class='ctx'>  *     a = %w{ a b c d }</div><div class='ctx'>  *     a.insert(2, 99)         #=&gt; ["a", "b", 99, "c", "d"]</div><div class='ctx'>  *     a.insert(-2, 1, 2, 3)   #=&gt; ["a", "b", 99, "c", 1, 2, 3, "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_insert(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_insert(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long pos;</div><div class='ctx'> </div><div class='del'>-    if (argc == 1) return ary;</div><div class='del'>-    if (argc &lt; 1) {</div><div class='del'>-	rb_raise(rb_eArgError, "wrong number of arguments (at least 1)");</div><div class='del'>-    }</div><div class='add'>+    rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='ctx'>     pos = NUM2LONG(argv[0]);</div><div class='add'>+    if (argc == 1) return ary;</div><div class='ctx'>     if (pos == -1) {</div><div class='del'>-	pos = RARRAY(ary)-&gt;len;</div><div class='add'>+	pos = RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='del'>-    if (pos &lt; 0) {</div><div class='add'>+    else if (pos &lt; 0) {</div><div class='add'>+	long minpos = -RARRAY_LEN(ary) - 1;</div><div class='add'>+	if (pos &lt; minpos) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+		     pos, minpos);</div><div class='add'>+	}</div><div class='ctx'> 	pos++;</div><div class='ctx'>     }</div><div class='del'>-    rb_ary_splice(ary, pos, 0, rb_ary_new4(argc - 1, argv + 1));</div><div class='add'>+    rb_ary_splice(ary, pos, 0, argv + 1, argc - 1);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_length(VALUE ary);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_enum_length(VALUE ary, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_length(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.each {|item| block }   -&gt;   array</div><div class='del'>- *  </div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; once for each element in &lt;i&gt;self&lt;/i&gt;, passing that</div><div class='del'>- *  element as a parameter.</div><div class='del'>- *     </div><div class='add'>+ *     ary.each { |item| block }  -&gt; ary</div><div class='add'>+ *     ary.each                   -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the given block once for each element in +self+, passing that element</div><div class='add'>+ *  as a parameter.  Returns the array itself.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='ctx'>  *     a.each {|x| print x, " -- " }</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *  produces:</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     a -- b -- c --</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_each(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_each(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	rb_yield(RARRAY(ary)-&gt;ptr[i]);</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	rb_yield(RARRAY_AREF(ary, i));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.each_index {|index| block }  -&gt;  array</div><div class='del'>- *  </div><div class='del'>- *  Same as &lt;code&gt;Array#each&lt;/code&gt;, but passes the index of the element</div><div class='del'>- *  instead of the element itself.</div><div class='del'>- *     </div><div class='add'>+ *     ary.each_index { |index| block }  -&gt; ary</div><div class='add'>+ *     ary.each_index                    -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Same as Array#each, but passes the +index+ of the element instead of the</div><div class='add'>+ *  element itself.</div><div class='add'>+ *</div><div class='add'>+ *  An Enumerator is returned if no block is given.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='ctx'>  *     a.each_index {|x| print x, " -- " }</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *  produces:</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     0 -- 1 -- 2 --</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_each_index(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_each_index(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='ctx'> 	rb_yield(LONG2NUM(i));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -1169,29 +1871,32 @@ rb_ary_each_index(ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.reverse_each {|item| block } </div><div class='del'>- *  </div><div class='del'>- *  Same as &lt;code&gt;Array#each&lt;/code&gt;, but traverses &lt;i&gt;self&lt;/i&gt; in reverse</div><div class='del'>- *  order.</div><div class='del'>- *     </div><div class='add'>+ *     ary.reverse_each { |item| block }  -&gt; ary</div><div class='add'>+ *     ary.reverse_each                   -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Same as Array#each, but traverses +self+ in reverse order.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='ctx'>  *     a.reverse_each {|x| print x, " " }</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *  produces:</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     c b a</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_reverse_each(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reverse_each(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long len = RARRAY(ary)-&gt;len;</div><div class='add'>+    long len;</div><div class='ctx'> </div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='ctx'>     while (len--) {</div><div class='del'>-	rb_yield(RARRAY(ary)-&gt;ptr[len]);</div><div class='del'>-	if (RARRAY(ary)-&gt;len &lt; len) {</div><div class='del'>-	    len = RARRAY(ary)-&gt;len;</div><div class='add'>+	long nlen;</div><div class='add'>+	rb_yield(RARRAY_AREF(ary, len));</div><div class='add'>+	nlen = RARRAY_LEN(ary);</div><div class='add'>+	if (nlen &lt; len) {</div><div class='add'>+	    len = nlen;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -1199,555 +1904,899 @@ rb_ary_reverse_each(ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.length -&gt; int</div><div class='del'>- *  </div><div class='del'>- *  Returns the number of elements in &lt;i&gt;self&lt;/i&gt;. May be zero.</div><div class='del'>- *     </div><div class='add'>+ *     ary.length -&gt; int</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of elements in +self+. May be zero.</div><div class='add'>+ *</div><div class='ctx'>  *     [ 1, 2, 3, 4, 5 ].length   #=&gt; 5</div><div class='add'>+ *     [].length                  #=&gt; 0</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_length(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_length(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return LONG2NUM(RARRAY(ary)-&gt;len);</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    return LONG2NUM(len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.empty?   -&gt; true or false</div><div class='del'>- *  </div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;self&lt;/i&gt; array contains no elements.</div><div class='del'>- *     </div><div class='add'>+ *     ary.empty?   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +self+ contains no elements.</div><div class='add'>+ *</div><div class='ctx'>  *     [].empty?   #=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_empty_p(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_empty_p(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0)</div><div class='add'>+    if (RARRAY_LEN(ary) == 0)</div><div class='ctx'> 	return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_dup(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_dup(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE dup = rb_ary_new2(RARRAY(ary)-&gt;len);</div><div class='del'>-</div><div class='del'>-    DUPSETUP(dup, ary);</div><div class='del'>-    MEMCPY(RARRAY(dup)-&gt;ptr, RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-    RARRAY(dup)-&gt;len = RARRAY(ary)-&gt;len;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    VALUE dup = rb_ary_new2(len);</div><div class='add'>+    ary_memcpy(dup, 0, len, RARRAY_CONST_PTR(ary));</div><div class='add'>+    ARY_SET_LEN(dup, len);</div><div class='ctx'>     return dup;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_ary_resurrect(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_new4(RARRAY_LEN(ary), RARRAY_CONST_PTR(ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> extern VALUE rb_output_fs;</div><div class='ctx'> </div><div class='add'>+static void ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first);</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-inspect_join(ary, arg)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE *arg;</div><div class='add'>+recursive_join(VALUE obj, VALUE argp, int recur)</div><div class='ctx'> {</div><div class='del'>-    return rb_ary_join(arg[0], arg[1]);</div><div class='add'>+    VALUE *arg = (VALUE *)argp;</div><div class='add'>+    VALUE ary = arg[0];</div><div class='add'>+    VALUE sep = arg[1];</div><div class='add'>+    VALUE result = arg[2];</div><div class='add'>+    int *first = (int *)arg[3];</div><div class='add'>+</div><div class='add'>+    if (recur) {</div><div class='add'>+	rb_raise(rb_eArgError, "recursive array join");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ary_join_1(obj, ary, sep, 0, result, first);</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_join(ary, sep)</div><div class='del'>-    VALUE ary, sep;</div><div class='add'>+static void</div><div class='add'>+ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)</div><div class='ctx'> {</div><div class='del'>-    long len = 1, i;</div><div class='del'>-    int taint = Qfalse;</div><div class='del'>-    VALUE result, tmp;</div><div class='del'>-</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return rb_str_new(0, 0);</div><div class='del'>-    if (OBJ_TAINTED(ary) || OBJ_TAINTED(sep)) taint = Qtrue;</div><div class='add'>+    long i;</div><div class='add'>+    VALUE val;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	tmp = rb_check_string_type(RARRAY(ary)-&gt;ptr[i]);</div><div class='del'>-	len += NIL_P(tmp) ? 10 : RSTRING(tmp)-&gt;len;</div><div class='del'>-    }</div><div class='del'>-    if (!NIL_P(sep)) {</div><div class='del'>-	StringValue(sep);</div><div class='del'>-	len += RSTRING(sep)-&gt;len * (RARRAY(ary)-&gt;len - 1);</div><div class='add'>+    if (max &gt; 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));</div><div class='add'>+    for (i=0; i&lt;max; i++) {</div><div class='add'>+	val = RARRAY_AREF(ary, i);</div><div class='add'>+	if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='add'>+	    rb_str_buf_append(result, sep);</div><div class='add'>+	rb_str_buf_append(result, val);</div><div class='add'>+	if (OBJ_TAINTED(val)) OBJ_TAINT(result);</div><div class='ctx'>     }</div><div class='del'>-    result = rb_str_buf_new(len);</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	tmp = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-	switch (TYPE(tmp)) {</div><div class='del'>-	  case T_STRING:</div><div class='del'>-	    break;</div><div class='del'>-	  case T_ARRAY:</div><div class='del'>-	    if (rb_inspecting_p(tmp)) {</div><div class='del'>-		tmp = rb_str_new2("[...]");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)</div><div class='add'>+{</div><div class='add'>+    VALUE val, tmp;</div><div class='add'>+</div><div class='add'>+    for (; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='add'>+	    rb_str_buf_append(result, sep);</div><div class='add'>+</div><div class='add'>+	val = RARRAY_AREF(ary, i);</div><div class='add'>+	if (RB_TYPE_P(val, T_STRING)) {</div><div class='add'>+	  str_join:</div><div class='add'>+	    rb_str_buf_append(result, val);</div><div class='add'>+	    if (*first) {</div><div class='add'>+		rb_enc_copy(result, val);</div><div class='add'>+		*first = FALSE;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (RB_TYPE_P(val, T_ARRAY)) {</div><div class='add'>+	    obj = val;</div><div class='add'>+	  ary_join:</div><div class='add'>+	    if (val == ary) {</div><div class='add'>+		rb_raise(rb_eArgError, "recursive array join");</div><div class='ctx'> 	    }</div><div class='ctx'> 	    else {</div><div class='del'>-		VALUE args[2];</div><div class='add'>+		VALUE args[4];</div><div class='ctx'> </div><div class='del'>-		args[0] = tmp;</div><div class='add'>+		*first = FALSE;</div><div class='add'>+		args[0] = val;</div><div class='ctx'> 		args[1] = sep;</div><div class='del'>-		tmp = rb_protect_inspect(inspect_join, ary, (VALUE)args);</div><div class='add'>+		args[2] = result;</div><div class='add'>+		args[3] = (VALUE)first;</div><div class='add'>+		rb_exec_recursive(recursive_join, obj, (VALUE)args);</div><div class='ctx'> 	    }</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    tmp = rb_obj_as_string(tmp);</div><div class='ctx'> 	}</div><div class='del'>-	if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='del'>-	    rb_str_buf_append(result, sep);</div><div class='del'>-	rb_str_buf_append(result, tmp);</div><div class='del'>-	if (OBJ_TAINTED(tmp)) taint = Qtrue;</div><div class='add'>+	else {</div><div class='add'>+	    tmp = rb_check_string_type(val);</div><div class='add'>+	    if (!NIL_P(tmp)) {</div><div class='add'>+		val = tmp;</div><div class='add'>+		goto str_join;</div><div class='add'>+	    }</div><div class='add'>+	    tmp = rb_check_array_type(val);</div><div class='add'>+	    if (!NIL_P(tmp)) {</div><div class='add'>+		obj = val;</div><div class='add'>+		val = tmp;</div><div class='add'>+		goto ary_join;</div><div class='add'>+	    }</div><div class='add'>+	    val = rb_obj_as_string(val);</div><div class='add'>+	    goto str_join;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_join(VALUE ary, VALUE sep)</div><div class='add'>+{</div><div class='add'>+    long len = 1, i;</div><div class='add'>+    int taint = FALSE;</div><div class='add'>+    VALUE val, tmp, result;</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new(0, 0);</div><div class='add'>+    if (OBJ_TAINTED(ary)) taint = TRUE;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(sep)) {</div><div class='add'>+	StringValue(sep);</div><div class='add'>+	len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);</div><div class='add'>+    }</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	val = RARRAY_AREF(ary, i);</div><div class='add'>+	tmp = rb_check_string_type(val);</div><div class='add'>+</div><div class='add'>+	if (NIL_P(tmp) || tmp != val) {</div><div class='add'>+	    int first;</div><div class='add'>+	    result = rb_str_buf_new(len + (RARRAY_LEN(ary)-i)*10);</div><div class='add'>+	    rb_enc_associate(result, rb_usascii_encoding());</div><div class='add'>+	    if (taint) OBJ_TAINT(result);</div><div class='add'>+	    ary_join_0(ary, sep, i, result);</div><div class='add'>+	    first = i == 0;</div><div class='add'>+	    ary_join_1(ary, ary, sep, i, result, &amp;first);</div><div class='add'>+	    return result;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	len += RSTRING_LEN(tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    result = rb_str_buf_new(len);</div><div class='ctx'>     if (taint) OBJ_TAINT(result);</div><div class='add'>+    ary_join_0(ary, sep, RARRAY_LEN(ary), result);</div><div class='add'>+</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.join(sep=$,)    -&gt; str</div><div class='del'>- *  </div><div class='add'>+ *     ary.join(separator=$,)    -&gt; str</div><div class='add'>+ *</div><div class='ctx'>  *  Returns a string created by converting each element of the array to</div><div class='del'>- *  a string, separated by &lt;i&gt;sep&lt;/i&gt;.</div><div class='del'>- *     </div><div class='add'>+ *  a string, separated by the given +separator+.</div><div class='add'>+ *  If the +separator+ is +nil+, it uses current &lt;code&gt;$,&lt;/code&gt;.</div><div class='add'>+ *  If both the +separator+ and &lt;code&gt;$,&lt;/code&gt; are +nil+,</div><div class='add'>+ *  it uses an empty string.</div><div class='add'>+ *</div><div class='ctx'>  *     [ "a", "b", "c" ].join        #=&gt; "abc"</div><div class='ctx'>  *     [ "a", "b", "c" ].join("-")   #=&gt; "a-b-c"</div><div class='add'>+ *</div><div class='add'>+ *  For nested arrays, join is applied recursively:</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", [1, 2, [:x, :y]], "b" ].join("-")   #=&gt; "a-1-2-x-y-b"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_join_m(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_join_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE sep;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;sep);</div><div class='ctx'>     if (NIL_P(sep)) sep = rb_output_fs;</div><div class='del'>-    </div><div class='add'>+</div><div class='ctx'>     return rb_ary_join(ary, sep);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+inspect_ary(VALUE ary, VALUE dummy, int recur)</div><div class='add'>+{</div><div class='add'>+    int tainted = OBJ_TAINTED(ary);</div><div class='add'>+    long i;</div><div class='add'>+    VALUE s, str;</div><div class='add'>+</div><div class='add'>+    if (recur) return rb_usascii_str_new_cstr("[...]");</div><div class='add'>+    str = rb_str_buf_new2("[");</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	s = rb_inspect(RARRAY_AREF(ary, i));</div><div class='add'>+	if (OBJ_TAINTED(s)) tainted = TRUE;</div><div class='add'>+	if (i &gt; 0) rb_str_buf_cat2(str, ", ");</div><div class='add'>+	else rb_enc_copy(str, s);</div><div class='add'>+	rb_str_buf_append(str, s);</div><div class='add'>+    }</div><div class='add'>+    rb_str_buf_cat2(str, "]");</div><div class='add'>+    if (tainted) OBJ_TAINT(str);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.to_s -&gt; string</div><div class='del'>- *  </div><div class='del'>- *  Returns _self_&lt;code&gt;.join&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     [ "a", "e", "i", "o" ].to_s   #=&gt; "aeio"</div><div class='add'>+ *     ary.inspect  -&gt; string</div><div class='add'>+ *     ary.to_s     -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Creates a string representation of +self+.</div><div class='ctx'>  *</div><div class='add'>+ *     [ "a", "b", "c" ].to_s     #=&gt; "[\"a\", \"b\", \"c\"]"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_to_s(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_inspect(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return rb_str_new(0, 0);</div><div class='del'>-    </div><div class='del'>-    return rb_ary_join(ary, rb_output_fs);</div><div class='add'>+    if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new2("[]");</div><div class='add'>+    return rb_exec_recursive(inspect_ary, ary, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static ID inspect_key;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_to_s(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_inspect(ary);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-struct inspect_arg {</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    VALUE arg1, arg2;</div><div class='del'>-};</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.to_a     -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  If called on a subclass of Array, converts the receiver to an Array object.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-inspect_call(arg)</div><div class='del'>-    struct inspect_arg *arg;</div><div class='add'>+rb_ary_to_a(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return (*arg-&gt;func)(arg-&gt;arg1, arg-&gt;arg2);</div><div class='add'>+    if (rb_obj_class(ary) != rb_cArray) {</div><div class='add'>+	VALUE dup = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+	rb_ary_replace(dup, ary);</div><div class='add'>+	return dup;</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.to_h     -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns the result of interpreting &lt;i&gt;ary&lt;/i&gt; as an array of</div><div class='add'>+ *  &lt;tt&gt;[key, value]&lt;/tt&gt; pairs.</div><div class='add'>+ *</div><div class='add'>+ *     [[:foo, :bar], [1, 2]].to_h</div><div class='add'>+ *       # =&gt; {:foo =&gt; :bar, 1 =&gt; 2}</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-get_inspect_tbl(create)</div><div class='del'>-    int create;</div><div class='add'>+rb_ary_to_h(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE inspect_tbl = rb_thread_local_aref(rb_thread_current(), inspect_key);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(inspect_tbl)) {</div><div class='del'>-	if (create) {</div><div class='del'>-	  tbl_init:</div><div class='del'>-	    inspect_tbl = rb_ary_new();</div><div class='del'>-	    rb_thread_local_aset(rb_thread_current(), inspect_key, inspect_tbl);</div><div class='add'>+    long i;</div><div class='add'>+    VALUE hash = rb_hash_new_with_size(RARRAY_LEN(ary));</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	const VALUE elt = rb_ary_elt(ary, i);</div><div class='add'>+	const VALUE key_value_pair = rb_check_array_type(elt);</div><div class='add'>+	if (NIL_P(key_value_pair)) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "wrong element type %"PRIsVALUE" at %ld (expected array)",</div><div class='add'>+		     rb_obj_class(elt), i);</div><div class='ctx'> 	}</div><div class='add'>+	if (RARRAY_LEN(key_value_pair) != 2) {</div><div class='add'>+	    rb_raise(rb_eArgError, "wrong array length at %ld (expected 2, was %ld)",</div><div class='add'>+		i, RARRAY_LEN(key_value_pair));</div><div class='add'>+	}</div><div class='add'>+	rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1));</div><div class='ctx'>     }</div><div class='del'>-    else if (TYPE(inspect_tbl) != T_ARRAY) {</div><div class='del'>-	rb_warn("invalid inspect_tbl value");</div><div class='del'>-	if (create) goto tbl_init;</div><div class='del'>-	rb_thread_local_aset(rb_thread_current(), inspect_key, Qnil);</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-    return inspect_tbl;</div><div class='add'>+    return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.to_ary -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-inspect_ensure(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_ary_to_ary_m(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE inspect_tbl;</div><div class='del'>-</div><div class='del'>-    inspect_tbl = get_inspect_tbl(Qfalse);</div><div class='del'>-    if (!NIL_P(inspect_tbl)) {</div><div class='del'>-	rb_ary_pop(inspect_tbl);</div><div class='del'>-    }</div><div class='del'>-    return 0;</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_protect_inspect(func, obj, arg)</div><div class='del'>-    VALUE (*func)(ANYARGS);</div><div class='del'>-    VALUE obj, arg;</div><div class='add'>+static void</div><div class='add'>+ary_reverse(VALUE *p1, VALUE *p2)</div><div class='ctx'> {</div><div class='del'>-    struct inspect_arg iarg;</div><div class='del'>-    VALUE inspect_tbl;</div><div class='del'>-    VALUE id;</div><div class='del'>-</div><div class='del'>-    inspect_tbl = get_inspect_tbl(Qtrue);</div><div class='del'>-    id = rb_obj_id(obj);</div><div class='del'>-    if (rb_ary_includes(inspect_tbl, id)) {</div><div class='del'>-	return (*func)(obj, arg);</div><div class='add'>+    while (p1 &lt; p2) {</div><div class='add'>+	VALUE tmp = *p1;</div><div class='add'>+	*p1++ = *p2;</div><div class='add'>+	*p2-- = tmp;</div><div class='ctx'>     }</div><div class='del'>-    rb_ary_push(inspect_tbl, id);</div><div class='del'>-    iarg.func = func;</div><div class='del'>-    iarg.arg1 = obj;</div><div class='del'>-    iarg.arg2 = arg;</div><div class='del'>-</div><div class='del'>-    return rb_ensure(inspect_call, (VALUE)&amp;iarg, inspect_ensure, obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_inspecting_p(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_ary_reverse(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE inspect_tbl;</div><div class='del'>-</div><div class='del'>-    inspect_tbl = get_inspect_tbl(Qfalse);</div><div class='del'>-    if (NIL_P(inspect_tbl)) return Qfalse;</div><div class='del'>-    return rb_ary_includes(inspect_tbl, rb_obj_id(obj));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-inspect_ary(ary)</div><div class='del'>-    VALUE ary;</div><div class='del'>-{</div><div class='del'>-    int tainted = OBJ_TAINTED(ary);</div><div class='del'>-    long i;</div><div class='del'>-    VALUE s, str;</div><div class='add'>+    VALUE *p2;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    str = rb_str_buf_new2("[");</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	s = rb_inspect(RARRAY(ary)-&gt;ptr[i]);</div><div class='del'>-	if (OBJ_TAINTED(s)) tainted = Qtrue;</div><div class='del'>-	if (i &gt; 0) rb_str_buf_cat2(str, ", ");</div><div class='del'>-	rb_str_buf_append(str, s);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (len &gt; 1) {</div><div class='add'>+	RARRAY_PTR_USE(ary, p1, {</div><div class='add'>+	    p2 = p1 + len - 1;	/* points last item */</div><div class='add'>+	    ary_reverse(p1, p2);</div><div class='add'>+	}); /* WB: no new reference */</div><div class='ctx'>     }</div><div class='del'>-    rb_str_buf_cat2(str, "]");</div><div class='del'>-    if (tainted) OBJ_TAINT(str);</div><div class='del'>-    return str;</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.inspect  -&gt; string</div><div class='add'>+ *     ary.reverse!   -&gt; ary</div><div class='ctx'>  *</div><div class='del'>- *  Create a printable version of &lt;i&gt;array&lt;/i&gt;.</div><div class='add'>+ *  Reverses +self+ in place.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.reverse!       #=&gt; ["c", "b", "a"]</div><div class='add'>+ *     a                #=&gt; ["c", "b", "a"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_inspect(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reverse_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return rb_str_new2("[]");</div><div class='del'>-    if (rb_inspecting_p(ary)) return rb_str_new2("[...]");</div><div class='del'>-    return rb_protect_inspect(inspect_ary, ary, 0);</div><div class='add'>+    return rb_ary_reverse(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.to_a     -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Returns _self_. If called on a subclass of Array, converts</div><div class='del'>- *  the receiver to an Array object.</div><div class='add'>+ *     ary.reverse    -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array containing +self+'s elements in reverse order.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "b", "c" ].reverse   #=&gt; ["c", "b", "a"]</div><div class='add'>+ *     [ 1 ].reverse               #=&gt; [1]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_to_a(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reverse_m(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (rb_obj_class(ary) != rb_cArray) {</div><div class='del'>-	VALUE dup = rb_ary_new2(RARRAY(ary)-&gt;len);</div><div class='del'>-	rb_ary_replace(dup, ary);</div><div class='del'>-	return dup;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    VALUE dup = rb_ary_new2(len);</div><div class='add'>+</div><div class='add'>+    if (len &gt; 0) {</div><div class='add'>+	const VALUE *p1 = RARRAY_CONST_PTR(ary);</div><div class='add'>+	VALUE *p2 = (VALUE *)RARRAY_CONST_PTR(dup) + len - 1;</div><div class='add'>+	do *p2-- = *p1++; while (--len &gt; 0);</div><div class='ctx'>     }</div><div class='del'>-    return ary;</div><div class='add'>+    ARY_SET_LEN(dup, RARRAY_LEN(ary));</div><div class='add'>+    return dup;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     array.to_ary -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Returns _self_.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_to_ary_m(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static inline long</div><div class='add'>+rotate_count(long cnt, long len)</div><div class='ctx'> {</div><div class='del'>-    return ary;</div><div class='add'>+    return (cnt &lt; 0) ? (len - (~cnt % len) - 1) : (cnt % len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_reverse(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_rotate(VALUE ary, long cnt)</div><div class='ctx'> {</div><div class='del'>-    VALUE *p1, *p2;</div><div class='del'>-    VALUE tmp;</div><div class='del'>-</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len &gt; 1) {</div><div class='del'>-	p1 = RARRAY(ary)-&gt;ptr;</div><div class='del'>-	p2 = p1 + RARRAY(ary)-&gt;len - 1;	/* points last item */</div><div class='ctx'> </div><div class='del'>-	while (p1 &lt; p2) {</div><div class='del'>-	    tmp = *p1;</div><div class='del'>-	    *p1++ = *p2;</div><div class='del'>-	    *p2-- = tmp;</div><div class='add'>+    if (cnt != 0) {</div><div class='add'>+	VALUE *ptr = RARRAY_PTR(ary);</div><div class='add'>+	long len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+	if (len &gt; 0 &amp;&amp; (cnt = rotate_count(cnt, len)) &gt; 0) {</div><div class='add'>+	    --len;</div><div class='add'>+	    if (cnt &lt; len) ary_reverse(ptr + cnt, ptr + len);</div><div class='add'>+	    if (--cnt &gt; 0) ary_reverse(ptr, ptr + cnt);</div><div class='add'>+	    if (len &gt; 0) ary_reverse(ptr, ptr + len);</div><div class='add'>+	    return ary;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    return ary;</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.reverse!   -&gt; array </div><div class='del'>- *  </div><div class='del'>- *  Reverses _self_ in place.</div><div class='del'>- *     </div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.reverse!       #=&gt; ["c", "b", "a"]</div><div class='del'>- *     a                #=&gt; ["c", "b", "a"]</div><div class='add'>+ *     ary.rotate!(count=1)   -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Rotates +self+ in place so that the element at +count+ comes first, and</div><div class='add'>+ *  returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is negative then it rotates in the opposite direction, starting</div><div class='add'>+ *  from the end of the array where +-1+ is the last element.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d" ]</div><div class='add'>+ *     a.rotate!        #=&gt; ["b", "c", "d", "a"]</div><div class='add'>+ *     a                #=&gt; ["b", "c", "d", "a"]</div><div class='add'>+ *     a.rotate!(2)     #=&gt; ["d", "a", "b", "c"]</div><div class='add'>+ *     a.rotate!(-3)    #=&gt; ["a", "b", "c", "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_reverse_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return rb_ary_reverse(ary);</div><div class='add'>+    long n = 1;</div><div class='add'>+</div><div class='add'>+    switch (argc) {</div><div class='add'>+      case 1: n = NUM2LONG(argv[0]);</div><div class='add'>+      case 0: break;</div><div class='add'>+      default: rb_scan_args(argc, argv, "01", NULL);</div><div class='add'>+    }</div><div class='add'>+    rb_ary_rotate(ary, n);</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.reverse -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Returns a new array containing &lt;i&gt;self&lt;/i&gt;'s elements in reverse order.</div><div class='del'>- *     </div><div class='del'>- *     [ "a", "b", "c" ].reverse   #=&gt; ["c", "b", "a"]</div><div class='del'>- *     [ 1 ].reverse               #=&gt; [1]</div><div class='add'>+ *     ary.rotate(count=1)    -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array by rotating +self+ so that the element at +count+ is</div><div class='add'>+ *  the first element of the new array.</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is negative then it rotates in the opposite direction, starting</div><div class='add'>+ *  from the end of +self+ where +-1+ is the last element.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d" ]</div><div class='add'>+ *     a.rotate         #=&gt; ["b", "c", "d", "a"]</div><div class='add'>+ *     a                #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *     a.rotate(2)      #=&gt; ["c", "d", "a", "b"]</div><div class='add'>+ *     a.rotate(-3)     #=&gt; ["b", "c", "d", "a"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_reverse_m(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_rotate_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return rb_ary_reverse(rb_ary_dup(ary));</div><div class='add'>+    VALUE rotated;</div><div class='add'>+    const VALUE *ptr;</div><div class='add'>+    long len, cnt = 1;</div><div class='add'>+</div><div class='add'>+    switch (argc) {</div><div class='add'>+      case 1: cnt = NUM2LONG(argv[0]);</div><div class='add'>+      case 0: break;</div><div class='add'>+      default: rb_scan_args(argc, argv, "01", NULL);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    rotated = rb_ary_new2(len);</div><div class='add'>+    if (len &gt; 0) {</div><div class='add'>+	cnt = rotate_count(cnt, len);</div><div class='add'>+	ptr = RARRAY_CONST_PTR(ary);</div><div class='add'>+	len -= cnt;</div><div class='add'>+	ary_memcpy(rotated, 0, len, ptr + cnt);</div><div class='add'>+	ary_memcpy(rotated, len, cnt, ptr);</div><div class='add'>+    }</div><div class='add'>+    ARY_SET_LEN(rotated, RARRAY_LEN(ary));</div><div class='add'>+    return rotated;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct ary_sort_data {</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    VALUE *ptr;</div><div class='del'>-    long len;</div><div class='add'>+    struct cmp_opt_data cmp_opt;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-ary_sort_check(data)</div><div class='del'>-    struct ary_sort_data *data;</div><div class='add'>+static VALUE</div><div class='add'>+sort_reentered(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(data-&gt;ary)-&gt;ptr != data-&gt;ptr || RARRAY(data-&gt;ary)-&gt;len != data-&gt;len) {</div><div class='del'>-	rb_raise(rb_eArgError, "array modified during sort");</div><div class='add'>+    if (RBASIC(ary)-&gt;klass) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "sort reentered");</div><div class='ctx'>     }</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-sort_1(a, b, data)</div><div class='del'>-    VALUE *a, *b;</div><div class='del'>-    struct ary_sort_data *data;</div><div class='add'>+sort_1(const void *ap, const void *bp, void *dummy)</div><div class='ctx'> {</div><div class='del'>-    VALUE retval = rb_yield_values(2, *a, *b);</div><div class='add'>+    struct ary_sort_data *data = dummy;</div><div class='add'>+    VALUE retval = sort_reentered(data-&gt;ary);</div><div class='add'>+    VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;</div><div class='add'>+    VALUE args[2];</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    n = rb_cmpint(retval, *a, *b);</div><div class='del'>-    ary_sort_check(data);</div><div class='add'>+    args[0] = a;</div><div class='add'>+    args[1] = b;</div><div class='add'>+    retval = rb_yield_values2(2, args);</div><div class='add'>+    n = rb_cmpint(retval, a, b);</div><div class='add'>+    sort_reentered(data-&gt;ary);</div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-sort_2(ap, bp, data)</div><div class='del'>-    VALUE *ap, *bp;</div><div class='del'>-    struct ary_sort_data *data;</div><div class='add'>+sort_2(const void *ap, const void *bp, void *dummy)</div><div class='ctx'> {</div><div class='del'>-    VALUE retval;</div><div class='del'>-    VALUE a = *ap, b = *bp;</div><div class='add'>+    struct ary_sort_data *data = dummy;</div><div class='add'>+    VALUE retval = sort_reentered(data-&gt;ary);</div><div class='add'>+    VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b)) {</div><div class='add'>+    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, Fixnum)) {</div><div class='ctx'> 	if ((long)a &gt; (long)b) return 1;</div><div class='ctx'> 	if ((long)a &lt; (long)b) return -1;</div><div class='ctx'> 	return 0;</div><div class='ctx'>     }</div><div class='del'>-    if (TYPE(a) == T_STRING) {</div><div class='del'>-	if (TYPE(b) == T_STRING) return rb_str_cmp(a, b);</div><div class='add'>+    if (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, String)) {</div><div class='add'>+	return rb_str_cmp(a, b);</div><div class='add'>+    }</div><div class='add'>+    if (RB_FLOAT_TYPE_P(a) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, Float)) {</div><div class='add'>+	return rb_float_cmp(a, b);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    retval = rb_funcall(a, id_cmp, 1, b);</div><div class='add'>+    retval = rb_funcallv(a, id_cmp, 1, &amp;b);</div><div class='ctx'>     n = rb_cmpint(retval, a, b);</div><div class='del'>-    ary_sort_check(data);</div><div class='add'>+    sort_reentered(data-&gt;ary);</div><div class='ctx'> </div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-sort_internal(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.sort!                   -&gt; ary</div><div class='add'>+ *     ary.sort! { |a, b| block }  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Sorts +self+ in place.</div><div class='add'>+ *</div><div class='add'>+ *  Comparisons for the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator</div><div class='add'>+ *  or using an optional code block.</div><div class='add'>+ *</div><div class='add'>+ *  The block must implement a comparison between +a+ and +b+ and return</div><div class='add'>+ *  an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+</div><div class='add'>+ *  are equivalent, or an integer greater than 0 when +a+ follows +b+.</div><div class='add'>+ *</div><div class='add'>+ *  The result is not guaranteed to be stable.  When the comparison of two</div><div class='add'>+ *  elements returns +0+, the order of the elements is unpredictable.</div><div class='add'>+ *</div><div class='add'>+ *     ary = [ "d", "a", "e", "c", "b" ]</div><div class='add'>+ *     ary.sort!                     #=&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *     ary.sort! { |a, b| b &lt;=&gt; a }  #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#sort_by.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_sort_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    struct ary_sort_data data;</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    assert(!ARY_SHARED_P(ary));</div><div class='add'>+    if (RARRAY_LEN(ary) &gt; 1) {</div><div class='add'>+	VALUE tmp = ary_make_substitution(ary); /* only ary refers tmp */</div><div class='add'>+	struct ary_sort_data data;</div><div class='add'>+	long len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+	RBASIC_CLEAR_CLASS(tmp);</div><div class='add'>+	data.ary = tmp;</div><div class='add'>+	data.cmp_opt.opt_methods = 0;</div><div class='add'>+	data.cmp_opt.opt_inited = 0;</div><div class='add'>+	RARRAY_PTR_USE(tmp, ptr, {</div><div class='add'>+	    ruby_qsort(ptr, len, sizeof(VALUE),</div><div class='add'>+		       rb_block_given_p()?sort_1:sort_2, &amp;data);</div><div class='add'>+	}); /* WB: no new reference */</div><div class='add'>+	rb_ary_modify(ary);</div><div class='add'>+        if (ARY_EMBED_P(tmp)) {</div><div class='add'>+            if (ARY_SHARED_P(ary)) { /* ary might be destructively operated in the given block */</div><div class='add'>+                rb_ary_unshare(ary);</div><div class='add'>+		FL_SET_EMBED(ary);</div><div class='add'>+            }</div><div class='add'>+	    ary_memcpy(ary, 0, ARY_EMBED_LEN(tmp), ARY_EMBED_PTR(tmp));</div><div class='add'>+            ARY_SET_LEN(ary, ARY_EMBED_LEN(tmp));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!ARY_EMBED_P(ary) &amp;&amp; ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) {</div><div class='add'>+                FL_UNSET_SHARED(ary);</div><div class='add'>+                ARY_SET_CAPA(ary, RARRAY_LEN(tmp));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                assert(!ARY_SHARED_P(tmp));</div><div class='add'>+                if (ARY_EMBED_P(ary)) {</div><div class='add'>+                    FL_UNSET_EMBED(ary);</div><div class='add'>+                }</div><div class='add'>+                else if (ARY_SHARED_P(ary)) {</div><div class='add'>+                    /* ary might be destructively operated in the given block */</div><div class='add'>+                    rb_ary_unshare(ary);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+		    ruby_sized_xfree((void *)ARY_HEAP_PTR(ary), ARY_HEAP_SIZE(ary));</div><div class='add'>+                }</div><div class='add'>+                ARY_SET_PTR(ary, RARRAY_CONST_PTR(tmp));</div><div class='add'>+                ARY_SET_HEAP_LEN(ary, len);</div><div class='add'>+                ARY_SET_CAPA(ary, RARRAY_LEN(tmp));</div><div class='add'>+            }</div><div class='add'>+            /* tmp was lost ownership for the ptr */</div><div class='add'>+            FL_UNSET(tmp, FL_FREEZE);</div><div class='add'>+            FL_SET_EMBED(tmp);</div><div class='add'>+            ARY_SET_EMBED_LEN(tmp, 0);</div><div class='add'>+            FL_SET(tmp, FL_FREEZE);</div><div class='add'>+	}</div><div class='add'>+        /* tmp will be GC'ed. */</div><div class='add'>+        RBASIC_SET_CLASS_RAW(tmp, rb_cArray); /* rb_cArray must be marked */</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    data.ary = ary;</div><div class='del'>-    data.ptr = RARRAY(ary)-&gt;ptr; data.len = RARRAY(ary)-&gt;len;</div><div class='del'>-    qsort(RARRAY(ary)-&gt;ptr, RARRAY(ary)-&gt;len, sizeof(VALUE),</div><div class='del'>-	  rb_block_given_p()?sort_1:sort_2, &amp;data);</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.sort                   -&gt; new_ary</div><div class='add'>+ *     ary.sort { |a, b| block }  -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array created by sorting +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Comparisons for the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator</div><div class='add'>+ *  or using an optional code block.</div><div class='add'>+ *</div><div class='add'>+ *  The block must implement a comparison between +a+ and +b+ and return</div><div class='add'>+ *  an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+</div><div class='add'>+ *  are equivalent, or an integer greater than 0 when +a+ follows +b+.</div><div class='add'>+ *</div><div class='add'>+ *  The result is not guaranteed to be stable.  When the comparison of two</div><div class='add'>+ *  elements returns +0+, the order of the elements is unpredictable.</div><div class='add'>+ *</div><div class='add'>+ *     ary = [ "d", "a", "e", "c", "b" ]</div><div class='add'>+ *     ary.sort                     #=&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *     ary.sort { |a, b| b &lt;=&gt; a }  #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#sort_by.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_sort(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    ary = rb_ary_dup(ary);</div><div class='add'>+    rb_ary_sort_bang(ary);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_ary_bsearch_index(VALUE ary);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.bsearch {|x| block }  -&gt; elem</div><div class='add'>+ *</div><div class='add'>+ *  By using binary search, finds a value from this array which meets</div><div class='add'>+ *  the given condition in O(log n) where n is the size of the array.</div><div class='add'>+ *</div><div class='add'>+ *  You can use this method in two modes: a find-minimum mode and</div><div class='add'>+ *  a find-any mode.  In either case, the elements of the array must be</div><div class='add'>+ *  monotone (or sorted) with respect to the block.</div><div class='add'>+ *</div><div class='add'>+ *  In find-minimum mode (this is a good choice for typical use cases),</div><div class='add'>+ *  the block must always return true or false, and there must be an index i</div><div class='add'>+ *  (0 &lt;= i &lt;= ary.size) so that:</div><div class='add'>+ *</div><div class='add'>+ *  - the block returns false for any element whose index is less than</div><div class='add'>+ *    i, and</div><div class='add'>+ *  - the block returns true for any element whose index is greater</div><div class='add'>+ *    than or equal to i.</div><div class='add'>+ *</div><div class='add'>+ *  This method returns the i-th element.  If i is equal to ary.size,</div><div class='add'>+ *  it returns nil.</div><div class='add'>+ *</div><div class='add'>+ *     ary = [0, 4, 7, 10, 12]</div><div class='add'>+ *     ary.bsearch {|x| x &gt;=   4 } #=&gt; 4</div><div class='add'>+ *     ary.bsearch {|x| x &gt;=   6 } #=&gt; 7</div><div class='add'>+ *     ary.bsearch {|x| x &gt;=  -1 } #=&gt; 0</div><div class='add'>+ *     ary.bsearch {|x| x &gt;= 100 } #=&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  In find-any mode (this behaves like libc's bsearch(3)), the block</div><div class='add'>+ *  must always return a number, and there must be two indices i and j</div><div class='add'>+ *  (0 &lt;= i &lt;= j &lt;= ary.size) so that:</div><div class='add'>+ *</div><div class='add'>+ *  - the block returns a positive number for ary[k] if 0 &lt;= k &lt; i,</div><div class='add'>+ *  - the block returns zero for ary[k] if i &lt;= k &lt; j, and</div><div class='add'>+ *  - the block returns a negative number for ary[k] if</div><div class='add'>+ *    j &lt;= k &lt; ary.size.</div><div class='add'>+ *</div><div class='add'>+ *  Under this condition, this method returns any element whose index</div><div class='add'>+ *  is within i...j.  If i is equal to j (i.e., there is no element</div><div class='add'>+ *  that satisfies the block), this method returns nil.</div><div class='add'>+ *</div><div class='add'>+ *     ary = [0, 4, 7, 10, 12]</div><div class='add'>+ *     # try to find v such that 4 &lt;= v &lt; 8</div><div class='add'>+ *     ary.bsearch {|x| 1 - x / 4 } #=&gt; 4 or 7</div><div class='add'>+ *     # try to find v such that 8 &lt;= v &lt; 10</div><div class='add'>+ *     ary.bsearch {|x| 4 - x / 2 } #=&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  You must not mix the two modes at a time; the block must always</div><div class='add'>+ *  return either true/false, or always return a number.  It is</div><div class='add'>+ *  undefined which value is actually picked up at each iteration.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-sort_unlock(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_bsearch(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    FL_UNSET(ary, ARY_TMPLOCK);</div><div class='del'>-    return ary;</div><div class='add'>+    VALUE index_result = rb_ary_bsearch_index(ary);</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(index_result)) {</div><div class='add'>+	return rb_ary_entry(ary, FIX2LONG(index_result));</div><div class='add'>+    }</div><div class='add'>+    return index_result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.sort!                   -&gt; array</div><div class='del'>- *     array.sort! {| a,b | block }  -&gt; array </div><div class='del'>- *  </div><div class='del'>- *  Sorts _self_. Comparisons for</div><div class='del'>- *  the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator or using</div><div class='del'>- *  an optional code block. The block implements a comparison between</div><div class='del'>- *  &lt;i&gt;a&lt;/i&gt; and &lt;i&gt;b&lt;/i&gt;, returning -1, 0, or +1. See also</div><div class='del'>- *  &lt;code&gt;Enumerable#sort_by&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     a = [ "d", "a", "e", "c", "b" ]</div><div class='del'>- *     a.sort                    #=&gt; ["a", "b", "c", "d", "e"]</div><div class='del'>- *     a.sort {|x,y| y &lt;=&gt; x }   #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *     ary.bsearch_index {|x| block }  -&gt; int or nil</div><div class='add'>+ *</div><div class='add'>+ *  By using binary search, finds an index of a value from this array which</div><div class='add'>+ *  meets the given condition in O(log n) where n is the size of the array.</div><div class='add'>+ *</div><div class='add'>+ *  It supports two modes, depending on the nature of the block. They are</div><div class='add'>+ *  exactly the same as in the case of the #bsearch method, with the only difference</div><div class='add'>+ *  being that this method returns the index of the element instead of the</div><div class='add'>+ *  element itself. For more details consult the documentation for #bsearch.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_sort_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_bsearch_index(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_modify(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len &gt; 1) {</div><div class='del'>-	FL_SET(ary, ARY_TMPLOCK);	/* prohibit modification during sort */</div><div class='del'>-	rb_ensure(sort_internal, ary, sort_unlock, ary);</div><div class='add'>+    long low = 0, high = RARRAY_LEN(ary), mid;</div><div class='add'>+    int smaller = 0, satisfied = 0;</div><div class='add'>+    VALUE v, val;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    while (low &lt; high) {</div><div class='add'>+	mid = low + ((high - low) / 2);</div><div class='add'>+	val = rb_ary_entry(ary, mid);</div><div class='add'>+	v = rb_yield(val);</div><div class='add'>+	if (FIXNUM_P(v)) {</div><div class='add'>+	    if (v == INT2FIX(0)) return INT2FIX(mid);</div><div class='add'>+	    smaller = (SIGNED_VALUE)v &lt; 0; /* Fixnum preserves its sign-bit */</div><div class='add'>+	}</div><div class='add'>+	else if (v == Qtrue) {</div><div class='add'>+	    satisfied = 1;</div><div class='add'>+	    smaller = 1;</div><div class='add'>+	}</div><div class='add'>+	else if (v == Qfalse || v == Qnil) {</div><div class='add'>+	    smaller = 0;</div><div class='add'>+	}</div><div class='add'>+	else if (rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='add'>+	    const VALUE zero = INT2FIX(0);</div><div class='add'>+	    switch (rb_cmpint(rb_funcallv(v, id_cmp, 1, &amp;zero), v, zero)) {</div><div class='add'>+	      case 0: return INT2FIX(mid);</div><div class='add'>+	      case 1: smaller = 1; break;</div><div class='add'>+	      case -1: smaller = 0;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE</div><div class='add'>+		     " (must be numeric, true, false or nil)",</div><div class='add'>+		     rb_obj_class(v));</div><div class='add'>+	}</div><div class='add'>+	if (smaller) {</div><div class='add'>+	    high = mid;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    low = mid + 1;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    return ary;</div><div class='add'>+    if (!satisfied) return Qnil;</div><div class='add'>+    return INT2FIX(low);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, dummy))</div><div class='add'>+{</div><div class='add'>+    return rb_yield(i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.sort                   -&gt; an_array </div><div class='del'>- *     array.sort {| a,b | block }  -&gt; an_array </div><div class='del'>- *  </div><div class='del'>- *  Returns a new array created by sorting &lt;i&gt;self&lt;/i&gt;. Comparisons for</div><div class='del'>- *  the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator or using</div><div class='del'>- *  an optional code block. The block implements a comparison between</div><div class='del'>- *  &lt;i&gt;a&lt;/i&gt; and &lt;i&gt;b&lt;/i&gt;, returning -1, 0, or +1. See also</div><div class='del'>- *  &lt;code&gt;Enumerable#sort_by&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     a = [ "d", "a", "e", "c", "b" ]</div><div class='del'>- *     a.sort                    #=&gt; ["a", "b", "c", "d", "e"]</div><div class='del'>- *     a.sort {|x,y| y &lt;=&gt; x }   #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *     ary.sort_by! { |obj| block }    -&gt; ary</div><div class='add'>+ *     ary.sort_by!                    -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Sorts +self+ in place using a set of keys generated by mapping the</div><div class='add'>+ *  values in +self+ through the given block.</div><div class='add'>+ *</div><div class='add'>+ *  The result is not guaranteed to be stable.  When two keys are equal,</div><div class='add'>+ *  the order of the corresponding elements is unpredictable.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#sort_by.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_sort(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_sort_by_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    ary = rb_ary_dup(ary);</div><div class='del'>-    rb_ary_sort_bang(ary);</div><div class='add'>+    VALUE sorted;</div><div class='add'>+</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    sorted = rb_block_call(ary, rb_intern("sort_by"), 0, 0, sort_by_i, 0);</div><div class='add'>+    rb_ary_replace(ary, sorted);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.collect {|item| block }  -&gt; an_array</div><div class='del'>- *     array.map     {|item| block }  -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Invokes &lt;i&gt;block&lt;/i&gt; once for each element of &lt;i&gt;self&lt;/i&gt;. Creates a </div><div class='del'>- *  new array containing the values returned by the block.</div><div class='del'>- *  See also &lt;code&gt;Enumerable#collect&lt;/code&gt;.</div><div class='del'>- *     </div><div class='add'>+ *     ary.collect { |item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.map     { |item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.collect                   -&gt; Enumerator</div><div class='add'>+ *     ary.map                       -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the given block once for each element of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Creates a new array containing the values returned by the block.</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#collect.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.collect {|x| x + "!" }   #=&gt; ["a!", "b!", "c!", "d!"]</div><div class='del'>- *     a                          #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *     a.collect { |x| x + "!" }         #=&gt; ["a!", "b!", "c!", "d!"]</div><div class='add'>+ *     a.map.with_index { |x, i| x * i } #=&gt; ["", "b", "cc", "ddd"]</div><div class='add'>+ *     a                                 #=&gt; ["a", "b", "c", "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_collect(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_collect(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'>     VALUE collect;</div><div class='ctx'> </div><div class='del'>-    if (!rb_block_given_p()) {</div><div class='del'>-	return rb_ary_new4(RARRAY(ary)-&gt;len, RARRAY(ary)-&gt;ptr);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    collect = rb_ary_new2(RARRAY(ary)-&gt;len);</div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	rb_ary_push(collect, rb_yield(RARRAY(ary)-&gt;ptr[i]));</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    collect = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	rb_ary_push(collect, rb_yield_force_blockarg(RARRAY_AREF(ary, i)));</div><div class='ctx'>     }</div><div class='ctx'>     return collect;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.collect! {|item| block }   -&gt;   array</div><div class='del'>- *     array.map!     {|item| block }   -&gt;   array</div><div class='add'>+ *     ary.collect! {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.map!     {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.collect!                   -&gt; Enumerator</div><div class='add'>+ *     ary.map!                       -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the given block once for each element of +self+, replacing the</div><div class='add'>+ *  element with the value returned by the block.</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#collect.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='ctx'>  *</div><div class='del'>- *  Invokes the block once for each element of _self_, replacing the</div><div class='del'>- *  element with the value returned by _block_.</div><div class='del'>- *  See also &lt;code&gt;Enumerable#collect&lt;/code&gt;.</div><div class='del'>- *   </div><div class='ctx'>  *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.collect! {|x| x + "!" }</div><div class='del'>- *     a             #=&gt;  [ "a!", "b!", "c!", "d!" ]</div><div class='add'>+ *     a.map! {|x| x + "!" }</div><div class='add'>+ *     a #=&gt;  [ "a!", "b!", "c!", "d!" ]</div><div class='add'>+ *     a.collect!.with_index {|x, i| x[0...i] }</div><div class='add'>+ *     a #=&gt;  ["", "b", "c!", "d!"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_collect_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_collect_bang(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	rb_ary_store(ary, i, rb_yield(RARRAY(ary)-&gt;ptr[i]));</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_values_at(obj, olen, argc, argv, func)</div><div class='del'>-    VALUE obj;</div><div class='del'>-    long olen;</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE (*func) _((VALUE,long));</div><div class='add'>+rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func) (VALUE, long))</div><div class='ctx'> {</div><div class='ctx'>     VALUE result = rb_ary_new2(argc);</div><div class='ctx'>     long beg, len, i, j;</div><div class='hunk'>@@ -1758,15 +2807,13 @@ rb_values_at(obj, olen, argc, argv, func)</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='ctx'> 	/* check if idx is Range */</div><div class='del'>-	switch (rb_range_beg_len(argv[i], &amp;beg, &amp;len, olen, 0)) {</div><div class='del'>-	  case Qfalse:</div><div class='del'>-	    break;</div><div class='del'>-	  case Qnil:</div><div class='del'>-	    continue;</div><div class='del'>-	  default:</div><div class='del'>-	    for (j=0; j&lt;len; j++) {</div><div class='del'>-		rb_ary_push(result, (*func)(obj, j+beg));</div><div class='add'>+	if (rb_range_beg_len(argv[i], &amp;beg, &amp;len, olen, 1)) {</div><div class='add'>+	    long end = olen &lt; beg+len ? olen : beg+len;</div><div class='add'>+	    for (j = beg; j &lt; end; j++) {</div><div class='add'>+		rb_ary_push(result, (*func)(obj, j));</div><div class='ctx'> 	    }</div><div class='add'>+	    if (beg + len &gt; j)</div><div class='add'>+		rb_ary_resize(result, RARRAY_LEN(result) + (beg + len) - j);</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='ctx'> 	rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));</div><div class='hunk'>@@ -1774,69 +2821,190 @@ rb_values_at(obj, olen, argc, argv, func)</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.values_at(selector,... )  -&gt; an_array</div><div class='add'>+ *     ary.values_at(selector, ...)  -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing the elements in +self+ corresponding to the</div><div class='add'>+ *  given +selector+(s).</div><div class='add'>+ *</div><div class='add'>+ *  The selectors may be either integer indices or ranges.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#select.</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array containing the elements in</div><div class='del'>- *  _self_ corresponding to the given selector(s). The selectors</div><div class='del'>- *  may be either integer indices or ranges. </div><div class='del'>- *  See also &lt;code&gt;Array#select&lt;/code&gt;.</div><div class='del'>- * </div><div class='ctx'>  *     a = %w{ a b c d e f }</div><div class='del'>- *     a.values_at(1, 3, 5)</div><div class='del'>- *     a.values_at(1, 3, 5, 7)</div><div class='del'>- *     a.values_at(-1, -3, -5, -7)</div><div class='del'>- *     a.values_at(1..3, 2...5)</div><div class='add'>+ *     a.values_at(1, 3, 5)          # =&gt; ["b", "d", "f"]</div><div class='add'>+ *     a.values_at(1, 3, 5, 7)       # =&gt; ["b", "d", "f", nil]</div><div class='add'>+ *     a.values_at(-1, -2, -2, -7)   # =&gt; ["f", "e", "e", nil]</div><div class='add'>+ *     a.values_at(4..6, 3...6)      # =&gt; ["e", "f", nil, "d", "e", "f"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_values_at(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_values_at(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return rb_values_at(ary, RARRAY(ary)-&gt;len, argc, argv, rb_ary_entry);</div><div class='add'>+    return rb_get_values_at(ary, RARRAY_LEN(ary), argc, argv, rb_ary_entry);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.select {|item| block } -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Invokes the block passing in successive elements from &lt;i&gt;array&lt;/i&gt;,</div><div class='del'>- *  returning an array containing those elements for which the block</div><div class='del'>- *  returns a true value (equivalent to &lt;code&gt;Enumerable#select&lt;/code&gt;).</div><div class='del'>- *     </div><div class='add'>+ *     ary.select { |item| block } -&gt; new_ary</div><div class='add'>+ *     ary.select                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array containing all elements of +ary+</div><div class='add'>+ *  for which the given +block+ returns a true value.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *     [1,2,3,4,5].select { |num|  num.even?  }   #=&gt; [2, 4]</div><div class='add'>+ *</div><div class='ctx'>  *     a = %w{ a b c d e f }</div><div class='del'>- *     a.select {|v| v =~ /[aeiou]/}   #=&gt; ["a", "e"]</div><div class='add'>+ *     a.select { |v| v =~ /[aeiou]/ }  #=&gt; ["a", "e"]</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#select.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_select(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_select(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    result = rb_ary_new2(RARRAY(ary)-&gt;len);</div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	if (RTEST(rb_yield(RARRAY(ary)-&gt;ptr[i]))) {</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    result = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='ctx'> 	    rb_ary_push(result, rb_ary_elt(ary, i));</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct select_bang_arg {</div><div class='add'>+    VALUE ary;</div><div class='add'>+    long len[2];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+select_bang_i(VALUE a)</div><div class='add'>+{</div><div class='add'>+    volatile struct select_bang_arg *arg = (void *)a;</div><div class='add'>+    VALUE ary = arg-&gt;ary;</div><div class='add'>+    long i1, i2;</div><div class='add'>+</div><div class='add'>+    for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); arg-&gt;len[0] = ++i1) {</div><div class='add'>+	VALUE v = RARRAY_AREF(ary, i1);</div><div class='add'>+	if (!RTEST(rb_yield(v))) continue;</div><div class='add'>+	if (i1 != i2) {</div><div class='add'>+	    rb_ary_store(ary, i2, v);</div><div class='add'>+	}</div><div class='add'>+	arg-&gt;len[1] = ++i2;</div><div class='add'>+    }</div><div class='add'>+    return (i1 == i2) ? Qnil : ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+select_bang_ensure(VALUE a)</div><div class='add'>+{</div><div class='add'>+    volatile struct select_bang_arg *arg = (void *)a;</div><div class='add'>+    VALUE ary = arg-&gt;ary;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    long i1 = arg-&gt;len[0], i2 = arg-&gt;len[1];</div><div class='add'>+</div><div class='add'>+    if (i2 &lt; len &amp;&amp; i2 &lt; i1) {</div><div class='add'>+	long tail = 0;</div><div class='add'>+	if (i1 &lt; len) {</div><div class='add'>+	    tail = len - i1;</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+		    MEMMOVE(ptr + i2, ptr + i1, VALUE, tail);</div><div class='add'>+		});</div><div class='add'>+	}</div><div class='add'>+	ARY_SET_LEN(ary, i2 + tail);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.select!  {|item| block } -&gt; ary or nil</div><div class='add'>+ *     ary.select!                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the given block passing in successive elements from +self+,</div><div class='add'>+ *  deleting elements for which the block returns a +false+ value.</div><div class='add'>+ *</div><div class='add'>+ *  The array may not be changed instantly every time the block is called.</div><div class='add'>+ *</div><div class='add'>+ *  If changes were made, it will return +self+, otherwise it returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#keep_if</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_select_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    struct select_bang_arg args;</div><div class='add'>+</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+</div><div class='add'>+    args.ary = ary;</div><div class='add'>+    args.len[0] = args.len[1] = 0;</div><div class='add'>+    return rb_ensure(select_bang_i, (VALUE)&amp;args, select_bang_ensure, (VALUE)&amp;args);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.keep_if { |item| block } -&gt; ary</div><div class='add'>+ *     ary.keep_if                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Deletes every element of +self+ for which the given block evaluates to</div><div class='add'>+ *  +false+.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#select!</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *     a = %w{ a b c d e f }</div><div class='add'>+ *     a.keep_if { |v| v =~ /[aeiou]/ }  #=&gt; ["a", "e"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_keep_if(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rb_ary_select_bang(ary);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_resize_smaller(VALUE ary, long len)</div><div class='add'>+{</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) &gt; len) {</div><div class='add'>+	ARY_SET_LEN(ary, len);</div><div class='add'>+	if (len * 2 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='add'>+	    ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE) {</div><div class='add'>+	    ary_resize_capa(ary, len * 2);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.delete(obj)            -&gt; obj or nil </div><div class='del'>- *     array.delete(obj) { block }  -&gt; obj or nil</div><div class='del'>- *  </div><div class='del'>- *  Deletes items from &lt;i&gt;self&lt;/i&gt; that are equal to &lt;i&gt;obj&lt;/i&gt;. If</div><div class='del'>- *  the item is not found, returns &lt;code&gt;nil&lt;/code&gt;. If the optional</div><div class='del'>- *  code block is given, returns the result of &lt;i&gt;block&lt;/i&gt; if the item</div><div class='del'>- *  is not found.</div><div class='del'>- *     </div><div class='add'>+ *     ary.delete(obj)            -&gt; item or nil</div><div class='add'>+ *     ary.delete(obj) { block }  -&gt; item or result of block</div><div class='add'>+ *</div><div class='add'>+ *  Deletes all items from +self+ that are equal to +obj+.</div><div class='add'>+ *</div><div class='add'>+ *  Returns the last deleted item, or +nil+ if no matching item is found.</div><div class='add'>+ *</div><div class='add'>+ *  If the optional code block is given, the result of the block is returned if</div><div class='add'>+ *  the item is not found.  (To remove +nil+ elements and get an informative</div><div class='add'>+ *  return value, use Array#compact!)</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "b", "b", "c" ]</div><div class='ctx'>  *     a.delete("b")                   #=&gt; "b"</div><div class='ctx'>  *     a                               #=&gt; ["a", "c"]</div><div class='hunk'>@@ -1845,47 +3013,62 @@ rb_ary_select(ary)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_delete(ary, item)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE item;</div><div class='add'>+rb_ary_delete(VALUE ary, VALUE item)</div><div class='ctx'> {</div><div class='add'>+    VALUE v = item;</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='del'>-    for (i1 = i2 = 0; i1 &lt; RARRAY(ary)-&gt;len; i1++) {</div><div class='del'>-	VALUE e = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+    for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); i1++) {</div><div class='add'>+	VALUE e = RARRAY_AREF(ary, i1);</div><div class='ctx'> </div><div class='del'>-	if (rb_equal(e, item)) continue;</div><div class='add'>+	if (rb_equal(e, item)) {</div><div class='add'>+	    v = e;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='ctx'> 	if (i1 != i2) {</div><div class='ctx'> 	    rb_ary_store(ary, i2, e);</div><div class='ctx'> 	}</div><div class='ctx'> 	i2++;</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len == i2) {</div><div class='add'>+    if (RARRAY_LEN(ary) == i2) {</div><div class='ctx'> 	if (rb_block_given_p()) {</div><div class='ctx'> 	    return rb_yield(item);</div><div class='ctx'> 	}</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_ary_modify(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len &gt; i2) {</div><div class='del'>-	RARRAY(ary)-&gt;len = i2;</div><div class='del'>-	if (i2 * 2 &lt; RARRAY(ary)-&gt;aux.capa &amp;&amp;</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa &gt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, i2 * 2);</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa = i2 * 2;</div><div class='add'>+    ary_resize_smaller(ary, i2);</div><div class='add'>+</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_ary_delete_same(VALUE ary, VALUE item)</div><div class='add'>+{</div><div class='add'>+    long i1, i2;</div><div class='add'>+</div><div class='add'>+    for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); i1++) {</div><div class='add'>+	VALUE e = RARRAY_AREF(ary, i1);</div><div class='add'>+</div><div class='add'>+	if (e == item) {</div><div class='add'>+	    continue;</div><div class='ctx'> 	}</div><div class='add'>+	if (i1 != i2) {</div><div class='add'>+	    rb_ary_store(ary, i2, e);</div><div class='add'>+	}</div><div class='add'>+	i2++;</div><div class='add'>+    }</div><div class='add'>+    if (RARRAY_LEN(ary) == i2) {</div><div class='add'>+	return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return item;</div><div class='add'>+    ary_resize_smaller(ary, i2);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_delete_at(ary, pos)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long pos;</div><div class='add'>+rb_ary_delete_at(VALUE ary, long pos)</div><div class='ctx'> {</div><div class='del'>-    long i, len = RARRAY(ary)-&gt;len;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='ctx'>     VALUE del;</div><div class='ctx'> </div><div class='ctx'>     if (pos &gt;= len) return Qnil;</div><div class='hunk'>@@ -1895,52 +3078,48 @@ rb_ary_delete_at(ary, pos)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    del = RARRAY(ary)-&gt;ptr[pos];</div><div class='del'>-    for (i = pos + 1; i &lt; len; i++, pos++) {</div><div class='del'>-	RARRAY(ary)-&gt;ptr[pos] = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-    }</div><div class='del'>-    RARRAY(ary)-&gt;len = pos;</div><div class='add'>+    del = RARRAY_AREF(ary, pos);</div><div class='add'>+    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	MEMMOVE(ptr+pos, ptr+pos+1, VALUE, len-pos-1);</div><div class='add'>+    });</div><div class='add'>+    ARY_INCREASE_LEN(ary, -1);</div><div class='ctx'> </div><div class='ctx'>     return del;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.delete_at(index)  -&gt; obj or nil</div><div class='del'>- *  </div><div class='del'>- *  Deletes the element at the specified index, returning that element,</div><div class='del'>- *  or &lt;code&gt;nil&lt;/code&gt; if the index is out of range. See also</div><div class='del'>- *  &lt;code&gt;Array#slice!&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     a = %w( ant bat cat dog )</div><div class='add'>+ *     ary.delete_at(index)  -&gt; obj or nil</div><div class='add'>+ *</div><div class='add'>+ *  Deletes the element at the specified +index+, returning that element, or</div><div class='add'>+ *  +nil+ if the +index+ is out of range.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#slice!</div><div class='add'>+ *</div><div class='add'>+ *     a = ["ant", "bat", "cat", "dog"]</div><div class='ctx'>  *     a.delete_at(2)    #=&gt; "cat"</div><div class='ctx'>  *     a                 #=&gt; ["ant", "bat", "dog"]</div><div class='ctx'>  *     a.delete_at(99)   #=&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_delete_at_m(ary, pos)</div><div class='del'>-    VALUE ary, pos;</div><div class='add'>+rb_ary_delete_at_m(VALUE ary, VALUE pos)</div><div class='ctx'> {</div><div class='ctx'>     return rb_ary_delete_at(ary, NUM2LONG(pos));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.slice!(index)         -&gt; obj or nil</div><div class='del'>- *     array.slice!(start, length) -&gt; sub_array or nil</div><div class='del'>- *     array.slice!(range)         -&gt; sub_array or nil </div><div class='del'>- *  </div><div class='del'>- *  Deletes the element(s) given by an index (optionally with a length)</div><div class='del'>- *  or by a range. Returns the deleted object, subarray, or</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; if the index is out of range. Equivalent to:</div><div class='del'>- *     </div><div class='del'>- *     def slice!(*args)</div><div class='del'>- *       result = self[*args]</div><div class='del'>- *       self[*args] = nil</div><div class='del'>- *       result</div><div class='del'>- *     end</div><div class='del'>- *     </div><div class='add'>+ *     ary.slice!(index)         -&gt; obj or nil</div><div class='add'>+ *     ary.slice!(start, length) -&gt; new_ary or nil</div><div class='add'>+ *     ary.slice!(range)         -&gt; new_ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Deletes the element(s) given by an +index+ (optionally up to +length+</div><div class='add'>+ *  elements) or by a +range+.</div><div class='add'>+ *</div><div class='add'>+ *  Returns the deleted object (or objects), or +nil+ if the +index+ is out of</div><div class='add'>+ *  range.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='ctx'>  *     a.slice!(1)     #=&gt; "b"</div><div class='ctx'>  *     a               #=&gt; ["a", "c"]</div><div class='hunk'>@@ -1951,194 +3130,313 @@ rb_ary_delete_at_m(ary, pos)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_slice_bang(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE arg1, arg2;</div><div class='del'>-    long pos, len;</div><div class='add'>+    long pos, len, orig_len;</div><div class='ctx'> </div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;arg1, &amp;arg2) == 2) {</div><div class='del'>-	pos = NUM2LONG(arg1);</div><div class='del'>-	len = NUM2LONG(arg2);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (argc == 2) {</div><div class='add'>+	pos = NUM2LONG(argv[0]);</div><div class='add'>+	len = NUM2LONG(argv[1]);</div><div class='ctx'>       delete_pos_len:</div><div class='add'>+	if (len &lt; 0) return Qnil;</div><div class='add'>+	orig_len = RARRAY_LEN(ary);</div><div class='ctx'> 	if (pos &lt; 0) {</div><div class='del'>-	    pos = RARRAY(ary)-&gt;len + pos;</div><div class='add'>+	    pos += orig_len;</div><div class='add'>+	    if (pos &lt; 0) return Qnil;</div><div class='add'>+	}</div><div class='add'>+	else if (orig_len &lt; pos) return Qnil;</div><div class='add'>+	if (orig_len &lt; pos + len) {</div><div class='add'>+	    len = orig_len - pos;</div><div class='ctx'> 	}</div><div class='del'>-	arg2 = rb_ary_subseq(ary, pos, len);</div><div class='del'>-	rb_ary_splice(ary, pos, len, Qnil);	/* Qnil/rb_ary_new2(0) */</div><div class='add'>+	if (len == 0) return rb_ary_new2(0);</div><div class='add'>+	arg2 = rb_ary_new4(len, RARRAY_CONST_PTR(ary)+pos);</div><div class='add'>+	RBASIC_SET_CLASS(arg2, rb_obj_class(ary));</div><div class='add'>+	rb_ary_splice(ary, pos, len, 0, 0);</div><div class='ctx'> 	return arg2;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!FIXNUM_P(arg1) &amp;&amp; rb_range_beg_len(arg1, &amp;pos, &amp;len, RARRAY(ary)-&gt;len, 1)) {</div><div class='del'>-	goto delete_pos_len;</div><div class='add'>+    if (argc != 1) {</div><div class='add'>+	/* error report */</div><div class='add'>+	rb_scan_args(argc, argv, "11", NULL, NULL);</div><div class='add'>+    }</div><div class='add'>+    arg1 = argv[0];</div><div class='add'>+</div><div class='add'>+    if (!FIXNUM_P(arg1)) {</div><div class='add'>+	switch (rb_range_beg_len(arg1, &amp;pos, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='add'>+	  case Qtrue:</div><div class='add'>+	    /* valid range */</div><div class='add'>+	    goto delete_pos_len;</div><div class='add'>+	  case Qnil:</div><div class='add'>+	    /* invalid range */</div><div class='add'>+	    return Qnil;</div><div class='add'>+	  default:</div><div class='add'>+	    /* not a range */</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_ary_delete_at(ary, NUM2LONG(arg1));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     array.reject! {|item| block }  -&gt; array or nil</div><div class='del'>- *  </div><div class='del'>- *  Equivalent to &lt;code&gt;Array#delete_if&lt;/code&gt;, deleting elements from</div><div class='del'>- *  _self_ for which the block evaluates to true, but returns</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; if no changes were made. Also see</div><div class='del'>- *  &lt;code&gt;Enumerable#reject&lt;/code&gt;.</div><div class='del'>- */</div><div class='add'>+static VALUE</div><div class='add'>+ary_reject(VALUE orig, VALUE result)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(orig); i++) {</div><div class='add'>+	VALUE v = RARRAY_AREF(orig, i);</div><div class='add'>+	if (!RTEST(rb_yield(v))) {</div><div class='add'>+	    rb_ary_push(result, v);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_reject_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+reject_bang_i(VALUE a)</div><div class='ctx'> {</div><div class='add'>+    volatile struct select_bang_arg *arg = (void *)a;</div><div class='add'>+    VALUE ary = arg-&gt;ary;</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='del'>-    rb_ary_modify(ary);</div><div class='del'>-    for (i1 = i2 = 0; i1 &lt; RARRAY(ary)-&gt;len; i1++) {</div><div class='del'>-	VALUE v = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+    for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); arg-&gt;len[0] = ++i1) {</div><div class='add'>+	VALUE v = RARRAY_AREF(ary, i1);</div><div class='ctx'> 	if (RTEST(rb_yield(v))) continue;</div><div class='ctx'> 	if (i1 != i2) {</div><div class='ctx'> 	    rb_ary_store(ary, i2, v);</div><div class='ctx'> 	}</div><div class='del'>-	i2++;</div><div class='add'>+	arg-&gt;len[1] = ++i2;</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len == i2) return Qnil;</div><div class='del'>-    if (i2 &lt; RARRAY(ary)-&gt;len)</div><div class='del'>-	RARRAY(ary)-&gt;len = i2;</div><div class='add'>+    return (i1 == i2) ? Qnil : ary;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return ary;</div><div class='add'>+static VALUE</div><div class='add'>+ary_reject_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    struct select_bang_arg args;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    args.ary = ary;</div><div class='add'>+    args.len[0] = args.len[1] = 0;</div><div class='add'>+    return rb_ensure(reject_bang_i, (VALUE)&amp;args, select_bang_ensure, (VALUE)&amp;args);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.reject {|item| block }  -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Returns a new array containing the items in _self_</div><div class='del'>- *  for which the block is not true.</div><div class='add'>+ *     ary.reject! { |item| block }  -&gt; ary or nil</div><div class='add'>+ *     ary.reject!                   -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Deletes every element of +self+ for which the block evaluates to +true+,</div><div class='add'>+ *  if no changes were made returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  The array may not be changed instantly every time the block is called.</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#reject and Array#delete_if.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_reject(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reject_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    ary = rb_ary_dup(ary);</div><div class='del'>-    rb_ary_reject_bang(ary);</div><div class='del'>-    return ary;</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    return ary_reject_bang(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.delete_if {|item| block }  -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Deletes every element of &lt;i&gt;self&lt;/i&gt; for which &lt;i&gt;block&lt;/i&gt; evaluates</div><div class='del'>- *  to &lt;code&gt;true&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.delete_if {|x| x &gt;= "b" }   #=&gt; ["a"]</div><div class='add'>+ *     ary.reject  {|item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.reject                   -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array containing the items in +self+ for which the given</div><div class='add'>+ *  block is not +true+. The ordering of non-rejected elements is maintained.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#delete_if</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_delete_if(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reject(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE rejected_ary;</div><div class='add'>+</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rejected_ary = rb_ary_new();</div><div class='add'>+    ary_reject(ary, rejected_ary);</div><div class='add'>+    return rejected_ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.delete_if { |item| block }  -&gt; ary</div><div class='add'>+ *     ary.delete_if                   -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Deletes every element of +self+ for which block evaluates to +true+.</div><div class='add'>+ *</div><div class='add'>+ *  The array is changed instantly every time the block is called, not after</div><div class='add'>+ *  the iteration is over.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#reject!</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *     scores = [ 97, 42, 75 ]</div><div class='add'>+ *     scores.delete_if {|score| score &lt; 80 }   #=&gt; [97]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_delete_if(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_reject_bang(ary);</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    ary_reject_bang(ary);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+take_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, cbarg))</div><div class='add'>+{</div><div class='add'>+    VALUE *args = (VALUE *)cbarg;</div><div class='add'>+    if (args[1]-- == 0) rb_iter_break();</div><div class='add'>+    if (argc &gt; 1) val = rb_ary_new4(argc, argv);</div><div class='add'>+    rb_ary_push(args[0], val);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+take_items(VALUE obj, long n)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_check_array_type(obj);</div><div class='add'>+    VALUE args[2];</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(result)) return rb_ary_subseq(result, 0, n);</div><div class='add'>+    result = rb_ary_new2(n);</div><div class='add'>+    args[0] = result; args[1] = (VALUE)n;</div><div class='add'>+    if (rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args) == Qundef)</div><div class='add'>+	rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='add'>+		 rb_obj_class(obj));</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.zip(arg, ...)                   -&gt; an_array</div><div class='del'>- *     array.zip(arg, ...) {| arr | block }  -&gt; nil</div><div class='del'>- *  </div><div class='del'>- *  Converts any arguments to arrays, then merges elements of</div><div class='del'>- *  &lt;i&gt;self&lt;/i&gt; with corresponding elements from each argument. This</div><div class='del'>- *  generates a sequence of &lt;code&gt;self.size&lt;/code&gt; &lt;em&gt;n&lt;/em&gt;-element</div><div class='del'>- *  arrays, where &lt;em&gt;n&lt;/em&gt; is one more that the count of arguments. If</div><div class='del'>- *  the size of any argument is less than &lt;code&gt;enumObj.size&lt;/code&gt;,</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; values are supplied. If a block given, it is</div><div class='del'>- *  invoked for each output array, otherwise an array of arrays is</div><div class='del'>- *  returned.</div><div class='del'>- *     </div><div class='add'>+ *     ary.zip(arg, ...)                  -&gt; new_ary</div><div class='add'>+ *     ary.zip(arg, ...) { |arr| block }  -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Converts any arguments to arrays, then merges elements of +self+ with</div><div class='add'>+ *  corresponding elements from each argument.</div><div class='add'>+ *</div><div class='add'>+ *  This generates a sequence of &lt;code&gt;ary.size&lt;/code&gt; _n_-element arrays,</div><div class='add'>+ *  where _n_ is one more than the count of arguments.</div><div class='add'>+ *</div><div class='add'>+ *  If the size of any argument is less than the size of the initial array,</div><div class='add'>+ *  +nil+ values are supplied.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, it is invoked for each output +array+, otherwise an</div><div class='add'>+ *  array of arrays is returned.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ 4, 5, 6 ]</div><div class='ctx'>  *     b = [ 7, 8, 9 ]</div><div class='del'>- *     </div><div class='del'>- *     [1,2,3].zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]</div><div class='del'>- *     [1,2].zip(a,b)         #=&gt; [[1, 4, 7], [2, 5, 8]]</div><div class='del'>- *     a.zip([1,2],[8])       #=&gt; [[4,1,8], [5,2,nil], [6,nil,nil]]</div><div class='add'>+ *     [1, 2, 3].zip(a, b)   #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]</div><div class='add'>+ *     [1, 2].zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8]]</div><div class='add'>+ *     a.zip([1, 2], [8])    #=&gt; [[4, 1, 8], [5, 2, nil], [6, nil, nil]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_zip(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_zip(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     int i, j;</div><div class='del'>-    long len;</div><div class='del'>-    VALUE result;</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    VALUE result = Qnil;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	argv[i] = to_ary(argv[i]);</div><div class='add'>+	argv[i] = take_items(argv[i], len);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	    VALUE tmp = rb_ary_new2(argc+1);</div><div class='add'>+	int arity = rb_block_arity();</div><div class='ctx'> </div><div class='del'>-	    rb_ary_push(tmp, rb_ary_elt(ary, i));</div><div class='del'>-	    for (j=0; j&lt;argc; j++) {</div><div class='del'>-		rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+	if (arity &gt; 1) {</div><div class='add'>+	    VALUE work, *tmp;</div><div class='add'>+</div><div class='add'>+	    tmp = ALLOCV_N(VALUE, work, argc+1);</div><div class='add'>+</div><div class='add'>+	    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+		tmp[0] = RARRAY_AREF(ary, i);</div><div class='add'>+		for (j=0; j&lt;argc; j++) {</div><div class='add'>+		    tmp[j+1] = rb_ary_elt(argv[j], i);</div><div class='add'>+		}</div><div class='add'>+		rb_yield_values2(argc+1, tmp);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (work) ALLOCV_END(work);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+		VALUE tmp = rb_ary_new2(argc+1);</div><div class='add'>+</div><div class='add'>+		rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='add'>+		for (j=0; j&lt;argc; j++) {</div><div class='add'>+		    rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+		}</div><div class='add'>+		rb_yield(tmp);</div><div class='ctx'> 	    }</div><div class='del'>-	    rb_yield(tmp);</div><div class='ctx'> 	}</div><div class='del'>-	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    len = RARRAY(ary)-&gt;len;</div><div class='del'>-    result = rb_ary_new2(len);</div><div class='del'>-    for (i=0; i&lt;len; i++) {</div><div class='del'>-	VALUE tmp = rb_ary_new2(argc+1);</div><div class='add'>+    else {</div><div class='add'>+	result = rb_ary_new_capa(len);</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;len; i++) {</div><div class='add'>+	    VALUE tmp = rb_ary_new_capa(argc+1);</div><div class='ctx'> </div><div class='del'>-	rb_ary_push(tmp, rb_ary_elt(ary, i));</div><div class='del'>-	for (j=0; j&lt;argc; j++) {</div><div class='del'>-	    rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+	    rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='add'>+	    for (j=0; j&lt;argc; j++) {</div><div class='add'>+		rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+	    }</div><div class='add'>+	    rb_ary_push(result, tmp);</div><div class='ctx'> 	}</div><div class='del'>-	rb_ary_push(result, tmp);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.transpose -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Assumes that &lt;i&gt;self&lt;/i&gt; is an array of arrays and transposes the</div><div class='del'>- *  rows and columns.</div><div class='del'>- *     </div><div class='add'>+ *     ary.transpose -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Assumes that +self+ is an array of arrays and transposes the rows and</div><div class='add'>+ *  columns.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [[1,2], [3,4], [5,6]]</div><div class='ctx'>  *     a.transpose   #=&gt; [[1, 3, 5], [2, 4, 6]]</div><div class='add'>+ *</div><div class='add'>+ *  If the length of the subarrays don't match, an IndexError is raised.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_transpose(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_transpose(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long elen = -1, alen, i, j;</div><div class='ctx'>     VALUE tmp, result = 0;</div><div class='ctx'> </div><div class='del'>-    alen = RARRAY(ary)-&gt;len;</div><div class='add'>+    alen = RARRAY_LEN(ary);</div><div class='ctx'>     if (alen == 0) return rb_ary_dup(ary);</div><div class='ctx'>     for (i=0; i&lt;alen; i++) {</div><div class='ctx'> 	tmp = to_ary(rb_ary_elt(ary, i));</div><div class='ctx'> 	if (elen &lt; 0) {		/* first element */</div><div class='del'>-	    elen = RARRAY(tmp)-&gt;len;</div><div class='add'>+	    elen = RARRAY_LEN(tmp);</div><div class='ctx'> 	    result = rb_ary_new2(elen);</div><div class='ctx'> 	    for (j=0; j&lt;elen; j++) {</div><div class='ctx'> 		rb_ary_store(result, j, rb_ary_new2(alen));</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	else if (elen != RARRAY(tmp)-&gt;len) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "element size differs (%d should be %d)",</div><div class='del'>-		     RARRAY(tmp)-&gt;len, elen);</div><div class='add'>+	else if (elen != RARRAY_LEN(tmp)) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "element size differs (%ld should be %ld)",</div><div class='add'>+		     RARRAY_LEN(tmp), elen);</div><div class='ctx'> 	}</div><div class='ctx'> 	for (j=0; j&lt;elen; j++) {</div><div class='ctx'> 	    rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));</div><div class='hunk'>@@ -2149,96 +3447,121 @@ rb_ary_transpose(ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.replace(other_array)  -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Replaces the contents of &lt;i&gt;self&lt;/i&gt; with the contents of</div><div class='del'>- *  &lt;i&gt;other_array&lt;/i&gt;, truncating or expanding if necessary.</div><div class='del'>- *     </div><div class='add'>+ *     ary.replace(other_ary)  -&gt; ary</div><div class='add'>+ *     ary.initialize_copy(other_ary)	-&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Replaces the contents of +self+ with the contents of +other_ary+,</div><div class='add'>+ *  truncating or expanding if necessary.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d", "e" ]</div><div class='ctx'>  *     a.replace([ "x", "y", "z" ])   #=&gt; ["x", "y", "z"]</div><div class='ctx'>  *     a                              #=&gt; ["x", "y", "z"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_ary_replace(copy, orig)</div><div class='del'>-    VALUE copy, orig;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_replace(VALUE copy, VALUE orig)</div><div class='ctx'> {</div><div class='del'>-    VALUE shared;</div><div class='del'>-</div><div class='del'>-    rb_ary_modify(copy);</div><div class='add'>+    rb_ary_modify_check(copy);</div><div class='ctx'>     orig = to_ary(orig);</div><div class='ctx'>     if (copy == orig) return copy;</div><div class='del'>-    shared = ary_make_shared(orig);</div><div class='del'>-    if (RARRAY(copy)-&gt;ptr &amp;&amp; !FL_TEST(copy, ELTS_SHARED))</div><div class='del'>-	free(RARRAY(copy)-&gt;ptr);</div><div class='del'>-    RARRAY(copy)-&gt;ptr = RARRAY(orig)-&gt;ptr;</div><div class='del'>-    RARRAY(copy)-&gt;len = RARRAY(orig)-&gt;len;</div><div class='del'>-    RARRAY(copy)-&gt;aux.shared = shared;</div><div class='del'>-    FL_SET(copy, ELTS_SHARED);</div><div class='ctx'> </div><div class='add'>+    if (RARRAY_LEN(orig) &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        VALUE shared = 0;</div><div class='add'>+</div><div class='add'>+        if (ARY_OWNS_HEAP_P(copy)) {</div><div class='add'>+	    RARRAY_PTR_USE(copy, ptr, ruby_sized_xfree(ptr, ARY_HEAP_SIZE(copy)));</div><div class='add'>+	}</div><div class='add'>+        else if (ARY_SHARED_P(copy)) {</div><div class='add'>+            shared = ARY_SHARED(copy);</div><div class='add'>+            FL_UNSET_SHARED(copy);</div><div class='add'>+        }</div><div class='add'>+        FL_SET_EMBED(copy);</div><div class='add'>+	ary_memcpy(copy, 0, RARRAY_LEN(orig), RARRAY_CONST_PTR(orig));</div><div class='add'>+        if (shared) {</div><div class='add'>+            rb_ary_decrement_share(shared);</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_LEN(copy, RARRAY_LEN(orig));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE shared = ary_make_shared(orig);</div><div class='add'>+        if (ARY_OWNS_HEAP_P(copy)) {</div><div class='add'>+	    RARRAY_PTR_USE(copy, ptr, ruby_sized_xfree(ptr, ARY_HEAP_SIZE(copy)));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_unshare_safe(copy);</div><div class='add'>+        }</div><div class='add'>+        FL_UNSET_EMBED(copy);</div><div class='add'>+        ARY_SET_PTR(copy, RARRAY_CONST_PTR(orig));</div><div class='add'>+        ARY_SET_LEN(copy, RARRAY_LEN(orig));</div><div class='add'>+        rb_ary_set_shared(copy, shared);</div><div class='add'>+    }</div><div class='ctx'>     return copy;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.clear    -&gt;  array</div><div class='add'>+ *     ary.clear    -&gt; ary</div><div class='ctx'>  *</div><div class='del'>- *  Removes all elements from _self_.</div><div class='add'>+ *  Removes all elements from +self+.</div><div class='ctx'>  *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d", "e" ]</div><div class='ctx'>  *     a.clear    #=&gt; [ ]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_clear(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_clear(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_modify(ary);</div><div class='del'>-    RARRAY(ary)-&gt;len = 0;</div><div class='del'>-    if (ARY_DEFAULT_SIZE * 2 &lt; RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, ARY_DEFAULT_SIZE * 2);</div><div class='del'>-	RARRAY(ary)-&gt;aux.capa = ARY_DEFAULT_SIZE * 2;</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    ARY_SET_LEN(ary, 0);</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+	if (!ARY_EMBED_P(ary)) {</div><div class='add'>+	    rb_ary_unshare(ary);</div><div class='add'>+	    FL_SET_EMBED(ary);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (ARY_DEFAULT_SIZE * 2 &lt; ARY_CAPA(ary)) {</div><div class='add'>+	ary_resize_capa(ary, ARY_DEFAULT_SIZE * 2);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.fill(obj)                                -&gt; array</div><div class='del'>- *     array.fill(obj, start [, length])              -&gt; array</div><div class='del'>- *     array.fill(obj, range )                        -&gt; array</div><div class='del'>- *     array.fill {|index| block }                    -&gt; array</div><div class='del'>- *     array.fill(start [, length] ) {|index| block } -&gt; array</div><div class='del'>- *     array.fill(range) {|index| block }             -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  The first three forms set the selected elements of &lt;i&gt;self&lt;/i&gt; (which</div><div class='del'>- *  may be the entire array) to &lt;i&gt;obj&lt;/i&gt;. A &lt;i&gt;start&lt;/i&gt; of</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; is equivalent to zero. A &lt;i&gt;length&lt;/i&gt; of</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; is equivalent to &lt;i&gt;self.length&lt;/i&gt;. The last three</div><div class='del'>- *  forms fill the array with the value of the block. The block is</div><div class='del'>- *  passed the absolute index of each element to be filled.</div><div class='del'>- *     </div><div class='add'>+ *     ary.fill(obj)                                 -&gt; ary</div><div class='add'>+ *     ary.fill(obj, start [, length])               -&gt; ary</div><div class='add'>+ *     ary.fill(obj, range )                         -&gt; ary</div><div class='add'>+ *     ary.fill { |index| block }                    -&gt; ary</div><div class='add'>+ *     ary.fill(start [, length] ) { |index| block } -&gt; ary</div><div class='add'>+ *     ary.fill(range) { |index| block }             -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  The first three forms set the selected elements of +self+ (which</div><div class='add'>+ *  may be the entire array) to +obj+.</div><div class='add'>+ *</div><div class='add'>+ *  A +start+ of +nil+ is equivalent to zero.</div><div class='add'>+ *</div><div class='add'>+ *  A +length+ of +nil+ is equivalent to the length of the array.</div><div class='add'>+ *</div><div class='add'>+ *  The last three forms fill the array with the value of the given block,</div><div class='add'>+ *  which is passed the absolute index of each element to be filled.</div><div class='add'>+ *</div><div class='add'>+ *  Negative values of +start+ count from the end of the array, where +-1+ is</div><div class='add'>+ *  the last element.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c", "d" ]</div><div class='ctx'>  *     a.fill("x")              #=&gt; ["x", "x", "x", "x"]</div><div class='ctx'>  *     a.fill("z", 2, 2)        #=&gt; ["x", "x", "z", "z"]</div><div class='ctx'>  *     a.fill("y", 0..1)        #=&gt; ["y", "y", "z", "z"]</div><div class='del'>- *     a.fill {|i| i*i}         #=&gt; [0, 1, 4, 9]</div><div class='del'>- *     a.fill(-2) {|i| i*i*i}   #=&gt; [0, 1, 8, 27]</div><div class='add'>+ *     a.fill { |i| i*i }       #=&gt; [0, 1, 4, 9]</div><div class='add'>+ *     a.fill(-2) { |i| i*i*i } #=&gt; [0, 1, 8, 27]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_fill(argc, argv, ary)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_fill(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE item, arg1, arg2;</div><div class='add'>+    VALUE item = Qundef, arg1, arg2;</div><div class='ctx'>     long beg = 0, end = 0, len = 0;</div><div class='del'>-    VALUE *p, *pend;</div><div class='del'>-    int block_p = Qfalse;</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	block_p = Qtrue;</div><div class='ctx'> 	rb_scan_args(argc, argv, "02", &amp;arg1, &amp;arg2);</div><div class='ctx'> 	argc += 1;		/* hackish */</div><div class='ctx'>     }</div><div class='hunk'>@@ -2248,112 +3571,161 @@ rb_ary_fill(argc, argv, ary)</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 1:</div><div class='ctx'> 	beg = 0;</div><div class='del'>-	len = RARRAY(ary)-&gt;len;</div><div class='add'>+	len = RARRAY_LEN(ary);</div><div class='ctx'> 	break;</div><div class='ctx'>       case 2:</div><div class='del'>-	if (rb_range_beg_len(arg1, &amp;beg, &amp;len, RARRAY(ary)-&gt;len, 1)) {</div><div class='add'>+	if (rb_range_beg_len(arg1, &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='ctx'> 	/* fall through */</div><div class='ctx'>       case 3:</div><div class='ctx'> 	beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);</div><div class='ctx'> 	if (beg &lt; 0) {</div><div class='del'>-	    beg = RARRAY(ary)-&gt;len + beg;</div><div class='add'>+	    beg = RARRAY_LEN(ary) + beg;</div><div class='ctx'> 	    if (beg &lt; 0) beg = 0;</div><div class='ctx'> 	}</div><div class='del'>-	len = NIL_P(arg2) ? RARRAY(ary)-&gt;len - beg : NUM2LONG(arg2);</div><div class='add'>+	len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);</div><div class='ctx'> 	break;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    end = beg + len;</div><div class='del'>-    if (end &lt; 0) {</div><div class='add'>+    if (len &lt; 0) {</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='add'>+    if (beg &gt;= ARY_MAX_SIZE || len &gt; ARY_MAX_SIZE - beg) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "argument too big");</div><div class='ctx'>     }</div><div class='del'>-    if (end &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	if (end &gt;= RARRAY(ary)-&gt;aux.capa) {</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, end);</div><div class='del'>-	    RARRAY(ary)-&gt;aux.capa = end;</div><div class='add'>+    end = beg + len;</div><div class='add'>+    if (RARRAY_LEN(ary) &lt; end) {</div><div class='add'>+	if (end &gt;= ARY_CAPA(ary)) {</div><div class='add'>+	    ary_resize_capa(ary, end);</div><div class='ctx'> 	}</div><div class='del'>-	rb_mem_clear(RARRAY(ary)-&gt;ptr + RARRAY(ary)-&gt;len, end - RARRAY(ary)-&gt;len);</div><div class='del'>-	RARRAY(ary)-&gt;len = end;</div><div class='add'>+	ary_mem_clear(ary, RARRAY_LEN(ary), end - RARRAY_LEN(ary));</div><div class='add'>+	ARY_SET_LEN(ary, end);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (block_p) {</div><div class='add'>+    if (item == Qundef) {</div><div class='ctx'> 	VALUE v;</div><div class='ctx'> 	long i;</div><div class='ctx'> </div><div class='ctx'> 	for (i=beg; i&lt;end; i++) {</div><div class='ctx'> 	    v = rb_yield(LONG2NUM(i));</div><div class='del'>-	    if (i&gt;=RARRAY(ary)-&gt;len) break;</div><div class='del'>-	    RARRAY(ary)-&gt;ptr[i] = v;</div><div class='add'>+	    if (i&gt;=RARRAY_LEN(ary)) break;</div><div class='add'>+	    ARY_SET(ary, i, v);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	p = RARRAY(ary)-&gt;ptr + beg;</div><div class='del'>-	pend = p + len;</div><div class='del'>-	while (p &lt; pend) {</div><div class='del'>-	    *p++ = item;</div><div class='del'>-	}</div><div class='add'>+	ary_memfill(ary, beg, len, item);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array + other_array   -&gt; an_array</div><div class='add'>+ *     ary + other_ary   -&gt; new_ary</div><div class='ctx'>  *</div><div class='del'>- *  Concatenation---Returns a new array built by concatenating the</div><div class='add'>+ *  Concatenation --- Returns a new array built by concatenating the</div><div class='ctx'>  *  two arrays together to produce a third array.</div><div class='del'>- * </div><div class='add'>+ *</div><div class='ctx'>  *     [ 1, 2, 3 ] + [ 4, 5 ]    #=&gt; [ 1, 2, 3, 4, 5 ]</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     c = a + [ "d", "e", "f" ]</div><div class='add'>+ *     c                         #=&gt; [ "a", "b", "c", "d", "e", "f" ]</div><div class='add'>+ *     a                         #=&gt; [ "a", "b", "c" ]</div><div class='add'>+ *</div><div class='add'>+ *  Note that</div><div class='add'>+ *     x += y</div><div class='add'>+ *  is the same as</div><div class='add'>+ *     x = x + y</div><div class='add'>+ *  This means that it produces a new array. As a consequence,</div><div class='add'>+ *  repeated use of &lt;code&gt;+=&lt;/code&gt; on arrays can be quite inefficient.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#concat.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_plus(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_ary_plus(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='del'>-    long len;</div><div class='add'>+    long len, xlen, ylen;</div><div class='ctx'> </div><div class='ctx'>     y = to_ary(y);</div><div class='del'>-    len = RARRAY(x)-&gt;len + RARRAY(y)-&gt;len;</div><div class='add'>+    xlen = RARRAY_LEN(x);</div><div class='add'>+    ylen = RARRAY_LEN(y);</div><div class='add'>+    len = xlen + ylen;</div><div class='ctx'>     z = rb_ary_new2(len);</div><div class='del'>-    MEMCPY(RARRAY(z)-&gt;ptr, RARRAY(x)-&gt;ptr, VALUE, RARRAY(x)-&gt;len);</div><div class='del'>-    MEMCPY(RARRAY(z)-&gt;ptr + RARRAY(x)-&gt;len, RARRAY(y)-&gt;ptr, VALUE, RARRAY(y)-&gt;len);</div><div class='del'>-    RARRAY(z)-&gt;len = len;</div><div class='add'>+</div><div class='add'>+    ary_memcpy(z, 0, xlen, RARRAY_CONST_PTR(x));</div><div class='add'>+    ary_memcpy(z, xlen, ylen, RARRAY_CONST_PTR(y));</div><div class='add'>+    ARY_SET_LEN(z, len);</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+static VALUE</div><div class='add'>+ary_append(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long n = RARRAY_LEN(y);</div><div class='add'>+    if (n &gt; 0) {</div><div class='add'>+	rb_ary_splice(x, RARRAY_LEN(x), 0, RARRAY_CONST_PTR(y), n);</div><div class='add'>+    }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.concat(other_array)   -&gt;  array</div><div class='add'>+ *     ary.concat(other_ary1, other_ary2,...)   -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Appends the elements of +other_ary+s to +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Appends the elements in other_array to _self_.</div><div class='del'>- *  </div><div class='ctx'>  *     [ "a", "b" ].concat( ["c", "d"] ) #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ *     [ "a" ].concat( ["b"], ["c", "d"] ) #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ *     [ "a" ].concat #=&gt; [ "a" ]</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, 3 ]</div><div class='add'>+ *     a.concat( [ 4, 5 ] )</div><div class='add'>+ *     a                                 #=&gt; [ 1, 2, 3, 4, 5 ]</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2 ]</div><div class='add'>+ *     a.concat(a, a)                    #=&gt; [1, 2, 1, 2, 1, 2]</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_ary_concat(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_concat_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    y = to_ary(y);</div><div class='del'>-    if (RARRAY(y)-&gt;len &gt; 0) {</div><div class='del'>-	rb_ary_splice(x, RARRAY(x)-&gt;len, 0, y);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+</div><div class='add'>+    if (argc == 1) {</div><div class='add'>+	rb_ary_concat(ary, argv[0]);</div><div class='ctx'>     }</div><div class='del'>-    return x;</div><div class='add'>+    else if (argc &gt; 1) {</div><div class='add'>+	int i;</div><div class='add'>+	VALUE args = rb_ary_tmp_new(argc);</div><div class='add'>+	for (i = 0; i &lt; argc; i++) {</div><div class='add'>+	    rb_ary_concat(args, argv[i]);</div><div class='add'>+	}</div><div class='add'>+	ary_append(ary, args);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_ary_concat(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return ary_append(x, to_ary(y));</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array * int     -&gt;    an_array</div><div class='del'>- *     array * str     -&gt;    a_string</div><div class='add'>+ *     ary * int     -&gt; new_ary</div><div class='add'>+ *     ary * str     -&gt; new_string</div><div class='add'>+ *</div><div class='add'>+ *  Repetition --- With a String argument, equivalent to</div><div class='add'>+ *  &lt;code&gt;ary.join(str)&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  Repetition---With a String argument, equivalent to</div><div class='del'>- *  self.join(str). Otherwise, returns a new array</div><div class='del'>- *  built by concatenating the _int_ copies of _self_.</div><div class='add'>+ *  Otherwise, returns a new array built by concatenating the +int+ copies of</div><div class='add'>+ *  +self+.</div><div class='ctx'>  *</div><div class='ctx'>  *</div><div class='ctx'>  *     [ 1, 2, 3 ] * 3    #=&gt; [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]</div><div class='hunk'>@@ -2362,11 +3734,11 @@ rb_ary_concat(x, y)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_times(ary, times)</div><div class='del'>-    VALUE ary, times;</div><div class='add'>+rb_ary_times(VALUE ary, VALUE times)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary2, tmp;</div><div class='del'>-    long i, len;</div><div class='add'>+    const VALUE *ptr;</div><div class='add'>+    long t, len;</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_check_string_type(times);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='hunk'>@@ -2374,37 +3746,50 @@ rb_ary_times(ary, times)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     len = NUM2LONG(times);</div><div class='del'>-    if (len == 0) return ary_new(rb_obj_class(ary), 0);</div><div class='add'>+    if (len == 0) {</div><div class='add'>+	ary2 = ary_new(rb_obj_class(ary), 0);</div><div class='add'>+	goto out;</div><div class='add'>+    }</div><div class='ctx'>     if (len &lt; 0) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "negative argument");</div><div class='ctx'>     }</div><div class='del'>-    if (LONG_MAX/len &lt; RARRAY(ary)-&gt;len) {</div><div class='add'>+    if (ARY_MAX_SIZE/len &lt; RARRAY_LEN(ary)) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "argument too big");</div><div class='ctx'>     }</div><div class='del'>-    len *= RARRAY(ary)-&gt;len;</div><div class='add'>+    len *= RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='ctx'>     ary2 = ary_new(rb_obj_class(ary), len);</div><div class='del'>-    RARRAY(ary2)-&gt;len = len;</div><div class='del'>-</div><div class='del'>-    for (i=0; i&lt;len; i+=RARRAY(ary)-&gt;len) {</div><div class='del'>-	MEMCPY(RARRAY(ary2)-&gt;ptr+i, RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-    }</div><div class='add'>+    ARY_SET_LEN(ary2, len);</div><div class='add'>+</div><div class='add'>+    ptr = RARRAY_CONST_PTR(ary);</div><div class='add'>+    t = RARRAY_LEN(ary);</div><div class='add'>+    if (0 &lt; t) {</div><div class='add'>+	ary_memcpy(ary2, 0, t, ptr);</div><div class='add'>+	while (t &lt;= len/2) {</div><div class='add'>+	    ary_memcpy(ary2, t, t, RARRAY_CONST_PTR(ary2));</div><div class='add'>+            t *= 2;</div><div class='add'>+        }</div><div class='add'>+        if (t &lt; len) {</div><div class='add'>+	    ary_memcpy(ary2, t, len-t, RARRAY_CONST_PTR(ary2));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  out:</div><div class='ctx'>     OBJ_INFECT(ary2, ary);</div><div class='ctx'> </div><div class='ctx'>     return ary2;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.assoc(obj)   -&gt;  an_array  or  nil</div><div class='add'>+ *     ary.assoc(obj)   -&gt; element_ary  or  nil</div><div class='add'>+ *</div><div class='add'>+ *  Searches through an array whose elements are also arrays comparing +obj+</div><div class='add'>+ *  with the first element of each contained array using &lt;code&gt;obj.==&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  Searches through an array whose elements are also arrays</div><div class='del'>- *  comparing _obj_ with the first element of each contained array</div><div class='del'>- *  using obj.==.</div><div class='del'>- *  Returns the first contained array that matches (that</div><div class='del'>- *  is, the first associated array),</div><div class='del'>- *  or +nil+ if no match is found.</div><div class='del'>- *  See also &lt;code&gt;Array#rassoc&lt;/code&gt;.</div><div class='add'>+ *  Returns the first contained array that matches (that is, the first</div><div class='add'>+ *  associated array), or +nil+ if no match is found.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#rassoc</div><div class='ctx'>  *</div><div class='ctx'>  *     s1 = [ "colors", "red", "blue", "green" ]</div><div class='ctx'>  *     s2 = [ "letters", "a", "b", "c" ]</div><div class='hunk'>@@ -2415,17 +3800,15 @@ rb_ary_times(ary, times)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_assoc(ary, key)</div><div class='del'>-    VALUE ary, key;</div><div class='add'>+rb_ary_assoc(VALUE ary, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; ++i) {</div><div class='del'>-	v = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-	if (TYPE(v) == T_ARRAY &amp;&amp;</div><div class='del'>-	    RARRAY(v)-&gt;len &gt; 0 &amp;&amp;</div><div class='del'>-	    rb_equal(RARRAY(v)-&gt;ptr[0], key))</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	v = rb_check_array_type(RARRAY_AREF(ary, i));</div><div class='add'>+	if (!NIL_P(v) &amp;&amp; RARRAY_LEN(v) &gt; 0 &amp;&amp;</div><div class='add'>+	    rb_equal(RARRAY_AREF(v, 0), key))</div><div class='ctx'> 	    return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -2433,42 +3816,78 @@ rb_ary_assoc(ary, key)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.rassoc(key) -&gt; an_array or nil</div><div class='del'>- *  </div><div class='del'>- *  Searches through the array whose elements are also arrays. Compares</div><div class='del'>- *  &lt;em&gt;key&lt;/em&gt; with the second element of each contained array using</div><div class='del'>- *  &lt;code&gt;==&lt;/code&gt;. Returns the first contained array that matches. See</div><div class='del'>- *  also &lt;code&gt;Array#assoc&lt;/code&gt;.</div><div class='del'>- *     </div><div class='add'>+ *     ary.rassoc(obj) -&gt; element_ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Searches through the array whose elements are also arrays.</div><div class='add'>+ *</div><div class='add'>+ *  Compares +obj+ with the second element of each contained array using</div><div class='add'>+ *  &lt;code&gt;obj.==&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Returns the first contained array that matches +obj+.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#assoc.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]</div><div class='ctx'>  *     a.rassoc("two")    #=&gt; [2, "two"]</div><div class='ctx'>  *     a.rassoc("four")   #=&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_rassoc(ary, value)</div><div class='del'>-    VALUE ary, value;</div><div class='add'>+rb_ary_rassoc(VALUE ary, VALUE value)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; ++i) {</div><div class='del'>-	v = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-	if (TYPE(v) == T_ARRAY &amp;&amp;</div><div class='del'>-	    RARRAY(v)-&gt;len &gt; 1 &amp;&amp;</div><div class='del'>-	    rb_equal(RARRAY(v)-&gt;ptr[1], value))</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	v = RARRAY_AREF(ary, i);</div><div class='add'>+	if (RB_TYPE_P(v, T_ARRAY) &amp;&amp;</div><div class='add'>+	    RARRAY_LEN(v) &gt; 1 &amp;&amp;</div><div class='add'>+	    rb_equal(RARRAY_AREF(v, 1), value))</div><div class='ctx'> 	    return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+static VALUE</div><div class='add'>+recursive_equal(VALUE ary1, VALUE ary2, int recur)</div><div class='add'>+{</div><div class='add'>+    long i, len1;</div><div class='add'>+    const VALUE *p1, *p2;</div><div class='add'>+</div><div class='add'>+    if (recur) return Qtrue; /* Subtle! */</div><div class='add'>+</div><div class='add'>+    p1 = RARRAY_CONST_PTR(ary1);</div><div class='add'>+    p2 = RARRAY_CONST_PTR(ary2);</div><div class='add'>+    len1 = RARRAY_LEN(ary1);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; len1; i++) {</div><div class='add'>+	if (*p1 != *p2) {</div><div class='add'>+	    if (rb_equal(*p1, *p2)) {</div><div class='add'>+		len1 = RARRAY_LEN(ary1);</div><div class='add'>+		if (len1 != RARRAY_LEN(ary2))</div><div class='add'>+		    return Qfalse;</div><div class='add'>+		if (len1 &lt; i)</div><div class='add'>+		    return Qtrue;</div><div class='add'>+		p1 = RARRAY_CONST_PTR(ary1) + i;</div><div class='add'>+		p2 = RARRAY_CONST_PTR(ary2) + i;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		return Qfalse;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	p1++;</div><div class='add'>+	p2++;</div><div class='add'>+    }</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array == other_array   -&gt;   bool</div><div class='add'>+ *     ary == other_ary   -&gt;   bool</div><div class='ctx'>  *</div><div class='del'>- *  Equality---Two arrays are equal if they contain the same number</div><div class='del'>- *  of elements and if each element is equal to (according to</div><div class='del'>- *  Object.==) the corresponding element in the other array.</div><div class='add'>+ *  Equality --- Two arrays are equal if they contain the same number of</div><div class='add'>+ *  elements and if each element is equal to (according to Object#==) the</div><div class='add'>+ *  corresponding element in +other_ary+.</div><div class='ctx'>  *</div><div class='ctx'>  *     [ "a", "c" ]    == [ "a", "c", 7 ]     #=&gt; false</div><div class='ctx'>  *     [ "a", "c", 7 ] == [ "a", "c", 7 ]     #=&gt; true</div><div class='hunk'>@@ -2477,21 +3896,28 @@ rb_ary_rassoc(ary, value)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_equal(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+rb_ary_equal(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='del'>-    long i;</div><div class='del'>-</div><div class='ctx'>     if (ary1 == ary2) return Qtrue;</div><div class='del'>-    if (TYPE(ary2) != T_ARRAY) {</div><div class='del'>-	if (!rb_respond_to(ary2, rb_intern("to_ary"))) {</div><div class='add'>+    if (!RB_TYPE_P(ary2, T_ARRAY)) {</div><div class='add'>+	if (!rb_respond_to(ary2, idTo_ary)) {</div><div class='ctx'> 	    return Qfalse;</div><div class='ctx'> 	}</div><div class='ctx'> 	return rb_equal(ary2, ary1);</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary1)-&gt;len != RARRAY(ary2)-&gt;len) return Qfalse;</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (!rb_equal(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='add'>+    if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;</div><div class='add'>+    if (RARRAY_CONST_PTR(ary1) == RARRAY_CONST_PTR(ary2)) return Qtrue;</div><div class='add'>+    return rb_exec_recursive_paired(recursive_equal, ary1, ary2, ary2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+recursive_eql(VALUE ary1, VALUE ary2, int recur)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    if (recur) return Qtrue; /* Subtle! */</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='ctx'> 	    return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='hunk'>@@ -2499,346 +3925,638 @@ rb_ary_equal(ary1, ary2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.eql?(other)  -&gt; true or false</div><div class='add'>+ *     ary.eql?(other)  -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if _array_ and _other_ are the same object,</div><div class='del'>- *  or are both arrays with the same content.</div><div class='add'>+ *  Returns +true+ if +self+ and +other+ are the same object,</div><div class='add'>+ *  or are both arrays with the same content (according to Object#eql?).</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_eql(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+rb_ary_eql(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='del'>-    long i;</div><div class='del'>-</div><div class='ctx'>     if (ary1 == ary2) return Qtrue;</div><div class='del'>-    if (TYPE(ary2) != T_ARRAY) return Qfalse;</div><div class='del'>-    if (RARRAY(ary1)-&gt;len != RARRAY(ary2)-&gt;len) return Qfalse;</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='del'>-	    return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    return Qtrue;</div><div class='add'>+    if (!RB_TYPE_P(ary2, T_ARRAY)) return Qfalse;</div><div class='add'>+    if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;</div><div class='add'>+    if (RARRAY_CONST_PTR(ary1) == RARRAY_CONST_PTR(ary2)) return Qtrue;</div><div class='add'>+    return rb_exec_recursive_paired(recursive_eql, ary1, ary2, ary2);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.hash   -&gt; fixnum</div><div class='add'>+ *     ary.hash   -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Compute a hash-code for this array.</div><div class='add'>+ *</div><div class='add'>+ *  Two arrays with the same content will have the same hash code (and will</div><div class='add'>+ *  compare using #eql?).</div><div class='ctx'>  *</div><div class='del'>- *  Compute a hash-code for this array. Two arrays with the same content</div><div class='del'>- *  will have the same hash code (and will compare using &lt;code&gt;eql?&lt;/code&gt;).</div><div class='add'>+ *  See also Object#hash.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_hash(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_hash(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long i, h;</div><div class='add'>+    long i;</div><div class='add'>+    st_index_t h;</div><div class='ctx'>     VALUE n;</div><div class='ctx'> </div><div class='del'>-    h = RARRAY(ary)-&gt;len;</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	h = (h &lt;&lt; 1) | (h&lt;0 ? 1 : 0);</div><div class='del'>-	n = rb_hash(RARRAY(ary)-&gt;ptr[i]);</div><div class='del'>-	h ^= NUM2LONG(n);</div><div class='add'>+    h = rb_hash_start(RARRAY_LEN(ary));</div><div class='add'>+    h = rb_hash_uint(h, (st_index_t)rb_ary_hash);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	n = rb_hash(RARRAY_AREF(ary, i));</div><div class='add'>+	h = rb_hash_uint(h, NUM2LONG(n));</div><div class='ctx'>     }</div><div class='del'>-    return LONG2FIX(h);</div><div class='add'>+    h = rb_hash_end(h);</div><div class='add'>+    return ST2FIX(h);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.include?(obj)   -&gt; true or false</div><div class='del'>- *  </div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if the given object is present in</div><div class='del'>- *  &lt;i&gt;self&lt;/i&gt; (that is, if any object &lt;code&gt;==&lt;/code&gt; &lt;i&gt;anObject&lt;/i&gt;),</div><div class='del'>- *  &lt;code&gt;false&lt;/code&gt; otherwise.</div><div class='del'>- *     </div><div class='add'>+ *     ary.include?(object)   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the given +object+ is present in +self+ (that is, if any</div><div class='add'>+ *  element &lt;code&gt;==&lt;/code&gt; +object+), otherwise returns +false+.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "b", "c" ]</div><div class='ctx'>  *     a.include?("b")   #=&gt; true</div><div class='ctx'>  *     a.include?("z")   #=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_includes(ary, item)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE item;</div><div class='add'>+rb_ary_includes(VALUE ary, VALUE item)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='del'>-    </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	if (rb_equal(RARRAY(ary)-&gt;ptr[i], item)) {</div><div class='add'>+    VALUE e;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	e = RARRAY_AREF(ary, i);</div><div class='add'>+	if (rb_equal(e, item)) {</div><div class='ctx'> 	    return Qtrue;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_includes_by_eql(VALUE ary, VALUE item)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    VALUE e;</div><div class='ctx'> </div><div class='del'>-/* </div><div class='del'>- *  call-seq:</div><div class='del'>- *     array &lt;=&gt; other_array   -&gt;  -1, 0, +1</div><div class='del'>- *</div><div class='del'>- *  Comparison---Returns an integer (-1, 0,</div><div class='del'>- *  or +1) if this array is less than, equal to, or greater than</div><div class='del'>- *  other_array.  Each object in each array is compared</div><div class='del'>- *  (using &lt;=&gt;). If any value isn't</div><div class='del'>- *  equal, then that inequality is the return value. If all the</div><div class='del'>- *  values found are equal, then the return is based on a</div><div class='del'>- *  comparison of the array lengths.  Thus, two arrays are</div><div class='del'>- *  ``equal'' according to &lt;code&gt;Array#&lt;=&gt;&lt;/code&gt; if and only if they have</div><div class='del'>- *  the same length and the value of each element is equal to the</div><div class='del'>- *  value of the corresponding element in the other array.</div><div class='del'>- *  </div><div class='del'>- *     [ "a", "a", "c" ]    &lt;=&gt; [ "a", "b", "c" ]   #=&gt; -1</div><div class='del'>- *     [ 1, 2, 3, 4, 5, 6 ] &lt;=&gt; [ 1, 2 ]            #=&gt; +1</div><div class='del'>- *</div><div class='del'>- */</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	e = RARRAY_AREF(ary, i);</div><div class='add'>+	if (rb_eql(item, e)) {</div><div class='add'>+	    return Qtrue;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ary_cmp(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+static VALUE</div><div class='add'>+recursive_cmp(VALUE ary1, VALUE ary2, int recur)</div><div class='ctx'> {</div><div class='ctx'>     long i, len;</div><div class='ctx'> </div><div class='del'>-    ary2 = to_ary(ary2);</div><div class='del'>-    len = RARRAY(ary1)-&gt;len;</div><div class='del'>-    if (len &gt; RARRAY(ary2)-&gt;len) {</div><div class='del'>-	len = RARRAY(ary2)-&gt;len;</div><div class='add'>+    if (recur) return Qundef;	/* Subtle! */</div><div class='add'>+    len = RARRAY_LEN(ary1);</div><div class='add'>+    if (len &gt; RARRAY_LEN(ary2)) {</div><div class='add'>+	len = RARRAY_LEN(ary2);</div><div class='ctx'>     }</div><div class='ctx'>     for (i=0; i&lt;len; i++) {</div><div class='del'>-	VALUE v = rb_funcall(rb_ary_elt(ary1, i), id_cmp, 1, rb_ary_elt(ary2, i));</div><div class='add'>+	VALUE e1 = rb_ary_elt(ary1, i), e2 = rb_ary_elt(ary2, i);</div><div class='add'>+	VALUE v = rb_funcallv(e1, id_cmp, 1, &amp;e2);</div><div class='ctx'> 	if (v != INT2FIX(0)) {</div><div class='ctx'> 	    return v;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    len = RARRAY(ary1)-&gt;len - RARRAY(ary2)-&gt;len;</div><div class='add'>+    return Qundef;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary &lt;=&gt; other_ary   -&gt;  -1, 0, +1 or nil</div><div class='add'>+ *</div><div class='add'>+ *  Comparison --- Returns an integer (+-1+, +0+, or &lt;code&gt;+1&lt;/code&gt;) if this</div><div class='add'>+ *  array is less than, equal to, or greater than +other_ary+.</div><div class='add'>+ *</div><div class='add'>+ *  Each object in each array is compared (using the &lt;=&gt; operator).</div><div class='add'>+ *</div><div class='add'>+ *  Arrays are compared in an "element-wise" manner; the first element of +ary+</div><div class='add'>+ *  is compared with the first one of +other_ary+ using the &lt;=&gt; operator, then</div><div class='add'>+ *  each of the second elements, etc...</div><div class='add'>+ *  As soon as the result of any such comparison is non zero (i.e. the two</div><div class='add'>+ *  corresponding elements are not equal), that result is returned for the</div><div class='add'>+ *  whole array comparison.</div><div class='add'>+ *</div><div class='add'>+ *  If all the elements are equal, then the result is based on a comparison of</div><div class='add'>+ *  the array lengths. Thus, two arrays are "equal" according to Array#&lt;=&gt; if,</div><div class='add'>+ *  and only if, they have the same length and the value of each element is</div><div class='add'>+ *  equal to the value of the corresponding element in the other array.</div><div class='add'>+ *</div><div class='add'>+ *  +nil+ is returned if the +other_ary+ is not an array or if the comparison</div><div class='add'>+ *  of two elements returned +nil+.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "a", "c" ]    &lt;=&gt; [ "a", "b", "c" ]   #=&gt; -1</div><div class='add'>+ *     [ 1, 2, 3, 4, 5, 6 ] &lt;=&gt; [ 1, 2 ]            #=&gt; +1</div><div class='add'>+ *     [ 1, 2 ]             &lt;=&gt; [ 1, :two ]         #=&gt; nil</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_cmp(VALUE ary1, VALUE ary2)</div><div class='add'>+{</div><div class='add'>+    long len;</div><div class='add'>+    VALUE v;</div><div class='add'>+</div><div class='add'>+    ary2 = rb_check_array_type(ary2);</div><div class='add'>+    if (NIL_P(ary2)) return Qnil;</div><div class='add'>+    if (ary1 == ary2) return INT2FIX(0);</div><div class='add'>+    v = rb_exec_recursive_paired(recursive_cmp, ary1, ary2, ary2);</div><div class='add'>+    if (v != Qundef) return v;</div><div class='add'>+    len = RARRAY_LEN(ary1) - RARRAY_LEN(ary2);</div><div class='ctx'>     if (len == 0) return INT2FIX(0);</div><div class='ctx'>     if (len &gt; 0) return INT2FIX(1);</div><div class='ctx'>     return INT2FIX(-1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_make_hash(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+ary_add_hash(VALUE hash, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	rb_hash_aset(hash, RARRAY(ary1)-&gt;ptr[i], Qtrue);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	VALUE elt = RARRAY_AREF(ary, i);</div><div class='add'>+	rb_hash_add_new_element(hash, elt, elt);</div><div class='ctx'>     }</div><div class='del'>-    if (ary2) {</div><div class='del'>-	for (i=0; i&lt;RARRAY(ary2)-&gt;len; i++) {</div><div class='del'>-	    rb_hash_aset(hash, RARRAY(ary2)-&gt;ptr[i], Qtrue);</div><div class='del'>-	}</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+ary_tmp_hash_new(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long size = RARRAY_LEN(ary);</div><div class='add'>+    VALUE hash = rb_hash_new_with_size(size);</div><div class='add'>+</div><div class='add'>+    RBASIC_CLEAR_CLASS(hash);</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_make_hash(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = ary_tmp_hash_new(ary);</div><div class='add'>+    return ary_add_hash(hash, ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_add_hash_by(VALUE hash, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	VALUE v = rb_ary_elt(ary, i), k = rb_yield(v);</div><div class='add'>+	rb_hash_add_new_element(hash, k, v);</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+static VALUE</div><div class='add'>+ary_make_hash_by(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = ary_tmp_hash_new(ary);</div><div class='add'>+    return ary_add_hash_by(hash, ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ary_recycle_hash(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    assert(RBASIC_CLASS(hash) == 0);</div><div class='add'>+    if (RHASH(hash)-&gt;ntbl) {</div><div class='add'>+	st_table *tbl = RHASH(hash)-&gt;ntbl;</div><div class='add'>+	st_free_table(tbl);</div><div class='add'>+    }</div><div class='add'>+    rb_gc_force_recycle(hash);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array - other_array    -&gt; an_array</div><div class='add'>+ *     ary - other_ary    -&gt; new_ary</div><div class='ctx'>  *</div><div class='del'>- *  Array Difference---Returns a new array that is a copy of</div><div class='del'>- *  the original array, removing any items that also appear in</div><div class='del'>- *  other_array. (If you need set-like behavior, see the</div><div class='del'>- *  library class Set.)</div><div class='add'>+ *  Array Difference</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array that is a copy of the original array, removing any</div><div class='add'>+ *  items that also appear in +other_ary+. The order is preserved from the</div><div class='add'>+ *  original array.</div><div class='add'>+ *</div><div class='add'>+ *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='ctx'>  *</div><div class='ctx'>  *     [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]  #=&gt;  [ 3, 3, 5 ]</div><div class='add'>+ *</div><div class='add'>+ *  If you need set-like behavior, see the library class Set.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_diff(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+rb_ary_diff(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary3;</div><div class='del'>-    volatile VALUE hash;</div><div class='add'>+    VALUE hash;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    hash = ary_make_hash(to_ary(ary2), 0);</div><div class='add'>+    ary2 = to_ary(ary2);</div><div class='ctx'>     ary3 = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (st_lookup(RHASH(hash)-&gt;tbl, RARRAY(ary1)-&gt;ptr[i], 0)) continue;</div><div class='add'>+    if (RARRAY_LEN(ary1) &lt;= SMALL_ARRAY_LEN || RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	    VALUE elt = rb_ary_elt(ary1, i);</div><div class='add'>+	    if (rb_ary_includes_by_eql(ary2, elt)) continue;</div><div class='add'>+	    rb_ary_push(ary3, elt);</div><div class='add'>+	}</div><div class='add'>+	return ary3;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    hash = ary_make_hash(ary2);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	if (st_lookup(rb_hash_tbl_raw(hash), RARRAY_AREF(ary1, i), 0)) continue;</div><div class='ctx'> 	rb_ary_push(ary3, rb_ary_elt(ary1, i));</div><div class='ctx'>     }</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='ctx'>     return ary3;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array &amp; other_array</div><div class='add'>+ *     ary &amp; other_ary      -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Set Intersection --- Returns a new array containing unique elements common to the</div><div class='add'>+ *  two arrays. The order is preserved from the original array.</div><div class='ctx'>  *</div><div class='del'>- *  Set Intersection---Returns a new array</div><div class='del'>- *  containing elements common to the two arrays, with no duplicates.</div><div class='add'>+ *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 1, 3, 5 ] &amp; [ 1, 2, 3 ]   #=&gt; [ 1, 3 ]</div><div class='add'>+ *     [ 1, 1, 3, 5 ] &amp; [ 3, 2, 1 ]                 #=&gt; [ 1, 3 ]</div><div class='add'>+ *     [ 'a', 'b', 'b', 'z' ] &amp; [ 'a', 'b', 'c' ]   #=&gt; [ 'a', 'b' ]</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#uniq.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_and(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+rb_ary_and(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash, ary3, v, vv;</div><div class='add'>+    VALUE hash, ary3, v;</div><div class='add'>+    st_table *table;</div><div class='add'>+    st_data_t vv;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     ary2 = to_ary(ary2);</div><div class='del'>-    ary3 = rb_ary_new2(RARRAY(ary1)-&gt;len &lt; RARRAY(ary2)-&gt;len ?</div><div class='del'>-	    RARRAY(ary1)-&gt;len : RARRAY(ary2)-&gt;len);</div><div class='del'>-    hash = ary_make_hash(ary2, 0);</div><div class='add'>+    ary3 = rb_ary_new();</div><div class='add'>+    if (RARRAY_LEN(ary2) == 0) return ary3;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	v = vv = rb_ary_elt(ary1, i);</div><div class='del'>-	if (st_delete(RHASH(hash)-&gt;tbl, (st_data_t*)&amp;vv, 0)) {</div><div class='add'>+    if (RARRAY_LEN(ary1) &lt;= SMALL_ARRAY_LEN &amp;&amp; RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	    v = RARRAY_AREF(ary1, i);</div><div class='add'>+	    if (!rb_ary_includes_by_eql(ary2, v)) continue;</div><div class='add'>+	    if (rb_ary_includes_by_eql(ary3, v)) continue;</div><div class='ctx'> 	    rb_ary_push(ary3, v);</div><div class='ctx'> 	}</div><div class='add'>+	return ary3;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    hash = ary_make_hash(ary2);</div><div class='add'>+    table = rb_hash_tbl_raw(hash);</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	v = RARRAY_AREF(ary1, i);</div><div class='add'>+	vv = (st_data_t)v;</div><div class='add'>+	if (st_delete(table, &amp;vv, 0)) {</div><div class='add'>+	    rb_ary_push(ary3, v);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='add'>+</div><div class='ctx'>     return ary3;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+static int</div><div class='add'>+ary_hash_orset(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class='add'>+{</div><div class='add'>+    if (existing) return ST_STOP;</div><div class='add'>+    *key = *value = (VALUE)arg;</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array | other_array     -&gt;  an_array</div><div class='add'>+ *     ary | other_ary     -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Set Union --- Returns a new array by joining +ary+ with +other_ary+,</div><div class='add'>+ *  excluding any duplicates and preserving the order from the given arrays.</div><div class='ctx'>  *</div><div class='del'>- *  Set Union---Returns a new array by joining this array with</div><div class='del'>- *  other_array, removing duplicates.</div><div class='add'>+ *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ] | [ "c", "d", "a" ]</div><div class='del'>- *            #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ *     [ "a", "b", "c" ] | [ "c", "d", "a" ]    #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ *     [ "c", "d", "a" ] | [ "a", "b", "c" ]    #=&gt; [ "c", "d", "a", "b" ]</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#uniq.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_or(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+rb_ary_or(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash, ary3;</div><div class='del'>-    VALUE v, vv;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     ary2 = to_ary(ary2);</div><div class='del'>-    ary3 = rb_ary_new2(RARRAY(ary1)-&gt;len+RARRAY(ary2)-&gt;len);</div><div class='del'>-    hash = ary_make_hash(ary1, ary2);</div><div class='del'>-</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	v = vv = rb_ary_elt(ary1, i);</div><div class='del'>-	if (st_delete(RHASH(hash)-&gt;tbl, (st_data_t*)&amp;vv, 0)) {</div><div class='del'>-	    rb_ary_push(ary3, v);</div><div class='add'>+    if (RARRAY_LEN(ary1) + RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='add'>+	ary3 = rb_ary_new();</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	    VALUE elt = rb_ary_elt(ary1, i);</div><div class='add'>+	    if (rb_ary_includes_by_eql(ary3, elt)) continue;</div><div class='add'>+	    rb_ary_push(ary3, elt);</div><div class='ctx'> 	}</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary2); i++) {</div><div class='add'>+	    VALUE elt = rb_ary_elt(ary2, i);</div><div class='add'>+	    if (rb_ary_includes_by_eql(ary3, elt)) continue;</div><div class='add'>+	    rb_ary_push(ary3, elt);</div><div class='add'>+	}</div><div class='add'>+	return ary3;</div><div class='ctx'>     }</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary2)-&gt;len; i++) {</div><div class='del'>-	v = vv = rb_ary_elt(ary2, i);</div><div class='del'>-	if (st_delete(RHASH(hash)-&gt;tbl, (st_data_t*)&amp;vv, 0)) {</div><div class='del'>-	    rb_ary_push(ary3, v);</div><div class='add'>+</div><div class='add'>+    hash = ary_make_hash(ary1);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary2); i++) {</div><div class='add'>+	VALUE elt = RARRAY_AREF(ary2, i);</div><div class='add'>+	if (!st_update(RHASH_TBL_RAW(hash), (st_data_t)elt, ary_hash_orset, (st_data_t)elt)) {</div><div class='add'>+	    RB_OBJ_WRITTEN(hash, Qundef, elt);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+    ary3 = rb_hash_values(hash);</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='ctx'>     return ary3;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.uniq! -&gt; array or nil</div><div class='del'>- *  </div><div class='del'>- *  Removes duplicate elements from _self_.</div><div class='del'>- *  Returns &lt;code&gt;nil&lt;/code&gt; if no changes are made (that is, no</div><div class='del'>- *  duplicates are found).</div><div class='del'>- *     </div><div class='add'>+ *     ary.max                     -&gt; obj</div><div class='add'>+ *     ary.max { |a, b| block }    -&gt; obj</div><div class='add'>+ *     ary.max(n)                  -&gt; array</div><div class='add'>+ *     ary.max(n) { |a, b| block } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the object in _ary_ with the maximum value. The</div><div class='add'>+ *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='add'>+ *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     ary = %w(albatross dog horse)</div><div class='add'>+ *     ary.max                                   #=&gt; "horse"</div><div class='add'>+ *     ary.max { |a, b| a.length &lt;=&gt; b.length }  #=&gt; "albatross"</div><div class='add'>+ *</div><div class='add'>+ *  If the +n+ argument is given, maximum +n+ elements are returned</div><div class='add'>+ *  as an array.</div><div class='add'>+ *</div><div class='add'>+ *     ary = %w[albatross dog horse]</div><div class='add'>+ *     ary.max(2)                                  #=&gt; ["horse", "dog"]</div><div class='add'>+ *     ary.max(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["albatross", "horse"]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_max(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='add'>+    VALUE result = Qundef, v;</div><div class='add'>+    VALUE num;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;num);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(num))</div><div class='add'>+       return rb_nmin_run(ary, num, 0, 1, 1);</div><div class='add'>+</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	   v = RARRAY_AREF(ary, i);</div><div class='add'>+	   if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) &gt; 0) {</div><div class='add'>+	       result = v;</div><div class='add'>+	   }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	   v = RARRAY_AREF(ary, i);</div><div class='add'>+	   if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) &gt; 0) {</div><div class='add'>+	       result = v;</div><div class='add'>+	   }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (result == Qundef) return Qnil;</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.min                     -&gt; obj</div><div class='add'>+ *     ary.min {| a,b | block }    -&gt; obj</div><div class='add'>+ *     ary.min(n)                  -&gt; array</div><div class='add'>+ *     ary.min(n) {| a,b | block } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the object in _ary_ with the minimum value. The</div><div class='add'>+ *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='add'>+ *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     ary = %w(albatross dog horse)</div><div class='add'>+ *     ary.min                                   #=&gt; "albatross"</div><div class='add'>+ *     ary.min { |a, b| a.length &lt;=&gt; b.length }  #=&gt; "dog"</div><div class='add'>+ *</div><div class='add'>+ *  If the +n+ argument is given, minimum +n+ elements are returned</div><div class='add'>+ *  as an array.</div><div class='add'>+ *</div><div class='add'>+ *     ary = %w[albatross dog horse]</div><div class='add'>+ *     ary.min(2)                                  #=&gt; ["albatross", "dog"]</div><div class='add'>+ *     ary.min(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["dog", "horse"]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_min(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='add'>+    VALUE result = Qundef, v;</div><div class='add'>+    VALUE num;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;num);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(num))</div><div class='add'>+       return rb_nmin_run(ary, num, 0, 0, 1);</div><div class='add'>+</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	   v = RARRAY_AREF(ary, i);</div><div class='add'>+	   if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) &lt; 0) {</div><div class='add'>+	       result = v;</div><div class='add'>+	   }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	   v = RARRAY_AREF(ary, i);</div><div class='add'>+	   if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) &lt; 0) {</div><div class='add'>+	       result = v;</div><div class='add'>+	   }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (result == Qundef) return Qnil;</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+push_value(st_data_t key, st_data_t val, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    rb_ary_push((VALUE)ary, (VALUE)val);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.uniq!                -&gt; ary or nil</div><div class='add'>+ *     ary.uniq! { |item| ... } -&gt; ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Removes duplicate elements from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, it will use the return value of the block for</div><div class='add'>+ *  comparison.</div><div class='add'>+ *</div><div class='add'>+ *  It compares values using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *</div><div class='add'>+ *  +self+ is traversed in order, and the first occurrence is kept.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no changes are made (that is, no duplicates are found).</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "a", "b", "b", "c" ]</div><div class='del'>- *     a.uniq!   #=&gt; ["a", "b", "c"]</div><div class='add'>+ *     a.uniq!   # =&gt; ["a", "b", "c"]</div><div class='add'>+ *</div><div class='ctx'>  *     b = [ "a", "b", "c" ]</div><div class='del'>- *     b.uniq!   #=&gt; nil</div><div class='add'>+ *     b.uniq!   # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *     c = [["student","sam"], ["student","george"], ["teacher","matz"]]</div><div class='add'>+ *     c.uniq! { |s| s.first } # =&gt; [["student", "sam"], ["teacher", "matz"]]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_uniq_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_uniq_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash, v, vv;</div><div class='del'>-    long i, j;</div><div class='add'>+    VALUE hash;</div><div class='add'>+    long hash_size;</div><div class='ctx'> </div><div class='del'>-    hash = ary_make_hash(ary, 0);</div><div class='del'>-</div><div class='del'>-    if (RARRAY(ary)-&gt;len == RHASH(hash)-&gt;tbl-&gt;num_entries) {</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) &lt;= 1)</div><div class='add'>+        return Qnil;</div><div class='add'>+    if (rb_block_given_p())</div><div class='add'>+	hash = ary_make_hash_by(ary);</div><div class='add'>+    else</div><div class='add'>+	hash = ary_make_hash(ary);</div><div class='add'>+</div><div class='add'>+    hash_size = RHASH_SIZE(hash);</div><div class='add'>+    if (RARRAY_LEN(ary) == hash_size) {</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    for (i=j=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	v = vv = rb_ary_elt(ary, i);</div><div class='del'>-	if (st_delete(RHASH(hash)-&gt;tbl, (st_data_t*)&amp;vv, 0)) {</div><div class='del'>-	    rb_ary_store(ary, j++, v);</div><div class='del'>-	}</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    ARY_SET_LEN(ary, 0);</div><div class='add'>+    if (ARY_SHARED_P(ary) &amp;&amp; !ARY_EMBED_P(ary)) {</div><div class='add'>+	rb_ary_unshare(ary);</div><div class='add'>+	FL_SET_EMBED(ary);</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = j;</div><div class='add'>+    ary_resize_capa(ary, hash_size);</div><div class='add'>+    st_foreach(rb_hash_tbl_raw(hash), push_value, ary);</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.uniq   -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Returns a new array by removing duplicate values in &lt;i&gt;self&lt;/i&gt;.</div><div class='del'>- *     </div><div class='add'>+ *     ary.uniq                -&gt; new_ary</div><div class='add'>+ *     ary.uniq { |item| ... } -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array by removing duplicate values in +self+.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, it will use the return value of the block for comparison.</div><div class='add'>+ *</div><div class='add'>+ *  It compares values using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *</div><div class='add'>+ *  +self+ is traversed in order, and the first occurrence is kept.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ "a", "a", "b", "b", "c" ]</div><div class='del'>- *     a.uniq   #=&gt; ["a", "b", "c"]</div><div class='add'>+ *     a.uniq   # =&gt; ["a", "b", "c"]</div><div class='add'>+ *</div><div class='add'>+ *     b = [["student","sam"], ["student","george"], ["teacher","matz"]]</div><div class='add'>+ *     b.uniq { |s| s.first } # =&gt; [["student", "sam"], ["teacher", "matz"]]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_uniq(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_uniq(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    ary = rb_ary_dup(ary);</div><div class='del'>-    rb_ary_uniq_bang(ary);</div><div class='del'>-    return ary;</div><div class='add'>+    VALUE hash, uniq;</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(ary) &lt;= 1)</div><div class='add'>+        return rb_ary_dup(ary);</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	hash = ary_make_hash_by(ary);</div><div class='add'>+	uniq = rb_hash_values(hash);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	hash = ary_make_hash(ary);</div><div class='add'>+	uniq = rb_hash_values(hash);</div><div class='add'>+    }</div><div class='add'>+    RBASIC_SET_CLASS(uniq, rb_obj_class(ary));</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='add'>+</div><div class='add'>+    return uniq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* </div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.compact!    -&gt;   array  or  nil</div><div class='add'>+ *     ary.compact!    -&gt; ary  or  nil</div><div class='add'>+ *</div><div class='add'>+ *  Removes +nil+ elements from the array.</div><div class='ctx'>  *</div><div class='del'>- *  Removes +nil+ elements from array.</div><div class='del'>- *  Returns +nil+ if no changes were made.</div><div class='add'>+ *  Returns +nil+ if no changes were made, otherwise returns the array.</div><div class='ctx'>  *</div><div class='ctx'>  *     [ "a", nil, "b", nil, "c" ].compact! #=&gt; [ "a", "b", "c" ]</div><div class='ctx'>  *     [ "a", "b", "c" ].compact!           #=&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_compact_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_compact_bang(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *p, *t, *end;</div><div class='add'>+    long n;</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='del'>-    p = t = RARRAY(ary)-&gt;ptr;</div><div class='del'>-    end = p + RARRAY(ary)-&gt;len;</div><div class='del'>-    </div><div class='add'>+    p = t = (VALUE *)RARRAY_CONST_PTR(ary); /* WB: no new reference */</div><div class='add'>+    end = p + RARRAY_LEN(ary);</div><div class='add'>+</div><div class='ctx'>     while (t &lt; end) {</div><div class='ctx'> 	if (NIL_P(*t)) t++;</div><div class='ctx'> 	else *p++ = *t++;</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len == (p - RARRAY(ary)-&gt;ptr)) {</div><div class='add'>+    n = p - RARRAY_CONST_PTR(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) == n) {</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = RARRAY(ary)-&gt;aux.capa = (p - RARRAY(ary)-&gt;ptr);</div><div class='del'>-    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='add'>+    ary_resize_smaller(ary, n);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.compact     -&gt;  an_array</div><div class='add'>+ *     ary.compact     -&gt; new_ary</div><div class='ctx'>  *</div><div class='del'>- *  Returns a copy of _self_ with all +nil+ elements removed.</div><div class='add'>+ *  Returns a copy of +self+ with all +nil+ elements removed.</div><div class='ctx'>  *</div><div class='ctx'>  *     [ "a", nil, "b", nil, "c", nil ].compact</div><div class='ctx'>  *                       #=&gt; [ "a", "b", "c" ]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_compact(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_compact(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     ary = rb_ary_dup(ary);</div><div class='ctx'>     rb_ary_compact_bang(ary);</div><div class='hunk'>@@ -2847,147 +4565,1693 @@ rb_ary_compact(ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.nitems -&gt; int</div><div class='del'>- *  </div><div class='del'>- *  Returns the number of non-&lt;code&gt;nil&lt;/code&gt; elements in _self_.</div><div class='del'>- *  May be zero.</div><div class='del'>- *     </div><div class='del'>- *     [ 1, nil, 3, nil, 5 ].nitems   #=&gt; 3</div><div class='add'>+ *     ary.count                   -&gt; int</div><div class='add'>+ *     ary.count(obj)              -&gt; int</div><div class='add'>+ *     ary.count { |item| block }  -&gt; int</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of elements.</div><div class='add'>+ *</div><div class='add'>+ *  If an argument is given, counts the number of elements which equal +obj+</div><div class='add'>+ *  using &lt;code&gt;==&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, counts the number of elements for which the block</div><div class='add'>+ *  returns a true value.</div><div class='add'>+ *</div><div class='add'>+ *     ary = [1, 2, 4, 2]</div><div class='add'>+ *     ary.count                  #=&gt; 4</div><div class='add'>+ *     ary.count(2)               #=&gt; 2</div><div class='add'>+ *     ary.count { |x| x%2 == 0 } #=&gt; 3</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_nitems(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_count(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long n = 0;</div><div class='del'>-    VALUE *p, *pend;</div><div class='add'>+    long i, n = 0;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	VALUE v;</div><div class='ctx'> </div><div class='del'>-    p = RARRAY(ary)-&gt;ptr;</div><div class='del'>-    pend = p + RARRAY(ary)-&gt;len;</div><div class='add'>+	if (!rb_block_given_p())</div><div class='add'>+	    return LONG2NUM(RARRAY_LEN(ary));</div><div class='ctx'> </div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (!NIL_P(*p)) n++;</div><div class='del'>-	p++;</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    v = RARRAY_AREF(ary, i);</div><div class='add'>+	    if (RTEST(rb_yield(v))) n++;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE obj;</div><div class='add'>+</div><div class='add'>+	rb_scan_args(argc, argv, "1", &amp;obj);</div><div class='add'>+	if (rb_block_given_p()) {</div><div class='add'>+	    rb_warn("given block not used");</div><div class='add'>+	}</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    if (rb_equal(RARRAY_AREF(ary, i), obj)) n++;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return LONG2NUM(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static long</div><div class='del'>-flatten(ary, idx, ary2, memo)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long idx;</div><div class='del'>-    VALUE ary2, memo;</div><div class='add'>+static VALUE</div><div class='add'>+flatten(VALUE ary, int level, int *modified)</div><div class='ctx'> {</div><div class='del'>-    VALUE id;</div><div class='del'>-    long i = idx;</div><div class='del'>-    long n, lim = idx + RARRAY(ary2)-&gt;len;</div><div class='del'>-</div><div class='del'>-    id = rb_obj_id(ary2);</div><div class='del'>-    if (rb_ary_includes(memo, id)) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to flatten recursive array");</div><div class='del'>-    }</div><div class='del'>-    rb_ary_push(memo, id);</div><div class='del'>-    rb_ary_splice(ary, idx, 1, ary2);</div><div class='del'>-    while (i &lt; lim) {</div><div class='del'>-	VALUE tmp;</div><div class='del'>-</div><div class='del'>-	tmp = rb_check_array_type(rb_ary_elt(ary, i));</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    n = flatten(ary, i, tmp, memo);</div><div class='del'>-	    i += n; lim += n;</div><div class='add'>+    long i = 0;</div><div class='add'>+    VALUE stack, result, tmp, elt;</div><div class='add'>+    st_table *memo;</div><div class='add'>+    st_data_t id;</div><div class='add'>+</div><div class='add'>+    stack = ary_new(0, ARY_DEFAULT_SIZE);</div><div class='add'>+    result = ary_new(0, RARRAY_LEN(ary));</div><div class='add'>+    memo = st_init_numtable();</div><div class='add'>+    st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);</div><div class='add'>+    *modified = 0;</div><div class='add'>+</div><div class='add'>+    while (1) {</div><div class='add'>+	while (i &lt; RARRAY_LEN(ary)) {</div><div class='add'>+	    elt = RARRAY_AREF(ary, i++);</div><div class='add'>+	    if (level &gt;= 0 &amp;&amp; RARRAY_LEN(stack) / 2 &gt;= level) {</div><div class='add'>+		rb_ary_push(result, elt);</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+	    tmp = rb_check_array_type(elt);</div><div class='add'>+	    if (RBASIC(result)-&gt;klass) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "flatten reentered");</div><div class='add'>+	    }</div><div class='add'>+	    if (NIL_P(tmp)) {</div><div class='add'>+		rb_ary_push(result, elt);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		*modified = 1;</div><div class='add'>+		id = (st_data_t)tmp;</div><div class='add'>+		if (st_lookup(memo, id, 0)) {</div><div class='add'>+		    st_free_table(memo);</div><div class='add'>+		    rb_raise(rb_eArgError, "tried to flatten recursive array");</div><div class='add'>+		}</div><div class='add'>+		st_insert(memo, id, (st_data_t)Qtrue);</div><div class='add'>+		rb_ary_push(stack, ary);</div><div class='add'>+		rb_ary_push(stack, LONG2NUM(i));</div><div class='add'>+		ary = tmp;</div><div class='add'>+		i = 0;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (RARRAY_LEN(stack) == 0) {</div><div class='add'>+	    break;</div><div class='ctx'> 	}</div><div class='del'>-	i++;</div><div class='add'>+	id = (st_data_t)ary;</div><div class='add'>+	st_delete(memo, &amp;id, 0);</div><div class='add'>+	tmp = rb_ary_pop(stack);</div><div class='add'>+	i = NUM2LONG(tmp);</div><div class='add'>+	ary = rb_ary_pop(stack);</div><div class='ctx'>     }</div><div class='del'>-    rb_ary_pop(memo);</div><div class='ctx'> </div><div class='del'>-    return lim - idx - 1;	/* returns number of increased items */</div><div class='add'>+    st_free_table(memo);</div><div class='add'>+</div><div class='add'>+    RBASIC_SET_CLASS(result, rb_obj_class(ary));</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.flatten! -&gt; array or nil</div><div class='del'>- *  </div><div class='del'>- *  Flattens _self_ in place.</div><div class='del'>- *  Returns &lt;code&gt;nil&lt;/code&gt; if no modifications were made (i.e.,</div><div class='del'>- *  &lt;i&gt;array&lt;/i&gt; contains no subarrays.)</div><div class='del'>- *     </div><div class='add'>+ *     ary.flatten!        -&gt; ary or nil</div><div class='add'>+ *     ary.flatten!(level) -&gt; ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Flattens +self+ in place.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no modifications were made (i.e., the array contains no</div><div class='add'>+ *  subarrays.)</div><div class='add'>+ *</div><div class='add'>+ *  The optional +level+ argument determines the level of recursion to flatten.</div><div class='add'>+ *</div><div class='ctx'>  *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='ctx'>  *     a.flatten!   #=&gt; [1, 2, 3, 4, 5]</div><div class='ctx'>  *     a.flatten!   #=&gt; nil</div><div class='ctx'>  *     a            #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='add'>+ *     a.flatten!(1) #=&gt; [1, 2, 3, [4, 5]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_flatten_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    long i = 0;</div><div class='del'>-    int mod = 0;</div><div class='del'>-    VALUE memo = Qnil;</div><div class='add'>+    int mod = 0, level = -1;</div><div class='add'>+    VALUE result, lv;</div><div class='ctx'> </div><div class='del'>-    while (i&lt;RARRAY(ary)-&gt;len) {</div><div class='del'>-	VALUE ary2 = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-	VALUE tmp;</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;lv);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (!NIL_P(lv)) level = NUM2INT(lv);</div><div class='add'>+    if (level == 0) return Qnil;</div><div class='ctx'> </div><div class='del'>-	tmp = rb_check_array_type(ary2);</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    if (NIL_P(memo)) {</div><div class='del'>-		memo = rb_ary_new();</div><div class='del'>-	    }</div><div class='del'>-	    i += flatten(ary, i, tmp, memo);</div><div class='del'>-	    mod = 1;</div><div class='del'>-	}</div><div class='del'>-	i++;</div><div class='add'>+    result = flatten(ary, level, &amp;mod);</div><div class='add'>+    if (mod == 0) {</div><div class='add'>+	ary_discard(result);</div><div class='add'>+	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    if (mod == 0) return Qnil;</div><div class='add'>+    if (!(mod = ARY_EMBED_P(result))) rb_obj_freeze(result);</div><div class='add'>+    rb_ary_replace(ary, result);</div><div class='add'>+    if (mod) ARY_SET_EMBED_LEN(result, 0);</div><div class='add'>+</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     array.flatten -&gt; an_array</div><div class='del'>- *  </div><div class='del'>- *  Returns a new array that is a one-dimensional flattening of this</div><div class='del'>- *  array (recursively). That is, for every element that is an array,</div><div class='del'>- *  extract its elements into the new array.</div><div class='del'>- *     </div><div class='add'>+ *     ary.flatten -&gt; new_ary</div><div class='add'>+ *     ary.flatten(level) -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array that is a one-dimensional flattening of +self+</div><div class='add'>+ *  (recursively).</div><div class='add'>+ *</div><div class='add'>+ *  That is, for every element that is an array, extract its elements into</div><div class='add'>+ *  the new array.</div><div class='add'>+ *</div><div class='add'>+ *  The optional +level+ argument determines the level of recursion to</div><div class='add'>+ *  flatten.</div><div class='add'>+ *</div><div class='ctx'>  *     s = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='ctx'>  *     t = [ 4, 5, 6, [7, 8] ]   #=&gt; [4, 5, 6, [7, 8]]</div><div class='ctx'>  *     a = [ s, t, 9, 10 ]       #=&gt; [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]</div><div class='del'>- *     a.flatten                 #=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10</div><div class='add'>+ *     a.flatten                 #=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</div><div class='add'>+ *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='add'>+ *     a.flatten(1)              #=&gt; [1, 2, 3, [4, 5]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_flatten(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_flatten(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    int mod = 0, level = -1;</div><div class='add'>+    VALUE result, lv;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;lv);</div><div class='add'>+    if (!NIL_P(lv)) level = NUM2INT(lv);</div><div class='add'>+    if (level == 0) return ary_make_shared_copy(ary);</div><div class='add'>+</div><div class='add'>+    result = flatten(ary, level, &amp;mod);</div><div class='add'>+    OBJ_INFECT(result, ary);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define OPTHASH_GIVEN_P(opts) \</div><div class='add'>+    (argc &gt; 0 &amp;&amp; !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) &amp;&amp; (--argc, 1))</div><div class='add'>+static ID id_random;</div><div class='add'>+</div><div class='add'>+#define RAND_UPTO(max) (long)rb_random_ulong_limited((randgen), (max)-1)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.shuffle!              -&gt; ary</div><div class='add'>+ *     ary.shuffle!(random: rng) -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Shuffles elements in +self+ in place.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='add'>+ *     a.shuffle!                #=&gt; [2, 3, 1]</div><div class='add'>+ *     a                         #=&gt; [2, 3, 1]</div><div class='add'>+ *</div><div class='add'>+ *  The optional +rng+ argument will be used as the random number generator.</div><div class='add'>+ *</div><div class='add'>+ *     a.shuffle!(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_shuffle_bang(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE opts, randgen = rb_cRandom;</div><div class='add'>+    long i, len;</div><div class='add'>+</div><div class='add'>+    if (OPTHASH_GIVEN_P(opts)) {</div><div class='add'>+	VALUE rnd;</div><div class='add'>+	ID keyword_ids[1];</div><div class='add'>+</div><div class='add'>+	keyword_ids[0] = id_random;</div><div class='add'>+	rb_get_kwargs(opts, keyword_ids, 0, 1, &amp;rnd);</div><div class='add'>+	if (rnd != Qundef) {</div><div class='add'>+	    randgen = rnd;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    rb_check_arity(argc, 0, 0);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    i = len = RARRAY_LEN(ary);</div><div class='add'>+    RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+	while (i) {</div><div class='add'>+	    long j = RAND_UPTO(i);</div><div class='add'>+	    VALUE tmp;</div><div class='add'>+	    if (len != RARRAY_LEN(ary) || ptr != RARRAY_CONST_PTR(ary)) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "modified during shuffle");</div><div class='add'>+	    }</div><div class='add'>+	    tmp = ptr[--i];</div><div class='add'>+	    ptr[i] = ptr[j];</div><div class='add'>+	    ptr[j] = tmp;</div><div class='add'>+	}</div><div class='add'>+    }); /* WB: no new reference */</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.shuffle              -&gt; new_ary</div><div class='add'>+ *     ary.shuffle(random: rng) -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array with elements of +self+ shuffled.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='add'>+ *     a.shuffle                 #=&gt; [2, 3, 1]</div><div class='add'>+ *     a                         #=&gt; [1, 2, 3]</div><div class='add'>+ *</div><div class='add'>+ *  The optional +rng+ argument will be used as the random number generator.</div><div class='add'>+ *</div><div class='add'>+ *     a.shuffle(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_shuffle(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     ary = rb_ary_dup(ary);</div><div class='del'>-    rb_ary_flatten_bang(ary);</div><div class='add'>+    rb_ary_shuffle_bang(argc, argv, ary);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.sample                  -&gt; obj</div><div class='add'>+ *     ary.sample(random: rng)     -&gt; obj</div><div class='add'>+ *     ary.sample(n)               -&gt; new_ary</div><div class='add'>+ *     ary.sample(n, random: rng)  -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Choose a random element or +n+ random elements from the array.</div><div class='add'>+ *</div><div class='add'>+ *  The elements are chosen by using random and unique indices into the array</div><div class='add'>+ *  in order to ensure that an element doesn't repeat itself unless the array</div><div class='add'>+ *  already contained duplicate elements.</div><div class='add'>+ *</div><div class='add'>+ *  If the array is empty the first form returns +nil+ and the second form</div><div class='add'>+ *  returns an empty array.</div><div class='add'>+ *</div><div class='add'>+ *  The optional +rng+ argument will be used as the random number generator.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]</div><div class='add'>+ *     a.sample         #=&gt; 7</div><div class='add'>+ *     a.sample(4)      #=&gt; [6, 4, 2, 5]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_sample(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE nv, result;</div><div class='add'>+    VALUE opts, randgen = rb_cRandom;</div><div class='add'>+    long n, len, i, j, k, idx[10];</div><div class='add'>+    long rnds[numberof(idx)];</div><div class='add'>+    long memo_threshold;</div><div class='add'>+</div><div class='add'>+    if (OPTHASH_GIVEN_P(opts)) {</div><div class='add'>+	VALUE rnd;</div><div class='add'>+	ID keyword_ids[1];</div><div class='add'>+</div><div class='add'>+	keyword_ids[0] = id_random;</div><div class='add'>+	rb_get_kwargs(opts, keyword_ids, 0, 1, &amp;rnd);</div><div class='add'>+	if (rnd != Qundef) {</div><div class='add'>+	    randgen = rnd;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	if (len &lt; 2)</div><div class='add'>+	    i = 0;</div><div class='add'>+	else</div><div class='add'>+	    i = RAND_UPTO(len);</div><div class='add'>+</div><div class='add'>+	return rb_ary_elt(ary, i);</div><div class='add'>+    }</div><div class='add'>+    rb_scan_args(argc, argv, "1", &amp;nv);</div><div class='add'>+    n = NUM2LONG(nv);</div><div class='add'>+    if (n &lt; 0) rb_raise(rb_eArgError, "negative sample number");</div><div class='add'>+    if (n &gt; len) n = len;</div><div class='add'>+    if (n &lt;= numberof(idx)) {</div><div class='add'>+	for (i = 0; i &lt; n; ++i) {</div><div class='add'>+	    rnds[i] = RAND_UPTO(len - i);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    k = len;</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (len &lt; k &amp;&amp; n &lt;= numberof(idx)) {</div><div class='add'>+	for (i = 0; i &lt; n; ++i) {</div><div class='add'>+	    if (rnds[i] &gt;= len) return rb_ary_new_capa(0);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (n &gt; len) n = len;</div><div class='add'>+    switch (n) {</div><div class='add'>+      case 0:</div><div class='add'>+	return rb_ary_new_capa(0);</div><div class='add'>+      case 1:</div><div class='add'>+	i = rnds[0];</div><div class='add'>+	return rb_ary_new_from_values(1, &amp;RARRAY_AREF(ary, i));</div><div class='add'>+      case 2:</div><div class='add'>+	i = rnds[0];</div><div class='add'>+	j = rnds[1];</div><div class='add'>+	if (j &gt;= i) j++;</div><div class='add'>+	return rb_ary_new_from_args(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j));</div><div class='add'>+      case 3:</div><div class='add'>+	i = rnds[0];</div><div class='add'>+	j = rnds[1];</div><div class='add'>+	k = rnds[2];</div><div class='add'>+	{</div><div class='add'>+	    long l = j, g = i;</div><div class='add'>+	    if (j &gt;= i) l = i, g = ++j;</div><div class='add'>+	    if (k &gt;= l &amp;&amp; (++k &gt;= g)) ++k;</div><div class='add'>+	}</div><div class='add'>+	return rb_ary_new_from_args(3, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j), RARRAY_AREF(ary, k));</div><div class='add'>+    }</div><div class='add'>+    memo_threshold =</div><div class='add'>+	len &lt; 2560 ? len / 128 :</div><div class='add'>+	len &lt; 5120 ? len / 64 :</div><div class='add'>+	len &lt; 10240 ? len / 32 :</div><div class='add'>+	len / 16;</div><div class='add'>+    if (n &lt;= numberof(idx)) {</div><div class='add'>+	long sorted[numberof(idx)];</div><div class='add'>+	sorted[0] = idx[0] = rnds[0];</div><div class='add'>+	for (i=1; i&lt;n; i++) {</div><div class='add'>+	    k = rnds[i];</div><div class='add'>+	    for (j = 0; j &lt; i; ++j) {</div><div class='add'>+		if (k &lt; sorted[j]) break;</div><div class='add'>+		++k;</div><div class='add'>+	    }</div><div class='add'>+	    memmove(&amp;sorted[j+1], &amp;sorted[j], sizeof(sorted[0])*(i-j));</div><div class='add'>+	    sorted[j] = idx[i] = k;</div><div class='add'>+	}</div><div class='add'>+	result = rb_ary_new_capa(n);</div><div class='add'>+	RARRAY_PTR_USE(result, ptr_result, {</div><div class='add'>+	    for (i=0; i&lt;n; i++) {</div><div class='add'>+		ptr_result[i] = RARRAY_AREF(ary, idx[i]);</div><div class='add'>+	    }</div><div class='add'>+	});</div><div class='add'>+    }</div><div class='add'>+    else if (n &lt;= memo_threshold / 2) {</div><div class='add'>+	long max_idx = 0;</div><div class='add'>+#undef RUBY_UNTYPED_DATA_WARNING</div><div class='add'>+#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='add'>+	VALUE vmemo = Data_Wrap_Struct(0, 0, st_free_table, 0);</div><div class='add'>+	st_table *memo = st_init_numtable_with_size(n);</div><div class='add'>+	DATA_PTR(vmemo) = memo;</div><div class='add'>+	result = rb_ary_new_capa(n);</div><div class='add'>+	RARRAY_PTR_USE(result, ptr_result, {</div><div class='add'>+	    for (i=0; i&lt;n; i++) {</div><div class='add'>+		long r = RAND_UPTO(len-i) + i;</div><div class='add'>+		ptr_result[i] = r;</div><div class='add'>+		if (r &gt; max_idx) max_idx = r;</div><div class='add'>+	    }</div><div class='add'>+	    len = RARRAY_LEN(ary);</div><div class='add'>+	    if (len &lt;= max_idx) n = 0;</div><div class='add'>+	    else if (n &gt; len) n = len;</div><div class='add'>+	    RARRAY_PTR_USE(ary, ptr_ary, {</div><div class='add'>+		for (i=0; i&lt;n; i++) {</div><div class='add'>+		    long j2 = j = ptr_result[i];</div><div class='add'>+		    long i2 = i;</div><div class='add'>+		    st_data_t value;</div><div class='add'>+		    if (st_lookup(memo, (st_data_t)i, &amp;value)) i2 = (long)value;</div><div class='add'>+		    if (st_lookup(memo, (st_data_t)j, &amp;value)) j2 = (long)value;</div><div class='add'>+		    st_insert(memo, (st_data_t)j, (st_data_t)i2);</div><div class='add'>+		    ptr_result[i] = ptr_ary[j2];</div><div class='add'>+		}</div><div class='add'>+	    });</div><div class='add'>+	});</div><div class='add'>+	DATA_PTR(vmemo) = 0;</div><div class='add'>+	st_free_table(memo);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	result = rb_ary_dup(ary);</div><div class='add'>+	RBASIC_CLEAR_CLASS(result);</div><div class='add'>+	RB_GC_GUARD(ary);</div><div class='add'>+	RARRAY_PTR_USE(result, ptr_result, {</div><div class='add'>+	    for (i=0; i&lt;n; i++) {</div><div class='add'>+		j = RAND_UPTO(len-i) + i;</div><div class='add'>+		nv = ptr_result[j];</div><div class='add'>+		ptr_result[j] = ptr_result[i];</div><div class='add'>+		ptr_result[i] = nv;</div><div class='add'>+	    }</div><div class='add'>+	});</div><div class='add'>+	RBASIC_SET_CLASS_RAW(result, rb_cArray);</div><div class='add'>+    }</div><div class='add'>+    ARY_SET_LEN(result, n);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    long mul;</div><div class='add'>+    VALUE n = Qnil;</div><div class='add'>+    if (args &amp;&amp; (RARRAY_LEN(args) &gt; 0)) {</div><div class='add'>+	n = RARRAY_AREF(args, 0);</div><div class='add'>+    }</div><div class='add'>+    if (RARRAY_LEN(self) == 0) return INT2FIX(0);</div><div class='add'>+    if (n == Qnil) return DBL2NUM(INFINITY);</div><div class='add'>+    mul = NUM2LONG(n);</div><div class='add'>+    if (mul &lt;= 0) return INT2FIX(0);</div><div class='add'>+    n = LONG2FIX(mul);</div><div class='add'>+    return rb_fix_mul_fix(rb_ary_length(self), n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.cycle(n=nil) { |obj| block }  -&gt; nil</div><div class='add'>+ *     ary.cycle(n=nil)                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the given block for each element +n+ times or forever if +nil+ is</div><div class='add'>+ *  given.</div><div class='add'>+ *</div><div class='add'>+ *  Does nothing if a non-positive number is given or the array is empty.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if the loop has finished without getting interrupted.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *     a = ["a", "b", "c"]</div><div class='add'>+ *     a.cycle { |x| puts x }     # print, a, b, c, a, b, c,.. forever.</div><div class='add'>+ *     a.cycle(2) { |x| puts x }  # print, a, b, c, a, b, c.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_cycle(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long n, i;</div><div class='add'>+    VALUE nv = Qnil;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;nv);</div><div class='add'>+</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_cycle_size);</div><div class='add'>+    if (NIL_P(nv)) {</div><div class='add'>+        n = -1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        n = NUM2LONG(nv);</div><div class='add'>+        if (n &lt;= 0) return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (RARRAY_LEN(ary) &gt; 0 &amp;&amp; (n &lt; 0 || 0 &lt; n--)) {</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+            rb_yield(RARRAY_AREF(ary, i));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define tmpbuf(n, size) rb_str_tmp_new((n)*(size))</div><div class='add'>+#define tmpbuf_discard(s) (rb_str_resize((s), 0L), RBASIC_SET_CLASS_RAW(s, rb_cString))</div><div class='add'>+#define tmpary(n) rb_ary_tmp_new(n)</div><div class='add'>+#define tmpary_discard(a) (ary_discard(a), RBASIC_SET_CLASS_RAW(a, rb_cArray))</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Build a ruby array of the corresponding values and yield it to the</div><div class='add'>+ * associated block.</div><div class='add'>+ * Return the class of +values+ for reentry check.</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+yield_indexed_values(const VALUE values, const long r, const long *const p)</div><div class='add'>+{</div><div class='add'>+    const VALUE result = rb_ary_new2(r);</div><div class='add'>+    VALUE *const result_array = RARRAY_PTR(result);</div><div class='add'>+    const VALUE *const values_array = RARRAY_CONST_PTR(values);</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; r; i++) result_array[i] = values_array[p[i]];</div><div class='add'>+    ARY_SET_LEN(result, r);</div><div class='add'>+    rb_yield(result);</div><div class='add'>+    return !RBASIC(values)-&gt;klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Compute permutations of +r+ elements of the set &lt;code&gt;[0..n-1]&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ * When we have a complete permutation of array indices, copy the values</div><div class='add'>+ * at those indices into a new array and yield that array.</div><div class='add'>+ *</div><div class='add'>+ * n: the size of the set</div><div class='add'>+ * r: the number of elements in each permutation</div><div class='add'>+ * p: the array (of size r) that we're filling in</div><div class='add'>+ * used: an array of booleans: whether a given index is already used</div><div class='add'>+ * values: the Ruby array that holds the actual values to permute</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+permute0(const long n, const long r, long *const p, char *const used, const VALUE values)</div><div class='add'>+{</div><div class='add'>+    long i = 0, index = 0;</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+	const char *const unused = memchr(&amp;used[i], 0, n-i);</div><div class='add'>+	if (!unused) {</div><div class='add'>+	    if (!index) break;</div><div class='add'>+	    i = p[--index];                /* pop index */</div><div class='add'>+	    used[i++] = 0;                 /* index unused */</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    i = unused - used;</div><div class='add'>+	    p[index] = i;</div><div class='add'>+	    used[i] = 1;                   /* mark index used */</div><div class='add'>+	    ++index;</div><div class='add'>+	    if (index &lt; r-1) {             /* if not done yet */</div><div class='add'>+		p[index] = i = 0;</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+	    for (i = 0; i &lt; n; ++i) {</div><div class='add'>+		if (used[i]) continue;</div><div class='add'>+		p[index] = i;</div><div class='add'>+		if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+		    rb_raise(rb_eRuntimeError, "permute reentered");</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    i = p[--index];                /* pop index */</div><div class='add'>+	    used[i] = 0;                   /* index unused */</div><div class='add'>+	    p[index] = ++i;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the product of from, from-1, ..., from - how_many + 1.</div><div class='add'>+ * http://en.wikipedia.org/wiki/Pochhammer_symbol</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+descending_factorial(long from, long how_many)</div><div class='add'>+{</div><div class='add'>+    VALUE cnt;</div><div class='add'>+    if (how_many &gt; 0) {</div><div class='add'>+	cnt = LONG2FIX(from);</div><div class='add'>+	while (--how_many &gt; 0) {</div><div class='add'>+	    long v = --from;</div><div class='add'>+	    cnt = rb_int_mul(cnt, LONG2FIX(v));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	cnt = LONG2FIX(how_many == 0);</div><div class='add'>+    }</div><div class='add'>+    return cnt;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+binomial_coefficient(long comb, long size)</div><div class='add'>+{</div><div class='add'>+    VALUE r;</div><div class='add'>+    long i;</div><div class='add'>+    if (comb &gt; size-comb) {</div><div class='add'>+	comb = size-comb;</div><div class='add'>+    }</div><div class='add'>+    if (comb &lt; 0) {</div><div class='add'>+	return LONG2FIX(0);</div><div class='add'>+    }</div><div class='add'>+    else if (comb == 0) {</div><div class='add'>+	return LONG2FIX(1);</div><div class='add'>+    }</div><div class='add'>+    r = LONG2FIX(size);</div><div class='add'>+    for (i = 1; i &lt; comb; ++i) {</div><div class='add'>+	r = rb_int_mul(r, LONG2FIX(size - i));</div><div class='add'>+	r = rb_int_idiv(r, LONG2FIX(i + 1));</div><div class='add'>+    }</div><div class='add'>+    return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_permutation_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    long n = RARRAY_LEN(ary);</div><div class='add'>+    long k = (args &amp;&amp; (RARRAY_LEN(args) &gt; 0)) ? NUM2LONG(RARRAY_AREF(args, 0)) : n;</div><div class='add'>+</div><div class='add'>+    return descending_factorial(n, k);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.permutation { |p| block }          -&gt; ary</div><div class='add'>+ *     ary.permutation                        -&gt; Enumerator</div><div class='add'>+ *     ary.permutation(n) { |p| block }       -&gt; ary</div><div class='add'>+ *     ary.permutation(n)                     -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yield all permutations of length +n+ of the</div><div class='add'>+ * elements of the array, then return the array itself.</div><div class='add'>+ *</div><div class='add'>+ * If +n+ is not specified, yield all permutations of all elements.</div><div class='add'>+ *</div><div class='add'>+ * The implementation makes no guarantees about the order in which the</div><div class='add'>+ * permutations are yielded.</div><div class='add'>+ *</div><div class='add'>+ * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ * Examples:</div><div class='add'>+ *</div><div class='add'>+ *   a = [1, 2, 3]</div><div class='add'>+ *   a.permutation.to_a    #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]</div><div class='add'>+ *   a.permutation(1).to_a #=&gt; [[1],[2],[3]]</div><div class='add'>+ *   a.permutation(2).to_a #=&gt; [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]</div><div class='add'>+ *   a.permutation(3).to_a #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]</div><div class='add'>+ *   a.permutation(0).to_a #=&gt; [[]] # one permutation of length 0</div><div class='add'>+ *   a.permutation(4).to_a #=&gt; []   # no permutations of length 4</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_permutation(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE num;</div><div class='add'>+    long r, n, i;</div><div class='add'>+</div><div class='add'>+    n = RARRAY_LEN(ary);                  /* Array length */</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_permutation_size);   /* Return enumerator if no block */</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;num);</div><div class='add'>+    r = NIL_P(num) ? n : NUM2LONG(num);   /* Permutation size from argument */</div><div class='add'>+</div><div class='add'>+    if (r &lt; 0 || n &lt; r) {</div><div class='add'>+	/* no permutations: yield nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (r == 0) { /* exactly one permutation: the zero-length array */</div><div class='add'>+	rb_yield(rb_ary_new2(0));</div><div class='add'>+    }</div><div class='add'>+    else if (r == 1) { /* this is a special, easy case */</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {             /* this is the general case */</div><div class='add'>+	volatile VALUE t0;</div><div class='add'>+	long *p = ALLOCV_N(long, t0, r+roomof(n, sizeof(long)));</div><div class='add'>+	char *used = (char*)(p + r);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+</div><div class='add'>+	MEMZERO(used, char, n); /* initialize array */</div><div class='add'>+</div><div class='add'>+	permute0(n, r, p, used, ary0); /* compute and yield permutations */</div><div class='add'>+	ALLOCV_END(t0);</div><div class='add'>+	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+combinate0(const long len, const long n, long *const stack, const VALUE values)</div><div class='add'>+{</div><div class='add'>+    long lev = 0;</div><div class='add'>+</div><div class='add'>+    MEMZERO(stack+1, long, n);</div><div class='add'>+    stack[0] = -1;</div><div class='add'>+    for (;;) {</div><div class='add'>+	for (lev++; lev &lt; n; lev++) {</div><div class='add'>+	    stack[lev+1] = stack[lev]+1;</div><div class='add'>+	}</div><div class='add'>+	if (!yield_indexed_values(values, n, stack+1)) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "combination reentered");</div><div class='add'>+	}</div><div class='add'>+	do {</div><div class='add'>+	    if (lev == 0) return;</div><div class='add'>+	    stack[lev--]++;</div><div class='add'>+	} while (stack[lev+1]+n == len+lev+1);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    long n = RARRAY_LEN(ary);</div><div class='add'>+    long k = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='add'>+</div><div class='add'>+    return binomial_coefficient(k, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.combination(n) { |c| block }    -&gt; ary</div><div class='add'>+ *     ary.combination(n)                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yields all combinations of length +n+ of elements</div><div class='add'>+ * from the array and then returns the array itself.</div><div class='add'>+ *</div><div class='add'>+ * The implementation makes no guarantees about the order in which the</div><div class='add'>+ * combinations are yielded.</div><div class='add'>+ *</div><div class='add'>+ * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ * Examples:</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2, 3, 4]</div><div class='add'>+ *     a.combination(1).to_a  #=&gt; [[1],[2],[3],[4]]</div><div class='add'>+ *     a.combination(2).to_a  #=&gt; [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]</div><div class='add'>+ *     a.combination(3).to_a  #=&gt; [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]</div><div class='add'>+ *     a.combination(4).to_a  #=&gt; [[1,2,3,4]]</div><div class='add'>+ *     a.combination(0).to_a  #=&gt; [[]] # one combination of length 0</div><div class='add'>+ *     a.combination(5).to_a  #=&gt; []   # no combinations of length 5</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_combination(VALUE ary, VALUE num)</div><div class='add'>+{</div><div class='add'>+    long i, n, len;</div><div class='add'>+</div><div class='add'>+    n = NUM2LONG(num);</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 1, &amp;num, rb_ary_combination_size);</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (n &lt; 0 || len &lt; n) {</div><div class='add'>+	/* yield nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (n == 0) {</div><div class='add'>+	rb_yield(rb_ary_new2(0));</div><div class='add'>+    }</div><div class='add'>+    else if (n == 1) {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	volatile VALUE t0;</div><div class='add'>+	long *stack = ALLOCV_N(long, t0, n+1);</div><div class='add'>+</div><div class='add'>+	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+	combinate0(len, n, stack, ary0);</div><div class='add'>+	ALLOCV_END(t0);</div><div class='add'>+	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Compute repeated permutations of +r+ elements of the set</div><div class='add'>+ * &lt;code&gt;[0..n-1]&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ * When we have a complete repeated permutation of array indices, copy the</div><div class='add'>+ * values at those indices into a new array and yield that array.</div><div class='add'>+ *</div><div class='add'>+ * n: the size of the set</div><div class='add'>+ * r: the number of elements in each permutation</div><div class='add'>+ * p: the array (of size r) that we're filling in</div><div class='add'>+ * values: the Ruby array that holds the actual values to permute</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+rpermute0(const long n, const long r, long *const p, const VALUE values)</div><div class='add'>+{</div><div class='add'>+    long i = 0, index = 0;</div><div class='add'>+</div><div class='add'>+    p[index] = i;</div><div class='add'>+    for (;;) {</div><div class='add'>+	if (++index &lt; r-1) {</div><div class='add'>+	    p[index] = i = 0;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	for (i = 0; i &lt; n; ++i) {</div><div class='add'>+	    p[index] = i;</div><div class='add'>+	    if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "repeated permute reentered");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	do {</div><div class='add'>+	    if (index &lt;= 0) return;</div><div class='add'>+	} while ((i = ++p[--index]) &gt;= n);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_repeated_permutation_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    long n = RARRAY_LEN(ary);</div><div class='add'>+    long k = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='add'>+</div><div class='add'>+    if (k &lt; 0) {</div><div class='add'>+	return LONG2FIX(0);</div><div class='add'>+    }</div><div class='add'>+    if (n &lt;= 0) {</div><div class='add'>+	return LONG2FIX(!k);</div><div class='add'>+    }</div><div class='add'>+    return rb_int_positive_pow(n, (unsigned long)k);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.repeated_permutation(n) { |p| block } -&gt; ary</div><div class='add'>+ *     ary.repeated_permutation(n)               -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yield all repeated permutations of length +n+ of</div><div class='add'>+ * the elements of the array, then return the array itself.</div><div class='add'>+ *</div><div class='add'>+ * The implementation makes no guarantees about the order in which the repeated</div><div class='add'>+ * permutations are yielded.</div><div class='add'>+ *</div><div class='add'>+ * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ * Examples:</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2]</div><div class='add'>+ *     a.repeated_permutation(1).to_a  #=&gt; [[1], [2]]</div><div class='add'>+ *     a.repeated_permutation(2).to_a  #=&gt; [[1,1],[1,2],[2,1],[2,2]]</div><div class='add'>+ *     a.repeated_permutation(3).to_a  #=&gt; [[1,1,1],[1,1,2],[1,2,1],[1,2,2],</div><div class='add'>+ *                                     #    [2,1,1],[2,1,2],[2,2,1],[2,2,2]]</div><div class='add'>+ *     a.repeated_permutation(0).to_a  #=&gt; [[]] # one permutation of length 0</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_repeated_permutation(VALUE ary, VALUE num)</div><div class='add'>+{</div><div class='add'>+    long r, n, i;</div><div class='add'>+</div><div class='add'>+    n = RARRAY_LEN(ary);                  /* Array length */</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 1, &amp;num, rb_ary_repeated_permutation_size);      /* Return Enumerator if no block */</div><div class='add'>+    r = NUM2LONG(num);                    /* Permutation size from argument */</div><div class='add'>+</div><div class='add'>+    if (r &lt; 0) {</div><div class='add'>+	/* no permutations: yield nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (r == 0) { /* exactly one permutation: the zero-length array */</div><div class='add'>+	rb_yield(rb_ary_new2(0));</div><div class='add'>+    }</div><div class='add'>+    else if (r == 1) { /* this is a special, easy case */</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {             /* this is the general case */</div><div class='add'>+	volatile VALUE t0;</div><div class='add'>+	long *p = ALLOCV_N(long, t0, r);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+</div><div class='add'>+	rpermute0(n, r, p, ary0); /* compute and yield repeated permutations */</div><div class='add'>+	ALLOCV_END(t0);</div><div class='add'>+	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+    }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+rcombinate0(const long n, const long r, long *const p, const long rest, const VALUE values)</div><div class='add'>+{</div><div class='add'>+    long i = 0, index = 0;</div><div class='ctx'> </div><div class='del'>-/* Arrays are ordered, integer-indexed collections of any object. </div><div class='del'>- * Array indexing starts at 0, as in C or Java.  A negative index is </div><div class='del'>- * assumed to be relative to the end of the array---that is, an index of -1 </div><div class='del'>- * indicates the last element of the array, -2 is the next to last </div><div class='del'>- * element in the array, and so on. </div><div class='add'>+    p[index] = i;</div><div class='add'>+    for (;;) {</div><div class='add'>+	if (++index &lt; r-1) {</div><div class='add'>+	    p[index] = i;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	for (; i &lt; n; ++i) {</div><div class='add'>+	    p[index] = i;</div><div class='add'>+	    if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "repeated combination reentered");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	do {</div><div class='add'>+	    if (index &lt;= 0) return;</div><div class='add'>+	} while ((i = ++p[--index]) &gt;= n);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_repeated_combination_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    long n = RARRAY_LEN(ary);</div><div class='add'>+    long k = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='add'>+    if (k == 0) {</div><div class='add'>+	return LONG2FIX(1);</div><div class='add'>+    }</div><div class='add'>+    return binomial_coefficient(k, n + k - 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.repeated_combination(n) { |c| block } -&gt; ary</div><div class='add'>+ *     ary.repeated_combination(n)               -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yields all repeated combinations of length +n+ of</div><div class='add'>+ * elements from the array and then returns the array itself.</div><div class='add'>+ *</div><div class='add'>+ * The implementation makes no guarantees about the order in which the repeated</div><div class='add'>+ * combinations are yielded.</div><div class='add'>+ *</div><div class='add'>+ * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ * Examples:</div><div class='add'>+ *</div><div class='add'>+ *   a = [1, 2, 3]</div><div class='add'>+ *   a.repeated_combination(1).to_a  #=&gt; [[1], [2], [3]]</div><div class='add'>+ *   a.repeated_combination(2).to_a  #=&gt; [[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]]</div><div class='add'>+ *   a.repeated_combination(3).to_a  #=&gt; [[1,1,1],[1,1,2],[1,1,3],[1,2,2],[1,2,3],</div><div class='add'>+ *                                   #    [1,3,3],[2,2,2],[2,2,3],[2,3,3],[3,3,3]]</div><div class='add'>+ *   a.repeated_combination(4).to_a  #=&gt; [[1,1,1,1],[1,1,1,2],[1,1,1,3],[1,1,2,2],[1,1,2,3],</div><div class='add'>+ *                                   #    [1,1,3,3],[1,2,2,2],[1,2,2,3],[1,2,3,3],[1,3,3,3],</div><div class='add'>+ *                                   #    [2,2,2,2],[2,2,2,3],[2,2,3,3],[2,3,3,3],[3,3,3,3]]</div><div class='add'>+ *   a.repeated_combination(0).to_a  #=&gt; [[]] # one combination of length 0</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_repeated_combination(VALUE ary, VALUE num)</div><div class='add'>+{</div><div class='add'>+    long n, i, len;</div><div class='add'>+</div><div class='add'>+    n = NUM2LONG(num);                 /* Combination size from argument */</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(ary, 1, &amp;num, rb_ary_repeated_combination_size);   /* Return enumerator if no block */</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (n &lt; 0) {</div><div class='add'>+	/* yield nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (n == 0) {</div><div class='add'>+	rb_yield(rb_ary_new2(0));</div><div class='add'>+    }</div><div class='add'>+    else if (n == 1) {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (len == 0) {</div><div class='add'>+	/* yield nothing */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	volatile VALUE t0;</div><div class='add'>+	long *p = ALLOCV_N(long, t0, n);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+</div><div class='add'>+	rcombinate0(len, n, p, n, ary0); /* compute and yield repeated combinations */</div><div class='add'>+	ALLOCV_END(t0);</div><div class='add'>+	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.product(other_ary, ...)                -&gt; new_ary</div><div class='add'>+ *     ary.product(other_ary, ...) { |p| block }  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of all combinations of elements from all arrays.</div><div class='add'>+ *</div><div class='add'>+ *  The length of the returned array is the product of the length of +self+ and</div><div class='add'>+ *  the argument arrays.</div><div class='add'>+ *</div><div class='add'>+ *  If given a block, #product will yield all combinations and return +self+</div><div class='add'>+ *  instead.</div><div class='add'>+ *</div><div class='add'>+ *     [1,2,3].product([4,5])     #=&gt; [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]</div><div class='add'>+ *     [1,2].product([1,2])       #=&gt; [[1,1],[1,2],[2,1],[2,2]]</div><div class='add'>+ *     [1,2].product([3,4],[5,6]) #=&gt; [[1,3,5],[1,3,6],[1,4,5],[1,4,6],</div><div class='add'>+ *                                #     [2,3,5],[2,3,6],[2,4,5],[2,4,6]]</div><div class='add'>+ *     [1,2].product()            #=&gt; [[1],[2]]</div><div class='add'>+ *     [1,2].product([])          #=&gt; []</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_product(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    int n = argc+1;    /* How many arrays we're operating on */</div><div class='add'>+    volatile VALUE t0 = tmpary(n);</div><div class='add'>+    volatile VALUE t1 = tmpbuf(n, sizeof(int));</div><div class='add'>+    VALUE *arrays = RARRAY_PTR(t0); /* The arrays we're computing the product of */</div><div class='add'>+    int *counters = (int*)RSTRING_PTR(t1); /* The current position in each one */</div><div class='add'>+    VALUE result = Qnil;      /* The array we'll be returning, when no block given */</div><div class='add'>+    long i,j;</div><div class='add'>+    long resultlen = 1;</div><div class='add'>+</div><div class='add'>+    RBASIC_CLEAR_CLASS(t0);</div><div class='add'>+    RBASIC_CLEAR_CLASS(t1);</div><div class='add'>+</div><div class='add'>+    /* initialize the arrays of arrays */</div><div class='add'>+    ARY_SET_LEN(t0, n);</div><div class='add'>+    arrays[0] = ary;</div><div class='add'>+    for (i = 1; i &lt; n; i++) arrays[i] = Qnil;</div><div class='add'>+    for (i = 1; i &lt; n; i++) arrays[i] = to_ary(argv[i-1]);</div><div class='add'>+</div><div class='add'>+    /* initialize the counters for the arrays */</div><div class='add'>+    for (i = 0; i &lt; n; i++) counters[i] = 0;</div><div class='add'>+</div><div class='add'>+    /* Otherwise, allocate and fill in an array of results */</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	/* Make defensive copies of arrays; exit if any is empty */</div><div class='add'>+	for (i = 0; i &lt; n; i++) {</div><div class='add'>+	    if (RARRAY_LEN(arrays[i]) == 0) goto done;</div><div class='add'>+	    arrays[i] = ary_make_shared_copy(arrays[i]);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* Compute the length of the result array; return [] if any is empty */</div><div class='add'>+	for (i = 0; i &lt; n; i++) {</div><div class='add'>+	    long k = RARRAY_LEN(arrays[i]);</div><div class='add'>+	    if (k == 0) {</div><div class='add'>+		result = rb_ary_new2(0);</div><div class='add'>+		goto done;</div><div class='add'>+	    }</div><div class='add'>+            if (MUL_OVERFLOW_LONG_P(resultlen, k))</div><div class='add'>+		rb_raise(rb_eRangeError, "too big to product");</div><div class='add'>+	    resultlen *= k;</div><div class='add'>+	}</div><div class='add'>+	result = rb_ary_new2(resultlen);</div><div class='add'>+    }</div><div class='add'>+    for (;;) {</div><div class='add'>+	int m;</div><div class='add'>+	/* fill in one subarray */</div><div class='add'>+	VALUE subarray = rb_ary_new2(n);</div><div class='add'>+	for (j = 0; j &lt; n; j++) {</div><div class='add'>+	    rb_ary_push(subarray, rb_ary_entry(arrays[j], counters[j]));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* put it on the result array */</div><div class='add'>+	if (NIL_P(result)) {</div><div class='add'>+	    FL_SET(t0, FL_USER5);</div><div class='add'>+	    rb_yield(subarray);</div><div class='add'>+	    if (! FL_TEST(t0, FL_USER5)) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "product reentered");</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		FL_UNSET(t0, FL_USER5);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_ary_push(result, subarray);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/*</div><div class='add'>+	 * Increment the last counter.  If it overflows, reset to 0</div><div class='add'>+	 * and increment the one before it.</div><div class='add'>+	 */</div><div class='add'>+	m = n-1;</div><div class='add'>+	counters[m]++;</div><div class='add'>+	while (counters[m] == RARRAY_LEN(arrays[m])) {</div><div class='add'>+	    counters[m] = 0;</div><div class='add'>+	    /* If the first counter overflows, we are done */</div><div class='add'>+	    if (--m &lt; 0) goto done;</div><div class='add'>+	    counters[m]++;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+done:</div><div class='add'>+    tmpary_discard(t0);</div><div class='add'>+    tmpbuf_discard(t1);</div><div class='add'>+</div><div class='add'>+    return NIL_P(result) ? ary : result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.take(n)               -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns first +n+ elements from the array.</div><div class='add'>+ *</div><div class='add'>+ *  If a negative number is given, raises an ArgumentError.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#drop</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2, 3, 4, 5, 0]</div><div class='add'>+ *     a.take(3)             #=&gt; [1, 2, 3]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_take(VALUE obj, VALUE n)</div><div class='add'>+{</div><div class='add'>+    long len = NUM2LONG(n);</div><div class='add'>+    if (len &lt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='add'>+    }</div><div class='add'>+    return rb_ary_subseq(obj, 0, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.take_while { |obj| block }  -&gt; new_ary</div><div class='add'>+ *     ary.take_while                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Passes elements to the block until the block returns +nil+ or +false+, then</div><div class='add'>+ *  stops iterating and returns an array of all prior elements.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#drop_while</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2, 3, 4, 5, 0]</div><div class='add'>+ *     a.take_while { |i| i &lt; 3 }  #=&gt; [1, 2]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_take_while(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='add'>+    }</div><div class='add'>+    return rb_ary_take(ary, LONG2FIX(i));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.drop(n)               -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Drops first +n+ elements from +ary+ and returns the rest of the elements in</div><div class='add'>+ *  an array.</div><div class='add'>+ *</div><div class='add'>+ *  If a negative number is given, raises an ArgumentError.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#take</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2, 3, 4, 5, 0]</div><div class='add'>+ *     a.drop(3)             #=&gt; [4, 5, 0]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_drop(VALUE ary, VALUE n)</div><div class='add'>+{</div><div class='add'>+    VALUE result;</div><div class='add'>+    long pos = NUM2LONG(n);</div><div class='add'>+    if (pos &lt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    result = rb_ary_subseq(ary, pos, RARRAY_LEN(ary));</div><div class='add'>+    if (result == Qnil) result = rb_ary_new();</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.drop_while { |obj| block }   -&gt; new_ary</div><div class='add'>+ *     ary.drop_while                  -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Drops elements up to, but not including, the first element for which the</div><div class='add'>+ *  block returns +nil+ or +false+ and returns an array containing the</div><div class='add'>+ *  remaining elements.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *  See also Array#take_while</div><div class='add'>+ *</div><div class='add'>+ *     a = [1, 2, 3, 4, 5, 0]</div><div class='add'>+ *     a.drop_while {|i| i &lt; 3 }   #=&gt; [3, 4, 5, 0]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_drop_while(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+	if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='add'>+    }</div><div class='add'>+    return rb_ary_drop(ary, LONG2FIX(i));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.any? [{ |obj| block }]   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  See also Enumerable#any?</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_any_p(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long i, len = RARRAY_LEN(ary);</div><div class='add'>+    const VALUE *ptr = RARRAY_CONST_PTR(ary);</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    if (!len) return Qfalse;</div><div class='add'>+    if (argc) {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	    if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (!rb_block_given_p()) {</div><div class='add'>+	for (i = 0; i &lt; len; ++i) if (RTEST(ptr[i])) return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	    if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ary.dig(idx, ...)                 -&gt; object</div><div class='add'>+ *</div><div class='add'>+ * Extracts the nested value specified by the sequence of &lt;i&gt;idx&lt;/i&gt;</div><div class='add'>+ * objects by calling +dig+ at each step, returning +nil+ if any</div><div class='add'>+ * intermediate step is +nil+.</div><div class='add'>+ *</div><div class='add'>+ *   a = [[1, [2, 3]]]</div><div class='add'>+ *</div><div class='add'>+ *   a.dig(0, 1, 1)                    #=&gt; 3</div><div class='add'>+ *   a.dig(1, 2, 3)                    #=&gt; nil</div><div class='add'>+ *   a.dig(0, 0, 0)                    #=&gt; TypeError: Integer does not have #dig method</div><div class='add'>+ *   [42, {foo: :bar}].dig(1, :foo)    #=&gt; :bar</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_dig(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='add'>+    self = rb_ary_at(self, *argv);</div><div class='add'>+    if (!--argc) return self;</div><div class='add'>+    ++argv;</div><div class='add'>+    return rb_obj_dig(argc, argv, self, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+finish_exact_sum(long n, VALUE r, VALUE v, int z)</div><div class='add'>+{</div><div class='add'>+    if (n != 0)</div><div class='add'>+        v = rb_fix_plus(LONG2FIX(n), v);</div><div class='add'>+    if (r != Qundef) {</div><div class='add'>+	/* r can be an Integer when mathn is loaded */</div><div class='add'>+	if (FIXNUM_P(r))</div><div class='add'>+	    v = rb_fix_plus(r, v);</div><div class='add'>+	else if (RB_TYPE_P(r, T_BIGNUM))</div><div class='add'>+	    v = rb_big_plus(r, v);</div><div class='add'>+	else</div><div class='add'>+	    v = rb_rational_plus(r, v);</div><div class='add'>+    }</div><div class='add'>+    else if (!n &amp;&amp; z) {</div><div class='add'>+        v = rb_fix_plus(LONG2FIX(0), v);</div><div class='add'>+    }</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ary.sum(init=0)                    -&gt; number</div><div class='add'>+ *   ary.sum(init=0) {|e| expr }        -&gt; number</div><div class='add'>+ *</div><div class='add'>+ * Returns the sum of elements.</div><div class='add'>+ * For example, [e1, e2, e3].sum returns init + e1 + e2 + e3.</div><div class='add'>+ *</div><div class='add'>+ * If a block is given, the block is applied to each element</div><div class='add'>+ * before addition.</div><div class='add'>+ *</div><div class='add'>+ * If &lt;i&gt;ary&lt;/i&gt; is empty, it returns &lt;i&gt;init&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *   [].sum                             #=&gt; 0</div><div class='add'>+ *   [].sum(0.0)                        #=&gt; 0.0</div><div class='add'>+ *   [1, 2, 3].sum                      #=&gt; 6</div><div class='add'>+ *   [3, 5.5].sum                       #=&gt; 8.5</div><div class='add'>+ *   [2.5, 3.0].sum(0.0) {|e| e * e }   #=&gt; 15.25</div><div class='add'>+ *   [Object.new].sum                   #=&gt; TypeError</div><div class='add'>+ *</div><div class='add'>+ * The (arithmetic) mean value of an array can be obtained as follows.</div><div class='add'>+ *</div><div class='add'>+ *   mean = ary.sum(0.0) / ary.length</div><div class='add'>+ *</div><div class='add'>+ * This method can be used for non-numeric objects by</div><div class='add'>+ * explicit &lt;i&gt;init&lt;/i&gt; argument.</div><div class='add'>+ *</div><div class='add'>+ *   ["a", "b", "c"].sum("")            #=&gt; "abc"</div><div class='add'>+ *   [[1], [[2]], [3]].sum([])          #=&gt; [1, [2], 3]</div><div class='add'>+ *</div><div class='add'>+ * However, Array#join and Array#flatten is faster than Array#sum for</div><div class='add'>+ * array of strings and array of arrays.</div><div class='add'>+ *</div><div class='add'>+ *   ["a", "b", "c"].join               #=&gt; "abc"</div><div class='add'>+ *   [[1], [[2]], [3]].flatten(1)       #=&gt; [1, [2], 3]</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ * Array#sum method may not respect method redefinition of "+" methods</div><div class='add'>+ * such as Integer#+.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE e, v, r;</div><div class='add'>+    long i, n;</div><div class='add'>+    int block_given;</div><div class='add'>+</div><div class='add'>+    if (rb_scan_args(argc, argv, "01", &amp;v) == 0)</div><div class='add'>+        v = LONG2FIX(0);</div><div class='add'>+</div><div class='add'>+    block_given = rb_block_given_p();</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(ary) == 0)</div><div class='add'>+        return v;</div><div class='add'>+</div><div class='add'>+    n = 0;</div><div class='add'>+    r = Qundef;</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+        e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (block_given)</div><div class='add'>+            e = rb_yield(e);</div><div class='add'>+        if (FIXNUM_P(e)) {</div><div class='add'>+            n += FIX2LONG(e); /* should not overflow long type */</div><div class='add'>+            if (!FIXABLE(n)) {</div><div class='add'>+                v = rb_big_plus(LONG2NUM(n), v);</div><div class='add'>+                n = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(e, T_BIGNUM))</div><div class='add'>+            v = rb_big_plus(e, v);</div><div class='add'>+        else if (RB_TYPE_P(e, T_RATIONAL)) {</div><div class='add'>+            if (r == Qundef)</div><div class='add'>+                r = e;</div><div class='add'>+            else</div><div class='add'>+                r = rb_rational_plus(r, e);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+            goto not_exact;</div><div class='add'>+    }</div><div class='add'>+    v = finish_exact_sum(n, r, v, argc!=0);</div><div class='add'>+    return v;</div><div class='add'>+</div><div class='add'>+  not_exact:</div><div class='add'>+    v = finish_exact_sum(n, r, v, i!=0);</div><div class='add'>+</div><div class='add'>+    if (RB_FLOAT_TYPE_P(e)) {</div><div class='add'>+        /*</div><div class='add'>+         * Kahan-Babuska balancing compensated summation algorithm</div><div class='add'>+         * See http://link.springer.com/article/10.1007/s00607-005-0139-x</div><div class='add'>+         */</div><div class='add'>+        double f, c;</div><div class='add'>+</div><div class='add'>+        f = NUM2DBL(v);</div><div class='add'>+        c = 0.0;</div><div class='add'>+        goto has_float_value;</div><div class='add'>+        for (; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            double x, t;</div><div class='add'>+            e = RARRAY_AREF(ary, i);</div><div class='add'>+            if (block_given)</div><div class='add'>+                e = rb_yield(e);</div><div class='add'>+            if (RB_FLOAT_TYPE_P(e))</div><div class='add'>+              has_float_value:</div><div class='add'>+                x = RFLOAT_VALUE(e);</div><div class='add'>+            else if (FIXNUM_P(e))</div><div class='add'>+                x = FIX2LONG(e);</div><div class='add'>+            else if (RB_TYPE_P(e, T_BIGNUM))</div><div class='add'>+                x = rb_big2dbl(e);</div><div class='add'>+            else if (RB_TYPE_P(e, T_RATIONAL))</div><div class='add'>+                x = rb_num2dbl(e);</div><div class='add'>+            else</div><div class='add'>+                goto not_float;</div><div class='add'>+</div><div class='add'>+            if (isnan(f)) continue;</div><div class='add'>+            if (isnan(x)) {</div><div class='add'>+                f = x;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            if (isinf(x)) {</div><div class='add'>+                if (isinf(f) &amp;&amp; signbit(x) != signbit(f))</div><div class='add'>+                    f = NAN;</div><div class='add'>+                else</div><div class='add'>+                    f = x;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            if (isinf(f)) continue;</div><div class='add'>+</div><div class='add'>+            t = f + x;</div><div class='add'>+            if (fabs(f) &gt;= fabs(x))</div><div class='add'>+                c += ((f - t) + x);</div><div class='add'>+            else</div><div class='add'>+                c += ((x - t) + f);</div><div class='add'>+            f = t;</div><div class='add'>+        }</div><div class='add'>+        f += c;</div><div class='add'>+        return DBL2NUM(f);</div><div class='add'>+</div><div class='add'>+      not_float:</div><div class='add'>+        v = DBL2NUM(f);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    goto has_some_value;</div><div class='add'>+    for (; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+        e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (block_given)</div><div class='add'>+            e = rb_yield(e);</div><div class='add'>+      has_some_value:</div><div class='add'>+        v = rb_funcall(v, idPLUS, 1, e);</div><div class='add'>+    }</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Arrays are ordered, integer-indexed collections of any object.</div><div class='add'>+ *</div><div class='add'>+ *  Array indexing starts at 0, as in C or Java.  A negative index is assumed</div><div class='add'>+ *  to be relative to the end of the array---that is, an index of -1 indicates</div><div class='add'>+ *  the last element of the array, -2 is the next to last element in the</div><div class='add'>+ *  array, and so on.</div><div class='add'>+ *</div><div class='add'>+ *  == Creating Arrays</div><div class='add'>+ *</div><div class='add'>+ *  A new array can be created by using the literal constructor</div><div class='add'>+ *  &lt;code&gt;[]&lt;/code&gt;.  Arrays can contain different types of objects.  For</div><div class='add'>+ *  example, the array below contains an Integer, a String and a Float:</div><div class='add'>+ *</div><div class='add'>+ *     ary = [1, "two", 3.0] #=&gt; [1, "two", 3.0]</div><div class='add'>+ *</div><div class='add'>+ *  An array can also be created by explicitly calling Array.new with zero, one</div><div class='add'>+ *  (the initial size of the Array) or two arguments (the initial size and a</div><div class='add'>+ *  default object).</div><div class='add'>+ *</div><div class='add'>+ *     ary = Array.new    #=&gt; []</div><div class='add'>+ *     Array.new(3)       #=&gt; [nil, nil, nil]</div><div class='add'>+ *     Array.new(3, true) #=&gt; [true, true, true]</div><div class='add'>+ *</div><div class='add'>+ *  Note that the second argument populates the array with references to the</div><div class='add'>+ *  same object.  Therefore, it is only recommended in cases when you need to</div><div class='add'>+ *  instantiate arrays with natively immutable objects such as Symbols,</div><div class='add'>+ *  numbers, true or false.</div><div class='add'>+ *</div><div class='add'>+ *  To create an array with separate objects a block can be passed instead.</div><div class='add'>+ *  This method is safe to use with mutable objects such as hashes, strings or</div><div class='add'>+ *  other arrays:</div><div class='add'>+ *</div><div class='add'>+ *     Array.new(4) { Hash.new }  #=&gt; [{}, {}, {}, {}]</div><div class='add'>+ *     Array.new(4) {|i| i.to_s } #=&gt; ["0", "1", "2", "3"]</div><div class='add'>+ *</div><div class='add'>+ *  This is also a quick way to build up multi-dimensional arrays:</div><div class='add'>+ *</div><div class='add'>+ *     empty_table = Array.new(3) { Array.new(3) }</div><div class='add'>+ *     #=&gt; [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]</div><div class='add'>+ *</div><div class='add'>+ *  An array can also be created by using the Array() method, provided by</div><div class='add'>+ *  Kernel, which tries to call #to_ary, then #to_a on its argument.</div><div class='add'>+ *</div><div class='add'>+ *	Array({:a =&gt; "a", :b =&gt; "b"}) #=&gt; [[:a, "a"], [:b, "b"]]</div><div class='add'>+ *</div><div class='add'>+ *  == Example Usage</div><div class='add'>+ *</div><div class='add'>+ *  In addition to the methods it mixes in through the Enumerable module, the</div><div class='add'>+ *  Array class has proprietary methods for accessing, searching and otherwise</div><div class='add'>+ *  manipulating arrays.</div><div class='add'>+ *</div><div class='add'>+ *  Some of the more common ones are illustrated below.</div><div class='add'>+ *</div><div class='add'>+ *  == Accessing Elements</div><div class='add'>+ *</div><div class='add'>+ *  Elements in an array can be retrieved using the Array#[] method.  It can</div><div class='add'>+ *  take a single integer argument (a numeric index), a pair of arguments</div><div class='add'>+ *  (start and length) or a range. Negative indices start counting from the end,</div><div class='add'>+ *  with -1 being the last element.</div><div class='add'>+ *</div><div class='add'>+ *     arr = [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *     arr[2]    #=&gt; 3</div><div class='add'>+ *     arr[100]  #=&gt; nil</div><div class='add'>+ *     arr[-3]   #=&gt; 4</div><div class='add'>+ *     arr[2, 3] #=&gt; [3, 4, 5]</div><div class='add'>+ *     arr[1..4] #=&gt; [2, 3, 4, 5]</div><div class='add'>+ *     arr[1..-3] #=&gt; [2, 3, 4]</div><div class='add'>+ *</div><div class='add'>+ *  Another way to access a particular array element is by using the #at method</div><div class='add'>+ *</div><div class='add'>+ *     arr.at(0) #=&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *  The #slice method works in an identical manner to Array#[].</div><div class='add'>+ *</div><div class='add'>+ *  To raise an error for indices outside of the array bounds or else to</div><div class='add'>+ *  provide a default value when that happens, you can use #fetch.</div><div class='add'>+ *</div><div class='add'>+ *     arr = ['a', 'b', 'c', 'd', 'e', 'f']</div><div class='add'>+ *     arr.fetch(100) #=&gt; IndexError: index 100 outside of array bounds: -6...6</div><div class='add'>+ *     arr.fetch(100, "oops") #=&gt; "oops"</div><div class='add'>+ *</div><div class='add'>+ *  The special methods #first and #last will return the first and last</div><div class='add'>+ *  elements of an array, respectively.</div><div class='add'>+ *</div><div class='add'>+ *     arr.first #=&gt; 1</div><div class='add'>+ *     arr.last  #=&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *  To return the first +n+ elements of an array, use #take</div><div class='add'>+ *</div><div class='add'>+ *     arr.take(3) #=&gt; [1, 2, 3]</div><div class='add'>+ *</div><div class='add'>+ *  #drop does the opposite of #take, by returning the elements after +n+</div><div class='add'>+ *  elements have been dropped:</div><div class='add'>+ *</div><div class='add'>+ *     arr.drop(3) #=&gt; [4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  == Obtaining Information about an Array</div><div class='add'>+ *</div><div class='add'>+ *  Arrays keep track of their own length at all times.  To query an array</div><div class='add'>+ *  about the number of elements it contains, use #length, #count or #size.</div><div class='add'>+ *</div><div class='add'>+ *    browsers = ['Chrome', 'Firefox', 'Safari', 'Opera', 'IE']</div><div class='add'>+ *    browsers.length #=&gt; 5</div><div class='add'>+ *    browsers.count #=&gt; 5</div><div class='add'>+ *</div><div class='add'>+ *  To check whether an array contains any elements at all</div><div class='add'>+ *</div><div class='add'>+ *    browsers.empty? #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  To check whether a particular item is included in the array</div><div class='add'>+ *</div><div class='add'>+ *    browsers.include?('Konqueror') #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  == Adding Items to Arrays</div><div class='add'>+ *</div><div class='add'>+ *  Items can be added to the end of an array by using either #push or #&lt;&lt;</div><div class='add'>+ *</div><div class='add'>+ *    arr = [1, 2, 3, 4]</div><div class='add'>+ *    arr.push(5) #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *    arr &lt;&lt; 6    #=&gt; [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  #unshift will add a new item to the beginning of an array.</div><div class='add'>+ *</div><div class='add'>+ *     arr.unshift(0) #=&gt; [0, 1, 2, 3, 4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  With #insert you can add a new element to an array at any position.</div><div class='add'>+ *</div><div class='add'>+ *     arr.insert(3, 'apple')  #=&gt; [0, 1, 2, 'apple', 3, 4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  Using the #insert method, you can also insert multiple values at once:</div><div class='add'>+ *</div><div class='add'>+ *     arr.insert(3, 'orange', 'pear', 'grapefruit')</div><div class='add'>+ *     #=&gt; [0, 1, 2, "orange", "pear", "grapefruit", "apple", 3, 4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  == Removing Items from an Array</div><div class='add'>+ *</div><div class='add'>+ *  The method #pop removes the last element in an array and returns it:</div><div class='add'>+ *</div><div class='add'>+ *     arr =  [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *     arr.pop #=&gt; 6</div><div class='add'>+ *     arr #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *</div><div class='add'>+ *  To retrieve and at the same time remove the first item, use #shift:</div><div class='add'>+ *</div><div class='add'>+ *     arr.shift #=&gt; 1</div><div class='add'>+ *     arr #=&gt; [2, 3, 4, 5]</div><div class='add'>+ *</div><div class='add'>+ *  To delete an element at a particular index:</div><div class='add'>+ *</div><div class='add'>+ *     arr.delete_at(2) #=&gt; 4</div><div class='add'>+ *     arr #=&gt; [2, 3, 5]</div><div class='add'>+ *</div><div class='add'>+ *  To delete a particular element anywhere in an array, use #delete:</div><div class='add'>+ *</div><div class='add'>+ *     arr = [1, 2, 2, 3]</div><div class='add'>+ *     arr.delete(2) #=&gt; 2</div><div class='add'>+ *     arr #=&gt; [1,3]</div><div class='add'>+ *</div><div class='add'>+ *  A useful method if you need to remove +nil+ values from an array is</div><div class='add'>+ *  #compact:</div><div class='add'>+ *</div><div class='add'>+ *     arr = ['foo', 0, nil, 'bar', 7, 'baz', nil]</div><div class='add'>+ *     arr.compact  #=&gt; ['foo', 0, 'bar', 7, 'baz']</div><div class='add'>+ *     arr          #=&gt; ['foo', 0, nil, 'bar', 7, 'baz', nil]</div><div class='add'>+ *     arr.compact! #=&gt; ['foo', 0, 'bar', 7, 'baz']</div><div class='add'>+ *     arr          #=&gt; ['foo', 0, 'bar', 7, 'baz']</div><div class='add'>+ *</div><div class='add'>+ *  Another common need is to remove duplicate elements from an array.</div><div class='add'>+ *</div><div class='add'>+ *  It has the non-destructive #uniq, and destructive method #uniq!</div><div class='add'>+ *</div><div class='add'>+ *     arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556]</div><div class='add'>+ *     arr.uniq #=&gt; [2, 5, 6, 556, 8, 9, 0, 123]</div><div class='add'>+ *</div><div class='add'>+ *  == Iterating over Arrays</div><div class='add'>+ *</div><div class='add'>+ *  Like all classes that include the Enumerable module, Array has an each</div><div class='add'>+ *  method, which defines what elements should be iterated over and how.  In</div><div class='add'>+ *  case of Array's #each, all elements in the Array instance are yielded to</div><div class='add'>+ *  the supplied block in sequence.</div><div class='add'>+ *</div><div class='add'>+ *  Note that this operation leaves the array unchanged.</div><div class='add'>+ *</div><div class='add'>+ *     arr = [1, 2, 3, 4, 5]</div><div class='add'>+ *     arr.each { |a| print a -= 10, " " }</div><div class='add'>+ *     # prints: -9 -8 -7 -6 -5</div><div class='add'>+ *     #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *</div><div class='add'>+ *  Another sometimes useful iterator is #reverse_each which will iterate over</div><div class='add'>+ *  the elements in the array in reverse order.</div><div class='add'>+ *</div><div class='add'>+ *     words = %w[first second third fourth fifth sixth]</div><div class='add'>+ *     str = ""</div><div class='add'>+ *     words.reverse_each { |word| str += "#{word} " }</div><div class='add'>+ *     p str #=&gt; "sixth fifth fourth third second first "</div><div class='add'>+ *</div><div class='add'>+ *  The #map method can be used to create a new array based on the original</div><div class='add'>+ *  array, but with the values modified by the supplied block:</div><div class='add'>+ *</div><div class='add'>+ *     arr.map { |a| 2*a }   #=&gt; [2, 4, 6, 8, 10]</div><div class='add'>+ *     arr                   #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *     arr.map! { |a| a**2 } #=&gt; [1, 4, 9, 16, 25]</div><div class='add'>+ *     arr                   #=&gt; [1, 4, 9, 16, 25]</div><div class='add'>+ *</div><div class='add'>+ *  == Selecting Items from an Array</div><div class='add'>+ *</div><div class='add'>+ *  Elements can be selected from an array according to criteria defined in a</div><div class='add'>+ *  block.  The selection can happen in a destructive or a non-destructive</div><div class='add'>+ *  manner.  While the destructive operations will modify the array they were</div><div class='add'>+ *  called on, the non-destructive methods usually return a new array with the</div><div class='add'>+ *  selected elements, but leave the original array unchanged.</div><div class='add'>+ *</div><div class='add'>+ *  === Non-destructive Selection</div><div class='add'>+ *</div><div class='add'>+ *     arr = [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *     arr.select { |a| a &gt; 3 }     #=&gt; [4, 5, 6]</div><div class='add'>+ *     arr.reject { |a| a &lt; 3 }     #=&gt; [3, 4, 5, 6]</div><div class='add'>+ *     arr.drop_while { |a| a &lt; 4 } #=&gt; [4, 5, 6]</div><div class='add'>+ *     arr                          #=&gt; [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *  === Destructive Selection</div><div class='add'>+ *</div><div class='add'>+ *  #select! and #reject! are the corresponding destructive methods to #select</div><div class='add'>+ *  and #reject</div><div class='add'>+ *</div><div class='add'>+ *  Similar to #select vs. #reject, #delete_if and #keep_if have the exact</div><div class='add'>+ *  opposite result when supplied with the same block:</div><div class='add'>+ *</div><div class='add'>+ *     arr.delete_if { |a| a &lt; 4 } #=&gt; [4, 5, 6]</div><div class='add'>+ *     arr                         #=&gt; [4, 5, 6]</div><div class='add'>+ *</div><div class='add'>+ *     arr = [1, 2, 3, 4, 5, 6]</div><div class='add'>+ *     arr.keep_if { |a| a &lt; 4 } #=&gt; [1, 2, 3]</div><div class='add'>+ *     arr                       #=&gt; [1, 2, 3]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-Init_Array()</div><div class='add'>+Init_Array(void)</div><div class='ctx'> {</div><div class='add'>+#undef rb_intern</div><div class='add'>+#define rb_intern(str) rb_intern_const(str)</div><div class='add'>+</div><div class='ctx'>     rb_cArray  = rb_define_class("Array", rb_cObject);</div><div class='ctx'>     rb_include_module(rb_cArray, rb_mEnumerable);</div><div class='ctx'> </div><div class='del'>-    rb_define_alloc_func(rb_cArray, ary_alloc);</div><div class='add'>+    rb_define_alloc_func(rb_cArray, empty_ary_alloc);</div><div class='ctx'>     rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cArray, "try_convert", rb_ary_s_try_convert, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "initialize_copy", rb_ary_replace, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cArray, "to_s", rb_ary_to_s, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "inspect", rb_ary_inspect, 0);</div><div class='add'>+    rb_define_alias(rb_cArray,  "to_s", "inspect");</div><div class='ctx'>     rb_define_method(rb_cArray, "to_a", rb_ary_to_a, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "to_h", rb_ary_to_h, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "to_ary", rb_ary_to_ary_m, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "frozen?",  rb_ary_frozen_p, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -3001,12 +6265,14 @@ Init_Array()</div><div class='ctx'>     rb_define_method(rb_cArray, "fetch", rb_ary_fetch, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "first", rb_ary_first, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "last", rb_ary_last, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "concat", rb_ary_concat, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "concat", rb_ary_concat_multi, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "&lt;&lt;", rb_ary_push, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "pop", rb_ary_pop, 0);</div><div class='del'>-    rb_define_method(rb_cArray, "shift", rb_ary_shift, 0);</div><div class='add'>+    rb_define_alias(rb_cArray,  "append", "push");</div><div class='add'>+    rb_define_method(rb_cArray, "pop", rb_ary_pop_m, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "shift", rb_ary_shift_m, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "unshift", rb_ary_unshift_m, -1);</div><div class='add'>+    rb_define_alias(rb_cArray,  "prepend", "unshift");</div><div class='ctx'>     rb_define_method(rb_cArray, "insert", rb_ary_insert, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "each", rb_ary_each, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "each_index", rb_ary_each_index, 0);</div><div class='hunk'>@@ -3014,20 +6280,24 @@ Init_Array()</div><div class='ctx'>     rb_define_method(rb_cArray, "length", rb_ary_length, 0);</div><div class='ctx'>     rb_define_alias(rb_cArray,  "size", "length");</div><div class='ctx'>     rb_define_method(rb_cArray, "empty?", rb_ary_empty_p, 0);</div><div class='del'>-    rb_define_method(rb_cArray, "index", rb_ary_index, 1);</div><div class='del'>-    rb_define_method(rb_cArray, "rindex", rb_ary_rindex, 1);</div><div class='del'>-    rb_define_method(rb_cArray, "indexes", rb_ary_indexes, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "indices", rb_ary_indexes, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "find_index", rb_ary_index, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "index", rb_ary_index, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "rindex", rb_ary_rindex, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "join", rb_ary_join_m, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "reverse", rb_ary_reverse_m, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "reverse!", rb_ary_reverse_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "rotate", rb_ary_rotate_m, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "rotate!", rb_ary_rotate_bang, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "sort", rb_ary_sort, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "sort!", rb_ary_sort_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "sort_by!", rb_ary_sort_by_bang, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "collect", rb_ary_collect, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "collect!", rb_ary_collect_bang, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "map", rb_ary_collect, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "map!", rb_ary_collect_bang, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "select", rb_ary_select, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "select!", rb_ary_select_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "keep_if", rb_ary_keep_if, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "values_at", rb_ary_values_at, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);</div><div class='hunk'>@@ -3055,14 +6325,35 @@ Init_Array()</div><div class='ctx'>     rb_define_method(rb_cArray, "&amp;", rb_ary_and, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "|", rb_ary_or, 1);</div><div class='ctx'> </div><div class='add'>+    rb_define_method(rb_cArray, "max", rb_ary_max, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "min", rb_ary_min, -1);</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_cArray, "uniq", rb_ary_uniq, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "uniq!", rb_ary_uniq_bang, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "compact", rb_ary_compact, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "compact!", rb_ary_compact_bang, 0);</div><div class='del'>-    rb_define_method(rb_cArray, "flatten", rb_ary_flatten, 0);</div><div class='del'>-    rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, 0);</div><div class='del'>-    rb_define_method(rb_cArray, "nitems", rb_ary_nitems, 0);</div><div class='del'>-</div><div class='del'>-    id_cmp = rb_intern("&lt;=&gt;");</div><div class='del'>-    inspect_key = rb_intern("__inspect_key__");</div><div class='add'>+    rb_define_method(rb_cArray, "flatten", rb_ary_flatten, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "count", rb_ary_count, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "shuffle!", rb_ary_shuffle_bang, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "shuffle", rb_ary_shuffle, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "sample", rb_ary_sample, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "cycle", rb_ary_cycle, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "permutation", rb_ary_permutation, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "combination", rb_ary_combination, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "repeated_permutation", rb_ary_repeated_permutation, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "repeated_combination", rb_ary_repeated_combination, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "product", rb_ary_product, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "take", rb_ary_take, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "take_while", rb_ary_take_while, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "drop", rb_ary_drop, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "drop_while", rb_ary_drop_while, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "bsearch", rb_ary_bsearch, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "bsearch_index", rb_ary_bsearch_index, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "any?", rb_ary_any_p, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "dig", rb_ary_dig, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "sum", rb_ary_sum, -1);</div><div class='add'>+</div><div class='add'>+    id_random = rb_intern("random");</div><div class='ctx'> }</div><div class='head'>diff --git a/basictest/runner.rb b/basictest/runner.rb<br/>new file mode 100755<br/>index 0000000000..0f398e7acc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/basictest/runner.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>basictest/runner.rb</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+#! ./miniruby</div><div class='add'>+</div><div class='add'>+exit if defined?(CROSS_COMPILING) and CROSS_COMPILING</div><div class='add'>+ruby = ENV["RUBY"]</div><div class='add'>+unless ruby</div><div class='add'>+  load './rbconfig.rb'</div><div class='add'>+  ruby = "./#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}"</div><div class='add'>+end</div><div class='add'>+unless File.exist? ruby</div><div class='add'>+  print "#{ruby} is not found.\n"</div><div class='add'>+  print "Try `make' first, then `make test', please.\n"</div><div class='add'>+  exit false</div><div class='add'>+end</div><div class='add'>+ARGV[0] and opt = ARGV[0][/\A--run-opt=(.*)/, 1] and ARGV.shift</div><div class='add'>+</div><div class='add'>+$stderr.reopen($stdout)</div><div class='add'>+error = ''</div><div class='add'>+</div><div class='add'>+srcdir = File.expand_path('..', File.dirname(__FILE__))</div><div class='add'>+if env = ENV["RUBYOPT"]</div><div class='add'>+  ENV["RUBYOPT"] = env + " -W1"</div><div class='add'>+end</div><div class='add'>+`#{ruby} #{opt} -W1 #{srcdir}/basictest/test.rb #{ARGV.join(' ')}`.each_line do |line|</div><div class='add'>+  if line =~ /^end of test/</div><div class='add'>+    print "\ntest succeeded\n"</div><div class='add'>+    exit true</div><div class='add'>+  end</div><div class='add'>+  error &lt;&lt; line if %r:^(basictest/test.rb|not): =~ line</div><div class='add'>+end</div><div class='add'>+puts</div><div class='add'>+print error</div><div class='add'>+print "test failed\n"</div><div class='add'>+exit false</div><div class='head'>diff --git a/basictest/test.rb b/basictest/test.rb<br/>new file mode 100755<br/>index 0000000000..25d52ca1ef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/basictest/test.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>basictest/test.rb</a></div><div class='hunk'>@@ -0,0 +1,2367 @@</div><div class='add'>+#! /usr/bin/env ruby</div><div class='add'>+# -*- coding: us-ascii -*-</div><div class='add'>+</div><div class='add'>+$testnum=0</div><div class='add'>+$ntest=0</div><div class='add'>+$failed = 0</div><div class='add'>+class Progress</div><div class='add'>+  def initialize</div><div class='add'>+    @color = nil</div><div class='add'>+    @tty = nil</div><div class='add'>+    @quiet = nil</div><div class='add'>+    @verbose = nil</div><div class='add'>+    ARGV.each do |arg|</div><div class='add'>+      case arg</div><div class='add'>+      when /\A--color(?:=(?:always|(auto)|(never)|(.*)))?\z/</div><div class='add'>+        warn "unknown --color argument: #$3" if $3</div><div class='add'>+        @color = $1 ? nil : !$2</div><div class='add'>+      when /\A--tty(=(?:yes|(no)|(.*)))?\z/</div><div class='add'>+        warn "unknown --tty argument: #$3" if $3</div><div class='add'>+        @tty = !$1 || !$2</div><div class='add'>+        true</div><div class='add'>+      when /\A-(q|-quiet)\z/</div><div class='add'>+        @quiet = true</div><div class='add'>+      when /\A-(v|-verbose)\z/</div><div class='add'>+        @verbose = true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    @tty = STDERR.tty? &amp;&amp; !STDOUT.tty? &amp;&amp; /dumb/ !~ ENV["TERM"] if @tty.nil?</div><div class='add'>+    @eol = @tty &amp;&amp; !@verbose ? "\r\e[K\r" : "\n"</div><div class='add'>+    case @color</div><div class='add'>+    when nil</div><div class='add'>+      @color = @tty</div><div class='add'>+    end</div><div class='add'>+    if @color</div><div class='add'>+      # dircolors-like style</div><div class='add'>+      colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}</div><div class='add'>+      begin</div><div class='add'>+        File.read(File.join(__dir__, "../test/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='add'>+          colors[n] ||= c</div><div class='add'>+        end</div><div class='add'>+      rescue</div><div class='add'>+      end</div><div class='add'>+      @passed = "\e[;#{colors["pass"] || "32"}m"</div><div class='add'>+      @failed = "\e[;#{colors["fail"] || "31"}m"</div><div class='add'>+      @reset = "\e[m"</div><div class='add'>+    else</div><div class='add'>+      @passed = @failed = @reset = ""</div><div class='add'>+    end</div><div class='add'>+    extend(Rotator) if @tty</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def passed_string</div><div class='add'>+    "."</div><div class='add'>+  end</div><div class='add'>+  def failed_string</div><div class='add'>+    "#{@failed}F#{@reset}"</div><div class='add'>+  end</div><div class='add'>+  def init_string</div><div class='add'>+  end</div><div class='add'>+  def finish_string</div><div class='add'>+    if @quiet</div><div class='add'>+      @eol</div><div class='add'>+    else</div><div class='add'>+      "#{@passed}#{@ok ? 'OK' : ''} #{$testnum}#{@reset}#{@eol}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  def pass</div><div class='add'>+    STDERR.print passed_string</div><div class='add'>+  end</div><div class='add'>+  def fail</div><div class='add'>+    @ok = false</div><div class='add'>+    STDERR.print failed_string</div><div class='add'>+  end</div><div class='add'>+  def init</div><div class='add'>+    @ok = true</div><div class='add'>+    STDERR.print init_string</div><div class='add'>+  end</div><div class='add'>+  def finish</div><div class='add'>+    STDERR.print finish_string</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module Rotator</div><div class='add'>+    ROTATOR = %w[- \\ | /]</div><div class='add'>+    BS = "\b" * ROTATOR[0].size</div><div class='add'>+    def passed_string</div><div class='add'>+      "#{BS}#{ROTATOR[(@count += 1) % ROTATOR.size]}"</div><div class='add'>+    end</div><div class='add'>+    def failed_string</div><div class='add'>+      "#{BS}#{super}#{ROTATOR[@count % ROTATOR.size]}"</div><div class='add'>+    end</div><div class='add'>+    def init_string</div><div class='add'>+      @count = 0</div><div class='add'>+      " "</div><div class='add'>+    end</div><div class='add'>+    def finish_string</div><div class='add'>+      s = "#{BS}#{' ' * BS.size}#{BS}#{super}"</div><div class='add'>+      s.gsub!(/\n/, "\r\e[2K\r") if @quiet</div><div class='add'>+      s</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+PROGRESS = Progress.new</div><div class='add'>+</div><div class='add'>+def test_check(what)</div><div class='add'>+  unless $ntest.zero?</div><div class='add'>+    PROGRESS.finish</div><div class='add'>+  end</div><div class='add'>+  STDERR.print "#{$0}:#{what} "</div><div class='add'>+  PROGRESS.init</div><div class='add'>+  $what = what</div><div class='add'>+  $testnum = 0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_ok(cond,n=1)</div><div class='add'>+  $testnum+=1</div><div class='add'>+  $ntest+=1</div><div class='add'>+  where = (st = caller(n)) ? st[0] : "caller error! (n=#{n}, trace=#{caller(0).join(', ')}"</div><div class='add'>+  if cond</div><div class='add'>+    PROGRESS.pass</div><div class='add'>+    printf "ok %d (%s)\n", $testnum, where</div><div class='add'>+  else</div><div class='add'>+    PROGRESS.fail</div><div class='add'>+    printf "not ok %s %d -- %s\n", $what, $testnum, where</div><div class='add'>+    $failed+=1</div><div class='add'>+  end</div><div class='add'>+  STDOUT.flush</div><div class='add'>+  STDERR.flush</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# make sure conditional operators work</div><div class='add'>+</div><div class='add'>+test_check "assignment"</div><div class='add'>+</div><div class='add'>+a=[]; a[0] ||= "bar";</div><div class='add'>+test_ok(a[0] == "bar")</div><div class='add'>+h={}; h["foo"] ||= "bar";</div><div class='add'>+test_ok(h["foo"] == "bar")</div><div class='add'>+</div><div class='add'>+aa = 5</div><div class='add'>+aa ||= 25</div><div class='add'>+test_ok(aa == 5)</div><div class='add'>+bb ||= 25</div><div class='add'>+test_ok(bb == 25)</div><div class='add'>+cc &amp;&amp;=33</div><div class='add'>+test_ok(cc == nil)</div><div class='add'>+cc = 5</div><div class='add'>+cc &amp;&amp;=44</div><div class='add'>+test_ok(cc == 44)</div><div class='add'>+</div><div class='add'>+a = nil; test_ok(a == nil)</div><div class='add'>+a = 1; test_ok(a == 1)</div><div class='add'>+a = []; test_ok(a == [])</div><div class='add'>+a = [1]; test_ok(a == [1])</div><div class='add'>+a = [nil]; test_ok(a == [nil])</div><div class='add'>+a = [[]]; test_ok(a == [[]])</div><div class='add'>+a = [1,2]; test_ok(a == [1,2])</div><div class='add'>+a = [*[]]; test_ok(a == [])</div><div class='add'>+a = [*[1]]; test_ok(a == [1])</div><div class='add'>+a = [*[1,2]]; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+a = *[]; test_ok(a == [])</div><div class='add'>+a = *[1]; test_ok(a == [1])</div><div class='add'>+a = *[nil]; test_ok(a == [nil])</div><div class='add'>+a = *[[]]; test_ok(a == [[]])</div><div class='add'>+a = *[1,2]; test_ok(a == [1,2])</div><div class='add'>+a = *[*[]]; test_ok(a == [])</div><div class='add'>+a = *[*[1]]; test_ok(a == [1])</div><div class='add'>+a = *[*[1,2]]; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+a, = nil; test_ok(a == nil)</div><div class='add'>+a, = 1; test_ok(a == 1)</div><div class='add'>+a, = []; test_ok(a == nil)</div><div class='add'>+a, = [1]; test_ok(a == 1)</div><div class='add'>+a, = [nil]; test_ok(a == nil)</div><div class='add'>+a, = [[]]; test_ok(a == [])</div><div class='add'>+a, = 1,2; test_ok(a == 1)</div><div class='add'>+a, = [1,2]; test_ok(a == 1)</div><div class='add'>+a, = [*[]]; test_ok(a == nil)</div><div class='add'>+a, = [*[1]]; test_ok(a == 1)</div><div class='add'>+a, = *[1,2]; test_ok(a == 1)</div><div class='add'>+a, = [*[1,2]]; test_ok(a == 1)</div><div class='add'>+</div><div class='add'>+a, = *[]; test_ok(a == nil)</div><div class='add'>+a, = *[1]; test_ok(a == 1)</div><div class='add'>+a, = *[nil]; test_ok(a == nil)</div><div class='add'>+a, = *[[]]; test_ok(a == [])</div><div class='add'>+a, = *[1,2]; test_ok(a == 1)</div><div class='add'>+a, = *[*[]]; test_ok(a == nil)</div><div class='add'>+a, = *[*[1]]; test_ok(a == 1)</div><div class='add'>+a, = *[*[1,2]]; test_ok(a == 1)</div><div class='add'>+</div><div class='add'>+*a = nil; test_ok(a == [nil])</div><div class='add'>+*a = 1; test_ok(a == [1])</div><div class='add'>+*a = []; test_ok(a == [])</div><div class='add'>+*a = [1]; test_ok(a == [1])</div><div class='add'>+*a = [nil]; test_ok(a == [nil])</div><div class='add'>+*a = [[]]; test_ok(a == [[]])</div><div class='add'>+*a = [1,2]; test_ok(a == [1,2])</div><div class='add'>+*a = [*[]]; test_ok(a == [])</div><div class='add'>+*a = [*[1]]; test_ok(a == [1])</div><div class='add'>+*a = [*[1,2]]; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+*a = *[]; test_ok(a == [])</div><div class='add'>+*a = *[1]; test_ok(a == [1])</div><div class='add'>+*a = *[nil]; test_ok(a == [nil])</div><div class='add'>+*a = *[[]]; test_ok(a == [[]])</div><div class='add'>+*a = *[1,2]; test_ok(a == [1,2])</div><div class='add'>+*a = *[*[]]; test_ok(a == [])</div><div class='add'>+*a = *[*[1]]; test_ok(a == [1])</div><div class='add'>+*a = *[*[1,2]]; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+a,b,*c = nil; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = 1; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = []; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = [1]; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = [nil]; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = [[]]; test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+a,b,*c = [1,2]; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+a,b,*c = [*[]]; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = [*[1]]; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = [*[1,2]]; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+a,b,*c = *[]; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = *[1]; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = *[nil]; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = *[[]]; test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+a,b,*c = *[1,2]; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+a,b,*c = *[*[]]; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = *[*[1]]; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = *[*[1,2]]; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+def f; yield nil; end; f {|a| test_ok(a == nil)}</div><div class='add'>+def f; yield 1; end; f {|a| test_ok(a == 1)}</div><div class='add'>+def f; yield []; end; f {|a| test_ok(a == [])}</div><div class='add'>+def f; yield [1]; end; f {|a| test_ok(a == [1])}</div><div class='add'>+def f; yield [nil]; end; f {|a| test_ok(a == [nil])}</div><div class='add'>+def f; yield [[]]; end; f {|a| test_ok(a == [[]])}</div><div class='add'>+def f; yield [*[]]; end; f {|a| test_ok(a == [])}</div><div class='add'>+def f; yield [*[1]]; end; f {|a| test_ok(a == [1])}</div><div class='add'>+def f; yield [*[1,2]]; end; f {|a| test_ok(a == [1,2])}</div><div class='add'>+def f; yield *[]; end; f {|a| test_ok(a == nil)}</div><div class='add'>+def f; yield *[1]; end; f {|a| test_ok(a == 1)}</div><div class='add'>+def f; yield *[nil]; end; f {|a| test_ok(a == nil)}</div><div class='add'>+def f; yield *[[]]; end; f {|a| test_ok(a == [])}</div><div class='add'>+def f; yield *[*[]]; end; f {|a| test_ok(a == nil)}</div><div class='add'>+def f; yield *[*[1]]; end; f {|a| test_ok(a == 1)}</div><div class='add'>+def f; yield *[*[1,2]]; end; f {|a| test_ok(a == 1)}</div><div class='add'>+</div><div class='add'>+def f; yield; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield nil; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield 1; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+def f; yield []; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield [1]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+def f; yield [nil]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield [[]]; end; f {|a,| test_ok(a == [])}</div><div class='add'>+def f; yield [*[]]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield [*[1]]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+def f; yield [*[1,2]]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+</div><div class='add'>+def f; yield *[]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield *[1]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+def f; yield *[nil]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield *[[]]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield *[*[]]; end; f {|a,| test_ok(a == nil)}</div><div class='add'>+def f; yield *[*[1]]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+def f; yield *[*[1,2]]; end; f {|a,| test_ok(a == 1)}</div><div class='add'>+</div><div class='add'>+def f; yield; end; f {|*a| test_ok(a == [])}</div><div class='add'>+def f; yield nil; end; f {|*a| test_ok(a == [nil])}</div><div class='add'>+def f; yield 1; end; f {|*a| test_ok(a == [1])}</div><div class='add'>+def f; yield []; end; f {|*a| test_ok(a == [[]])}</div><div class='add'>+def f; yield [1]; end; f {|*a| test_ok(a == [[1]])}</div><div class='add'>+def f; yield [nil]; end; f {|*a| test_ok(a == [[nil]])}</div><div class='add'>+def f; yield [[]]; end; f {|*a| test_ok(a == [[[]]])}</div><div class='add'>+def f; yield [1,2]; end; f {|*a| test_ok(a == [[1,2]])}</div><div class='add'>+def f; yield [*[]]; end; f {|*a| test_ok(a == [[]])}</div><div class='add'>+def f; yield [*[1]]; end; f {|*a| test_ok(a == [[1]])}</div><div class='add'>+def f; yield [*[1,2]]; end; f {|*a| test_ok(a == [[1,2]])}</div><div class='add'>+</div><div class='add'>+def f; yield *[]; end; f {|*a| test_ok(a == [])}</div><div class='add'>+def f; yield *[1]; end; f {|*a| test_ok(a == [1])}</div><div class='add'>+def f; yield *[nil]; end; f {|*a| test_ok(a == [nil])}</div><div class='add'>+def f; yield *[[]]; end; f {|*a| test_ok(a == [[]])}</div><div class='add'>+def f; yield *[*[]]; end; f {|*a| test_ok(a == [])}</div><div class='add'>+def f; yield *[*[1]]; end; f {|*a| test_ok(a == [1])}</div><div class='add'>+def f; yield *[*[1,2]]; end; f {|*a| test_ok(a == [1,2])}</div><div class='add'>+</div><div class='add'>+def f; yield; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield nil; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield 1; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}</div><div class='add'>+def f; yield []; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield [1]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}</div><div class='add'>+def f; yield [nil]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield [[]]; end; f {|a,b,*c| test_ok([a,b,c] == [[],nil,[]])}</div><div class='add'>+def f; yield [*[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield [*[1]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}</div><div class='add'>+def f; yield [*[1,2]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,2,[]])}</div><div class='add'>+</div><div class='add'>+def f; yield *[]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield *[1]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}</div><div class='add'>+def f; yield *[nil]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield *[[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield *[*[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}</div><div class='add'>+def f; yield *[*[1]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}</div><div class='add'>+def f; yield *[*[1,2]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,2,[]])}</div><div class='add'>+</div><div class='add'>+def r; return; end; a = r(); test_ok(a == nil)</div><div class='add'>+def r; return nil; end; a = r(); test_ok(a == nil)</div><div class='add'>+def r; return 1; end; a = r(); test_ok(a == 1)</div><div class='add'>+def r; return []; end; a = r(); test_ok(a == [])</div><div class='add'>+def r; return [1]; end; a = r(); test_ok(a == [1])</div><div class='add'>+def r; return [nil]; end; a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return [[]]; end; a = r(); test_ok(a == [[]])</div><div class='add'>+def r; return [*[]]; end; a = r(); test_ok(a == [])</div><div class='add'>+def r; return [*[1]]; end; a = r(); test_ok(a == [1])</div><div class='add'>+def r; return [*[1,2]]; end; a = r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return *[]; end; a = r(); test_ok(a == [])</div><div class='add'>+def r; return *[1]; end; a = r(); test_ok(a == [1])</div><div class='add'>+def r; return *[nil]; end; a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return *[[]]; end; a = r(); test_ok(a == [[]])</div><div class='add'>+def r; return *[*[]]; end; a = r(); test_ok(a == [])</div><div class='add'>+def r; return *[*[1]]; end; a = r(); test_ok(a == [1])</div><div class='add'>+def r; return *[*[1,2]]; end; a = r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return *[[]]; end; a = *r(); test_ok(a == [[]])</div><div class='add'>+def r; return *[*[1,2]]; end; a = *r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return; end; *a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return nil; end; *a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return 1; end; *a = r(); test_ok(a == [1])</div><div class='add'>+def r; return []; end; *a = r(); test_ok(a == [])</div><div class='add'>+def r; return [1]; end; *a = r(); test_ok(a == [1])</div><div class='add'>+def r; return [nil]; end; *a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return [[]]; end; *a = r(); test_ok(a == [[]])</div><div class='add'>+def r; return [1,2]; end; *a = r(); test_ok(a == [1,2])</div><div class='add'>+def r; return [*[]]; end; *a = r(); test_ok(a == [])</div><div class='add'>+def r; return [*[1]]; end; *a = r(); test_ok(a == [1])</div><div class='add'>+def r; return [*[1,2]]; end; *a = r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return *[]; end; *a = r(); test_ok(a == [])</div><div class='add'>+def r; return *[1]; end; *a = r(); test_ok(a == [1])</div><div class='add'>+def r; return *[nil]; end; *a = r(); test_ok(a == [nil])</div><div class='add'>+def r; return *[[]]; end; *a = r(); test_ok(a == [[]])</div><div class='add'>+def r; return *[1,2]; end; *a = r(); test_ok(a == [1,2])</div><div class='add'>+def r; return *[*[]]; end; *a = r(); test_ok(a == [])</div><div class='add'>+def r; return *[*[1]]; end; *a = r(); test_ok(a == [1])</div><div class='add'>+def r; return *[*[1,2]]; end; *a = r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return *[[]]; end; *a = *r(); test_ok(a == [[]])</div><div class='add'>+def r; return *[1,2]; end; *a = *r(); test_ok(a == [1,2])</div><div class='add'>+def r; return *[*[1,2]]; end; *a = *r(); test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+def r; return; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return nil; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return 1; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+def r; return []; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return [1]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+def r; return [nil]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return [[]]; end; a,b,*c = r(); test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+def r; return [1,2]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+def r; return [*[]]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return [*[1]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+def r; return [*[1,2]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+def r; return *[]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return *[1]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+def r; return *[nil]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return *[[]]; end; a,b,*c = r(); test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+def r; return *[1,2]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+def r; return *[*[]]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+def r; return *[*[1]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+def r; return *[*[1,2]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+f = lambda {|r,| test_ok([] == r)}</div><div class='add'>+f.call([], *[])</div><div class='add'>+</div><div class='add'>+f = lambda {|r,*l| test_ok([] == r); test_ok([1] == l)}</div><div class='add'>+f.call([], *[1])</div><div class='add'>+</div><div class='add'>+f = lambda{|x| x}</div><div class='add'>+test_ok(f.call(42) == 42)</div><div class='add'>+test_ok(f.call([42]) == [42])</div><div class='add'>+test_ok(f.call([[42]]) == [[42]])</div><div class='add'>+test_ok(f.call([42,55]) == [42,55])</div><div class='add'>+</div><div class='add'>+f = lambda{|x,| x}</div><div class='add'>+test_ok(f.call(42) == 42)</div><div class='add'>+test_ok(f.call([42]) == [42])</div><div class='add'>+test_ok(f.call([[42]]) == [[42]])</div><div class='add'>+test_ok(f.call([42,55]) == [42,55])</div><div class='add'>+</div><div class='add'>+f = lambda{|*x| x}</div><div class='add'>+test_ok(f.call(42) == [42])</div><div class='add'>+test_ok(f.call([42]) == [[42]])</div><div class='add'>+test_ok(f.call([[42]]) == [[[42]]])</div><div class='add'>+test_ok(f.call([42,55]) == [[42,55]])</div><div class='add'>+test_ok(f.call(42,55) == [42,55])</div><div class='add'>+</div><div class='add'>+f = lambda { |a, b=42, *c| [a,b,c] }</div><div class='add'>+test_ok(f.call(1      ) == [1,42,[  ]] )</div><div class='add'>+test_ok(f.call(1,43   ) == [1,43,[  ]] )</div><div class='add'>+test_ok(f.call(1,43,44) == [1,43,[44]] )</div><div class='add'>+</div><div class='add'>+f = lambda { |a, b=(a|16), *c, &amp;block| [a,b,c,block&amp;&amp;block[]] }</div><div class='add'>+test_ok(f.call(8      )     == [8,24,[  ],nil] )</div><div class='add'>+test_ok(f.call(8,43   )     == [8,43,[  ],nil] )</div><div class='add'>+test_ok(f.call(8,43,44)     == [8,43,[44],nil] )</div><div class='add'>+test_ok(f.call(8      ){45} == [8,24,[  ],45 ] )</div><div class='add'>+test_ok(f.call(8,43   ){45} == [8,43,[  ],45 ] )</div><div class='add'>+test_ok(f.call(8,43,44){45} == [8,43,[44],45 ] )</div><div class='add'>+</div><div class='add'>+f = lambda { |a, b=42, *c, d| [a,b,c,d] }</div><div class='add'>+test_ok(f.call(1      ,99) == [1,42,[  ],99] )</div><div class='add'>+test_ok(f.call(1,43   ,99) == [1,43,[  ],99] )</div><div class='add'>+test_ok(f.call(1,43,44,99) == [1,43,[44],99] )</div><div class='add'>+</div><div class='add'>+f = lambda { |a, b=(a|16), &amp;block| [a,b,block&amp;&amp;block[]] }</div><div class='add'>+test_ok(f.call(8   )     == [8,24,nil] )</div><div class='add'>+test_ok(f.call(8,43)     == [8,43,nil] )</div><div class='add'>+test_ok(f.call(8,43)     == [8,43,nil] )</div><div class='add'>+test_ok(f.call(8   ){45} == [8,24,45 ] )</div><div class='add'>+test_ok(f.call(8,43){45} == [8,43,45 ] )</div><div class='add'>+test_ok(f.call(8,43){45} == [8,43,45 ] )</div><div class='add'>+</div><div class='add'>+f = lambda { |a, b=42, d| [a,b,d] }</div><div class='add'>+test_ok(f.call(1   ,99) == [1,42,99] )</div><div class='add'>+test_ok(f.call(1,43,99) == [1,43,99] )</div><div class='add'>+test_ok(f.call(1,43,99) == [1,43,99] )</div><div class='add'>+</div><div class='add'>+f = lambda { |b=42, *c, &amp;block| [b,c,block&amp;&amp;block[]] }</div><div class='add'>+test_ok(f.call(     )     == [42,[  ],nil] )</div><div class='add'>+test_ok(f.call(43   )     == [43,[  ],nil] )</div><div class='add'>+test_ok(f.call(43,44)     == [43,[44],nil] )</div><div class='add'>+test_ok(f.call(     ){45} == [42,[  ],45 ] )</div><div class='add'>+test_ok(f.call(43   ){45} == [43,[  ],45 ] )</div><div class='add'>+test_ok(f.call(43,44){45} == [43,[44],45 ] )</div><div class='add'>+</div><div class='add'>+f = lambda { |b=42, *c, d| [b,c,d] }</div><div class='add'>+test_ok(f.call(      99) == [42,[  ],99] )</div><div class='add'>+test_ok(f.call(43   ,99) == [43,[  ],99] )</div><div class='add'>+test_ok(f.call(43,44,99) == [43,[44],99] )</div><div class='add'>+</div><div class='add'>+f = lambda { |b=42, &amp;block| [b,block&amp;&amp;block[]] }</div><div class='add'>+test_ok(f.call(  )     == [42,nil] )</div><div class='add'>+test_ok(f.call(43)     == [43,nil] )</div><div class='add'>+test_ok(f.call(43)     == [43,nil] )</div><div class='add'>+test_ok(f.call(  ){45} == [42,45 ] )</div><div class='add'>+test_ok(f.call(43){45} == [43,45 ] )</div><div class='add'>+test_ok(f.call(43){45} == [43,45 ] )</div><div class='add'>+</div><div class='add'>+f = lambda { |b=42, d| [b,d] }</div><div class='add'>+test_ok(f.call(   99) == [42,99] )</div><div class='add'>+test_ok(f.call(43,99) == [43,99] )</div><div class='add'>+test_ok(f.call(43,99) == [43,99] )</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+a,=*[1]</div><div class='add'>+test_ok(a == 1)</div><div class='add'>+a,=*[[1]]</div><div class='add'>+test_ok(a == [1])</div><div class='add'>+a,=*[[[1]]]</div><div class='add'>+test_ok(a == [[1]])</div><div class='add'>+</div><div class='add'>+x, (y, z) = 1, 2, 3</div><div class='add'>+test_ok([1,2,nil] == [x,y,z])</div><div class='add'>+x, (y, z) = 1, [2,3]</div><div class='add'>+test_ok([1,2,3] == [x,y,z])</div><div class='add'>+x, (y, z) = 1, [2]</div><div class='add'>+test_ok([1,2,nil] == [x,y,z])</div><div class='add'>+</div><div class='add'>+a = loop do break; end; test_ok(a == nil)</div><div class='add'>+a = loop do break nil; end; test_ok(a == nil)</div><div class='add'>+a = loop do break 1; end; test_ok(a == 1)</div><div class='add'>+a = loop do break []; end; test_ok(a == [])</div><div class='add'>+a = loop do break [1]; end; test_ok(a == [1])</div><div class='add'>+a = loop do break [nil]; end; test_ok(a == [nil])</div><div class='add'>+a = loop do break [[]]; end; test_ok(a == [[]])</div><div class='add'>+a = loop do break [*[]]; end; test_ok(a == [])</div><div class='add'>+a = loop do break [*[1]]; end; test_ok(a == [1])</div><div class='add'>+a = loop do break [*[1,2]]; end; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+a = loop do break *[]; end; test_ok(a == [])</div><div class='add'>+a = loop do break *[1]; end; test_ok(a == [1])</div><div class='add'>+a = loop do break *[nil]; end; test_ok(a == [nil])</div><div class='add'>+a = loop do break *[[]]; end; test_ok(a == [[]])</div><div class='add'>+a = loop do break *[*[]]; end; test_ok(a == [])</div><div class='add'>+a = loop do break *[*[1]]; end; test_ok(a == [1])</div><div class='add'>+a = loop do break *[*[1,2]]; end; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+*a = loop do break; end; test_ok(a == [nil])</div><div class='add'>+*a = loop do break nil; end; test_ok(a == [nil])</div><div class='add'>+*a = loop do break 1; end; test_ok(a == [1])</div><div class='add'>+*a = loop do break []; end; test_ok(a == [])</div><div class='add'>+*a = loop do break [1]; end; test_ok(a == [1])</div><div class='add'>+*a = loop do break [nil]; end; test_ok(a == [nil])</div><div class='add'>+*a = loop do break [[]]; end; test_ok(a == [[]])</div><div class='add'>+*a = loop do break [1,2]; end; test_ok(a == [1,2])</div><div class='add'>+*a = loop do break [*[]]; end; test_ok(a == [])</div><div class='add'>+*a = loop do break [*[1]]; end; test_ok(a == [1])</div><div class='add'>+*a = loop do break [*[1,2]]; end; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+*a = loop do break *[]; end; test_ok(a == [])</div><div class='add'>+*a = loop do break *[1]; end; test_ok(a == [1])</div><div class='add'>+*a = loop do break *[nil]; end; test_ok(a == [nil])</div><div class='add'>+*a = loop do break *[[]]; end; test_ok(a == [[]])</div><div class='add'>+*a = loop do break *[1,2]; end; test_ok(a == [1,2])</div><div class='add'>+*a = loop do break *[*[]]; end; test_ok(a == [])</div><div class='add'>+*a = loop do break *[*[1]]; end; test_ok(a == [1])</div><div class='add'>+*a = loop do break *[*[1,2]]; end; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+*a = *loop do break *[[]]; end; test_ok(a == [[]])</div><div class='add'>+*a = *loop do break *[1,2]; end; test_ok(a == [1,2])</div><div class='add'>+*a = *loop do break *[*[1,2]]; end; test_ok(a == [1,2])</div><div class='add'>+</div><div class='add'>+a,b,*c = loop do break; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break nil; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break 1; end; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = loop do break []; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break [1]; end; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = loop do break [nil]; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break [[]]; end; test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+a,b,*c = loop do break [1,2]; end; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+a,b,*c = loop do break [*[]]; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break [*[1]]; end; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = loop do break [*[1,2]]; end; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+a,b,*c = loop do break *[]; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break *[1]; end; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = loop do break *[nil]; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break *[[]]; end; test_ok([a,b,c] == [[],nil,[]])</div><div class='add'>+a,b,*c = loop do break *[1,2]; end; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+a,b,*c = loop do break *[*[]]; end; test_ok([a,b,c] == [nil,nil,[]])</div><div class='add'>+a,b,*c = loop do break *[*[1]]; end; test_ok([a,b,c] == [1,nil,[]])</div><div class='add'>+a,b,*c = loop do break *[*[1,2]]; end; test_ok([a,b,c] == [1,2,[]])</div><div class='add'>+</div><div class='add'>+def r(val); a = yield(); test_ok(a == val, 2); end</div><div class='add'>+r(nil){next}</div><div class='add'>+r(nil){next nil}</div><div class='add'>+r(1){next 1}</div><div class='add'>+r([]){next []}</div><div class='add'>+r([1]){next [1]}</div><div class='add'>+r([nil]){next [nil]}</div><div class='add'>+r([[]]){next [[]]}</div><div class='add'>+r([]){next [*[]]}</div><div class='add'>+r([1]){next [*[1]]}</div><div class='add'>+r([1,2]){next [*[1,2]]}</div><div class='add'>+</div><div class='add'>+r([]){next *[]}</div><div class='add'>+r([1]){next *[1]}</div><div class='add'>+r([nil]){next *[nil]}</div><div class='add'>+r([[]]){next *[[]]}</div><div class='add'>+r([]){next *[*[]]}</div><div class='add'>+r([1]){next *[*[1]]}</div><div class='add'>+r([1,2]){next *[*[1,2]]}</div><div class='add'>+</div><div class='add'>+def r(val); *a = yield(); test_ok(a == val, 2); end</div><div class='add'>+r([nil]){next}</div><div class='add'>+r([nil]){next nil}</div><div class='add'>+r([1]){next 1}</div><div class='add'>+r([]){next []}</div><div class='add'>+r([1]){next [1]}</div><div class='add'>+r([nil]){next [nil]}</div><div class='add'>+r([[]]){next [[]]}</div><div class='add'>+r([1,2]){next [1,2]}</div><div class='add'>+r([]){next [*[]]}</div><div class='add'>+r([1]){next [*[1]]}</div><div class='add'>+r([1,2]){next [*[1,2]]}</div><div class='add'>+</div><div class='add'>+def r(val); *a = *yield(); test_ok(a == val, 2); end</div><div class='add'>+r([[]]){next *[[]]}</div><div class='add'>+r([1,2]){next *[1,2]}</div><div class='add'>+r([1,2]){next *[*[1,2]]}</div><div class='add'>+</div><div class='add'>+def r(val); a,b,*c = yield(); test_ok([a,b,c] == val, 2); end</div><div class='add'>+r([nil,nil,[]]){next}</div><div class='add'>+r([nil,nil,[]]){next nil}</div><div class='add'>+r([1,nil,[]]){next 1}</div><div class='add'>+r([nil,nil,[]]){next []}</div><div class='add'>+r([1,nil,[]]){next [1]}</div><div class='add'>+r([nil,nil,[]]){next [nil]}</div><div class='add'>+r([[],nil,[]]){next [[]]}</div><div class='add'>+r([1,2,[]]){next [1,2]}</div><div class='add'>+r([nil,nil,[]]){next [*[]]}</div><div class='add'>+r([1,nil,[]]){next [*[1]]}</div><div class='add'>+r([1,2,[]]){next [*[1,2]]}</div><div class='add'>+</div><div class='add'>+def r(val); a,b,*c = *yield(); test_ok([a,b,c] == val, 2); end</div><div class='add'>+r([[],nil,[]]){next *[[]]}</div><div class='add'>+r([1,2,[]]){next *[1,2]}</div><div class='add'>+r([1,2,[]]){next *[*[1,2]]}</div><div class='add'>+</div><div class='add'>+test_check "condition"</div><div class='add'>+</div><div class='add'>+$x = '0';</div><div class='add'>+</div><div class='add'>+$x == $x &amp;&amp; test_ok(true)</div><div class='add'>+$x != $x &amp;&amp; test_ok(false)</div><div class='add'>+$x == $x || test_ok(false)</div><div class='add'>+$x != $x || test_ok(true)</div><div class='add'>+</div><div class='add'>+# first test to see if we can run the tests.</div><div class='add'>+</div><div class='add'>+test_check "if/unless";</div><div class='add'>+</div><div class='add'>+$x = 'test';</div><div class='add'>+test_ok(if $x == $x then true else false end)</div><div class='add'>+$bad = false</div><div class='add'>+unless $x == $x</div><div class='add'>+  $bad = true</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+test_ok(unless $x != $x then true else false end)</div><div class='add'>+</div><div class='add'>+test_check "case"</div><div class='add'>+</div><div class='add'>+case 5</div><div class='add'>+when 1, 2, 3, 4, 6, 7, 8</div><div class='add'>+  test_ok(false)</div><div class='add'>+when 5</div><div class='add'>+  test_ok(true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+case 5</div><div class='add'>+when 5</div><div class='add'>+  test_ok(true)</div><div class='add'>+when 1..10</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+case 5</div><div class='add'>+when 1..10</div><div class='add'>+  test_ok(true)</div><div class='add'>+else</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+case 5</div><div class='add'>+when 5</div><div class='add'>+  test_ok(true)</div><div class='add'>+else</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+case "foobar"</div><div class='add'>+when /^f.*r$/</div><div class='add'>+  test_ok(true)</div><div class='add'>+else</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_check "while/until";</div><div class='add'>+</div><div class='add'>+while_tmp = "while_tmp.#{$$}"</div><div class='add'>+tmp = open(while_tmp, "w")</div><div class='add'>+tmp.print "tvi925\n";</div><div class='add'>+tmp.print "tvi920\n";</div><div class='add'>+tmp.print "vt100\n";</div><div class='add'>+tmp.print "Amiga\n";</div><div class='add'>+tmp.print "paper\n";</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+# test break</div><div class='add'>+</div><div class='add'>+tmp = open(while_tmp, "r")</div><div class='add'>+test_ok(tmp.kind_of?(File))</div><div class='add'>+</div><div class='add'>+while line = tmp.gets()</div><div class='add'>+  break if /vt100/ =~ line</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(!tmp.eof? &amp;&amp; /vt100/ =~ line)</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+# test next</div><div class='add'>+$bad = false</div><div class='add'>+tmp = open(while_tmp, "r")</div><div class='add'>+while line = tmp.gets()</div><div class='add'>+  next if /vt100/ =~ line</div><div class='add'>+  $bad = 1 if /vt100/ =~ line</div><div class='add'>+end</div><div class='add'>+test_ok(!(!tmp.eof? || /vt100/ =~ line || $bad))</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+# test redo</div><div class='add'>+$bad = false</div><div class='add'>+tmp = open(while_tmp, "r")</div><div class='add'>+while line = tmp.gets()</div><div class='add'>+  lastline = line</div><div class='add'>+  line = line.gsub(/vt100/, 'VT100')</div><div class='add'>+  if lastline != line</div><div class='add'>+    line.gsub!('VT100', 'Vt100')</div><div class='add'>+    redo</div><div class='add'>+  end</div><div class='add'>+  $bad = 1 if /vt100/ =~ line</div><div class='add'>+  $bad = 1 if /VT100/ =~ line</div><div class='add'>+end</div><div class='add'>+test_ok(tmp.eof? &amp;&amp; !$bad)</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+sum=0</div><div class='add'>+for i in 1..10</div><div class='add'>+  sum += i</div><div class='add'>+  i -= 1</div><div class='add'>+  if i &gt; 0</div><div class='add'>+    redo</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(sum == 220)</div><div class='add'>+</div><div class='add'>+# test interval</div><div class='add'>+$bad = false</div><div class='add'>+tmp = open(while_tmp, "r")</div><div class='add'>+while line = tmp.gets()</div><div class='add'>+  break if 3</div><div class='add'>+  case line</div><div class='add'>+  when /vt100/, /Amiga/, /paper/</div><div class='add'>+    $bad = true</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+File.unlink while_tmp or `/bin/rm -f "#{while_tmp}"`</div><div class='add'>+test_ok(!File.exist?(while_tmp))</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+until i&gt;4</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='add'>+test_ok(i&gt;4)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+# exception handling</div><div class='add'>+test_check "exception";</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  raise "this must be handled"</div><div class='add'>+  test_ok(false)</div><div class='add'>+rescue</div><div class='add'>+  test_ok(true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$bad = true</div><div class='add'>+begin</div><div class='add'>+  raise "this must be handled no.2"</div><div class='add'>+rescue</div><div class='add'>+  if $bad</div><div class='add'>+    $bad = false</div><div class='add'>+    retry</div><div class='add'>+    test_ok(false)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(true)</div><div class='add'>+</div><div class='add'>+# exception in rescue clause</div><div class='add'>+$string = "this must be handled no.3"</div><div class='add'>+begin</div><div class='add'>+  begin</div><div class='add'>+    raise "exception in rescue clause"</div><div class='add'>+  rescue</div><div class='add'>+    raise $string</div><div class='add'>+  end</div><div class='add'>+  test_ok(false)</div><div class='add'>+rescue =&gt; e</div><div class='add'>+  test_ok($! == e)</div><div class='add'>+  test_ok(e.message == $string)</div><div class='add'>+  test_ok(e != $string)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# exception in ensure clause</div><div class='add'>+begin</div><div class='add'>+  begin</div><div class='add'>+    raise "this must be handled no.4"</div><div class='add'>+  ensure</div><div class='add'>+    raise "exception in ensure clause"</div><div class='add'>+  end</div><div class='add'>+  test_ok(false)</div><div class='add'>+rescue</div><div class='add'>+  test_ok(true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$bad = true</div><div class='add'>+begin</div><div class='add'>+  begin</div><div class='add'>+    raise "this must be handled no.5"</div><div class='add'>+  ensure</div><div class='add'>+    $bad = false</div><div class='add'>+  end</div><div class='add'>+rescue</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+$bad = true</div><div class='add'>+begin</div><div class='add'>+  begin</div><div class='add'>+    raise "this must be handled no.6"</div><div class='add'>+  ensure</div><div class='add'>+    $bad = false</div><div class='add'>+  end</div><div class='add'>+rescue</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+$bad = true</div><div class='add'>+while true</div><div class='add'>+  begin</div><div class='add'>+    break</div><div class='add'>+  ensure</div><div class='add'>+    $bad = false</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+test_ok(catch(:foo) {</div><div class='add'>+     loop do</div><div class='add'>+       loop do</div><div class='add'>+	 throw :foo, true</div><div class='add'>+	 break</div><div class='add'>+       end</div><div class='add'>+       break</div><div class='add'>+       test_ok(false)			# should not reach here</div><div class='add'>+     end</div><div class='add'>+     false</div><div class='add'>+   })</div><div class='add'>+</div><div class='add'>+test_check "array"</div><div class='add'>+test_ok([1, 2] + [3, 4] == [1, 2, 3, 4])</div><div class='add'>+test_ok([1, 2] * 2 == [1, 2, 1, 2])</div><div class='add'>+test_ok([1, 2] * ":" == "1:2")</div><div class='add'>+</div><div class='add'>+test_ok([1, 2].hash == [1, 2].hash)</div><div class='add'>+</div><div class='add'>+test_ok([1,2,3] &amp; [2,3,4] == [2,3])</div><div class='add'>+test_ok([1,2,3] | [2,3,4] == [1,2,3,4])</div><div class='add'>+test_ok([1,2,3] - [2,3] == [1])</div><div class='add'>+</div><div class='add'>+$x = [0, 1, 2, 3, 4, 5]</div><div class='add'>+test_ok($x[2] == 2)</div><div class='add'>+test_ok($x[1..3] == [1, 2, 3])</div><div class='add'>+test_ok($x[1,3] == [1, 2, 3])</div><div class='add'>+</div><div class='add'>+$x[0, 2] = 10</div><div class='add'>+test_ok($x[0] == 10 &amp;&amp; $x[1] == 2)</div><div class='add'>+</div><div class='add'>+$x[0, 0] = -1</div><div class='add'>+test_ok($x[0] == -1 &amp;&amp; $x[1] == 10)</div><div class='add'>+</div><div class='add'>+$x[-1, 1] = 20</div><div class='add'>+test_ok($x[-1] == 20 &amp;&amp; $x.pop == 20)</div><div class='add'>+</div><div class='add'>+# array and/or</div><div class='add'>+test_ok(([1,2,3]&amp;[2,4,6]) == [2])</div><div class='add'>+test_ok(([1,2,3]|[2,4,6]) == [1,2,3,4,6])</div><div class='add'>+</div><div class='add'>+# compact</div><div class='add'>+$x = [nil, 1, nil, nil, 5, nil, nil]</div><div class='add'>+$x.compact!</div><div class='add'>+test_ok($x == [1, 5])</div><div class='add'>+</div><div class='add'>+# uniq</div><div class='add'>+$x = [1, 1, 4, 2, 5, 4, 5, 1, 2]</div><div class='add'>+$x.uniq!</div><div class='add'>+test_ok($x == [1, 4, 2, 5])</div><div class='add'>+</div><div class='add'>+# empty?</div><div class='add'>+test_ok(!$x.empty?)</div><div class='add'>+$x = []</div><div class='add'>+test_ok($x.empty?)</div><div class='add'>+</div><div class='add'>+# sort</div><div class='add'>+$x = ["it", "came", "to", "pass", "that", "..."]</div><div class='add'>+$x = $x.sort.join(" ")</div><div class='add'>+test_ok($x == "... came it pass that to")</div><div class='add'>+$x = [2,5,3,1,7]</div><div class='add'>+$x.sort!{|a,b| a&lt;=&gt;b}		# sort with condition</div><div class='add'>+test_ok($x == [1,2,3,5,7])</div><div class='add'>+$x.sort!{|a,b| b-a}		# reverse sort</div><div class='add'>+test_ok($x == [7,5,3,2,1])</div><div class='add'>+</div><div class='add'>+# split test</div><div class='add'>+$x = "The Book of Mormon"</div><div class='add'>+test_ok($x.split(//).reverse!.join == $x.reverse)</div><div class='add'>+test_ok($x.reverse == $x.reverse!)</div><div class='add'>+test_ok("1 byte string".split(//).reverse.join(":") == "g:n:i:r:t:s: :e:t:y:b: :1")</div><div class='add'>+$x = "a b c  d"</div><div class='add'>+test_ok($x.split == ['a', 'b', 'c', 'd'])</div><div class='add'>+test_ok($x.split(' ') == ['a', 'b', 'c', 'd'])</div><div class='add'>+test_ok(defined? "a".chomp)</div><div class='add'>+test_ok("abc".scan(/./) == ["a", "b", "c"])</div><div class='add'>+test_ok("1a2b3c".scan(/(\d.)/) == [["1a"], ["2b"], ["3c"]])</div><div class='add'>+# non-greedy match</div><div class='add'>+test_ok("a=12;b=22".scan(/(.*?)=(\d*);?/) == [["a", "12"], ["b", "22"]])</div><div class='add'>+</div><div class='add'>+$x = [1]</div><div class='add'>+test_ok(($x * 5).join(":") == '1:1:1:1:1')</div><div class='add'>+test_ok(($x * 1).join(":") == '1')</div><div class='add'>+test_ok(($x * 0).join(":") == '')</div><div class='add'>+</div><div class='add'>+*$x = *(1..7).to_a</div><div class='add'>+test_ok($x.size == 7)</div><div class='add'>+test_ok($x == [1, 2, 3, 4, 5, 6, 7])</div><div class='add'>+</div><div class='add'>+$x = [1,2,3]</div><div class='add'>+$x[1,0] = $x</div><div class='add'>+test_ok($x == [1,1,2,3,2,3])</div><div class='add'>+</div><div class='add'>+$x = [1,2,3]</div><div class='add'>+$x[-1,0] = $x</div><div class='add'>+test_ok($x == [1,2,1,2,3,3])</div><div class='add'>+</div><div class='add'>+$x = [1,2,3]</div><div class='add'>+$x.concat($x)</div><div class='add'>+test_ok($x == [1,2,3,1,2,3])</div><div class='add'>+</div><div class='add'>+test_check "hash"</div><div class='add'>+$x = {1=&gt;2, 2=&gt;4, 3=&gt;6}</div><div class='add'>+</div><div class='add'>+test_ok($x[1] == 2)</div><div class='add'>+</div><div class='add'>+test_ok(begin</div><div class='add'>+     for k,v in $x</div><div class='add'>+       raise if k*2 != v</div><div class='add'>+     end</div><div class='add'>+     true</div><div class='add'>+   rescue</div><div class='add'>+     false</div><div class='add'>+   end)</div><div class='add'>+</div><div class='add'>+test_ok($x.length == 3)</div><div class='add'>+test_ok($x.has_key?(1))</div><div class='add'>+test_ok($x.has_value?(4))</div><div class='add'>+test_ok($x.values_at(2,3) == [4,6])</div><div class='add'>+test_ok($x == {1=&gt;2, 2=&gt;4, 3=&gt;6})</div><div class='add'>+</div><div class='add'>+$z = $x.keys.sort.join(":")</div><div class='add'>+test_ok($z == "1:2:3")</div><div class='add'>+</div><div class='add'>+$z = $x.values.sort.join(":")</div><div class='add'>+test_ok($z == "2:4:6")</div><div class='add'>+test_ok($x == $x)</div><div class='add'>+</div><div class='add'>+$x.shift</div><div class='add'>+test_ok($x.length == 2)</div><div class='add'>+</div><div class='add'>+$z = [1,2]</div><div class='add'>+$x[$z] = 256</div><div class='add'>+test_ok($x[$z] == 256)</div><div class='add'>+</div><div class='add'>+$x = Hash.new(0)</div><div class='add'>+$x[1] = 1</div><div class='add'>+test_ok($x[1] == 1)</div><div class='add'>+test_ok($x[2] == 0)</div><div class='add'>+</div><div class='add'>+$x = Hash.new([])</div><div class='add'>+test_ok($x[22] == [])</div><div class='add'>+test_ok($x[22].equal?($x[22]))</div><div class='add'>+</div><div class='add'>+$x = Hash.new{[]}</div><div class='add'>+test_ok($x[22] == [])</div><div class='add'>+test_ok(!$x[22].equal?($x[22]))</div><div class='add'>+</div><div class='add'>+$x = Hash.new{|h,k| $z = k; h[k] = k*2}</div><div class='add'>+$z = 0</div><div class='add'>+test_ok($x[22] == 44)</div><div class='add'>+test_ok($z == 22)</div><div class='add'>+$z = 0</div><div class='add'>+test_ok($x[22] == 44)</div><div class='add'>+test_ok($z == 0)</div><div class='add'>+$x.default = 5</div><div class='add'>+test_ok($x[23] == 5)</div><div class='add'>+</div><div class='add'>+$x = Hash.new</div><div class='add'>+def $x.default(k)</div><div class='add'>+  $z = k</div><div class='add'>+  self[k] = k*2</div><div class='add'>+end</div><div class='add'>+$z = 0</div><div class='add'>+test_ok($x[22] == 44)</div><div class='add'>+test_ok($z == 22)</div><div class='add'>+$z = 0</div><div class='add'>+test_ok($x[22] == 44)</div><div class='add'>+test_ok($z == 0)</div><div class='add'>+</div><div class='add'>+test_check "iterator"</div><div class='add'>+</div><div class='add'>+test_ok(!iterator?)</div><div class='add'>+</div><div class='add'>+def ttt</div><div class='add'>+  test_ok(iterator?)</div><div class='add'>+end</div><div class='add'>+ttt{}</div><div class='add'>+</div><div class='add'>+# yield at top level</div><div class='add'>+test_ok(!defined?(yield))</div><div class='add'>+</div><div class='add'>+$x = [1, 2, 3, 4]</div><div class='add'>+$y = []</div><div class='add'>+</div><div class='add'>+# iterator over array</div><div class='add'>+for i in $x</div><div class='add'>+  $y.push i</div><div class='add'>+end</div><div class='add'>+test_ok($x == $y)</div><div class='add'>+</div><div class='add'>+# nested iterator</div><div class='add'>+def tt</div><div class='add'>+  1.upto(10) {|i|</div><div class='add'>+    yield i</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i=0</div><div class='add'>+tt{|i| break if i == 5}</div><div class='add'>+test_ok(i == 0)</div><div class='add'>+</div><div class='add'>+def tt2(dummy)</div><div class='add'>+  yield 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def tt3(&amp;block)</div><div class='add'>+  tt2(raise(ArgumentError,""),&amp;block)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$x = false</div><div class='add'>+begin</div><div class='add'>+  tt3{}</div><div class='add'>+rescue ArgumentError</div><div class='add'>+  $x = true</div><div class='add'>+rescue Exception</div><div class='add'>+end</div><div class='add'>+test_ok($x)</div><div class='add'>+</div><div class='add'>+def tt4 &amp;block</div><div class='add'>+  tt2(raise(ArgumentError,""),&amp;block)</div><div class='add'>+end</div><div class='add'>+$x = false</div><div class='add'>+begin</div><div class='add'>+  tt4{}</div><div class='add'>+rescue ArgumentError</div><div class='add'>+  $x = true</div><div class='add'>+rescue Exception</div><div class='add'>+end</div><div class='add'>+test_ok($x)</div><div class='add'>+</div><div class='add'>+# iterator break/redo/next/retry</div><div class='add'>+done = true</div><div class='add'>+loop{</div><div class='add'>+  break</div><div class='add'>+  done = false			# should not reach here</div><div class='add'>+}</div><div class='add'>+test_ok(done)</div><div class='add'>+</div><div class='add'>+done = false</div><div class='add'>+$bad = false</div><div class='add'>+loop {</div><div class='add'>+  break if done</div><div class='add'>+  done = true</div><div class='add'>+  next</div><div class='add'>+  $bad = true			# should not reach here</div><div class='add'>+}</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+done = false</div><div class='add'>+$bad = false</div><div class='add'>+loop {</div><div class='add'>+  break if done</div><div class='add'>+  done = true</div><div class='add'>+  redo</div><div class='add'>+  $bad = true			# should not reach here</div><div class='add'>+}</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+$x = []</div><div class='add'>+for i in 1 .. 7</div><div class='add'>+  $x.push i</div><div class='add'>+end</div><div class='add'>+test_ok($x.size == 7)</div><div class='add'>+test_ok($x == [1, 2, 3, 4, 5, 6, 7])</div><div class='add'>+</div><div class='add'>+# append method to built-in class</div><div class='add'>+class Array</div><div class='add'>+  def iter_test1</div><div class='add'>+    collect{|e| [e, yield(e)]}.sort{|a,b|a[1]&lt;=&gt;b[1]}</div><div class='add'>+  end</div><div class='add'>+  def iter_test2</div><div class='add'>+    a = collect{|e| [e, yield(e)]}</div><div class='add'>+    a.sort{|a,b|a[1]&lt;=&gt;b[1]}</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+$x = [[1,2],[3,4],[5,6]]</div><div class='add'>+test_ok($x.iter_test1{|x|x} == $x.iter_test2{|x|x})</div><div class='add'>+</div><div class='add'>+class IterTest</div><div class='add'>+  def initialize(e); @body = e; end</div><div class='add'>+</div><div class='add'>+  def each0(&amp;block); @body.each(&amp;block); end</div><div class='add'>+  def each1(&amp;block); @body.each {|*x| block.call(*x) } end</div><div class='add'>+  def each2(&amp;block); @body.each {|*x| block.call(x) } end</div><div class='add'>+  def each3(&amp;block); @body.each {|x| block.call(*x) } end</div><div class='add'>+  def each4(&amp;block); @body.each {|x| block.call(x) } end</div><div class='add'>+  def each5; @body.each {|*x| yield(*x) } end</div><div class='add'>+  def each6; @body.each {|*x| yield(x) } end</div><div class='add'>+  def each7; @body.each {|x| yield(*x) } end</div><div class='add'>+  def each8; @body.each {|x| yield(x) } end</div><div class='add'>+</div><div class='add'>+  def f(a)</div><div class='add'>+    a</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(IterTest.new(nil).method(:f).to_proc.call([1]) == [1])</div><div class='add'>+m = /\w+/.match("abc")</div><div class='add'>+test_ok(IterTest.new(nil).method(:f).to_proc.call([m]) == [m])</div><div class='add'>+</div><div class='add'>+IterTest.new([0]).each0 {|x| test_ok(x == 0)}</div><div class='add'>+IterTest.new([1]).each1 {|x| test_ok(x == 1)}</div><div class='add'>+IterTest.new([2]).each2 {|x| test_ok(x == [2])}</div><div class='add'>+#IterTest.new([3]).each3 {|x| test_ok(x == 3)}</div><div class='add'>+IterTest.new([4]).each4 {|x| test_ok(x == 4)}</div><div class='add'>+IterTest.new([5]).each5 {|x| test_ok(x == 5)}</div><div class='add'>+IterTest.new([6]).each6 {|x| test_ok(x == [6])}</div><div class='add'>+#IterTest.new([7]).each7 {|x| test_ok(x == 7)}</div><div class='add'>+IterTest.new([8]).each8 {|x| test_ok(x == 8)}</div><div class='add'>+</div><div class='add'>+IterTest.new([[0]]).each0 {|x| test_ok(x == [0])}</div><div class='add'>+IterTest.new([[1]]).each1 {|x| test_ok(x == [1])}</div><div class='add'>+IterTest.new([[2]]).each2 {|x| test_ok(x == [[2]])}</div><div class='add'>+IterTest.new([[3]]).each3 {|x| test_ok(x == 3)}</div><div class='add'>+IterTest.new([[4]]).each4 {|x| test_ok(x == [4])}</div><div class='add'>+IterTest.new([[5]]).each5 {|x| test_ok(x == [5])}</div><div class='add'>+IterTest.new([[6]]).each6 {|x| test_ok(x == [[6]])}</div><div class='add'>+IterTest.new([[7]]).each7 {|x| test_ok(x == 7)}</div><div class='add'>+IterTest.new([[8]]).each8 {|x| test_ok(x == [8])}</div><div class='add'>+</div><div class='add'>+IterTest.new([[0,0]]).each0 {|*x| test_ok(x == [[0,0]])}</div><div class='add'>+IterTest.new([[8,8]]).each8 {|*x| test_ok(x == [[8,8]])}</div><div class='add'>+</div><div class='add'>+def m0(v)</div><div class='add'>+  v</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def m1</div><div class='add'>+  m0(block_given?)</div><div class='add'>+end</div><div class='add'>+test_ok(m1{p 'test'})</div><div class='add'>+test_ok(!m1)</div><div class='add'>+</div><div class='add'>+def m</div><div class='add'>+  m0(block_given?,&amp;Proc.new{})</div><div class='add'>+end</div><div class='add'>+test_ok(m1{p 'test'})</div><div class='add'>+test_ok(!m1)</div><div class='add'>+</div><div class='add'>+class C</div><div class='add'>+  include Enumerable</div><div class='add'>+  def initialize</div><div class='add'>+    @a = [1,2,3]</div><div class='add'>+  end</div><div class='add'>+  def each(&amp;block)</div><div class='add'>+    @a.each(&amp;block)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(C.new.collect{|n| n} == [1,2,3])</div><div class='add'>+</div><div class='add'>+test_ok(Proc == lambda{}.class)</div><div class='add'>+test_ok(Proc == Proc.new{}.class)</div><div class='add'>+lambda{|a|test_ok(a==1)}.call(1)</div><div class='add'>+def block_test(klass, &amp;block)</div><div class='add'>+  test_ok(klass === block)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+block_test(NilClass)</div><div class='add'>+block_test(Proc){}</div><div class='add'>+</div><div class='add'>+def call_argument_test(state, proc, *args)</div><div class='add'>+  x = state</div><div class='add'>+  begin</div><div class='add'>+    proc.call(*args)</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    x = !x</div><div class='add'>+  end</div><div class='add'>+  test_ok(x,2)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+call_argument_test(true, lambda{||})</div><div class='add'>+call_argument_test(false, lambda{||}, 1)</div><div class='add'>+call_argument_test(true, lambda{|a,|}, 1)</div><div class='add'>+call_argument_test(false, lambda{|a,|})</div><div class='add'>+call_argument_test(false, lambda{|a,|}, 1,2)</div><div class='add'>+</div><div class='add'>+call_argument_test(true, Proc.new{||})</div><div class='add'>+call_argument_test(true, Proc.new{||}, 1)</div><div class='add'>+call_argument_test(true, Proc.new{|a,|}, 1)</div><div class='add'>+call_argument_test(true, Proc.new{|a,|})</div><div class='add'>+call_argument_test(true, Proc.new{|a,|}, 1,2)</div><div class='add'>+</div><div class='add'>+def block_get(&amp;block)</div><div class='add'>+  block</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(Proc == block_get{}.class)</div><div class='add'>+call_argument_test(true, block_get{||})</div><div class='add'>+call_argument_test(true, block_get{||}, 1)</div><div class='add'>+call_argument_test(true, block_get{|a,|}, 1)</div><div class='add'>+call_argument_test(true, block_get{|a,|})</div><div class='add'>+call_argument_test(true, block_get{|a,|}, 1,2)</div><div class='add'>+</div><div class='add'>+call_argument_test(true, block_get(&amp;lambda{||}))</div><div class='add'>+call_argument_test(false, block_get(&amp;lambda{||}),1)</div><div class='add'>+call_argument_test(true, block_get(&amp;lambda{|a,|}),1)</div><div class='add'>+call_argument_test(false, block_get(&amp;lambda{|a,|}),1,2)</div><div class='add'>+</div><div class='add'>+blk = block_get{11}</div><div class='add'>+test_ok(blk.class == Proc)</div><div class='add'>+test_ok(blk.to_proc.class == Proc)</div><div class='add'>+test_ok(blk.clone.call == 11)</div><div class='add'>+test_ok(block_get(&amp;blk).class == Proc)</div><div class='add'>+</div><div class='add'>+lmd = lambda{44}</div><div class='add'>+test_ok(lmd.class == Proc)</div><div class='add'>+test_ok(lmd.to_proc.class == Proc)</div><div class='add'>+test_ok(lmd.clone.call == 44)</div><div class='add'>+test_ok(block_get(&amp;lmd).class == Proc)</div><div class='add'>+</div><div class='add'>+test_ok(Proc.new{|a,| a}.yield(1,2,3) == 1)</div><div class='add'>+call_argument_test(true, Proc.new{|a,|}, 1,2)</div><div class='add'>+</div><div class='add'>+test_ok(Proc.new{|&amp;b| b.call(10)}.call {|x| x} == 10)</div><div class='add'>+test_ok(Proc.new{|a,&amp;b| b.call(a)}.call(12) {|x| x} == 12)</div><div class='add'>+</div><div class='add'>+def test_return1</div><div class='add'>+  Proc.new {</div><div class='add'>+    return 55</div><div class='add'>+  }.yield + 5</div><div class='add'>+end</div><div class='add'>+test_ok(test_return1() == 55)</div><div class='add'>+def test_return2</div><div class='add'>+  lambda {</div><div class='add'>+    return 55</div><div class='add'>+  }.call + 5</div><div class='add'>+end</div><div class='add'>+test_ok(test_return2() == 60)</div><div class='add'>+</div><div class='add'>+def proc_call(&amp;b)</div><div class='add'>+  b.call</div><div class='add'>+end</div><div class='add'>+def proc_yield()</div><div class='add'>+  yield</div><div class='add'>+end</div><div class='add'>+def proc_return1</div><div class='add'>+  lambda{return 42}.call+1</div><div class='add'>+end</div><div class='add'>+test_ok(proc_return1() == 43)</div><div class='add'>+def proc_return2</div><div class='add'>+  -&gt;{return 42}.call+1</div><div class='add'>+end</div><div class='add'>+test_ok(proc_return2() == 43)</div><div class='add'>+def proc_return3</div><div class='add'>+  proc_call{return 42}+1</div><div class='add'>+end</div><div class='add'>+test_ok(proc_return3() == 42)</div><div class='add'>+def proc_return4</div><div class='add'>+  proc_yield{return 42}+1</div><div class='add'>+end</div><div class='add'>+test_ok(proc_return4() == 42)</div><div class='add'>+</div><div class='add'>+def ljump_test(state, proc, *args)</div><div class='add'>+  x = state</div><div class='add'>+  begin</div><div class='add'>+    proc.call(*args)</div><div class='add'>+  rescue LocalJumpError</div><div class='add'>+    x = !x</div><div class='add'>+  end</div><div class='add'>+  test_ok(x,2)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ljump_test(false, block_get{break})</div><div class='add'>+ljump_test(true, lambda{break})</div><div class='add'>+</div><div class='add'>+def exit_value_test(&amp;block)</div><div class='add'>+  block.call</div><div class='add'>+rescue LocalJumpError</div><div class='add'>+  $!.exit_value</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(45 == exit_value_test{break 45})</div><div class='add'>+</div><div class='add'>+test_ok(55 == begin</div><div class='add'>+              block_get{break 55}.call</div><div class='add'>+            rescue LocalJumpError</div><div class='add'>+              $!.exit_value</div><div class='add'>+            end)</div><div class='add'>+</div><div class='add'>+def block_call(&amp;block)</div><div class='add'>+  block.call</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b1</div><div class='add'>+  block_call{break 11}</div><div class='add'>+end</div><div class='add'>+test_ok(test_b1() == 11)</div><div class='add'>+</div><div class='add'>+def ljump_rescue(r)</div><div class='add'>+  begin</div><div class='add'>+    yield</div><div class='add'>+  rescue LocalJumpError =&gt; e</div><div class='add'>+    r if /from proc-closure/ =~ e.message</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b2</div><div class='add'>+  ljump_rescue(22) do</div><div class='add'>+    block_get{break 21}.call</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b2() == 22)</div><div class='add'>+</div><div class='add'>+def test_b3</div><div class='add'>+  ljump_rescue(33) do</div><div class='add'>+    Proc.new{break 31}.yield</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b3() == 33)</div><div class='add'>+</div><div class='add'>+def test_b4</div><div class='add'>+  lambda{break 44}.call</div><div class='add'>+end</div><div class='add'>+test_ok(test_b4() == 44)</div><div class='add'>+</div><div class='add'>+def test_b5</div><div class='add'>+  ljump_rescue(55) do</div><div class='add'>+    b = block_get{break 54}</div><div class='add'>+    block_call(&amp;b)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b5() == 55)</div><div class='add'>+</div><div class='add'>+def test_b6</div><div class='add'>+  b = lambda{break 67}</div><div class='add'>+  block_call(&amp;b)</div><div class='add'>+  66</div><div class='add'>+end</div><div class='add'>+test_ok(test_b6() == 66)</div><div class='add'>+</div><div class='add'>+def util_r7</div><div class='add'>+  block_get{break 78}</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b7</div><div class='add'>+  b = util_r7()</div><div class='add'>+  ljump_rescue(77) do</div><div class='add'>+    block_call(&amp;b)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b7() == 77)</div><div class='add'>+</div><div class='add'>+def util_b8(&amp;block)</div><div class='add'>+  block_call(&amp;block)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b8</div><div class='add'>+  util_b8{break 88}</div><div class='add'>+end</div><div class='add'>+test_ok(test_b8() == 88)</div><div class='add'>+</div><div class='add'>+def util_b9(&amp;block)</div><div class='add'>+  lambda{block.call; 98}.call</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b9</div><div class='add'>+  util_b9{break 99}</div><div class='add'>+end</div><div class='add'>+test_ok(test_b9() == 99)</div><div class='add'>+</div><div class='add'>+def util_b10</div><div class='add'>+  util_b9{break 100}</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def test_b10</div><div class='add'>+  util_b10()</div><div class='add'>+end</div><div class='add'>+test_ok(test_b10() == 100)</div><div class='add'>+</div><div class='add'>+def test_b11</div><div class='add'>+  ljump_rescue(111) do</div><div class='add'>+    loop do</div><div class='add'>+      Proc.new{break 110}.yield</div><div class='add'>+      break 112</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b11() == 111)</div><div class='add'>+</div><div class='add'>+def test_b12</div><div class='add'>+  loop do</div><div class='add'>+    break lambda{break 122}.call</div><div class='add'>+    break 121</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b12() == 122)</div><div class='add'>+</div><div class='add'>+def test_b13</div><div class='add'>+  ljump_rescue(133) do</div><div class='add'>+    while true</div><div class='add'>+      Proc.new{break 130}.yield</div><div class='add'>+      break 131</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b13() == 133)</div><div class='add'>+</div><div class='add'>+def test_b14</div><div class='add'>+  while true</div><div class='add'>+    break lambda{break 144}.call</div><div class='add'>+    break 143</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok(test_b14() == 144)</div><div class='add'>+</div><div class='add'>+def test_b15</div><div class='add'>+  [0].each {|c| yield 1 }</div><div class='add'>+  156</div><div class='add'>+end</div><div class='add'>+test_ok(test_b15{|e| break 155 } == 155)</div><div class='add'>+</div><div class='add'>+def marity_test(m)</div><div class='add'>+  method = method(m)</div><div class='add'>+  test_ok(method.arity == method.to_proc.arity, 2)</div><div class='add'>+end</div><div class='add'>+marity_test(:test_ok)</div><div class='add'>+marity_test(:marity_test)</div><div class='add'>+marity_test(:p)</div><div class='add'>+</div><div class='add'>+lambda(&amp;method(:test_ok)).call(true)</div><div class='add'>+lambda(&amp;block_get{|a,n| test_ok(a,n)}).call(true, 2)</div><div class='add'>+</div><div class='add'>+class ITER_TEST1</div><div class='add'>+   def a</div><div class='add'>+     block_given?</div><div class='add'>+   end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class ITER_TEST2 &lt; ITER_TEST1</div><div class='add'>+   def a</div><div class='add'>+     test_ok(super)</div><div class='add'>+     super</div><div class='add'>+   end</div><div class='add'>+end</div><div class='add'>+test_ok(ITER_TEST2.new.a {})</div><div class='add'>+</div><div class='add'>+class ITER_TEST3</div><div class='add'>+  def foo x</div><div class='add'>+    return yield if block_given?</div><div class='add'>+    x</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class ITER_TEST4 &lt; ITER_TEST3</div><div class='add'>+  def foo x</div><div class='add'>+    test_ok(super == yield)</div><div class='add'>+    test_ok(super(x, &amp;nil) == x)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ITER_TEST4.new.foo(44){55}</div><div class='add'>+</div><div class='add'>+class ITER_TEST5</div><div class='add'>+   def tt(aa)</div><div class='add'>+     aa</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+   def uu(a)</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+         define_method(:tt) do |sym|</div><div class='add'>+            super(sym)</div><div class='add'>+         end</div><div class='add'>+      end</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+   def xx(*x)</div><div class='add'>+     x.size</div><div class='add'>+   end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+a = ITER_TEST5.new</div><div class='add'>+a.uu(12)</div><div class='add'>+test_ok(a.tt(1) == 1)</div><div class='add'>+</div><div class='add'>+class ITER_TEST6 &lt; ITER_TEST5</div><div class='add'>+   def xx(*a)</div><div class='add'>+      a &lt;&lt; 12</div><div class='add'>+      super</div><div class='add'>+   end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(ITER_TEST6.new.xx([24]) == 2)</div><div class='add'>+</div><div class='add'>+test_check "float"</div><div class='add'>+test_ok(2.6.floor == 2)</div><div class='add'>+test_ok((-2.6).floor == -3)</div><div class='add'>+test_ok(2.6.ceil == 3)</div><div class='add'>+test_ok((-2.6).ceil == -2)</div><div class='add'>+test_ok(2.6.truncate == 2)</div><div class='add'>+test_ok((-2.6).truncate == -2)</div><div class='add'>+test_ok(2.6.round == 3)</div><div class='add'>+test_ok((-2.4).truncate == -2)</div><div class='add'>+test_ok((13.4 % 1 - 0.4).abs &lt; 0.0001)</div><div class='add'>+nan = 0.0/0</div><div class='add'>+def nan_test(x,y)</div><div class='add'>+  test_ok(x != y)</div><div class='add'>+  test_ok((x &lt; y) == false)</div><div class='add'>+  test_ok((x &gt; y) == false)</div><div class='add'>+  test_ok((x &lt;= y) == false)</div><div class='add'>+  test_ok((x &gt;= y) == false)</div><div class='add'>+end</div><div class='add'>+nan_test(nan, nan)</div><div class='add'>+nan_test(nan, 0)</div><div class='add'>+nan_test(nan, 1)</div><div class='add'>+nan_test(nan, -1)</div><div class='add'>+nan_test(nan, 1000)</div><div class='add'>+nan_test(nan, -1000)</div><div class='add'>+nan_test(nan, 1_000_000_000_000)</div><div class='add'>+nan_test(nan, -1_000_000_000_000)</div><div class='add'>+nan_test(nan, 100.0);</div><div class='add'>+nan_test(nan, -100.0);</div><div class='add'>+nan_test(nan, 0.001);</div><div class='add'>+nan_test(nan, -0.001);</div><div class='add'>+nan_test(nan, 1.0/0);</div><div class='add'>+nan_test(nan, -1.0/0);</div><div class='add'>+</div><div class='add'>+#s = "3.7517675036461267e+17"</div><div class='add'>+#test_ok(s == sprintf("%.16e", s.to_f))</div><div class='add'>+f = 3.7517675036461267e+17</div><div class='add'>+test_ok(f == sprintf("%.16e", f).to_f)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+test_check "bignum"</div><div class='add'>+def fact(n)</div><div class='add'>+  return 1 if n == 0</div><div class='add'>+  f = 1</div><div class='add'>+  while n&gt;0</div><div class='add'>+    f *= n</div><div class='add'>+    n -= 1</div><div class='add'>+  end</div><div class='add'>+  return f</div><div class='add'>+end</div><div class='add'>+$x = fact(40)</div><div class='add'>+test_ok($x == $x)</div><div class='add'>+test_ok($x == fact(40))</div><div class='add'>+test_ok($x &lt; $x+2)</div><div class='add'>+test_ok($x &gt; $x-2)</div><div class='add'>+test_ok($x == 815915283247897734345611269596115894272000000000)</div><div class='add'>+test_ok($x != 815915283247897734345611269596115894272000000001)</div><div class='add'>+test_ok($x+1 == 815915283247897734345611269596115894272000000001)</div><div class='add'>+test_ok($x/fact(20) == 335367096786357081410764800000)</div><div class='add'>+$x = -$x</div><div class='add'>+test_ok($x == -815915283247897734345611269596115894272000000000)</div><div class='add'>+test_ok(2-(2**32) == -(2**32-2))</div><div class='add'>+test_ok(2**32 - 5 == (2**32-3)-2)</div><div class='add'>+</div><div class='add'>+$good = true;</div><div class='add'>+for i in 1000..1014</div><div class='add'>+  $good = false if ((1 &lt;&lt; i) != (2**i))</div><div class='add'>+end</div><div class='add'>+test_ok($good)</div><div class='add'>+</div><div class='add'>+$good = true;</div><div class='add'>+n1= 1 &lt;&lt; 1000</div><div class='add'>+for i in 1000..1014</div><div class='add'>+  $good = false if ((1 &lt;&lt; i) != n1)</div><div class='add'>+  n1 *= 2</div><div class='add'>+end</div><div class='add'>+test_ok($good)</div><div class='add'>+</div><div class='add'>+$good = true;</div><div class='add'>+n2=n1</div><div class='add'>+for i in 1..10</div><div class='add'>+  n1 = n1 / 2</div><div class='add'>+  n2 = n2 &gt;&gt; 1</div><div class='add'>+  $good = false if (n1 != n2)</div><div class='add'>+end</div><div class='add'>+test_ok($good)</div><div class='add'>+</div><div class='add'>+$good = true;</div><div class='add'>+for i in 4000..4096</div><div class='add'>+  n1 = 1 &lt;&lt; i;</div><div class='add'>+  if (n1**2-1) / (n1+1) != (n1-1)</div><div class='add'>+    $good = false</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+test_ok($good)</div><div class='add'>+</div><div class='add'>+b = 10**80</div><div class='add'>+a = b * 9 + 7</div><div class='add'>+test_ok(7 == a.modulo(b))</div><div class='add'>+test_ok(-b + 7 == a.modulo(-b))</div><div class='add'>+test_ok(b + -7 == (-a).modulo(b))</div><div class='add'>+test_ok(-7 == (-a).modulo(-b))</div><div class='add'>+test_ok(7 == a.remainder(b))</div><div class='add'>+test_ok(7 == a.remainder(-b))</div><div class='add'>+test_ok(-7 == (-a).remainder(b))</div><div class='add'>+test_ok(-7 == (-a).remainder(-b))</div><div class='add'>+</div><div class='add'>+test_ok(10**40+10**20 == 10000000000000000000100000000000000000000)</div><div class='add'>+test_ok(10**40/10**20 == 100000000000000000000)</div><div class='add'>+</div><div class='add'>+a = 677330545177305025495135714080</div><div class='add'>+b = 14269972710765292560</div><div class='add'>+test_ok(a % b == 0)</div><div class='add'>+test_ok(-a % b == 0)</div><div class='add'>+</div><div class='add'>+def shift_test(a)</div><div class='add'>+  b = a / (2 ** 32)</div><div class='add'>+  c = a &gt;&gt; 32</div><div class='add'>+  test_ok(b == c)</div><div class='add'>+</div><div class='add'>+  b = a * (2 ** 32)</div><div class='add'>+  c = a &lt;&lt; 32</div><div class='add'>+  test_ok(b == c)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+shift_test(-4518325415524767873)</div><div class='add'>+shift_test(-0xfffffffffffffffff)</div><div class='add'>+</div><div class='add'>+test_check "string &amp; char"</div><div class='add'>+</div><div class='add'>+test_ok("abcd" == "abcd")</div><div class='add'>+test_ok("abcd" =~ /abcd/)</div><div class='add'>+test_ok("abcd" === "abcd")</div><div class='add'>+# compile time string concatenation</div><div class='add'>+test_ok("ab" "cd" == "abcd")</div><div class='add'>+test_ok("#{22}aa" "cd#{44}" == "22aacd44")</div><div class='add'>+test_ok("#{22}aa" "cd#{44}" "55" "#{66}" == "22aacd445566")</div><div class='add'>+test_ok("abc" !~ /^$/)</div><div class='add'>+test_ok("abc\n" !~ /^$/)</div><div class='add'>+test_ok("abc" !~ /^d*$/)</div><div class='add'>+test_ok(("abc" =~ /d*$/) == 3)</div><div class='add'>+test_ok("" =~ /^$/)</div><div class='add'>+test_ok("\n" =~ /^$/)</div><div class='add'>+test_ok("a\n\n" =~ /^$/)</div><div class='add'>+test_ok("abcabc" =~ /.*a/ &amp;&amp; $&amp; == "abca")</div><div class='add'>+test_ok("abcabc" =~ /.*c/ &amp;&amp; $&amp; == "abcabc")</div><div class='add'>+test_ok("abcabc" =~ /.*?a/ &amp;&amp; $&amp; == "a")</div><div class='add'>+test_ok("abcabc" =~ /.*?c/ &amp;&amp; $&amp; == "abc")</div><div class='add'>+test_ok(/(.|\n)*?\n(b|\n)/ =~ "a\nb\n\n" &amp;&amp; $&amp; == "a\nb")</div><div class='add'>+</div><div class='add'>+test_ok(/^(ab+)+b/ =~ "ababb" &amp;&amp; $&amp; == "ababb")</div><div class='add'>+test_ok(/^(?:ab+)+b/ =~ "ababb" &amp;&amp; $&amp; == "ababb")</div><div class='add'>+test_ok(/^(ab+)+/ =~ "ababb" &amp;&amp; $&amp; == "ababb")</div><div class='add'>+test_ok(/^(?:ab+)+/ =~ "ababb" &amp;&amp; $&amp; == "ababb")</div><div class='add'>+</div><div class='add'>+test_ok(/(\s+\d+){2}/ =~ " 1 2" &amp;&amp; $&amp; == " 1 2")</div><div class='add'>+test_ok(/(?:\s+\d+){2}/ =~ " 1 2" &amp;&amp; $&amp; == " 1 2")</div><div class='add'>+</div><div class='add'>+$x = &lt;&lt;END;</div><div class='add'>+ABCD</div><div class='add'>+ABCD</div><div class='add'>+END</div><div class='add'>+$x.gsub!(/((.|\n)*?)B((.|\n)*?)D/, '\1\3')</div><div class='add'>+test_ok($x == "AC\nAC\n")</div><div class='add'>+</div><div class='add'>+test_ok("foobar" =~ /foo(?=(bar)|(baz))/)</div><div class='add'>+test_ok("foobaz" =~ /foo(?=(bar)|(baz))/)</div><div class='add'>+</div><div class='add'>+$foo = "abc"</div><div class='add'>+test_ok("#$foo = abc" == "abc = abc")</div><div class='add'>+test_ok("#{$foo} = abc" == "abc = abc")</div><div class='add'>+</div><div class='add'>+foo = "abc"</div><div class='add'>+test_ok("#{foo} = abc" == "abc = abc")</div><div class='add'>+</div><div class='add'>+test_ok('-' * 5 == '-----')</div><div class='add'>+test_ok('-' * 1 == '-')</div><div class='add'>+test_ok('-' * 0 == '')</div><div class='add'>+</div><div class='add'>+foo = '-'</div><div class='add'>+test_ok(foo * 5 == '-----')</div><div class='add'>+test_ok(foo * 1 == '-')</div><div class='add'>+test_ok(foo * 0 == '')</div><div class='add'>+</div><div class='add'>+$x = "a.gif"</div><div class='add'>+test_ok($x.sub(/.*\.([^\.]+)$/, '\1') == "gif")</div><div class='add'>+test_ok($x.sub(/.*\.([^\.]+)$/, 'b.\1') == "b.gif")</div><div class='add'>+test_ok($x.sub(/.*\.([^\.]+)$/, '\2') == "")</div><div class='add'>+test_ok($x.sub(/.*\.([^\.]+)$/, 'a\2b') == "ab")</div><div class='add'>+test_ok($x.sub(/.*\.([^\.]+)$/, '&lt;\&amp;&gt;') == "&lt;a.gif&gt;")</div><div class='add'>+</div><div class='add'>+# character constants(assumes ASCII)</div><div class='add'>+test_ok("a"[0] == ?a)</div><div class='add'>+test_ok(?a == ?a)</div><div class='add'>+test_ok(?\C-a == "\1")</div><div class='add'>+test_ok(?\M-a == "\341")</div><div class='add'>+test_ok(?\M-\C-a == "\201")</div><div class='add'>+test_ok("a".upcase![0] == ?A)</div><div class='add'>+test_ok("A".downcase![0] == ?a)</div><div class='add'>+test_ok("abc".tr!("a-z", "A-Z") == "ABC")</div><div class='add'>+test_ok("aabbcccc".tr_s!("a-z", "A-Z") == "ABC")</div><div class='add'>+test_ok("abcc".squeeze!("a-z") == "abc")</div><div class='add'>+test_ok("abcd".delete!("bc") == "ad")</div><div class='add'>+</div><div class='add'>+$x = "abcdef"</div><div class='add'>+$y = [ ?a, ?b, ?c, ?d, ?e, ?f ]</div><div class='add'>+$bad = false</div><div class='add'>+$x.each_byte {|i|</div><div class='add'>+  if i.chr != $y.shift</div><div class='add'>+    $bad = true</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+s = "a string"</div><div class='add'>+s[0..s.size]="another string"</div><div class='add'>+test_ok(s == "another string")</div><div class='add'>+</div><div class='add'>+s = &lt;&lt;EOS</div><div class='add'>+#{</div><div class='add'>+[1,2,3].join(",")</div><div class='add'>+}</div><div class='add'>+EOS</div><div class='add'>+test_ok(s == "1,2,3\n")</div><div class='add'>+test_ok("Just".to_i(36) == 926381)</div><div class='add'>+test_ok("-another".to_i(36) == -23200231779)</div><div class='add'>+test_ok(1299022.to_s(36) == "ruby")</div><div class='add'>+test_ok(-1045307475.to_s(36) == "-hacker")</div><div class='add'>+test_ok("Just_another_Ruby_hacker".to_i(36) == 265419172580680477752431643787347)</div><div class='add'>+test_ok(-265419172580680477752431643787347.to_s(36) == "-justanotherrubyhacker")</div><div class='add'>+</div><div class='add'>+a = []</div><div class='add'>+(0..255).each {|n|</div><div class='add'>+  ch = [n].pack("C")</div><div class='add'>+  a.push ch if /a#{Regexp.quote ch}b/x =~ "ab"</div><div class='add'>+}</div><div class='add'>+test_ok(a.size == 0)</div><div class='add'>+</div><div class='add'>+test_check "assignment"</div><div class='add'>+a = nil</div><div class='add'>+test_ok(defined?(a))</div><div class='add'>+test_ok(a == nil)</div><div class='add'>+</div><div class='add'>+# multiple asignment</div><div class='add'>+a, b = 1, 2</div><div class='add'>+test_ok(a == 1 &amp;&amp; b == 2)</div><div class='add'>+</div><div class='add'>+a, b = b, a</div><div class='add'>+test_ok(a == 2 &amp;&amp; b == 1)</div><div class='add'>+</div><div class='add'>+a, = 1,2</div><div class='add'>+test_ok(a == 1)</div><div class='add'>+</div><div class='add'>+a, *b = 1, 2, 3</div><div class='add'>+test_ok(a == 1 &amp;&amp; b == [2, 3])</div><div class='add'>+</div><div class='add'>+a, (b, c), d = 1, [2, 3], 4</div><div class='add'>+test_ok(a == 1 &amp;&amp; b == 2 &amp;&amp; c == 3 &amp;&amp; d == 4)</div><div class='add'>+</div><div class='add'>+*a = 1, 2, 3</div><div class='add'>+test_ok(a == [1, 2, 3])</div><div class='add'>+</div><div class='add'>+*a = 4</div><div class='add'>+test_ok(a == [4])</div><div class='add'>+</div><div class='add'>+*a = nil</div><div class='add'>+test_ok(a == [nil])</div><div class='add'>+</div><div class='add'>+test_check "call"</div><div class='add'>+def aaa(a, b=100, *rest)</div><div class='add'>+  res = [a, b]</div><div class='add'>+  res += rest if rest</div><div class='add'>+  return res</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# not enough argument</div><div class='add'>+begin</div><div class='add'>+  aaa()				# need at least 1 arg</div><div class='add'>+  test_ok(false)</div><div class='add'>+rescue</div><div class='add'>+  test_ok(true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  aaa				# no arg given (exception raised)</div><div class='add'>+  test_ok(false)</div><div class='add'>+rescue</div><div class='add'>+  test_ok(true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(aaa(1) == [1, 100])</div><div class='add'>+test_ok(aaa(1, 2) == [1, 2])</div><div class='add'>+test_ok(aaa(1, 2, 3, 4) == [1, 2, 3, 4])</div><div class='add'>+test_ok(aaa(1, *[2, 3, 4]) == [1, 2, 3, 4])</div><div class='add'>+</div><div class='add'>+test_check "proc"</div><div class='add'>+$proc = Proc.new{|i| i}</div><div class='add'>+test_ok($proc.call(2) == 2)</div><div class='add'>+test_ok($proc.call(3) == 3)</div><div class='add'>+</div><div class='add'>+$proc = Proc.new{|i| i*2}</div><div class='add'>+test_ok($proc.call(2) == 4)</div><div class='add'>+test_ok($proc.call(3) == 6)</div><div class='add'>+</div><div class='add'>+Proc.new{</div><div class='add'>+  iii=5				# nested local variable</div><div class='add'>+  $proc = Proc.new{|i|</div><div class='add'>+    iii = i</div><div class='add'>+  }</div><div class='add'>+  $proc2 = Proc.new {</div><div class='add'>+    $x = iii			# nested variables shared by procs</div><div class='add'>+  }</div><div class='add'>+  # scope of nested variables</div><div class='add'>+  test_ok(defined?(iii))</div><div class='add'>+}.call</div><div class='add'>+test_ok(!defined?(iii))		# out of scope</div><div class='add'>+</div><div class='add'>+loop{iii=5; test_ok(eval("defined? iii")); break}</div><div class='add'>+loop {</div><div class='add'>+  iii = 10</div><div class='add'>+  def dyna_var_check</div><div class='add'>+    loop {</div><div class='add'>+      test_ok(!defined?(iii))</div><div class='add'>+      break</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+  dyna_var_check</div><div class='add'>+  break</div><div class='add'>+}</div><div class='add'>+$x=0</div><div class='add'>+$proc.call(5)</div><div class='add'>+$proc2.call</div><div class='add'>+test_ok($x == 5)</div><div class='add'>+</div><div class='add'>+if defined? Process.kill</div><div class='add'>+  test_check "signal"</div><div class='add'>+</div><div class='add'>+  $x = 0</div><div class='add'>+  trap "SIGINT", Proc.new{|sig| $x = 2}</div><div class='add'>+  Process.kill "SIGINT", $$</div><div class='add'>+  100.times {</div><div class='add'>+    sleep 0.1</div><div class='add'>+    break if $x != 0</div><div class='add'>+  }</div><div class='add'>+  test_ok($x == 2)</div><div class='add'>+</div><div class='add'>+  trap "SIGINT", Proc.new{raise "Interrupt"}</div><div class='add'>+</div><div class='add'>+  x = false</div><div class='add'>+  begin</div><div class='add'>+    Process.kill "SIGINT", $$</div><div class='add'>+    sleep 0.1</div><div class='add'>+  rescue</div><div class='add'>+    x = $!</div><div class='add'>+  end</div><div class='add'>+  test_ok(x &amp;&amp; /Interrupt/ =~ x.message)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_check "eval"</div><div class='add'>+test_ok(eval("") == nil)</div><div class='add'>+$bad=false</div><div class='add'>+eval 'while false; $bad = true; print "foo\n" end'</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+test_ok(eval('Object'))</div><div class='add'>+test_ok(eval('true'))</div><div class='add'>+test_ok(!eval('nil'))</div><div class='add'>+test_ok(!eval('false'))</div><div class='add'>+</div><div class='add'>+$foo = 'test_ok(true)'</div><div class='add'>+begin</div><div class='add'>+  eval $foo</div><div class='add'>+rescue</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(eval("$foo") == 'test_ok(true)')</div><div class='add'>+test_ok(eval("true") == true)</div><div class='add'>+i = 5</div><div class='add'>+test_ok(eval("i == 5"))</div><div class='add'>+test_ok(eval("i") == 5)</div><div class='add'>+test_ok(eval("defined? i"))</div><div class='add'>+</div><div class='add'>+# eval with binding</div><div class='add'>+def test_ev</div><div class='add'>+  local1 = "local1"</div><div class='add'>+  lambda {</div><div class='add'>+    local2 = "local2"</div><div class='add'>+    return binding</div><div class='add'>+  }.call</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$x = test_ev</div><div class='add'>+test_ok(eval("local1", $x) == "local1") # normal local var</div><div class='add'>+test_ok(eval("local2", $x) == "local2") # nested local var</div><div class='add'>+$bad = true</div><div class='add'>+begin</div><div class='add'>+  p eval("local1")</div><div class='add'>+rescue NameError		# must raise error</div><div class='add'>+  $bad = false</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+module EvTest</div><div class='add'>+  EVTEST1 = 25</div><div class='add'>+  evtest2 = 125</div><div class='add'>+  $x = binding</div><div class='add'>+end</div><div class='add'>+test_ok(eval("EVTEST1", $x) == 25)	# constant in module</div><div class='add'>+test_ok(eval("evtest2", $x) == 125)	# local var in module</div><div class='add'>+$bad = true</div><div class='add'>+begin</div><div class='add'>+  eval("EVTEST1")</div><div class='add'>+rescue NameError		# must raise error</div><div class='add'>+  $bad = false</div><div class='add'>+end</div><div class='add'>+test_ok(!$bad)</div><div class='add'>+</div><div class='add'>+x = binding #! YARV Limitation: Proc.new{}</div><div class='add'>+eval "i4 = 1", x</div><div class='add'>+test_ok(eval("i4", x) == 1)</div><div class='add'>+x = Proc.new{binding}.call #! YARV Limitation: Proc.new{Proc.new{}}.call</div><div class='add'>+eval "i4 = 22", x</div><div class='add'>+test_ok(eval("i4", x) == 22)</div><div class='add'>+$x = []</div><div class='add'>+x = Proc.new{binding}.call #! YARV Limitation: Proc.new{Proc.new{}}.call</div><div class='add'>+eval "(0..9).each{|i5| $x[i5] = Proc.new{i5*2}}", x</div><div class='add'>+test_ok($x[4].call == 8)</div><div class='add'>+</div><div class='add'>+x = binding</div><div class='add'>+eval "i = 1", x</div><div class='add'>+test_ok(eval("i", x) == 1)</div><div class='add'>+x = Proc.new{binding}.call</div><div class='add'>+eval "i = 22", x</div><div class='add'>+test_ok(eval("i", x) == 22)</div><div class='add'>+$x = []</div><div class='add'>+x = Proc.new{binding}.call</div><div class='add'>+eval "(0..9).each{|i5| $x[i5] = Proc.new{i5*2}}", x</div><div class='add'>+test_ok($x[4].call == 8)</div><div class='add'>+x = Proc.new{binding}.call</div><div class='add'>+eval "for i6 in 1..1; j6=i6; end", x</div><div class='add'>+test_ok(eval("defined? i6", x))</div><div class='add'>+test_ok(eval("defined? j6", x))</div><div class='add'>+</div><div class='add'>+Proc.new {</div><div class='add'>+  p = binding</div><div class='add'>+  eval "foo11 = 1", p</div><div class='add'>+  foo22 = 5</div><div class='add'>+  Proc.new{foo11=22}.call</div><div class='add'>+  Proc.new{foo22=55}.call</div><div class='add'>+  test_ok(eval("foo11", p) == eval("foo11"))</div><div class='add'>+  test_ok(eval("foo11") == 1)</div><div class='add'>+  test_ok(eval("foo22", p) == eval("foo22"))</div><div class='add'>+  test_ok(eval("foo22") == 55)</div><div class='add'>+}.call if false #! YARV Limitation</div><div class='add'>+</div><div class='add'>+#! YARV Limitation: p1 = Proc.new{i7 = 0; Proc.new{i7}}.call</div><div class='add'>+p1 = Proc.new{i7 = 0; binding}.call</div><div class='add'>+#! YARV Limitation: test_ok(p1.call == 0)</div><div class='add'>+eval "i7=5", p1</div><div class='add'>+#! YARV Limitation: test_ok(p1.call == 5)</div><div class='add'>+test_ok(!defined?(i7))</div><div class='add'>+</div><div class='add'>+if false #! YARV Limitation</div><div class='add'>+p1 = Proc.new{i7 = 0; Proc.new{i7}}.call</div><div class='add'>+i7 = nil</div><div class='add'>+test_ok(p1.call == 0)</div><div class='add'>+eval "i7=1", p1</div><div class='add'>+test_ok(p1.call == 1)</div><div class='add'>+eval "i7=5", p1</div><div class='add'>+test_ok(p1.call == 5)</div><div class='add'>+test_ok(i7 == nil)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_check "system"</div><div class='add'>+test_ok(`echo foobar` == "foobar\n")</div><div class='add'>+test_ok(`./miniruby -e 'print "foobar"'` == 'foobar')</div><div class='add'>+</div><div class='add'>+script_tmp = "script_tmp.#{$$}"</div><div class='add'>+tmp = open(script_tmp, "w")</div><div class='add'>+tmp.print "print $zzz\n";</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+test_ok(`./miniruby -s #{script_tmp} -zzz` == 'true')</div><div class='add'>+test_ok(`./miniruby -s #{script_tmp} -zzz=555` == '555')</div><div class='add'>+</div><div class='add'>+tmp = open(script_tmp, "w")</div><div class='add'>+tmp.print "#! /usr/local/bin/ruby -s\n";</div><div class='add'>+tmp.print "print $zzz\n";</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+test_ok(`./miniruby #{script_tmp} -zzz=678` == '678')</div><div class='add'>+</div><div class='add'>+tmp = open(script_tmp, "w")</div><div class='add'>+tmp.print "this is a leading junk\n";</div><div class='add'>+tmp.print "#! /usr/local/bin/ruby -s\n";</div><div class='add'>+tmp.print "print $zzz\n";</div><div class='add'>+tmp.print "__END__\n";</div><div class='add'>+tmp.print "this is a trailing junk\n";</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+test_ok(`./miniruby -x #{script_tmp}` == '')</div><div class='add'>+test_ok(`./miniruby -x #{script_tmp} -zzz=555` == '555')</div><div class='add'>+</div><div class='add'>+tmp = open(script_tmp, "w")</div><div class='add'>+for i in 1..5</div><div class='add'>+  tmp.print i, "\n"</div><div class='add'>+end</div><div class='add'>+tmp.close</div><div class='add'>+</div><div class='add'>+`./miniruby -i.bak -pe '$_.sub!(/^[0-9]+$/){$&amp;.to_i * 5}' #{script_tmp}`</div><div class='add'>+done = true</div><div class='add'>+tmp = open(script_tmp, "r")</div><div class='add'>+while tmp.gets</div><div class='add'>+  if $_.to_i % 5 != 0</div><div class='add'>+    done = false</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+tmp.close</div><div class='add'>+test_ok(done)</div><div class='add'>+</div><div class='add'>+File.unlink script_tmp or `/bin/rm -f "#{script_tmp}"`</div><div class='add'>+File.unlink "#{script_tmp}.bak" or `/bin/rm -f "#{script_tmp}.bak"`</div><div class='add'>+</div><div class='add'>+test_check "const"</div><div class='add'>+TEST1 = 1</div><div class='add'>+TEST2 = 2</div><div class='add'>+</div><div class='add'>+module Const</div><div class='add'>+  TEST3 = 3</div><div class='add'>+  TEST4 = 4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+module Const2</div><div class='add'>+  TEST3 = 6</div><div class='add'>+  TEST4 = 8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+include Const</div><div class='add'>+</div><div class='add'>+test_ok([TEST1,TEST2,TEST3,TEST4] == [1,2,3,4])</div><div class='add'>+</div><div class='add'>+include Const2</div><div class='add'>+STDERR.print "intentionally redefines TEST3, TEST4\n" if $VERBOSE</div><div class='add'>+test_ok([TEST1,TEST2,TEST3,TEST4] == [1,2,6,8])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+test_ok((String &lt;=&gt; Object) == -1)</div><div class='add'>+test_ok((Object &lt;=&gt; String) == 1)</div><div class='add'>+test_ok((Array &lt;=&gt; String) == nil)</div><div class='add'>+</div><div class='add'>+test_check "clone"</div><div class='add'>+foo = Object.new</div><div class='add'>+def foo.test</div><div class='add'>+  "test"</div><div class='add'>+end</div><div class='add'>+bar = foo.clone</div><div class='add'>+def bar.test2</div><div class='add'>+  "test2"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(bar.test2 == "test2")</div><div class='add'>+test_ok(bar.test == "test")</div><div class='add'>+test_ok(foo.test == "test")</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  foo.test2</div><div class='add'>+  test_ok false</div><div class='add'>+rescue NoMethodError</div><div class='add'>+  test_ok true</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+module M001; end</div><div class='add'>+module M002; end</div><div class='add'>+module M003; include M002; end</div><div class='add'>+module M002; include M001; end</div><div class='add'>+module M003; include M002; end</div><div class='add'>+</div><div class='add'>+test_ok(M003.ancestors == [M003, M002, M001])</div><div class='add'>+</div><div class='add'>+test_check "marshal"</div><div class='add'>+$x = [1,2,3,[4,5,"foo"],{1=&gt;"bar"},2.5,fact(30)]</div><div class='add'>+$y = Marshal.dump($x)</div><div class='add'>+test_ok($x == Marshal.load($y))</div><div class='add'>+</div><div class='add'>+StrClone=String.clone;</div><div class='add'>+test_ok(Marshal.load(Marshal.dump(StrClone.new("abc"))).class == StrClone)</div><div class='add'>+</div><div class='add'>+[[1,2,3,4], [81, 2, 118, 3146]].each { |w,x,y,z|</div><div class='add'>+  a = (x.to_f + y.to_f / z.to_f) * Math.exp(w.to_f / (x.to_f + y.to_f / z.to_f))</div><div class='add'>+  ma = Marshal.dump(a)</div><div class='add'>+  b = Marshal.load(ma)</div><div class='add'>+  test_ok(a == b)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+test_check "pack"</div><div class='add'>+</div><div class='add'>+$format = "c2x5CCxsdils_l_a6";</div><div class='add'>+# Need the expression in here to force ary[5] to be numeric.  This avoids</div><div class='add'>+# test2 failing because ary2 goes str-&gt;numeric-&gt;str and ary does not.</div><div class='add'>+ary = [1,-100,127,128,32767,987.654321098 / 100.0,12345,123456,-32767,-123456,"abcdef"]</div><div class='add'>+$x = ary.pack($format)</div><div class='add'>+ary2 = $x.unpack($format)</div><div class='add'>+</div><div class='add'>+test_ok(ary.length == ary2.length)</div><div class='add'>+test_ok(ary.join(':') == ary2.join(':'))</div><div class='add'>+test_ok($x =~ /def/)</div><div class='add'>+</div><div class='add'>+$x = [-1073741825]</div><div class='add'>+test_ok($x.pack("q").unpack("q") == $x)</div><div class='add'>+</div><div class='add'>+test_check "math"</div><div class='add'>+test_ok(Math.sqrt(4) == 2)</div><div class='add'>+</div><div class='add'>+include Math</div><div class='add'>+test_ok(sqrt(4) == 2)</div><div class='add'>+</div><div class='add'>+test_check "struct"</div><div class='add'>+struct_test = Struct.new("Test", :foo, :bar)</div><div class='add'>+test_ok(struct_test == Struct::Test)</div><div class='add'>+</div><div class='add'>+test = struct_test.new(1, 2)</div><div class='add'>+test_ok(test.foo == 1 &amp;&amp; test.bar == 2)</div><div class='add'>+test_ok(test[0] == 1 &amp;&amp; test[1] == 2)</div><div class='add'>+</div><div class='add'>+a, b = test.to_a</div><div class='add'>+test_ok(a == 1 &amp;&amp; b == 2)</div><div class='add'>+</div><div class='add'>+test[0] = 22</div><div class='add'>+test_ok(test.foo == 22)</div><div class='add'>+</div><div class='add'>+test.bar = 47</div><div class='add'>+test_ok(test.bar == 47)</div><div class='add'>+</div><div class='add'>+test_check "variable"</div><div class='add'>+test_ok($$.instance_of?(Integer))</div><div class='add'>+</div><div class='add'>+# read-only variable</div><div class='add'>+begin</div><div class='add'>+  $$ = 5</div><div class='add'>+  test_ok false</div><div class='add'>+rescue NameError</div><div class='add'>+  test_ok true</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+foobar = "foobar"</div><div class='add'>+$_ = foobar</div><div class='add'>+test_ok($_ == foobar)</div><div class='add'>+</div><div class='add'>+class Gods</div><div class='add'>+  @@rule = "Uranus"		# private to Gods</div><div class='add'>+  def ruler0</div><div class='add'>+    @@rule</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.ruler1		# &lt;= per method definition style</div><div class='add'>+    @@rule</div><div class='add'>+  end</div><div class='add'>+  class &lt;&lt; self			# &lt;= multiple method definition style</div><div class='add'>+    def ruler2</div><div class='add'>+      @@rule</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+module Olympians</div><div class='add'>+  @@rule ="Zeus"</div><div class='add'>+  def ruler3</div><div class='add'>+    @@rule</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Titans &lt; Gods</div><div class='add'>+  @@rule = "Cronus"		# do not affect @@rule in Gods</div><div class='add'>+  include Olympians</div><div class='add'>+  def ruler4</div><div class='add'>+    @@rule</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(Gods.new.ruler0 == "Cronus")</div><div class='add'>+test_ok(Gods.ruler1 == "Cronus")</div><div class='add'>+test_ok(Gods.ruler2 == "Cronus")</div><div class='add'>+test_ok(Titans.ruler1 == "Cronus")</div><div class='add'>+test_ok(Titans.ruler2 == "Cronus")</div><div class='add'>+atlas = Titans.new</div><div class='add'>+test_ok(atlas.ruler0 == "Cronus")</div><div class='add'>+test_ok(atlas.ruler3 == "Zeus")</div><div class='add'>+test_ok(atlas.ruler4 == "Cronus")</div><div class='add'>+</div><div class='add'>+test_check "trace"</div><div class='add'>+$x = 1234</div><div class='add'>+$y = 0</div><div class='add'>+trace_var :$x, Proc.new{$y = $x}</div><div class='add'>+$x = 40414</div><div class='add'>+test_ok($y == $x)</div><div class='add'>+</div><div class='add'>+untrace_var :$x</div><div class='add'>+$x = 19660208</div><div class='add'>+test_ok($y != $x)</div><div class='add'>+</div><div class='add'>+trace_var :$x, Proc.new{$x *= 2}</div><div class='add'>+$x = 5</div><div class='add'>+test_ok($x == 10)</div><div class='add'>+</div><div class='add'>+untrace_var :$x</div><div class='add'>+</div><div class='add'>+test_check "defined?"</div><div class='add'>+</div><div class='add'>+test_ok(defined?($x))		# global variable</div><div class='add'>+test_ok(defined?($x) == 'global-variable')# returns description</div><div class='add'>+</div><div class='add'>+foo=5</div><div class='add'>+test_ok(defined?(foo))		# local variable</div><div class='add'>+</div><div class='add'>+test_ok(defined?(Array))	# constant</div><div class='add'>+test_ok(defined?(Object.new))	# method</div><div class='add'>+test_ok(!defined?(Object.print))# private method</div><div class='add'>+test_ok(defined?(1 == 2))	# operator expression</div><div class='add'>+</div><div class='add'>+class Foo</div><div class='add'>+  def foo</div><div class='add'>+    p :foo</div><div class='add'>+  end</div><div class='add'>+  protected :foo</div><div class='add'>+  def bar(f)</div><div class='add'>+    test_ok(defined?(self.foo))</div><div class='add'>+    test_ok(defined?(f.foo))</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+f = Foo.new</div><div class='add'>+test_ok(defined?(f.foo) == nil)</div><div class='add'>+f.bar(f)</div><div class='add'>+</div><div class='add'>+def defined_test</div><div class='add'>+  return !defined?(yield)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+test_ok(defined_test)		# not iterator</div><div class='add'>+test_ok(!defined_test{})	# called as iterator</div><div class='add'>+</div><div class='add'>+test_check "alias"</div><div class='add'>+class Alias0</div><div class='add'>+  def foo; "foo" end</div><div class='add'>+end</div><div class='add'>+class Alias1 &lt; Alias0</div><div class='add'>+  alias bar foo</div><div class='add'>+  def foo; "foo+" + super end</div><div class='add'>+end</div><div class='add'>+class Alias2 &lt; Alias1</div><div class='add'>+  alias baz foo</div><div class='add'>+  undef foo</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+x = Alias2.new</div><div class='add'>+test_ok(x.bar == "foo")</div><div class='add'>+test_ok(x.baz == "foo+foo")</div><div class='add'>+</div><div class='add'>+# test_check for cache</div><div class='add'>+test_ok(x.baz == "foo+foo")</div><div class='add'>+</div><div class='add'>+class Alias3 &lt; Alias2</div><div class='add'>+  def foo</div><div class='add'>+    defined? super</div><div class='add'>+  end</div><div class='add'>+  def bar</div><div class='add'>+    defined? super</div><div class='add'>+  end</div><div class='add'>+  def quux</div><div class='add'>+    defined? super</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+x = Alias3.new</div><div class='add'>+test_ok(!x.foo)</div><div class='add'>+test_ok(x.bar)</div><div class='add'>+test_ok(!x.quux)</div><div class='add'>+</div><div class='add'>+test_check "path"</div><div class='add'>+test_ok(File.basename("a") == "a")</div><div class='add'>+test_ok(File.basename("a/b") == "b")</div><div class='add'>+test_ok(File.basename("a/b/") == "b")</div><div class='add'>+test_ok(File.basename("/") == "/")</div><div class='add'>+test_ok(File.basename("//") == "/")</div><div class='add'>+test_ok(File.basename("///") == "/")</div><div class='add'>+test_ok(File.basename("a/b////") == "b")</div><div class='add'>+test_ok(File.basename("a.rb", ".rb") == "a")</div><div class='add'>+test_ok(File.basename("a.rb///", ".rb") == "a")</div><div class='add'>+test_ok(File.basename("a.rb///", ".*") == "a")</div><div class='add'>+test_ok(File.basename("a.rb///", ".c") == "a.rb")</div><div class='add'>+test_ok(File.dirname("a") == ".")</div><div class='add'>+test_ok(File.dirname("/") == "/")</div><div class='add'>+test_ok(File.dirname("/a") == "/")</div><div class='add'>+test_ok(File.dirname("a/b") == "a")</div><div class='add'>+test_ok(File.dirname("a/b/c") == "a/b")</div><div class='add'>+test_ok(File.dirname("/a/b/c") == "/a/b")</div><div class='add'>+test_ok(File.dirname("/a/b/") == "/a")</div><div class='add'>+test_ok(File.dirname("/a/b///") == "/a")</div><div class='add'>+case Dir.pwd</div><div class='add'>+when %r'\A\w:'</div><div class='add'>+  test_ok(/\A\w:\/\z/ =~ File.expand_path(".", "/"))</div><div class='add'>+  test_ok(/\A\w:\/a\z/ =~ File.expand_path("a", "/"))</div><div class='add'>+  dosish = true</div><div class='add'>+when %r'\A//'</div><div class='add'>+  test_ok(%r'\A//[^/]+/[^/]+\z' =~ File.expand_path(".", "/"))</div><div class='add'>+  test_ok(%r'\A//[^/]+/[^/]+/a\z' =~ File.expand_path(".", "/"))</div><div class='add'>+  dosish = true</div><div class='add'>+else</div><div class='add'>+  test_ok(File.expand_path(".", "/") == "/")</div><div class='add'>+  test_ok(File.expand_path("sub", "/") == "/sub")</div><div class='add'>+end</div><div class='add'>+if dosish</div><div class='add'>+  test_ok(File.expand_path("/", "//machine/share/sub") == "//machine/share")</div><div class='add'>+  test_ok(File.expand_path("/dir", "//machine/share/sub") == "//machine/share/dir")</div><div class='add'>+  test_ok(File.expand_path("/", "z:/sub") == "z:/")</div><div class='add'>+  test_ok(File.expand_path("/dir", "z:/sub") == "z:/dir")</div><div class='add'>+end</div><div class='add'>+test_ok(File.expand_path(".", "//") == "//")</div><div class='add'>+test_ok(File.expand_path("sub", "//") == "//sub")</div><div class='add'>+</div><div class='add'>+# test_check "Proc#binding"</div><div class='add'>+ObjectSpace.each_object(Proc){|o|</div><div class='add'>+  begin</div><div class='add'>+    b = o.binding</div><div class='add'>+    eval 'self', b</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+test_check "gc"</div><div class='add'>+begin</div><div class='add'>+  1.upto(10000) {</div><div class='add'>+    tmp = [0,1,2,3,4,5,6,7,8,9]</div><div class='add'>+  }</div><div class='add'>+  tmp = nil</div><div class='add'>+  test_ok true</div><div class='add'>+rescue</div><div class='add'>+  test_ok false</div><div class='add'>+end</div><div class='add'>+class S</div><div class='add'>+  def initialize(a)</div><div class='add'>+    @a = a</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+l=nil</div><div class='add'>+100000.times {</div><div class='add'>+  l = S.new(l)</div><div class='add'>+}</div><div class='add'>+GC.start</div><div class='add'>+test_ok true   # reach here or dumps core</div><div class='add'>+l = []</div><div class='add'>+100000.times {</div><div class='add'>+  l.push([l])</div><div class='add'>+}</div><div class='add'>+GC.start</div><div class='add'>+test_ok true   # reach here or dumps core</div><div class='add'>+</div><div class='add'>+ObjectSpace.each_object{|o|</div><div class='add'>+  o.class.name</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+test_ok true   # reach here or dumps core</div><div class='add'>+</div><div class='add'>+PROGRESS.finish</div><div class='add'>+if $failed &gt; 0</div><div class='add'>+  printf "not ok/test: %d failed %d\n", $ntest, $failed</div><div class='add'>+else</div><div class='add'>+  printf "end of test(test: %d)\n", $ntest</div><div class='add'>+end</div><div class='head'>diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub<br/>deleted file mode 100644<br/>index b5546104d0..0000000000<br/>--- a/<a href='/ruby.git/tree/bcc32/Makefile.sub?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/Makefile.sub</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,499 +0,0 @@</div><div class='del'>-# -*- makefile -*-</div><div class='del'>-</div><div class='del'>-SHELL = $(COMSPEC)</div><div class='del'>-MKFILES = Makefile</div><div class='del'>-</div><div class='del'>-#### Start of system configuration section. ####</div><div class='del'>-OS = bccwin32</div><div class='del'>-RT = $(OS)</div><div class='del'>-</div><div class='del'>-## variables may be overridden by $(compile_dir)/Makefile</div><div class='del'>-!ifndef srcdir</div><div class='del'>-srcdir = ..</div><div class='del'>-!endif</div><div class='del'>-!ifndef RUBY_INSTALL_NAME</div><div class='del'>-RUBY_INSTALL_NAME = ruby</div><div class='del'>-!endif</div><div class='del'>-!ifndef RUBYW_INSTALL_NAME</div><div class='del'>-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)</div><div class='del'>-!elif "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"</div><div class='del'>-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)</div><div class='del'>-!endif</div><div class='del'>-!if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"</div><div class='del'>-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w</div><div class='del'>-!endif</div><div class='del'>-!ifndef RUBY_SO_NAME</div><div class='del'>-RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)</div><div class='del'>-!endif</div><div class='del'>-!ifndef icondirs</div><div class='del'>-!ifdef ICONDIRS</div><div class='del'>-icondirs=$(ICONDIRS)</div><div class='del'>-!endif</div><div class='del'>-!endif</div><div class='del'>-!ifdef icondirs</div><div class='del'>-icondirs=$(icondirs:\=/)</div><div class='del'>-iconinc=-I$(icondirs: = -I)</div><div class='del'>-!endif</div><div class='del'>-###############</div><div class='del'>-</div><div class='del'>-VPATH = $(srcdir):$(srcdir)/missing</div><div class='del'>-.SUFFIXES: .y</div><div class='del'>-</div><div class='del'>-!ifndef CC</div><div class='del'>-CC = bcc32</div><div class='del'>-!endif</div><div class='del'>-!ifndef CPP</div><div class='del'>-CPP = cpp32</div><div class='del'>-!endif</div><div class='del'>-!ifndef RC</div><div class='del'>-RC = brcc32</div><div class='del'>-!endif</div><div class='del'>-!ifndef YACC</div><div class='del'>-YACC = byacc</div><div class='del'>-!endif</div><div class='del'>-!ifndef AR</div><div class='del'>-AR = tlib</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-PURIFY =</div><div class='del'>-AUTOCONF = autoconf</div><div class='del'>-RM = $(srcdir:/=\)\win32\rm.bat</div><div class='del'>-</div><div class='del'>-!if !defined(PROCESSOR_ARCHITECTURE)</div><div class='del'>-PROCESSOR_ARCHITECTURE = x86</div><div class='del'>-!endif</div><div class='del'>-MACHINE = $(PROCESSOR_ARCHITECTURE)</div><div class='del'>-!if "$(PROCESSOR_ARCHITECTURE)" == "x86"</div><div class='del'>-!ifndef PROCESSOR_LEVEL</div><div class='del'>-PROCESSOR_LEVEL = 5</div><div class='del'>-!endif</div><div class='del'>-!if 6 &lt; $(PROCESSOR_LEVEL)</div><div class='del'>-PROCESSOR_LEVEL = 6</div><div class='del'>-!endif</div><div class='del'>-PROCESSOR_FLAG = -$(PROCESSOR_LEVEL)</div><div class='del'>-CPU = i$(PROCESSOR_LEVEL)86</div><div class='del'>-ARCH = i386</div><div class='del'>-!else</div><div class='del'>-CPU = $(PROCESSOR_ARCHITECTURE)</div><div class='del'>-ARCH = $(PROCESSOR_ARCHITECTURE)</div><div class='del'>-!endif</div><div class='del'>-!ifndef DEBUGFLAGS</div><div class='del'>-DEBUGFLAGS = </div><div class='del'>-!endif</div><div class='del'>-!ifndef OPTFLAGS</div><div class='del'>-OPTFLAGS = -O</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-!ifndef prefix</div><div class='del'>-prefix = /usr</div><div class='del'>-!endif</div><div class='del'>-!ifndef exec_prefix</div><div class='del'>-exec_prefix = $(prefix)</div><div class='del'>-!endif</div><div class='del'>-!ifndef libdir</div><div class='del'>-libdir = $(exec_prefix)/lib</div><div class='del'>-!endif</div><div class='del'>-!if !defined(datadir)</div><div class='del'>-datadir = /share</div><div class='del'>-!endif</div><div class='del'>-!ifndef EXTOUT</div><div class='del'>-EXTOUT = .ext</div><div class='del'>-!endif</div><div class='del'>-!ifndef RIDATADIR</div><div class='del'>-RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system</div><div class='del'>-!endif</div><div class='del'>-!ifndef TESTUI</div><div class='del'>-TESTUI = console</div><div class='del'>-!endif</div><div class='del'>-!ifndef TESTS</div><div class='del'>-TESTS =</div><div class='del'>-!endif</div><div class='del'>-!ifndef RDOCTARGET</div><div class='del'>-RDOCTARGET = install-nodoc</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-OUTFLAG       = -o</div><div class='del'>-!ifndef CFLAGS</div><div class='del'>-CFLAGS = -q -tWR -tWC $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi</div><div class='del'>-!endif</div><div class='del'>-!ifndef LDFLAGS</div><div class='del'>-LDFLAGS = -S:$(STACK)</div><div class='del'>-!endif</div><div class='del'>-!ifndef RFLAGS</div><div class='del'>-RFLAGS = $(iconinc)</div><div class='del'>-!endif</div><div class='del'>-!ifndef EXTLIBS</div><div class='del'>-EXTLIBS =</div><div class='del'>-!endif</div><div class='del'>-!ifndef MEMLIB</div><div class='del'>-MEMLIB =</div><div class='del'>-!endif</div><div class='del'>-LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)</div><div class='del'>-MISSING = acosh.obj crypt.obj erf.obj win32.obj</div><div class='del'>-</div><div class='del'>-!ifndef STACK</div><div class='del'>-STACK = 0x2000000</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing</div><div class='del'>-</div><div class='del'>-ARFLAGS = /a</div><div class='del'>-LD = ilink32 -q -Gn</div><div class='del'>-LDSHARED  = $(LD)</div><div class='del'>-XLDFLAGS  = -Tpe c0x32.obj</div><div class='del'>-WLDFLAGS  = -aa -Tpe c0w32.obj</div><div class='del'>-DLDFLAGS  = -Tpd c0d32.obj</div><div class='del'>-LIBRUBY_LDSHARED = $(LDSHARED)</div><div class='del'>-LIBRUBY_DLDFLAGS = -Gi $(DLDFLAGS) $(EXTLDFLAGS)</div><div class='del'>-LDOBJECTS = $(MAINOBJ)</div><div class='del'>-</div><div class='del'>-SOLIBS = </div><div class='del'>-</div><div class='del'>-EXEEXT = .exe</div><div class='del'>-PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='del'>-WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)</div><div class='del'>-RUBYDEF = $(RUBY_SO_NAME).def</div><div class='del'>-MINIRUBY = .\miniruby$(EXEEXT) $(MINIRUBYOPT)</div><div class='del'>-RUNRUBY = .\ruby$(EXEEXT) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --</div><div class='del'>-</div><div class='del'>-ORGLIBPATH = $(LIB)</div><div class='del'>-</div><div class='del'>-#### End of system configuration section. ####</div><div class='del'>-</div><div class='del'>-LIBRUBY_A     = $(RUBY_SO_NAME)-static.lib</div><div class='del'>-LIBRUBY_SO    = $(RUBY_SO_NAME).dll</div><div class='del'>-LIBRUBY       = $(RUBY_SO_NAME).lib</div><div class='del'>-LIBRUBYARG    = $(LIBRUBY)</div><div class='del'>-</div><div class='del'>-PREP          = miniruby$(EXEEXT)</div><div class='del'>-</div><div class='del'>-OBJEXT        = obj</div><div class='del'>-</div><div class='del'>-INSTALLED_LIST= .installed.list</div><div class='del'>-</div><div class='del'>-WINMAINOBJ    = winmain.$(OBJEXT)</div><div class='del'>-MINIOBJS      = dmydln.$(OBJEXT)</div><div class='del'>-</div><div class='del'>-.path.c = .;$(srcdir);$(srcdir)/win32;$(srcdir)/missing</div><div class='del'>-.path.h = .;$(srcdir);$(srcdir)/win32;$(srcdir)/missing</div><div class='del'>-.path.y = $(srcdir)</div><div class='del'>-.path. = $(srcdir)</div><div class='del'>-</div><div class='del'>-.c.obj:</div><div class='del'>-	$(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) -c $(&lt;:/=\)</div><div class='del'>-</div><div class='del'>-.rc.res:</div><div class='del'>-	$(RC) $(RFLAGS) -I. -I$(&lt;D). $(iconinc) -I$(srcdir)/win32 $(RFLAGS) -fo$@ $(&lt;:/=\)</div><div class='del'>-</div><div class='del'>-.y.c:</div><div class='del'>-	$(YACC) $(YFLAGS) $(&lt;:\=/)</div><div class='del'>-	sed -e "s!^ *extern char \*getenv();!/* &amp; */!;s/^\(#.*\)y\.tab/\1parse/" y.tab.c &gt; $(@F)</div><div class='del'>-	@del y.tab.c</div><div class='del'>-</div><div class='del'>-all: $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk</div><div class='del'>-</div><div class='del'>-ruby: $(PROGRAM)</div><div class='del'>-rubyw: $(WPROGRAM)</div><div class='del'>-</div><div class='del'>-!include $(srcdir)/common.mk</div><div class='del'>-</div><div class='del'>-PHONY: Makefile</div><div class='del'>-</div><div class='del'>-CONFIG_H = ./.config.h.time</div><div class='del'>-</div><div class='del'>-config: config.status</div><div class='del'>-</div><div class='del'>-config.status: $(CONFIG_H)</div><div class='del'>-</div><div class='del'>-$(CONFIG_H): $(MKFILES) $(srcdir)/bcc32/Makefile.sub</div><div class='del'>-	@$(srcdir:/=\)\win32\ifchange.bat config.h &amp;&amp;|</div><div class='del'>-\#define HAVE_SYS_TYPES_H 1</div><div class='del'>-\#define HAVE_SYS_STAT_H 1</div><div class='del'>-\#define HAVE_STDLIB_H 1</div><div class='del'>-\#define HAVE_STRING_H 1</div><div class='del'>-\#define HAVE_MEMORY_H 1</div><div class='del'>-\#define HAVE_OFF_T 1</div><div class='del'>-\#define SIZEOF_INT 4</div><div class='del'>-\#define SIZEOF_SHORT 2</div><div class='del'>-\#define SIZEOF_LONG 4</div><div class='del'>-\#define SIZEOF_LONG_LONG 0</div><div class='del'>-\#define SIZEOF___INT64 8</div><div class='del'>-\#define SIZEOF_OFF_T 4</div><div class='del'>-\#define SIZEOF_VOIDP 4</div><div class='del'>-\#define SIZEOF_FLOAT 4</div><div class='del'>-\#define SIZEOF_DOUBLE 8</div><div class='del'>-\#define SIZEOF_TIME_T 4</div><div class='del'>-\#define HAVE_PROTOTYPES 1</div><div class='del'>-\#define TOKEN_PASTE(x,y) x\#\#y</div><div class='del'>-\#define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-\#define NORETURN(x) x</div><div class='del'>-\#define RUBY_EXTERN extern __declspec(dllimport)</div><div class='del'>-\#define HAVE_DECL_SYS_NERR 1</div><div class='del'>-\#define HAVE_LIMITS_H 1</div><div class='del'>-\#define HAVE_FCNTL_H 1</div><div class='del'>-\#define HAVE_UTIME_H 1</div><div class='del'>-\#define HAVE_FLOAT_H 1</div><div class='del'>-\#define rb_uid_t uid_t</div><div class='del'>-\#define rb_gid_t gid_t</div><div class='del'>-\#define rb_pid_t int</div><div class='del'>-\#define HAVE_STRUCT_STAT_ST_RDEV 1</div><div class='del'>-\#define HAVE_ST_RDEV 1</div><div class='del'>-\#define GETGROUPS_T int</div><div class='del'>-\#define RETSIGTYPE void</div><div class='del'>-\#define HAVE_ALLOCA 1</div><div class='del'>-\#define HAVE_DUP2 1</div><div class='del'>-\#define HAVE_MEMMOVE 1</div><div class='del'>-\#define HAVE_MKDIR 1</div><div class='del'>-\#define HAVE_STRCASECMP 1</div><div class='del'>-\#define HAVE_STRNCASECMP 1</div><div class='del'>-\#define HAVE_STRERROR 1</div><div class='del'>-\#define HAVE_STRFTIME 1</div><div class='del'>-\#define HAVE_STRCHR 1</div><div class='del'>-\#define HAVE_STRSTR 1</div><div class='del'>-\#define HAVE_STRTOD 1</div><div class='del'>-\#define HAVE_STRTOL 1</div><div class='del'>-\#define HAVE_STRTOUL 1</div><div class='del'>-\#define HAVE_ISNAN 1</div><div class='del'>-\#define HAVE_FINITE 1</div><div class='del'>-\#define HAVE_HYPOT 1</div><div class='del'>-\#define HAVE_FMOD 1</div><div class='del'>-\#define HAVE_WAITPID 1</div><div class='del'>-\#define HAVE_FSYNC 1</div><div class='del'>-\#define HAVE_GETCWD 1</div><div class='del'>-\#define HAVE_CHSIZE 1</div><div class='del'>-\#define HAVE_TIMES 1</div><div class='del'>-\#define HAVE_FCNTL 1</div><div class='del'>-\#define HAVE_LINK 1</div><div class='del'>-\#define HAVE_TELLDIR 1</div><div class='del'>-\#define HAVE_SEEKDIR 1</div><div class='del'>-\#define HAVE_COSH 1</div><div class='del'>-\#define HAVE_SINH 1</div><div class='del'>-\#define HAVE_TANH 1</div><div class='del'>-\#define RSHIFT(x,y) ((x)&gt;&gt;(int)y)</div><div class='del'>-\#define FILE_COUNT level</div><div class='del'>-\#define FILE_READPTR curp</div><div class='del'>-\#define inline __inline</div><div class='del'>-\#define NEED_IO_SEEK_BETWEEN_RW 1</div><div class='del'>-\#define STACK_GROW_DIRECTION -1</div><div class='del'>-\#define DEFAULT_KCODE KCODE_NONE</div><div class='del'>-\#define DLEXT ".so"</div><div class='del'>-\#define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)"</div><div class='del'>-\#define RUBY_SITE_LIB "/lib/ruby/site_ruby"</div><div class='del'>-\#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)"</div><div class='del'>-\#define RUBY_PLATFORM "$(ARCH)-$(OS)"</div><div class='del'>-\#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"</div><div class='del'>-\#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"</div><div class='del'>-|</div><div class='del'>-	@exit &gt; $@</div><div class='del'>-</div><div class='del'>-config.status: $(MKFILES) $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk</div><div class='del'>-	@echo Creating $@</div><div class='del'>-	@type &gt; $@ &amp;&amp;|</div><div class='del'>-# Generated automatically by Makefile.sub.</div><div class='del'>-s,@SHELL@,$$(COMSPEC),;t t</div><div class='del'>-s,@BUILD_FILE_SEPARATOR@,\,;t t</div><div class='del'>-s,@PATH_SEPARATOR@,;,;t t</div><div class='del'>-s,@CFLAGS@,$(CFLAGS),;t t</div><div class='del'>-s,@CPPFLAGS@,$(CPPFLAGS),;t t</div><div class='del'>-s,@CXXFLAGS@,$(CXXFLAGS),;t t</div><div class='del'>-s,@FFLAGS@,$(FFLAGS),;t t</div><div class='del'>-s,@LDFLAGS@,,;t t</div><div class='del'>-s,@LIBS@,$(LIBS),;t t</div><div class='del'>-s,@exec_prefix@,$${prefix},;t t</div><div class='del'>-s,@prefix@,,;t t</div><div class='del'>-s,@program_transform_name@,s,,,,;t t</div><div class='del'>-s,@bindir@,$${exec_prefix}/bin,;t t</div><div class='del'>-s,@sbindir@,$${exec_prefix}/sbin,;t t</div><div class='del'>-s,@libexecdir@,$${exec_prefix}/libexec,;t t</div><div class='del'>-s,@datadir@,$${prefix}/share,;t t</div><div class='del'>-s,@sysconfdir@,$${prefix}/etc,;t t</div><div class='del'>-s,@sharedstatedir@,/etc,;t t</div><div class='del'>-s,@localstatedir@,/var,;t t</div><div class='del'>-s,@libdir@,$${exec_prefix}/lib,;t t</div><div class='del'>-s,@includedir@,$${prefix}/include,;t t</div><div class='del'>-s,@oldincludedir@,/usr/include,;t t</div><div class='del'>-s,@infodir@,$${prefix}/info,;t t</div><div class='del'>-s,@mandir@,$${prefix}/man,;t t</div><div class='del'>-s,@build@,$(CPU)-pc-$(OS),;t t</div><div class='del'>-s,@build_alias@,$(CPU)-$(OS),;t t</div><div class='del'>-s,@build_cpu@,$(CPU),;t t</div><div class='del'>-s,@build_vendor@,pc,;t t</div><div class='del'>-s,@build_os@,$(OS),;t t</div><div class='del'>-s,@host@,$(CPU)-pc-$(OS),;t t</div><div class='del'>-s,@host_alias@,$(CPU)-$(OS),;t t</div><div class='del'>-s,@host_cpu@,$(CPU),;t t</div><div class='del'>-s,@host_vendor@,pc,;t t</div><div class='del'>-s,@host_os@,$(OS),;t t</div><div class='del'>-s,@target@,$(ARCH)-pc-$(OS),;t t</div><div class='del'>-s,@target_alias@,$(ARCH)-$(OS),;t t</div><div class='del'>-s,@target_cpu@,$(ARCH),;t t</div><div class='del'>-s,@target_vendor@,pc,;t t</div><div class='del'>-s,@target_os@,$(OS),;t t</div><div class='del'>-s,@CC@,$(CC),;t t</div><div class='del'>-s,@CPP@,cpp32,;t t</div><div class='del'>-s,@YACC@,$(YACC),;t t</div><div class='del'>-s,@RANLIB@,,;t t</div><div class='del'>-s,@AR@,$(AR),;t t</div><div class='del'>-s,@ARFLAGS@,$(ARFLAGS) ,;t t</div><div class='del'>-s,@LN_S@,$(LN_S),;t t</div><div class='del'>-s,@SET_MAKE@,$(SET_MAKE),;t t</div><div class='del'>-s,@CP@,copy &gt; nul,;t t</div><div class='del'>-s,@LIBOBJS@, acosh.obj crypt.obj erf.obj win32.obj,;t t</div><div class='del'>-s,@ALLOCA@,$(ALLOCA),;t t</div><div class='del'>-s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t</div><div class='del'>-s,@EXEEXT@,.exe,;t t</div><div class='del'>-s,@OBJEXT@,obj,;t t</div><div class='del'>-s,@XCFLAGS@,$(XCFLAGS),;t t</div><div class='del'>-s,@XLDFLAGS@,$(XLDFLAGS),;t t</div><div class='del'>-s,@DLDFLAGS@,$(DLDFLAGS),;t t</div><div class='del'>-s,@ARCH_FLAG@,$(ARCH_FLAG),;t t</div><div class='del'>-s,@STATIC@,$(STATIC),;t t</div><div class='del'>-s,@CCDLFLAGS@,,;t t</div><div class='del'>-s,@LDSHARED@,$(LDSHARED),;t t</div><div class='del'>-s,@DLEXT@,so,;t t</div><div class='del'>-s,@LIBEXT@,lib,;t t</div><div class='del'>-s,@STRIP@,$(STRIP),;t t</div><div class='del'>-s,@EXTSTATIC@,$(EXTSTATIC),;t t</div><div class='del'>-s,@setup@,Setup,;t t</div><div class='del'>-s,@MINIRUBY@,$(MINIRUBY),;t t</div><div class='del'>-s,@PREP@,miniruby$(EXEEXT),;t t</div><div class='del'>-s,@RUNRUBY@,$(RUNRUBY),;t t</div><div class='del'>-s,@EXTOUT@,$(EXTOUT),;t t</div><div class='del'>-s,@ARCHFILE@,,;t t</div><div class='del'>-s,@RDOCTARGET@,,;t t</div><div class='del'>-s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t</div><div class='del'>-s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t</div><div class='del'>-s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t</div><div class='del'>-s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t</div><div class='del'>-s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t</div><div class='del'>-s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t</div><div class='del'>-s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t</div><div class='del'>-s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t</div><div class='del'>-s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t</div><div class='del'>-s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t</div><div class='del'>-s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t</div><div class='del'>-s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t</div><div class='del'>-s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t</div><div class='del'>-s,@SOLIBS@,$(SOLIBS),;t t</div><div class='del'>-s,@DLDLIBS@,$(DLDLIBS),;t t</div><div class='del'>-s,@ENABLE_SHARED@,yes,;t t</div><div class='del'>-s,@OUTFLAG@,$(OUTFLAG),;t t</div><div class='del'>-s,@CPPOUTFILE@,,;t t</div><div class='del'>-s,@LIBPATHFLAG@, -L"%s",;t t</div><div class='del'>-s,@RPATHFLAG@,,;t t</div><div class='del'>-s,@LIBARG@,%s.lib,;t t</div><div class='del'>-s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS), $$(@:/=\), nul, $$(LIBS) $$(LOCAL_LIBS), $$(DEFFILE), $$(RESFILE),;t t</div><div class='del'>-s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) -c $$(&lt;:/=\),;t t</div><div class='del'>-s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -P -c $$(&lt;:/=\),;t t</div><div class='del'>-s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t</div><div class='del'>-s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t</div><div class='del'>-s,@COMMON_LIBS@,m advapi32 avicap32 avifil32 cap comctl32 comdlg32 dlcapi gdi32 glu32 imagehlp imm32 inetmib1 kernel32 loadperf lsapi32 lz32 mapi32 mgmtapi mpr msacm32 msvfw32 nddeapi netapi32 ole32 oleaut32 oledlg olepro32 opengl32 pdh pkpd32 rasapi32 rasdlg rassapi rpcrt4 setupapi shell32 shfolder snmpapi sporder tapi32 url user32 vdmdbg version win32spl winmm wintrust wsock32,;t t</div><div class='del'>-s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN WIN32,;t t</div><div class='del'>-s,@COMMON_HEADERS@,winsock2.h windows.h,;t t</div><div class='del'>-s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t</div><div class='del'>-s,@EXPORT_PREFIX@,_,;t t</div><div class='del'>-s,@arch@,$(ARCH)-$(OS),;t t</div><div class='del'>-s,@sitearch@,$(ARCH)-$(OS),;t t</div><div class='del'>-s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t</div><div class='del'>-s,@configure_args@,--enable-shared $(configure_args),;t t</div><div class='del'>-s,@configure_input@,$$configure_input,;t t</div><div class='del'>-s,@srcdir@,$(srcdir),;t t</div><div class='del'>-s,@top_srcdir@,$(srcdir),;t t</div><div class='del'>-|</div><div class='del'>-</div><div class='del'>-miniruby$(EXEEXT):</div><div class='del'>-		@echo $(LIBS)</div><div class='del'>-		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(MINIOBJS),$@,nul,$(LIBRUBY_A) $(LIBS)</div><div class='del'>-</div><div class='del'>-$(PROGRAM):	$(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res</div><div class='del'>-		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res</div><div class='del'>-</div><div class='del'>-$(WPROGRAM):	$(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res</div><div class='del'>-		$(LD) $(LDFLAGS) $(WLDFLAGS) $(MAINOBJ) $(WINMAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBYW_INSTALL_NAME).res</div><div class='del'>-</div><div class='del'>-$(LIBRUBY_A):	$(OBJS) $(DMYEXT)</div><div class='del'>-		@-if exist $@ del $@</div><div class='del'>-		$(AR) $(ARFLAGS) "$@" $(OBJS) $(DMYEXT)</div><div class='del'>-</div><div class='del'>-# $(LIBRUBY):	$(LIBRUBY_SO)</div><div class='del'>-#		implib $@ $(LIBRUBY_SO)</div><div class='del'>-</div><div class='del'>-$(LIBRUBY_SO): $(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res</div><div class='del'>-		@echo $(DLDOBJS)</div><div class='del'>-		@$(PRE_LIBRUBY_UPDATE)</div><div class='del'>-		$(LIBRUBY_LDSHARED) $(LIBRUBY_DLDFLAGS) $(DLDOBJS:/=\),$(LIBRUBY_SO),nul,$(LIBRUBY_A) $(LIBS),$(RUBYDEF),$(RUBY_SO_NAME).res</div><div class='del'>-</div><div class='del'>-$(LIBRUBY): $(LIBRUBY_SO)</div><div class='del'>-</div><div class='del'>-$(RUBYDEF):	$(LIBRUBY_A) $(PREP)</div><div class='del'>-		$(MINIRUBY) $(srcdir)/bcc32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A)</div><div class='del'>-</div><div class='del'>-$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb</div><div class='del'>-		@$(MINIRUBY) $(srcdir)/win32/resource.rb \</div><div class='del'>-			-ruby_name=$(RUBY_INSTALL_NAME) \</div><div class='del'>-			-rubyw_name=$(RUBYW_INSTALL_NAME) \</div><div class='del'>-			-so_name=$(RUBY_SO_NAME) \</div><div class='del'>-			. $(icondirs) $(srcdir)/win32</div><div class='del'>-</div><div class='del'>-post-install-bin::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-post-install-lib::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-post-install-ext-comm::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-post-install-ext-arch::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-post-install-man::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-post-install-doc::</div><div class='del'>-	@$(NULLCMD)</div><div class='del'>-</div><div class='del'>-clean-local::</div><div class='del'>-		@$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib</div><div class='del'>-		@$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res</div><div class='del'>-</div><div class='del'>-distclean-local::</div><div class='del'>-		@$(RM) ext\config.cache $(RBCONFIG:/=\)</div><div class='del'>-		@$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF)</div><div class='del'>-		@$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc</div><div class='del'>-</div><div class='del'>-ext/extinit.obj: ext/extinit.c $(SETUP)</div><div class='del'>-	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -o$@ -c ext/extinit.c</div><div class='del'>-</div><div class='del'>-main.$(OBJEXT): win32.h</div><div class='del'>-array.$(OBJEXT): win32.h</div><div class='del'>-bignum.$(OBJEXT): win32.h</div><div class='del'>-class.$(OBJEXT): win32.h</div><div class='del'>-compar.$(OBJEXT): win32.h</div><div class='del'>-dir.$(OBJEXT): dir.h win32.h</div><div class='del'>-dln.$(OBJEXT): win32.h</div><div class='del'>-enum.$(OBJEXT): win32.h</div><div class='del'>-error.$(OBJEXT): win32.h</div><div class='del'>-eval.$(OBJEXT): win32.h</div><div class='del'>-file.$(OBJEXT): win32.h</div><div class='del'>-gc.$(OBJEXT): win32.h</div><div class='del'>-hash.$(OBJEXT): win32.h</div><div class='del'>-inits.$(OBJEXT): win32.h</div><div class='del'>-io.$(OBJEXT): win32.h</div><div class='del'>-marshal.$(OBJEXT): win32.h</div><div class='del'>-math.$(OBJEXT): win32.h</div><div class='del'>-numeric.$(OBJEXT): win32.h</div><div class='del'>-object.$(OBJEXT): win32.h</div><div class='del'>-pack.$(OBJEXT): win32.h</div><div class='del'>-parse.$(OBJEXT): win32.h</div><div class='del'>-process.$(OBJEXT): win32.h</div><div class='del'>-prec.$(OBJEXT): win32.h</div><div class='del'>-random.$(OBJEXT): win32.h</div><div class='del'>-range.$(OBJEXT): win32.h</div><div class='del'>-re.$(OBJEXT): win32.h</div><div class='del'>-regex.$(OBJEXT): win32.h</div><div class='del'>-ruby.$(OBJEXT): win32.h</div><div class='del'>-signal.$(OBJEXT): win32.h</div><div class='del'>-sprintf.$(OBJEXT): win32.h</div><div class='del'>-st.$(OBJEXT): win32.h</div><div class='del'>-string.$(OBJEXT): win32.h</div><div class='del'>-struct.$(OBJEXT): win32.h</div><div class='del'>-time.$(OBJEXT): win32.h</div><div class='del'>-util.$(OBJEXT): win32.h</div><div class='del'>-variable.$(OBJEXT): win32.h</div><div class='del'>-version.$(OBJEXT): win32.h</div><div class='head'>diff --git a/bcc32/README.bcc32 b/bcc32/README.bcc32<br/>deleted file mode 100644<br/>index c27a1261f1..0000000000<br/>--- a/<a href='/ruby.git/tree/bcc32/README.bcc32?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/README.bcc32</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,137 +0,0 @@</div><div class='del'>-=begin</div><div class='del'>-</div><div class='del'>-= How to build ruby using Borland C++</div><div class='del'>-</div><div class='del'>-== Requirement</div><div class='del'>-</div><div class='del'>-(1) Borland C++ 5.0 or later.</div><div class='del'>-</div><div class='del'>-(2) Please set environment variable (({PATH}))</div><div class='del'>-    to run required commands properly from the command line.</div><div class='del'>-</div><div class='del'>-    Note: building ruby requires following commands.</div><div class='del'>-     * make</div><div class='del'>-     * bcc32</div><div class='del'>-     * tlib</div><div class='del'>-     * ilink32</div><div class='del'>-</div><div class='del'>-(3) If you want to build from CVS source, following commands are required.</div><div class='del'>-     * byacc ((&lt;URL:http://gnuwin32.sourceforge.net/packages/byacc.htm&gt;))</div><div class='del'>-     * sed   ((&lt;URL:http://gnuwin32.sourceforge.net/packages/sed.htm&gt;))</div><div class='del'>-</div><div class='del'>-(4) We strongly recommend to build ruby on C++Builder, to link following files.</div><div class='del'>-     * usebormm.lib</div><div class='del'>-     * memmgr.lib</div><div class='del'>-</div><div class='del'>-    RTL's internal memory manager cannot handle large memory block properly,</div><div class='del'>-    so we should use borlndmm.dll instead.</div><div class='del'>-     10000.times { "" &lt;&lt; "." * 529671; GC.start } # crash</div><div class='del'>-</div><div class='del'>-== How to compile and install</div><div class='del'>-</div><div class='del'>-(1) Execute bcc32\configure.bat on your build directory.</div><div class='del'>-     ex. c:\ruby-1.6.7&gt;bcc32\configure.bat</div><div class='del'>-     </div><div class='del'>-(2) Change ((|RUBY_INSTALL_NAME|)) and ((|RUBY_SO_NAME|)) in (({Makefile}))</div><div class='del'>-    if you want to change the name of the executable files. </div><div class='del'>-    And add ((|RUBYW_INSTALL_NAME|)) to change the name of the</div><div class='del'>-    executable without console window if also you want.</div><div class='del'>-</div><div class='del'>-(3) Run `((%make%))'</div><div class='del'>-</div><div class='del'>-(4) Run `((%make test%))'</div><div class='del'>-</div><div class='del'>-(5) Run `((%make DESTDIR=&lt;install_directory&gt; install%))'</div><div class='del'>-</div><div class='del'>-    This command will create following directories and install files onto them.</div><div class='del'>-      * &lt;install_directory&gt;\bin</div><div class='del'>-      * &lt;install_directory&gt;\lib</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby\&lt;MAJOR&gt;.&lt;MINOR&gt;</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby\&lt;MAJOR&gt;.&lt;MINOR&gt;\&lt;PLATFORM&gt;</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby\site_ruby</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby\site_ruby\&lt;MAJOR&gt;.&lt;MINOR&gt;</div><div class='del'>-      * &lt;install_directory&gt;\lib\ruby\site_ruby\&lt;MAJOR&gt;.&lt;MINOR&gt;\&lt;PLATFORM&gt;</div><div class='del'>-      * &lt;install_directory&gt;\man\man1</div><div class='del'>-    If Ruby's version is `x.y.z', the ((|&lt;MAJOR&gt;|)) is `x' and the ((|&lt;MINOR&gt;|)) is `y'.</div><div class='del'>-    The ((|&lt;PLATFORM&gt;|)) is usually `(({i586-bccwin32}))'.</div><div class='del'>-</div><div class='del'>-(6) Requires dynamic RTL (cc3250.dll on C++Builder5) and borlndmm.dll (If built with</div><div class='del'>-    usebormm.lib) to use installed binary. These files are ordinary in bcc32's bin</div><div class='del'>-    directory.</div><div class='del'>-</div><div class='del'>-== Icons</div><div class='del'>-</div><div class='del'>-Any icon files(*.ico) in the build directory, directories specified with</div><div class='del'>-((|icondirs|)) make variable and (({win32})) directory under the ruby</div><div class='del'>-source directory will be included in DLL or executable files, according</div><div class='del'>-to their base names.</div><div class='del'>-    $(RUBY_INSTALL_NAME).ico or ruby.ico   --&gt; $(RUBY_INSTALL_NAME).exe</div><div class='del'>-    $(RUBYW_INSTALL_NAME).ico or rubyw.ico --&gt; $(RUBYW_INSTALL_NAME).exe</div><div class='del'>-    the others                             --&gt; $(RUBY_SO_NAME).dll</div><div class='del'>-</div><div class='del'>-Although no icons are distributed with the ruby source or in the official </div><div class='del'>-site, you can use anything you like. For example, followings are written </div><div class='del'>-in Japanese, but you can download at least.</div><div class='del'>-</div><div class='del'>-* ((&lt;URL:http://member.nifty.ne.jp/ueivu/rubyico.html&gt;)) or</div><div class='del'>-  ((&lt;zipped icons|URL:http://member.nifty.ne.jp/ueivu/Ruby_ico.zip&gt;))</div><div class='del'>-* ((&lt;URL:http://homepage1.nifty.com/a_nakata/ruby/&gt;)) or</div><div class='del'>-  ((&lt;icon itself|URL:http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico&gt;))</div><div class='del'>-</div><div class='del'>-== Build examples</div><div class='del'>-</div><div class='del'>-* Build on the ruby source directory.</div><div class='del'>-</div><div class='del'>-  ex.)</div><div class='del'>-    ruby source directory:  C:\ruby</div><div class='del'>-    build directory:        C:\ruby</div><div class='del'>-    install directory:      C:\usr\local</div><div class='del'>-</div><div class='del'>-    C:</div><div class='del'>-    cd \ruby</div><div class='del'>-    bcc32\configure</div><div class='del'>-    make</div><div class='del'>-    make test</div><div class='del'>-    make DESTDIR=/usr/local install</div><div class='del'>-</div><div class='del'>-* Build on the relative directory from the ruby source directory and CPU type </div><div class='del'>-  i386.</div><div class='del'>-</div><div class='del'>-  ex.)</div><div class='del'>-    ruby source directory:  C:\ruby</div><div class='del'>-    build directory:        C:\ruby\bccwin32</div><div class='del'>-    install directory:      C:\usr\local</div><div class='del'>-    CPU                     i386</div><div class='del'>-    </div><div class='del'>-    C:</div><div class='del'>-    cd \ruby</div><div class='del'>-    mkdir bccwin32</div><div class='del'>-    cd bccwin32</div><div class='del'>-    ..\bcc32\configure target i386-bccwin32</div><div class='del'>-    make</div><div class='del'>-    make test</div><div class='del'>-    make DESTDIR=/usr/local install</div><div class='del'>-</div><div class='del'>-* Build on the different drive.</div><div class='del'>-</div><div class='del'>-  ex.)</div><div class='del'>-    ruby source directory:  C:\src\ruby</div><div class='del'>-    build directory:        D:\build\ruby</div><div class='del'>-    install directory:      C:\usr\local</div><div class='del'>-</div><div class='del'>-    D:</div><div class='del'>-    cd D:\build\ruby</div><div class='del'>-    C:\src\ruby\bcc32\configure</div><div class='del'>-    make</div><div class='del'>-    make test</div><div class='del'>-    make DESTDIR=C:/usr/local install</div><div class='del'>-</div><div class='del'>-== Bugs</div><div class='del'>-</div><div class='del'>-You can ((*NOT*)) use a path name contains any white space characters as</div><div class='del'>-the ruby source directory, this restriction comes from the behavior of</div><div class='del'>-(({!INCLUDE})) directives of (({MAKE})).</div><div class='del'>-((- you may call it a bug. -))</div><div class='del'>-</div><div class='del'>-=end</div><div class='head'>diff --git a/bcc32/configure.bat b/bcc32/configure.bat<br/>deleted file mode 100755<br/>index 143ad947f0..0000000000<br/>--- a/<a href='/ruby.git/tree/bcc32/configure.bat?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/configure.bat</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,92 +0,0 @@</div><div class='del'>-@echo off</div><div class='del'>-::: Don't set environment variable in batch file other than autoexec.bat</div><div class='del'>-::: to avoid "Out of environment space" problem on Windows 95/98.</div><div class='del'>-::: set TMPMAKE=~tmp~.mak</div><div class='del'>-</div><div class='del'>-echo&gt; ~tmp~.mak ####</div><div class='del'>-echo&gt;&gt; ~tmp~.mak conf = %0</div><div class='del'>-echo&gt;&gt; ~tmp~.mak $(conf:\=/): nul</div><div class='del'>-echo&gt;&gt; ~tmp~.mak 	@del ~tmp~.mak</div><div class='del'>-echo&gt;&gt; ~tmp~.mak 	@-$(MAKE) -l$(MAKEFLAGS) -f $(@D)setup.mak \</div><div class='del'>-:loop</div><div class='del'>-if "%1" == "" goto :end</div><div class='del'>-if "%1" == "--prefix" goto :prefix</div><div class='del'>-if "%1" == "--srcdir" goto :srcdir</div><div class='del'>-if "%1" == "srcdir" goto :srcdir</div><div class='del'>-if "%1" == "--target" goto :target</div><div class='del'>-if "%1" == "target" goto :target</div><div class='del'>-if "%1" == "--with-static-linked-ext" goto :extstatic</div><div class='del'>-if "%1" == "--program-suffix" goto :suffix</div><div class='del'>-if "%1" == "--program-name" goto :progname</div><div class='del'>-if "%1" == "--enable-install-doc" goto :enable-rdoc</div><div class='del'>-if "%1" == "--disable-install-doc" goto :disable-rdoc</div><div class='del'>-if "%1" == "--extout" goto :extout</div><div class='del'>-if "%1" == "-h" goto :help</div><div class='del'>-if "%1" == "--help" goto :help</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	"%1" \</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:srcdir</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"srcdir=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:prefix</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"prefix=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:suffix</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"RUBY_SUFFIX=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:installname</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"RUBY_INSTALL_NAME=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:soname</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"RUBY_SO_NAME=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:target</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	"%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:extstatic</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"EXTSTATIC=static" \</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:enable-rdoc</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"RDOCTARGET=install-doc" \</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:disable-rdoc</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"RDOCTARGET=install-nodoc" \</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:extout</div><div class='del'>-  echo&gt;&gt; ~tmp~.mak 	-D"EXTOUT=%2" \</div><div class='del'>-  shift</div><div class='del'>-  shift</div><div class='del'>-goto :loop</div><div class='del'>-:help</div><div class='del'>-  echo Configuration:</div><div class='del'>-  echo   --help                  display this help</div><div class='del'>-  echo   --srcdir=DIR            find the sources in DIR [configure dir or `..']</div><div class='del'>-  echo Installation directories:</div><div class='del'>-  echo   --prefix=PREFIX         install files in PREFIX (ignored currently)</div><div class='del'>-  echo System types:</div><div class='del'>-  echo   --target=TARGET         configure for TARGET [i386-bccwin32]</div><div class='del'>-  echo Optional Package:</div><div class='del'>-  echo   --with-static-linked-ext link external modules statically</div><div class='del'>-  echo   --enable-install-doc    install rdoc indexes during install</div><div class='del'>-  del ~tmp~.mak</div><div class='del'>-goto :exit</div><div class='del'>-:end</div><div class='del'>-echo&gt;&gt; ~tmp~.mak 	-Dbcc32dir="$(@D)"</div><div class='del'>-make -s -f ~tmp~.mak</div><div class='del'>-:exit</div><div class='head'>diff --git a/bcc32/mkexports.rb b/bcc32/mkexports.rb<br/>deleted file mode 100755<br/>index dc523e2541..0000000000<br/>--- a/<a href='/ruby.git/tree/bcc32/mkexports.rb?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/mkexports.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!./miniruby -s</div><div class='del'>-</div><div class='del'>-$name = $library = $description = nil</div><div class='del'>-</div><div class='del'>-SYM = {}</div><div class='del'>-STDIN.reopen(open("nul"))</div><div class='del'>-ARGV.each do |obj|</div><div class='del'>-  IO.foreach("|tdump -q -oiPUBDEF -oiPUBD32 #{obj.tr('/', '\\')}") do |l|</div><div class='del'>-    next unless /(?:PUBDEF|PUBD32)/ =~ l</div><div class='del'>-    SYM[$1] = true if /'(.*?)'/ =~ l</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-exports = []</div><div class='del'>-if $name</div><div class='del'>-  exports &lt;&lt; "Name " + $name</div><div class='del'>-elsif $library</div><div class='del'>-  exports &lt;&lt; "Library " + $library</div><div class='del'>-end</div><div class='del'>-exports &lt;&lt; "Description " + $description.dump if $description</div><div class='del'>-exports &lt;&lt; "EXPORTS" &lt;&lt; SYM.keys.sort</div><div class='del'>-</div><div class='del'>-if $output</div><div class='del'>-  open($output, 'w') {|f| f.puts exports.join("\n")}</div><div class='del'>-else</div><div class='del'>-  puts exports.join("\n")</div><div class='del'>-end</div><div class='head'>diff --git a/bcc32/setup.mak b/bcc32/setup.mak<br/>deleted file mode 100644<br/>index b7a2539d0a..0000000000<br/>--- a/<a href='/ruby.git/tree/bcc32/setup.mak?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bcc32/setup.mak</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,133 +0,0 @@</div><div class='del'>-# -*- makefile -*-</div><div class='del'>-</div><div class='del'>-!if "$(srcdir)" != ""</div><div class='del'>-bcc32dir = $(srcdir)/bcc32</div><div class='del'>-!elseif "$(bcc32dir)" == "bcc32/"</div><div class='del'>-srcdir = .</div><div class='del'>-!elseif "$(bcc32dir:/bcc32/=)/bcc32/" == "$(bcc32dir)"</div><div class='del'>-srcdir = $(bcc32dir:/bcc32/=)</div><div class='del'>-!else</div><div class='del'>-srcdir = $(bcc32dir)/..</div><div class='del'>-!endif</div><div class='del'>-!ifndef prefix</div><div class='del'>-prefix = /usr</div><div class='del'>-!endif</div><div class='del'>-OS = bccwin32</div><div class='del'>-RT = $(OS)</div><div class='del'>-BANG = !</div><div class='del'>-APPEND = echo&gt;&gt;$(MAKEFILE)</div><div class='del'>-!ifdef MAKEFILE</div><div class='del'>-MAKE = $(MAKE) -f $(MAKEFILE)</div><div class='del'>-!else</div><div class='del'>-MAKEFILE = Makefile</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-all: Makefile</div><div class='del'>-Makefile: -prologue- -generic- -epilogue-</div><div class='del'>-i386-$(OS): -prologue- -i386- -epilogue-</div><div class='del'>-i486-$(OS): -prologue- -i486- -epilogue-</div><div class='del'>-i586-$(OS): -prologue- -i586- -epilogue-</div><div class='del'>-i686-$(OS): -prologue- -i686- -epilogue-</div><div class='del'>-alpha-$(OS): -prologue- -alpha- -epilogue-</div><div class='del'>-</div><div class='del'>--prologue-: nul</div><div class='del'>-	@echo Creating $(MAKEFILE)</div><div class='del'>-	@type &gt; $(MAKEFILE) &amp;&amp;|</div><div class='del'>-\#\#\# Makefile for ruby $(OS) \#\#\#</div><div class='del'>-$(BANG)ifndef srcdir</div><div class='del'>-srcdir = $(srcdir:\=/)</div><div class='del'>-$(BANG)endif</div><div class='del'>-$(BANG)ifndef prefix</div><div class='del'>-prefix = $(prefix:\=/)</div><div class='del'>-$(BANG)endif</div><div class='del'>-$(BANG)ifndef EXTSTATIC</div><div class='del'>-EXTSTATIC = $(EXTSTATIC)</div><div class='del'>-$(BANG)endif</div><div class='del'>-!if defined(RDOCTARGET)</div><div class='del'>-$(BANG)ifndef RDOCTARGET</div><div class='del'>-RDOCTARGET = $(RDOCTARGET)</div><div class='del'>-$(BANG)endif</div><div class='del'>-!endif</div><div class='del'>-!if defined(EXTOUT)</div><div class='del'>-$(BANG)ifndef EXTOUT</div><div class='del'>-EXTOUT = $(EXTOUT)</div><div class='del'>-$(BANG)endif</div><div class='del'>-!endif</div><div class='del'>-|</div><div class='del'>-	@type &gt; usebormm.bat &amp;&amp;|</div><div class='del'>-@echo off</div><div class='del'>-ilink32 -Gn -x usebormm.lib &gt; nul</div><div class='del'>-if exist usebormm.tds echo MEMLIB = usebormm.lib</div><div class='del'>-|</div><div class='del'>-	@usebormm.bat &gt;&gt; $(MAKEFILE)</div><div class='del'>-	@del usebormm.*</div><div class='del'>-</div><div class='del'>-	@cpp32 -I$(srcdir) -P- -o$(MAKEFILE) &gt; nul &amp;&amp;|</div><div class='del'>-\#include "version.h"</div><div class='del'>-MAJOR = RUBY_VERSION_MAJOR</div><div class='del'>-MINOR = RUBY_VERSION_MINOR</div><div class='del'>-TEENY = RUBY_VERSION_TEENY</div><div class='del'>-|</div><div class='del'>-	@type $(MAKEFILE).i &gt;&gt; $(MAKEFILE)</div><div class='del'>-	@del $(MAKEFILE).i</div><div class='del'>-</div><div class='del'>--generic-: nul</div><div class='del'>-!if defined(PROCESSOR_ARCHITECTURE) ||  defined(PROCESSOR_LEVEL)</div><div class='del'>-	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='del'>-!if defined(PROCESSOR_ARCHITECTURE)</div><div class='del'>-$(BANG)ifndef PROCESSOR_ARCHITECTURE</div><div class='del'>-PROCESSOR_ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)</div><div class='del'>-$(BANG)endif</div><div class='del'>-!endif</div><div class='del'>-!if defined(PROCESSOR_LEVEL)</div><div class='del'>-$(BANG)ifndef PROCESSOR_LEVEL</div><div class='del'>-PROCESSOR_LEVEL = $(PROCESSOR_LEVEL)</div><div class='del'>-$(BANG)endif</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>-|</div><div class='del'>-!endif</div><div class='del'>-</div><div class='del'>--alpha-: nul</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_ARCHITECTURE</div><div class='del'>-	@$(APPEND) PROCESSOR_ARCHITECTURE = alpha</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>--ix86-: nul</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_ARCHITECTURE</div><div class='del'>-	@$(APPEND) PROCESSOR_ARCHITECTURE = x86</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>-</div><div class='del'>--i386-: -ix86-</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='del'>-	@$(APPEND) PROCESSOR_LEVEL = 3</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>--i486-: -ix86-</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='del'>-	@$(APPEND) PROCESSOR_LEVEL = 4</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>--i586-: -ix86-</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='del'>-	@$(APPEND) PROCESSOR_LEVEL = 5</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>--i686-: -ix86-</div><div class='del'>-	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='del'>-	@$(APPEND) PROCESSOR_LEVEL = 6</div><div class='del'>-	@$(APPEND) !endif</div><div class='del'>-</div><div class='del'>--epilogue-: nul</div><div class='del'>-	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='del'>-</div><div class='del'>-\# OS = $(OS)</div><div class='del'>-\# RT = $(RT)</div><div class='del'>-\# RUBY_INSTALL_NAME = ruby</div><div class='del'>-\# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)</div><div class='del'>-\# CFLAGS = -q $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi</div><div class='del'>-\# CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\"</div><div class='del'>-\# STACK = 0x2000000</div><div class='del'>-\# LDFLAGS = -S:$$(STACK)</div><div class='del'>-\# RFLAGS = $$(iconinc)</div><div class='del'>-\# EXTLIBS = cw32.lib import32.lib user32.lib kernel32.lib</div><div class='del'>-$(BANG)include $$(srcdir)/bcc32/Makefile.sub</div><div class='del'>-|</div><div class='del'>-	@$(srcdir:/=\)\win32\rm.bat config.h config.status</div><div class='del'>-	@echo type "`$(MAKE)'" to make ruby for $(OS).</div><div class='head'>diff --git a/benchmark/bm_app_answer.rb b/benchmark/bm_app_answer.rb<br/>new file mode 100644<br/>index 0000000000..3cd8a8fd37<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_answer.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_answer.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+def ack(m, n)</div><div class='add'>+  if m == 0 then</div><div class='add'>+    n + 1</div><div class='add'>+  elsif n == 0 then</div><div class='add'>+    ack(m - 1, 1)</div><div class='add'>+  else</div><div class='add'>+    ack(m - 1, ack(m, n - 1))</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def the_answer_to_life_the_universe_and_everything</div><div class='add'>+  (ack(3,7).to_s.split(//).inject(0){|s,x| s+x.to_i}.to_s + "2" ).to_i</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+answer = the_answer_to_life_the_universe_and_everything</div><div class='head'>diff --git a/benchmark/bm_app_aobench.rb b/benchmark/bm_app_aobench.rb<br/>new file mode 100644<br/>index 0000000000..2bd6acfaf8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_aobench.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_aobench.rb</a></div><div class='hunk'>@@ -0,0 +1,291 @@</div><div class='add'>+# AO render benchmark</div><div class='add'>+# Original program (C) Syoyo Fujita in Javascript (and other languages)</div><div class='add'>+#      https://code.google.com/p/aobench/</div><div class='add'>+# Ruby(yarv2llvm) version by Hideki Miura</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+IMAGE_WIDTH = 256</div><div class='add'>+IMAGE_HEIGHT = 256</div><div class='add'>+NSUBSAMPLES = 2</div><div class='add'>+NAO_SAMPLES = 8</div><div class='add'>+</div><div class='add'>+class Vec</div><div class='add'>+  def initialize(x, y, z)</div><div class='add'>+    @x = x</div><div class='add'>+    @y = y</div><div class='add'>+    @z = z</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  attr_accessor :x, :y, :z</div><div class='add'>+</div><div class='add'>+  def vadd(b)</div><div class='add'>+    Vec.new(@x + b.x, @y + b.y, @z + b.z)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def vsub(b)</div><div class='add'>+    Vec.new(@x - b.x, @y - b.y, @z - b.z)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def vcross(b)</div><div class='add'>+    Vec.new(@y * b.z - @z * b.y,</div><div class='add'>+            @z * b.x - @x * b.z,</div><div class='add'>+            @x * b.y - @y * b.x)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def vdot(b)</div><div class='add'>+    @x * b.x + @y * b.y + @z * b.z</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def vlength</div><div class='add'>+    Math.sqrt(@x * @x + @y * @y + @z * @z)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def vnormalize</div><div class='add'>+    len = vlength</div><div class='add'>+    v = Vec.new(@x, @y, @z)</div><div class='add'>+    if len &gt; 1.0e-17 then</div><div class='add'>+      v.x = v.x / len</div><div class='add'>+      v.y = v.y / len</div><div class='add'>+      v.z = v.z / len</div><div class='add'>+    end</div><div class='add'>+    v</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+class Sphere</div><div class='add'>+  def initialize(center, radius)</div><div class='add'>+    @center = center</div><div class='add'>+    @radius = radius</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  attr_reader :center, :radius</div><div class='add'>+</div><div class='add'>+  def intersect(ray, isect)</div><div class='add'>+    rs = ray.org.vsub(@center)</div><div class='add'>+    b = rs.vdot(ray.dir)</div><div class='add'>+    c = rs.vdot(rs) - (@radius * @radius)</div><div class='add'>+    d = b * b - c</div><div class='add'>+    if d &gt; 0.0 then</div><div class='add'>+      t = - b - Math.sqrt(d)</div><div class='add'>+</div><div class='add'>+      if t &gt; 0.0 and t &lt; isect.t then</div><div class='add'>+        isect.t = t</div><div class='add'>+        isect.hit = true</div><div class='add'>+        isect.pl = Vec.new(ray.org.x + ray.dir.x * t,</div><div class='add'>+                          ray.org.y + ray.dir.y * t,</div><div class='add'>+                          ray.org.z + ray.dir.z * t)</div><div class='add'>+        n = isect.pl.vsub(@center)</div><div class='add'>+        isect.n = n.vnormalize</div><div class='add'>+      else</div><div class='add'>+        0.0</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Plane</div><div class='add'>+  def initialize(p, n)</div><div class='add'>+    @p = p</div><div class='add'>+    @n = n</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def intersect(ray, isect)</div><div class='add'>+    d = -@p.vdot(@n)</div><div class='add'>+    v = ray.dir.vdot(@n)</div><div class='add'>+    v0 = v</div><div class='add'>+    if v &lt; 0.0 then</div><div class='add'>+      v0 = -v</div><div class='add'>+    end</div><div class='add'>+    if v0 &lt; 1.0e-17 then</div><div class='add'>+      return</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    t = -(ray.org.vdot(@n) + d) / v</div><div class='add'>+</div><div class='add'>+    if t &gt; 0.0 and t &lt; isect.t then</div><div class='add'>+      isect.hit = true</div><div class='add'>+      isect.t = t</div><div class='add'>+      isect.n = @n</div><div class='add'>+      isect.pl = Vec.new(ray.org.x + t * ray.dir.x,</div><div class='add'>+                        ray.org.y + t * ray.dir.y,</div><div class='add'>+                        ray.org.z + t * ray.dir.z)</div><div class='add'>+    end</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Ray</div><div class='add'>+  def initialize(org, dir)</div><div class='add'>+    @org = org</div><div class='add'>+    @dir = dir</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  attr_accessor :org, :dir</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Isect</div><div class='add'>+  def initialize</div><div class='add'>+    @t = 10000000.0</div><div class='add'>+    @hit = false</div><div class='add'>+    @pl = Vec.new(0.0, 0.0, 0.0)</div><div class='add'>+    @n = Vec.new(0.0, 0.0, 0.0)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  attr_accessor :t, :hit, :pl, :n</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def clamp(f)</div><div class='add'>+  i = f * 255.5</div><div class='add'>+  if i &gt; 255.0 then</div><div class='add'>+    i = 255.0</div><div class='add'>+  end</div><div class='add'>+  if i &lt; 0.0 then</div><div class='add'>+    i = 0.0</div><div class='add'>+  end</div><div class='add'>+  i.to_i</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def otherBasis(basis, n)</div><div class='add'>+  basis[2] = Vec.new(n.x, n.y, n.z)</div><div class='add'>+  basis[1] = Vec.new(0.0, 0.0, 0.0)</div><div class='add'>+</div><div class='add'>+  if n.x &lt; 0.6 and n.x &gt; -0.6 then</div><div class='add'>+    basis[1].x = 1.0</div><div class='add'>+  elsif n.y &lt; 0.6 and n.y &gt; -0.6 then</div><div class='add'>+    basis[1].y = 1.0</div><div class='add'>+  elsif n.z &lt; 0.6 and n.z &gt; -0.6 then</div><div class='add'>+    basis[1].z = 1.0</div><div class='add'>+  else</div><div class='add'>+    basis[1].x = 1.0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  basis[0] = basis[1].vcross(basis[2])</div><div class='add'>+  basis[0] = basis[0].vnormalize</div><div class='add'>+</div><div class='add'>+  basis[1] = basis[2].vcross(basis[0])</div><div class='add'>+  basis[1] = basis[1].vnormalize</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Scene</div><div class='add'>+  def initialize</div><div class='add'>+    @spheres = Array.new</div><div class='add'>+    @spheres[0] = Sphere.new(Vec.new(-2.0, 0.0, -3.5), 0.5)</div><div class='add'>+    @spheres[1] = Sphere.new(Vec.new(-0.5, 0.0, -3.0), 0.5)</div><div class='add'>+    @spheres[2] = Sphere.new(Vec.new(1.0, 0.0, -2.2), 0.5)</div><div class='add'>+    @plane = Plane.new(Vec.new(0.0, -0.5, 0.0), Vec.new(0.0, 1.0, 0.0))</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def ambient_occlusion(isect)</div><div class='add'>+    basis = Array.new</div><div class='add'>+    otherBasis(basis, isect.n)</div><div class='add'>+</div><div class='add'>+    ntheta    = NAO_SAMPLES</div><div class='add'>+    nphi      = NAO_SAMPLES</div><div class='add'>+    eps       = 0.0001</div><div class='add'>+    occlusion = 0.0</div><div class='add'>+</div><div class='add'>+    p0 = Vec.new(isect.pl.x + eps * isect.n.x,</div><div class='add'>+                isect.pl.y + eps * isect.n.y,</div><div class='add'>+                isect.pl.z + eps * isect.n.z)</div><div class='add'>+    nphi.times do |j|</div><div class='add'>+      ntheta.times do |i|</div><div class='add'>+        r = rand</div><div class='add'>+        phi = 2.0 * 3.14159265 * rand</div><div class='add'>+        x = Math.cos(phi) * Math.sqrt(1.0 - r)</div><div class='add'>+        y = Math.sin(phi) * Math.sqrt(1.0 - r)</div><div class='add'>+        z = Math.sqrt(r)</div><div class='add'>+</div><div class='add'>+        rx = x * basis[0].x + y * basis[1].x + z * basis[2].x</div><div class='add'>+        ry = x * basis[0].y + y * basis[1].y + z * basis[2].y</div><div class='add'>+        rz = x * basis[0].z + y * basis[1].z + z * basis[2].z</div><div class='add'>+</div><div class='add'>+        raydir = Vec.new(rx, ry, rz)</div><div class='add'>+        ray = Ray.new(p0, raydir)</div><div class='add'>+</div><div class='add'>+        occisect = Isect.new</div><div class='add'>+        @spheres[0].intersect(ray, occisect)</div><div class='add'>+        @spheres[1].intersect(ray, occisect)</div><div class='add'>+        @spheres[2].intersect(ray, occisect)</div><div class='add'>+        @plane.intersect(ray, occisect)</div><div class='add'>+        if occisect.hit then</div><div class='add'>+          occlusion = occlusion + 1.0</div><div class='add'>+        else</div><div class='add'>+          0.0</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    occlusion = (ntheta.to_f * nphi.to_f - occlusion) / (ntheta.to_f * nphi.to_f)</div><div class='add'>+</div><div class='add'>+    Vec.new(occlusion, occlusion, occlusion)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def render(w, h, nsubsamples)</div><div class='add'>+    cnt = 0</div><div class='add'>+    nsf = nsubsamples.to_f</div><div class='add'>+    h.times do |y|</div><div class='add'>+      w.times do |x|</div><div class='add'>+        rad = Vec.new(0.0, 0.0, 0.0)</div><div class='add'>+</div><div class='add'>+        # Subsampling</div><div class='add'>+        nsubsamples.times do |v|</div><div class='add'>+          nsubsamples.times do |u|</div><div class='add'>+</div><div class='add'>+            cnt = cnt + 1</div><div class='add'>+            wf = w.to_f</div><div class='add'>+            hf = h.to_f</div><div class='add'>+            xf = x.to_f</div><div class='add'>+            yf = y.to_f</div><div class='add'>+            uf = u.to_f</div><div class='add'>+            vf = v.to_f</div><div class='add'>+</div><div class='add'>+            px = (xf + (uf / nsf) - (wf / 2.0)) / (wf / 2.0)</div><div class='add'>+            py = -(yf + (vf / nsf) - (hf / 2.0)) / (hf / 2.0)</div><div class='add'>+</div><div class='add'>+            eye = Vec.new(px, py, -1.0).vnormalize</div><div class='add'>+</div><div class='add'>+            ray = Ray.new(Vec.new(0.0, 0.0, 0.0), eye)</div><div class='add'>+</div><div class='add'>+            isect = Isect.new</div><div class='add'>+            @spheres[0].intersect(ray, isect)</div><div class='add'>+            @spheres[1].intersect(ray, isect)</div><div class='add'>+            @spheres[2].intersect(ray, isect)</div><div class='add'>+            @plane.intersect(ray, isect)</div><div class='add'>+            if isect.hit then</div><div class='add'>+              col = ambient_occlusion(isect)</div><div class='add'>+              rad.x = rad.x + col.x</div><div class='add'>+              rad.y = rad.y + col.y</div><div class='add'>+              rad.z = rad.z + col.z</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        r = rad.x / (nsf * nsf)</div><div class='add'>+        g = rad.y / (nsf * nsf)</div><div class='add'>+        b = rad.z / (nsf * nsf)</div><div class='add'>+        printf("%c", clamp(r))</div><div class='add'>+        printf("%c", clamp(g))</div><div class='add'>+        printf("%c", clamp(b))</div><div class='add'>+      end</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+alias printf_orig printf</div><div class='add'>+def printf *args</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# File.open("ao.ppm", "w") do |fp|</div><div class='add'>+  printf("P6\n")</div><div class='add'>+  printf("%d %d\n", IMAGE_WIDTH, IMAGE_HEIGHT)</div><div class='add'>+  printf("255\n", IMAGE_WIDTH, IMAGE_HEIGHT)</div><div class='add'>+  Scene.new.render(IMAGE_WIDTH, IMAGE_HEIGHT, NSUBSAMPLES)</div><div class='add'>+# end</div><div class='add'>+</div><div class='add'>+undef printf</div><div class='add'>+alias printf printf_orig</div><div class='head'>diff --git a/benchmark/bm_app_erb.rb b/benchmark/bm_app_erb.rb<br/>new file mode 100644<br/>index 0000000000..77c66a7949<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_erb.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_erb.rb</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+#</div><div class='add'>+# Create many HTML strings with ERB.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+data = DATA.read</div><div class='add'>+max = 15_000</div><div class='add'>+title = "hello world!"</div><div class='add'>+content = "hello world!\n" * 10</div><div class='add'>+</div><div class='add'>+max.times{</div><div class='add'>+  ERB.new(data).result(binding)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+__END__</div><div class='add'>+</div><div class='add'>+&lt;html&gt;</div><div class='add'>+  &lt;head&gt; &lt;%= title %&gt; &lt;/head&gt;</div><div class='add'>+  &lt;body&gt;</div><div class='add'>+    &lt;h1&gt; &lt;%= title %&gt; &lt;/h1&gt;</div><div class='add'>+    &lt;p&gt;</div><div class='add'>+      &lt;%= content %&gt;</div><div class='add'>+    &lt;/p&gt;</div><div class='add'>+  &lt;/body&gt;</div><div class='add'>+&lt;/html&gt;</div><div class='head'>diff --git a/benchmark/bm_app_factorial.rb b/benchmark/bm_app_factorial.rb<br/>new file mode 100644<br/>index 0000000000..45f471dfdb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_factorial.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_factorial.rb</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+def fact(n)</div><div class='add'>+  if(n &gt; 1)</div><div class='add'>+    n * fact(n-1)</div><div class='add'>+  else</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+100.times {</div><div class='add'>+  fact(5000)</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/bm_app_fib.rb b/benchmark/bm_app_fib.rb<br/>new file mode 100644<br/>index 0000000000..34a7b2e725<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_fib.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_fib.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+def fib n</div><div class='add'>+  if n &lt; 3</div><div class='add'>+    1</div><div class='add'>+  else</div><div class='add'>+    fib(n-1) + fib(n-2)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+fib(34)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_app_lc_fizzbuzz.rb b/benchmark/bm_app_lc_fizzbuzz.rb<br/>new file mode 100644<br/>index 0000000000..f09574bbeb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_lc_fizzbuzz.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_lc_fizzbuzz.rb</a></div><div class='hunk'>@@ -0,0 +1,52 @@</div><div class='add'>+#</div><div class='add'>+# FizzBuzz program using only lambda calculus</div><div class='add'>+#</div><div class='add'>+# This program is quoted from</div><div class='add'>+#   "Understanding Computation" by Tom Stuart</div><div class='add'>+#   http://computationbook.com/</div><div class='add'>+#</div><div class='add'>+# You can understand why this program works fine by reading this book.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+solution = -&gt; k { -&gt; f { -&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; l { -&gt; x { -&gt; g { -&gt; b { b }[-&gt; p { p[-&gt; x { -&gt; y { x } }] }[l]][x][-&gt; y { g[f[-&gt; l { -&gt; p { p[-&gt; x { -&gt; y { y } }] }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[l]] }[l]][x][g]][-&gt; l { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[l]] }[l]][y] }] } } } }][k][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][-&gt; l { -&gt; x { -&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[l][f[x]] } }] } }[-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[m][n]][-&gt; x { -&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[f[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[m]][n]][m][x] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]] } } }][-&gt; p { -&gt; x { p[x] } }][-&gt; p { -&gt; x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] } }]][-&gt; n { -&gt; b { b }[-&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][m]][-&gt; x { f[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-&gt; p { -&gt; x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]] } }]]][-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]][-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]][-&gt; b { b }[-&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][m]][-&gt; x { f[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-&gt; p { -&gt; x { p[p[p[x]]] } }]]][-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]][-&gt; b { b }[-&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][m]][-&gt; x { f[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]][-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]]]][-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]][-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; n { -&gt; l { -&gt; x { -&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; l { -&gt; x { -&gt; g { -&gt; b { b }[-&gt; p { p[-&gt; x { -&gt; y { x } }] }[l]][x][-&gt; y { g[f[-&gt; l { -&gt; p { p[-&gt; x { -&gt; y { y } }] }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[l]] }[l]][x][g]][-&gt; l { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[l]] }[l]][y] }] } } } }][l][-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }[-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][x]][-&gt; l { -&gt; x { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { y } }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[x][l]] } }] } }[-&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }[-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]]][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; x { -&gt; y { x } }][-&gt; x { -&gt; y { x } }]][-&gt; x { f[-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][m]][-&gt; x { -&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[f[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]][n]][x] }][-&gt; p { -&gt; x { x } }] } } }][n][-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]][x] }]][-&gt; f { -&gt; x { f[-&gt; y { x[x][y] }] }[-&gt; x { f[-&gt; y { x[x][y] }] }] }[-&gt; f { -&gt; m { -&gt; n { -&gt; b { b }[-&gt; m { -&gt; n { -&gt; n { n[-&gt; x { -&gt; x { -&gt; y { y } } }][-&gt; x { -&gt; y { x } }] }[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]] } }[n][m]][-&gt; x { f[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { p[-&gt; x { -&gt; y { x } }] }[n[-&gt; p { -&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]][-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }[-&gt; p { p[-&gt; x { -&gt; y { y } }] }[p]]] }][-&gt; x { -&gt; y { -&gt; f { f[x][y] } } }[-&gt; p { -&gt; x { x } }][-&gt; p { -&gt; x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-&gt; m { -&gt; n { n[-&gt; m { -&gt; n { n[-&gt; n { -&gt; p { -&gt; x { p[n[p][x]] } } }][m] } }[m]][-&gt; p { -&gt; x { x } }] } }[-&gt; p { -&gt; x { p[p[x]] } }][-&gt; p { -&gt; x { p[p[p[p[p[x]]]]] } }]]] } }][n]]]] }]</div><div class='add'>+</div><div class='add'>+FIRST     = -&gt; l { LEFT[RIGHT[l]] }</div><div class='add'>+IF        = -&gt; b { b }</div><div class='add'>+LEFT      = -&gt; p { p[-&gt; x { -&gt; y { x } } ] }</div><div class='add'>+RIGHT     = -&gt; p { p[-&gt; x { -&gt; y { y } } ] }</div><div class='add'>+IS_EMPTY  = LEFT</div><div class='add'>+REST      = -&gt; l { RIGHT[RIGHT[l]] }</div><div class='add'>+</div><div class='add'>+def to_integer(proc)</div><div class='add'>+  proc[-&gt; n { n + 1 }][0]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def to_boolean(proc)</div><div class='add'>+  IF[proc][true][false]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def to_array(proc)</div><div class='add'>+  array = []</div><div class='add'>+</div><div class='add'>+  until to_boolean(IS_EMPTY[proc])</div><div class='add'>+    array.push(FIRST[proc])</div><div class='add'>+    proc = REST[proc]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  array</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def to_char(c)</div><div class='add'>+  '0123456789BFiuz'.slice(to_integer(c))</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def to_string(s)</div><div class='add'>+  to_array(s).map { |c| to_char(c) }.join</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+answer = to_array(solution).map do |p|</div><div class='add'>+  to_string(p)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+answer_ary = answer.to_a</div><div class='add'>+# puts answer_ary</div><div class='head'>diff --git a/benchmark/bm_app_mandelbrot.rb b/benchmark/bm_app_mandelbrot.rb<br/>new file mode 100644<br/>index 0000000000..801b75e8e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_mandelbrot.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_mandelbrot.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+require 'complex'</div><div class='add'>+</div><div class='add'>+def mandelbrot? z</div><div class='add'>+  i = 0</div><div class='add'>+  while i&lt;100</div><div class='add'>+    i += 1</div><div class='add'>+    z = z * z</div><div class='add'>+    return false if z.abs &gt; 2</div><div class='add'>+  end</div><div class='add'>+  true</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ary = []</div><div class='add'>+</div><div class='add'>+(0..1000).each{|dx|</div><div class='add'>+  (0..1000).each{|dy|</div><div class='add'>+    x = dx / 50.0</div><div class='add'>+    y = dy / 50.0</div><div class='add'>+    c = Complex(x, y)</div><div class='add'>+    ary &lt;&lt; c if mandelbrot?(c)</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_app_pentomino.rb b/benchmark/bm_app_pentomino.rb<br/>new file mode 100644<br/>index 0000000000..59c63f358e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_pentomino.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_pentomino.rb</a></div><div class='hunk'>@@ -0,0 +1,259 @@</div><div class='add'>+#!/usr/local/bin/ruby</div><div class='add'>+# This program is contributed by Shin Nishiyama</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+# modified by K.Sasada</div><div class='add'>+</div><div class='add'>+NP = 5</div><div class='add'>+ROW = 8 + NP</div><div class='add'>+COL = 8</div><div class='add'>+</div><div class='add'>+$p = []</div><div class='add'>+$b = []</div><div class='add'>+$no = 0</div><div class='add'>+</div><div class='add'>+def piece(n, a, nb)</div><div class='add'>+  nb.each{|x|</div><div class='add'>+    a[n] = x</div><div class='add'>+    if n == NP-1</div><div class='add'>+      $p &lt;&lt; [a.sort]</div><div class='add'>+    else</div><div class='add'>+      nbc=nb.dup</div><div class='add'>+      [-ROW, -1, 1, ROW].each{|d|</div><div class='add'>+        if x+d &gt; 0 and not a.include?(x+d) and not nbc.include?(x+d)</div><div class='add'>+          nbc &lt;&lt; x+d</div><div class='add'>+        end</div><div class='add'>+      }</div><div class='add'>+      nbc.delete x</div><div class='add'>+      piece(n+1,a[0..n],nbc)</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def kikaku(a)</div><div class='add'>+  a.collect {|x| x - a[0]}</div><div class='add'>+end</div><div class='add'>+def ud(a)</div><div class='add'>+  kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort)</div><div class='add'>+end</div><div class='add'>+def rl(a)</div><div class='add'>+  kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort)</div><div class='add'>+end</div><div class='add'>+def xy(a)</div><div class='add'>+  kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def mkpieces</div><div class='add'>+  piece(0,[],[0])</div><div class='add'>+  $p.each do |a|</div><div class='add'>+    a0 = a[0]</div><div class='add'>+    a[1] = ud(a0)</div><div class='add'>+    a[2] = rl(a0)</div><div class='add'>+    a[3] = ud(rl(a0))</div><div class='add'>+    a[4] = xy(a0)</div><div class='add'>+    a[5] = ud(xy(a0))</div><div class='add'>+    a[6] = rl(xy(a0))</div><div class='add'>+    a[7] = ud(rl(xy(a0)))</div><div class='add'>+    a.sort!</div><div class='add'>+    a.uniq!</div><div class='add'>+  end</div><div class='add'>+  $p.uniq!.sort! {|x,y| x[0] &lt;=&gt; y[0] }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def mkboard</div><div class='add'>+  (0...ROW*COL).each{|i|</div><div class='add'>+    if i % ROW &gt;= ROW-NP</div><div class='add'>+      $b[i] = -2</div><div class='add'>+    else</div><div class='add'>+      $b[i] = -1</div><div class='add'>+    end</div><div class='add'>+    $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def pboard</div><div class='add'>+  return # skip print</div><div class='add'>+  print "No. #$no\n"</div><div class='add'>+  (0...COL).each{|i|</div><div class='add'>+    print "|"</div><div class='add'>+    (0...ROW-NP).each{|j|</div><div class='add'>+      x = $b[i*ROW+j]</div><div class='add'>+      if x &lt; 0</div><div class='add'>+        print "..|"</div><div class='add'>+      else</div><div class='add'>+        printf "%2d|",x+1</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    print "\n"</div><div class='add'>+  }</div><div class='add'>+  print "\n"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$pnum=[]</div><div class='add'>+def setpiece(a,pos)</div><div class='add'>+  if a.length == $p.length then</div><div class='add'>+    $no += 1</div><div class='add'>+    pboard</div><div class='add'>+    return</div><div class='add'>+  end</div><div class='add'>+  while $b[pos] != -1</div><div class='add'>+    pos += 1</div><div class='add'>+  end</div><div class='add'>+  ($pnum - a).each do |i|</div><div class='add'>+    $p[i].each do |x|</div><div class='add'>+      f = 0</div><div class='add'>+      x.each{|s|</div><div class='add'>+        if $b[pos+s] != -1</div><div class='add'>+          f=1</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+      }</div><div class='add'>+      if f == 0 then</div><div class='add'>+        x.each{|s|</div><div class='add'>+          $b[pos+s] = i</div><div class='add'>+        }</div><div class='add'>+        a &lt;&lt; i</div><div class='add'>+        setpiece(a.dup, pos)</div><div class='add'>+        a.pop</div><div class='add'>+        x.each{|s|</div><div class='add'>+          $b[pos+s] = -1</div><div class='add'>+        }</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+mkpieces</div><div class='add'>+mkboard</div><div class='add'>+$p[4] = [$p[4][0]]</div><div class='add'>+$pnum = (0...$p.length).to_a</div><div class='add'>+setpiece([],0)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+__END__</div><div class='add'>+</div><div class='add'>+# original</div><div class='add'>+</div><div class='add'>+NP = 5</div><div class='add'>+ROW = 8 + NP</div><div class='add'>+COL = 8</div><div class='add'>+</div><div class='add'>+$p = []</div><div class='add'>+$b = []</div><div class='add'>+$no = 0</div><div class='add'>+</div><div class='add'>+def piece(n,a,nb)</div><div class='add'>+  for x in nb</div><div class='add'>+    a[n] = x</div><div class='add'>+    if n == NP-1</div><div class='add'>+      $p &lt;&lt; [a.sort]</div><div class='add'>+    else</div><div class='add'>+      nbc=nb.dup</div><div class='add'>+      for d in [-ROW, -1, 1, ROW]</div><div class='add'>+        if x+d &gt; 0 and not a.include?(x+d) and not nbc.include?(x+d)</div><div class='add'>+          nbc &lt;&lt; x+d</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      nbc.delete x</div><div class='add'>+      piece(n+1,a[0..n],nbc)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def kikaku(a)</div><div class='add'>+  a.collect {|x| x - a[0]}</div><div class='add'>+end</div><div class='add'>+def ud(a)</div><div class='add'>+  kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort)</div><div class='add'>+end</div><div class='add'>+def rl(a)</div><div class='add'>+  kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort)</div><div class='add'>+end</div><div class='add'>+def xy(a)</div><div class='add'>+  kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def mkpieces</div><div class='add'>+  piece(0,[],[0])</div><div class='add'>+  $p.each do |a|</div><div class='add'>+    a0 = a[0]</div><div class='add'>+    a[1] = ud(a0)</div><div class='add'>+    a[2] = rl(a0)</div><div class='add'>+    a[3] = ud(rl(a0))</div><div class='add'>+    a[4] = xy(a0)</div><div class='add'>+    a[5] = ud(xy(a0))</div><div class='add'>+    a[6] = rl(xy(a0))</div><div class='add'>+    a[7] = ud(rl(xy(a0)))</div><div class='add'>+    a.sort!</div><div class='add'>+    a.uniq!</div><div class='add'>+  end</div><div class='add'>+  $p.uniq!.sort! {|x,y| x[0] &lt;=&gt; y[0] }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def mkboard</div><div class='add'>+  for i in 0...ROW*COL</div><div class='add'>+    if i % ROW &gt;= ROW-NP</div><div class='add'>+      $b[i] = -2</div><div class='add'>+    else</div><div class='add'>+      $b[i] = -1</div><div class='add'>+    end</div><div class='add'>+    $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def pboard</div><div class='add'>+  print "No. #$no\n"</div><div class='add'>+  for i in 0...COL</div><div class='add'>+    print "|"</div><div class='add'>+    for j in 0...ROW-NP</div><div class='add'>+      x = $b[i*ROW+j]</div><div class='add'>+      if x &lt; 0</div><div class='add'>+        print "..|"</div><div class='add'>+      else</div><div class='add'>+        printf "%2d|",x+1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    print "\n"</div><div class='add'>+  end</div><div class='add'>+  print "\n"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$pnum=[]</div><div class='add'>+def setpiece(a,pos)</div><div class='add'>+  if a.length == $p.length then</div><div class='add'>+    $no += 1</div><div class='add'>+    pboard</div><div class='add'>+    return</div><div class='add'>+  end</div><div class='add'>+  while $b[pos] != -1</div><div class='add'>+    pos += 1</div><div class='add'>+  end</div><div class='add'>+  ($pnum - a).each do |i|</div><div class='add'>+    $p[i].each do |x|</div><div class='add'>+      f = 0</div><div class='add'>+      for s in x do</div><div class='add'>+        if $b[pos+s] != -1</div><div class='add'>+          f=1</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      if f == 0 then</div><div class='add'>+        for s in x do</div><div class='add'>+          $b[pos+s] = i</div><div class='add'>+        end</div><div class='add'>+        a &lt;&lt; i</div><div class='add'>+        setpiece(a.dup, pos)</div><div class='add'>+        a.pop</div><div class='add'>+        for s in x do</div><div class='add'>+          $b[pos+s] = -1</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+mkpieces</div><div class='add'>+mkboard</div><div class='add'>+$p[4] = [$p[4][0]]</div><div class='add'>+$pnum = (0...$p.length).to_a</div><div class='add'>+setpiece([],0)</div><div class='head'>diff --git a/benchmark/bm_app_raise.rb b/benchmark/bm_app_raise.rb<br/>new file mode 100644<br/>index 0000000000..5db8f95d50<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_raise.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_raise.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;300000</div><div class='add'>+  i += 1</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_app_strconcat.rb b/benchmark/bm_app_strconcat.rb<br/>new file mode 100644<br/>index 0000000000..7eed7c1aed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_strconcat.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_strconcat.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;2_000_000</div><div class='add'>+  "#{1+1} #{1+1} #{1+1}"</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_app_tak.rb b/benchmark/bm_app_tak.rb<br/>new file mode 100644<br/>index 0000000000..efe5380f4e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_tak.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_tak.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+</div><div class='add'>+def tak x, y, z</div><div class='add'>+  unless y &lt; x</div><div class='add'>+    z</div><div class='add'>+  else</div><div class='add'>+    tak( tak(x-1, y, z),</div><div class='add'>+         tak(y-1, z, x),</div><div class='add'>+         tak(z-1, x, y))</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+tak(18, 9, 0)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_app_tarai.rb b/benchmark/bm_app_tarai.rb<br/>new file mode 100644<br/>index 0000000000..4c146f5ccf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_tarai.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_tarai.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+def tarai( x, y, z )</div><div class='add'>+  if x &lt;= y</div><div class='add'>+  then y</div><div class='add'>+  else tarai(tarai(x-1, y, z),</div><div class='add'>+             tarai(y-1, z, x),</div><div class='add'>+             tarai(z-1, x, y))</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+tarai(12, 6, 0)</div><div class='head'>diff --git a/benchmark/bm_app_uri.rb b/benchmark/bm_app_uri.rb<br/>new file mode 100644<br/>index 0000000000..586edfd5dc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_uri.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_app_uri.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+require 'uri'</div><div class='add'>+</div><div class='add'>+100_000.times{</div><div class='add'>+  uri = URI.parse('http://www.ruby-lang.org')</div><div class='add'>+  uri.scheme</div><div class='add'>+  uri.host</div><div class='add'>+  uri.port</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k_10.rb b/benchmark/bm_array_sample_100k_10.rb<br/>new file mode 100644<br/>index 0000000000..5f41ecc32b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k_10.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k_10.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 10}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k_11.rb b/benchmark/bm_array_sample_100k_11.rb<br/>new file mode 100644<br/>index 0000000000..18b1715319<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k_11.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k_11.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 11}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k__100.rb b/benchmark/bm_array_sample_100k__100.rb<br/>new file mode 100644<br/>index 0000000000..22863afe89<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k__100.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k__100.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 100}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k__1k.rb b/benchmark/bm_array_sample_100k__1k.rb<br/>new file mode 100644<br/>index 0000000000..4cd79e6c67<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k__1k.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k__1k.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 1000}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k__6k.rb b/benchmark/bm_array_sample_100k__6k.rb<br/>new file mode 100644<br/>index 0000000000..b3d264249e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k__6k.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k__6k.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 6000}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k___10k.rb b/benchmark/bm_array_sample_100k___10k.rb<br/>new file mode 100644<br/>index 0000000000..5dd55ec058<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k___10k.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k___10k.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 10_000}</div><div class='head'>diff --git a/benchmark/bm_array_sample_100k___50k.rb b/benchmark/bm_array_sample_100k___50k.rb<br/>new file mode 100644<br/>index 0000000000..1506732c3c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sample_100k___50k.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sample_100k___50k.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = [*0...100000]</div><div class='add'>+10_000.times {arr.sample 50_000}</div><div class='head'>diff --git a/benchmark/bm_array_shift.rb b/benchmark/bm_array_shift.rb<br/>new file mode 100644<br/>index 0000000000..798bb9e3f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_shift.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_shift.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+require 'benchmark'</div><div class='add'>+</div><div class='add'>+Benchmark.bm do |x|</div><div class='add'>+  [10_000,1_000_000,100_000_000].each do |n|</div><div class='add'>+    ary = Array.new(n,0)</div><div class='add'>+    GC.start</div><div class='add'>+    x.report("#{n}:shift"){ ary.shift }</div><div class='add'>+    (0..4).each do |i|</div><div class='add'>+      ary = Array.new(n,0)</div><div class='add'>+      GC.start</div><div class='add'>+      x.report("#{n}:shift(#{i})"){ ary.shift(i) }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_array_small_and.rb b/benchmark/bm_array_small_and.rb<br/>new file mode 100644<br/>index 0000000000..e53a6edae6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_small_and.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_small_and.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i</div><div class='add'>+MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i</div><div class='add'>+ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i</div><div class='add'>+</div><div class='add'>+ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|</div><div class='add'>+  (MIN_SIZE..MAX_SIZE).map do |size2|</div><div class='add'>+    [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ITERATIONS.times do</div><div class='add'>+  ARRAYS.each do |group|</div><div class='add'>+    group.each do |arr1, arr2|</div><div class='add'>+      arr1 &amp; arr2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_array_small_diff.rb b/benchmark/bm_array_small_diff.rb<br/>new file mode 100644<br/>index 0000000000..9661ee48db<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_small_diff.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_small_diff.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i</div><div class='add'>+MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i</div><div class='add'>+ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i</div><div class='add'>+</div><div class='add'>+ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|</div><div class='add'>+  (MIN_SIZE..MAX_SIZE).map do |size2|</div><div class='add'>+    [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ITERATIONS.times do</div><div class='add'>+  ARRAYS.each do |group|</div><div class='add'>+    group.each do |arr1, arr2|</div><div class='add'>+      arr1 - arr2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_array_small_or.rb b/benchmark/bm_array_small_or.rb<br/>new file mode 100644<br/>index 0000000000..c58b5fd1ff<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_small_or.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_small_or.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i</div><div class='add'>+MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i</div><div class='add'>+ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i</div><div class='add'>+</div><div class='add'>+ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|</div><div class='add'>+  (MIN_SIZE..MAX_SIZE).map do |size2|</div><div class='add'>+    [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ITERATIONS.times do</div><div class='add'>+  ARRAYS.each do |group|</div><div class='add'>+    group.each do |arr1, arr2|</div><div class='add'>+      arr1 | arr2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_array_sort_block.rb b/benchmark/bm_array_sort_block.rb<br/>new file mode 100644<br/>index 0000000000..3579786056<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sort_block.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sort_block.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+ary = Array.new(1000) { rand(1000) }</div><div class='add'>+10000.times { ary.sort { |a, b| a &lt;=&gt; b } }</div><div class='head'>diff --git a/benchmark/bm_array_sort_float.rb b/benchmark/bm_array_sort_float.rb<br/>new file mode 100644<br/>index 0000000000..9a6e2f8bd2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_array_sort_float.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_array_sort_float.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+arr = Array.new(1000) { rand }</div><div class='add'>+10000.times { arr.sort }</div><div class='head'>diff --git a/benchmark/bm_bighash.rb b/benchmark/bm_bighash.rb<br/>new file mode 100644<br/>index 0000000000..e2ad5a5c94<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_bighash.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_bighash.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+h = {}; 5000000.times {|n| h[n] = n }</div><div class='head'>diff --git a/benchmark/bm_dir_empty_p.rb b/benchmark/bm_dir_empty_p.rb<br/>new file mode 100644<br/>index 0000000000..8329c757cf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_dir_empty_p.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_dir_empty_p.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+require 'tmpdir'</div><div class='add'>+max = 100_000</div><div class='add'>+Dir.mktmpdir('bm_dir_empty_p') do |dir|</div><div class='add'>+  max.times { Dir.empty?(dir) }</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_erb_render.rb b/benchmark/bm_erb_render.rb<br/>new file mode 100644<br/>index 0000000000..d2929b0553<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_erb_render.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_erb_render.rb</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+data = DATA.read</div><div class='add'>+max = 1_500_000</div><div class='add'>+title = "hello world!"</div><div class='add'>+content = "hello world!\n" * 10</div><div class='add'>+</div><div class='add'>+src = "def self.render(title, content); #{ERB.new(data).src}; end"</div><div class='add'>+mod = Module.new</div><div class='add'>+mod.instance_eval(src, "(ERB)")</div><div class='add'>+</div><div class='add'>+max.times do</div><div class='add'>+  mod.render(title, content)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+__END__</div><div class='add'>+</div><div class='add'>+&lt;html&gt;</div><div class='add'>+  &lt;head&gt; &lt;%= title %&gt; &lt;/head&gt;</div><div class='add'>+  &lt;body&gt;</div><div class='add'>+    &lt;h1&gt; &lt;%= title %&gt; &lt;/h1&gt;</div><div class='add'>+    &lt;p&gt;</div><div class='add'>+      &lt;%= content %&gt;</div><div class='add'>+    &lt;/p&gt;</div><div class='add'>+  &lt;/body&gt;</div><div class='add'>+&lt;/html&gt;</div><div class='head'>diff --git a/benchmark/bm_file_chmod.rb b/benchmark/bm_file_chmod.rb<br/>new file mode 100644<br/>index 0000000000..1cd4760c9d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_file_chmod.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_file_chmod.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+# chmod file</div><div class='add'>+require 'tempfile'</div><div class='add'>+max = 200_000</div><div class='add'>+tmp = Tempfile.new('chmod')</div><div class='add'>+path = tmp.path</div><div class='add'>+max.times do</div><div class='add'>+  File.chmod(0777, path)</div><div class='add'>+end</div><div class='add'>+tmp.close!</div><div class='head'>diff --git a/benchmark/bm_file_rename.rb b/benchmark/bm_file_rename.rb<br/>new file mode 100644<br/>index 0000000000..3bf6a5ef35<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_file_rename.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_file_rename.rb</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+# rename file</div><div class='add'>+require 'tempfile'</div><div class='add'>+</div><div class='add'>+max = 100_000</div><div class='add'>+tmp = [ Tempfile.new('rename-a'), Tempfile.new('rename-b') ]</div><div class='add'>+a, b = tmp.map { |x| x.path }</div><div class='add'>+max.times do</div><div class='add'>+  File.rename(a, b)</div><div class='add'>+  File.rename(b, a)</div><div class='add'>+end</div><div class='add'>+tmp.each { |t| t.close! }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_dsym.rb b/benchmark/bm_hash_aref_dsym.rb<br/>new file mode 100644<br/>index 0000000000..af4f8c36d4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_dsym.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_dsym.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}</div><div class='add'>+syms = ('a'..'z').map { |s| s.to_sym }</div><div class='add'>+syms.each { |s| h[s] = 1 }</div><div class='add'>+200_000.times { syms.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_dsym_long.rb b/benchmark/bm_hash_aref_dsym_long.rb<br/>new file mode 100644<br/>index 0000000000..9d7759379e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_dsym_long.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_dsym_long.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# [ruby-core:70129] [Bug #11396]</div><div class='add'>+collection_size = 200000</div><div class='add'>+sample_size = 10000</div><div class='add'>+</div><div class='add'>+values = (1..collection_size).to_a.map do |x|</div><div class='add'>+  "THIS IS A LONGER STRING THAT IS ALSO UNIQUE #{x}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+symbol_hash = {}</div><div class='add'>+</div><div class='add'>+values.each do |x|</div><div class='add'>+  symbol_hash[x.to_sym] = 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# use the same samples each time to minimize deviations</div><div class='add'>+rng = Random.new(0)</div><div class='add'>+symbol_sample_array = values.sample(sample_size, random: rng).map(&amp;:to_sym)</div><div class='add'>+</div><div class='add'>+3000.times do</div><div class='add'>+  symbol_sample_array.each { |x| symbol_hash[x] }</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_aref_fix.rb b/benchmark/bm_hash_aref_fix.rb<br/>new file mode 100644<br/>index 0000000000..1346890582<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_fix.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_fix.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}</div><div class='add'>+nums = (1..26).to_a</div><div class='add'>+nums.each { |i| h[i] = i }</div><div class='add'>+200_000.times { nums.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_flo.rb b/benchmark/bm_hash_aref_flo.rb<br/>new file mode 100644<br/>index 0000000000..2217274c82<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_flo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_flo.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}</div><div class='add'>+strs = [*1..10000].map! {|i| i.fdiv(10)}</div><div class='add'>+strs.each { |s| h[s] = s }</div><div class='add'>+50.times { strs.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_miss.rb b/benchmark/bm_hash_aref_miss.rb<br/>new file mode 100644<br/>index 0000000000..b0913dd4bb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_miss.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_miss.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+h = {}</div><div class='add'>+strs = ('a'..'z').to_a.map!(&amp;:freeze)</div><div class='add'>+strs.each { |s| h[s] = s }</div><div class='add'>+strs = ('A'..'Z').to_a</div><div class='add'>+200_000.times { strs.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_str.rb b/benchmark/bm_hash_aref_str.rb<br/>new file mode 100644<br/>index 0000000000..19439b061b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_str.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_str.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}</div><div class='add'>+strs = ('a'..'z').to_a.map!(&amp;:freeze)</div><div class='add'>+strs.each { |s| h[s] = s }</div><div class='add'>+200_000.times { strs.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_sym.rb b/benchmark/bm_hash_aref_sym.rb<br/>new file mode 100644<br/>index 0000000000..f75d163fe6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_sym.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_sym.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+h = {}</div><div class='add'>+syms = ('a'..'z').to_a</div><div class='add'>+begin</div><div class='add'>+  syms = eval("%i[#{syms.join(' ')}]")</div><div class='add'>+rescue SyntaxError # &lt;= 1.9.3</div><div class='add'>+  syms.map!(&amp;:to_sym)</div><div class='add'>+end</div><div class='add'>+syms.each { |s| h[s] = s }</div><div class='add'>+200_000.times { syms.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_aref_sym_long.rb b/benchmark/bm_hash_aref_sym_long.rb<br/>new file mode 100644<br/>index 0000000000..9dab8df7be<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_aref_sym_long.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_aref_sym_long.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+h = {}</div><div class='add'>+syms = %w[puts warn syswrite write stat bacon lettuce tomato</div><div class='add'>+some symbols in this array may already be interned  others should not be</div><div class='add'>+hash browns make good breakfast but not cooked using prime numbers</div><div class='add'>+shift for division entries delete_if keys exist?</div><div class='add'>+]</div><div class='add'>+begin</div><div class='add'>+  syms = eval("%i[#{syms.join(' ')}]")</div><div class='add'>+rescue SyntaxError # &lt;= 1.9.3</div><div class='add'>+  syms.map!(&amp;:to_sym)</div><div class='add'>+end</div><div class='add'>+syms.each { |s| h[s] = s }</div><div class='add'>+200_000.times { syms.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_flatten.rb b/benchmark/bm_hash_flatten.rb<br/>new file mode 100644<br/>index 0000000000..e944aae9f2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_flatten.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_flatten.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+10000.times do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+1000.times do</div><div class='add'>+  h.flatten</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_ident_flo.rb b/benchmark/bm_hash_ident_flo.rb<br/>new file mode 100644<br/>index 0000000000..0c7edfed3e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_ident_flo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_ident_flo.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}.compare_by_identity</div><div class='add'>+strs = (1..10000).to_a.map!(&amp;:to_f)</div><div class='add'>+strs.each { |s| h[s] = s }</div><div class='add'>+50.times { strs.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_ident_num.rb b/benchmark/bm_hash_ident_num.rb<br/>new file mode 100644<br/>index 0000000000..b226736c6f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_ident_num.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_ident_num.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}.compare_by_identity</div><div class='add'>+nums = (1..26).to_a</div><div class='add'>+nums.each { |n| h[n] = n }</div><div class='add'>+200_000.times { nums.each { |n| h[n] } }</div><div class='head'>diff --git a/benchmark/bm_hash_ident_obj.rb b/benchmark/bm_hash_ident_obj.rb<br/>new file mode 100644<br/>index 0000000000..4b3b58edec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_ident_obj.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_ident_obj.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}.compare_by_identity</div><div class='add'>+objs = 26.times.map { Object.new }</div><div class='add'>+objs.each { |o| h[o] = o }</div><div class='add'>+200_000.times { objs.each { |o| h[o] } }</div><div class='head'>diff --git a/benchmark/bm_hash_ident_str.rb b/benchmark/bm_hash_ident_str.rb<br/>new file mode 100644<br/>index 0000000000..8582b38e31<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_ident_str.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_ident_str.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}.compare_by_identity</div><div class='add'>+strs = ('a'..'z').to_a</div><div class='add'>+strs.each { |s| h[s] = s }</div><div class='add'>+200_000.times { strs.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_ident_sym.rb b/benchmark/bm_hash_ident_sym.rb<br/>new file mode 100644<br/>index 0000000000..4c81e3d28e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_ident_sym.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_ident_sym.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+h = {}.compare_by_identity</div><div class='add'>+syms = ('a'..'z').to_a.map(&amp;:to_sym)</div><div class='add'>+syms.each { |s| h[s] = s }</div><div class='add'>+200_000.times { syms.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/bm_hash_keys.rb b/benchmark/bm_hash_keys.rb<br/>new file mode 100644<br/>index 0000000000..6863cd01f9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_keys.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_keys.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+10000.times do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+5000.times do</div><div class='add'>+  h.keys</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_long.rb b/benchmark/bm_hash_long.rb<br/>new file mode 100644<br/>index 0000000000..03d9109602<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_long.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_long.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+k1 = "Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong";</div><div class='add'>+k2 = "Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping";</div><div class='add'>+h = {k1 =&gt; 0, k2 =&gt; 0};</div><div class='add'>+3000000.times{|i| k = i % 2 ? k2 : k1; h [k] = h[k] + 1}</div><div class='head'>diff --git a/benchmark/bm_hash_shift.rb b/benchmark/bm_hash_shift.rb<br/>new file mode 100644<br/>index 0000000000..a645671a5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_shift.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_shift.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+10000.times do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+50000.times do</div><div class='add'>+  k, v = h.shift</div><div class='add'>+  h[k] = v</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_shift_u16.rb b/benchmark/bm_hash_shift_u16.rb<br/>new file mode 100644<br/>index 0000000000..ec800d0342<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_shift_u16.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_shift_u16.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+(16384..65536).each do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+300000.times do</div><div class='add'>+  k, v = h.shift</div><div class='add'>+  h[k] = v</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_shift_u24.rb b/benchmark/bm_hash_shift_u24.rb<br/>new file mode 100644<br/>index 0000000000..de4e0fa696<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_shift_u24.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_shift_u24.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+(0xff4000..0xffffff).each do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+300000.times do</div><div class='add'>+  k, v = h.shift</div><div class='add'>+  h[k] = v</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_shift_u32.rb b/benchmark/bm_hash_shift_u32.rb<br/>new file mode 100644<br/>index 0000000000..656aa55583<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_shift_u32.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_shift_u32.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+(0xffff4000..0xffffffff).each do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+300000.times do</div><div class='add'>+  k, v = h.shift</div><div class='add'>+  h[k] = v</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_small2.rb b/benchmark/bm_hash_small2.rb<br/>new file mode 100644<br/>index 0000000000..45485d9c71<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_small2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_small2.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+1000000.times.map{|i| a={}; 2.times{|j| a[j]=j}; a}</div><div class='head'>diff --git a/benchmark/bm_hash_small4.rb b/benchmark/bm_hash_small4.rb<br/>new file mode 100644<br/>index 0000000000..acd4084334<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_small4.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_small4.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+1000000.times.map{|i| a={}; 4.times{|j| a[j]=j}; a}</div><div class='head'>diff --git a/benchmark/bm_hash_small8.rb b/benchmark/bm_hash_small8.rb<br/>new file mode 100644<br/>index 0000000000..9cffcc91b6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_small8.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_small8.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+1000000.times.map{|i| a={}; 8.times{|j| a[j]=j}; a}</div><div class='head'>diff --git a/benchmark/bm_hash_to_proc.rb b/benchmark/bm_hash_to_proc.rb<br/>new file mode 100644<br/>index 0000000000..2b675bf509<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_to_proc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_to_proc.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+10000.times do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+5000.times do |i|</div><div class='add'>+  [i].map(&amp;h)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_hash_values.rb b/benchmark/bm_hash_values.rb<br/>new file mode 100644<br/>index 0000000000..069441302f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_hash_values.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_hash_values.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+10000.times do |i|</div><div class='add'>+  h[i] = nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+5000.times do</div><div class='add'>+  h.values</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_int_quo.rb b/benchmark/bm_int_quo.rb<br/>new file mode 100644<br/>index 0000000000..e22a3f8c30<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_int_quo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_int_quo.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+5000000.times { 42.quo(3) }</div><div class='head'>diff --git a/benchmark/bm_io_copy_stream_write.rb b/benchmark/bm_io_copy_stream_write.rb<br/>new file mode 100644<br/>index 0000000000..3fd87250a4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_copy_stream_write.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_copy_stream_write.rb</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+# The goal of this is to use a synthetic (non-IO) reader</div><div class='add'>+# to trigger the read/write loop of IO.copy_stream,</div><div class='add'>+# bypassing in-kernel mechanisms like sendfile for zero copy,</div><div class='add'>+# so we wrap the /dev/zero IO object:</div><div class='add'>+</div><div class='add'>+class Zero</div><div class='add'>+  def initialize</div><div class='add'>+    @n = 100000</div><div class='add'>+    @in = File.open('/dev/zero', 'rb')</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def read(len, buf)</div><div class='add'>+    return if (@n -= 1) == 0</div><div class='add'>+    @in.read(len, buf)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  src = Zero.new</div><div class='add'>+  dst = File.open(IO::NULL, 'wb')</div><div class='add'>+  n = IO.copy_stream(src, dst)</div><div class='add'>+rescue Errno::ENOENT</div><div class='add'>+  # not *nix</div><div class='add'>+end if IO.respond_to?(:copy_stream) &amp;&amp; IO.const_defined?(:NULL)</div><div class='head'>diff --git a/benchmark/bm_io_copy_stream_write_socket.rb b/benchmark/bm_io_copy_stream_write_socket.rb<br/>new file mode 100644<br/>index 0000000000..11f369bd0d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_copy_stream_write_socket.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_copy_stream_write_socket.rb</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+# The goal of this is to use a synthetic (non-IO) reader</div><div class='add'>+# to trigger the read/write loop of IO.copy_stream,</div><div class='add'>+# bypassing in-kernel mechanisms like sendfile for zero copy,</div><div class='add'>+# so we wrap the /dev/zero IO object:</div><div class='add'>+class Zero</div><div class='add'>+  def initialize</div><div class='add'>+    @n = 100000</div><div class='add'>+    @in = File.open('/dev/zero', 'rb')</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def read(len, buf)</div><div class='add'>+    return if (@n -= 1) == 0</div><div class='add'>+    @in.read(len, buf)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'socket'</div><div class='add'>+  src = Zero.new</div><div class='add'>+  rd, wr = UNIXSocket.pair</div><div class='add'>+  pid = fork do</div><div class='add'>+    wr.close</div><div class='add'>+    buf = String.new</div><div class='add'>+    while rd.read(16384, buf)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  rd.close</div><div class='add'>+  IO.copy_stream(src, wr)</div><div class='add'>+rescue Errno::ENOENT, NotImplementedError, NameError</div><div class='add'>+  # not *nix: missing /dev/zero, fork, or UNIXSocket</div><div class='add'>+rescue LoadError # no socket?</div><div class='add'>+ensure</div><div class='add'>+  wr.close if wr</div><div class='add'>+  Process.waitpid(pid) if pid</div><div class='add'>+end if IO.respond_to?(:copy_stream)</div><div class='head'>diff --git a/benchmark/bm_io_file_create.rb b/benchmark/bm_io_file_create.rb<br/>new file mode 100644<br/>index 0000000000..2f205c1333<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_file_create.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_file_create.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+#</div><div class='add'>+# Create files</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+max = 200_000</div><div class='add'>+file = './tmpfile_of_bm_io_file_create'</div><div class='add'>+</div><div class='add'>+max.times{</div><div class='add'>+  f = open(file, 'w')</div><div class='add'>+  f.close#(true)</div><div class='add'>+}</div><div class='add'>+File.unlink(file)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_io_file_read.rb b/benchmark/bm_io_file_read.rb<br/>new file mode 100644<br/>index 0000000000..b9e796ed30<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_file_read.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_file_read.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+#</div><div class='add'>+# Seek and Read file.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'tempfile'</div><div class='add'>+</div><div class='add'>+max = 200_000</div><div class='add'>+str = "Hello world!  " * 1000</div><div class='add'>+f = Tempfile.new('yarv-benchmark')</div><div class='add'>+f.write str</div><div class='add'>+</div><div class='add'>+max.times{</div><div class='add'>+  f.seek 0</div><div class='add'>+  f.read</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/bm_io_file_write.rb b/benchmark/bm_io_file_write.rb<br/>new file mode 100644<br/>index 0000000000..aa1be0e5fe<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_file_write.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_file_write.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+#</div><div class='add'>+# Seek and Write file.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'tempfile'</div><div class='add'>+</div><div class='add'>+max = 200_000</div><div class='add'>+str = "Hello world!  " * 1000</div><div class='add'>+f = Tempfile.new('yarv-benchmark')</div><div class='add'>+</div><div class='add'>+max.times{</div><div class='add'>+  f.seek 0</div><div class='add'>+  f.write str</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/bm_io_nonblock_noex.rb b/benchmark/bm_io_nonblock_noex.rb<br/>new file mode 100644<br/>index 0000000000..da9357fdc6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_nonblock_noex.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_nonblock_noex.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+nr = 1_000_000</div><div class='add'>+i = 0</div><div class='add'>+msg = '.'</div><div class='add'>+buf = '.'</div><div class='add'>+noex = { exception: false }</div><div class='add'>+begin</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  while i &lt; nr</div><div class='add'>+    i += 1</div><div class='add'>+    w.write_nonblock(msg, noex)</div><div class='add'>+    r.read_nonblock(1, buf, noex)</div><div class='add'>+  end</div><div class='add'>+rescue ArgumentError # old Rubies</div><div class='add'>+  while i &lt; nr</div><div class='add'>+    i += 1</div><div class='add'>+    w.write_nonblock(msg)</div><div class='add'>+    r.read_nonblock(1, buf)</div><div class='add'>+  end</div><div class='add'>+ensure</div><div class='add'>+  r.close</div><div class='add'>+  w.close</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_io_nonblock_noex2.rb b/benchmark/bm_io_nonblock_noex2.rb<br/>new file mode 100644<br/>index 0000000000..56819d049b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_nonblock_noex2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_nonblock_noex2.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+nr = 1_000_000</div><div class='add'>+i = 0</div><div class='add'>+msg = '.'</div><div class='add'>+buf = '.'</div><div class='add'>+begin</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  while i &lt; nr</div><div class='add'>+    i += 1</div><div class='add'>+    w.write_nonblock(msg, exception: false)</div><div class='add'>+    r.read_nonblock(1, buf, exception: false)</div><div class='add'>+  end</div><div class='add'>+rescue ArgumentError # old Rubies</div><div class='add'>+  while i &lt; nr</div><div class='add'>+    i += 1</div><div class='add'>+    w.write_nonblock(msg)</div><div class='add'>+    r.read_nonblock(1, buf)</div><div class='add'>+  end</div><div class='add'>+ensure</div><div class='add'>+  r.close</div><div class='add'>+  w.close</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_io_pipe_rw.rb b/benchmark/bm_io_pipe_rw.rb<br/>new file mode 100644<br/>index 0000000000..6862a8ae61<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_pipe_rw.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_pipe_rw.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+# Measure uncontended GVL performance via read/write with 1:1 threading</div><div class='add'>+# If we switch to M:N threading, this will benchmark something else...</div><div class='add'>+r, w = IO.pipe</div><div class='add'>+src = '0'.freeze</div><div class='add'>+dst = String.new</div><div class='add'>+i = 0</div><div class='add'>+while i &lt; 1_000_000</div><div class='add'>+  i += 1</div><div class='add'>+  w.write(src)</div><div class='add'>+  r.read(1, dst)</div><div class='add'>+end</div><div class='add'>+w.close</div><div class='add'>+r.close</div><div class='head'>diff --git a/benchmark/bm_io_select.rb b/benchmark/bm_io_select.rb<br/>new file mode 100644<br/>index 0000000000..19248daeb1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_select.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_select.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+# IO.select performance</div><div class='add'>+</div><div class='add'>+w = [ IO.pipe[1] ];</div><div class='add'>+</div><div class='add'>+nr = 1000000</div><div class='add'>+nr.times {</div><div class='add'>+  IO.select nil, w</div><div class='add'>+}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_io_select2.rb b/benchmark/bm_io_select2.rb<br/>new file mode 100644<br/>index 0000000000..10e37d71b2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_select2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_select2.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+# IO.select performance. worst case of single fd.</div><div class='add'>+</div><div class='add'>+ios = []</div><div class='add'>+nr = 1000000</div><div class='add'>+if defined?(Process::RLIMIT_NOFILE)</div><div class='add'>+  max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]</div><div class='add'>+else</div><div class='add'>+  max = 64</div><div class='add'>+end</div><div class='add'>+puts "max fd: #{max} (results not apparent with &lt;= 1024 max fd)"</div><div class='add'>+</div><div class='add'>+((max / 2) - 10).times do</div><div class='add'>+  ios.concat IO.pipe</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+last = [ ios[-1] ]</div><div class='add'>+puts "last IO: #{last[0].inspect}"</div><div class='add'>+</div><div class='add'>+nr.times do</div><div class='add'>+  IO.select nil, last</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_io_select3.rb b/benchmark/bm_io_select3.rb<br/>new file mode 100644<br/>index 0000000000..7d0ba1f092<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_select3.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_io_select3.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# IO.select performance. a lot of fd</div><div class='add'>+</div><div class='add'>+ios = []</div><div class='add'>+nr = 100</div><div class='add'>+if defined?(Process::RLIMIT_NOFILE)</div><div class='add'>+  max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]</div><div class='add'>+else</div><div class='add'>+  max = 64</div><div class='add'>+end</div><div class='add'>+puts "max fd: #{max} (results not apparent with &lt;= 1024 max fd)"</div><div class='add'>+</div><div class='add'>+(max - 10).times do</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  r.close</div><div class='add'>+  ios.push w</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+nr.times do</div><div class='add'>+  IO.select nil, ios</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_loop_for.rb b/benchmark/bm_loop_for.rb<br/>new file mode 100644<br/>index 0000000000..0fc4cc1511<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_for.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_loop_for.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+for i in 1..30_000_000</div><div class='add'>+  #</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_loop_generator.rb b/benchmark/bm_loop_generator.rb<br/>new file mode 100644<br/>index 0000000000..d3375c744c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_generator.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_loop_generator.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+max = 600000</div><div class='add'>+</div><div class='add'>+if defined? Fiber</div><div class='add'>+  gen = (1..max).each</div><div class='add'>+  loop do</div><div class='add'>+    gen.next</div><div class='add'>+  end</div><div class='add'>+else</div><div class='add'>+  require 'generator'</div><div class='add'>+  gen = Generator.new((0..max))</div><div class='add'>+  while gen.next?</div><div class='add'>+    gen.next</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_loop_times.rb b/benchmark/bm_loop_times.rb<br/>new file mode 100644<br/>index 0000000000..521f72ad1a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_times.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_loop_times.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+30_000_000.times{|e|}</div><div class='head'>diff --git a/benchmark/bm_loop_whileloop.rb b/benchmark/bm_loop_whileloop.rb<br/>new file mode 100644<br/>index 0000000000..0072822c06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_whileloop.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_loop_whileloop.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # benchmark loop 1</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_loop_whileloop2.rb b/benchmark/bm_loop_whileloop2.rb<br/>new file mode 100644<br/>index 0000000000..47d02dffc4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_whileloop2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_loop_whileloop2.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt; 6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_marshal_dump_flo.rb b/benchmark/bm_marshal_dump_flo.rb<br/>new file mode 100644<br/>index 0000000000..9b8d0c6afb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_marshal_dump_flo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_marshal_dump_flo.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+bug10761 = 10000.times.map { |x| x.to_f }</div><div class='add'>+100.times { Marshal.dump(bug10761) }</div><div class='head'>diff --git a/benchmark/bm_marshal_dump_load_geniv.rb b/benchmark/bm_marshal_dump_load_geniv.rb<br/>new file mode 100644<br/>index 0000000000..8252ad90fa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_marshal_dump_load_geniv.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_marshal_dump_load_geniv.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+a = ''</div><div class='add'>+a.instance_eval do</div><div class='add'>+  @a = :a</div><div class='add'>+  @b = :b</div><div class='add'>+  @c = :c</div><div class='add'>+end</div><div class='add'>+100000.times do</div><div class='add'>+  a = Marshal.load(Marshal.dump(a))</div><div class='add'>+end</div><div class='add'>+#p(a.instance_eval { @a == :a &amp;&amp; @b == :b &amp;&amp; @c == :c })</div><div class='head'>diff --git a/benchmark/bm_marshal_dump_load_time.rb b/benchmark/bm_marshal_dump_load_time.rb<br/>new file mode 100644<br/>index 0000000000..e29743b791<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_marshal_dump_load_time.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_marshal_dump_load_time.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+100000.times { Marshal.load(Marshal.dump(Time.now)) }</div><div class='head'>diff --git a/benchmark/bm_require.rb b/benchmark/bm_require.rb<br/>new file mode 100644<br/>index 0000000000..b8abc88f41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_require.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_require.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+$:.push File.join(File.dirname(__FILE__), "bm_require.data")</div><div class='add'>+</div><div class='add'>+1.upto(10000) do |i|</div><div class='add'>+  require "c#{i}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$:.pop</div><div class='head'>diff --git a/benchmark/bm_require_thread.rb b/benchmark/bm_require_thread.rb<br/>new file mode 100644<br/>index 0000000000..e54db6c6e5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_require_thread.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_require_thread.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+$:.push File.join(File.dirname(__FILE__), "bm_require.data")</div><div class='add'>+</div><div class='add'>+i=0</div><div class='add'>+t = Thread.new do</div><div class='add'>+  while true</div><div class='add'>+    i = i+1 # dummy loop</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+1.upto(100) do |i|</div><div class='add'>+  require "c#{i}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$:.pop</div><div class='add'>+t.kill</div><div class='head'>diff --git a/benchmark/bm_securerandom.rb b/benchmark/bm_securerandom.rb<br/>new file mode 100644<br/>index 0000000000..a082ea6d5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_securerandom.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_securerandom.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+require "securerandom"</div><div class='add'>+</div><div class='add'>+20_0000.times do</div><div class='add'>+  SecureRandom.random_number(100)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_so_ackermann.rb b/benchmark/bm_so_ackermann.rb<br/>new file mode 100644<br/>index 0000000000..7db5be9050<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_ackermann.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_ackermann.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: ackermann-ruby.code,v 1.4 2004/11/13 07:40:41 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+</div><div class='add'>+def ack(m, n)</div><div class='add'>+    if m == 0 then</div><div class='add'>+        n + 1</div><div class='add'>+    elsif n == 0 then</div><div class='add'>+        ack(m - 1, 1)</div><div class='add'>+    else</div><div class='add'>+        ack(m - 1, ack(m, n - 1))</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+NUM = 9</div><div class='add'>+ack(3, NUM)</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_array.rb b/benchmark/bm_so_array.rb<br/>new file mode 100644<br/>index 0000000000..2b8fce8f99<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_array.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_array.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: ary-ruby.code,v 1.4 2004/11/13 07:41:27 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+# with help from Paul Brannan and Mark Hubbart</div><div class='add'>+</div><div class='add'>+n = 9000 # Integer(ARGV.shift || 1)</div><div class='add'>+</div><div class='add'>+x = Array.new(n)</div><div class='add'>+y = Array.new(n, 0)</div><div class='add'>+</div><div class='add'>+n.times{|bi|</div><div class='add'>+  x[bi] = bi + 1</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+(0 .. 999).each do |e|</div><div class='add'>+  (n-1).step(0,-1) do |bi|</div><div class='add'>+    y[bi] += x.at(bi)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+# puts "#{y.first} #{y.last}"</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_binary_trees.rb b/benchmark/bm_so_binary_trees.rb<br/>new file mode 100644<br/>index 0000000000..b1693e4109<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_binary_trees.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_binary_trees.rb</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+# The Computer Language Shootout Benchmarks</div><div class='add'>+# http://shootout.alioth.debian.org</div><div class='add'>+#</div><div class='add'>+# contributed by Jesse Millikan</div><div class='add'>+</div><div class='add'>+# disable output</div><div class='add'>+alias puts_orig puts</div><div class='add'>+def puts str</div><div class='add'>+  # disable puts</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def item_check(tree)</div><div class='add'>+ if tree[0] == nil</div><div class='add'>+  tree[1]</div><div class='add'>+ else</div><div class='add'>+  tree[1] + item_check(tree[0]) - item_check(tree[2])</div><div class='add'>+ end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def bottom_up_tree(item, depth)</div><div class='add'>+ if depth &gt; 0</div><div class='add'>+  item_item = 2 * item</div><div class='add'>+  depth -= 1</div><div class='add'>+  [bottom_up_tree(item_item - 1, depth), item, bottom_up_tree(item_item, depth)]</div><div class='add'>+ else</div><div class='add'>+  [nil, item, nil]</div><div class='add'>+ end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+max_depth = 16 # ARGV[0].to_i</div><div class='add'>+min_depth = 4</div><div class='add'>+</div><div class='add'>+max_depth = min_depth + 2 if min_depth + 2 &gt; max_depth</div><div class='add'>+</div><div class='add'>+stretch_depth = max_depth + 1</div><div class='add'>+stretch_tree = bottom_up_tree(0, stretch_depth)</div><div class='add'>+</div><div class='add'>+puts "stretch tree of depth #{stretch_depth}\t check: #{item_check(stretch_tree)}"</div><div class='add'>+stretch_tree = nil</div><div class='add'>+</div><div class='add'>+long_lived_tree = bottom_up_tree(0, max_depth)</div><div class='add'>+</div><div class='add'>+min_depth.step(max_depth + 1, 2) do |depth|</div><div class='add'>+ iterations = 2**(max_depth - depth + min_depth)</div><div class='add'>+</div><div class='add'>+ check = 0</div><div class='add'>+</div><div class='add'>+ for i in 1..iterations</div><div class='add'>+  temp_tree = bottom_up_tree(i, depth)</div><div class='add'>+  check += item_check(temp_tree)</div><div class='add'>+</div><div class='add'>+  temp_tree = bottom_up_tree(-i, depth)</div><div class='add'>+  check += item_check(temp_tree)</div><div class='add'>+ end</div><div class='add'>+</div><div class='add'>+ puts "#{iterations * 2}\t trees of depth #{depth}\t check: #{check}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+puts "long lived tree of depth #{max_depth}\t check: #{item_check(long_lived_tree)}"</div><div class='add'>+</div><div class='add'>+undef puts</div><div class='add'>+alias puts puts_orig</div><div class='head'>diff --git a/benchmark/bm_so_concatenate.rb b/benchmark/bm_so_concatenate.rb<br/>new file mode 100644<br/>index 0000000000..873214de7c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_concatenate.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_concatenate.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: strcat-ruby.code,v 1.4 2004/11/13 07:43:28 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+# based on code from Aristarkh A Zagorodnikov and Dat Nguyen</div><div class='add'>+</div><div class='add'>+STUFF = "hello\n"</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;10</div><div class='add'>+  i += 1</div><div class='add'>+  hello = ''</div><div class='add'>+  4_000_000.times do |e|</div><div class='add'>+    hello &lt;&lt; STUFF</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+# puts hello.length</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_count_words.rb b/benchmark/bm_so_count_words.rb<br/>new file mode 100644<br/>index 0000000000..65f6337a4a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_count_words.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_count_words.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: wc-ruby.code,v 1.4 2004/11/13 07:43:32 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+# with help from Paul Brannan</div><div class='add'>+</div><div class='add'>+input = open(File.join(File.dirname($0), 'wc.input'), 'rb')</div><div class='add'>+</div><div class='add'>+nl = nw = nc = 0</div><div class='add'>+while true</div><div class='add'>+  tmp = input.read(4096) or break</div><div class='add'>+  data = tmp &lt;&lt; (input.gets || "")</div><div class='add'>+  nc += data.length</div><div class='add'>+  nl += data.count("\n")</div><div class='add'>+  ((data.strip! || data).tr!("\n", " ") || data).squeeze!</div><div class='add'>+  nw += data.count(" ") + 1</div><div class='add'>+end</div><div class='add'>+# STDERR.puts "#{nl} #{nw} #{nc}"</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_exception.rb b/benchmark/bm_so_exception.rb<br/>new file mode 100644<br/>index 0000000000..deb003a594<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_exception.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_exception.rb</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: except-ruby.code,v 1.4 2004/11/13 07:41:33 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+</div><div class='add'>+$HI = 0</div><div class='add'>+$LO = 0</div><div class='add'>+NUM = 250000 # Integer(ARGV[0] || 1)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+class Lo_Exception &lt; Exception</div><div class='add'>+  def initialize(num)</div><div class='add'>+    @value = num</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Hi_Exception &lt; Exception</div><div class='add'>+  def initialize(num)</div><div class='add'>+    @value = num</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def some_function(num)</div><div class='add'>+  begin</div><div class='add'>+    hi_function(num)</div><div class='add'>+  rescue</div><div class='add'>+    print "We shouldn't get here, exception is: #{$!.type}\n"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def hi_function(num)</div><div class='add'>+  begin</div><div class='add'>+    lo_function(num)</div><div class='add'>+  rescue Hi_Exception</div><div class='add'>+    $HI = $HI + 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def lo_function(num)</div><div class='add'>+  begin</div><div class='add'>+    blowup(num)</div><div class='add'>+  rescue Lo_Exception</div><div class='add'>+    $LO = $LO + 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def blowup(num)</div><div class='add'>+  if num % 2 == 0</div><div class='add'>+    raise Lo_Exception.new(num)</div><div class='add'>+  else</div><div class='add'>+    raise Hi_Exception.new(num)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+i = 1</div><div class='add'>+max = NUM+1</div><div class='add'>+while i &lt; max</div><div class='add'>+  i += 1</div><div class='add'>+  some_function(i+1)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_so_fannkuch.rb b/benchmark/bm_so_fannkuch.rb<br/>new file mode 100644<br/>index 0000000000..bac5ecd44c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_fannkuch.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_fannkuch.rb</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+# Contributed by Sokolov Yura</div><div class='add'>+# Modified by Ryan Williams</div><div class='add'>+</div><div class='add'>+def fannkuch(n)</div><div class='add'>+   maxFlips, m, r, check = 0, n-1, n, 0</div><div class='add'>+   count = (1..n).to_a</div><div class='add'>+   perm = (1..n).to_a</div><div class='add'>+</div><div class='add'>+   while true</div><div class='add'>+      if check &lt; 30</div><div class='add'>+         puts "#{perm}"</div><div class='add'>+         check += 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      while r != 1</div><div class='add'>+         count[r-1] = r</div><div class='add'>+         r -= 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if perm[0] != 1 and perm[m] != n</div><div class='add'>+         perml = perm.clone #.dup</div><div class='add'>+         flips = 0</div><div class='add'>+         while (k = perml.first ) != 1</div><div class='add'>+            perml = perml.slice!(0, k).reverse + perml</div><div class='add'>+            flips += 1</div><div class='add'>+         end</div><div class='add'>+         maxFlips = flips if flips &gt; maxFlips</div><div class='add'>+      end</div><div class='add'>+      while true</div><div class='add'>+         if r==n then return maxFlips end</div><div class='add'>+         perm.insert r,perm.shift</div><div class='add'>+         break if (count[r] -= 1) &gt; 0</div><div class='add'>+         r += 1</div><div class='add'>+      end</div><div class='add'>+   end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def puts *args</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+N = 9 # (ARGV[0] || 1).to_i</div><div class='add'>+puts "Pfannkuchen(#{N}) = #{fannkuch(N)}"</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_fasta.rb b/benchmark/bm_so_fasta.rb<br/>new file mode 100644<br/>index 0000000000..dcc6b39507<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_fasta.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_fasta.rb</a></div><div class='hunk'>@@ -0,0 +1,81 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+# Contributed by Sokolov Yura</div><div class='add'>+</div><div class='add'>+$last = 42.0</div><div class='add'>+def gen_random(max, im=139968, ia=3877, ic=29573)</div><div class='add'>+    (max * ($last = ($last * ia + ic) % im)) / im</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+alu =</div><div class='add'>+   "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG"+</div><div class='add'>+   "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA"+</div><div class='add'>+   "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT"+</div><div class='add'>+   "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA"+</div><div class='add'>+   "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG"+</div><div class='add'>+   "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC"+</div><div class='add'>+   "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"</div><div class='add'>+</div><div class='add'>+iub = [</div><div class='add'>+    ["a", 0.27],</div><div class='add'>+    ["c", 0.12],</div><div class='add'>+    ["g", 0.12],</div><div class='add'>+    ["t", 0.27],</div><div class='add'>+</div><div class='add'>+    ["B", 0.02],</div><div class='add'>+    ["D", 0.02],</div><div class='add'>+    ["H", 0.02],</div><div class='add'>+    ["K", 0.02],</div><div class='add'>+    ["M", 0.02],</div><div class='add'>+    ["N", 0.02],</div><div class='add'>+    ["R", 0.02],</div><div class='add'>+    ["S", 0.02],</div><div class='add'>+    ["V", 0.02],</div><div class='add'>+    ["W", 0.02],</div><div class='add'>+    ["Y", 0.02],</div><div class='add'>+]</div><div class='add'>+homosapiens = [</div><div class='add'>+    ["a", 0.3029549426680],</div><div class='add'>+    ["c", 0.1979883004921],</div><div class='add'>+    ["g", 0.1975473066391],</div><div class='add'>+    ["t", 0.3015094502008],</div><div class='add'>+]</div><div class='add'>+</div><div class='add'>+def make_repeat_fasta(id, desc, src, n)</div><div class='add'>+    puts "&gt;#{id} #{desc}"</div><div class='add'>+    v = nil</div><div class='add'>+    width = 60</div><div class='add'>+    l = src.length</div><div class='add'>+    s = src * ((n / l) + 1)</div><div class='add'>+    s.slice!(n, l)</div><div class='add'>+    puts(s.scan(/.{1,#{width}}/).join("\n"))</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def make_random_fasta(id, desc, table, n)</div><div class='add'>+    puts "&gt;#{id} #{desc}"</div><div class='add'>+    rand, v = nil,nil</div><div class='add'>+    width = 60</div><div class='add'>+    chunk = 1 * width</div><div class='add'>+    prob = 0.0</div><div class='add'>+    table.each{|v| v[1]= (prob += v[1])}</div><div class='add'>+    for i in 1..(n/width)</div><div class='add'>+        puts((1..width).collect{</div><div class='add'>+            rand = gen_random(1.0)</div><div class='add'>+            table.find{|v| v[1]&gt;rand}[0]</div><div class='add'>+        }.join)</div><div class='add'>+    end</div><div class='add'>+    if n%width != 0</div><div class='add'>+        puts((1..(n%width)).collect{</div><div class='add'>+            rand = gen_random(1.0)</div><div class='add'>+            table.find{|v| v[1]&gt;rand}[0]</div><div class='add'>+        }.join)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+n = (ARGV[0] or 250_000).to_i</div><div class='add'>+</div><div class='add'>+make_repeat_fasta('ONE', 'Homo sapiens alu', alu, n*2)</div><div class='add'>+make_random_fasta('TWO', 'IUB ambiguity codes', iub, n*3)</div><div class='add'>+make_random_fasta('THREE', 'Homo sapiens frequency', homosapiens, n*5)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_k_nucleotide.rb b/benchmark/bm_so_k_nucleotide.rb<br/>new file mode 100644<br/>index 0000000000..dadab3e79c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_k_nucleotide.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_k_nucleotide.rb</a></div><div class='hunk'>@@ -0,0 +1,48 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org</div><div class='add'>+#</div><div class='add'>+# contributed by jose fco. gonzalez</div><div class='add'>+# modified by Sokolov Yura</div><div class='add'>+</div><div class='add'>+seq = String.new</div><div class='add'>+</div><div class='add'>+def frecuency( seq,length )</div><div class='add'>+    n, table = seq.length - length + 1, Hash.new(0)</div><div class='add'>+    f, i = nil, nil</div><div class='add'>+    (0 ... length).each do |f|</div><div class='add'>+        (f ... n).step(length) do |i|</div><div class='add'>+            table[seq[i,length]] += 1</div><div class='add'>+        end</div><div class='add'>+    end</div><div class='add'>+    [n,table]</div><div class='add'>+</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def sort_by_freq( seq,length )</div><div class='add'>+    n,table = frecuency( seq,length )</div><div class='add'>+    a, b, v = nil, nil, nil</div><div class='add'>+    table.sort{|a,b| b[1] &lt;=&gt; a[1]}.each do |v|</div><div class='add'>+        puts "%s %.3f" % [v[0].upcase,((v[1]*100).to_f/n)]</div><div class='add'>+    end</div><div class='add'>+    puts</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def find_seq( seq,s )</div><div class='add'>+    n,table = frecuency( seq,s.length )</div><div class='add'>+    puts "#{table[s].to_s}\t#{s.upcase}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+input = open(File.join(File.dirname($0), 'fasta.output.100000'), 'rb')</div><div class='add'>+</div><div class='add'>+line = input.gets while line !~ /^&gt;THREE/</div><div class='add'>+line = input.gets</div><div class='add'>+</div><div class='add'>+while (line !~ /^&gt;/) &amp; line do</div><div class='add'>+    seq &lt;&lt; line.chomp</div><div class='add'>+    line = input.gets</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+[1,2].each {|i| sort_by_freq( seq,i ) }</div><div class='add'>+</div><div class='add'>+%w(ggt ggta ggtatt ggtattttaatt ggtattttaatttatagt).each{|s| find_seq( seq,s) }</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_lists.rb b/benchmark/bm_so_lists.rb<br/>new file mode 100644<br/>index 0000000000..e8f4a2a5f7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_lists.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_lists.rb</a></div><div class='hunk'>@@ -0,0 +1,47 @@</div><div class='add'>+#from http://www.bagley.org/~doug/shootout/bench/lists/lists.ruby</div><div class='add'>+</div><div class='add'>+NUM = 300</div><div class='add'>+SIZE = 10000</div><div class='add'>+</div><div class='add'>+def test_lists()</div><div class='add'>+  # create a list of integers (Li1) from 1 to SIZE</div><div class='add'>+  li1 = (1..SIZE).to_a</div><div class='add'>+  # copy the list to li2 (not by individual items)</div><div class='add'>+  li2 = li1.dup</div><div class='add'>+  # remove each individual item from left side of li2 and</div><div class='add'>+  # append to right side of li3 (preserving order)</div><div class='add'>+  li3 = Array.new</div><div class='add'>+  while (not li2.empty?)</div><div class='add'>+    li3.push(li2.shift)</div><div class='add'>+  end</div><div class='add'>+  # li2 must now be empty</div><div class='add'>+  # remove each individual item from right side of li3 and</div><div class='add'>+  # append to right side of li2 (reversing list)</div><div class='add'>+  while (not li3.empty?)</div><div class='add'>+    li2.push(li3.pop)</div><div class='add'>+  end</div><div class='add'>+  # li3 must now be empty</div><div class='add'>+  # reverse li1 in place</div><div class='add'>+  li1.reverse!</div><div class='add'>+  # check that first item is now SIZE</div><div class='add'>+  if li1[0] != SIZE then</div><div class='add'>+    p "not SIZE"</div><div class='add'>+    0</div><div class='add'>+  else</div><div class='add'>+    # compare li1 and li2 for equality</div><div class='add'>+    if li1 != li2 then</div><div class='add'>+      return(0)</div><div class='add'>+    else</div><div class='add'>+      # return the length of the list</div><div class='add'>+      li1.length</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;NUM</div><div class='add'>+  i += 1</div><div class='add'>+  result = test_lists()</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+result</div><div class='head'>diff --git a/benchmark/bm_so_mandelbrot.rb b/benchmark/bm_so_mandelbrot.rb<br/>new file mode 100644<br/>index 0000000000..76331c64b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_mandelbrot.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_mandelbrot.rb</a></div><div class='hunk'>@@ -0,0 +1,57 @@</div><div class='add'>+#  The Computer Language Benchmarks Game</div><div class='add'>+#  http://shootout.alioth.debian.org/</div><div class='add'>+#</div><div class='add'>+#  contributed by Karl von Laudermann</div><div class='add'>+#  modified by Jeremy Echols</div><div class='add'>+</div><div class='add'>+size = 600 # ARGV[0].to_i</div><div class='add'>+</div><div class='add'>+puts "P4\n#{size} #{size}"</div><div class='add'>+</div><div class='add'>+ITER = 49                           # Iterations - 1 for easy for..in looping</div><div class='add'>+LIMIT_SQUARED = 4.0                 # Presquared limit</div><div class='add'>+</div><div class='add'>+byte_acc = 0</div><div class='add'>+bit_num = 0</div><div class='add'>+</div><div class='add'>+count_size = size - 1               # Precomputed size for easy for..in looping</div><div class='add'>+</div><div class='add'>+# For..in loops are faster than .upto, .downto, .times, etc.</div><div class='add'>+for y in 0..count_size</div><div class='add'>+  for x in 0..count_size</div><div class='add'>+    zr = 0.0</div><div class='add'>+    zi = 0.0</div><div class='add'>+    cr = (2.0*x/size)-1.5</div><div class='add'>+    ci = (2.0*y/size)-1.0</div><div class='add'>+    escape = false</div><div class='add'>+</div><div class='add'>+    # To make use of the for..in code, we use a dummy variable,</div><div class='add'>+    # like one would in C</div><div class='add'>+    for dummy in 0..ITER</div><div class='add'>+      tr = zr*zr - zi*zi + cr</div><div class='add'>+      ti = 2*zr*zi + ci</div><div class='add'>+      zr, zi = tr, ti</div><div class='add'>+</div><div class='add'>+      if (zr*zr+zi*zi) &gt; LIMIT_SQUARED</div><div class='add'>+        escape = true</div><div class='add'>+        break</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    byte_acc = (byte_acc &lt;&lt; 1) | (escape ? 0b0 : 0b1)</div><div class='add'>+    bit_num += 1</div><div class='add'>+</div><div class='add'>+    # Code is very similar for these cases, but using separate blocks</div><div class='add'>+    # ensures we skip the shifting when it's unnecessary, which is most cases.</div><div class='add'>+    if (bit_num == 8)</div><div class='add'>+      print byte_acc.chr</div><div class='add'>+      byte_acc = 0</div><div class='add'>+      bit_num = 0</div><div class='add'>+    elsif (x == count_size)</div><div class='add'>+      byte_acc &lt;&lt;= (8 - bit_num)</div><div class='add'>+      print byte_acc.chr</div><div class='add'>+      byte_acc = 0</div><div class='add'>+      bit_num = 0</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_so_matrix.rb b/benchmark/bm_so_matrix.rb<br/>new file mode 100644<br/>index 0000000000..e2c5c8e559<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_matrix.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_matrix.rb</a></div><div class='hunk'>@@ -0,0 +1,48 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: matrix-ruby.code,v 1.4 2004/11/13 07:42:14 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+</div><div class='add'>+n = 60 #Integer(ARGV.shift || 1)</div><div class='add'>+</div><div class='add'>+size = 40</div><div class='add'>+</div><div class='add'>+def mkmatrix(rows, cols)</div><div class='add'>+    count = 1</div><div class='add'>+    mx = Array.new(rows)</div><div class='add'>+    (0 .. (rows - 1)).each do |bi|</div><div class='add'>+        row = Array.new(cols, 0)</div><div class='add'>+        (0 .. (cols - 1)).each do |j|</div><div class='add'>+            row[j] = count</div><div class='add'>+            count += 1</div><div class='add'>+        end</div><div class='add'>+        mx[bi] = row</div><div class='add'>+    end</div><div class='add'>+    mx</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def mmult(rows, cols, m1, m2)</div><div class='add'>+    m3 = Array.new(rows)</div><div class='add'>+    (0 .. (rows - 1)).each do |bi|</div><div class='add'>+        row = Array.new(cols, 0)</div><div class='add'>+        (0 .. (cols - 1)).each do |j|</div><div class='add'>+            val = 0</div><div class='add'>+            (0 .. (cols - 1)).each do |k|</div><div class='add'>+                val += m1.at(bi).at(k) * m2.at(k).at(j)</div><div class='add'>+            end</div><div class='add'>+            row[j] = val</div><div class='add'>+        end</div><div class='add'>+        m3[bi] = row</div><div class='add'>+    end</div><div class='add'>+    m3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+m1 = mkmatrix(size, size)</div><div class='add'>+m2 = mkmatrix(size, size)</div><div class='add'>+mm = Array.new</div><div class='add'>+n.times do</div><div class='add'>+    mm = mmult(size, size, m1, m2)</div><div class='add'>+end</div><div class='add'>+# puts "#{mm[0][0]} #{mm[2][3]} #{mm[3][2]} #{mm[4][4]}"</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_meteor_contest.rb b/benchmark/bm_so_meteor_contest.rb<br/>new file mode 100755<br/>index 0000000000..8c136baa6c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_meteor_contest.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_meteor_contest.rb</a></div><div class='hunk'>@@ -0,0 +1,563 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+#</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+#   http://shootout.alioth.debian.org</div><div class='add'>+#   contributed by Kevin Barnes (Ruby novice)</div><div class='add'>+</div><div class='add'>+# PROGRAM:  the main body is at the bottom.</div><div class='add'>+#   1) read about the problem here: http://www-128.ibm.com/developerworks/java/library/j-javaopt/</div><div class='add'>+#   2) see how I represent a board as a bitmask by reading the blank_board comments</div><div class='add'>+#   3) read as your mental paths take you</div><div class='add'>+</div><div class='add'>+def print *args</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# class to represent all information about a particular rotation of a particular piece</div><div class='add'>+class Rotation</div><div class='add'>+  # an array (by location) containing a bit mask for how the piece maps at the given location.</div><div class='add'>+  # if the rotation is invalid at that location the mask will contain false</div><div class='add'>+  attr_reader :start_masks</div><div class='add'>+</div><div class='add'>+  # maps a direction to a relative location.  these differ depending on whether it is an even or</div><div class='add'>+  # odd row being mapped from</div><div class='add'>+  @@rotation_even_adder = { :west =&gt; -1, :east =&gt; 1, :nw =&gt; -7, :ne =&gt; -6, :sw =&gt; 5, :se =&gt; 6 }</div><div class='add'>+  @@rotation_odd_adder = { :west =&gt; -1, :east =&gt; 1, :nw =&gt; -6, :ne =&gt; -5, :sw =&gt; 6, :se =&gt; 7 }</div><div class='add'>+</div><div class='add'>+  def initialize( directions )</div><div class='add'>+    @even_offsets, @odd_offsets = normalize_offsets( get_values( directions ))</div><div class='add'>+</div><div class='add'>+    @even_mask = mask_for_offsets( @even_offsets)</div><div class='add'>+    @odd_mask = mask_for_offsets( @odd_offsets)</div><div class='add'>+</div><div class='add'>+    @start_masks = Array.new(60)</div><div class='add'>+</div><div class='add'>+    # create the rotational masks by placing the base mask at the location and seeing if</div><div class='add'>+    # 1) it overlaps the boundaries and 2) it produces a prunable board.  if either of these</div><div class='add'>+    # is true the piece cannot be placed</div><div class='add'>+    0.upto(59) do | offset |</div><div class='add'>+      mask = is_even(offset) ? (@even_mask &lt;&lt; offset) : (@odd_mask &lt;&lt; offset)</div><div class='add'>+      if (blank_board &amp; mask == 0 &amp;&amp; !prunable(blank_board | mask, 0, true)) then</div><div class='add'>+        imask = compute_required( mask, offset)</div><div class='add'>+        @start_masks[offset] = [ mask, imask, imask | mask ]</div><div class='add'>+      else</div><div class='add'>+        @start_masks[offset] = false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def compute_required( mask, offset )</div><div class='add'>+    board = blank_board</div><div class='add'>+    0.upto(offset) { | i | board |= 1 &lt;&lt; i }</div><div class='add'>+    board |= mask</div><div class='add'>+    return 0 if (!prunable(board | mask, offset))</div><div class='add'>+    board = flood_fill(board,58)</div><div class='add'>+    count = 0</div><div class='add'>+    imask = 0</div><div class='add'>+    0.upto(59) do | i |</div><div class='add'>+      if (board[i] == 0) then</div><div class='add'>+        imask |= (1 &lt;&lt; i)</div><div class='add'>+        count += 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    (count &gt; 0 &amp;&amp; count &lt; 5) ? imask : 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def flood_fill( board, location)</div><div class='add'>+    return board if (board[location] == 1)</div><div class='add'>+    board |= 1 &lt;&lt; location</div><div class='add'>+    row, col = location.divmod(6)</div><div class='add'>+    board = flood_fill( board, location - 1) if (col &gt; 0)</div><div class='add'>+    board = flood_fill( board, location + 1) if (col &lt; 4)</div><div class='add'>+    if (row % 2 == 0) then</div><div class='add'>+      board = flood_fill( board, location - 7) if (col &gt; 0 &amp;&amp; row &gt; 0)</div><div class='add'>+      board = flood_fill( board, location - 6) if (row &gt; 0)</div><div class='add'>+      board = flood_fill( board, location + 6) if (row &lt; 9)</div><div class='add'>+      board = flood_fill( board, location + 5) if (col &gt; 0 &amp;&amp; row &lt; 9)</div><div class='add'>+    else</div><div class='add'>+      board = flood_fill( board, location - 5) if (col &lt; 4 &amp;&amp; row &gt; 0)</div><div class='add'>+      board = flood_fill( board, location - 6) if (row &gt; 0)</div><div class='add'>+      board = flood_fill( board, location + 6) if (row &lt; 9)</div><div class='add'>+      board = flood_fill( board, location + 7) if (col &lt; 4 &amp;&amp; row &lt; 9)</div><div class='add'>+    end</div><div class='add'>+    board</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # given a location, produces a list of relative locations covered by the piece at this rotation</div><div class='add'>+  def offsets( location)</div><div class='add'>+    if is_even( location) then</div><div class='add'>+      @even_offsets.collect { | value | value + location }</div><div class='add'>+    else</div><div class='add'>+      @odd_offsets.collect { | value | value + location }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # returns a set of offsets relative to the top-left most piece of the rotation (by even or odd rows)</div><div class='add'>+  # this is hard to explain. imagine we have this partial board:</div><div class='add'>+  #   0 0 0 0 0 x        [positions 0-5]</div><div class='add'>+  #    0 0 1 1 0 x       [positions 6-11]</div><div class='add'>+  #   0 0 1 0 0 x        [positions 12-17]</div><div class='add'>+  #    0 1 0 0 0 x       [positions 18-23]</div><div class='add'>+  #   0 1 0 0 0 x        [positions 24-29]</div><div class='add'>+  #    0 0 0 0 0 x       [positions 30-35]</div><div class='add'>+  #       ...</div><div class='add'>+  # The top-left of the piece is at position 8, the</div><div class='add'>+  # board would be passed as a set of positions (values array) containing [8,9,14,19,25] not necessarily in that</div><div class='add'>+  # sorted order.  Since that array starts on an odd row, the offsets for an odd row are: [0,1,6,11,17] obtained</div><div class='add'>+  # by subtracting 8 from everything.  Now imagine the piece shifted up and to the right so it's on an even row:</div><div class='add'>+  #   0 0 0 1 1 x        [positions 0-5]</div><div class='add'>+  #    0 0 1 0 0 x       [positions 6-11]</div><div class='add'>+  #   0 0 1 0 0 x        [positions 12-17]</div><div class='add'>+  #    0 1 0 0 0 x       [positions 18-23]</div><div class='add'>+  #   0 0 0 0 0 x        [positions 24-29]</div><div class='add'>+  #    0 0 0 0 0 x       [positions 30-35]</div><div class='add'>+  #       ...</div><div class='add'>+  # Now the positions are [3,4,8,14,19] which after subtracting the lowest value (3) gives [0,1,5,11,16] thus, the</div><div class='add'>+  # offsets for this particular piece are (in even, odd order) [0,1,5,11,16],[0,1,6,11,17] which is what</div><div class='add'>+  # this function would return</div><div class='add'>+  def normalize_offsets( values)</div><div class='add'>+    min = values.min</div><div class='add'>+    even_min = is_even(min)</div><div class='add'>+    other_min = even_min ? min + 6 : min + 7</div><div class='add'>+    other_values = values.collect do | value |</div><div class='add'>+      if is_even(value) then</div><div class='add'>+        value + 6 - other_min</div><div class='add'>+      else</div><div class='add'>+        value + 7 - other_min</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    values.collect! { | value | value - min }</div><div class='add'>+</div><div class='add'>+    if even_min then</div><div class='add'>+      [values, other_values]</div><div class='add'>+    else</div><div class='add'>+      [other_values, values]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # produce a bitmask representation of an array of offset locations</div><div class='add'>+  def mask_for_offsets( offsets )</div><div class='add'>+    mask = 0</div><div class='add'>+    offsets.each { | value | mask = mask + ( 1 &lt;&lt; value ) }</div><div class='add'>+    mask</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # finds a "safe" position that a position as described by a list of directions can be placed</div><div class='add'>+  # without falling off any edge of the board.  the values returned a location to place the first piece</div><div class='add'>+  # at so it will fit after making the described moves</div><div class='add'>+  def start_adjust( directions )</div><div class='add'>+    south = east = 0;</div><div class='add'>+    directions.each do | direction |</div><div class='add'>+      east += 1 if ( direction == :sw || direction == :nw || direction == :west )</div><div class='add'>+      south += 1 if ( direction == :nw || direction == :ne )</div><div class='add'>+    end</div><div class='add'>+    south * 6 + east</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # given a set of directions places the piece (as defined by a set of directions) on the board at</div><div class='add'>+  # a location that will not take it off the edge</div><div class='add'>+  def get_values( directions )</div><div class='add'>+    start = start_adjust(directions)</div><div class='add'>+    values = [ start ]</div><div class='add'>+    directions.each do | direction |</div><div class='add'>+      if (start % 12 &gt;= 6) then</div><div class='add'>+        start += @@rotation_odd_adder[direction]</div><div class='add'>+      else</div><div class='add'>+        start += @@rotation_even_adder[direction]</div><div class='add'>+      end</div><div class='add'>+      values += [ start ]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # some moves take you back to an existing location, we'll strip duplicates</div><div class='add'>+    values.uniq</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# describes a piece and caches information about its rotations to as to be efficient for iteration</div><div class='add'>+# ATTRIBUTES:</div><div class='add'>+#   rotations -- all the rotations of the piece</div><div class='add'>+#   type -- a numeic "name" of the piece</div><div class='add'>+#   masks -- an array by location of all legal rotational masks (a n inner array) for that location</div><div class='add'>+#   placed -- the mask that this piece was last placed at (not a location, but the actual mask used)</div><div class='add'>+class Piece</div><div class='add'>+  attr_reader :rotations, :type, :masks</div><div class='add'>+  attr_accessor :placed</div><div class='add'>+</div><div class='add'>+  # transform hashes that change one direction into another when you either flip or rotate a set of directions</div><div class='add'>+  @@flip_converter = { :west =&gt; :west, :east =&gt; :east, :nw =&gt; :sw, :ne =&gt; :se, :sw =&gt; :nw, :se =&gt; :ne }</div><div class='add'>+  @@rotate_converter = { :west =&gt; :nw, :east =&gt; :se, :nw =&gt; :ne, :ne =&gt; :east, :sw =&gt; :west, :se =&gt; :sw }</div><div class='add'>+</div><div class='add'>+  def initialize( directions, type )</div><div class='add'>+    @type = type</div><div class='add'>+    @rotations = Array.new();</div><div class='add'>+    @map = {}</div><div class='add'>+</div><div class='add'>+    generate_rotations( directions )</div><div class='add'>+    directions.collect! { | value | @@flip_converter[value] }</div><div class='add'>+    generate_rotations( directions )</div><div class='add'>+</div><div class='add'>+    # creates the masks AND a map that returns [location, rotation] for any given mask</div><div class='add'>+    # this is used when a board is found and we want to draw it, otherwise the map is unused</div><div class='add'>+    @masks = Array.new();</div><div class='add'>+    0.upto(59) do | i |</div><div class='add'>+      even = true</div><div class='add'>+      @masks[i] = @rotations.collect do | rotation |</div><div class='add'>+        mask = rotation.start_masks[i]</div><div class='add'>+        @map[mask[0]] = [ i, rotation ] if (mask)</div><div class='add'>+        mask || nil</div><div class='add'>+      end</div><div class='add'>+      @masks[i].compact!</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # rotates a set of directions through all six angles and adds a Rotation to the list for each one</div><div class='add'>+  def generate_rotations( directions )</div><div class='add'>+    6.times do</div><div class='add'>+      rotations.push( Rotation.new(directions))</div><div class='add'>+      directions.collect! { | value | @@rotate_converter[value] }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # given a board string, adds this piece to the board at whatever location/rotation</div><div class='add'>+  # important: the outbound board string is 5 wide, the normal location notation is six wide (padded)</div><div class='add'>+  def fill_string( board_string)</div><div class='add'>+    location, rotation = @map[@placed]</div><div class='add'>+    rotation.offsets(location).each do | offset |</div><div class='add'>+      row, col = offset.divmod(6)</div><div class='add'>+      board_string[ row*5 + col, 1 ] = @type.to_s</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# a blank bit board having this form:</div><div class='add'>+#</div><div class='add'>+#    0 0 0 0 0 1</div><div class='add'>+#     0 0 0 0 0 1</div><div class='add'>+#    0 0 0 0 0 1</div><div class='add'>+#     0 0 0 0 0 1</div><div class='add'>+#    0 0 0 0 0 1</div><div class='add'>+#     0 0 0 0 0 1</div><div class='add'>+#    0 0 0 0 0 1</div><div class='add'>+#     0 0 0 0 0 1</div><div class='add'>+#    0 0 0 0 0 1</div><div class='add'>+#     0 0 0 0 0 1</div><div class='add'>+#    1 1 1 1 1 1</div><div class='add'>+#</div><div class='add'>+# where left lest significant bit is the top left and the most significant is the lower right</div><div class='add'>+# the actual board only consists of the 0 places, the 1 places are blockers to keep things from running</div><div class='add'>+# off the edges or bottom</div><div class='add'>+def blank_board</div><div class='add'>+  0b111111100000100000100000100000100000100000100000100000100000100000</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def full_board</div><div class='add'>+  0b111111111111111111111111111111111111111111111111111111111111111111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# determines if a location (bit position) is in an even row</div><div class='add'>+def is_even( location)</div><div class='add'>+  (location % 12) &lt; 6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# support function that create three utility maps:</div><div class='add'>+#  $converter -- for each row an array that maps a five bit row (via array mapping)</div><div class='add'>+#                to the a five bit representation of the bits below it</div><div class='add'>+#  $bit_count -- maps a five bit row (via array mapping) to the number of 1s in the row</div><div class='add'>+#  @@new_regions -- maps a five bit row (via array mapping) to an array of "region" arrays</div><div class='add'>+#                   a region array has three values the first is a mask of bits in the region,</div><div class='add'>+#                   the second is the count of those bits and the third is identical to the first</div><div class='add'>+#                   examples:</div><div class='add'>+#                           0b10010 =&gt; [ 0b01100, 2, 0b01100 ], [ 0b00001, 1, 0b00001]</div><div class='add'>+#                           0b01010 =&gt; [ 0b10000, 1, 0b10000 ], [ 0b00100, 1, 0b00100 ], [ 0b00001, 1, 0b00001]</div><div class='add'>+#                           0b10001 =&gt; [ 0b01110, 3, 0b01110 ]</div><div class='add'>+def create_collector_support</div><div class='add'>+  odd_map = [0b11, 0b110, 0b1100, 0b11000, 0b10000]</div><div class='add'>+  even_map = [0b1, 0b11, 0b110, 0b1100, 0b11000]</div><div class='add'>+</div><div class='add'>+  all_odds = Array.new(0b100000)</div><div class='add'>+  all_evens = Array.new(0b100000)</div><div class='add'>+  bit_counts = Array.new(0b100000)</div><div class='add'>+  new_regions = Array.new(0b100000)</div><div class='add'>+  0.upto(0b11111) do | i |</div><div class='add'>+    bit_count = odd = even = 0</div><div class='add'>+    0.upto(4) do | bit |</div><div class='add'>+      if (i[bit] == 1) then</div><div class='add'>+        bit_count += 1</div><div class='add'>+        odd |= odd_map[bit]</div><div class='add'>+        even |= even_map[bit]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    all_odds[i] = odd</div><div class='add'>+    all_evens[i] = even</div><div class='add'>+    bit_counts[i] = bit_count</div><div class='add'>+    new_regions[i] = create_regions( i)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  $converter = []</div><div class='add'>+  10.times { | row | $converter.push((row % 2 == 0) ? all_evens : all_odds) }</div><div class='add'>+  $bit_counts = bit_counts</div><div class='add'>+  $regions = new_regions.collect { | set | set.collect { | value | [ value, bit_counts[value], value] } }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# determines if a board is punable, meaning that there is no possibility that it</div><div class='add'>+# can be filled up with pieces.  A board is prunable if there is a grouping of unfilled spaces</div><div class='add'>+# that are not a multiple of five.  The following board is an example of a prunable board:</div><div class='add'>+#    0 0 1 0 0</div><div class='add'>+#     0 1 0 0 0</div><div class='add'>+#    1 1 0 0 0</div><div class='add'>+#     0 1 0 0 0</div><div class='add'>+#    0 0 0 0 0</div><div class='add'>+#       ...</div><div class='add'>+#</div><div class='add'>+# This board is prunable because the top left corner is only 3 bits in area, no piece will ever fit it</div><div class='add'>+# parameters:</div><div class='add'>+#   board -- an initial bit board (6 bit padded rows, see blank_board for format)</div><div class='add'>+#   location -- starting location, everything above and to the left is already full</div><div class='add'>+#   slotting -- set to true only when testing initial pieces, when filling normally</div><div class='add'>+#               additional assumptions are possible</div><div class='add'>+#</div><div class='add'>+# Algorithm:</div><div class='add'>+#    The algorithm starts at the top row (as determined by location) and iterates a row at a time</div><div class='add'>+#    maintainng counts of active open areas (kept in the collector array) each collector contains</div><div class='add'>+#    three values at the start of an iteration:</div><div class='add'>+#          0: mask of bits that would be adjacent to the collector in this row</div><div class='add'>+#          1: the number of bits collected so far</div><div class='add'>+#          2: a scratch space starting as zero, but used during the computation to represent</div><div class='add'>+#             the empty bits in the new row that are adjacent (position 0)</div><div class='add'>+#  The exact procedure is described in-code</div><div class='add'>+def prunable( board, location, slotting = false)</div><div class='add'>+  collectors = []</div><div class='add'>+  # loop across the rows</div><div class='add'>+  (location / 6).to_i.upto(9) do | row_on |</div><div class='add'>+    # obtain a set of regions representing the bits of the current row.</div><div class='add'>+    regions = $regions[(board &gt;&gt; (row_on * 6)) &amp; 0b11111]</div><div class='add'>+    converter = $converter[row_on]</div><div class='add'>+</div><div class='add'>+    # track the number of collectors at the start of the cycle so that</div><div class='add'>+    # we don't compute against newly created collectors, only existing collectors</div><div class='add'>+    initial_collector_count = collectors.length</div><div class='add'>+</div><div class='add'>+    # loop against the regions.  For each region of the row</div><div class='add'>+    # we will see if it connects to one or more existing collectors.</div><div class='add'>+    # if it connects to 1 collector, the bits from the region are added to the</div><div class='add'>+    # bits of the collector and the mask is placed in collector[2]</div><div class='add'>+    # If the region overlaps more than one collector then all the collectors</div><div class='add'>+    # it overlaps with are merged into the first one (the others are set to nil in the array)</div><div class='add'>+    # if NO collectors are found then the region is copied as a new collector</div><div class='add'>+    regions.each do | region |</div><div class='add'>+      collector_found = nil</div><div class='add'>+      region_mask = region[2]</div><div class='add'>+      initial_collector_count.times do | collector_num |</div><div class='add'>+        collector = collectors[collector_num]</div><div class='add'>+        if (collector) then</div><div class='add'>+          collector_mask = collector[0]</div><div class='add'>+          if (collector_mask &amp; region_mask != 0) then</div><div class='add'>+            if (collector_found) then</div><div class='add'>+              collector_found[0] |= collector_mask</div><div class='add'>+              collector_found[1] += collector[1]</div><div class='add'>+              collector_found[2] |= collector[2]</div><div class='add'>+              collectors[collector_num] = nil</div><div class='add'>+            else</div><div class='add'>+              collector_found = collector</div><div class='add'>+              collector[1] += region[1]</div><div class='add'>+              collector[2] |= region_mask</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      if (collector_found == nil) then</div><div class='add'>+        collectors.push(Array.new(region))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # check the existing collectors, if any collector overlapped no bits in the region its [2] value will</div><div class='add'>+    # be zero.  The size of any such reaason is tested if it is not a multiple of five true is returned since</div><div class='add'>+    # the board is prunable.  if it is a multiple of five it is removed.</div><div class='add'>+    # Collector that are still active have a new adjacent value [0] set based n the matched bits</div><div class='add'>+    # and have [2] cleared out for the next cycle.</div><div class='add'>+    collectors.length.times do | collector_num |</div><div class='add'>+      collector = collectors[collector_num]</div><div class='add'>+      if (collector) then</div><div class='add'>+        if (collector[2] == 0) then</div><div class='add'>+          return true if (collector[1] % 5 != 0)</div><div class='add'>+          collectors[collector_num] = nil</div><div class='add'>+        else</div><div class='add'>+          # if a collector matches all bits in the row then we can return unprunable early for the</div><div class='add'>+          # following reasons:</div><div class='add'>+          #    1) there can be no more unavailable bits bince we fill from the top left downward</div><div class='add'>+          #    2) all previous regions have been closed or joined so only this region can fail</div><div class='add'>+          #    3) this region must be good since there can never be only 1 region that is nuot</div><div class='add'>+          #       a multiple of five</div><div class='add'>+          # this rule only applies when filling normally, so we ignore the rule if we are "slotting"</div><div class='add'>+          # in pieces to see what configurations work for them (the only other time this algorithm is used).</div><div class='add'>+          return false if (collector[2] == 0b11111 &amp;&amp; !slotting)</div><div class='add'>+          collector[0] = converter[collector[2]]</div><div class='add'>+          collector[2] = 0</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # get rid of all the empty converters for the next round</div><div class='add'>+    collectors.compact!</div><div class='add'>+  end</div><div class='add'>+  return false if (collectors.length &lt;= 1) # 1 collector or less and the region is fine</div><div class='add'>+  collectors.any? { | collector | (collector[1] % 5) != 0 } # more than 1 and we test them all for bad size</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# creates a region given a row mask.  see prunable for what a "region" is</div><div class='add'>+def create_regions( value )</div><div class='add'>+  regions = []</div><div class='add'>+  cur_region = 0</div><div class='add'>+  5.times do | bit |</div><div class='add'>+    if (value[bit] == 0) then</div><div class='add'>+      cur_region |= 1 &lt;&lt; bit</div><div class='add'>+    else</div><div class='add'>+      if (cur_region != 0 ) then</div><div class='add'>+        regions.push( cur_region)</div><div class='add'>+        cur_region = 0;</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  regions.push(cur_region) if (cur_region != 0)</div><div class='add'>+  regions</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# find up to the counted number of solutions (or all solutions) and prints the final result</div><div class='add'>+def find_all</div><div class='add'>+  find_top( 1)</div><div class='add'>+  find_top( 0)</div><div class='add'>+  print_results</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# show the board</div><div class='add'>+def print_results</div><div class='add'>+  print "#{@boards_found} solutions found\n\n"</div><div class='add'>+  print_full_board( @min_board)</div><div class='add'>+  print "\n"</div><div class='add'>+  print_full_board( @max_board)</div><div class='add'>+  print "\n"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# finds solutions.  This special version of the main function is only used for the top level</div><div class='add'>+# the reason for it is basically to force a particular ordering on how the rotations are tested for</div><div class='add'>+# the first piece.  It is called twice, first looking for placements of the odd rotations and then</div><div class='add'>+# looking for placements of the even locations.</div><div class='add'>+#</div><div class='add'>+# WHY?</div><div class='add'>+#   Since any found solution has an inverse we want to maximize finding solutions that are not already found</div><div class='add'>+#   as an inverse.  The inverse will ALWAYS be 3 one of the piece configurations that is exactly 3 rotations away</div><div class='add'>+#   (an odd number).  Checking even vs odd then produces a higher probability of finding more pieces earlier</div><div class='add'>+#   in the cycle.  We still need to keep checking all the permutations, but our probability of finding one will</div><div class='add'>+#   diminsh over time.  Since we are TOLD how many to search for this lets us exit before checking all pieces</div><div class='add'>+#   this bennifit is very great when seeking small numbers of solutions and is 0 when looking for more than the</div><div class='add'>+#   maximum number</div><div class='add'>+def find_top( rotation_skip)</div><div class='add'>+  board = blank_board</div><div class='add'>+  (@pieces.length-1).times do</div><div class='add'>+    piece = @pieces.shift</div><div class='add'>+    piece.masks[0].each do | mask, imask, cmask |</div><div class='add'>+      if ((rotation_skip += 1) % 2 == 0) then</div><div class='add'>+        piece.placed = mask</div><div class='add'>+        find( 1, 1, board | mask)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    @pieces.push(piece)</div><div class='add'>+  end</div><div class='add'>+  piece = @pieces.shift</div><div class='add'>+  @pieces.push(piece)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# the normail find routine, iterates through the available pieces, checks all rotations at the current location</div><div class='add'>+# and adds any boards found.  depth is achieved via recursion.  the overall approach is described</div><div class='add'>+# here: http://www-128.ibm.com/developerworks/java/library/j-javaopt/</div><div class='add'>+# parameters:</div><div class='add'>+#  start_location -- where to start looking for place for the next piece at</div><div class='add'>+#  placed -- number of pieces placed</div><div class='add'>+#  board -- current state of the board</div><div class='add'>+#</div><div class='add'>+# see in-code comments</div><div class='add'>+def find( start_location, placed, board)</div><div class='add'>+  # find the next location to place a piece by looking for an empty bit</div><div class='add'>+  while board[start_location] == 1</div><div class='add'>+    start_location += 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  @pieces.length.times do</div><div class='add'>+    piece = @pieces.shift</div><div class='add'>+    piece.masks[start_location].each do | mask, imask, cmask |</div><div class='add'>+      if ( board &amp; cmask == imask) then</div><div class='add'>+        piece.placed = mask</div><div class='add'>+        if (placed == 9) then</div><div class='add'>+          add_board</div><div class='add'>+        else</div><div class='add'>+          find( start_location + 1, placed + 1, board | mask)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    @pieces.push(piece)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# print the board</div><div class='add'>+def print_full_board( board_string)</div><div class='add'>+  10.times do | row |</div><div class='add'>+    print " " if (row % 2 == 1)</div><div class='add'>+    5.times do | col |</div><div class='add'>+      print "#{board_string[row*5 + col,1]} "</div><div class='add'>+    end</div><div class='add'>+    print "\n"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# when a board is found we "draw it" into a string and then flip that string, adding both to</div><div class='add'>+# the list (hash) of solutions if they are unique.</div><div class='add'>+def add_board</div><div class='add'>+  board_string = "99999999999999999999999999999999999999999999999999"</div><div class='add'>+  @all_pieces.each {  | piece | piece.fill_string( board_string ) }</div><div class='add'>+  save( board_string)</div><div class='add'>+  save( board_string.reverse)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# adds a board string to the list (if new) and updates the current best/worst board</div><div class='add'>+def save( board_string)</div><div class='add'>+  if (@all_boards[board_string] == nil) then</div><div class='add'>+    @min_board = board_string if (board_string &lt; @min_board)</div><div class='add'>+    @max_board = board_string if (board_string &gt; @max_board)</div><div class='add'>+    @all_boards.store(board_string,true)</div><div class='add'>+    @boards_found += 1</div><div class='add'>+</div><div class='add'>+    # the exit motif is a time saver.  Ideally the function should return, but those tests</div><div class='add'>+    # take noticeable time (performance).</div><div class='add'>+    if (@boards_found == @stop_count) then</div><div class='add'>+      print_results</div><div class='add'>+      exit(0)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+##</div><div class='add'>+## MAIN BODY :)</div><div class='add'>+##</div><div class='add'>+create_collector_support</div><div class='add'>+@pieces = [</div><div class='add'>+  Piece.new( [ :nw, :ne, :east, :east ], 2),</div><div class='add'>+  Piece.new( [ :ne, :se, :east, :ne ], 7),</div><div class='add'>+  Piece.new( [ :ne, :east, :ne, :nw ], 1),</div><div class='add'>+  Piece.new( [ :east, :sw, :sw, :se ], 6),</div><div class='add'>+  Piece.new( [ :east, :ne, :se, :ne ], 5),</div><div class='add'>+  Piece.new( [ :east, :east, :east, :se ], 0),</div><div class='add'>+  Piece.new( [ :ne, :nw, :se, :east, :se ], 4),</div><div class='add'>+  Piece.new( [ :se, :se, :se, :west ], 9),</div><div class='add'>+  Piece.new( [ :se, :se, :east, :se ], 8),</div><div class='add'>+  Piece.new( [ :east, :east, :sw, :se ], 3)</div><div class='add'>+  ];</div><div class='add'>+</div><div class='add'>+@all_pieces = Array.new( @pieces)</div><div class='add'>+</div><div class='add'>+@min_board = "99999999999999999999999999999999999999999999999999"</div><div class='add'>+@max_board = "00000000000000000000000000000000000000000000000000"</div><div class='add'>+@stop_count = ARGV[0].to_i || 2089</div><div class='add'>+@all_boards = {}</div><div class='add'>+@boards_found = 0</div><div class='add'>+</div><div class='add'>+find_all ######## DO IT!!!</div><div class='head'>diff --git a/benchmark/bm_so_nbody.rb b/benchmark/bm_so_nbody.rb<br/>new file mode 100644<br/>index 0000000000..d6c5bb9e61<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_nbody.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_nbody.rb</a></div><div class='hunk'>@@ -0,0 +1,148 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org</div><div class='add'>+#</div><div class='add'>+# Optimized for Ruby by Jesse Millikan</div><div class='add'>+# From version ported by Michael Neumann from the C gcc version,</div><div class='add'>+# which was written by Christoph Bauer.</div><div class='add'>+</div><div class='add'>+SOLAR_MASS = 4 * Math::PI**2</div><div class='add'>+DAYS_PER_YEAR = 365.24</div><div class='add'>+</div><div class='add'>+def _puts *args</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Planet</div><div class='add'>+ attr_accessor :x, :y, :z, :vx, :vy, :vz, :mass</div><div class='add'>+</div><div class='add'>+ def initialize(x, y, z, vx, vy, vz, mass)</div><div class='add'>+  @x, @y, @z = x, y, z</div><div class='add'>+  @vx, @vy, @vz = vx * DAYS_PER_YEAR, vy * DAYS_PER_YEAR, vz * DAYS_PER_YEAR</div><div class='add'>+  @mass = mass * SOLAR_MASS</div><div class='add'>+ end</div><div class='add'>+</div><div class='add'>+ def move_from_i(bodies, nbodies, dt, i)</div><div class='add'>+  while i &lt; nbodies</div><div class='add'>+   b2 = bodies[i]</div><div class='add'>+   dx = @x - b2.x</div><div class='add'>+   dy = @y - b2.y</div><div class='add'>+   dz = @z - b2.z</div><div class='add'>+</div><div class='add'>+   distance = Math.sqrt(dx * dx + dy * dy + dz * dz)</div><div class='add'>+   mag = dt / (distance * distance * distance)</div><div class='add'>+   b_mass_mag, b2_mass_mag = @mass * mag, b2.mass * mag</div><div class='add'>+</div><div class='add'>+   @vx -= dx * b2_mass_mag</div><div class='add'>+   @vy -= dy * b2_mass_mag</div><div class='add'>+   @vz -= dz * b2_mass_mag</div><div class='add'>+   b2.vx += dx * b_mass_mag</div><div class='add'>+   b2.vy += dy * b_mass_mag</div><div class='add'>+   b2.vz += dz * b_mass_mag</div><div class='add'>+   i += 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  @x += dt * @vx</div><div class='add'>+  @y += dt * @vy</div><div class='add'>+  @z += dt * @vz</div><div class='add'>+ end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def energy(bodies)</div><div class='add'>+  e = 0.0</div><div class='add'>+  nbodies = bodies.size</div><div class='add'>+</div><div class='add'>+  for i in 0 ... nbodies</div><div class='add'>+    b = bodies[i]</div><div class='add'>+    e += 0.5 * b.mass * (b.vx * b.vx + b.vy * b.vy + b.vz * b.vz)</div><div class='add'>+    for j in (i + 1) ... nbodies</div><div class='add'>+      b2 = bodies[j]</div><div class='add'>+      dx = b.x - b2.x</div><div class='add'>+      dy = b.y - b2.y</div><div class='add'>+      dz = b.z - b2.z</div><div class='add'>+      distance = Math.sqrt(dx * dx + dy * dy + dz * dz)</div><div class='add'>+      e -= (b.mass * b2.mass) / distance</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  e</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def offset_momentum(bodies)</div><div class='add'>+  px, py, pz = 0.0, 0.0, 0.0</div><div class='add'>+</div><div class='add'>+  for b in bodies</div><div class='add'>+    m = b.mass</div><div class='add'>+    px += b.vx * m</div><div class='add'>+    py += b.vy * m</div><div class='add'>+    pz += b.vz * m</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  b = bodies[0]</div><div class='add'>+  b.vx = - px / SOLAR_MASS</div><div class='add'>+  b.vy = - py / SOLAR_MASS</div><div class='add'>+  b.vz = - pz / SOLAR_MASS</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+BODIES = [</div><div class='add'>+  # sun</div><div class='add'>+  Planet.new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0),</div><div class='add'>+</div><div class='add'>+  # jupiter</div><div class='add'>+  Planet.new(</div><div class='add'>+    4.84143144246472090e+00,</div><div class='add'>+    -1.16032004402742839e+00,</div><div class='add'>+    -1.03622044471123109e-01,</div><div class='add'>+    1.66007664274403694e-03,</div><div class='add'>+    7.69901118419740425e-03,</div><div class='add'>+    -6.90460016972063023e-05,</div><div class='add'>+    9.54791938424326609e-04),</div><div class='add'>+</div><div class='add'>+  # saturn</div><div class='add'>+  Planet.new(</div><div class='add'>+    8.34336671824457987e+00,</div><div class='add'>+    4.12479856412430479e+00,</div><div class='add'>+    -4.03523417114321381e-01,</div><div class='add'>+    -2.76742510726862411e-03,</div><div class='add'>+    4.99852801234917238e-03,</div><div class='add'>+    2.30417297573763929e-05,</div><div class='add'>+    2.85885980666130812e-04),</div><div class='add'>+</div><div class='add'>+  # uranus</div><div class='add'>+  Planet.new(</div><div class='add'>+    1.28943695621391310e+01,</div><div class='add'>+    -1.51111514016986312e+01,</div><div class='add'>+    -2.23307578892655734e-01,</div><div class='add'>+    2.96460137564761618e-03,</div><div class='add'>+    2.37847173959480950e-03,</div><div class='add'>+    -2.96589568540237556e-05,</div><div class='add'>+    4.36624404335156298e-05),</div><div class='add'>+</div><div class='add'>+  # neptune</div><div class='add'>+  Planet.new(</div><div class='add'>+    1.53796971148509165e+01,</div><div class='add'>+    -2.59193146099879641e+01,</div><div class='add'>+    1.79258772950371181e-01,</div><div class='add'>+    2.68067772490389322e-03,</div><div class='add'>+    1.62824170038242295e-03,</div><div class='add'>+    -9.51592254519715870e-05,</div><div class='add'>+    5.15138902046611451e-05)</div><div class='add'>+]</div><div class='add'>+</div><div class='add'>+init = 200_000 # ARGV[0]</div><div class='add'>+n = Integer(init)</div><div class='add'>+</div><div class='add'>+offset_momentum(BODIES)</div><div class='add'>+</div><div class='add'>+puts "%.9f" % energy(BODIES)</div><div class='add'>+</div><div class='add'>+nbodies = BODIES.size</div><div class='add'>+dt = 0.01</div><div class='add'>+</div><div class='add'>+n.times do</div><div class='add'>+  i = 0</div><div class='add'>+  while i &lt; nbodies</div><div class='add'>+    b = BODIES[i]</div><div class='add'>+    b.move_from_i(BODIES, nbodies, dt, i + 1)</div><div class='add'>+    i += 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+puts "%.9f" % energy(BODIES)</div><div class='head'>diff --git a/benchmark/bm_so_nested_loop.rb b/benchmark/bm_so_nested_loop.rb<br/>new file mode 100644<br/>index 0000000000..a0513f8c47<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_nested_loop.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_nested_loop.rb</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: nestedloop-ruby.code,v 1.4 2004/11/13 07:42:22 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+# from Avi Bryant</div><div class='add'>+</div><div class='add'>+n = 16 # Integer(ARGV.shift || 1)</div><div class='add'>+x = 0</div><div class='add'>+n.times do</div><div class='add'>+    n.times do</div><div class='add'>+        n.times do</div><div class='add'>+            n.times do</div><div class='add'>+                n.times do</div><div class='add'>+                    n.times do</div><div class='add'>+                        x += 1</div><div class='add'>+                    end</div><div class='add'>+                end</div><div class='add'>+            end</div><div class='add'>+        end</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+# puts x</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_nsieve.rb b/benchmark/bm_so_nsieve.rb<br/>new file mode 100644<br/>index 0000000000..a65cc78233<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_nsieve.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_nsieve.rb</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+#</div><div class='add'>+# contributed by Glenn Parker, March 2005</div><div class='add'>+# modified by Evan Phoenix, Sept 2006</div><div class='add'>+</div><div class='add'>+def sieve(m)</div><div class='add'>+  flags = Flags.dup[0,m]</div><div class='add'>+  count = 0</div><div class='add'>+  pmax = m - 1</div><div class='add'>+  p = 2</div><div class='add'>+  while p &lt;= pmax</div><div class='add'>+    unless flags[p].zero?</div><div class='add'>+      count += 1</div><div class='add'>+      mult = p</div><div class='add'>+      while mult &lt;= pmax</div><div class='add'>+        flags[mult] = 0</div><div class='add'>+        mult += p</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    p += 1</div><div class='add'>+  end</div><div class='add'>+  count</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+n = 9 # (ARGV[0] || 2).to_i</div><div class='add'>+Flags = ("\x1" * ( 2 ** n * 10_000)).unpack("c*")</div><div class='add'>+</div><div class='add'>+n.downto(n-2) do |exponent|</div><div class='add'>+  break if exponent &lt; 0</div><div class='add'>+  m = (1 &lt;&lt; exponent) * 10_000</div><div class='add'>+  # m = (2 ** exponent) * 10_000</div><div class='add'>+  count = sieve(m)</div><div class='add'>+  printf "Primes up to %8d %8d\n", m, count</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_so_nsieve_bits.rb b/benchmark/bm_so_nsieve_bits.rb<br/>new file mode 100644<br/>index 0000000000..6f958ee44e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_nsieve_bits.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_nsieve_bits.rb</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+#coding: us-ascii</div><div class='add'>+#</div><div class='add'>+# The Great Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+#</div><div class='add'>+# nsieve-bits in Ruby</div><div class='add'>+# Contributed by Glenn Parker, March 2005</div><div class='add'>+</div><div class='add'>+CharExponent = 3</div><div class='add'>+BitsPerChar = 1 &lt;&lt; CharExponent</div><div class='add'>+LowMask = BitsPerChar - 1</div><div class='add'>+</div><div class='add'>+def sieve(m)</div><div class='add'>+  items = "\xFF" * ((m / BitsPerChar) + 1)</div><div class='add'>+  masks = ""</div><div class='add'>+  BitsPerChar.times do |b|</div><div class='add'>+    masks &lt;&lt; (1 &lt;&lt; b).chr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  count = 0</div><div class='add'>+  pmax = m - 1</div><div class='add'>+  2.step(pmax, 1) do |p|</div><div class='add'>+    if items[p &gt;&gt; CharExponent][p &amp; LowMask] == 1</div><div class='add'>+      count += 1</div><div class='add'>+      p.step(pmax, p) do |mult|</div><div class='add'>+	a = mult &gt;&gt; CharExponent</div><div class='add'>+	b = mult &amp; LowMask</div><div class='add'>+	items[a] -= masks[b] if items[a][b] != 0</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  count</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+n = 9 # (ARGV[0] || 2).to_i</div><div class='add'>+n.step(n - 2, -1) do |exponent|</div><div class='add'>+  break if exponent &lt; 0</div><div class='add'>+  m = 2 ** exponent * 10_000</div><div class='add'>+  count = sieve(m)</div><div class='add'>+  printf "Primes up to %8d %8d\n", m, count</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_object.rb b/benchmark/bm_so_object.rb<br/>new file mode 100644<br/>index 0000000000..e8607c7199<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_object.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_object.rb</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+# $Id: objinst-ruby.code,v 1.4 2004/11/13 07:42:25 bfulgham Exp $</div><div class='add'>+# http://www.bagley.org/~doug/shootout/</div><div class='add'>+# with help from Aristarkh Zagorodnikov</div><div class='add'>+</div><div class='add'>+class Toggle</div><div class='add'>+    def initialize(start_state)</div><div class='add'>+        @bool = start_state</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def value</div><div class='add'>+        @bool</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def activate</div><div class='add'>+        @bool = !@bool</div><div class='add'>+        self</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class NthToggle &lt; Toggle</div><div class='add'>+    def initialize(start_state, max_counter)</div><div class='add'>+        super start_state</div><div class='add'>+        @count_max = max_counter</div><div class='add'>+        @counter = 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def activate</div><div class='add'>+        @counter += 1</div><div class='add'>+        if @counter &gt;= @count_max</div><div class='add'>+            @bool = !@bool</div><div class='add'>+            @counter = 0</div><div class='add'>+        end</div><div class='add'>+        self</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+n = 1500000 # (ARGV.shift || 1).to_i</div><div class='add'>+</div><div class='add'>+toggle = Toggle.new 1</div><div class='add'>+5.times do</div><div class='add'>+    toggle.activate.value ? 'true' : 'false'</div><div class='add'>+end</div><div class='add'>+n.times do</div><div class='add'>+    toggle = Toggle.new 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ntoggle = NthToggle.new 1, 3</div><div class='add'>+8.times do</div><div class='add'>+    ntoggle.activate.value ? 'true' : 'false'</div><div class='add'>+end</div><div class='add'>+n.times do</div><div class='add'>+    ntoggle = NthToggle.new 1, 3</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_partial_sums.rb b/benchmark/bm_so_partial_sums.rb<br/>new file mode 100644<br/>index 0000000000..630b45cb8d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_partial_sums.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_partial_sums.rb</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+n = 2_500_000 # (ARGV.shift || 1).to_i</div><div class='add'>+</div><div class='add'>+alt = 1.0 ; s0 = s1 = s2 = s3 = s4 = s5 = s6 = s7 = s8 = 0.0</div><div class='add'>+</div><div class='add'>+1.upto(n) do |d|</div><div class='add'>+  d = d.to_f ; d2 = d * d ; d3 = d2 * d ; ds = Math.sin(d) ; dc = Math.cos(d)</div><div class='add'>+</div><div class='add'>+  s0 += (2.0 / 3.0) ** (d - 1.0)</div><div class='add'>+  s1 += 1.0 / Math.sqrt(d)</div><div class='add'>+  s2 += 1.0 / (d * (d + 1.0))</div><div class='add'>+  s3 += 1.0 / (d3 * ds * ds)</div><div class='add'>+  s4 += 1.0 / (d3 * dc * dc)</div><div class='add'>+  s5 += 1.0 / d</div><div class='add'>+  s6 += 1.0 / d2</div><div class='add'>+  s7 += alt / d</div><div class='add'>+  s8 += alt / (2.0 * d - 1.0)</div><div class='add'>+</div><div class='add'>+  alt = -alt</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if false</div><div class='add'>+  printf("%.9f\t(2/3)^k\n", s0)</div><div class='add'>+  printf("%.9f\tk^-0.5\n", s1)</div><div class='add'>+  printf("%.9f\t1/k(k+1)\n", s2)</div><div class='add'>+  printf("%.9f\tFlint Hills\n", s3)</div><div class='add'>+  printf("%.9f\tCookson Hills\n", s4)</div><div class='add'>+  printf("%.9f\tHarmonic\n", s5)</div><div class='add'>+  printf("%.9f\tRiemann Zeta\n", s6)</div><div class='add'>+  printf("%.9f\tAlternating Harmonic\n", s7)</div><div class='add'>+  printf("%.9f\tGregory\n", s8)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_so_pidigits.rb b/benchmark/bm_so_pidigits.rb<br/>new file mode 100644<br/>index 0000000000..9a537b2d1c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_pidigits.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_pidigits.rb</a></div><div class='hunk'>@@ -0,0 +1,92 @@</div><div class='add'>+# The Great Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+#</div><div class='add'>+# contributed by Gabriele Renzi</div><div class='add'>+</div><div class='add'>+class PiDigitSpigot</div><div class='add'>+</div><div class='add'>+    def initialize()</div><div class='add'>+        @z = Transformation.new 1,0,0,1</div><div class='add'>+        @x = Transformation.new 0,0,0,0</div><div class='add'>+        @inverse = Transformation.new 0,0,0,0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def next!</div><div class='add'>+        @y = @z.extract(3)</div><div class='add'>+        if safe? @y</div><div class='add'>+            @z = produce(@y)</div><div class='add'>+            @y</div><div class='add'>+        else</div><div class='add'>+            @z = consume @x.next!()</div><div class='add'>+            next!()</div><div class='add'>+        end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def safe?(digit)</div><div class='add'>+        digit == @z.extract(4)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def produce(i)</div><div class='add'>+        @inverse.qrst(10,-10*i,0,1).compose(@z)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def consume(a)</div><div class='add'>+        @z.compose(a)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+class Transformation</div><div class='add'>+    attr_reader :q, :r, :s, :t</div><div class='add'>+    def initialize(q, r, s, t)</div><div class='add'>+        @q,@r,@s,@t,@k = q,r,s,t,0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def next!()</div><div class='add'>+        @q = @k = @k + 1</div><div class='add'>+        @r = 4 * @k + 2</div><div class='add'>+        @s = 0</div><div class='add'>+        @t = 2 * @k + 1</div><div class='add'>+        self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def extract(j)</div><div class='add'>+        (@q * j + @r) / (@s * j + @t)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def compose(a)</div><div class='add'>+        self.class.new( @q * a.q,</div><div class='add'>+                        @q * a.r + r * a.t,</div><div class='add'>+                        @s * a.q + t * a.s,</div><div class='add'>+                        @s * a.r + t * a.t</div><div class='add'>+                    )</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def qrst *args</div><div class='add'>+        initialize *args</div><div class='add'>+        self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+WIDTH = 10</div><div class='add'>+n = 2_500 # Integer(ARGV[0])</div><div class='add'>+j = 0</div><div class='add'>+</div><div class='add'>+digits = PiDigitSpigot.new</div><div class='add'>+</div><div class='add'>+while n &gt; 0</div><div class='add'>+    if n &gt;= WIDTH</div><div class='add'>+        WIDTH.times {print digits.next!}</div><div class='add'>+        j += WIDTH</div><div class='add'>+    else</div><div class='add'>+        n.times {print digits.next!}</div><div class='add'>+        (WIDTH-n).times {print " "}</div><div class='add'>+        j += n</div><div class='add'>+    end</div><div class='add'>+    puts "\t:"+j.to_s</div><div class='add'>+    n -= WIDTH</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_so_random.rb b/benchmark/bm_so_random.rb<br/>new file mode 100644<br/>index 0000000000..a66b9e8e63<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_random.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_random.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+# from http://www.bagley.org/~doug/shootout/bench/random/random.ruby</div><div class='add'>+</div><div class='add'>+IM = 139968.0</div><div class='add'>+IA = 3877.0</div><div class='add'>+IC = 29573.0</div><div class='add'>+</div><div class='add'>+$last = 42.0</div><div class='add'>+</div><div class='add'>+def gen_random(max)</div><div class='add'>+  (max * ($last = ($last * IA + IC) % IM)) / IM</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+N = 3_000_000</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;N</div><div class='add'>+  i +=1</div><div class='add'>+  gen_random(100.0)</div><div class='add'>+end</div><div class='add'>+# "%.9f" % gen_random(100.0)</div><div class='head'>diff --git a/benchmark/bm_so_reverse_complement.rb b/benchmark/bm_so_reverse_complement.rb<br/>new file mode 100644<br/>index 0000000000..82ea666994<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_reverse_complement.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_reverse_complement.rb</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+#!/usr/bin/ruby</div><div class='add'>+# The Great Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+#</div><div class='add'>+# Contributed by Peter Bjarke Olsen</div><div class='add'>+# Modified by Doug King</div><div class='add'>+</div><div class='add'>+seq=Array.new</div><div class='add'>+</div><div class='add'>+def revcomp(seq)</div><div class='add'>+  seq.reverse!.tr!('wsatugcyrkmbdhvnATUGCYRKMBDHVN','WSTAACGRYMKVHDBNTAACGRYMKVHDBN')</div><div class='add'>+  stringlen=seq.length</div><div class='add'>+  0.step(stringlen-1,60) {|x| print seq.slice(x,60) , "\n"}</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+input = open(File.join(File.dirname($0), 'fasta.output.2500000'), 'rb')</div><div class='add'>+</div><div class='add'>+while input.gets</div><div class='add'>+  if $_ =~ /&gt;/</div><div class='add'>+    if seq.length != 0</div><div class='add'>+      revcomp(seq.join)</div><div class='add'>+      seq=Array.new</div><div class='add'>+    end</div><div class='add'>+    puts $_</div><div class='add'>+  else</div><div class='add'>+    $_.sub(/\n/,'')</div><div class='add'>+    seq.push $_</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+revcomp(seq.join)</div><div class='head'>diff --git a/benchmark/bm_so_sieve.rb b/benchmark/bm_so_sieve.rb<br/>new file mode 100644<br/>index 0000000000..43dc302648<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_sieve.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_sieve.rb</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+# from http://www.bagley.org/~doug/shootout/bench/sieve/sieve.ruby</div><div class='add'>+num = 500</div><div class='add'>+count = i = j = 0</div><div class='add'>+flags0 = Array.new(8192,1)</div><div class='add'>+k = 0</div><div class='add'>+while k &lt; num</div><div class='add'>+  k += 1</div><div class='add'>+  count = 0</div><div class='add'>+  flags = flags0.dup</div><div class='add'>+  i = 2</div><div class='add'>+  while i&lt;8192</div><div class='add'>+    i += 1</div><div class='add'>+    if flags[i]</div><div class='add'>+      # remove all multiples of prime: i</div><div class='add'>+      j = i*i</div><div class='add'>+      while j &lt; 8192</div><div class='add'>+        j += i</div><div class='add'>+        flags[j] = nil</div><div class='add'>+      end</div><div class='add'>+      count += 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+count</div><div class='head'>diff --git a/benchmark/bm_so_spectralnorm.rb b/benchmark/bm_so_spectralnorm.rb<br/>new file mode 100644<br/>index 0000000000..6b97206689<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_spectralnorm.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_so_spectralnorm.rb</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+# The Computer Language Shootout</div><div class='add'>+# http://shootout.alioth.debian.org/</div><div class='add'>+# Contributed by Sokolov Yura</div><div class='add'>+</div><div class='add'>+def eval_A(i,j)</div><div class='add'>+	return 1.0/((i+j)*(i+j+1)/2+i+1)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def eval_A_times_u(u)</div><div class='add'>+        v, i = nil, nil</div><div class='add'>+	(0..u.length-1).collect { |i|</div><div class='add'>+                v = 0</div><div class='add'>+		for j in 0..u.length-1</div><div class='add'>+			v += eval_A(i,j)*u[j]</div><div class='add'>+                end</div><div class='add'>+                v</div><div class='add'>+        }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def eval_At_times_u(u)</div><div class='add'>+	v, i = nil, nil</div><div class='add'>+	(0..u.length-1).collect{|i|</div><div class='add'>+                v = 0</div><div class='add'>+		for j in 0..u.length-1</div><div class='add'>+			v += eval_A(j,i)*u[j]</div><div class='add'>+                end</div><div class='add'>+                v</div><div class='add'>+        }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def eval_AtA_times_u(u)</div><div class='add'>+	return eval_At_times_u(eval_A_times_u(u))</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+n = 500 # ARGV[0].to_i</div><div class='add'>+</div><div class='add'>+u=[1]*n</div><div class='add'>+for i in 1..10</div><div class='add'>+        v=eval_AtA_times_u(u)</div><div class='add'>+        u=eval_AtA_times_u(v)</div><div class='add'>+end</div><div class='add'>+vBv=0</div><div class='add'>+vv=0</div><div class='add'>+for i in 0..n-1</div><div class='add'>+        vBv += u[i]*v[i]</div><div class='add'>+        vv += v[i]*v[i]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+str = "%0.9f" % (Math.sqrt(vBv/vv)), "\n"</div><div class='add'>+# print str</div><div class='head'>diff --git a/benchmark/bm_string_index.rb b/benchmark/bm_string_index.rb<br/>new file mode 100644<br/>index 0000000000..7783111082<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_string_index.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_string_index.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+str1 = "ã‚" * 1024 + "ã„" # not single byte optimizable</div><div class='add'>+str2 = "ã„"</div><div class='add'>+100_000.times { str1.index(str2) }</div><div class='head'>diff --git a/benchmark/bm_string_scan_re.rb b/benchmark/bm_string_scan_re.rb<br/>new file mode 100644<br/>index 0000000000..b0d60201a9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_string_scan_re.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_string_scan_re.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+str = Array.new(1_000, 'abc').join(',')</div><div class='add'>+1_000.times { str.scan(/abc/) }</div><div class='head'>diff --git a/benchmark/bm_string_scan_str.rb b/benchmark/bm_string_scan_str.rb<br/>new file mode 100644<br/>index 0000000000..42440bd948<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_string_scan_str.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_string_scan_str.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+str = Array.new(1_000, 'abc').join(',')</div><div class='add'>+1_000.times { str.scan('abc') }</div><div class='head'>diff --git a/benchmark/bm_time_subsec.rb b/benchmark/bm_time_subsec.rb<br/>new file mode 100644<br/>index 0000000000..505021c701<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_time_subsec.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_time_subsec.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+t = Time.now</div><div class='add'>+4000000.times { t.subsec }</div><div class='head'>diff --git a/benchmark/bm_vm1_attr_ivar.rb b/benchmark/bm_vm1_attr_ivar.rb<br/>new file mode 100644<br/>index 0000000000..16906f3605<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_attr_ivar.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_attr_ivar.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+class C</div><div class='add'>+  attr_reader :a, :b</div><div class='add'>+  def initialize</div><div class='add'>+    @a = nil</div><div class='add'>+    @b = nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+obj = C.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  j = obj.a</div><div class='add'>+  k = obj.b</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_attr_ivar_set.rb b/benchmark/bm_vm1_attr_ivar_set.rb<br/>new file mode 100644<br/>index 0000000000..7e7a6b48c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_attr_ivar_set.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_attr_ivar_set.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+class C</div><div class='add'>+  attr_accessor :a, :b</div><div class='add'>+  def initialize</div><div class='add'>+    @a = nil</div><div class='add'>+    @b = nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+obj = C.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  obj.a = 1</div><div class='add'>+  obj.b = 2</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_block.rb b/benchmark/bm_vm1_block.rb<br/>new file mode 100644<br/>index 0000000000..a9f56b15ea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_block.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_block.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+def m</div><div class='add'>+  yield</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  m{</div><div class='add'>+  }</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_blockparam.rb b/benchmark/bm_vm1_blockparam.rb<br/>new file mode 100755<br/>index 0000000000..11680a2e61<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_blockparam.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_blockparam.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def m &amp;b</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  m{}</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_blockparam_call.rb b/benchmark/bm_vm1_blockparam_call.rb<br/>new file mode 100755<br/>index 0000000000..f6102a2b5a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_blockparam_call.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_blockparam_call.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def m &amp;b</div><div class='add'>+  b.call</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  m{}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_blockparam_pass.rb b/benchmark/bm_vm1_blockparam_pass.rb<br/>new file mode 100755<br/>index 0000000000..10029a257a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_blockparam_pass.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_blockparam_pass.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+def bp_yield</div><div class='add'>+  yield</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def bp_pass &amp;b</div><div class='add'>+  bp_yield &amp;b</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  bp_pass{}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_blockparam_yield.rb b/benchmark/bm_vm1_blockparam_yield.rb<br/>new file mode 100755<br/>index 0000000000..6dc01ced7c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_blockparam_yield.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_blockparam_yield.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def bp_yield &amp;b</div><div class='add'>+  yield</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  bp_yield{}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_const.rb b/benchmark/bm_vm1_const.rb<br/>new file mode 100644<br/>index 0000000000..ac59ebccf1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_const.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_const.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+Const = 1</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  j = Const</div><div class='add'>+  k = Const</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_ensure.rb b/benchmark/bm_vm1_ensure.rb<br/>new file mode 100644<br/>index 0000000000..a1596145f2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ensure.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_ensure.rb</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # benchmark loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  begin</div><div class='add'>+    begin</div><div class='add'>+    ensure</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_float_simple.rb b/benchmark/bm_vm1_float_simple.rb<br/>new file mode 100644<br/>index 0000000000..d4581439ff<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_float_simple.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_float_simple.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+i = 0.0; f = 0.0</div><div class='add'>+while i&lt;30_000_000</div><div class='add'>+  i += 1</div><div class='add'>+  f += 0.1; f -= 0.1</div><div class='add'>+  f += 0.1; f -= 0.1</div><div class='add'>+  f += 0.1; f -= 0.1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_short_lived.rb b/benchmark/bm_vm1_gc_short_lived.rb<br/>new file mode 100644<br/>index 0000000000..e78bca5668<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_short_lived.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_short_lived.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  a = '' # short-lived String</div><div class='add'>+  b = ''</div><div class='add'>+  c = ''</div><div class='add'>+  d = ''</div><div class='add'>+  e = ''</div><div class='add'>+  f = ''</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_short_with_complex_long.rb b/benchmark/bm_vm1_gc_short_with_complex_long.rb<br/>new file mode 100644<br/>index 0000000000..b66052dee0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_short_with_complex_long.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_short_with_complex_long.rb</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+def nested_hash h, n</div><div class='add'>+  if n == 0</div><div class='add'>+    ''</div><div class='add'>+  else</div><div class='add'>+    10.times{</div><div class='add'>+      h[Object.new] = nested_hash(h, n-1)</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+long_lived = Hash.new</div><div class='add'>+nested_hash long_lived, 6</div><div class='add'>+</div><div class='add'>+GC.start</div><div class='add'>+GC.start</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  a = '' # short-lived String</div><div class='add'>+  b = ''</div><div class='add'>+  c = ''</div><div class='add'>+  d = ''</div><div class='add'>+  e = ''</div><div class='add'>+  f = ''</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_short_with_long.rb b/benchmark/bm_vm1_gc_short_with_long.rb<br/>new file mode 100644<br/>index 0000000000..298dbc845b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_short_with_long.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_short_with_long.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+long_lived = Array.new(1_000_000){|i| "#{i}"}</div><div class='add'>+GC.start</div><div class='add'>+GC.start</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  a = '' # short-lived String</div><div class='add'>+  b = ''</div><div class='add'>+  c = ''</div><div class='add'>+  d = ''</div><div class='add'>+  e = ''</div><div class='add'>+  f = ''</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_short_with_symbol.rb b/benchmark/bm_vm1_gc_short_with_symbol.rb<br/>new file mode 100644<br/>index 0000000000..6b15c1b7bf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_short_with_symbol.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_short_with_symbol.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# make many symbols</div><div class='add'>+50_000.times{|i| sym = "sym#{i}".to_sym}</div><div class='add'>+GC.start</div><div class='add'>+GC.start</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  a = '' # short-lived String</div><div class='add'>+  b = ''</div><div class='add'>+  c = ''</div><div class='add'>+  d = ''</div><div class='add'>+  e = ''</div><div class='add'>+  f = ''</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_wb_ary.rb b/benchmark/bm_vm1_gc_wb_ary.rb<br/>new file mode 100644<br/>index 0000000000..1b030386cf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_wb_ary.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_wb_ary.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+short_lived_ary = []</div><div class='add'>+</div><div class='add'>+if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+  GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+short_lived = ''</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  short_lived_ary[0] = short_lived # write barrier</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_wb_ary_promoted.rb b/benchmark/bm_vm1_gc_wb_ary_promoted.rb<br/>new file mode 100644<br/>index 0000000000..ebc369a60f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_wb_ary_promoted.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_wb_ary_promoted.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+long_lived = []</div><div class='add'>+</div><div class='add'>+if RUBY_VERSION &gt; "2.2.0"</div><div class='add'>+  3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='add'>+elsif</div><div class='add'>+  GC.start</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+short_lived = ''</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  long_lived[0] = short_lived # write barrier</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_wb_obj.rb b/benchmark/bm_vm1_gc_wb_obj.rb<br/>new file mode 100644<br/>index 0000000000..96f4261915<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_wb_obj.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_wb_obj.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+class C</div><div class='add'>+  attr_accessor :foo</div><div class='add'>+end</div><div class='add'>+short_lived_obj = C.new</div><div class='add'>+</div><div class='add'>+if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+  GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+short_lived = ''</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  short_lived_obj.foo = short_lived # write barrier</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_gc_wb_obj_promoted.rb b/benchmark/bm_vm1_gc_wb_obj_promoted.rb<br/>new file mode 100644<br/>index 0000000000..674c413992<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_gc_wb_obj_promoted.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_gc_wb_obj_promoted.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+class C</div><div class='add'>+  attr_accessor :foo</div><div class='add'>+end</div><div class='add'>+long_lived = C.new</div><div class='add'>+</div><div class='add'>+if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+  3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='add'>+elsif</div><div class='add'>+  GC.start</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+short_lived = ''</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  long_lived.foo = short_lived # write barrier</div><div class='add'>+  i+=1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_ivar.rb b/benchmark/bm_vm1_ivar.rb<br/>new file mode 100644<br/>index 0000000000..68a73cf92f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ivar.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_ivar.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+@a = 1</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  j = @a</div><div class='add'>+  k = @a</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_ivar_set.rb b/benchmark/bm_vm1_ivar_set.rb<br/>new file mode 100644<br/>index 0000000000..bd81b06c34<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ivar_set.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_ivar_set.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  @a = 1</div><div class='add'>+  @b = 2</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_length.rb b/benchmark/bm_vm1_length.rb<br/>new file mode 100644<br/>index 0000000000..353de3ab0e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_length.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_length.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+a = 'abc'</div><div class='add'>+b = [1, 2, 3]</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  a.length</div><div class='add'>+  b.length</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_lvar_init.rb b/benchmark/bm_vm1_lvar_init.rb<br/>new file mode 100644<br/>index 0000000000..36f2068811<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_lvar_init.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_lvar_init.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+def m v</div><div class='add'>+  unless v</div><div class='add'>+    # unreachable code</div><div class='add'>+    v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =</div><div class='add'>+    v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =</div><div class='add'>+    v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =</div><div class='add'>+    v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =</div><div class='add'>+    v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  m i</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_lvar_set.rb b/benchmark/bm_vm1_lvar_set.rb<br/>new file mode 100644<br/>index 0000000000..222e864134<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_lvar_set.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_lvar_set.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_neq.rb b/benchmark/bm_vm1_neq.rb<br/>new file mode 100644<br/>index 0000000000..bbb4ae07a4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_neq.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_neq.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+obj1 = Object.new</div><div class='add'>+obj2 = Object.new</div><div class='add'>+</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  obj1 != obj2</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_not.rb b/benchmark/bm_vm1_not.rb<br/>new file mode 100644<br/>index 0000000000..b09ecdcc21<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_not.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_not.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+i = 0</div><div class='add'>+obj = Object.new</div><div class='add'>+</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  !obj</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_rescue.rb b/benchmark/bm_vm1_rescue.rb<br/>new file mode 100644<br/>index 0000000000..b0d3e2bdfa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_rescue.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_rescue.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  begin</div><div class='add'>+  rescue</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm1_simplereturn.rb b/benchmark/bm_vm1_simplereturn.rb<br/>new file mode 100644<br/>index 0000000000..63f9f21675<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_simplereturn.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_simplereturn.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def m</div><div class='add'>+  return 1</div><div class='add'>+end</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  m</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_swap.rb b/benchmark/bm_vm1_swap.rb<br/>new file mode 100644<br/>index 0000000000..918f8b2112<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_swap.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_swap.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+a = 1</div><div class='add'>+b = 2</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30_000_000 # while loop 1</div><div class='add'>+  i += 1</div><div class='add'>+  a, b = b, a</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm1_yield.rb b/benchmark/bm_vm1_yield.rb<br/>new file mode 100644<br/>index 0000000000..775597cea6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_yield.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm1_yield.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+def m</div><div class='add'>+  i = 0</div><div class='add'>+  while i&lt;30_000_000 # while loop 1</div><div class='add'>+    i += 1</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+m{}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm2_array.rb b/benchmark/bm_vm2_array.rb<br/>new file mode 100644<br/>index 0000000000..df9037c83c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_array.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_array.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  a = [1,2,3,4,5,6,7,8,9,10]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_bigarray.rb b/benchmark/bm_vm2_bigarray.rb<br/>new file mode 100644<br/>index 0000000000..b02509d6a2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_bigarray.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_bigarray.rb</a></div><div class='hunk'>@@ -0,0 +1,106 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  a = [</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+  ]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_bighash.rb b/benchmark/bm_vm2_bighash.rb<br/>new file mode 100644<br/>index 0000000000..5e3f437bb8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_bighash.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_bighash.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;60_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  a = {0=&gt;0, 1=&gt;1, 2=&gt;2, 3=&gt;3, 4=&gt;4, 5=&gt;5, 6=&gt;6, 7=&gt;7, 8=&gt;8, 9=&gt;9, 10=&gt;10, 11=&gt;11, 12=&gt;12, 13=&gt;13, 14=&gt;14, 15=&gt;15, 16=&gt;16, 17=&gt;17, 18=&gt;18, 19=&gt;19, 20=&gt;20, 21=&gt;21, 22=&gt;22, 23=&gt;23, 24=&gt;24, 25=&gt;25, 26=&gt;26, 27=&gt;27, 28=&gt;28, 29=&gt;29, 30=&gt;30, 31=&gt;31, 32=&gt;32, 33=&gt;33, 34=&gt;34, 35=&gt;35, 36=&gt;36, 37=&gt;37, 38=&gt;38, 39=&gt;39, 40=&gt;40, 41=&gt;41, 42=&gt;42, 43=&gt;43, 44=&gt;44, 45=&gt;45, 46=&gt;46, 47=&gt;47, 48=&gt;48, 49=&gt;49, 50=&gt;50, 51=&gt;51, 52=&gt;52, 53=&gt;53, 54=&gt;54, 55=&gt;55, 56=&gt;56, 57=&gt;57, 58=&gt;58, 59=&gt;59, 60=&gt;60, 61=&gt;61, 62=&gt;62, 63=&gt;63, 64=&gt;64, 65=&gt;65, 66=&gt;66, 67=&gt;67, 68=&gt;68, 69=&gt;69, 70=&gt;70, 71=&gt;71, 72=&gt;72, 73=&gt;73, 74=&gt;74, 75=&gt;75, 76=&gt;76, 77=&gt;77, 78=&gt;78, 79=&gt;79, 80=&gt;80, 81=&gt;81, 82=&gt;82, 83=&gt;83, 84=&gt;84, 85=&gt;85, 86=&gt;86, 87=&gt;87, 88=&gt;88, 89=&gt;89, 90=&gt;90, 91=&gt;91, 92=&gt;92, 93=&gt;93, 94=&gt;94, 95=&gt;95, 96=&gt;96, 97=&gt;97, 98=&gt;98, 99=&gt;99, 100=&gt;100, 101=&gt;101, 102=&gt;102, 103=&gt;103, 104=&gt;104, 105=&gt;105, 106=&gt;106, 107=&gt;107, 108=&gt;108, 109=&gt;109, 110=&gt;110, 111=&gt;111, 112=&gt;112, 113=&gt;113, 114=&gt;114, 115=&gt;115, 116=&gt;116, 117=&gt;117, 118=&gt;118, 119=&gt;119, 120=&gt;120, 121=&gt;121, 122=&gt;122, 123=&gt;123, 124=&gt;124, 125=&gt;125, 126=&gt;126, 127=&gt;127, 128=&gt;128, 129=&gt;129, 130=&gt;130, 131=&gt;131, 132=&gt;132, 133=&gt;133, 134=&gt;134, 135=&gt;135, 136=&gt;136, 137=&gt;137, 138=&gt;138, 139=&gt;139, 140=&gt;140, 141=&gt;141, 142=&gt;142, 143=&gt;143, 144=&gt;144, 145=&gt;145, 146=&gt;146, 147=&gt;147, 148=&gt;148, 149=&gt;149, 150=&gt;150, 151=&gt;151, 152=&gt;152, 153=&gt;153, 154=&gt;154, 155=&gt;155, 156=&gt;156, 157=&gt;157, 158=&gt;158, 159=&gt;159, 160=&gt;160, 161=&gt;161, 162=&gt;162, 163=&gt;163, 164=&gt;164, 165=&gt;165, 166=&gt;166, 167=&gt;167, 168=&gt;168, 169=&gt;169, 170=&gt;170, 171=&gt;171, 172=&gt;172, 173=&gt;173, 174=&gt;174, 175=&gt;175, 176=&gt;176, 177=&gt;177, 178=&gt;178, 179=&gt;179, 180=&gt;180, 181=&gt;181, 182=&gt;182, 183=&gt;183, 184=&gt;184, 185=&gt;185, 186=&gt;186, 187=&gt;187, 188=&gt;188, 189=&gt;189, 190=&gt;190, 191=&gt;191, 192=&gt;192, 193=&gt;193, 194=&gt;194, 195=&gt;195, 196=&gt;196, 197=&gt;197, 198=&gt;198, 199=&gt;199, 200=&gt;200, 201=&gt;201, 202=&gt;202, 203=&gt;203, 204=&gt;204, 205=&gt;205, 206=&gt;206, 207=&gt;207, 208=&gt;208, 209=&gt;209, 210=&gt;210, 211=&gt;211, 212=&gt;212, 213=&gt;213, 214=&gt;214, 215=&gt;215, 216=&gt;216, 217=&gt;217, 218=&gt;218, 219=&gt;219, 220=&gt;220, 221=&gt;221, 222=&gt;222, 223=&gt;223, 224=&gt;224, 225=&gt;225, 226=&gt;226, 227=&gt;227, 228=&gt;228, 229=&gt;229, 230=&gt;230, 231=&gt;231, 232=&gt;232, 233=&gt;233, 234=&gt;234, 235=&gt;235, 236=&gt;236, 237=&gt;237, 238=&gt;238, 239=&gt;239, 240=&gt;240, 241=&gt;241, 242=&gt;242, 243=&gt;243, 244=&gt;244, 245=&gt;245, 246=&gt;246, 247=&gt;247, 248=&gt;248, 249=&gt;249, 250=&gt;250, 251=&gt;251, 252=&gt;252, 253=&gt;253, 254=&gt;254, 255=&gt;255, 256=&gt;256, 257=&gt;257, 258=&gt;258, 259=&gt;259, 260=&gt;260, 261=&gt;261, 262=&gt;262, 263=&gt;263, 264=&gt;264, 265=&gt;265, 266=&gt;266, 267=&gt;267, 268=&gt;268, 269=&gt;269, 270=&gt;270, 271=&gt;271, 272=&gt;272, 273=&gt;273, 274=&gt;274, 275=&gt;275, 276=&gt;276, 277=&gt;277, 278=&gt;278, 279=&gt;279, 280=&gt;280, 281=&gt;281, 282=&gt;282, 283=&gt;283, 284=&gt;284, 285=&gt;285, 286=&gt;286, 287=&gt;287, 288=&gt;288, 289=&gt;289, 290=&gt;290, 291=&gt;291, 292=&gt;292, 293=&gt;293, 294=&gt;294, 295=&gt;295, 296=&gt;296, 297=&gt;297, 298=&gt;298, 299=&gt;299, 300=&gt;300, 301=&gt;301, 302=&gt;302, 303=&gt;303, 304=&gt;304, 305=&gt;305, 306=&gt;306, 307=&gt;307, 308=&gt;308, 309=&gt;309, 310=&gt;310, 311=&gt;311, 312=&gt;312, 313=&gt;313, 314=&gt;314, 315=&gt;315, 316=&gt;316, 317=&gt;317, 318=&gt;318, 319=&gt;319, 320=&gt;320, 321=&gt;321, 322=&gt;322, 323=&gt;323, 324=&gt;324, 325=&gt;325, 326=&gt;326, 327=&gt;327, 328=&gt;328, 329=&gt;329, 330=&gt;330, 331=&gt;331, 332=&gt;332, 333=&gt;333, 334=&gt;334, 335=&gt;335, 336=&gt;336, 337=&gt;337, 338=&gt;338, 339=&gt;339, 340=&gt;340, 341=&gt;341, 342=&gt;342, 343=&gt;343, 344=&gt;344, 345=&gt;345, 346=&gt;346, 347=&gt;347, 348=&gt;348, 349=&gt;349, 350=&gt;350, 351=&gt;351, 352=&gt;352, 353=&gt;353, 354=&gt;354, 355=&gt;355, 356=&gt;356, 357=&gt;357, 358=&gt;358, 359=&gt;359, 360=&gt;360, 361=&gt;361, 362=&gt;362, 363=&gt;363, 364=&gt;364, 365=&gt;365, 366=&gt;366, 367=&gt;367, 368=&gt;368, 369=&gt;369, 370=&gt;370, 371=&gt;371, 372=&gt;372, 373=&gt;373, 374=&gt;374, 375=&gt;375, 376=&gt;376, 377=&gt;377, 378=&gt;378, 379=&gt;379, 380=&gt;380, 381=&gt;381, 382=&gt;382, 383=&gt;383, 384=&gt;384, 385=&gt;385, 386=&gt;386, 387=&gt;387, 388=&gt;388, 389=&gt;389, 390=&gt;390, 391=&gt;391, 392=&gt;392, 393=&gt;393, 394=&gt;394, 395=&gt;395, 396=&gt;396, 397=&gt;397, 398=&gt;398, 399=&gt;399, 400=&gt;400, 401=&gt;401, 402=&gt;402, 403=&gt;403, 404=&gt;404, 405=&gt;405, 406=&gt;406, 407=&gt;407, 408=&gt;408, 409=&gt;409, 410=&gt;410, 411=&gt;411, 412=&gt;412, 413=&gt;413, 414=&gt;414, 415=&gt;415, 416=&gt;416, 417=&gt;417, 418=&gt;418, 419=&gt;419, 420=&gt;420, 421=&gt;421, 422=&gt;422, 423=&gt;423, 424=&gt;424, 425=&gt;425, 426=&gt;426, 427=&gt;427, 428=&gt;428, 429=&gt;429, 430=&gt;430, 431=&gt;431, 432=&gt;432, 433=&gt;433, 434=&gt;434, 435=&gt;435, 436=&gt;436, 437=&gt;437, 438=&gt;438, 439=&gt;439, 440=&gt;440, 441=&gt;441, 442=&gt;442, 443=&gt;443, 444=&gt;444, 445=&gt;445, 446=&gt;446, 447=&gt;447, 448=&gt;448, 449=&gt;449, 450=&gt;450, 451=&gt;451, 452=&gt;452, 453=&gt;453, 454=&gt;454, 455=&gt;455, 456=&gt;456, 457=&gt;457, 458=&gt;458, 459=&gt;459, 460=&gt;460, 461=&gt;461, 462=&gt;462, 463=&gt;463, 464=&gt;464, 465=&gt;465, 466=&gt;466, 467=&gt;467, 468=&gt;468, 469=&gt;469, 470=&gt;470, 471=&gt;471, 472=&gt;472, 473=&gt;473, 474=&gt;474, 475=&gt;475, 476=&gt;476, 477=&gt;477, 478=&gt;478, 479=&gt;479, 480=&gt;480, 481=&gt;481, 482=&gt;482, 483=&gt;483, 484=&gt;484, 485=&gt;485, 486=&gt;486, 487=&gt;487, 488=&gt;488, 489=&gt;489, 490=&gt;490, 491=&gt;491, 492=&gt;492, 493=&gt;493, 494=&gt;494, 495=&gt;495, 496=&gt;496, 497=&gt;497, 498=&gt;498, 499=&gt;499, 500=&gt;500,}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_case.rb b/benchmark/bm_vm2_case.rb<br/>new file mode 100644<br/>index 0000000000..adc6e4df0a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_case.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_case.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # while loop 2</div><div class='add'>+  case :foo</div><div class='add'>+  when :bar</div><div class='add'>+    raise</div><div class='add'>+  when :baz</div><div class='add'>+    raise</div><div class='add'>+  when :boo</div><div class='add'>+    raise</div><div class='add'>+  when :foo</div><div class='add'>+    i += 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm2_case_lit.rb b/benchmark/bm_vm2_case_lit.rb<br/>new file mode 100644<br/>index 0000000000..c62b294e0e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_case_lit.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_case_lit.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+i = 0</div><div class='add'>+@ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]</div><div class='add'>+def foo(i)</div><div class='add'>+  @ret[i % @ret.size]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+while i&lt;6_000_000 # while loop 2</div><div class='add'>+  case foo(i)</div><div class='add'>+  when "foo" then :foo</div><div class='add'>+  when true then true</div><div class='add'>+  when false then false</div><div class='add'>+  when :sym then :sym</div><div class='add'>+  when 6 then :fix</div><div class='add'>+  when nil then nil</div><div class='add'>+  when 0.1 then :float</div><div class='add'>+  when 0xffffffffffffffff then :big</div><div class='add'>+  end</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_defined_method.rb b/benchmark/bm_vm2_defined_method.rb<br/>new file mode 100644<br/>index 0000000000..053ed6c912<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_defined_method.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_defined_method.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+class Object</div><div class='add'>+  define_method(:m){}</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  m; m; m; m; m; m; m; m;</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_dstr.rb b/benchmark/bm_vm2_dstr.rb<br/>new file mode 100644<br/>index 0000000000..58c0f7bbc3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_dstr.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_dstr.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = 'z'</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_eval.rb b/benchmark/bm_vm2_eval.rb<br/>new file mode 100644<br/>index 0000000000..307cfc28ef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_eval.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_eval.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  eval("1")</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm2_fiber_switch.rb b/benchmark/bm_vm2_fiber_switch.rb<br/>new file mode 100644<br/>index 0000000000..c6f615d71d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_fiber_switch.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_fiber_switch.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+# based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke</div><div class='add'>+fib = Fiber.new do</div><div class='add'>+  loop { Fiber.yield }</div><div class='add'>+end</div><div class='add'>+i = 0</div><div class='add'>+while i&lt; 6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  fib.resume</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_method.rb b/benchmark/bm_vm2_method.rb<br/>new file mode 100644<br/>index 0000000000..a8ccff7138<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_method.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_method.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def m</div><div class='add'>+  nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  m; m; m; m; m; m; m; m;</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_method_missing.rb b/benchmark/bm_vm2_method_missing.rb<br/>new file mode 100644<br/>index 0000000000..2badc73101<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_method_missing.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_method_missing.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+class C</div><div class='add'>+  def method_missing mid</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+obj = C.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_method_with_block.rb b/benchmark/bm_vm2_method_with_block.rb<br/>new file mode 100644<br/>index 0000000000..b4efb4f520<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_method_with_block.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_method_with_block.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def m</div><div class='add'>+  nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_module_ann_const_set.rb b/benchmark/bm_vm2_module_ann_const_set.rb<br/>new file mode 100644<br/>index 0000000000..12ccfd2ff3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_module_ann_const_set.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_module_ann_const_set.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  Module.new.const_set(:X, Module.new)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_module_const_set.rb b/benchmark/bm_vm2_module_const_set.rb<br/>new file mode 100644<br/>index 0000000000..f4d4c1b2e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_module_const_set.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_module_const_set.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+module M</div><div class='add'>+end</div><div class='add'>+$VERBOSE = nil</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  M.const_set(:X, Module.new)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_mutex.rb b/benchmark/bm_vm2_mutex.rb<br/>new file mode 100644<br/>index 0000000000..5d16480c6b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_mutex.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_mutex.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'thread'</div><div class='add'>+</div><div class='add'>+m = Thread::Mutex.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  m.synchronize{}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_newlambda.rb b/benchmark/bm_vm2_newlambda.rb<br/>new file mode 100644<br/>index 0000000000..6422c9b0d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_newlambda.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_newlambda.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  lambda {}</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_poly_method.rb b/benchmark/bm_vm2_poly_method.rb<br/>new file mode 100644<br/>index 0000000000..c82c0e4bce<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_poly_method.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_poly_method.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+class C1</div><div class='add'>+  def m</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+class C2</div><div class='add'>+  def m</div><div class='add'>+    2</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+o1 = C1.new</div><div class='add'>+o2 = C2.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+  o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_poly_method_ov.rb b/benchmark/bm_vm2_poly_method_ov.rb<br/>new file mode 100644<br/>index 0000000000..aa5fd1dd38<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_poly_method_ov.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_poly_method_ov.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+class C1</div><div class='add'>+  def m</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+class C2</div><div class='add'>+  def m</div><div class='add'>+    2</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+o1 = C1.new</div><div class='add'>+o2 = C2.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+#  o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_poly_singleton.rb b/benchmark/bm_vm2_poly_singleton.rb<br/>new file mode 100644<br/>index 0000000000..0dba4320c4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_poly_singleton.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_poly_singleton.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+class C1</div><div class='add'>+  def m; 1; end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+o1 = C1.new</div><div class='add'>+o2 = C1.new</div><div class='add'>+o2.singleton_class</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+  o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_proc.rb b/benchmark/bm_vm2_proc.rb<br/>new file mode 100644<br/>index 0000000000..65e5217371<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_proc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_proc.rb</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+def m &amp;b</div><div class='add'>+  b</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+pr = m{</div><div class='add'>+  a = 1</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  pr.call</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm2_raise1.rb b/benchmark/bm_vm2_raise1.rb<br/>new file mode 100644<br/>index 0000000000..aa5387987f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_raise1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_raise1.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+def rec n</div><div class='add'>+  if n &gt; 0</div><div class='add'>+    rec n-1</div><div class='add'>+  else</div><div class='add'>+    raise</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    rec 1</div><div class='add'>+  rescue</div><div class='add'>+    # ignore</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_raise2.rb b/benchmark/bm_vm2_raise2.rb<br/>new file mode 100644<br/>index 0000000000..1f61c63157<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_raise2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_raise2.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+def rec n</div><div class='add'>+  if n &gt; 0</div><div class='add'>+    rec n-1</div><div class='add'>+  else</div><div class='add'>+    raise</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    rec 10</div><div class='add'>+  rescue</div><div class='add'>+    # ignore</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_regexp.rb b/benchmark/bm_vm2_regexp.rb<br/>new file mode 100644<br/>index 0000000000..55f9e957a3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_regexp.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_regexp.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+str = 'xxxhogexxx'</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  /hoge/ =~ str</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_send.rb b/benchmark/bm_vm2_send.rb<br/>new file mode 100644<br/>index 0000000000..6a3ab6fdab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_send.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_send.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+class C</div><div class='add'>+  def m</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+o = C.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  o.__send__ :m</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_string_literal.rb b/benchmark/bm_vm2_string_literal.rb<br/>new file mode 100644<br/>index 0000000000..1d73036849<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_string_literal.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_string_literal.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_aref_hi.rb b/benchmark/bm_vm2_struct_big_aref_hi.rb<br/>new file mode 100644<br/>index 0000000000..22cb26b0a5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_aref_hi.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_aref_hi.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x.z # x[25]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_aref_lo.rb b/benchmark/bm_vm2_struct_big_aref_lo.rb<br/>new file mode 100644<br/>index 0000000000..5e61a7087e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_aref_lo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_aref_lo.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x.k # x[10]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_aset.rb b/benchmark/bm_vm2_struct_big_aset.rb<br/>new file mode 100644<br/>index 0000000000..5a1c3d16f3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_aset.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_aset.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x.k = i # x[10] = i</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_href_hi.rb b/benchmark/bm_vm2_struct_big_href_hi.rb<br/>new file mode 100644<br/>index 0000000000..fff940a80a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_href_hi.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_href_hi.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x[:z]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_href_lo.rb b/benchmark/bm_vm2_struct_big_href_lo.rb<br/>new file mode 100644<br/>index 0000000000..5e4085d59d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_href_lo.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_href_lo.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x[:k]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_big_hset.rb b/benchmark/bm_vm2_struct_big_hset.rb<br/>new file mode 100644<br/>index 0000000000..9c0cee4141<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_big_hset.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_big_hset.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x[:k] = i</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_small_aref.rb b/benchmark/bm_vm2_struct_small_aref.rb<br/>new file mode 100644<br/>index 0000000000..8eaa555b41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_small_aref.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_small_aref.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(:a, :b, :c)</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x.a</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_small_aset.rb b/benchmark/bm_vm2_struct_small_aset.rb<br/>new file mode 100644<br/>index 0000000000..ecd0f95669<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_small_aset.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_small_aset.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(:a, :b, :c)</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x.a = i</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_small_href.rb b/benchmark/bm_vm2_struct_small_href.rb<br/>new file mode 100644<br/>index 0000000000..2c88fee6bf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_small_href.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_small_href.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(:a, :b, :c)</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x[:a]</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_struct_small_hset.rb b/benchmark/bm_vm2_struct_small_hset.rb<br/>new file mode 100644<br/>index 0000000000..33c36d20f1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_struct_small_hset.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_struct_small_hset.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+s = Struct.new(:a, :b, :c)</div><div class='add'>+x = s.new</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  x[:a] = 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_super.rb b/benchmark/bm_vm2_super.rb<br/>new file mode 100644<br/>index 0000000000..afd8579e7b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_super.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_super.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+</div><div class='add'>+class C</div><div class='add'>+  def m</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class CC &lt; C</div><div class='add'>+  def m</div><div class='add'>+    super()</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+obj = CC.new</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  obj.m</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_unif1.rb b/benchmark/bm_vm2_unif1.rb<br/>new file mode 100644<br/>index 0000000000..1774625942<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_unif1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_unif1.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+def m a, b</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  m 100, 200</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm2_zsuper.rb b/benchmark/bm_vm2_zsuper.rb<br/>new file mode 100644<br/>index 0000000000..2a43e62217<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_zsuper.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm2_zsuper.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+i = 0</div><div class='add'>+</div><div class='add'>+class C</div><div class='add'>+  def m a</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class CC &lt; C</div><div class='add'>+  def m a</div><div class='add'>+    super</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+obj = CC.new</div><div class='add'>+</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  obj.m 10</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm3_backtrace.rb b/benchmark/bm_vm3_backtrace.rb<br/>new file mode 100644<br/>index 0000000000..0fbf73e1ca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_backtrace.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_backtrace.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+# get last backtrace</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  caller(0, 0)</div><div class='add'>+rescue ArgumentError</div><div class='add'>+  alias caller_orig caller</div><div class='add'>+  def caller lev, n</div><div class='add'>+    caller_orig(lev)[0..n]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def rec n</div><div class='add'>+  if n &lt; 0</div><div class='add'>+    100_000.times{</div><div class='add'>+      caller(0, 1)</div><div class='add'>+    }</div><div class='add'>+  else</div><div class='add'>+    rec(n-1)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+rec 50</div><div class='head'>diff --git a/benchmark/bm_vm3_clearmethodcache.rb b/benchmark/bm_vm3_clearmethodcache.rb<br/>new file mode 100644<br/>index 0000000000..9661323cd2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_clearmethodcache.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_clearmethodcache.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;200_000</div><div class='add'>+  i += 1</div><div class='add'>+</div><div class='add'>+  Class.new{</div><div class='add'>+    def m; end</div><div class='add'>+  }</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm3_gc.rb b/benchmark/bm_vm3_gc.rb<br/>new file mode 100644<br/>index 0000000000..e668026915<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_gc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_gc.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+5000.times do</div><div class='add'>+  100.times do</div><div class='add'>+    {"xxxx"=&gt;"yyyy"}</div><div class='add'>+  end</div><div class='add'>+  GC.start</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm3_gc_old_full.rb b/benchmark/bm_vm3_gc_old_full.rb<br/>new file mode 100644<br/>index 0000000000..cfdfc8c5a5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_gc_old_full.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_gc_old_full.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+old_object = Array.new(1_000_000){''}</div><div class='add'>+100.times do</div><div class='add'>+  GC.start</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm3_gc_old_immediate.rb b/benchmark/bm_vm3_gc_old_immediate.rb<br/>new file mode 100644<br/>index 0000000000..ad22feb655<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_gc_old_immediate.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_gc_old_immediate.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+old_object = Array.new(1_000_000){''}</div><div class='add'>+30_000.times do</div><div class='add'>+  GC.start(full_mark: false, immediate_sweep: true)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm3_gc_old_lazy.rb b/benchmark/bm_vm3_gc_old_lazy.rb<br/>new file mode 100644<br/>index 0000000000..b74d44baf1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_gc_old_lazy.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm3_gc_old_lazy.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+old_object = Array.new(1_000_000){''}</div><div class='add'>+30_000.times do</div><div class='add'>+  GC.start(full_mark: false, immediate_sweep: false)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm_symbol_block_pass.rb b/benchmark/bm_vm_symbol_block_pass.rb<br/>new file mode 100644<br/>index 0000000000..1d433353e1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_symbol_block_pass.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_symbol_block_pass.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+class C</div><div class='add'>+  1000.times {|i|</div><div class='add'>+    eval("def i#{i};end")</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+c = C.new</div><div class='add'>+m = C.instance_methods(false)</div><div class='add'>+5_000.times do</div><div class='add'>+  m.each do |n|</div><div class='add'>+    c.tap(&amp;n)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm_thread_alive_check1.rb b/benchmark/bm_vm_thread_alive_check1.rb<br/>new file mode 100644<br/>index 0000000000..c993accdda<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_alive_check1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_alive_check1.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+5_000.times{</div><div class='add'>+  t = Thread.new{}</div><div class='add'>+  while t.alive?</div><div class='add'>+    Thread.pass</div><div class='add'>+  end</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/bm_vm_thread_close.rb b/benchmark/bm_vm_thread_close.rb<br/>new file mode 100644<br/>index 0000000000..3e9a265ce8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_close.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_close.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+1000.times { Thread.new { sleep } }</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;100_000 # benchmark loop 3</div><div class='add'>+  i += 1</div><div class='add'>+  IO.pipe.each(&amp;:close)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm_thread_condvar1.rb b/benchmark/bm_vm_thread_condvar1.rb<br/>new file mode 100644<br/>index 0000000000..cf5706b23e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_condvar1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_condvar1.rb</a></div><div class='hunk'>@@ -0,0 +1,28 @@</div><div class='add'>+# two threads, two mutex, two condvar ping-pong</div><div class='add'>+require 'thread'</div><div class='add'>+m1 = Mutex.new</div><div class='add'>+m2 = Mutex.new</div><div class='add'>+cv1 = ConditionVariable.new</div><div class='add'>+cv2 = ConditionVariable.new</div><div class='add'>+max = 100000</div><div class='add'>+i = 0</div><div class='add'>+wait = nil</div><div class='add'>+m2.synchronize do</div><div class='add'>+  wait = Thread.new do</div><div class='add'>+    m1.synchronize do</div><div class='add'>+      m2.synchronize { cv2.signal }</div><div class='add'>+      while (i += 1) &lt; max</div><div class='add'>+        cv1.wait(m1)</div><div class='add'>+        cv2.signal</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  cv2.wait(m2)</div><div class='add'>+end</div><div class='add'>+m1.synchronize do</div><div class='add'>+  while i &lt; max</div><div class='add'>+    cv1.signal</div><div class='add'>+    cv2.wait(m1)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+wait.join</div><div class='head'>diff --git a/benchmark/bm_vm_thread_condvar2.rb b/benchmark/bm_vm_thread_condvar2.rb<br/>new file mode 100644<br/>index 0000000000..7c8dc19481<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_condvar2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_condvar2.rb</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+# many threads, one mutex, many condvars</div><div class='add'>+require 'thread'</div><div class='add'>+m = Mutex.new</div><div class='add'>+cv1 = ConditionVariable.new</div><div class='add'>+cv2 = ConditionVariable.new</div><div class='add'>+max = 1000</div><div class='add'>+n = 100</div><div class='add'>+waiting = 0</div><div class='add'>+scvs = []</div><div class='add'>+waiters = n.times.map do |i|</div><div class='add'>+  start_cv = ConditionVariable.new</div><div class='add'>+  scvs &lt;&lt; start_cv</div><div class='add'>+  start_mtx = Mutex.new</div><div class='add'>+  start_mtx.synchronize do</div><div class='add'>+    th = Thread.new(start_mtx, start_cv) do |sm, scv|</div><div class='add'>+      m.synchronize do</div><div class='add'>+        sm.synchronize { scv.signal }</div><div class='add'>+        max.times do</div><div class='add'>+          cv2.signal if (waiting += 1) == n</div><div class='add'>+          cv1.wait(m)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    start_cv.wait(start_mtx)</div><div class='add'>+    th</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+m.synchronize do</div><div class='add'>+  max.times do</div><div class='add'>+    cv2.wait(m) until waiting == n</div><div class='add'>+    waiting = 0</div><div class='add'>+    cv1.broadcast</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+waiters.each(&amp;:join)</div><div class='head'>diff --git a/benchmark/bm_vm_thread_create_join.rb b/benchmark/bm_vm_thread_create_join.rb<br/>new file mode 100644<br/>index 0000000000..393cd45df9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_create_join.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_create_join.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;100_000 # benchmark loop 3</div><div class='add'>+  i += 1</div><div class='add'>+  Thread.new{</div><div class='add'>+  }.join</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm_thread_mutex1.rb b/benchmark/bm_vm_thread_mutex1.rb<br/>new file mode 100644<br/>index 0000000000..66e42c85e1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_mutex1.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# one thread, one mutex (no contention)</div><div class='add'>+</div><div class='add'>+require 'thread'</div><div class='add'>+m = Thread::Mutex.new</div><div class='add'>+r = 0</div><div class='add'>+max = 2000</div><div class='add'>+lmax = max * max</div><div class='add'>+(1..1).map{</div><div class='add'>+  Thread.new{</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;lmax</div><div class='add'>+      i += 1</div><div class='add'>+      m.synchronize{</div><div class='add'>+        r += 1</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}.each{|e|</div><div class='add'>+  e.join</div><div class='add'>+}</div><div class='add'>+raise r.to_s if r != max * max</div><div class='head'>diff --git a/benchmark/bm_vm_thread_mutex2.rb b/benchmark/bm_vm_thread_mutex2.rb<br/>new file mode 100644<br/>index 0000000000..6e6c804c31<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_mutex2.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# two threads, one mutex</div><div class='add'>+</div><div class='add'>+require 'thread'</div><div class='add'>+m = Thread::Mutex.new</div><div class='add'>+r = 0</div><div class='add'>+max = 2000</div><div class='add'>+lmax = (max * max)/2</div><div class='add'>+(1..2).map{</div><div class='add'>+  Thread.new{</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;lmax</div><div class='add'>+      i += 1</div><div class='add'>+      m.synchronize{</div><div class='add'>+        r += 1</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}.each{|e|</div><div class='add'>+  e.join</div><div class='add'>+}</div><div class='add'>+raise r.to_s if r != max * max</div><div class='head'>diff --git a/benchmark/bm_vm_thread_mutex3.rb b/benchmark/bm_vm_thread_mutex3.rb<br/>new file mode 100644<br/>index 0000000000..c750dc542a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex3.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_mutex3.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+# 1000 threads, one mutex</div><div class='add'>+</div><div class='add'>+require 'thread'</div><div class='add'>+m = Thread::Mutex.new</div><div class='add'>+r = 0</div><div class='add'>+max = 2000</div><div class='add'>+(1..max).map{</div><div class='add'>+  Thread.new{</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;max</div><div class='add'>+      i += 1</div><div class='add'>+      m.synchronize{</div><div class='add'>+        r += 1</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}.each{|e|</div><div class='add'>+  e.join</div><div class='add'>+}</div><div class='add'>+raise r.to_s if r != max * max</div><div class='head'>diff --git a/benchmark/bm_vm_thread_pass.rb b/benchmark/bm_vm_thread_pass.rb<br/>new file mode 100644<br/>index 0000000000..b5b3c0bc85<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_pass.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_pass.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# Plenty Thtread.pass</div><div class='add'>+# A performance may depend on GVL implementation.</div><div class='add'>+</div><div class='add'>+tmax = (ARGV.shift || 2).to_i</div><div class='add'>+lmax = 200_000 / tmax</div><div class='add'>+</div><div class='add'>+(1..tmax).map{</div><div class='add'>+  Thread.new{</div><div class='add'>+    lmax.times{</div><div class='add'>+      Thread.pass</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}.each{|t| t.join}</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm_thread_pass_flood.rb b/benchmark/bm_vm_thread_pass_flood.rb<br/>new file mode 100644<br/>index 0000000000..a660aafc18<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_pass_flood.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_pass_flood.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+# n.b. this is a good test for GVL when pinned to a single CPU</div><div class='add'>+</div><div class='add'>+1000.times{</div><div class='add'>+  Thread.new{loop{Thread.pass}}</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;10000</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/bm_vm_thread_pipe.rb b/benchmark/bm_vm_thread_pipe.rb<br/>new file mode 100644<br/>index 0000000000..112a621905<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_pipe.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_pipe.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# Measure small and plenty pipe read/write.</div><div class='add'>+# A performance may depend on GVL implementation.</div><div class='add'>+</div><div class='add'>+lmax = 100_000</div><div class='add'>+r, w = IO.pipe</div><div class='add'>+[Thread.new{</div><div class='add'>+  lmax.times{</div><div class='add'>+    w.write('a')</div><div class='add'>+  }</div><div class='add'>+  p "w:exit"</div><div class='add'>+}, Thread.new{</div><div class='add'>+  lmax.times{</div><div class='add'>+    r.read(1)</div><div class='add'>+  }</div><div class='add'>+  p "r:exit"</div><div class='add'>+}].each{|t| t.join}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/bm_vm_thread_queue.rb b/benchmark/bm_vm_thread_queue.rb<br/>new file mode 100644<br/>index 0000000000..274ceda366<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_queue.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_queue.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+require 'thread'</div><div class='add'>+</div><div class='add'>+n = 1_000_000</div><div class='add'>+q = Thread::Queue.new</div><div class='add'>+consumer = Thread.new{</div><div class='add'>+  while q.pop</div><div class='add'>+    # consuming</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+producer = Thread.new{</div><div class='add'>+  n.times{</div><div class='add'>+    q.push true</div><div class='add'>+  }</div><div class='add'>+  q.push nil</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+consumer.join</div><div class='head'>diff --git a/benchmark/bm_vm_thread_sized_queue.rb b/benchmark/bm_vm_thread_sized_queue.rb<br/>new file mode 100644<br/>index 0000000000..7b9af5482b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_sized_queue.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_sized_queue.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+require 'thread'</div><div class='add'>+# on producer, one consumer</div><div class='add'>+</div><div class='add'>+n = 1_000_000</div><div class='add'>+q = Thread::SizedQueue.new(100)</div><div class='add'>+consumer = Thread.new{</div><div class='add'>+  while q.pop</div><div class='add'>+    # consuming</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+producer = Thread.new{</div><div class='add'>+  while n &gt; 0</div><div class='add'>+    q.push true</div><div class='add'>+    n -= 1</div><div class='add'>+  end</div><div class='add'>+  q.push nil</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+consumer.join</div><div class='head'>diff --git a/benchmark/bm_vm_thread_sized_queue2.rb b/benchmark/bm_vm_thread_sized_queue2.rb<br/>new file mode 100644<br/>index 0000000000..de9f55e978<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_sized_queue2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_sized_queue2.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+require 'thread'</div><div class='add'>+# one producer, many consumers</div><div class='add'>+n = 1_000_000</div><div class='add'>+m = 10</div><div class='add'>+q = Thread::SizedQueue.new(100)</div><div class='add'>+consumers = m.times.map do</div><div class='add'>+  Thread.new do</div><div class='add'>+    while q.pop</div><div class='add'>+      # consuming</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+producer = Thread.new do</div><div class='add'>+  while n &gt; 0</div><div class='add'>+    q.push true</div><div class='add'>+    n -= 1</div><div class='add'>+  end</div><div class='add'>+  m.times { q.push nil }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+producer.join</div><div class='add'>+consumers.each(&amp;:join)</div><div class='head'>diff --git a/benchmark/bm_vm_thread_sized_queue3.rb b/benchmark/bm_vm_thread_sized_queue3.rb<br/>new file mode 100644<br/>index 0000000000..ce5f1796d8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_sized_queue3.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_sized_queue3.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+require 'thread'</div><div class='add'>+# many producers, one consumer</div><div class='add'>+n = 1_000_000</div><div class='add'>+m = 10</div><div class='add'>+q = Thread::SizedQueue.new(100)</div><div class='add'>+consumer = Thread.new do</div><div class='add'>+  while q.pop</div><div class='add'>+    # consuming</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+producers = m.times.map do</div><div class='add'>+  Thread.new do</div><div class='add'>+    while n &gt; 0</div><div class='add'>+      q.push true</div><div class='add'>+      n -= 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+producers.each(&amp;:join)</div><div class='add'>+q.push nil</div><div class='add'>+consumer.join</div><div class='head'>diff --git a/benchmark/bm_vm_thread_sized_queue4.rb b/benchmark/bm_vm_thread_sized_queue4.rb<br/>new file mode 100644<br/>index 0000000000..a9b7d80ec0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_sized_queue4.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/bm_vm_thread_sized_queue4.rb</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+require 'thread'</div><div class='add'>+# many producers, many consumers</div><div class='add'>+nr = 1_000_000</div><div class='add'>+n = 10</div><div class='add'>+m = 10</div><div class='add'>+q = Thread::SizedQueue.new(100)</div><div class='add'>+consumers = n.times.map do</div><div class='add'>+  Thread.new do</div><div class='add'>+    while q.pop</div><div class='add'>+      # consuming</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+producers = m.times.map do</div><div class='add'>+  Thread.new do</div><div class='add'>+    while nr &gt; 0</div><div class='add'>+      q.push true</div><div class='add'>+      nr -= 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+producers.each(&amp;:join)</div><div class='add'>+n.times { q.push nil }</div><div class='add'>+consumers.each(&amp;:join)</div><div class='head'>diff --git a/benchmark/driver.rb b/benchmark/driver.rb<br/>new file mode 100755<br/>index 0000000000..469fc99f40<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/driver.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/driver.rb</a></div><div class='hunk'>@@ -0,0 +1,441 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+#</div><div class='add'>+# Ruby Benchmark driver</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+first = true</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'optparse'</div><div class='add'>+rescue LoadError</div><div class='add'>+  if first</div><div class='add'>+    first = false</div><div class='add'>+    $:.unshift File.join(File.dirname(__FILE__), '../lib')</div><div class='add'>+    retry</div><div class='add'>+  else</div><div class='add'>+    raise</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+require 'pp'</div><div class='add'>+require 'tempfile'</div><div class='add'>+</div><div class='add'>+class BenchmarkDriver</div><div class='add'>+  def self.benchmark(opt)</div><div class='add'>+    driver = self.new(opt[:execs], opt[:dir], opt)</div><div class='add'>+    begin</div><div class='add'>+      driver.run</div><div class='add'>+    ensure</div><div class='add'>+      driver.show_results</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.load(input, type, opt)</div><div class='add'>+    case type</div><div class='add'>+    when 'yaml'</div><div class='add'>+      require 'yaml'</div><div class='add'>+      h = YAML.load(input)</div><div class='add'>+    when 'json'</div><div class='add'>+      require 'json'</div><div class='add'>+      h = JSON.load(input)</div><div class='add'>+    else</div><div class='add'>+      h = eval(input.read)</div><div class='add'>+    end</div><div class='add'>+    results = h[:results] || h["results"]</div><div class='add'>+    obj = allocate</div><div class='add'>+    obj.instance_variable_set("@execs", h[:executables] || h["executables"])</div><div class='add'>+    obj.instance_variable_set("@results", results)</div><div class='add'>+    obj.instance_variable_set("@opt", opt)</div><div class='add'>+    [1, 2].each do |i|</div><div class='add'>+      loop = results.assoc((n = "loop_whileloop#{i}").intern) || results.assoc(n)</div><div class='add'>+      obj.instance_variable_set("@loop_wl#{i}", loop ? loop[1].map {|t,*|t} : nil)</div><div class='add'>+    end</div><div class='add'>+    obj.instance_variable_set("@measure_target", opt[:measure_target] || opt["measure_target"])</div><div class='add'>+    obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def output *args</div><div class='add'>+    puts(*args)</div><div class='add'>+    @output and @output.puts(*args)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def message *args</div><div class='add'>+    output(*args) if @verbose</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def message_print *args</div><div class='add'>+    if @verbose</div><div class='add'>+      print(*args)</div><div class='add'>+      STDOUT.flush</div><div class='add'>+      @output and @output.print(*args)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def progress_message *args</div><div class='add'>+    unless STDOUT.tty?</div><div class='add'>+      STDERR.print(*args)</div><div class='add'>+      STDERR.flush</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def initialize execs, dir, opt = {}</div><div class='add'>+    @execs = execs.map{|e|</div><div class='add'>+      e.strip!</div><div class='add'>+      next if e.empty?</div><div class='add'>+</div><div class='add'>+      if /(.+)::(.+)/ =~ e</div><div class='add'>+        # ex) ruby-a::/path/to/ruby-a</div><div class='add'>+        label = $1.strip</div><div class='add'>+        path = $2</div><div class='add'>+        version = `#{path} -v`.chomp</div><div class='add'>+      else</div><div class='add'>+        path = e</div><div class='add'>+        version = label = `#{path} -v`.chomp</div><div class='add'>+      end</div><div class='add'>+      [path, label, version]</div><div class='add'>+    }.compact</div><div class='add'>+</div><div class='add'>+    @dir = dir</div><div class='add'>+    @repeat = opt[:repeat] || 1</div><div class='add'>+    @repeat = 1 if @repeat &lt; 1</div><div class='add'>+    @pattern = opt[:pattern] || nil</div><div class='add'>+    @exclude = opt[:exclude] || nil</div><div class='add'>+    @verbose = opt[:quiet] ? false : (opt[:verbose] || false)</div><div class='add'>+    @output = opt[:output] ? open(opt[:output], 'w') : nil</div><div class='add'>+    @loop_wl1 = @loop_wl2 = nil</div><div class='add'>+    @ruby_arg = opt[:ruby_arg] || nil</div><div class='add'>+    @measure_target = opt[:measure_target]</div><div class='add'>+    @opt = opt</div><div class='add'>+</div><div class='add'>+    # [[name, [[r-1-1, r-1-2, ...], [r-2-1, r-2-2, ...]]], ...]</div><div class='add'>+    @results = []</div><div class='add'>+</div><div class='add'>+    if @verbose</div><div class='add'>+      @start_time = Time.now</div><div class='add'>+      message @start_time</div><div class='add'>+      @execs.each_with_index{|(path, label, version), i|</div><div class='add'>+        message "target #{i}: " + (label == version ? "#{label}" : "#{label} (#{version})") + " at \"#{path}\""</div><div class='add'>+      }</div><div class='add'>+      message "measure target: #{@measure_target}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def adjusted_results name, results</div><div class='add'>+    s = nil</div><div class='add'>+    results.each_with_index{|e, i|</div><div class='add'>+      r = e.min</div><div class='add'>+      case name</div><div class='add'>+      when /^vm1_/</div><div class='add'>+        if @loop_wl1</div><div class='add'>+          r -= @loop_wl1[i]</div><div class='add'>+          r = 0 if r &lt; 0</div><div class='add'>+          s = '*'</div><div class='add'>+        end</div><div class='add'>+      when /^vm2_/</div><div class='add'>+        if @loop_wl2</div><div class='add'>+          r -= @loop_wl2[i]</div><div class='add'>+          r = 0 if r &lt; 0</div><div class='add'>+          s = '*'</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      yield r</div><div class='add'>+    }</div><div class='add'>+    s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def show_results</div><div class='add'>+    case @opt[:format]</div><div class='add'>+    when :tsv</div><div class='add'>+      strformat = "\t%1$s"</div><div class='add'>+      numformat = "\t%1$*2$.3f"</div><div class='add'>+      minwidth = 0</div><div class='add'>+      name_width = 0</div><div class='add'>+    when :markdown</div><div class='add'>+      markdown = true</div><div class='add'>+      strformat = "|%1$-*2$s"</div><div class='add'>+      numformat = "|%1$*2$.3f"</div><div class='add'>+    when :plain</div><div class='add'>+      strformat = " %1$-*2$s"</div><div class='add'>+      numformat = " %1$*2$.3f"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    name_width ||= @results.map {|v, result|</div><div class='add'>+      v.size + (case v; when /^vm1_/; @loop_wl1; when /^vm2_/; @loop_wl2; end ? 1 : 0)</div><div class='add'>+    }.max</div><div class='add'>+    minwidth ||= 7</div><div class='add'>+    width = @execs.map{|(_, v)| [v.size, minwidth].max}</div><div class='add'>+</div><div class='add'>+    output</div><div class='add'>+</div><div class='add'>+    if @verbose</div><div class='add'>+      message '-----------------------------------------------------------'</div><div class='add'>+      message 'raw data:'</div><div class='add'>+      message</div><div class='add'>+      message PP.pp(@results, "", 79)</div><div class='add'>+      message</div><div class='add'>+      message "Elapsed time: #{Time.now - @start_time} (sec)"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if rawdata_output = @opt[:rawdata_output]</div><div class='add'>+      h = {}</div><div class='add'>+      h[:cpuinfo] = File.read('/proc/cpuinfo') if File.exist?('/proc/cpuinfo')</div><div class='add'>+      h[:executables] = @execs</div><div class='add'>+      h[:results] = @results</div><div class='add'>+      if (type = File.extname(rawdata_output)).empty?</div><div class='add'>+        type = rawdata_output</div><div class='add'>+        rawdata_output = @output.path.sub(/\.[^.\/]+\z/, '') &lt;&lt; '.' &lt;&lt; rawdata_output</div><div class='add'>+      end</div><div class='add'>+      case type</div><div class='add'>+      when 'yaml'</div><div class='add'>+        require 'yaml'</div><div class='add'>+        h = YAML.dump(h)</div><div class='add'>+      when 'json'</div><div class='add'>+        require 'json'</div><div class='add'>+        h = JSON.pretty_generate(h)</div><div class='add'>+      else</div><div class='add'>+        require 'pp'</div><div class='add'>+        h = h.pretty_inspect</div><div class='add'>+      end</div><div class='add'>+      open(rawdata_output, 'w') {|f| f.puts h}</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    output '-----------------------------------------------------------'</div><div class='add'>+    output 'benchmark results:'</div><div class='add'>+</div><div class='add'>+    if @verbose and @repeat &gt; 1</div><div class='add'>+      output "minimum results in each #{@repeat} measurements."</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    output({</div><div class='add'>+      real: "Execution time (sec)",</div><div class='add'>+      peak: "Memory usage (peak) (B)",</div><div class='add'>+      size: "Memory usage (last size) (B)",</div><div class='add'>+    }[@measure_target])</div><div class='add'>+    output if markdown</div><div class='add'>+    output ["name".ljust(name_width), @execs.map.with_index{|(_, v), i| sprintf(strformat, v, width[i])}].join("").rstrip</div><div class='add'>+    output ["-"*name_width, width.map{|n|":".rjust(n, "-")}].join("|") if markdown</div><div class='add'>+    @results.each{|v, result|</div><div class='add'>+      rets = []</div><div class='add'>+      s = adjusted_results(v, result){|r|</div><div class='add'>+        rets &lt;&lt; sprintf(numformat, r, width[rets.size])</div><div class='add'>+      }</div><div class='add'>+      v += s if s</div><div class='add'>+      output [v.ljust(name_width), rets].join("")</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if @execs.size &gt; 1</div><div class='add'>+      output</div><div class='add'>+      output({</div><div class='add'>+        real: "Speedup ratio: compare with the result of `#{@execs[0][1]}' (greater is better)",</div><div class='add'>+        peak: "Memory consuming ratio (peak) with the result of `#{@execs[0][1]}' (greater is better)",</div><div class='add'>+        size: "Memory consuming ratio (size) with the result of `#{@execs[0][1]}' (greater is better)",</div><div class='add'>+      }[@measure_target])</div><div class='add'>+      output if markdown</div><div class='add'>+      output ["name".ljust(name_width), @execs[1..-1].map.with_index{|(_, v), i| sprintf(strformat, v, width[i])}].join("").rstrip</div><div class='add'>+      output ["-"*name_width, width[1..-1].map{|n|":".rjust(n, "-")}].join("|") if markdown</div><div class='add'>+      @results.each{|v, result|</div><div class='add'>+        rets = []</div><div class='add'>+        first_value = nil</div><div class='add'>+        s = adjusted_results(v, result){|r|</div><div class='add'>+          if first_value</div><div class='add'>+            if r == 0</div><div class='add'>+              rets &lt;&lt; "Error"</div><div class='add'>+            else</div><div class='add'>+              rets &lt;&lt; sprintf(numformat, first_value/Float(r), width[rets.size+1])</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            first_value = r</div><div class='add'>+          end</div><div class='add'>+        }</div><div class='add'>+        v += s if s</div><div class='add'>+        output [v.ljust(name_width), rets].join("")</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if @opt[:output]</div><div class='add'>+      output</div><div class='add'>+      output "Log file: #{@opt[:output]}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def files</div><div class='add'>+    flag = {}</div><div class='add'>+    @files = Dir.glob(File.join(@dir, 'bm*.rb')).map{|file|</div><div class='add'>+      next if @pattern &amp;&amp; /#{@pattern}/ !~ File.basename(file)</div><div class='add'>+      next if @exclude &amp;&amp; /#{@exclude}/ =~ File.basename(file)</div><div class='add'>+      case file</div><div class='add'>+      when /bm_(vm[12])_/, /bm_loop_(whileloop2?).rb/</div><div class='add'>+        flag[$1] = true</div><div class='add'>+      end</div><div class='add'>+      file</div><div class='add'>+    }.compact</div><div class='add'>+</div><div class='add'>+    if flag['vm1'] &amp;&amp; !flag['whileloop']</div><div class='add'>+      @files &lt;&lt; File.join(@dir, 'bm_loop_whileloop.rb')</div><div class='add'>+    elsif flag['vm2'] &amp;&amp; !flag['whileloop2']</div><div class='add'>+      @files &lt;&lt; File.join(@dir, 'bm_loop_whileloop2.rb')</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    @files.sort!</div><div class='add'>+    progress_message "total: #{@files.size * @repeat} trial(s) (#{@repeat} trial(s) for #{@files.size} benchmark(s))\n"</div><div class='add'>+    @files</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def run</div><div class='add'>+    files.each_with_index{|file, i|</div><div class='add'>+      @i = i</div><div class='add'>+      r = measure_file(file)</div><div class='add'>+</div><div class='add'>+      if /bm_loop_whileloop.rb/ =~ file</div><div class='add'>+        @loop_wl1 = r[1].map{|e| e.min}</div><div class='add'>+      elsif /bm_loop_whileloop2.rb/ =~ file</div><div class='add'>+        @loop_wl2 = r[1].map{|e| e.min}</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def measure_file file</div><div class='add'>+    name = File.basename(file, '.rb').sub(/^bm_/, '')</div><div class='add'>+    prepare_file = File.join(File.dirname(file), "prepare_#{name}.rb")</div><div class='add'>+    load prepare_file if FileTest.exist?(prepare_file)</div><div class='add'>+</div><div class='add'>+    if @verbose</div><div class='add'>+      output</div><div class='add'>+      output '-----------------------------------------------------------'</div><div class='add'>+      output name</div><div class='add'>+      output</div><div class='add'>+      output File.read(file)</div><div class='add'>+      output</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    result = [name]</div><div class='add'>+    result &lt;&lt; @execs.map{|(e, v)|</div><div class='add'>+      (0...@repeat).map{</div><div class='add'>+        message_print "#{v}\t"</div><div class='add'>+        progress_message '.'</div><div class='add'>+</div><div class='add'>+        m = measure(e, file)</div><div class='add'>+        message "#{m}"</div><div class='add'>+        m</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    @results &lt;&lt; result</div><div class='add'>+    result</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  unless defined?(File::NULL)</div><div class='add'>+    if File.exist?('/dev/null')</div><div class='add'>+      File::NULL = '/dev/null'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def measure executable, file</div><div class='add'>+    case @measure_target</div><div class='add'>+    when :real</div><div class='add'>+      cmd = "#{executable} #{@ruby_arg} #{file}"</div><div class='add'>+      m = Benchmark.measure{</div><div class='add'>+        system(cmd, out: File::NULL)</div><div class='add'>+      }</div><div class='add'>+      result = m.real</div><div class='add'>+    when :peak, :size</div><div class='add'>+      tmp = Tempfile.new("benchmark-memory-wrapper-data")</div><div class='add'>+      wrapper = "#{File.join(__dir__, 'memory_wrapper.rb')} #{tmp.path} #{@measure_target}"</div><div class='add'>+      cmd = "#{executable} #{@ruby_arg} #{wrapper} #{file}"</div><div class='add'>+      system(cmd, out: File::NULL)</div><div class='add'>+      result = tmp.read.to_i</div><div class='add'>+      tmp.close</div><div class='add'>+    else</div><div class='add'>+      raise "unknown measure target"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if $? != 0</div><div class='add'>+      raise $?.inspect if $? &amp;&amp; $?.signaled?</div><div class='add'>+      output "\`#{cmd}\' exited with abnormal status (#{$?})"</div><div class='add'>+      0</div><div class='add'>+    else</div><div class='add'>+      result</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if __FILE__ == $0</div><div class='add'>+  opt = {</div><div class='add'>+    :execs =&gt; [],</div><div class='add'>+    :dir =&gt; File.dirname(__FILE__),</div><div class='add'>+    :repeat =&gt; 1,</div><div class='add'>+    :measure_target =&gt; :real,</div><div class='add'>+    :output =&gt; nil,</div><div class='add'>+    :raw_output =&gt; nil,</div><div class='add'>+    :format =&gt; :tsv,</div><div class='add'>+  }</div><div class='add'>+  formats = {</div><div class='add'>+    :tsv =&gt; ".tsv",</div><div class='add'>+    :markdown =&gt; ".md",</div><div class='add'>+    :plain =&gt; ".txt",</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  parser = OptionParser.new{|o|</div><div class='add'>+    o.on('-e', '--executables [EXECS]',</div><div class='add'>+      "Specify benchmark one or more targets (e1::path1; e2::path2; e3::path3;...)"){|e|</div><div class='add'>+       e.split(/;/).each{|path|</div><div class='add'>+         opt[:execs] &lt;&lt; path</div><div class='add'>+       }</div><div class='add'>+    }</div><div class='add'>+    o.on('--rbenv [VERSIONS]', 'Specify benchmark targets with rbenv version (vX.X.X;vX.X.X;...)'){|v|</div><div class='add'>+      v.split(/;/).each{|version|</div><div class='add'>+        opt[:execs] &lt;&lt; "#{version}::#{`RBENV_VERSION='#{version}' rbenv which ruby`.rstrip}"</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    o.on('-d', '--directory [DIRECTORY]', "Benchmark suites directory"){|d|</div><div class='add'>+      opt[:dir] = d</div><div class='add'>+    }</div><div class='add'>+    o.on('-p', '--pattern [PATTERN]', "Benchmark name pattern"){|p|</div><div class='add'>+      opt[:pattern] = p</div><div class='add'>+    }</div><div class='add'>+    o.on('-x', '--exclude [PATTERN]', "Benchmark exclude pattern"){|e|</div><div class='add'>+      opt[:exclude] = e</div><div class='add'>+    }</div><div class='add'>+    o.on('-r', '--repeat-count [NUM]', "Repeat count"){|n|</div><div class='add'>+      opt[:repeat] = n.to_i</div><div class='add'>+    }</div><div class='add'>+    o.on('-o', '--output-file [FILE]', "Output file"){|f|</div><div class='add'>+      opt[:output] = f</div><div class='add'>+    }</div><div class='add'>+    o.on('--ruby-arg [ARG]', "Optional argument for ruby"){|a|</div><div class='add'>+      opt[:ruby_arg] = a</div><div class='add'>+    }</div><div class='add'>+    o.on('--measure-target [TARGET]', 'real (execution time), peak, size (memory)'){|mt|</div><div class='add'>+      opt[:measure_target] = mt.to_sym</div><div class='add'>+    }</div><div class='add'>+    o.on('--rawdata-output [FILE]', 'output rawdata'){|r|</div><div class='add'>+      opt[:rawdata_output] = r</div><div class='add'>+    }</div><div class='add'>+    o.on('--load-rawdata=FILE', 'input rawdata'){|r|</div><div class='add'>+      opt[:rawdata_input] = r</div><div class='add'>+    }</div><div class='add'>+    o.on('-f', "--format=FORMAT", "output format (#{formats.keys.join(",")})", formats.keys){|r|</div><div class='add'>+      opt[:format] = r</div><div class='add'>+    }</div><div class='add'>+    o.on('-v', '--verbose'){|v|</div><div class='add'>+      opt[:verbose] = v</div><div class='add'>+    }</div><div class='add'>+    o.on('-q', '--quiet', "Run without notify information except result table."){|q|</div><div class='add'>+      opt[:quiet] = q</div><div class='add'>+      opt[:verbose] = false</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  parser.parse!(ARGV)</div><div class='add'>+</div><div class='add'>+  if input = opt[:rawdata_input]</div><div class='add'>+    b = open(input) {|f|</div><div class='add'>+      BenchmarkDriver.load(f, File.extname(input)[1..-1], opt)</div><div class='add'>+    }</div><div class='add'>+    b.show_results</div><div class='add'>+  else</div><div class='add'>+    opt[:output] ||= "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}#{formats[opt[:format]]}"</div><div class='add'>+    BenchmarkDriver.benchmark(opt)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/gc/aobench.rb b/benchmark/gc/aobench.rb<br/>new file mode 100644<br/>index 0000000000..2eed7abc83<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/aobench.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/aobench.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+require_relative '../bm_app_aobench.rb'</div><div class='head'>diff --git a/benchmark/gc/binary_trees.rb b/benchmark/gc/binary_trees.rb<br/>new file mode 100644<br/>index 0000000000..af8ea722aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/binary_trees.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/binary_trees.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+require_relative '../bm_so_binary_trees.rb'</div><div class='head'>diff --git a/benchmark/gc/gcbench.rb b/benchmark/gc/gcbench.rb<br/>new file mode 100644<br/>index 0000000000..09a404466a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/gcbench.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/gcbench.rb</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+require 'benchmark'</div><div class='add'>+require 'pp'</div><div class='add'>+require 'optparse'</div><div class='add'>+</div><div class='add'>+$list = true</div><div class='add'>+$gcprof = true</div><div class='add'>+</div><div class='add'>+opt = OptionParser.new</div><div class='add'>+opt.on('-q'){$list = false}</div><div class='add'>+opt.on('-d'){$gcprof = false}</div><div class='add'>+opt.parse!(ARGV)</div><div class='add'>+</div><div class='add'>+script = File.join(File.dirname(__FILE__), ARGV.shift)</div><div class='add'>+script += '.rb' unless FileTest.exist?(script)</div><div class='add'>+raise "#{script} not found" unless FileTest.exist?(script)</div><div class='add'>+</div><div class='add'>+puts "Script: #{script}"</div><div class='add'>+</div><div class='add'>+if $gcprof</div><div class='add'>+  GC::Profiler.enable</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+tms = Benchmark.measure{|x|</div><div class='add'>+  load script</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+gc_time = 0</div><div class='add'>+</div><div class='add'>+if $gcprof</div><div class='add'>+  gc_time = GC::Profiler.total_time</div><div class='add'>+  GC::Profiler.report if $list and RUBY_VERSION &gt;= '2.0.0' # before 1.9.3, report() may run infinite loop</div><div class='add'>+  GC::Profiler.disable</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+pp GC.stat</div><div class='add'>+</div><div class='add'>+puts "#{RUBY_DESCRIPTION} #{GC::OPTS.inspect}" if defined?(GC::OPTS)</div><div class='add'>+</div><div class='add'>+desc = "#{RUBY_VERSION}#{RUBY_PATCHLEVEL &gt;= 0 ? "p#{RUBY_PATCHLEVEL}" : "dev"}"</div><div class='add'>+name = File.basename(script, '.rb')</div><div class='add'>+</div><div class='add'>+puts</div><div class='add'>+puts script</div><div class='add'>+puts Benchmark::CAPTION</div><div class='add'>+puts tms</div><div class='add'>+puts "GC total time (sec): #{gc_time}"</div><div class='add'>+</div><div class='add'>+# show High-Water Mark on Linux</div><div class='add'>+if File.exist?('/proc/self/status') &amp;&amp; /VmHWM:\s*(\d+.+)/ =~ File.read('/proc/self/status')</div><div class='add'>+  puts</div><div class='add'>+  puts "VmHWM: #{$1.chomp}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+puts</div><div class='add'>+puts "Summary of #{name} on #{desc}\t#{tms.real}\t#{gc_time}\t#{GC.count}"</div><div class='add'>+puts "         (real time in sec, GC time in sec, GC count)"</div><div class='head'>diff --git a/benchmark/gc/hash1.rb b/benchmark/gc/hash1.rb<br/>new file mode 100644<br/>index 0000000000..cb030d458d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/hash1.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/hash1.rb</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+value = 0.01</div><div class='add'>+h = {}</div><div class='add'>+n = 50_000</div><div class='add'>+</div><div class='add'>+1.upto(n){|i|</div><div class='add'>+  h["%020d" % i] = "v-#{i}"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+(n * 1_000).times{</div><div class='add'>+  ''</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/gc/hash2.rb b/benchmark/gc/hash2.rb<br/>new file mode 100644<br/>index 0000000000..e8c943fb21<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/hash2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/hash2.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+value = 0.01</div><div class='add'>+h = {}</div><div class='add'>+n = 4*(10**6)</div><div class='add'>+</div><div class='add'>+1.upto(n){|i|</div><div class='add'>+  h["%020d" % i] = value * i</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/gc/null.rb b/benchmark/gc/null.rb<br/>new file mode 100644<br/>index 0000000000..c05a79f561<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/null.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/null.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+# null</div><div class='head'>diff --git a/benchmark/gc/pentomino.rb b/benchmark/gc/pentomino.rb<br/>new file mode 100644<br/>index 0000000000..94ba74be89<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/pentomino.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/pentomino.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+require_relative '../bm_app_pentomino.rb'</div><div class='head'>diff --git a/benchmark/gc/rdoc.rb b/benchmark/gc/rdoc.rb<br/>new file mode 100644<br/>index 0000000000..14c89f5611<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/rdoc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/rdoc.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+require 'rdoc/rdoc'</div><div class='add'>+require 'tmpdir'</div><div class='add'>+</div><div class='add'>+srcdir = File.expand_path('../..', __dir__)</div><div class='add'>+</div><div class='add'>+Dir.mktmpdir('rdocbench-'){|d|</div><div class='add'>+  dir = File.join(d, 'rdocbench')</div><div class='add'>+  args = %W(--root #{srcdir} --page-dir #{srcdir}/doc --encoding=UTF-8 --no-force-update --all --ri --debug --quiet #{srcdir})</div><div class='add'>+  args &lt;&lt; '--op' &lt;&lt; dir</div><div class='add'>+</div><div class='add'>+  r = RDoc::RDoc.new</div><div class='add'>+  r.document args</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/gc/redblack.rb b/benchmark/gc/redblack.rb<br/>new file mode 100644<br/>index 0000000000..c66290140a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/redblack.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/redblack.rb</a></div><div class='hunk'>@@ -0,0 +1,366 @@</div><div class='add'>+# This benchmark is imported from https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb</div><div class='add'>+# License is License is Apache-2</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+</div><div class='add'>+# Algorithm based on "Introduction to Algorithms" by Cormen and others</div><div class='add'>+class RedBlackTree</div><div class='add'>+  class Node</div><div class='add'>+    attr_accessor :color</div><div class='add'>+    attr_accessor :key</div><div class='add'>+    attr_accessor :left</div><div class='add'>+    attr_accessor :right</div><div class='add'>+    attr_accessor :parent</div><div class='add'>+</div><div class='add'>+    RED = :red</div><div class='add'>+    BLACK = :black</div><div class='add'>+    COLORS = [RED, BLACK].freeze</div><div class='add'>+</div><div class='add'>+    def initialize(key, color = RED)</div><div class='add'>+      raise ArgumentError, "Bad value for color parameter" unless COLORS.include?(color)</div><div class='add'>+      @color = color</div><div class='add'>+      @key = key</div><div class='add'>+      @left = @right = @parent = NilNode.instance</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def black?</div><div class='add'>+      return color == BLACK</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def red?</div><div class='add'>+      return color == RED</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class NilNode &lt; Node</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      private :new</div><div class='add'>+</div><div class='add'>+      # it's not thread safe</div><div class='add'>+      def instance</div><div class='add'>+        @instance ||= begin</div><div class='add'>+          def instance</div><div class='add'>+            return @instance</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          new</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      self.color = BLACK</div><div class='add'>+      self.key = 0</div><div class='add'>+      self.left = nil</div><div class='add'>+      self.right = nil</div><div class='add'>+      self.parent = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def nil?</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  include Enumerable</div><div class='add'>+</div><div class='add'>+  attr_accessor :root</div><div class='add'>+  attr_accessor :size</div><div class='add'>+</div><div class='add'>+  def initialize</div><div class='add'>+    self.root = NilNode.instance</div><div class='add'>+    self.size = 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def add(key)</div><div class='add'>+    insert(Node.new(key))</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def insert(x)</div><div class='add'>+    insert_helper(x)</div><div class='add'>+</div><div class='add'>+    x.color = Node::RED</div><div class='add'>+    while x != root &amp;&amp; x.parent.color == Node::RED</div><div class='add'>+      if x.parent == x.parent.parent.left</div><div class='add'>+        y = x.parent.parent.right</div><div class='add'>+        if !y.nil? &amp;&amp; y.color == Node::RED</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          y.color = Node::BLACK</div><div class='add'>+          x.parent.parent.color = Node::RED</div><div class='add'>+          x = x.parent.parent</div><div class='add'>+        else</div><div class='add'>+          if x == x.parent.right</div><div class='add'>+            x = x.parent</div><div class='add'>+            left_rotate(x)</div><div class='add'>+          end</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          x.parent.parent.color = Node::RED</div><div class='add'>+          right_rotate(x.parent.parent)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        y = x.parent.parent.left</div><div class='add'>+        if !y.nil? &amp;&amp; y.color == Node::RED</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          y.color = Node::BLACK</div><div class='add'>+          x.parent.parent.color = Node::RED</div><div class='add'>+          x = x.parent.parent</div><div class='add'>+        else</div><div class='add'>+          if x == x.parent.left</div><div class='add'>+            x = x.parent</div><div class='add'>+            right_rotate(x)</div><div class='add'>+          end</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          x.parent.parent.color = Node::RED</div><div class='add'>+          left_rotate(x.parent.parent)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    root.color = Node::BLACK</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  alias &lt;&lt; insert</div><div class='add'>+</div><div class='add'>+  def delete(z)</div><div class='add'>+    y = (z.left.nil? || z.right.nil?) ? z : successor(z)</div><div class='add'>+    x = y.left.nil? ? y.right : y.left</div><div class='add'>+    x.parent = y.parent</div><div class='add'>+</div><div class='add'>+    if y.parent.nil?</div><div class='add'>+      self.root = x</div><div class='add'>+    else</div><div class='add'>+      if y == y.parent.left</div><div class='add'>+        y.parent.left = x</div><div class='add'>+      else</div><div class='add'>+        y.parent.right = x</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    z.key = y.key if y != z</div><div class='add'>+</div><div class='add'>+    if y.color == Node::BLACK</div><div class='add'>+      delete_fixup(x)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    self.size -= 1</div><div class='add'>+    return y</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def minimum(x = root)</div><div class='add'>+    while !x.left.nil?</div><div class='add'>+      x = x.left</div><div class='add'>+    end</div><div class='add'>+    return x</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def maximum(x = root)</div><div class='add'>+    while !x.right.nil?</div><div class='add'>+      x = x.right</div><div class='add'>+    end</div><div class='add'>+    return x</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def successor(x)</div><div class='add'>+    if !x.right.nil?</div><div class='add'>+      return minimum(x.right)</div><div class='add'>+    end</div><div class='add'>+    y = x.parent</div><div class='add'>+    while !y.nil? &amp;&amp; x == y.right</div><div class='add'>+      x = y</div><div class='add'>+      y = y.parent</div><div class='add'>+    end</div><div class='add'>+    return y</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def predecessor(x)</div><div class='add'>+    if !x.left.nil?</div><div class='add'>+      return maximum(x.left)</div><div class='add'>+    end</div><div class='add'>+    y = x.parent</div><div class='add'>+    while !y.nil? &amp;&amp; x == y.left</div><div class='add'>+      x = y</div><div class='add'>+      y = y.parent</div><div class='add'>+    end</div><div class='add'>+    return y</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def inorder_walk(x = root)</div><div class='add'>+    x = self.minimum</div><div class='add'>+    while !x.nil?</div><div class='add'>+      yield x.key</div><div class='add'>+      x = successor(x)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  alias each inorder_walk</div><div class='add'>+</div><div class='add'>+  def reverse_inorder_walk(x = root)</div><div class='add'>+    x = self.maximum</div><div class='add'>+    while !x.nil?</div><div class='add'>+      yield x.key</div><div class='add'>+      x = predecessor(x)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  alias reverse_each reverse_inorder_walk</div><div class='add'>+</div><div class='add'>+  def search(key, x = root)</div><div class='add'>+    while !x.nil? &amp;&amp; x.key != key</div><div class='add'>+      key &lt; x.key ? x = x.left : x = x.right</div><div class='add'>+    end</div><div class='add'>+    return x</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def empty?</div><div class='add'>+    return self.root.nil?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def black_height(x = root)</div><div class='add'>+    height = 0</div><div class='add'>+    while !x.nil?</div><div class='add'>+      x = x.left</div><div class='add'>+      height +=1 if x.nil? || x.black?</div><div class='add'>+    end</div><div class='add'>+    return height</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+private</div><div class='add'>+</div><div class='add'>+  def left_rotate(x)</div><div class='add'>+    raise "x.right is nil!" if x.right.nil?</div><div class='add'>+    y = x.right</div><div class='add'>+    x.right = y.left</div><div class='add'>+    y.left.parent = x if !y.left.nil?</div><div class='add'>+    y.parent = x.parent</div><div class='add'>+    if x.parent.nil?</div><div class='add'>+      self.root = y</div><div class='add'>+    else</div><div class='add'>+      if x == x.parent.left</div><div class='add'>+        x.parent.left = y</div><div class='add'>+      else</div><div class='add'>+        x.parent.right = y</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    y.left = x</div><div class='add'>+    x.parent = y</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def right_rotate(x)</div><div class='add'>+    raise "x.left is nil!" if x.left.nil?</div><div class='add'>+    y = x.left</div><div class='add'>+    x.left = y.right</div><div class='add'>+    y.right.parent = x if !y.right.nil?</div><div class='add'>+    y.parent = x.parent</div><div class='add'>+    if x.parent.nil?</div><div class='add'>+      self.root = y</div><div class='add'>+    else</div><div class='add'>+      if x == x.parent.left</div><div class='add'>+        x.parent.left = y</div><div class='add'>+      else</div><div class='add'>+        x.parent.right = y</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    y.right = x</div><div class='add'>+    x.parent = y</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def insert_helper(z)</div><div class='add'>+    y = NilNode.instance</div><div class='add'>+    x = root</div><div class='add'>+    while !x.nil?</div><div class='add'>+      y = x</div><div class='add'>+      z.key &lt; x.key ? x = x.left : x = x.right</div><div class='add'>+    end</div><div class='add'>+    z.parent = y</div><div class='add'>+    if y.nil?</div><div class='add'>+      self.root = z</div><div class='add'>+    else</div><div class='add'>+      z.key &lt; y.key ? y.left = z : y.right = z</div><div class='add'>+    end</div><div class='add'>+    self.size += 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def delete_fixup(x)</div><div class='add'>+    while x != root &amp;&amp; x.color == Node::BLACK</div><div class='add'>+      if x == x.parent.left</div><div class='add'>+        w = x.parent.right</div><div class='add'>+        if w.color == Node::RED</div><div class='add'>+          w.color = Node::BLACK</div><div class='add'>+          x.parent.color = Node::RED</div><div class='add'>+          left_rotate(x.parent)</div><div class='add'>+          w = x.parent.right</div><div class='add'>+        end</div><div class='add'>+        if w.left.color == Node::BLACK &amp;&amp; w.right.color == Node::BLACK</div><div class='add'>+          w.color = Node::RED</div><div class='add'>+          x = x.parent</div><div class='add'>+        else</div><div class='add'>+          if w.right.color == Node::BLACK</div><div class='add'>+            w.left.color = Node::BLACK</div><div class='add'>+            w.color = Node::RED</div><div class='add'>+            right_rotate(w)</div><div class='add'>+            w = x.parent.right</div><div class='add'>+          end</div><div class='add'>+          w.color = x.parent.color</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          w.right.color = Node::BLACK</div><div class='add'>+          left_rotate(x.parent)</div><div class='add'>+          x = root</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        w = x.parent.left</div><div class='add'>+        if w.color == Node::RED</div><div class='add'>+          w.color = Node::BLACK</div><div class='add'>+          x.parent.color = Node::RED</div><div class='add'>+          right_rotate(x.parent)</div><div class='add'>+          w = x.parent.left</div><div class='add'>+        end</div><div class='add'>+        if w.right.color == Node::BLACK &amp;&amp; w.left.color == Node::BLACK</div><div class='add'>+          w.color = Node::RED</div><div class='add'>+          x = x.parent</div><div class='add'>+        else</div><div class='add'>+          if w.left.color == Node::BLACK</div><div class='add'>+            w.right.color = Node::BLACK</div><div class='add'>+            w.color = Node::RED</div><div class='add'>+            left_rotate(w)</div><div class='add'>+            w = x.parent.left</div><div class='add'>+          end</div><div class='add'>+          w.color = x.parent.color</div><div class='add'>+          x.parent.color = Node::BLACK</div><div class='add'>+          w.left.color = Node::BLACK</div><div class='add'>+          right_rotate(x.parent)</div><div class='add'>+          x = root</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    x.color = Node::BLACK</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def rbt_bm</div><div class='add'>+  n = 100_000</div><div class='add'>+  a1 = []; n.times { a1 &lt;&lt; rand(999_999) }</div><div class='add'>+  a2 = []; n.times { a2 &lt;&lt; rand(999_999) }</div><div class='add'>+</div><div class='add'>+  start = Time.now</div><div class='add'>+</div><div class='add'>+  tree = RedBlackTree.new</div><div class='add'>+</div><div class='add'>+  n.times {|i| tree.add(i) }</div><div class='add'>+  n.times { tree.delete(tree.root) }</div><div class='add'>+</div><div class='add'>+  tree = RedBlackTree.new</div><div class='add'>+  a1.each {|e| tree.add(e) }</div><div class='add'>+  a2.each {|e| tree.search(e) }</div><div class='add'>+  tree.inorder_walk {|key| key + 1 }</div><div class='add'>+  tree.reverse_inorder_walk {|key| key + 1 }</div><div class='add'>+  n.times { tree.minimum }</div><div class='add'>+  n.times { tree.maximum }</div><div class='add'>+</div><div class='add'>+  return Time.now - start</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+N = (ARGV[0] || 10).to_i</div><div class='add'>+</div><div class='add'>+N.times do</div><div class='add'>+  # puts rbt_bm.to_f</div><div class='add'>+  rbt_bm.to_f</div><div class='add'>+  # puts "GC.count = #{GC.count}" if GC.respond_to?(:count)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/gc/ring.rb b/benchmark/gc/ring.rb<br/>new file mode 100644<br/>index 0000000000..be2c7b7250<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/gc/ring.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/gc/ring.rb</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+# create many old objects</div><div class='add'>+</div><div class='add'>+max = 30_000_000</div><div class='add'>+</div><div class='add'>+class Ring</div><div class='add'>+  attr_reader :next_ring</div><div class='add'>+  def initialize n = nil</div><div class='add'>+    @next_ring = n</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  def size</div><div class='add'>+    s = 1</div><div class='add'>+    ring = self</div><div class='add'>+    while ring.next_ring</div><div class='add'>+      s += 1</div><div class='add'>+      ring = ring.next_ring</div><div class='add'>+    end</div><div class='add'>+    s</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ring = Ring.new</div><div class='add'>+</div><div class='add'>+max.times{</div><div class='add'>+  ring = Ring.new(ring)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# p ring.size</div><div class='head'>diff --git a/benchmark/make_fasta_output.rb b/benchmark/make_fasta_output.rb<br/>new file mode 100644<br/>index 0000000000..b6d787ae27<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/make_fasta_output.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/make_fasta_output.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+# prepare 'fasta.output'</div><div class='add'>+</div><div class='add'>+def prepare_fasta_output n</div><div class='add'>+  filebase = File.join(File.dirname($0), 'fasta.output')</div><div class='add'>+  script = File.join(File.dirname($0), 'bm_so_fasta.rb')</div><div class='add'>+  file = "#{filebase}.#{n}"</div><div class='add'>+</div><div class='add'>+  unless FileTest.exist?(file)</div><div class='add'>+    STDERR.puts "preparing #{file}"</div><div class='add'>+</div><div class='add'>+    open(file, 'w'){|f|</div><div class='add'>+      ARGV[0] = n</div><div class='add'>+      $stdout = f</div><div class='add'>+      load script</div><div class='add'>+      $stdout = STDOUT</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/memory_wrapper.rb b/benchmark/memory_wrapper.rb<br/>new file mode 100644<br/>index 0000000000..3f4451a037<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/memory_wrapper.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/memory_wrapper.rb</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+</div><div class='add'>+write_file, target, script_file = ARGV</div><div class='add'>+</div><div class='add'>+load(script_file)</div><div class='add'>+require_relative '../test/lib/memory_status'</div><div class='add'>+open(write_file, 'wb'){|f|</div><div class='add'>+  ms = Memory::Status.new</div><div class='add'>+  case target.to_sym</div><div class='add'>+  when :peak</div><div class='add'>+    key = ms.respond_to?(:hwm) ? :hwm : :peak</div><div class='add'>+  when :size</div><div class='add'>+    key = ms.respond_to?(:rss) ? :rss : :size</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  f.puts ms[key]</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/other-lang/ack.pl b/benchmark/other-lang/ack.pl<br/>new file mode 100644<br/>index 0000000000..201e22ddfa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/ack.pl?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/ack.pl</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+use integer;</div><div class='add'>+</div><div class='add'>+sub Ack {</div><div class='add'>+    return $_[0] ? ($_[1] ? Ack($_[0]-1, Ack($_[0], $_[1]-1))</div><div class='add'>+		    : Ack($_[0]-1, 1))</div><div class='add'>+	: $_[1]+1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+my $NUM = 9;</div><div class='add'>+$NUM = 1 if ($NUM &lt; 1);</div><div class='add'>+my $ack = Ack(3, $NUM);</div><div class='head'>diff --git a/benchmark/other-lang/ack.py b/benchmark/other-lang/ack.py<br/>new file mode 100644<br/>index 0000000000..9968e7cfcf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/ack.py?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/ack.py</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+import sys</div><div class='add'>+sys.setrecursionlimit(5000000)</div><div class='add'>+</div><div class='add'>+def Ack(M, N):</div><div class='add'>+    if (not M):</div><div class='add'>+        return( N + 1 )</div><div class='add'>+    if (not N):</div><div class='add'>+        return( Ack(M-1, 1) )</div><div class='add'>+    return( Ack(M-1, Ack(M, N-1)) )</div><div class='add'>+</div><div class='add'>+def main():</div><div class='add'>+    NUM = 9</div><div class='add'>+    sys.setrecursionlimit(10000)</div><div class='add'>+    Ack(3, NUM)</div><div class='add'>+</div><div class='add'>+main()</div><div class='head'>diff --git a/benchmark/other-lang/ack.rb b/benchmark/other-lang/ack.rb<br/>new file mode 100644<br/>index 0000000000..7451bed6c4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/ack.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/ack.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+def ack(m, n)</div><div class='add'>+    if m == 0 then</div><div class='add'>+        n + 1</div><div class='add'>+    elsif n == 0 then</div><div class='add'>+        ack(m - 1, 1)</div><div class='add'>+    else</div><div class='add'>+        ack(m - 1, ack(m, n - 1))</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+NUM = 9</div><div class='add'>+ack(3, NUM)</div><div class='head'>diff --git a/benchmark/other-lang/ack.scm b/benchmark/other-lang/ack.scm<br/>new file mode 100644<br/>index 0000000000..a80b73ba55<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/ack.scm?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/ack.scm</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+(define (ack m n)</div><div class='add'>+  (cond ((zero? m) (+ n 1))</div><div class='add'>+	((zero? n) (ack (- m 1) 1))</div><div class='add'>+	(else      (ack (- m 1) (ack m (- n 1))))))</div><div class='add'>+</div><div class='add'>+(ack 3 9)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/eval.rb b/benchmark/other-lang/eval.rb<br/>new file mode 100644<br/>index 0000000000..48a2cea019<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/eval.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/eval.rb</a></div><div class='hunk'>@@ -0,0 +1,66 @@</div><div class='add'>+</div><div class='add'>+Bench = %w(</div><div class='add'>+  loop</div><div class='add'>+  ack</div><div class='add'>+  fib</div><div class='add'>+  tak</div><div class='add'>+  fact</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+Lang = &lt;&lt;EOP.map{|l| l.strip}</div><div class='add'>+  ruby-cyg</div><div class='add'>+  ../../../test6/miniruby</div><div class='add'>+  perl</div><div class='add'>+  python</div><div class='add'>+  gosh</div><div class='add'>+EOP</div><div class='add'>+</div><div class='add'>+Bench.replace ['loop2']</div><div class='add'>+Lang.replace ['ruby-cyg']</div><div class='add'>+</div><div class='add'>+Ext = %w(</div><div class='add'>+  .rb</div><div class='add'>+  .rb</div><div class='add'>+  .pl</div><div class='add'>+  .py</div><div class='add'>+  .scm</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+p Bench</div><div class='add'>+p Lang</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+</div><div class='add'>+def bench cmd</div><div class='add'>+  m = Benchmark.measure{</div><div class='add'>+    #p cmd</div><div class='add'>+    system(cmd)</div><div class='add'>+  }</div><div class='add'>+  [m.utime, m.real]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Result = []</div><div class='add'>+Bench.each{|b|</div><div class='add'>+  r = []</div><div class='add'>+  Lang.each_with_index{|l, idx|</div><div class='add'>+    cmd = "#{l} #{b}#{Ext[idx]}"</div><div class='add'>+    r &lt;&lt; bench(cmd)</div><div class='add'>+  }</div><div class='add'>+  Result &lt;&lt; r</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+require 'pp'</div><div class='add'>+# utime</div><div class='add'>+puts Lang.join("\t")</div><div class='add'>+Bench.each_with_index{|b, bi|</div><div class='add'>+  print b, "\t"</div><div class='add'>+  puts Result[bi].map{|e| e[0]}.join("\t")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# rtime</div><div class='add'>+puts Lang.join("\t")</div><div class='add'>+Bench.each_with_index{|b, bi|</div><div class='add'>+  print b, "\t"</div><div class='add'>+  puts Result[bi].map{|e| e[1]}.join("\t")</div><div class='add'>+}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/fact.pl b/benchmark/other-lang/fact.pl<br/>new file mode 100644<br/>index 0000000000..a9b0b69cdf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.pl?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fact.pl</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+sub fact{</div><div class='add'>+  my $n = @_[0];</div><div class='add'>+  if($n &lt; 2){</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else{</div><div class='add'>+    return $n * fact($n-1);</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+for($i=0; $i&lt;10000; $i++){</div><div class='add'>+  &amp;fact(100);</div><div class='add'>+}</div><div class='head'>diff --git a/benchmark/other-lang/fact.py b/benchmark/other-lang/fact.py<br/>new file mode 100644<br/>index 0000000000..01593965d9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.py?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fact.py</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+#import sys</div><div class='add'>+#sys.setrecursionlimit(1000)</div><div class='add'>+</div><div class='add'>+def factL(n):</div><div class='add'>+	r = 1</div><div class='add'>+	for x in range(2, n):</div><div class='add'>+		r *= x</div><div class='add'>+	return r</div><div class='add'>+</div><div class='add'>+def factR(n):</div><div class='add'>+	if n &lt; 2:</div><div class='add'>+		return 1</div><div class='add'>+	else:</div><div class='add'>+		return n * factR(n-1)</div><div class='add'>+</div><div class='add'>+for i in range(10000):</div><div class='add'>+	factR(100)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/fact.rb b/benchmark/other-lang/fact.rb<br/>new file mode 100644<br/>index 0000000000..6cedc752cd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fact.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+def fact(n)</div><div class='add'>+  if n &lt; 2</div><div class='add'>+    1</div><div class='add'>+  else</div><div class='add'>+    n * fact(n-1)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;10000</div><div class='add'>+  i += 1</div><div class='add'>+  fact(100)</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/other-lang/fact.scm b/benchmark/other-lang/fact.scm<br/>new file mode 100644<br/>index 0000000000..c98a7fedd3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.scm?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fact.scm</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+(define (fact n)</div><div class='add'>+        (if (&lt; n 2)</div><div class='add'>+            1</div><div class='add'>+          (* n (fact (- n 1)))))</div><div class='add'>+</div><div class='add'>+(dotimes (i 10000)</div><div class='add'>+  (fact 100))</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/fib.pl b/benchmark/other-lang/fib.pl<br/>new file mode 100644<br/>index 0000000000..a46f666d1e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fib.pl?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fib.pl</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+sub fib{</div><div class='add'>+  my $n = $_[0];</div><div class='add'>+  if($n &lt; 3){</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else{</div><div class='add'>+    return fib($n-1) + fib($n-2);</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+&amp;fib(34);</div><div class='head'>diff --git a/benchmark/other-lang/fib.py b/benchmark/other-lang/fib.py<br/>new file mode 100644<br/>index 0000000000..45f2bceb8d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fib.py?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fib.py</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+def fib(n):</div><div class='add'>+  if n &lt; 3:</div><div class='add'>+    return 1</div><div class='add'>+  else:</div><div class='add'>+    return fib(n-1) + fib(n-2)</div><div class='add'>+</div><div class='add'>+fib(34)</div><div class='head'>diff --git a/benchmark/other-lang/fib.rb b/benchmark/other-lang/fib.rb<br/>new file mode 100644<br/>index 0000000000..ec587eabe0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fib.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fib.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+def fib n</div><div class='add'>+  if n &lt; 3</div><div class='add'>+    1</div><div class='add'>+  else</div><div class='add'>+    fib(n-1) + fib(n-2)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+fib(34)</div><div class='head'>diff --git a/benchmark/other-lang/fib.scm b/benchmark/other-lang/fib.scm<br/>new file mode 100644<br/>index 0000000000..2fc4e225bd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fib.scm?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/fib.scm</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+(define (fib n)</div><div class='add'>+        (if (&lt; n 3)</div><div class='add'>+            1</div><div class='add'>+          (+ (fib (- n 1)) (fib (- n 2)))))</div><div class='add'>+</div><div class='add'>+(fib 34)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/loop.pl b/benchmark/other-lang/loop.pl<br/>new file mode 100644<br/>index 0000000000..2777490aaa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop.pl?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/loop.pl</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+for($i=0; $i&lt;30000000; $i++){</div><div class='add'>+}</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/loop.py b/benchmark/other-lang/loop.py<br/>new file mode 100644<br/>index 0000000000..003749bf3a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop.py?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/loop.py</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+for i in xrange(30000000):</div><div class='add'>+	pass</div><div class='head'>diff --git a/benchmark/other-lang/loop.rb b/benchmark/other-lang/loop.rb<br/>new file mode 100644<br/>index 0000000000..b367b9dbf3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/loop.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;30000000</div><div class='add'>+  i += 1</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/other-lang/loop.scm b/benchmark/other-lang/loop.scm<br/>new file mode 100644<br/>index 0000000000..3364f7e679<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop.scm?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/loop.scm</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+(dotimes (x 30000000))</div><div class='head'>diff --git a/benchmark/other-lang/loop2.rb b/benchmark/other-lang/loop2.rb<br/>new file mode 100644<br/>index 0000000000..df8fffc1ff<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop2.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/loop2.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+30000000.times{}</div><div class='head'>diff --git a/benchmark/other-lang/tak.pl b/benchmark/other-lang/tak.pl<br/>new file mode 100644<br/>index 0000000000..7e748a67c6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/tak.pl?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/tak.pl</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+sub tak {</div><div class='add'>+    local($x, $y, $z) = @_;</div><div class='add'>+    if (!($y &lt; $x)) {</div><div class='add'>+	return $z;</div><div class='add'>+    } else {</div><div class='add'>+	return &amp;tak(&amp;tak($x - 1, $y, $z),</div><div class='add'>+		    &amp;tak($y - 1, $z, $x),</div><div class='add'>+		    &amp;tak($z - 1, $x, $y));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+&amp;tak(18, 9, 0);</div><div class='head'>diff --git a/benchmark/other-lang/tak.py b/benchmark/other-lang/tak.py<br/>new file mode 100644<br/>index 0000000000..04f3f6829c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/tak.py?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/tak.py</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+def tak(x, y, z):</div><div class='add'>+	if not(y&lt;x):</div><div class='add'>+		return z</div><div class='add'>+	else:</div><div class='add'>+		return tak(tak(x-1, y, z),</div><div class='add'>+		           tak(y-1, z, x),</div><div class='add'>+		           tak(z-1, x, y))</div><div class='add'>+tak(18, 9, 0)</div><div class='head'>diff --git a/benchmark/other-lang/tak.rb b/benchmark/other-lang/tak.rb<br/>new file mode 100644<br/>index 0000000000..efe5380f4e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/tak.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/tak.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+</div><div class='add'>+def tak x, y, z</div><div class='add'>+  unless y &lt; x</div><div class='add'>+    z</div><div class='add'>+  else</div><div class='add'>+    tak( tak(x-1, y, z),</div><div class='add'>+         tak(y-1, z, x),</div><div class='add'>+         tak(z-1, x, y))</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+tak(18, 9, 0)</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/other-lang/tak.scm b/benchmark/other-lang/tak.scm<br/>new file mode 100644<br/>index 0000000000..52a7629ee5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/tak.scm?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/other-lang/tak.scm</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+(define (tak x y z)</div><div class='add'>+        (if (not (&lt; y x))</div><div class='add'>+            z</div><div class='add'>+          (tak (tak (- x 1) y z)</div><div class='add'>+               (tak (- y 1) z x)</div><div class='add'>+               (tak (- z 1) x y))))</div><div class='add'>+</div><div class='add'>+(tak 18 9 0)</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/prepare_require.rb b/benchmark/prepare_require.rb<br/>new file mode 100644<br/>index 0000000000..c4786f04ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_require.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/prepare_require.rb</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+require "fileutils"</div><div class='add'>+</div><div class='add'>+def prepare</div><div class='add'>+  num_files = 10000</div><div class='add'>+</div><div class='add'>+  basename = File.dirname($0)</div><div class='add'>+  data_dir = File.join(basename, "bm_require.data")</div><div class='add'>+</div><div class='add'>+  # skip if all of files exists</div><div class='add'>+  if File.exist?(File.join(data_dir, "c#{num_files}.rb"))</div><div class='add'>+    return</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  FileUtils.mkdir_p(data_dir)</div><div class='add'>+</div><div class='add'>+  1.upto(num_files) do |i|</div><div class='add'>+    f = File.open("#{data_dir}/c#{i}.rb", "w")</div><div class='add'>+    f.puts &lt;&lt;-END</div><div class='add'>+      class C#{i}</div><div class='add'>+      end</div><div class='add'>+    END</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+prepare</div><div class='head'>diff --git a/benchmark/prepare_require_thread.rb b/benchmark/prepare_require_thread.rb<br/>new file mode 100644<br/>index 0000000000..339ecb8b39<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_require_thread.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/prepare_require_thread.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+load File.join(File.dirname(__FILE__), "prepare_require.rb")</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/prepare_so_count_words.rb b/benchmark/prepare_so_count_words.rb<br/>new file mode 100644<br/>index 0000000000..ee2138cdb2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_so_count_words.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/prepare_so_count_words.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# prepare 'wc.input'</div><div class='add'>+</div><div class='add'>+def prepare_wc_input</div><div class='add'>+  wcinput = File.join(File.dirname($0), 'wc.input')</div><div class='add'>+  wcbase  = File.join(File.dirname($0), 'wc.input.base')</div><div class='add'>+  unless FileTest.exist?(wcinput)</div><div class='add'>+    data = File.read(wcbase)</div><div class='add'>+    13.times{</div><div class='add'>+      data &lt;&lt; data</div><div class='add'>+    }</div><div class='add'>+    open(wcinput, 'w'){|f| f.write data}</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+prepare_wc_input</div><div class='head'>diff --git a/benchmark/prepare_so_k_nucleotide.rb b/benchmark/prepare_so_k_nucleotide.rb<br/>new file mode 100644<br/>index 0000000000..d83aeb7a7e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_so_k_nucleotide.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/prepare_so_k_nucleotide.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require_relative 'make_fasta_output'</div><div class='add'>+prepare_fasta_output(100_000)</div><div class='head'>diff --git a/benchmark/prepare_so_reverse_complement.rb b/benchmark/prepare_so_reverse_complement.rb<br/>new file mode 100644<br/>index 0000000000..da3ec2df14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_so_reverse_complement.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/prepare_so_reverse_complement.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require_relative 'make_fasta_output'</div><div class='add'>+prepare_fasta_output(2_500_000)</div><div class='head'>diff --git a/benchmark/report.rb b/benchmark/report.rb<br/>new file mode 100644<br/>index 0000000000..d2dc56b1e1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/report.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/report.rb</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+#</div><div class='add'>+# YARV benchmark driver</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'yarvutil'</div><div class='add'>+require 'benchmark'</div><div class='add'>+require 'rbconfig'</div><div class='add'>+</div><div class='add'>+def exec_command type, file, w</div><div class='add'>+  &lt;&lt;-EOP</div><div class='add'>+  $DRIVER_PATH = '#{File.dirname($0)}'</div><div class='add'>+  $LOAD_PATH.replace $LOAD_PATH | #{$LOAD_PATH.inspect}</div><div class='add'>+  require 'benchmark'</div><div class='add'>+  require 'yarvutil'</div><div class='add'>+#  print '#{type}'</div><div class='add'>+  begin</div><div class='add'>+    puts Benchmark.measure{</div><div class='add'>+      #{w}('#{file}')</div><div class='add'>+    }.utime</div><div class='add'>+  rescue Exception =&gt; exec_command_error_variable</div><div class='add'>+    puts "\t" + exec_command_error_variable.message</div><div class='add'>+  end</div><div class='add'>+  EOP</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def benchmark cmd</div><div class='add'>+  rubybin = ENV['RUBY'] || RbConfig.ruby</div><div class='add'>+</div><div class='add'>+  IO.popen(rubybin, 'r+'){|io|</div><div class='add'>+    io.write cmd</div><div class='add'>+    io.close_write</div><div class='add'>+    return io.gets</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def ruby_exec file</div><div class='add'>+  prog = exec_command 'ruby', file, 'load'</div><div class='add'>+  benchmark prog</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def yarv_exec file</div><div class='add'>+  prog = exec_command 'yarv', file, 'YARVUtil.load_bm'</div><div class='add'>+  benchmark prog</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$wr = $wy = nil</div><div class='add'>+</div><div class='add'>+def measure bench</div><div class='add'>+  file = File.dirname($0) + "/bm_#{bench}.rb"</div><div class='add'>+  r = ruby_exec(file).to_f</div><div class='add'>+  y = yarv_exec(file).to_f</div><div class='add'>+  puts "#{bench}\t#{r}\t#{y}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def measure2</div><div class='add'>+  r = ruby_exec.to_f</div><div class='add'>+  y = yarv_exec.to_f</div><div class='add'>+  puts r/y</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if $0 == __FILE__</div><div class='add'>+  %w{</div><div class='add'>+    whileloop</div><div class='add'>+    whileloop2</div><div class='add'>+    times</div><div class='add'>+    const</div><div class='add'>+    method</div><div class='add'>+    poly_method</div><div class='add'>+    block</div><div class='add'>+    rescue</div><div class='add'>+    rescue2</div><div class='add'>+  }.each{|bench|</div><div class='add'>+    measure bench</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/run.rb b/benchmark/run.rb<br/>new file mode 100644<br/>index 0000000000..0cd2363849<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/run.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/run.rb</a></div><div class='hunk'>@@ -0,0 +1,127 @@</div><div class='add'>+#</div><div class='add'>+# Ruby benchmark driver</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+require 'rbconfig'</div><div class='add'>+</div><div class='add'>+$matzrubyonly = false</div><div class='add'>+$rubyonly = false</div><div class='add'>+</div><div class='add'>+$results  = []</div><div class='add'>+</div><div class='add'>+# prepare 'wc.input'</div><div class='add'>+def prepare_wc_input</div><div class='add'>+  wcinput = File.join(File.dirname($0), 'wc.input')</div><div class='add'>+  wcbase  = File.join(File.dirname($0), 'wc.input.base')</div><div class='add'>+  unless FileTest.exist?(wcinput)</div><div class='add'>+    data = File.read(wcbase)</div><div class='add'>+    13.times{</div><div class='add'>+      data &lt;&lt; data</div><div class='add'>+    }</div><div class='add'>+    open(wcinput, 'w'){|f| f.write data}</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+prepare_wc_input</div><div class='add'>+</div><div class='add'>+def bm file</div><div class='add'>+  prog = File.readlines(file).map{|e| e.rstrip}.join("\n")</div><div class='add'>+  return if prog.empty?</div><div class='add'>+</div><div class='add'>+  /[a-z]+_(.+)\.rb/ =~ file</div><div class='add'>+  bm_name = $1</div><div class='add'>+  puts '-----------------------------------------------------------' unless $rubyonly || $matzrubyonly</div><div class='add'>+  puts "#{bm_name}: "</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+puts &lt;&lt;EOS unless $matzrubyonly || $rubyonly</div><div class='add'>+#{prog}</div><div class='add'>+--</div><div class='add'>+EOS</div><div class='add'>+  begin</div><div class='add'>+    result = [bm_name]</div><div class='add'>+    result &lt;&lt; matzruby_exec(file) unless $rubyonly</div><div class='add'>+    result &lt;&lt; ruby_exec(file) unless $matzrubyonly</div><div class='add'>+    $results &lt;&lt; result</div><div class='add'>+</div><div class='add'>+  rescue Exception =&gt; e</div><div class='add'>+    puts</div><div class='add'>+    puts "** benchmark failure: #{e}"</div><div class='add'>+    puts e.backtrace</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def benchmark file, bin</div><div class='add'>+  m = Benchmark.measure{</div><div class='add'>+    `#{bin} #{$opts} #{file}`</div><div class='add'>+  }</div><div class='add'>+  sec = '%.3f' % m.real</div><div class='add'>+  puts " #{sec}"</div><div class='add'>+  sec</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def ruby_exec file</div><div class='add'>+  print 'ruby'</div><div class='add'>+  benchmark file, $ruby_program</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def matzruby_exec file</div><div class='add'>+  print 'matz'</div><div class='add'>+  rubylib = ENV['RUBYLIB']</div><div class='add'>+  ENV['RUBYLIB'] = ''</div><div class='add'>+  r = benchmark file, $matzruby_program</div><div class='add'>+  ENV['RUBYLIB'] = rubylib</div><div class='add'>+  r</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if $0 == __FILE__</div><div class='add'>+  ARGV.each{|arg|</div><div class='add'>+    case arg</div><div class='add'>+    when /\A--ruby=(.+)/</div><div class='add'>+      $ruby_program = $1</div><div class='add'>+    when /\A--matzruby=(.+)/</div><div class='add'>+      $matzruby_program = $1</div><div class='add'>+    when /\A--opts=(.+)/</div><div class='add'>+      $opts = $1</div><div class='add'>+    when /\A(-r|--only-ruby)\z/</div><div class='add'>+      $rubyonly = true</div><div class='add'>+    when /\A(-m|--only-matzruby)\z/</div><div class='add'>+      $matzrubyonly = true</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  ARGV.delete_if{|arg|</div><div class='add'>+    /\A-/ =~ arg</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  puts "MatzRuby:"</div><div class='add'>+  system("#{$matzruby_program} -v")</div><div class='add'>+  puts "Ruby:"</div><div class='add'>+  system("#{$ruby_program} -v")</div><div class='add'>+  puts</div><div class='add'>+</div><div class='add'>+  if ARGV.empty?</div><div class='add'>+    Dir.glob(File.dirname(__FILE__) + '/bm_*.rb').sort.each{|file|</div><div class='add'>+      bm file</div><div class='add'>+    }</div><div class='add'>+  else</div><div class='add'>+    ARGV.each{|file|</div><div class='add'>+      Dir.glob(File.join(File.dirname(__FILE__), file + '*')){|ef|</div><div class='add'>+        # file = "#{File.dirname(__FILE__)}/#{file}.rb"</div><div class='add'>+        bm ef</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  puts</div><div class='add'>+  puts "-- benchmark summary ---------------------------"</div><div class='add'>+  $results.each{|res|</div><div class='add'>+    print res.shift, "\t"</div><div class='add'>+    (res||[]).each{|result|</div><div class='add'>+      /([\d\.]+)/ =~ result</div><div class='add'>+      print $1 + "\t" if $1</div><div class='add'>+    }</div><div class='add'>+    puts</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/runc.rb b/benchmark/runc.rb<br/>new file mode 100644<br/>index 0000000000..97c5cef045<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/runc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/runc.rb</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+require 'rbconfig'</div><div class='add'>+</div><div class='add'>+$rubybin = ENV['RUBY'] || RbConfig.ruby</div><div class='add'>+</div><div class='add'>+def runfile file</div><div class='add'>+  puts file</div><div class='add'>+  file = File.join(File.dirname($0), 'contrib', file)</div><div class='add'>+  Benchmark.bm{|x|</div><div class='add'>+    x.report('ruby'){</div><div class='add'>+      system("#{$rubybin} #{file}")</div><div class='add'>+    }</div><div class='add'>+    x.report('yarv'){</div><div class='add'>+      system("#{$rubybin} -rite -I.. #{file}")</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ARGV.each{|file|</div><div class='add'>+  runfile file</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/wc.input.base b/benchmark/wc.input.base<br/>new file mode 100644<br/>index 0000000000..41143fbac0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/wc.input.base?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>benchmark/wc.input.base</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+Subject:      Re: Who was Izchak Miller?</div><div class='add'>+From:         "Jane D. Anonymous" &lt;nobody@yale.edu&gt;</div><div class='add'>+Date:         1996/04/28</div><div class='add'>+Message-Id:   &lt;4lv7bc$oh@news.ycc.yale.edu&gt;</div><div class='add'>+References:   &lt;317C405E.5DFA@panix.com&gt; &lt;4lk6vl$gde@ns.oar.net&gt;</div><div class='add'>+To:           75176.2330@compuserve.com</div><div class='add'>+Content-Type: text/plain; charset=us-ascii</div><div class='add'>+Organization: Yale University</div><div class='add'>+X-Url:        news:4lk6vl$gde@ns.oar.net</div><div class='add'>+Mime-Version: 1.0</div><div class='add'>+Newsgroups:   rec.games.roguelike.nethack</div><div class='add'>+X-Mailer:     Mozilla 1.1N (Macintosh; I; 68K)</div><div class='add'>+</div><div class='add'>+Hello there, Izchak Miller was my father.  When I was younger I spent </div><div class='add'>+many a night, hunched over the keyboard with a cup of tea, playing </div><div class='add'>+nethack with him and my brother.  my dad was a philosopher with a strong </div><div class='add'>+weakness for fantasy/sci fi.  I remember when he started to get involved </div><div class='add'>+with the Nethack team- my brother's Dungeons and Dragons monster book </div><div class='add'>+found a regular place beside my dad's desk. it's nice to see him living </div><div class='add'>+on in the game he loved so much :-).  </div><div class='add'>+                                                                  Tamar Miller</div><div class='add'>+</div><div class='add'>+The following is a really long word of 5000 characters:</div><div class='add'>+</div><div class='add'>+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww</div><div class='head'>diff --git a/bignum.c b/bignum.c<br/>index e3d531ceaf..7ffb798e5e 100644<br/>--- a/<a href='/ruby.git/tree/bignum.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bignum.c</a><br/>+++ b/<a href='/ruby.git/tree/bignum.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bignum.c</a></div><div class='hunk'>@@ -3,407 +3,4084 @@</div><div class='ctx'>   bignum.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Fri Jun 10 00:48:55 JST 1994</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "id.h"</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_STRINGS_H</div><div class='add'>+#include &lt;strings.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> #include &lt;math.h&gt;</div><div class='add'>+#include &lt;float.h&gt;</div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> #ifdef HAVE_IEEEFP_H</div><div class='ctx'> #include &lt;ieeefp.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='add'>+#define USE_GMP</div><div class='add'>+#include &lt;gmp.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RB_BIGNUM_TYPE_P(x) RB_TYPE_P((x), T_BIGNUM)</div><div class='ctx'> </div><div class='add'>+#ifndef RUBY_INTEGER_UNIFICATION</div><div class='ctx'> VALUE rb_cBignum;</div><div class='add'>+#endif</div><div class='add'>+const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";</div><div class='add'>+</div><div class='add'>+#ifndef SIZEOF_BDIGIT_DBL</div><div class='add'>+# if SIZEOF_INT*2 &lt;= SIZEOF_LONG_LONG</div><div class='add'>+#  define SIZEOF_BDIGIT_DBL SIZEOF_LONG_LONG</div><div class='add'>+# else</div><div class='add'>+#  define SIZEOF_BDIGIT_DBL SIZEOF_LONG</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if defined __MINGW32__</div><div class='del'>-#define USHORT _USHORT</div><div class='add'>+STATIC_ASSERT(sizeof_bdigit_dbl, sizeof(BDIGIT_DBL) == SIZEOF_BDIGIT_DBL);</div><div class='add'>+STATIC_ASSERT(sizeof_bdigit_dbl_signed, sizeof(BDIGIT_DBL_SIGNED) == SIZEOF_BDIGIT_DBL);</div><div class='add'>+STATIC_ASSERT(sizeof_bdigit, SIZEOF_BDIGIT &lt;= sizeof(BDIGIT));</div><div class='add'>+STATIC_ASSERT(sizeof_bdigit_and_dbl, SIZEOF_BDIGIT*2 &lt;= SIZEOF_BDIGIT_DBL);</div><div class='add'>+STATIC_ASSERT(bdigit_signedness, 0 &lt; (BDIGIT)-1);</div><div class='add'>+STATIC_ASSERT(bdigit_dbl_signedness, 0 &lt; (BDIGIT_DBL)-1);</div><div class='add'>+STATIC_ASSERT(bdigit_dbl_signed_signedness, 0 &gt; (BDIGIT_DBL_SIGNED)-1);</div><div class='add'>+STATIC_ASSERT(rbignum_embed_len_max, BIGNUM_EMBED_LEN_MAX &lt;= (BIGNUM_EMBED_LEN_MASK &gt;&gt; BIGNUM_EMBED_LEN_SHIFT));</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_LONG % SIZEOF_BDIGIT == 0);</div><div class='add'>+#else</div><div class='add'>+STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_BDIGIT % SIZEOF_LONG == 0);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define BDIGITS(x) ((BDIGIT*)RBIGNUM(x)-&gt;digits)</div><div class='del'>-#define BITSPERDIG (SIZEOF_BDIGITS*CHAR_BIT)</div><div class='add'>+#ifdef WORDS_BIGENDIAN</div><div class='add'>+#   define HOST_BIGENDIAN_P 1</div><div class='add'>+#else</div><div class='add'>+#   define HOST_BIGENDIAN_P 0</div><div class='add'>+#endif</div><div class='add'>+#define ALIGNOF(type) ((int)offsetof(struct { char f1; type f2; }, f2))</div><div class='add'>+/* (!LSHIFTABLE(d, n) ? 0 : (n)) is same as n but suppress a warning, C4293, by Visual Studio.  */</div><div class='add'>+#define LSHIFTABLE(d, n) ((n) &lt; sizeof(d) * CHAR_BIT)</div><div class='add'>+#define LSHIFTX(d, n) (!LSHIFTABLE(d, n) ? 0 : ((d) &lt;&lt; (!LSHIFTABLE(d, n) ? 0 : (n))))</div><div class='add'>+#define CLEAR_LOWBITS(d, numbits) ((d) &amp; LSHIFTX(~((d)*0), (numbits)))</div><div class='add'>+#define FILL_LOWBITS(d, numbits) ((d) | (LSHIFTX(((d)*0+1), (numbits))-1))</div><div class='add'>+#define POW2_P(x) (((x)&amp;((x)-1))==0)</div><div class='add'>+</div><div class='add'>+#define BDIGITS(x) (BIGNUM_DIGITS(x))</div><div class='add'>+#define BITSPERDIG (SIZEOF_BDIGIT*CHAR_BIT)</div><div class='ctx'> #define BIGRAD ((BDIGIT_DBL)1 &lt;&lt; BITSPERDIG)</div><div class='del'>-#define DIGSPERLONG ((unsigned int)(SIZEOF_LONG/SIZEOF_BDIGITS))</div><div class='del'>-#if HAVE_LONG_LONG</div><div class='del'>-# define DIGSPERLL ((unsigned int)(SIZEOF_LONG_LONG/SIZEOF_BDIGITS))</div><div class='add'>+#define BIGRAD_HALF ((BDIGIT)(BIGRAD &gt;&gt; 1))</div><div class='add'>+#define BDIGIT_MSB(d) (((d) &amp; BIGRAD_HALF) != 0)</div><div class='add'>+#define BIGUP(x) LSHIFTX(((x) + (BDIGIT_DBL)0), BITSPERDIG)</div><div class='add'>+#define BIGDN(x) RSHIFT((x),BITSPERDIG)</div><div class='add'>+#define BIGLO(x) ((BDIGIT)((x) &amp; BDIGMAX))</div><div class='add'>+#define BDIGMAX ((BDIGIT)(BIGRAD-1))</div><div class='add'>+#define BDIGIT_DBL_MAX (~(BDIGIT_DBL)0)</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT == 2</div><div class='add'>+#   define swap_bdigit(x) swap16(x)</div><div class='add'>+#elif SIZEOF_BDIGIT == 4</div><div class='add'>+#   define swap_bdigit(x) swap32(x)</div><div class='add'>+#elif SIZEOF_BDIGIT == 8</div><div class='add'>+#   define swap_bdigit(x) swap64(x)</div><div class='ctx'> #endif</div><div class='del'>-#define BIGUP(x) ((BDIGIT_DBL)(x) &lt;&lt; BITSPERDIG)</div><div class='del'>-#define BIGDN(x) RSHIFT(x,BITSPERDIG)</div><div class='del'>-#define BIGLO(x) ((BDIGIT)((x) &amp; (BIGRAD-1)))</div><div class='del'>-#define BDIGMAX ((BDIGIT)-1)</div><div class='ctx'> </div><div class='del'>-#define BIGZEROP(x) (RBIGNUM(x)-&gt;len == 0 || \</div><div class='add'>+#define BIGZEROP(x) (BIGNUM_LEN(x) == 0 || \</div><div class='ctx'> 		     (BDIGITS(x)[0] == 0 &amp;&amp; \</div><div class='del'>-		      (RBIGNUM(x)-&gt;len == 1 || bigzero_p(x))))</div><div class='add'>+		      (BIGNUM_LEN(x) == 1 || bigzero_p(x))))</div><div class='add'>+#define BIGSIZE(x) (BIGNUM_LEN(x) == 0 ? (size_t)0 : \</div><div class='add'>+    BDIGITS(x)[BIGNUM_LEN(x)-1] ? \</div><div class='add'>+        (size_t)(BIGNUM_LEN(x)*SIZEOF_BDIGIT - nlz(BDIGITS(x)[BIGNUM_LEN(x)-1])/CHAR_BIT) : \</div><div class='add'>+    rb_absint_size(x, NULL))</div><div class='add'>+</div><div class='add'>+#define BIGDIVREM_EXTRA_WORDS 1</div><div class='add'>+#define bdigit_roomof(n) roomof(n, SIZEOF_BDIGIT)</div><div class='add'>+#define BARY_ARGS(ary) ary, numberof(ary)</div><div class='add'>+</div><div class='add'>+#define BARY_ADD(z, x, y) bary_add(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))</div><div class='add'>+#define BARY_SUB(z, x, y) bary_sub(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))</div><div class='add'>+#define BARY_SHORT_MUL(z, x, y) bary_short_mul(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))</div><div class='add'>+#define BARY_DIVMOD(q, r, x, y) bary_divmod(BARY_ARGS(q), BARY_ARGS(r), BARY_ARGS(x), BARY_ARGS(y))</div><div class='add'>+#define BARY_ZERO_P(x) bary_zero_p(BARY_ARGS(x))</div><div class='add'>+</div><div class='add'>+#define BIGNUM_SET_NEGATIVE_SIGN(b) BIGNUM_SET_SIGN(b, 0)</div><div class='add'>+#define BIGNUM_SET_POSITIVE_SIGN(b) BIGNUM_SET_SIGN(b, 1)</div><div class='add'>+</div><div class='add'>+#define bignew(len,sign) bignew_1(rb_cInteger,(len),(sign))</div><div class='add'>+</div><div class='add'>+#define BDIGITS_ZERO(ptr, n) do { \</div><div class='add'>+  BDIGIT *bdigitz_zero_ptr = (ptr); \</div><div class='add'>+  size_t bdigitz_zero_n = (n); \</div><div class='add'>+  while (bdigitz_zero_n) { \</div><div class='add'>+    *bdigitz_zero_ptr++ = 0; \</div><div class='add'>+    bdigitz_zero_n--; \</div><div class='add'>+  } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define BARY_TRUNC(ds, n) do { \</div><div class='add'>+        while (0 &lt; (n) &amp;&amp; (ds)[(n)-1] == 0) \</div><div class='add'>+            (n)--; \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+#define KARATSUBA_BALANCED(xn, yn) ((yn)/2 &lt; (xn))</div><div class='add'>+#define TOOM3_BALANCED(xn, yn) (((yn)+2)/3 * 2 &lt; (xn))</div><div class='add'>+</div><div class='add'>+#define GMP_MUL_DIGITS 20</div><div class='add'>+#define KARATSUBA_MUL_DIGITS 70</div><div class='add'>+#define TOOM3_MUL_DIGITS 150</div><div class='add'>+</div><div class='add'>+#define GMP_DIV_DIGITS 20</div><div class='add'>+#define GMP_BIG2STR_DIGITS 20</div><div class='add'>+#define GMP_STR2BIG_DIGITS 20</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+# define NAIVE_MUL_DIGITS GMP_MUL_DIGITS</div><div class='add'>+#else</div><div class='add'>+# define NAIVE_MUL_DIGITS KARATSUBA_MUL_DIGITS</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+typedef void (mulfunc_t)(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn);</div><div class='add'>+</div><div class='add'>+static mulfunc_t bary_mul_toom3_start;</div><div class='add'>+static mulfunc_t bary_mul_karatsuba_start;</div><div class='add'>+static BDIGIT bigdivrem_single(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT y);</div><div class='add'>+static void bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn);</div><div class='add'>+</div><div class='add'>+static VALUE bigmul0(VALUE x, VALUE y);</div><div class='add'>+static void bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn);</div><div class='add'>+static VALUE bignew_1(VALUE klass, size_t len, int sign);</div><div class='add'>+static inline VALUE bigtrunc(VALUE x);</div><div class='add'>+</div><div class='add'>+static VALUE bigsq(VALUE x);</div><div class='add'>+static void bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp);</div><div class='add'>+static inline VALUE power_cache_get_power(int base, int power_level, size_t *numdigits_ret);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &lt;= SIZEOF_INT</div><div class='add'>+static int nlz(BDIGIT x) { return nlz_int((unsigned int)x) - (SIZEOF_INT-SIZEOF_BDIGIT) * CHAR_BIT; }</div><div class='add'>+#elif SIZEOF_BDIGIT &lt;= SIZEOF_LONG</div><div class='add'>+static int nlz(BDIGIT x) { return nlz_long((unsigned long)x) - (SIZEOF_LONG-SIZEOF_BDIGIT) * CHAR_BIT; }</div><div class='add'>+#elif SIZEOF_BDIGIT &lt;= SIZEOF_LONG_LONG</div><div class='add'>+static int nlz(BDIGIT x) { return nlz_long_long((unsigned LONG_LONG)x) - (SIZEOF_LONG_LONG-SIZEOF_BDIGIT) * CHAR_BIT; }</div><div class='add'>+#elif SIZEOF_BDIGIT &lt;= SIZEOF_INT128_T</div><div class='add'>+static int nlz(BDIGIT x) { return nlz_int128((uint128_t)x) - (SIZEOF_INT128_T-SIZEOF_BDIGIT) * CHAR_BIT; }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define U16(a) ((uint16_t)(a))</div><div class='add'>+#define U32(a) ((uint32_t)(a))</div><div class='add'>+#ifdef HAVE_UINT64_T</div><div class='add'>+#define U64(a,b) (((uint64_t)(a) &lt;&lt; 32) | (b))</div><div class='add'>+#endif</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+#define U128(a,b,c,d) (((uint128_t)U64(a,b) &lt;&lt; 64) | U64(c,d))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* The following script, maxpow.rb, generates the tables follows.</div><div class='add'>+</div><div class='add'>+def big(n, bits)</div><div class='add'>+  ns = []</div><div class='add'>+  ((bits+31)/32).times {</div><div class='add'>+    ns &lt;&lt; sprintf("0x%08x", n &amp; 0xffff_ffff)</div><div class='add'>+    n &gt;&gt;= 32</div><div class='add'>+  }</div><div class='add'>+  "U#{bits}(" + ns.reverse.join(",") + ")"</div><div class='add'>+end</div><div class='add'>+def values(ary, width, indent)</div><div class='add'>+  lines = [""]</div><div class='add'>+  ary.each {|e|</div><div class='add'>+    lines &lt;&lt; "" if !ary.last.empty? &amp;&amp; width &lt; (lines.last + e + ", ").length</div><div class='add'>+    lines.last &lt;&lt; e + ", "</div><div class='add'>+  }</div><div class='add'>+  lines.map {|line| " " * indent + line.chomp(" ") + "\n" }.join</div><div class='add'>+end</div><div class='add'>+[16,32,64,128].each {|bits|</div><div class='add'>+  max = 2**bits-1</div><div class='add'>+  exps = []</div><div class='add'>+  nums = []</div><div class='add'>+  2.upto(36) {|base|</div><div class='add'>+    exp = 0</div><div class='add'>+    n = 1</div><div class='add'>+    while n * base &lt;= max</div><div class='add'>+      exp += 1</div><div class='add'>+      n *= base</div><div class='add'>+    end</div><div class='add'>+    exps &lt;&lt; exp.to_s</div><div class='add'>+    nums &lt;&lt; big(n, bits)</div><div class='add'>+  }</div><div class='add'>+  puts "#ifdef HAVE_UINT#{bits}_T"</div><div class='add'>+  puts "static const int maxpow#{bits}_exp[35] = {"</div><div class='add'>+  print values(exps, 70, 4)</div><div class='add'>+  puts "};"</div><div class='add'>+  puts "static const uint#{bits}_t maxpow#{bits}_num[35] = {"</div><div class='add'>+  print values(nums, 70, 4)</div><div class='add'>+  puts "};"</div><div class='add'>+  puts "#endif"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT_DBL == 2</div><div class='add'>+static const int maxpow16_exp[35] = {</div><div class='add'>+    15, 10, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+};</div><div class='add'>+static const uint16_t maxpow16_num[35] = {</div><div class='add'>+    U16(0x00008000), U16(0x0000e6a9), U16(0x00004000), U16(0x00003d09),</div><div class='add'>+    U16(0x0000b640), U16(0x000041a7), U16(0x00008000), U16(0x0000e6a9),</div><div class='add'>+    U16(0x00002710), U16(0x00003931), U16(0x00005100), U16(0x00006f91),</div><div class='add'>+    U16(0x00009610), U16(0x0000c5c1), U16(0x00001000), U16(0x00001331),</div><div class='add'>+    U16(0x000016c8), U16(0x00001acb), U16(0x00001f40), U16(0x0000242d),</div><div class='add'>+    U16(0x00002998), U16(0x00002f87), U16(0x00003600), U16(0x00003d09),</div><div class='add'>+    U16(0x000044a8), U16(0x00004ce3), U16(0x000055c0), U16(0x00005f45),</div><div class='add'>+    U16(0x00006978), U16(0x0000745f), U16(0x00008000), U16(0x00008c61),</div><div class='add'>+    U16(0x00009988), U16(0x0000a77b), U16(0x0000b640),</div><div class='add'>+};</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 4</div><div class='add'>+static const int maxpow32_exp[35] = {</div><div class='add'>+    31, 20, 15, 13, 12, 11, 10, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7,</div><div class='add'>+    7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,</div><div class='add'>+};</div><div class='add'>+static const uint32_t maxpow32_num[35] = {</div><div class='add'>+    U32(0x80000000), U32(0xcfd41b91), U32(0x40000000), U32(0x48c27395),</div><div class='add'>+    U32(0x81bf1000), U32(0x75db9c97), U32(0x40000000), U32(0xcfd41b91),</div><div class='add'>+    U32(0x3b9aca00), U32(0x8c8b6d2b), U32(0x19a10000), U32(0x309f1021),</div><div class='add'>+    U32(0x57f6c100), U32(0x98c29b81), U32(0x10000000), U32(0x18754571),</div><div class='add'>+    U32(0x247dbc80), U32(0x3547667b), U32(0x4c4b4000), U32(0x6b5a6e1d),</div><div class='add'>+    U32(0x94ace180), U32(0xcaf18367), U32(0x0b640000), U32(0x0e8d4a51),</div><div class='add'>+    U32(0x1269ae40), U32(0x17179149), U32(0x1cb91000), U32(0x23744899),</div><div class='add'>+    U32(0x2b73a840), U32(0x34e63b41), U32(0x40000000), U32(0x4cfa3cc1),</div><div class='add'>+    U32(0x5c13d840), U32(0x6d91b519), U32(0x81bf1000),</div><div class='add'>+};</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 8 &amp;&amp; defined HAVE_UINT64_T</div><div class='add'>+static const int maxpow64_exp[35] = {</div><div class='add'>+    63, 40, 31, 27, 24, 22, 21, 20, 19, 18, 17, 17, 16, 16, 15, 15, 15,</div><div class='add'>+    15, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12,</div><div class='add'>+    12,</div><div class='add'>+};</div><div class='add'>+static const uint64_t maxpow64_num[35] = {</div><div class='add'>+    U64(0x80000000,0x00000000), U64(0xa8b8b452,0x291fe821),</div><div class='add'>+    U64(0x40000000,0x00000000), U64(0x6765c793,0xfa10079d),</div><div class='add'>+    U64(0x41c21cb8,0xe1000000), U64(0x36427987,0x50226111),</div><div class='add'>+    U64(0x80000000,0x00000000), U64(0xa8b8b452,0x291fe821),</div><div class='add'>+    U64(0x8ac72304,0x89e80000), U64(0x4d28cb56,0xc33fa539),</div><div class='add'>+    U64(0x1eca170c,0x00000000), U64(0x780c7372,0x621bd74d),</div><div class='add'>+    U64(0x1e39a505,0x7d810000), U64(0x5b27ac99,0x3df97701),</div><div class='add'>+    U64(0x10000000,0x00000000), U64(0x27b95e99,0x7e21d9f1),</div><div class='add'>+    U64(0x5da0e1e5,0x3c5c8000), U64(0xd2ae3299,0xc1c4aedb),</div><div class='add'>+    U64(0x16bcc41e,0x90000000), U64(0x2d04b7fd,0xd9c0ef49),</div><div class='add'>+    U64(0x5658597b,0xcaa24000), U64(0xa0e20737,0x37609371),</div><div class='add'>+    U64(0x0c29e980,0x00000000), U64(0x14adf4b7,0x320334b9),</div><div class='add'>+    U64(0x226ed364,0x78bfa000), U64(0x383d9170,0xb85ff80b),</div><div class='add'>+    U64(0x5a3c23e3,0x9c000000), U64(0x8e651373,0x88122bcd),</div><div class='add'>+    U64(0xdd41bb36,0xd259e000), U64(0x0aee5720,0xee830681),</div><div class='add'>+    U64(0x10000000,0x00000000), U64(0x172588ad,0x4f5f0981),</div><div class='add'>+    U64(0x211e44f7,0xd02c1000), U64(0x2ee56725,0xf06e5c71),</div><div class='add'>+    U64(0x41c21cb8,0xe1000000),</div><div class='add'>+};</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 16 &amp;&amp; defined HAVE_UINT128_T</div><div class='add'>+static const int maxpow128_exp[35] = {</div><div class='add'>+    127, 80, 63, 55, 49, 45, 42, 40, 38, 37, 35, 34, 33, 32, 31, 31, 30,</div><div class='add'>+    30, 29, 29, 28, 28, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 24,</div><div class='add'>+    24,</div><div class='add'>+};</div><div class='add'>+static const uint128_t maxpow128_num[35] = {</div><div class='add'>+    U128(0x80000000,0x00000000,0x00000000,0x00000000),</div><div class='add'>+    U128(0x6f32f1ef,0x8b18a2bc,0x3cea5978,0x9c79d441),</div><div class='add'>+    U128(0x40000000,0x00000000,0x00000000,0x00000000),</div><div class='add'>+    U128(0xd0cf4b50,0xcfe20765,0xfff4b4e3,0xf741cf6d),</div><div class='add'>+    U128(0x6558e2a0,0x921fe069,0x42860000,0x00000000),</div><div class='add'>+    U128(0x5080c7b7,0xd0e31ba7,0x5911a67d,0xdd3d35e7),</div><div class='add'>+    U128(0x40000000,0x00000000,0x00000000,0x00000000),</div><div class='add'>+    U128(0x6f32f1ef,0x8b18a2bc,0x3cea5978,0x9c79d441),</div><div class='add'>+    U128(0x4b3b4ca8,0x5a86c47a,0x098a2240,0x00000000),</div><div class='add'>+    U128(0xffd1390a,0x0adc2fb8,0xdabbb817,0x4d95c99b),</div><div class='add'>+    U128(0x2c6fdb36,0x4c25e6c0,0x00000000,0x00000000),</div><div class='add'>+    U128(0x384bacd6,0x42c343b4,0xe90c4272,0x13506d29),</div><div class='add'>+    U128(0x31f5db32,0xa34aced6,0x0bf13a0e,0x00000000),</div><div class='add'>+    U128(0x20753ada,0xfd1e839f,0x53686d01,0x3143ee01),</div><div class='add'>+    U128(0x10000000,0x00000000,0x00000000,0x00000000),</div><div class='add'>+    U128(0x68ca11d6,0xb4f6d1d1,0xfaa82667,0x8073c2f1),</div><div class='add'>+    U128(0x223e493b,0xb3bb69ff,0xa4b87d6c,0x40000000),</div><div class='add'>+    U128(0xad62418d,0x14ea8247,0x01c4b488,0x6cc66f59),</div><div class='add'>+    U128(0x2863c1f5,0xcdae42f9,0x54000000,0x00000000),</div><div class='add'>+    U128(0xa63fd833,0xb9386b07,0x36039e82,0xbe651b25),</div><div class='add'>+    U128(0x1d1f7a9c,0xd087a14d,0x28cdf3d5,0x10000000),</div><div class='add'>+    U128(0x651b5095,0xc2ea8fc1,0xb30e2c57,0x77aaf7e1),</div><div class='add'>+    U128(0x0ddef20e,0xff760000,0x00000000,0x00000000),</div><div class='add'>+    U128(0x29c30f10,0x29939b14,0x6664242d,0x97d9f649),</div><div class='add'>+    U128(0x786a435a,0xe9558b0e,0x6aaf6d63,0xa8000000),</div><div class='add'>+    U128(0x0c5afe6f,0xf302bcbf,0x94fd9829,0xd87f5079),</div><div class='add'>+    U128(0x1fce575c,0xe1692706,0x07100000,0x00000000),</div><div class='add'>+    U128(0x4f34497c,0x8597e144,0x36e91802,0x00528229),</div><div class='add'>+    U128(0xbf3a8e1d,0x41ef2170,0x7802130d,0x84000000),</div><div class='add'>+    U128(0x0e7819e1,0x7f1eb0fb,0x6ee4fb89,0x01d9531f),</div><div class='add'>+    U128(0x20000000,0x00000000,0x00000000,0x00000000),</div><div class='add'>+    U128(0x4510460d,0xd9e879c0,0x14a82375,0x2f22b321),</div><div class='add'>+    U128(0x91abce3c,0x4b4117ad,0xe76d35db,0x22000000),</div><div class='add'>+    U128(0x08973ea3,0x55d75bc2,0x2e42c391,0x727d69e1),</div><div class='add'>+    U128(0x10e425c5,0x6daffabc,0x35c10000,0x00000000),</div><div class='add'>+};</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static BDIGIT_DBL</div><div class='add'>+maxpow_in_bdigit_dbl(int base, int *exp_ret)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL maxpow;</div><div class='add'>+    int exponent;</div><div class='add'>+</div><div class='add'>+    assert(2 &lt;= base &amp;&amp; base &lt;= 36);</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+#if SIZEOF_BDIGIT_DBL == 2</div><div class='add'>+        maxpow = maxpow16_num[base-2];</div><div class='add'>+        exponent = maxpow16_exp[base-2];</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 4</div><div class='add'>+        maxpow = maxpow32_num[base-2];</div><div class='add'>+        exponent = maxpow32_exp[base-2];</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 8 &amp;&amp; defined HAVE_UINT64_T</div><div class='add'>+        maxpow = maxpow64_num[base-2];</div><div class='add'>+        exponent = maxpow64_exp[base-2];</div><div class='add'>+#elif SIZEOF_BDIGIT_DBL == 16 &amp;&amp; defined HAVE_UINT128_T</div><div class='add'>+        maxpow = maxpow128_num[base-2];</div><div class='add'>+        exponent = maxpow128_exp[base-2];</div><div class='add'>+#else</div><div class='add'>+        maxpow = base;</div><div class='add'>+        exponent = 1;</div><div class='add'>+        while (maxpow &lt;= BDIGIT_DBL_MAX / base) {</div><div class='add'>+            maxpow *= base;</div><div class='add'>+            exponent++;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *exp_ret = exponent;</div><div class='add'>+    return maxpow;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline BDIGIT_DBL</div><div class='add'>+bary2bdigitdbl(const BDIGIT *ds, size_t n)</div><div class='add'>+{</div><div class='add'>+    assert(n &lt;= 2);</div><div class='add'>+</div><div class='add'>+    if (n == 2)</div><div class='add'>+        return ds[0] | BIGUP(ds[1]);</div><div class='add'>+    if (n == 1)</div><div class='add'>+        return ds[0];</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+bdigitdbl2bary(BDIGIT *ds, size_t n, BDIGIT_DBL num)</div><div class='add'>+{</div><div class='add'>+    assert(n == 2);</div><div class='add'>+</div><div class='add'>+    ds[0] = BIGLO(num);</div><div class='add'>+    ds[1] = (BDIGIT)BIGDN(num);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-static int bigzero_p(VALUE);</div><div class='ctx'> static int</div><div class='del'>-bigzero_p(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+bary_cmp(const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='ctx'> {</div><div class='del'>-    long i;</div><div class='del'>-    for (i = 0; i &lt; RBIGNUM(x)-&gt;len; ++i) {</div><div class='del'>-	if (BDIGITS(x)[i]) return 0;</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+    BARY_TRUNC(yds, yn);</div><div class='add'>+</div><div class='add'>+    if (xn &lt; yn)</div><div class='add'>+        return -1;</div><div class='add'>+    if (xn &gt; yn)</div><div class='add'>+        return 1;</div><div class='add'>+</div><div class='add'>+    while (xn-- &amp;&amp; xds[xn] == yds[xn])</div><div class='add'>+        ;</div><div class='add'>+    if (xn == (size_t)-1)</div><div class='add'>+        return 0;</div><div class='add'>+    return xds[xn] &lt; yds[xn] ? -1 : 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static BDIGIT</div><div class='add'>+bary_small_lshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    BDIGIT_DBL num = 0;</div><div class='add'>+    assert(0 &lt;= shift &amp;&amp; shift &lt; BITSPERDIG);</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;n; i++) {</div><div class='add'>+	num = num | (BDIGIT_DBL)*xds++ &lt;&lt; shift;</div><div class='add'>+	*zds++ = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='add'>+    return BIGLO(num);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_small_rshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift, BDIGIT higher_bdigit)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL num = 0;</div><div class='add'>+</div><div class='add'>+    assert(0 &lt;= shift &amp;&amp; shift &lt; BITSPERDIG);</div><div class='add'>+</div><div class='add'>+    num = BIGUP(higher_bdigit);</div><div class='add'>+    while (n--) {</div><div class='add'>+	BDIGIT x = xds[n];</div><div class='add'>+	num = (num | x) &gt;&gt; shift;</div><div class='add'>+	zds[n] = BIGLO(num);</div><div class='add'>+	num = BIGUP(x);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_zero_p(const BDIGIT *xds, size_t xn)</div><div class='add'>+{</div><div class='add'>+    if (xn == 0)</div><div class='add'>+        return 1;</div><div class='add'>+    do {</div><div class='add'>+	if (xds[--xn]) return 0;</div><div class='add'>+    } while (xn);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-bignew_1(klass, len, sign)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    long len;</div><div class='add'>+static void</div><div class='add'>+bary_neg(BDIGIT *ds, size_t n)</div><div class='add'>+{</div><div class='add'>+    while (n--)</div><div class='add'>+        ds[n] = BIGLO(~ds[n]);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_2comp(BDIGIT *ds, size_t n)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    i = 0;</div><div class='add'>+    for (i = 0; i &lt; n; i++) {</div><div class='add'>+        if (ds[i] != 0) {</div><div class='add'>+            goto non_zero;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+</div><div class='add'>+  non_zero:</div><div class='add'>+    ds[i] = BIGLO(~ds[i] + 1);</div><div class='add'>+    i++;</div><div class='add'>+    for (; i &lt; n; i++) {</div><div class='add'>+        ds[i] = BIGLO(~ds[i]);</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_swap(BDIGIT *ds, size_t num_bdigits)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *p1 = ds;</div><div class='add'>+    BDIGIT *p2 = ds + num_bdigits - 1;</div><div class='add'>+    for (; p1 &lt; p2; p1++, p2--) {</div><div class='add'>+        BDIGIT tmp = *p1;</div><div class='add'>+        *p1 = *p2;</div><div class='add'>+        *p2 = tmp;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define INTEGER_PACK_WORDORDER_MASK \</div><div class='add'>+    (INTEGER_PACK_MSWORD_FIRST | \</div><div class='add'>+     INTEGER_PACK_LSWORD_FIRST)</div><div class='add'>+#define INTEGER_PACK_BYTEORDER_MASK \</div><div class='add'>+    (INTEGER_PACK_MSBYTE_FIRST | \</div><div class='add'>+     INTEGER_PACK_LSBYTE_FIRST | \</div><div class='add'>+     INTEGER_PACK_NATIVE_BYTE_ORDER)</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+validate_integer_pack_format(size_t numwords, size_t wordsize, size_t nails, int flags, int supported_flags)</div><div class='add'>+{</div><div class='add'>+    int wordorder_bits = flags &amp; INTEGER_PACK_WORDORDER_MASK;</div><div class='add'>+    int byteorder_bits = flags &amp; INTEGER_PACK_BYTEORDER_MASK;</div><div class='add'>+</div><div class='add'>+    if (flags &amp; ~supported_flags) {</div><div class='add'>+        rb_raise(rb_eArgError, "unsupported flags specified");</div><div class='add'>+    }</div><div class='add'>+    if (wordorder_bits == 0) {</div><div class='add'>+        if (1 &lt; numwords)</div><div class='add'>+            rb_raise(rb_eArgError, "word order not specified");</div><div class='add'>+    }</div><div class='add'>+    else if (wordorder_bits != INTEGER_PACK_MSWORD_FIRST &amp;&amp;</div><div class='add'>+        wordorder_bits != INTEGER_PACK_LSWORD_FIRST)</div><div class='add'>+        rb_raise(rb_eArgError, "unexpected word order");</div><div class='add'>+    if (byteorder_bits == 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "byte order not specified");</div><div class='add'>+    }</div><div class='add'>+    else if (byteorder_bits != INTEGER_PACK_MSBYTE_FIRST &amp;&amp;</div><div class='add'>+        byteorder_bits != INTEGER_PACK_LSBYTE_FIRST &amp;&amp;</div><div class='add'>+        byteorder_bits != INTEGER_PACK_NATIVE_BYTE_ORDER)</div><div class='add'>+        rb_raise(rb_eArgError, "unexpected byte order");</div><div class='add'>+    if (wordsize == 0)</div><div class='add'>+        rb_raise(rb_eArgError, "invalid wordsize: %"PRI_SIZE_PREFIX"u", wordsize);</div><div class='add'>+    if (SSIZE_MAX &lt; wordsize)</div><div class='add'>+        rb_raise(rb_eArgError, "too big wordsize: %"PRI_SIZE_PREFIX"u", wordsize);</div><div class='add'>+    if (wordsize &lt;= nails / CHAR_BIT)</div><div class='add'>+        rb_raise(rb_eArgError, "too big nails: %"PRI_SIZE_PREFIX"u", nails);</div><div class='add'>+    if (SIZE_MAX / wordsize &lt; numwords)</div><div class='add'>+        rb_raise(rb_eArgError, "too big numwords * wordsize: %"PRI_SIZE_PREFIX"u * %"PRI_SIZE_PREFIX"u", numwords, wordsize);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+integer_pack_loop_setup(</div><div class='add'>+    size_t numwords, size_t wordsize, size_t nails, int flags,</div><div class='add'>+    size_t *word_num_fullbytes_ret,</div><div class='add'>+    int *word_num_partialbits_ret,</div><div class='add'>+    size_t *word_start_ret,</div><div class='add'>+    ssize_t *word_step_ret,</div><div class='add'>+    size_t *word_last_ret,</div><div class='add'>+    size_t *byte_start_ret,</div><div class='add'>+    int *byte_step_ret)</div><div class='add'>+{</div><div class='add'>+    int wordorder_bits = flags &amp; INTEGER_PACK_WORDORDER_MASK;</div><div class='add'>+    int byteorder_bits = flags &amp; INTEGER_PACK_BYTEORDER_MASK;</div><div class='add'>+    size_t word_num_fullbytes;</div><div class='add'>+    int word_num_partialbits;</div><div class='add'>+    size_t word_start;</div><div class='add'>+    ssize_t word_step;</div><div class='add'>+    size_t word_last;</div><div class='add'>+    size_t byte_start;</div><div class='add'>+    int byte_step;</div><div class='add'>+</div><div class='add'>+    word_num_partialbits = CHAR_BIT - (int)(nails % CHAR_BIT);</div><div class='add'>+    if (word_num_partialbits == CHAR_BIT)</div><div class='add'>+        word_num_partialbits = 0;</div><div class='add'>+    word_num_fullbytes = wordsize - (nails / CHAR_BIT);</div><div class='add'>+    if (word_num_partialbits != 0) {</div><div class='add'>+        word_num_fullbytes--;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (wordorder_bits == INTEGER_PACK_MSWORD_FIRST) {</div><div class='add'>+        word_start = wordsize*(numwords-1);</div><div class='add'>+        word_step = -(ssize_t)wordsize;</div><div class='add'>+        word_last = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        word_start = 0;</div><div class='add'>+        word_step = wordsize;</div><div class='add'>+        word_last = wordsize*(numwords-1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (byteorder_bits == INTEGER_PACK_NATIVE_BYTE_ORDER) {</div><div class='add'>+#ifdef WORDS_BIGENDIAN</div><div class='add'>+        byteorder_bits = INTEGER_PACK_MSBYTE_FIRST;</div><div class='add'>+#else</div><div class='add'>+        byteorder_bits = INTEGER_PACK_LSBYTE_FIRST;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    if (byteorder_bits == INTEGER_PACK_MSBYTE_FIRST) {</div><div class='add'>+        byte_start = wordsize-1;</div><div class='add'>+        byte_step = -1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        byte_start = 0;</div><div class='add'>+        byte_step = 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *word_num_partialbits_ret = word_num_partialbits;</div><div class='add'>+    *word_num_fullbytes_ret = word_num_fullbytes;</div><div class='add'>+    *word_start_ret = word_start;</div><div class='add'>+    *word_step_ret = word_step;</div><div class='add'>+    *word_last_ret = word_last;</div><div class='add'>+    *byte_start_ret = byte_start;</div><div class='add'>+    *byte_step_ret = byte_step;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+integer_pack_fill_dd(BDIGIT **dpp, BDIGIT **dep, BDIGIT_DBL *ddp, int *numbits_in_dd_p)</div><div class='add'>+{</div><div class='add'>+    if (*dpp &lt; *dep &amp;&amp; BITSPERDIG &lt;= (int)sizeof(*ddp) * CHAR_BIT - *numbits_in_dd_p) {</div><div class='add'>+        *ddp |= (BDIGIT_DBL)(*(*dpp)++) &lt;&lt; *numbits_in_dd_p;</div><div class='add'>+        *numbits_in_dd_p += BITSPERDIG;</div><div class='add'>+    }</div><div class='add'>+    else if (*dpp == *dep) {</div><div class='add'>+        /* higher bits are infinity zeros */</div><div class='add'>+        *numbits_in_dd_p = (int)sizeof(*ddp) * CHAR_BIT;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline BDIGIT_DBL</div><div class='add'>+integer_pack_take_lowbits(int n, BDIGIT_DBL *ddp, int *numbits_in_dd_p)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL ret;</div><div class='add'>+    ret = (*ddp) &amp; (((BDIGIT_DBL)1 &lt;&lt; n) - 1);</div><div class='add'>+    *ddp &gt;&gt;= n;</div><div class='add'>+    *numbits_in_dd_p -= n;</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if !defined(WORDS_BIGENDIAN)</div><div class='add'>+static int</div><div class='add'>+bytes_2comp(unsigned char *buf, size_t len)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    for (i = 0; i &lt; len; i++)</div><div class='add'>+        buf[i] = ~buf[i];</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+        buf[i]++;</div><div class='add'>+        if (buf[i] != 0)</div><div class='add'>+            return 0;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_pack(int sign, BDIGIT *ds, size_t num_bdigits, void *words, size_t numwords, size_t wordsize, size_t nails, int flags)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *dp, *de;</div><div class='add'>+    unsigned char *buf, *bufend;</div><div class='add'>+</div><div class='add'>+    dp = ds;</div><div class='add'>+    de = ds + num_bdigits;</div><div class='add'>+</div><div class='add'>+    validate_integer_pack_format(numwords, wordsize, nails, flags,</div><div class='add'>+            INTEGER_PACK_MSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_MSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_LSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_NATIVE_BYTE_ORDER|</div><div class='add'>+            INTEGER_PACK_2COMP|</div><div class='add'>+            INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);</div><div class='add'>+</div><div class='add'>+    while (dp &lt; de &amp;&amp; de[-1] == 0)</div><div class='add'>+        de--;</div><div class='add'>+    if (dp == de) {</div><div class='add'>+        sign = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!(flags &amp; INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION)) {</div><div class='add'>+        if (sign == 0) {</div><div class='add'>+            MEMZERO(words, unsigned char, numwords * wordsize);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        if (nails == 0 &amp;&amp; numwords == 1) {</div><div class='add'>+            int need_swap = wordsize != 1 &amp;&amp;</div><div class='add'>+                (flags &amp; INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_NATIVE_BYTE_ORDER &amp;&amp;</div><div class='add'>+                ((flags &amp; INTEGER_PACK_MSBYTE_FIRST) ? !HOST_BIGENDIAN_P : HOST_BIGENDIAN_P);</div><div class='add'>+            if (0 &lt; sign || !(flags &amp; INTEGER_PACK_2COMP)) {</div><div class='add'>+                BDIGIT d;</div><div class='add'>+                if (wordsize == 1) {</div><div class='add'>+                    *((unsigned char *)words) = (unsigned char)(d = dp[0]);</div><div class='add'>+                    return ((1 &lt; de - dp || CLEAR_LOWBITS(d, 8) != 0) ? 2 : 1) * sign;</div><div class='add'>+                }</div><div class='add'>+#if defined(HAVE_UINT16_T) &amp;&amp; 2 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 2 &amp;&amp; (uintptr_t)words % ALIGNOF(uint16_t) == 0) {</div><div class='add'>+                    uint16_t u = (uint16_t)(d = dp[0]);</div><div class='add'>+                    if (need_swap) u = swap16(u);</div><div class='add'>+                    *((uint16_t *)words) = u;</div><div class='add'>+                    return ((1 &lt; de - dp || CLEAR_LOWBITS(d, 16) != 0) ? 2 : 1) * sign;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT32_T) &amp;&amp; 4 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 4 &amp;&amp; (uintptr_t)words % ALIGNOF(uint32_t) == 0) {</div><div class='add'>+                    uint32_t u = (uint32_t)(d = dp[0]);</div><div class='add'>+                    if (need_swap) u = swap32(u);</div><div class='add'>+                    *((uint32_t *)words) = u;</div><div class='add'>+                    return ((1 &lt; de - dp || CLEAR_LOWBITS(d, 32) != 0) ? 2 : 1) * sign;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT64_T) &amp;&amp; 8 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 8 &amp;&amp; (uintptr_t)words % ALIGNOF(uint64_t) == 0) {</div><div class='add'>+                    uint64_t u = (uint64_t)(d = dp[0]);</div><div class='add'>+                    if (need_swap) u = swap64(u);</div><div class='add'>+                    *((uint64_t *)words) = u;</div><div class='add'>+                    return ((1 &lt; de - dp || CLEAR_LOWBITS(d, 64) != 0) ? 2 : 1) * sign;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+            else { /* sign &lt; 0 &amp;&amp; (flags &amp; INTEGER_PACK_2COMP) */</div><div class='add'>+                BDIGIT_DBL_SIGNED d;</div><div class='add'>+                if (wordsize == 1) {</div><div class='add'>+                    *((unsigned char *)words) = (unsigned char)(d = -(BDIGIT_DBL_SIGNED)dp[0]);</div><div class='add'>+                    return (1 &lt; de - dp || FILL_LOWBITS(d, 8) != -1) ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+#if defined(HAVE_UINT16_T) &amp;&amp; 2 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 2 &amp;&amp; (uintptr_t)words % ALIGNOF(uint16_t) == 0) {</div><div class='add'>+                    uint16_t u = (uint16_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);</div><div class='add'>+                    if (need_swap) u = swap16(u);</div><div class='add'>+                    *((uint16_t *)words) = u;</div><div class='add'>+                    return (wordsize == SIZEOF_BDIGIT &amp;&amp; de - dp == 2 &amp;&amp; dp[1] == 1 &amp;&amp; dp[0] == 0) ? -1 :</div><div class='add'>+                        (1 &lt; de - dp || FILL_LOWBITS(d, 16) != -1) ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT32_T) &amp;&amp; 4 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 4 &amp;&amp; (uintptr_t)words % ALIGNOF(uint32_t) == 0) {</div><div class='add'>+                    uint32_t u = (uint32_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);</div><div class='add'>+                    if (need_swap) u = swap32(u);</div><div class='add'>+                    *((uint32_t *)words) = u;</div><div class='add'>+                    return (wordsize == SIZEOF_BDIGIT &amp;&amp; de - dp == 2 &amp;&amp; dp[1] == 1 &amp;&amp; dp[0] == 0) ? -1 :</div><div class='add'>+                        (1 &lt; de - dp || FILL_LOWBITS(d, 32) != -1) ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT64_T) &amp;&amp; 8 &lt;= SIZEOF_BDIGIT</div><div class='add'>+                if (wordsize == 8 &amp;&amp; (uintptr_t)words % ALIGNOF(uint64_t) == 0) {</div><div class='add'>+                    uint64_t u = (uint64_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);</div><div class='add'>+                    if (need_swap) u = swap64(u);</div><div class='add'>+                    *((uint64_t *)words) = u;</div><div class='add'>+                    return (wordsize == SIZEOF_BDIGIT &amp;&amp; de - dp == 2 &amp;&amp; dp[1] == 1 &amp;&amp; dp[0] == 0) ? -1 :</div><div class='add'>+                        (1 &lt; de - dp || FILL_LOWBITS(d, 64) != -1) ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#if !defined(WORDS_BIGENDIAN)</div><div class='add'>+        if (nails == 0 &amp;&amp; SIZEOF_BDIGIT == sizeof(BDIGIT) &amp;&amp;</div><div class='add'>+            (flags &amp; INTEGER_PACK_WORDORDER_MASK) == INTEGER_PACK_LSWORD_FIRST &amp;&amp;</div><div class='add'>+            (flags &amp; INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_MSBYTE_FIRST) {</div><div class='add'>+            size_t src_size = (de - dp) * SIZEOF_BDIGIT;</div><div class='add'>+            size_t dst_size = numwords * wordsize;</div><div class='add'>+            int overflow = 0;</div><div class='add'>+            while (0 &lt; src_size &amp;&amp; ((unsigned char *)ds)[src_size-1] == 0)</div><div class='add'>+                src_size--;</div><div class='add'>+            if (src_size &lt;= dst_size) {</div><div class='add'>+                MEMCPY(words, dp, char, src_size);</div><div class='add'>+                MEMZERO((char*)words + src_size, char, dst_size - src_size);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                MEMCPY(words, dp, char, dst_size);</div><div class='add'>+                overflow = 1;</div><div class='add'>+            }</div><div class='add'>+            if (sign &lt; 0 &amp;&amp; (flags &amp; INTEGER_PACK_2COMP)) {</div><div class='add'>+                int zero_p = bytes_2comp(words, dst_size);</div><div class='add'>+                if (zero_p &amp;&amp; overflow) {</div><div class='add'>+                    unsigned char *p = (unsigned char *)dp;</div><div class='add'>+                    if (dst_size == src_size-1 &amp;&amp;</div><div class='add'>+                        p[dst_size] == 1) {</div><div class='add'>+                        overflow = 0;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (overflow)</div><div class='add'>+                sign *= 2;</div><div class='add'>+            return sign;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        if (nails == 0 &amp;&amp; SIZEOF_BDIGIT == sizeof(BDIGIT) &amp;&amp;</div><div class='add'>+            wordsize % SIZEOF_BDIGIT == 0 &amp;&amp; (uintptr_t)words % ALIGNOF(BDIGIT) == 0) {</div><div class='add'>+            size_t bdigits_per_word = wordsize / SIZEOF_BDIGIT;</div><div class='add'>+            size_t src_num_bdigits = de - dp;</div><div class='add'>+            size_t dst_num_bdigits = numwords * bdigits_per_word;</div><div class='add'>+            int overflow = 0;</div><div class='add'>+            int mswordfirst_p = (flags &amp; INTEGER_PACK_MSWORD_FIRST) != 0;</div><div class='add'>+            int msbytefirst_p = (flags &amp; INTEGER_PACK_NATIVE_BYTE_ORDER) ? HOST_BIGENDIAN_P :</div><div class='add'>+                (flags &amp; INTEGER_PACK_MSBYTE_FIRST) != 0;</div><div class='add'>+            if (src_num_bdigits &lt;= dst_num_bdigits) {</div><div class='add'>+                MEMCPY(words, dp, BDIGIT, src_num_bdigits);</div><div class='add'>+                BDIGITS_ZERO((BDIGIT*)words + src_num_bdigits, dst_num_bdigits - src_num_bdigits);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                MEMCPY(words, dp, BDIGIT, dst_num_bdigits);</div><div class='add'>+                overflow = 1;</div><div class='add'>+            }</div><div class='add'>+            if (sign &lt; 0 &amp;&amp; (flags &amp; INTEGER_PACK_2COMP)) {</div><div class='add'>+                int zero_p = bary_2comp(words, dst_num_bdigits);</div><div class='add'>+                if (zero_p &amp;&amp; overflow &amp;&amp;</div><div class='add'>+                    dst_num_bdigits == src_num_bdigits-1 &amp;&amp;</div><div class='add'>+                    dp[dst_num_bdigits] == 1)</div><div class='add'>+                    overflow = 0;</div><div class='add'>+            }</div><div class='add'>+            if (msbytefirst_p != HOST_BIGENDIAN_P) {</div><div class='add'>+                size_t i;</div><div class='add'>+                for (i = 0; i &lt; dst_num_bdigits; i++) {</div><div class='add'>+                    BDIGIT d = ((BDIGIT*)words)[i];</div><div class='add'>+                    ((BDIGIT*)words)[i] = swap_bdigit(d);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (mswordfirst_p ? !msbytefirst_p : msbytefirst_p) {</div><div class='add'>+                size_t i;</div><div class='add'>+                BDIGIT *p = words;</div><div class='add'>+                for (i = 0; i &lt; numwords; i++) {</div><div class='add'>+                    bary_swap(p, bdigits_per_word);</div><div class='add'>+                    p += bdigits_per_word;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (mswordfirst_p) {</div><div class='add'>+                bary_swap(words, dst_num_bdigits);</div><div class='add'>+            }</div><div class='add'>+            if (overflow)</div><div class='add'>+                sign *= 2;</div><div class='add'>+            return sign;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buf = words;</div><div class='add'>+    bufend = buf + numwords * wordsize;</div><div class='add'>+</div><div class='add'>+    if (buf == bufend) {</div><div class='add'>+        /* overflow if non-zero*/</div><div class='add'>+        if (!(flags &amp; INTEGER_PACK_2COMP) || 0 &lt;= sign)</div><div class='add'>+            sign *= 2;</div><div class='add'>+        else {</div><div class='add'>+            if (de - dp == 1 &amp;&amp; dp[0] == 1)</div><div class='add'>+                sign = -1; /* val == -1 == -2**(numwords*(wordsize*CHAR_BIT-nails)) */</div><div class='add'>+            else</div><div class='add'>+                sign = -2; /* val &lt; -1 == -2**(numwords*(wordsize*CHAR_BIT-nails)) */</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (dp == de) {</div><div class='add'>+        memset(buf, '\0', bufend - buf);</div><div class='add'>+    }</div><div class='add'>+    else if (dp &lt; de &amp;&amp; buf &lt; bufend) {</div><div class='add'>+        int word_num_partialbits;</div><div class='add'>+        size_t word_num_fullbytes;</div><div class='add'>+</div><div class='add'>+        ssize_t word_step;</div><div class='add'>+        size_t byte_start;</div><div class='add'>+        int byte_step;</div><div class='add'>+</div><div class='add'>+        size_t word_start, word_last;</div><div class='add'>+        unsigned char *wordp, *last_wordp;</div><div class='add'>+        BDIGIT_DBL dd;</div><div class='add'>+        int numbits_in_dd;</div><div class='add'>+</div><div class='add'>+        integer_pack_loop_setup(numwords, wordsize, nails, flags,</div><div class='add'>+            &amp;word_num_fullbytes, &amp;word_num_partialbits,</div><div class='add'>+            &amp;word_start, &amp;word_step, &amp;word_last, &amp;byte_start, &amp;byte_step);</div><div class='add'>+</div><div class='add'>+        wordp = buf + word_start;</div><div class='add'>+        last_wordp = buf + word_last;</div><div class='add'>+</div><div class='add'>+        dd = 0;</div><div class='add'>+        numbits_in_dd = 0;</div><div class='add'>+</div><div class='add'>+#define FILL_DD \</div><div class='add'>+    integer_pack_fill_dd(&amp;dp, &amp;de, &amp;dd, &amp;numbits_in_dd)</div><div class='add'>+#define TAKE_LOWBITS(n) \</div><div class='add'>+    integer_pack_take_lowbits(n, &amp;dd, &amp;numbits_in_dd)</div><div class='add'>+</div><div class='add'>+        while (1) {</div><div class='add'>+            size_t index_in_word = 0;</div><div class='add'>+            unsigned char *bytep = wordp + byte_start;</div><div class='add'>+            while (index_in_word &lt; word_num_fullbytes) {</div><div class='add'>+                FILL_DD;</div><div class='add'>+                *bytep = TAKE_LOWBITS(CHAR_BIT);</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+            if (word_num_partialbits) {</div><div class='add'>+                FILL_DD;</div><div class='add'>+                *bytep = TAKE_LOWBITS(word_num_partialbits);</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+            while (index_in_word &lt; wordsize) {</div><div class='add'>+                *bytep = 0;</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (wordp == last_wordp)</div><div class='add'>+                break;</div><div class='add'>+</div><div class='add'>+            wordp += word_step;</div><div class='add'>+        }</div><div class='add'>+        FILL_DD;</div><div class='add'>+        /* overflow tests */</div><div class='add'>+        if (dp != de || 1 &lt; dd) {</div><div class='add'>+            /* 2**(numwords*(wordsize*CHAR_BIT-nails)+1) &lt;= abs(val) */</div><div class='add'>+            sign *= 2;</div><div class='add'>+        }</div><div class='add'>+        else if (dd == 1) {</div><div class='add'>+            /* 2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= abs(val) &lt; 2**(numwords*(wordsize*CHAR_BIT-nails)+1) */</div><div class='add'>+            if (!(flags &amp; INTEGER_PACK_2COMP) || 0 &lt;= sign)</div><div class='add'>+                sign *= 2;</div><div class='add'>+            else { /* overflow_2comp &amp;&amp; sign == -1 */</div><div class='add'>+                /* test lower bits are all zero. */</div><div class='add'>+                dp = ds;</div><div class='add'>+                while (dp &lt; de &amp;&amp; *dp == 0)</div><div class='add'>+                    dp++;</div><div class='add'>+                if (de - dp == 1 &amp;&amp; /* only one non-zero word. */</div><div class='add'>+                    POW2_P(*dp)) /* *dp contains only one bit set. */</div><div class='add'>+                    sign = -1; /* val == -2**(numwords*(wordsize*CHAR_BIT-nails)) */</div><div class='add'>+                else</div><div class='add'>+                    sign = -2; /* val &lt; -2**(numwords*(wordsize*CHAR_BIT-nails)) */</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if ((flags &amp; INTEGER_PACK_2COMP) &amp;&amp; (sign &lt; 0 &amp;&amp; numwords != 0)) {</div><div class='add'>+        int word_num_partialbits;</div><div class='add'>+        size_t word_num_fullbytes;</div><div class='add'>+</div><div class='add'>+        ssize_t word_step;</div><div class='add'>+        size_t byte_start;</div><div class='add'>+        int byte_step;</div><div class='add'>+</div><div class='add'>+        size_t word_start, word_last;</div><div class='add'>+        unsigned char *wordp, *last_wordp;</div><div class='add'>+</div><div class='add'>+        unsigned int partialbits_mask;</div><div class='add'>+        int carry;</div><div class='add'>+</div><div class='add'>+        integer_pack_loop_setup(numwords, wordsize, nails, flags,</div><div class='add'>+            &amp;word_num_fullbytes, &amp;word_num_partialbits,</div><div class='add'>+            &amp;word_start, &amp;word_step, &amp;word_last, &amp;byte_start, &amp;byte_step);</div><div class='add'>+</div><div class='add'>+        partialbits_mask = (1 &lt;&lt; word_num_partialbits) - 1;</div><div class='add'>+</div><div class='add'>+        buf = words;</div><div class='add'>+        wordp = buf + word_start;</div><div class='add'>+        last_wordp = buf + word_last;</div><div class='add'>+</div><div class='add'>+        carry = 1;</div><div class='add'>+        while (1) {</div><div class='add'>+            size_t index_in_word = 0;</div><div class='add'>+            unsigned char *bytep = wordp + byte_start;</div><div class='add'>+            while (index_in_word &lt; word_num_fullbytes) {</div><div class='add'>+                carry += (unsigned char)~*bytep;</div><div class='add'>+                *bytep = (unsigned char)carry;</div><div class='add'>+                carry &gt;&gt;= CHAR_BIT;</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+            if (word_num_partialbits) {</div><div class='add'>+                carry += (*bytep &amp; partialbits_mask) ^ partialbits_mask;</div><div class='add'>+                *bytep = carry &amp; partialbits_mask;</div><div class='add'>+                carry &gt;&gt;= word_num_partialbits;</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (wordp == last_wordp)</div><div class='add'>+                break;</div><div class='add'>+</div><div class='add'>+            wordp += word_step;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return sign;</div><div class='add'>+#undef FILL_DD</div><div class='add'>+#undef TAKE_LOWBITS</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+integer_unpack_num_bdigits_small(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)</div><div class='add'>+{</div><div class='add'>+    /* nlp_bits stands for number of leading padding bits */</div><div class='add'>+    size_t num_bits = (wordsize * CHAR_BIT - nails) * numwords;</div><div class='add'>+    size_t num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG;</div><div class='add'>+    *nlp_bits_ret = (int)(num_bdigits * BITSPERDIG - num_bits);</div><div class='add'>+    return num_bdigits;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+integer_unpack_num_bdigits_generic(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)</div><div class='add'>+{</div><div class='add'>+    /* BITSPERDIG = SIZEOF_BDIGIT * CHAR_BIT */</div><div class='add'>+    /* num_bits = (wordsize * CHAR_BIT - nails) * numwords */</div><div class='add'>+    /* num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG */</div><div class='add'>+</div><div class='add'>+    /* num_bits = CHAR_BIT * (wordsize * numwords) - nails * numwords = CHAR_BIT * num_bytes1 - nails * numwords */</div><div class='add'>+    size_t num_bytes1 = wordsize * numwords;</div><div class='add'>+</div><div class='add'>+    /* q1 * CHAR_BIT + r1 = numwords */</div><div class='add'>+    size_t q1 = numwords / CHAR_BIT;</div><div class='add'>+    size_t r1 = numwords % CHAR_BIT;</div><div class='add'>+</div><div class='add'>+    /* num_bits = CHAR_BIT * num_bytes1 - nails * (q1 * CHAR_BIT + r1) = CHAR_BIT * num_bytes2 - nails * r1 */</div><div class='add'>+    size_t num_bytes2 = num_bytes1 - nails * q1;</div><div class='add'>+</div><div class='add'>+    /* q2 * CHAR_BIT + r2 = nails */</div><div class='add'>+    size_t q2 = nails / CHAR_BIT;</div><div class='add'>+    size_t r2 = nails % CHAR_BIT;</div><div class='add'>+</div><div class='add'>+    /* num_bits = CHAR_BIT * num_bytes2 - (q2 * CHAR_BIT + r2) * r1 = CHAR_BIT * num_bytes3 - r1 * r2 */</div><div class='add'>+    size_t num_bytes3 = num_bytes2 - q2 * r1;</div><div class='add'>+</div><div class='add'>+    /* q3 * BITSPERDIG + r3 = num_bytes3 */</div><div class='add'>+    size_t q3 = num_bytes3 / BITSPERDIG;</div><div class='add'>+    size_t r3 = num_bytes3 % BITSPERDIG;</div><div class='add'>+</div><div class='add'>+    /* num_bits = CHAR_BIT * (q3 * BITSPERDIG + r3) - r1 * r2 = BITSPERDIG * num_digits1 + CHAR_BIT * r3 - r1 * r2 */</div><div class='add'>+    size_t num_digits1 = CHAR_BIT * q3;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * if CHAR_BIT * r3 &gt;= r1 * r2</div><div class='add'>+     *   CHAR_BIT * r3 - r1 * r2 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2))</div><div class='add'>+     *   q4 * BITSPERDIG + r4 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2)</div><div class='add'>+     *   num_bits = BITSPERDIG * num_digits1 + CHAR_BIT * BITSPERDIG - (q4 * BITSPERDIG + r4) = BITSPERDIG * num_digits2 - r4</div><div class='add'>+     * else</div><div class='add'>+     *   q4 * BITSPERDIG + r4 = -(CHAR_BIT * r3 - r1 * r2)</div><div class='add'>+     *   num_bits = BITSPERDIG * num_digits1 - (q4 * BITSPERDIG + r4) = BITSPERDIG * num_digits2 - r4</div><div class='add'>+     * end</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    if (CHAR_BIT * r3 &gt;= r1 * r2) {</div><div class='add'>+        size_t tmp1 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2);</div><div class='add'>+        size_t q4 = tmp1 / BITSPERDIG;</div><div class='add'>+        int r4 = (int)(tmp1 % BITSPERDIG);</div><div class='add'>+        size_t num_digits2 = num_digits1 + CHAR_BIT - q4;</div><div class='add'>+        *nlp_bits_ret = r4;</div><div class='add'>+        return num_digits2;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        size_t tmp1 = r1 * r2 - CHAR_BIT * r3;</div><div class='add'>+        size_t q4 = tmp1 / BITSPERDIG;</div><div class='add'>+        int r4 = (int)(tmp1 % BITSPERDIG);</div><div class='add'>+        size_t num_digits2 = num_digits1 - q4;</div><div class='add'>+        *nlp_bits_ret = r4;</div><div class='add'>+        return num_digits2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+integer_unpack_num_bdigits(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)</div><div class='add'>+{</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+</div><div class='add'>+    if (numwords &lt;= (SIZE_MAX - (BITSPERDIG-1)) / CHAR_BIT / wordsize) {</div><div class='add'>+        num_bdigits = integer_unpack_num_bdigits_small(numwords, wordsize, nails, nlp_bits_ret);</div><div class='add'>+#ifdef DEBUG_INTEGER_PACK</div><div class='add'>+        {</div><div class='add'>+            int nlp_bits1;</div><div class='add'>+            size_t num_bdigits1 = integer_unpack_num_bdigits_generic(numwords, wordsize, nails, &amp;nlp_bits1);</div><div class='add'>+            assert(num_bdigits == num_bdigits1);</div><div class='add'>+            assert(*nlp_bits_ret == nlp_bits1);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        num_bdigits = integer_unpack_num_bdigits_generic(numwords, wordsize, nails, nlp_bits_ret);</div><div class='add'>+    }</div><div class='add'>+    return num_bdigits;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+integer_unpack_push_bits(int data, int numbits, BDIGIT_DBL *ddp, int *numbits_in_dd_p, BDIGIT **dpp)</div><div class='add'>+{</div><div class='add'>+    (*ddp) |= ((BDIGIT_DBL)data) &lt;&lt; (*numbits_in_dd_p);</div><div class='add'>+    *numbits_in_dd_p += numbits;</div><div class='add'>+    while (BITSPERDIG &lt;= *numbits_in_dd_p) {</div><div class='add'>+        *(*dpp)++ = BIGLO(*ddp);</div><div class='add'>+        *ddp = BIGDN(*ddp);</div><div class='add'>+        *numbits_in_dd_p -= BITSPERDIG;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+integer_unpack_single_bdigit(BDIGIT u, size_t size, int flags, BDIGIT *dp)</div><div class='add'>+{</div><div class='ctx'>     int sign;</div><div class='add'>+    if (flags &amp; INTEGER_PACK_2COMP) {</div><div class='add'>+        sign = (flags &amp; INTEGER_PACK_NEGATIVE) ?</div><div class='add'>+            ((size == SIZEOF_BDIGIT &amp;&amp; u == 0) ? -2 : -1) :</div><div class='add'>+            ((u &gt;&gt; (size * CHAR_BIT - 1)) ? -1 : 1);</div><div class='add'>+        if (sign &lt; 0) {</div><div class='add'>+            u |= LSHIFTX(BDIGMAX, size * CHAR_BIT);</div><div class='add'>+            u = BIGLO(1 + ~u);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+        sign = (flags &amp; INTEGER_PACK_NEGATIVE) ? -1 : 1;</div><div class='add'>+    *dp = u;</div><div class='add'>+    return sign;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, size_t numwords, size_t wordsize, size_t nails, int flags, int nlp_bits)</div><div class='add'>+{</div><div class='add'>+    int sign;</div><div class='add'>+    const unsigned char *buf = words;</div><div class='add'>+    BDIGIT *dp;</div><div class='add'>+    BDIGIT *de;</div><div class='add'>+</div><div class='add'>+    dp = bdigits;</div><div class='add'>+    de = dp + num_bdigits;</div><div class='add'>+</div><div class='add'>+    if (!(flags &amp; INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION)) {</div><div class='add'>+        if (nails == 0 &amp;&amp; numwords == 1) {</div><div class='add'>+            int need_swap = wordsize != 1 &amp;&amp;</div><div class='add'>+                (flags &amp; INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_NATIVE_BYTE_ORDER &amp;&amp;</div><div class='add'>+                ((flags &amp; INTEGER_PACK_MSBYTE_FIRST) ? !HOST_BIGENDIAN_P : HOST_BIGENDIAN_P);</div><div class='add'>+            if (wordsize == 1) {</div><div class='add'>+                return integer_unpack_single_bdigit(*(uint8_t *)buf, sizeof(uint8_t), flags, dp);</div><div class='add'>+            }</div><div class='add'>+#if defined(HAVE_UINT16_T) &amp;&amp; 2 &lt;= SIZEOF_BDIGIT</div><div class='add'>+            if (wordsize == 2 &amp;&amp; (uintptr_t)words % ALIGNOF(uint16_t) == 0) {</div><div class='add'>+                uint16_t u = *(uint16_t *)buf;</div><div class='add'>+                return integer_unpack_single_bdigit(need_swap ? swap16(u) : u, sizeof(uint16_t), flags, dp);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT32_T) &amp;&amp; 4 &lt;= SIZEOF_BDIGIT</div><div class='add'>+            if (wordsize == 4 &amp;&amp; (uintptr_t)words % ALIGNOF(uint32_t) == 0) {</div><div class='add'>+                uint32_t u = *(uint32_t *)buf;</div><div class='add'>+                return integer_unpack_single_bdigit(need_swap ? swap32(u) : u, sizeof(uint32_t), flags, dp);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_UINT64_T) &amp;&amp; 8 &lt;= SIZEOF_BDIGIT</div><div class='add'>+            if (wordsize == 8 &amp;&amp; (uintptr_t)words % ALIGNOF(uint64_t) == 0) {</div><div class='add'>+                uint64_t u = *(uint64_t *)buf;</div><div class='add'>+                return integer_unpack_single_bdigit(need_swap ? swap64(u) : u, sizeof(uint64_t), flags, dp);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+#if !defined(WORDS_BIGENDIAN)</div><div class='add'>+        if (nails == 0 &amp;&amp; SIZEOF_BDIGIT == sizeof(BDIGIT) &amp;&amp;</div><div class='add'>+            (flags &amp; INTEGER_PACK_WORDORDER_MASK) == INTEGER_PACK_LSWORD_FIRST &amp;&amp;</div><div class='add'>+            (flags &amp; INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_MSBYTE_FIRST) {</div><div class='add'>+            size_t src_size = numwords * wordsize;</div><div class='add'>+            size_t dst_size = num_bdigits * SIZEOF_BDIGIT;</div><div class='add'>+            MEMCPY(dp, words, char, src_size);</div><div class='add'>+            if (flags &amp; INTEGER_PACK_2COMP) {</div><div class='add'>+                if (flags &amp; INTEGER_PACK_NEGATIVE) {</div><div class='add'>+                    int zero_p;</div><div class='add'>+                    memset((char*)dp + src_size, 0xff, dst_size - src_size);</div><div class='add'>+                    zero_p = bary_2comp(dp, num_bdigits);</div><div class='add'>+                    sign = zero_p ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+                else if (buf[src_size-1] &gt;&gt; (CHAR_BIT-1)) {</div><div class='add'>+                    memset((char*)dp + src_size, 0xff, dst_size - src_size);</div><div class='add'>+                    bary_2comp(dp, num_bdigits);</div><div class='add'>+                    sign = -1;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    MEMZERO((char*)dp + src_size, char, dst_size - src_size);</div><div class='add'>+                    sign = 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                MEMZERO((char*)dp + src_size, char, dst_size - src_size);</div><div class='add'>+                sign = (flags &amp; INTEGER_PACK_NEGATIVE) ? -1 : 1;</div><div class='add'>+            }</div><div class='add'>+            return sign;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        if (nails == 0 &amp;&amp; SIZEOF_BDIGIT == sizeof(BDIGIT) &amp;&amp;</div><div class='add'>+            wordsize % SIZEOF_BDIGIT == 0) {</div><div class='add'>+            size_t bdigits_per_word = wordsize / SIZEOF_BDIGIT;</div><div class='add'>+            int mswordfirst_p = (flags &amp; INTEGER_PACK_MSWORD_FIRST) != 0;</div><div class='add'>+            int msbytefirst_p = (flags &amp; INTEGER_PACK_NATIVE_BYTE_ORDER) ? HOST_BIGENDIAN_P :</div><div class='add'>+                (flags &amp; INTEGER_PACK_MSBYTE_FIRST) != 0;</div><div class='add'>+            MEMCPY(dp, words, BDIGIT, numwords*bdigits_per_word);</div><div class='add'>+            if (mswordfirst_p) {</div><div class='add'>+                bary_swap(dp, num_bdigits);</div><div class='add'>+            }</div><div class='add'>+            if (mswordfirst_p ? !msbytefirst_p : msbytefirst_p) {</div><div class='add'>+                size_t i;</div><div class='add'>+                BDIGIT *p = dp;</div><div class='add'>+                for (i = 0; i &lt; numwords; i++) {</div><div class='add'>+                    bary_swap(p, bdigits_per_word);</div><div class='add'>+                    p += bdigits_per_word;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (msbytefirst_p != HOST_BIGENDIAN_P) {</div><div class='add'>+                BDIGIT *p;</div><div class='add'>+                for (p = dp; p &lt; de; p++) {</div><div class='add'>+                    BDIGIT d = *p;</div><div class='add'>+                    *p = swap_bdigit(d);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (flags &amp; INTEGER_PACK_2COMP) {</div><div class='add'>+                if (flags &amp; INTEGER_PACK_NEGATIVE) {</div><div class='add'>+                    int zero_p = bary_2comp(dp, num_bdigits);</div><div class='add'>+                    sign = zero_p ? -2 : -1;</div><div class='add'>+                }</div><div class='add'>+                else if (BDIGIT_MSB(de[-1])) {</div><div class='add'>+                    bary_2comp(dp, num_bdigits);</div><div class='add'>+                    sign = -1;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    sign = 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                sign = (flags &amp; INTEGER_PACK_NEGATIVE) ? -1 : 1;</div><div class='add'>+            }</div><div class='add'>+            return sign;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (num_bdigits != 0) {</div><div class='add'>+        int word_num_partialbits;</div><div class='add'>+        size_t word_num_fullbytes;</div><div class='add'>+</div><div class='add'>+        ssize_t word_step;</div><div class='add'>+        size_t byte_start;</div><div class='add'>+        int byte_step;</div><div class='add'>+</div><div class='add'>+        size_t word_start, word_last;</div><div class='add'>+        const unsigned char *wordp, *last_wordp;</div><div class='add'>+        BDIGIT_DBL dd;</div><div class='add'>+        int numbits_in_dd;</div><div class='add'>+</div><div class='add'>+        integer_pack_loop_setup(numwords, wordsize, nails, flags,</div><div class='add'>+            &amp;word_num_fullbytes, &amp;word_num_partialbits,</div><div class='add'>+            &amp;word_start, &amp;word_step, &amp;word_last, &amp;byte_start, &amp;byte_step);</div><div class='add'>+</div><div class='add'>+        wordp = buf + word_start;</div><div class='add'>+        last_wordp = buf + word_last;</div><div class='add'>+</div><div class='add'>+        dd = 0;</div><div class='add'>+        numbits_in_dd = 0;</div><div class='add'>+</div><div class='add'>+#define PUSH_BITS(data, numbits) \</div><div class='add'>+        integer_unpack_push_bits(data, numbits, &amp;dd, &amp;numbits_in_dd, &amp;dp)</div><div class='add'>+</div><div class='add'>+        while (1) {</div><div class='add'>+            size_t index_in_word = 0;</div><div class='add'>+            const unsigned char *bytep = wordp + byte_start;</div><div class='add'>+            while (index_in_word &lt; word_num_fullbytes) {</div><div class='add'>+                PUSH_BITS(*bytep, CHAR_BIT);</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+            if (word_num_partialbits) {</div><div class='add'>+                PUSH_BITS(*bytep &amp; ((1 &lt;&lt; word_num_partialbits) - 1), word_num_partialbits);</div><div class='add'>+                bytep += byte_step;</div><div class='add'>+                index_in_word++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (wordp == last_wordp)</div><div class='add'>+                break;</div><div class='add'>+</div><div class='add'>+            wordp += word_step;</div><div class='add'>+        }</div><div class='add'>+        if (dd)</div><div class='add'>+            *dp++ = (BDIGIT)dd;</div><div class='add'>+        assert(dp &lt;= de);</div><div class='add'>+        while (dp &lt; de)</div><div class='add'>+            *dp++ = 0;</div><div class='add'>+#undef PUSH_BITS</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!(flags &amp; INTEGER_PACK_2COMP)) {</div><div class='add'>+        sign = (flags &amp; INTEGER_PACK_NEGATIVE) ? -1 : 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (nlp_bits) {</div><div class='add'>+            if ((flags &amp; INTEGER_PACK_NEGATIVE) ||</div><div class='add'>+                (bdigits[num_bdigits-1] &gt;&gt; (BITSPERDIG - nlp_bits - 1))) {</div><div class='add'>+                bdigits[num_bdigits-1] |= BIGLO(BDIGMAX &lt;&lt; (BITSPERDIG - nlp_bits));</div><div class='add'>+                sign = -1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                sign = 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (flags &amp; INTEGER_PACK_NEGATIVE) {</div><div class='add'>+                sign = bary_zero_p(bdigits, num_bdigits) ? -2 : -1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (num_bdigits != 0 &amp;&amp; BDIGIT_MSB(bdigits[num_bdigits-1]))</div><div class='add'>+                    sign = -1;</div><div class='add'>+                else</div><div class='add'>+                    sign = 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (sign == -1 &amp;&amp; num_bdigits != 0) {</div><div class='add'>+            bary_2comp(bdigits, num_bdigits);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return sign;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_unpack(BDIGIT *bdigits, size_t num_bdigits, const void *words, size_t numwords, size_t wordsize, size_t nails, int flags)</div><div class='add'>+{</div><div class='add'>+    size_t num_bdigits0;</div><div class='add'>+    int nlp_bits;</div><div class='add'>+    int sign;</div><div class='add'>+</div><div class='add'>+    validate_integer_pack_format(numwords, wordsize, nails, flags,</div><div class='add'>+            INTEGER_PACK_MSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_MSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_LSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_NATIVE_BYTE_ORDER|</div><div class='add'>+            INTEGER_PACK_2COMP|</div><div class='add'>+            INTEGER_PACK_FORCE_BIGNUM|</div><div class='add'>+            INTEGER_PACK_NEGATIVE|</div><div class='add'>+            INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);</div><div class='add'>+</div><div class='add'>+    num_bdigits0 = integer_unpack_num_bdigits(numwords, wordsize, nails, &amp;nlp_bits);</div><div class='add'>+</div><div class='add'>+    assert(num_bdigits0 &lt;= num_bdigits);</div><div class='add'>+</div><div class='add'>+    sign = bary_unpack_internal(bdigits, num_bdigits0, words, numwords, wordsize, nails, flags, nlp_bits);</div><div class='add'>+</div><div class='add'>+    if (num_bdigits0 &lt; num_bdigits) {</div><div class='add'>+        BDIGITS_ZERO(bdigits + num_bdigits0, num_bdigits - num_bdigits0);</div><div class='add'>+        if (sign == -2) {</div><div class='add'>+            bdigits[num_bdigits0] = 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_subb(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, int borrow)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+    size_t i;</div><div class='add'>+    size_t sn;</div><div class='add'>+</div><div class='add'>+    assert(xn &lt;= zn);</div><div class='add'>+    assert(yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    sn = xn &lt; yn ? xn : yn;</div><div class='add'>+</div><div class='add'>+    num = borrow ? -1 : 0;</div><div class='add'>+    for (i = 0; i &lt; sn; i++) {</div><div class='add'>+	num += (BDIGIT_DBL_SIGNED)xds[i] - yds[i];</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+    }</div><div class='add'>+    if (yn &lt;= xn) {</div><div class='add'>+        for (; i &lt; xn; i++) {</div><div class='add'>+            if (num == 0) goto num_is_zero;</div><div class='add'>+            num += xds[i];</div><div class='add'>+            zds[i] = BIGLO(num);</div><div class='add'>+            num = BIGDN(num);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        for (; i &lt; yn; i++) {</div><div class='add'>+            num -= yds[i];</div><div class='add'>+            zds[i] = BIGLO(num);</div><div class='add'>+            num = BIGDN(num);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (num == 0) goto num_is_zero;</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+	zds[i] = BDIGMAX;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+</div><div class='add'>+  num_is_zero:</div><div class='add'>+    if (xds == zds &amp;&amp; xn == zn)</div><div class='add'>+        return 0;</div><div class='add'>+    for (; i &lt; xn; i++) {</div><div class='add'>+	zds[i] = xds[i];</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+	zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_sub(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    return bary_subb(zds, zn, xds, xn, yds, yn, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_sub_one(BDIGIT *zds, size_t zn)</div><div class='add'>+{</div><div class='add'>+    return bary_subb(zds, zn, zds, zn, NULL, 0, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_addc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, int carry)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    size_t i;</div><div class='add'>+</div><div class='add'>+    assert(xn &lt;= zn);</div><div class='add'>+    assert(yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+	const BDIGIT *tds;</div><div class='add'>+	tds = xds; xds = yds; yds = tds;</div><div class='add'>+	i = xn; xn = yn; yn = i;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    num = carry ? 1 : 0;</div><div class='add'>+    for (i = 0; i &lt; xn; i++) {</div><div class='add'>+	num += (BDIGIT_DBL)xds[i] + yds[i];</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; yn; i++) {</div><div class='add'>+        if (num == 0) goto num_is_zero;</div><div class='add'>+	num += yds[i];</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        if (num == 0) goto num_is_zero;</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+    }</div><div class='add'>+    return num != 0;</div><div class='add'>+</div><div class='add'>+  num_is_zero:</div><div class='add'>+    if (yds == zds &amp;&amp; yn == zn)</div><div class='add'>+        return 0;</div><div class='add'>+    for (; i &lt; yn; i++) {</div><div class='add'>+	zds[i] = yds[i];</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+	zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_add(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    return bary_addc(zds, zn, xds, xn, yds, yn, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_add_one(BDIGIT *ds, size_t n)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    for (i = 0; i &lt; n; i++) {</div><div class='add'>+	ds[i] = BIGLO(ds[i]+1);</div><div class='add'>+        if (ds[i] != 0)</div><div class='add'>+            return 0;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_single(BDIGIT *zds, size_t zn, BDIGIT x, BDIGIT y)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL n;</div><div class='add'>+</div><div class='add'>+    assert(2 &lt;= zn);</div><div class='add'>+</div><div class='add'>+    n = (BDIGIT_DBL)x * y;</div><div class='add'>+    bdigitdbl2bary(zds, 2, n);</div><div class='add'>+    BDIGITS_ZERO(zds + 2, zn - 2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_muladd_1xN(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL n;</div><div class='add'>+    BDIGIT_DBL dd;</div><div class='add'>+    size_t j;</div><div class='add'>+</div><div class='add'>+    assert(zn &gt; yn);</div><div class='add'>+</div><div class='add'>+    if (x == 0)</div><div class='add'>+        return 0;</div><div class='add'>+    dd = x;</div><div class='add'>+    n = 0;</div><div class='add'>+    for (j = 0; j &lt; yn; j++) {</div><div class='add'>+        BDIGIT_DBL ee = n + dd * yds[j];</div><div class='add'>+        if (ee) {</div><div class='add'>+            n = zds[j] + ee;</div><div class='add'>+            zds[j] = BIGLO(n);</div><div class='add'>+            n = BIGDN(n);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            n = 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+    }</div><div class='add'>+    for (; j &lt; zn; j++) {</div><div class='add'>+        if (n == 0)</div><div class='add'>+            break;</div><div class='add'>+        n += zds[j];</div><div class='add'>+        zds[j] = BIGLO(n);</div><div class='add'>+        n = BIGDN(n);</div><div class='add'>+    }</div><div class='add'>+    return n != 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static BDIGIT_DBL_SIGNED</div><div class='add'>+bigdivrem_mulsub(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    BDIGIT_DBL t2;</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+</div><div class='add'>+    assert(zn == yn + 1);</div><div class='add'>+</div><div class='add'>+    num = 0;</div><div class='add'>+    t2 = 0;</div><div class='add'>+    i = 0;</div><div class='add'>+</div><div class='add'>+    do {</div><div class='add'>+        BDIGIT_DBL ee;</div><div class='add'>+        t2 += (BDIGIT_DBL)yds[i] * x;</div><div class='add'>+        ee = num - BIGLO(t2);</div><div class='add'>+        num = (BDIGIT_DBL)zds[i] + ee;</div><div class='add'>+        if (ee) zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='add'>+        t2 = BIGDN(t2);</div><div class='add'>+    } while (++i &lt; yn);</div><div class='add'>+    num += zds[i] - t2; /* borrow from high digit; don't update */</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_mulsub_1xN(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+</div><div class='add'>+    assert(zn == yn + 1);</div><div class='add'>+</div><div class='add'>+    num = bigdivrem_mulsub(zds, zn, x, yds, yn);</div><div class='add'>+    zds[yn] = BIGLO(num);</div><div class='add'>+    if (BIGDN(num))</div><div class='add'>+        return 1;</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_normal(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    BDIGITS_ZERO(zds, zn);</div><div class='add'>+    for (i = 0; i &lt; xn; i++) {</div><div class='add'>+        bary_muladd_1xN(zds+i, zn-i, xds[i], yds, yn);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul_normal(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;</div><div class='add'>+    VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    bary_mul_normal(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* efficient squaring (2 times faster than normal multiplication)</div><div class='add'>+ * ref: Handbook of Applied Cryptography, Algorithm 14.16</div><div class='add'>+ *      http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+bary_sq_fast(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn)</div><div class='add'>+{</div><div class='add'>+    size_t i, j;</div><div class='add'>+    BDIGIT_DBL c, v, w;</div><div class='add'>+    BDIGIT vl;</div><div class='add'>+    int vh;</div><div class='add'>+</div><div class='add'>+    assert(xn * 2 &lt;= zn);</div><div class='add'>+</div><div class='add'>+    BDIGITS_ZERO(zds, zn);</div><div class='add'>+</div><div class='add'>+    if (xn == 0)</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; xn-1; i++) {</div><div class='add'>+	v = (BDIGIT_DBL)xds[i];</div><div class='add'>+	if (!v)</div><div class='add'>+            continue;</div><div class='add'>+	c = (BDIGIT_DBL)zds[i + i] + v * v;</div><div class='add'>+	zds[i + i] = BIGLO(c);</div><div class='add'>+	c = BIGDN(c);</div><div class='add'>+	v *= 2;</div><div class='add'>+        vl = BIGLO(v);</div><div class='add'>+        vh = (int)BIGDN(v);</div><div class='add'>+	for (j = i + 1; j &lt; xn; j++) {</div><div class='add'>+	    w = (BDIGIT_DBL)xds[j];</div><div class='add'>+	    c += (BDIGIT_DBL)zds[i + j] + vl * w;</div><div class='add'>+	    zds[i + j] = BIGLO(c);</div><div class='add'>+	    c = BIGDN(c);</div><div class='add'>+	    if (vh)</div><div class='add'>+                c += w;</div><div class='add'>+	}</div><div class='add'>+	if (c) {</div><div class='add'>+	    c += (BDIGIT_DBL)zds[i + xn];</div><div class='add'>+	    zds[i + xn] = BIGLO(c);</div><div class='add'>+	    c = BIGDN(c);</div><div class='add'>+            if (c)</div><div class='add'>+                zds[i + xn + 1] += (BDIGIT)c;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* i == xn-1 */</div><div class='add'>+    v = (BDIGIT_DBL)xds[i];</div><div class='add'>+    if (!v)</div><div class='add'>+        return;</div><div class='add'>+    c = (BDIGIT_DBL)zds[i + i] + v * v;</div><div class='add'>+    zds[i + i] = BIGLO(c);</div><div class='add'>+    c = BIGDN(c);</div><div class='add'>+    if (c) {</div><div class='add'>+        zds[i + xn] += BIGLO(c);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_sq_fast(VALUE x)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), zn = 2 * xn;</div><div class='add'>+    VALUE z = bignew(zn, 1);</div><div class='add'>+    bary_sq_fast(BDIGITS(z), zn, BDIGITS(x), xn);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* balancing multiplication by slicing larger argument */</div><div class='add'>+static void</div><div class='add'>+bary_mul_balance_with_mulfunc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn, mulfunc_t *mulfunc)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(big, struct RBignum);</div><div class='del'>-    OBJSETUP(big, klass, T_BIGNUM);</div><div class='del'>-    big-&gt;sign = sign?1:0;</div><div class='del'>-    big-&gt;len = len;</div><div class='del'>-    big-&gt;digits = ALLOC_N(BDIGIT, len);</div><div class='add'>+    VALUE work = 0;</div><div class='add'>+    size_t yn0 = yn;</div><div class='add'>+    size_t r, n;</div><div class='add'>+</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+    assert(xn &lt;= yn);</div><div class='add'>+    assert(!KARATSUBA_BALANCED(xn, yn) || !TOOM3_BALANCED(xn, yn));</div><div class='add'>+</div><div class='add'>+    BDIGITS_ZERO(zds, xn);</div><div class='add'>+</div><div class='add'>+    n = 0;</div><div class='add'>+    while (yn &gt; 0) {</div><div class='add'>+        BDIGIT *tds;</div><div class='add'>+        size_t tn;</div><div class='add'>+	r = xn &gt; yn ? yn : xn;</div><div class='add'>+        tn = xn + r;</div><div class='add'>+        if (2 * (xn + r) &lt;= zn - n) {</div><div class='add'>+            tds = zds + n + xn + r;</div><div class='add'>+            mulfunc(tds, tn, xds, xn, yds + n, r, wds, wn);</div><div class='add'>+            BDIGITS_ZERO(zds + n + xn, r);</div><div class='add'>+            bary_add(zds + n, tn,</div><div class='add'>+                     zds + n, tn,</div><div class='add'>+                     tds, tn);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (wn &lt; xn) {</div><div class='add'>+                wn = xn;</div><div class='add'>+                wds = ALLOCV_N(BDIGIT, work, wn);</div><div class='add'>+            }</div><div class='add'>+            tds = zds + n;</div><div class='add'>+            MEMCPY(wds, zds + n, BDIGIT, xn);</div><div class='add'>+            mulfunc(tds, tn, xds, xn, yds + n, r, wds+xn, wn-xn);</div><div class='add'>+            bary_add(zds + n, tn,</div><div class='add'>+                     zds + n, tn,</div><div class='add'>+                     wds, xn);</div><div class='add'>+        }</div><div class='add'>+	yn -= r;</div><div class='add'>+	n += r;</div><div class='add'>+    }</div><div class='add'>+    BDIGITS_ZERO(zds+xn+yn0, zn - (xn+yn0));</div><div class='add'>+</div><div class='add'>+    if (work)</div><div class='add'>+        ALLOCV_END(work);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul_balance(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;</div><div class='add'>+    VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    bary_mul_balance_with_mulfunc(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0, bary_mul_toom3_start);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* multiplication by karatsuba method */</div><div class='add'>+static void</div><div class='add'>+bary_mul_karatsuba(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    VALUE work = 0;</div><div class='add'>+</div><div class='add'>+    size_t n;</div><div class='add'>+    int sub_p, borrow, carry1, carry2, carry3;</div><div class='add'>+</div><div class='add'>+    int odd_y = 0;</div><div class='add'>+    int odd_xy = 0;</div><div class='add'>+    int sq;</div><div class='add'>+</div><div class='add'>+    const BDIGIT *xds0, *xds1, *yds0, *yds1;</div><div class='add'>+    BDIGIT *zds0, *zds1, *zds2, *zds3;</div><div class='add'>+</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+    assert(xn &lt;= yn);</div><div class='add'>+    assert(yn &lt; 2 * xn);</div><div class='add'>+</div><div class='add'>+    sq = xds == yds &amp;&amp; xn == yn;</div><div class='add'>+</div><div class='add'>+    if (yn &amp; 1) {</div><div class='add'>+        odd_y = 1;</div><div class='add'>+        yn--;</div><div class='add'>+        if (yn &lt; xn) {</div><div class='add'>+            odd_xy = 1;</div><div class='add'>+            xn--;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    n = yn / 2;</div><div class='add'>+</div><div class='add'>+    assert(n &lt; xn);</div><div class='add'>+</div><div class='add'>+    if (wn &lt; n) {</div><div class='add'>+        /* This function itself needs only n BDIGITs for work area.</div><div class='add'>+         * However this function calls bary_mul_karatsuba and</div><div class='add'>+         * bary_mul_balance recursively.</div><div class='add'>+         * 2n BDIGITs are enough to avoid allocations in</div><div class='add'>+         * the recursively called functions.</div><div class='add'>+         */</div><div class='add'>+        wn = 2*n;</div><div class='add'>+        wds = ALLOCV_N(BDIGIT, work, wn);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Karatsuba algorithm:</div><div class='add'>+     *</div><div class='add'>+     * x = x0 + r*x1</div><div class='add'>+     * y = y0 + r*y1</div><div class='add'>+     * z = x*y</div><div class='add'>+     *   = (x0 + r*x1) * (y0 + r*y1)</div><div class='add'>+     *   = x0*y0 + r*(x1*y0 + x0*y1) + r*r*x1*y1</div><div class='add'>+     *   = x0*y0 + r*(x0*y0 + x1*y1 - (x1-x0)*(y1-y0)) + r*r*x1*y1</div><div class='add'>+     *   = x0*y0 + r*(x0*y0 + x1*y1 - (x0-x1)*(y0-y1)) + r*r*x1*y1</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    xds0 = xds;</div><div class='add'>+    xds1 = xds + n;</div><div class='add'>+    yds0 = yds;</div><div class='add'>+    yds1 = yds + n;</div><div class='add'>+    zds0 = zds;</div><div class='add'>+    zds1 = zds + n;</div><div class='add'>+    zds2 = zds + 2*n;</div><div class='add'>+    zds3 = zds + 3*n;</div><div class='add'>+</div><div class='add'>+    sub_p = 1;</div><div class='add'>+</div><div class='add'>+    /* zds0:? zds1:? zds2:? zds3:? wds:? */</div><div class='add'>+</div><div class='add'>+    if (bary_sub(zds0, n, xds, n, xds+n, xn-n)) {</div><div class='add'>+        bary_2comp(zds0, n);</div><div class='add'>+        sub_p = !sub_p;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* zds0:|x1-x0| zds1:? zds2:? zds3:? wds:? */</div><div class='add'>+</div><div class='add'>+    if (sq) {</div><div class='add'>+        sub_p = 1;</div><div class='add'>+        bary_mul_karatsuba_start(zds1, 2*n, zds0, n, zds0, n, wds, wn);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (bary_sub(wds, n, yds, n, yds+n, n)) {</div><div class='add'>+            bary_2comp(wds, n);</div><div class='add'>+            sub_p = !sub_p;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* zds0:|x1-x0| zds1:? zds2:? zds3:? wds:|y1-y0| */</div><div class='add'>+</div><div class='add'>+        bary_mul_karatsuba_start(zds1, 2*n, zds0, n, wds, n, wds+n, wn-n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* zds0:|x1-x0| zds1,zds2:|x1-x0|*|y1-y0| zds3:? wds:|y1-y0| */</div><div class='add'>+</div><div class='add'>+    borrow = 0;</div><div class='add'>+    if (sub_p) {</div><div class='add'>+        borrow = !bary_2comp(zds1, 2*n);</div><div class='add'>+    }</div><div class='add'>+    /* zds0:|x1-x0| zds1,zds2:-?|x1-x0|*|y1-y0| zds3:? wds:|y1-y0| */</div><div class='add'>+</div><div class='add'>+    MEMCPY(wds, zds1, BDIGIT, n);</div><div class='add'>+</div><div class='add'>+    /* zds0:|x1-x0| zds1,zds2:-?|x1-x0|*|y1-y0| zds3:? wds:lo(-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    bary_mul_karatsuba_start(zds0, 2*n, xds0, n, yds0, n, wds+n, wn-n);</div><div class='add'>+</div><div class='add'>+    /* zds0,zds1:x0*y0 zds2:hi(-?|x1-x0|*|y1-y0|) zds3:? wds:lo(-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    carry1 = bary_add(wds, n, wds, n, zds0, n);</div><div class='add'>+    carry1 = bary_addc(zds2, n, zds2, n, zds1, n, carry1);</div><div class='add'>+</div><div class='add'>+    /* zds0,zds1:x0*y0 zds2:hi(x0*y0-?|x1-x0|*|y1-y0|) zds3:? wds:lo(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    carry2 = bary_add(zds1, n, zds1, n, wds, n);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2:hi(x0*y0-?|x1-x0|*|y1-y0|) zds3:? wds:lo(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    MEMCPY(wds, zds2, BDIGIT, n);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2:_ zds3:? wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    bary_mul_karatsuba_start(zds2, zn-2*n, xds1, xn-n, yds1, n, wds+n, wn-n);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2,zds3:x1*y1 wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    carry3 = bary_add(zds1, n, zds1, n, zds2, n);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1 wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    carry3 = bary_addc(zds2, n, zds2, n, zds3, (4*n &lt; zn ? n : zn-3*n), carry3);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1+hi(x1*y1) wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */</div><div class='add'>+</div><div class='add'>+    bary_add(zds2, zn-2*n, zds2, zn-2*n, wds, n);</div><div class='add'>+</div><div class='add'>+    /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1+hi(x1*y1)+hi(x0*y0-?|x1-x0|*|y1-y0|) wds:_ */</div><div class='add'>+</div><div class='add'>+    if (carry2)</div><div class='add'>+        bary_add_one(zds2, zn-2*n);</div><div class='add'>+</div><div class='add'>+    if (carry1 + carry3 - borrow &lt; 0)</div><div class='add'>+        bary_sub_one(zds3, zn-3*n);</div><div class='add'>+    else if (carry1 + carry3 - borrow &gt; 0) {</div><div class='add'>+        BDIGIT c = carry1 + carry3 - borrow;</div><div class='add'>+        bary_add(zds3, zn-3*n, zds3, zn-3*n, &amp;c, 1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+    if (SIZEOF_BDIGIT * zn &lt;= 16) {</div><div class='add'>+        uint128_t z, x, y;</div><div class='add'>+        ssize_t i;</div><div class='add'>+        for (x = 0, i = xn-1; 0 &lt;= i; i--) { x &lt;&lt;= SIZEOF_BDIGIT*CHAR_BIT; x |= xds[i]; }</div><div class='add'>+        for (y = 0, i = yn-1; 0 &lt;= i; i--) { y &lt;&lt;= SIZEOF_BDIGIT*CHAR_BIT; y |= yds[i]; }</div><div class='add'>+        for (z = 0, i = zn-1; 0 &lt;= i; i--) { z &lt;&lt;= SIZEOF_BDIGIT*CHAR_BIT; z |= zds[i]; }</div><div class='add'>+        assert(z == x * y);</div><div class='add'>+    }</div><div class='add'>+    */</div><div class='add'>+</div><div class='add'>+    if (odd_xy) {</div><div class='add'>+        bary_muladd_1xN(zds+yn, zn-yn, yds[yn], xds, xn);</div><div class='add'>+        bary_muladd_1xN(zds+xn, zn-xn, xds[xn], yds, yn+1);</div><div class='add'>+    }</div><div class='add'>+    else if (odd_y) {</div><div class='add'>+        bary_muladd_1xN(zds+yn, zn-yn, yds[yn], xds, xn);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (work)</div><div class='add'>+        ALLOCV_END(work);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul_karatsuba(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;</div><div class='add'>+    VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    if (!((xn &lt;= yn &amp;&amp; yn &lt; 2) || KARATSUBA_BALANCED(xn, yn)))</div><div class='add'>+        rb_raise(rb_eArgError, "unexpected bignum length for karatsuba");</div><div class='add'>+    bary_mul_karatsuba(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    size_t n;</div><div class='add'>+    size_t wnc;</div><div class='add'>+    VALUE work = 0;</div><div class='add'>+</div><div class='add'>+    /* "p" stands for "positive".  Actually it means "non-negative", though. */</div><div class='add'>+    size_t x0n; const BDIGIT *x0ds;</div><div class='add'>+    size_t x1n; const BDIGIT *x1ds;</div><div class='add'>+    size_t x2n; const BDIGIT *x2ds;</div><div class='add'>+    size_t y0n; const BDIGIT *y0ds;</div><div class='add'>+    size_t y1n; const BDIGIT *y1ds;</div><div class='add'>+    size_t y2n; const BDIGIT *y2ds;</div><div class='add'>+</div><div class='add'>+    size_t u1n; BDIGIT *u1ds; int u1p;</div><div class='add'>+    size_t u2n; BDIGIT *u2ds; int u2p;</div><div class='add'>+    size_t u3n; BDIGIT *u3ds; int u3p;</div><div class='add'>+</div><div class='add'>+    size_t v1n; BDIGIT *v1ds; int v1p;</div><div class='add'>+    size_t v2n; BDIGIT *v2ds; int v2p;</div><div class='add'>+    size_t v3n; BDIGIT *v3ds; int v3p;</div><div class='add'>+</div><div class='add'>+    size_t t0n; BDIGIT *t0ds; int t0p;</div><div class='add'>+    size_t t1n; BDIGIT *t1ds; int t1p;</div><div class='add'>+    size_t t2n; BDIGIT *t2ds; int t2p;</div><div class='add'>+    size_t t3n; BDIGIT *t3ds; int t3p;</div><div class='add'>+    size_t t4n; BDIGIT *t4ds; int t4p;</div><div class='add'>+</div><div class='add'>+    size_t z0n; BDIGIT *z0ds;</div><div class='add'>+    size_t z1n; BDIGIT *z1ds; int z1p;</div><div class='add'>+    size_t z2n; BDIGIT *z2ds; int z2p;</div><div class='add'>+    size_t z3n; BDIGIT *z3ds; int z3p;</div><div class='add'>+    size_t z4n; BDIGIT *z4ds;</div><div class='add'>+</div><div class='add'>+    size_t zzn; BDIGIT *zzds;</div><div class='add'>+</div><div class='add'>+    int sq = xds == yds &amp;&amp; xn == yn;</div><div class='add'>+</div><div class='add'>+    assert(xn &lt;= yn);  /* assume y &gt;= x */</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    n = (yn + 2) / 3;</div><div class='add'>+    assert(2*n &lt; xn);</div><div class='add'>+</div><div class='add'>+    wnc = 0;</div><div class='add'>+</div><div class='add'>+    wnc += (u1n = n+1); /* BITSPERDIG*n+2 bits */</div><div class='add'>+    wnc += (u2n = n+1); /* BITSPERDIG*n+1 bits */</div><div class='add'>+    wnc += (u3n = n+1); /* BITSPERDIG*n+3 bits */</div><div class='add'>+    wnc += (v1n = n+1); /* BITSPERDIG*n+2 bits */</div><div class='add'>+    wnc += (v2n = n+1); /* BITSPERDIG*n+1 bits */</div><div class='add'>+    wnc += (v3n = n+1); /* BITSPERDIG*n+3 bits */</div><div class='add'>+</div><div class='add'>+    wnc += (t0n = 2*n); /* BITSPERDIG*2*n bits */</div><div class='add'>+    wnc += (t1n = 2*n+2); /* BITSPERDIG*2*n+4 bits but bary_mul needs u1n+v1n */</div><div class='add'>+    wnc += (t2n = 2*n+2); /* BITSPERDIG*2*n+2 bits but bary_mul needs u2n+v2n */</div><div class='add'>+    wnc += (t3n = 2*n+2); /* BITSPERDIG*2*n+6 bits but bary_mul needs u3n+v3n */</div><div class='add'>+    wnc += (t4n = 2*n); /* BITSPERDIG*2*n bits */</div><div class='add'>+</div><div class='add'>+    wnc += (z1n = 2*n+1); /* BITSPERDIG*2*n+5 bits */</div><div class='add'>+    wnc += (z2n = 2*n+1); /* BITSPERDIG*2*n+6 bits */</div><div class='add'>+    wnc += (z3n = 2*n+1); /* BITSPERDIG*2*n+8 bits */</div><div class='add'>+</div><div class='add'>+    if (wn &lt; wnc) {</div><div class='add'>+        wn = wnc * 3 / 2; /* Allocate working memory for whole recursion at once. */</div><div class='add'>+        wds = ALLOCV_N(BDIGIT, work, wn);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    u1ds = wds; wds += u1n;</div><div class='add'>+    u2ds = wds; wds += u2n;</div><div class='add'>+    u3ds = wds; wds += u3n;</div><div class='add'>+</div><div class='add'>+    v1ds = wds; wds += v1n;</div><div class='add'>+    v2ds = wds; wds += v2n;</div><div class='add'>+    v3ds = wds; wds += v3n;</div><div class='add'>+</div><div class='add'>+    t0ds = wds; wds += t0n;</div><div class='add'>+    t1ds = wds; wds += t1n;</div><div class='add'>+    t2ds = wds; wds += t2n;</div><div class='add'>+    t3ds = wds; wds += t3n;</div><div class='add'>+    t4ds = wds; wds += t4n;</div><div class='add'>+</div><div class='add'>+    z1ds = wds; wds += z1n;</div><div class='add'>+    z2ds = wds; wds += z2n;</div><div class='add'>+    z3ds = wds; wds += z3n;</div><div class='add'>+</div><div class='add'>+    wn -= wnc;</div><div class='add'>+</div><div class='add'>+    zzds = u1ds;</div><div class='add'>+    zzn = 6*n+1;</div><div class='add'>+</div><div class='add'>+    x0n = n;</div><div class='add'>+    x1n = n;</div><div class='add'>+    x2n = xn - 2*n;</div><div class='add'>+    x0ds = xds;</div><div class='add'>+    x1ds = xds + n;</div><div class='add'>+    x2ds = xds + 2*n;</div><div class='add'>+</div><div class='add'>+    if (sq) {</div><div class='add'>+        y0n = x0n;</div><div class='add'>+        y1n = x1n;</div><div class='add'>+        y2n = x2n;</div><div class='add'>+        y0ds = x0ds;</div><div class='add'>+        y1ds = x1ds;</div><div class='add'>+        y2ds = x2ds;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        y0n = n;</div><div class='add'>+        y1n = n;</div><div class='add'>+        y2n = yn - 2*n;</div><div class='add'>+        y0ds = yds;</div><div class='add'>+        y1ds = yds + n;</div><div class='add'>+        y2ds = yds + 2*n;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * ref. http://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication</div><div class='add'>+     *</div><div class='add'>+     * x(b) = x0 * b^0 + x1 * b^1 + x2 * b^2</div><div class='add'>+     * y(b) = y0 * b^0 + y1 * b^1 + y2 * b^2</div><div class='add'>+     *</div><div class='add'>+     * z(b) = x(b) * y(b)</div><div class='add'>+     * z(b) = z0 * b^0 + z1 * b^1 + z2 * b^2 + z3 * b^3 + z4 * b^4</div><div class='add'>+     * where:</div><div class='add'>+     *   z0 = x0 * y0</div><div class='add'>+     *   z1 = x0 * y1 + x1 * y0</div><div class='add'>+     *   z2 = x0 * y2 + x1 * y1 + x2 * y0</div><div class='add'>+     *   z3 = x1 * y2 + x2 * y1</div><div class='add'>+     *   z4 = x2 * y2</div><div class='add'>+     *</div><div class='add'>+     * Toom3 method (a.k.a. Toom-Cook method):</div><div class='add'>+     * (Step1) calculating 5 points z(b0), z(b1), z(b2), z(b3), z(b4),</div><div class='add'>+     * where:</div><div class='add'>+     *   b0 = 0, b1 = 1, b2 = -1, b3 = -2, b4 = inf,</div><div class='add'>+     *   z(0)   = x(0)   * y(0)   = x0 * y0</div><div class='add'>+     *   z(1)   = x(1)   * y(1)   = (x0 + x1 + x2) * (y0 + y1 + y2)</div><div class='add'>+     *   z(-1)  = x(-1)  * y(-1)  = (x0 - x1 + x2) * (y0 - y1 + y2)</div><div class='add'>+     *   z(-2)  = x(-2)  * y(-2)  = (x0 - 2 * (x1 - 2 * x2)) * (y0 - 2 * (y1 - 2 * y2))</div><div class='add'>+     *   z(inf) = x(inf) * y(inf) = x2 * y2</div><div class='add'>+     *</div><div class='add'>+     * (Step2) interpolating z0, z1, z2, z3 and z4.</div><div class='add'>+     *</div><div class='add'>+     * (Step3) Substituting base value into b of the polynomial z(b),</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * [Step1] calculating 5 points z(b0), z(b1), z(b2), z(b3), z(b4)</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /* u1 &lt;- x0 + x2 */</div><div class='add'>+    bary_add(u1ds, u1n, x0ds, x0n, x2ds, x2n);</div><div class='add'>+    u1p = 1;</div><div class='add'>+</div><div class='add'>+    /* x(-1) : u2 &lt;- u1 - x1 = x0 - x1 + x2 */</div><div class='add'>+    if (bary_sub(u2ds, u2n, u1ds, u1n, x1ds, x1n)) {</div><div class='add'>+        bary_2comp(u2ds, u2n);</div><div class='add'>+        u2p = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        u2p = 1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='add'>+    /* x(1) : u1 &lt;- u1 + x1 = x0 + x1 + x2 */</div><div class='add'>+    bary_add(u1ds, u1n, u1ds, u1n, x1ds, x1n);</div><div class='add'>+</div><div class='add'>+    /* x(-2) : u3 &lt;- 2 * (u2 + x2) - x0 = x0 - 2 * (x1 - 2 * x2) */</div><div class='add'>+    u3p = 1;</div><div class='add'>+    if (u2p) {</div><div class='add'>+        bary_add(u3ds, u3n, u2ds, u2n, x2ds, x2n);</div><div class='add'>+    }</div><div class='add'>+    else if (bary_sub(u3ds, u3n, x2ds, x2n, u2ds, u2n)) {</div><div class='add'>+        bary_2comp(u3ds, u3n);</div><div class='add'>+        u3p = 0;</div><div class='add'>+    }</div><div class='add'>+    bary_small_lshift(u3ds, u3ds, u3n, 1);</div><div class='add'>+    if (!u3p) {</div><div class='add'>+        bary_add(u3ds, u3n, u3ds, u3n, x0ds, x0n);</div><div class='add'>+    }</div><div class='add'>+    else if (bary_sub(u3ds, u3n, u3ds, u3n, x0ds, x0n)) {</div><div class='add'>+        bary_2comp(u3ds, u3n);</div><div class='add'>+        u3p = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (sq) {</div><div class='add'>+        v1n = u1n; v1ds = u1ds; v1p = u1p;</div><div class='add'>+        v2n = u2n; v2ds = u2ds; v2p = u2p;</div><div class='add'>+        v3n = u3n; v3ds = u3ds; v3p = u3p;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* v1 &lt;- y0 + y2 */</div><div class='add'>+        bary_add(v1ds, v1n, y0ds, y0n, y2ds, y2n);</div><div class='add'>+        v1p = 1;</div><div class='add'>+</div><div class='add'>+	/* y(-1) : v2 &lt;- v1 - y1 = y0 - y1 + y2 */</div><div class='add'>+        v2p = 1;</div><div class='add'>+        if (bary_sub(v2ds, v2n, v1ds, v1n, y1ds, y1n)) {</div><div class='add'>+            bary_2comp(v2ds, v2n);</div><div class='add'>+            v2p = 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+	/* y(1) : v1 &lt;- v1 + y1 = y0 + y1 + y2 */</div><div class='add'>+        bary_add(v1ds, v1n, v1ds, v1n, y1ds, y1n);</div><div class='add'>+</div><div class='add'>+	/* y(-2) : v3 &lt;- 2 * (v2 + y2) - y0 = y0 - 2 * (y1 - 2 * y2) */</div><div class='add'>+        v3p = 1;</div><div class='add'>+        if (v2p) {</div><div class='add'>+            bary_add(v3ds, v3n, v2ds, v2n, y2ds, y2n);</div><div class='add'>+        }</div><div class='add'>+        else if (bary_sub(v3ds, v3n, y2ds, y2n, v2ds, v2n)) {</div><div class='add'>+            bary_2comp(v3ds, v3n);</div><div class='add'>+            v3p = 0;</div><div class='add'>+        }</div><div class='add'>+        bary_small_lshift(v3ds, v3ds, v3n, 1);</div><div class='add'>+        if (!v3p) {</div><div class='add'>+            bary_add(v3ds, v3n, v3ds, v3n, y0ds, y0n);</div><div class='add'>+        }</div><div class='add'>+        else if (bary_sub(v3ds, v3n, v3ds, v3n, y0ds, y0n)) {</div><div class='add'>+            bary_2comp(v3ds, v3n);</div><div class='add'>+            v3p = 0;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* z(0) : t0 &lt;- x0 * y0 */</div><div class='add'>+    bary_mul_toom3_start(t0ds, t0n, x0ds, x0n, y0ds, y0n, wds, wn);</div><div class='add'>+    t0p = 1;</div><div class='add'>+</div><div class='add'>+    /* z(1) : t1 &lt;- u1 * v1 */</div><div class='add'>+    bary_mul_toom3_start(t1ds, t1n, u1ds, u1n, v1ds, v1n, wds, wn);</div><div class='add'>+    t1p = u1p == v1p;</div><div class='add'>+    assert(t1ds[t1n-1] == 0);</div><div class='add'>+    t1n--;</div><div class='add'>+</div><div class='add'>+    /* z(-1) : t2 &lt;- u2 * v2 */</div><div class='add'>+    bary_mul_toom3_start(t2ds, t2n, u2ds, u2n, v2ds, v2n, wds, wn);</div><div class='add'>+    t2p = u2p == v2p;</div><div class='add'>+    assert(t2ds[t2n-1] == 0);</div><div class='add'>+    t2n--;</div><div class='add'>+</div><div class='add'>+    /* z(-2) : t3 &lt;- u3 * v3 */</div><div class='add'>+    bary_mul_toom3_start(t3ds, t3n, u3ds, u3n, v3ds, v3n, wds, wn);</div><div class='add'>+    t3p = u3p == v3p;</div><div class='add'>+    assert(t3ds[t3n-1] == 0);</div><div class='add'>+    t3n--;</div><div class='add'>+</div><div class='add'>+    /* z(inf) : t4 &lt;- x2 * y2 */</div><div class='add'>+    bary_mul_toom3_start(t4ds, t4n, x2ds, x2n, y2ds, y2n, wds, wn);</div><div class='add'>+    t4p = 1;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * [Step2] interpolating z0, z1, z2, z3 and z4.</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /* z0 &lt;- z(0) == t0 */</div><div class='add'>+    z0n = t0n; z0ds = t0ds;</div><div class='add'>+</div><div class='add'>+    /* z4 &lt;- z(inf) == t4 */</div><div class='add'>+    z4n = t4n; z4ds = t4ds;</div><div class='add'>+</div><div class='add'>+    /* z3 &lt;- (z(-2) - z(1)) / 3 == (t3 - t1) / 3 */</div><div class='add'>+    if (t3p == t1p) {</div><div class='add'>+        z3p = t3p;</div><div class='add'>+        if (bary_sub(z3ds, z3n, t3ds, t3n, t1ds, t1n)) {</div><div class='add'>+            bary_2comp(z3ds, z3n);</div><div class='add'>+            z3p = !z3p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        z3p = t3p;</div><div class='add'>+        bary_add(z3ds, z3n, t3ds, t3n, t1ds, t1n);</div><div class='add'>+    }</div><div class='add'>+    bigdivrem_single(z3ds, z3ds, z3n, 3);</div><div class='add'>+</div><div class='add'>+    /* z1 &lt;- (z(1) - z(-1)) / 2 == (t1 - t2) / 2 */</div><div class='add'>+    if (t1p == t2p) {</div><div class='add'>+        z1p = t1p;</div><div class='add'>+        if (bary_sub(z1ds, z1n, t1ds, t1n, t2ds, t2n)) {</div><div class='add'>+            bary_2comp(z1ds, z1n);</div><div class='add'>+            z1p = !z1p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        z1p = t1p;</div><div class='add'>+        bary_add(z1ds, z1n, t1ds, t1n, t2ds, t2n);</div><div class='add'>+    }</div><div class='add'>+    bary_small_rshift(z1ds, z1ds, z1n, 1, 0);</div><div class='add'>+</div><div class='add'>+    /* z2 &lt;- z(-1) - z(0) == t2 - t0 */</div><div class='add'>+    if (t2p == t0p) {</div><div class='add'>+        z2p = t2p;</div><div class='add'>+        if (bary_sub(z2ds, z2n, t2ds, t2n, t0ds, t0n)) {</div><div class='add'>+            bary_2comp(z2ds, z2n);</div><div class='add'>+            z2p = !z2p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        z2p = t2p;</div><div class='add'>+        bary_add(z2ds, z2n, t2ds, t2n, t0ds, t0n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* z3 &lt;- (z2 - z3) / 2 + 2 * z(inf) == (z2 - z3) / 2 + 2 * t4 */</div><div class='add'>+    if (z2p == z3p) {</div><div class='add'>+        z3p = z2p;</div><div class='add'>+        if (bary_sub(z3ds, z3n, z2ds, z2n, z3ds, z3n)) {</div><div class='add'>+            bary_2comp(z3ds, z3n);</div><div class='add'>+            z3p = !z3p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        z3p = z2p;</div><div class='add'>+        bary_add(z3ds, z3n, z2ds, z2n, z3ds, z3n);</div><div class='add'>+    }</div><div class='add'>+    bary_small_rshift(z3ds, z3ds, z3n, 1, 0);</div><div class='add'>+    if (z3p == t4p) {</div><div class='add'>+        bary_muladd_1xN(z3ds, z3n, 2, t4ds, t4n);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (bary_mulsub_1xN(z3ds, z3n, 2, t4ds, t4n)) {</div><div class='add'>+            bary_2comp(z3ds, z3n);</div><div class='add'>+            z3p = !z3p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* z2 &lt;- z2 + z1 - z(inf) == z2 + z1 - t4 */</div><div class='add'>+    if (z2p == z1p) {</div><div class='add'>+        bary_add(z2ds, z2n, z2ds, z2n, z1ds, z1n);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (bary_sub(z2ds, z2n, z2ds, z2n, z1ds, z1n)) {</div><div class='add'>+            bary_2comp(z2ds, z2n);</div><div class='add'>+            z2p = !z2p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (z2p == t4p) {</div><div class='add'>+        if (bary_sub(z2ds, z2n, z2ds, z2n, t4ds, t4n)) {</div><div class='add'>+            bary_2comp(z2ds, z2n);</div><div class='add'>+            z2p = !z2p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_add(z2ds, z2n, z2ds, z2n, t4ds, t4n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* z1 &lt;- z1 - z3 */</div><div class='add'>+    if (z1p == z3p) {</div><div class='add'>+        if (bary_sub(z1ds, z1n, z1ds, z1n, z3ds, z3n)) {</div><div class='add'>+            bary_2comp(z1ds, z1n);</div><div class='add'>+            z1p = !z1p;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_add(z1ds, z1n, z1ds, z1n, z3ds, z3n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * [Step3] Substituting base value into b of the polynomial z(b),</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    MEMCPY(zzds, z0ds, BDIGIT, z0n);</div><div class='add'>+    BDIGITS_ZERO(zzds + z0n, 4*n - z0n);</div><div class='add'>+    MEMCPY(zzds + 4*n, z4ds, BDIGIT, z4n);</div><div class='add'>+    BDIGITS_ZERO(zzds + 4*n + z4n, zzn - (4*n + z4n));</div><div class='add'>+    if (z1p)</div><div class='add'>+        bary_add(zzds +   n, zzn -   n, zzds +   n, zzn -   n, z1ds, z1n);</div><div class='add'>+    else</div><div class='add'>+        bary_sub(zzds +   n, zzn -   n, zzds +   n, zzn -   n, z1ds, z1n);</div><div class='add'>+    if (z2p)</div><div class='add'>+        bary_add(zzds + 2*n, zzn - 2*n, zzds + 2*n, zzn - 2*n, z2ds, z2n);</div><div class='add'>+    else</div><div class='add'>+        bary_sub(zzds + 2*n, zzn - 2*n, zzds + 2*n, zzn - 2*n, z2ds, z2n);</div><div class='add'>+    if (z3p)</div><div class='add'>+        bary_add(zzds + 3*n, zzn - 3*n, zzds + 3*n, zzn - 3*n, z3ds, z3n);</div><div class='add'>+    else</div><div class='add'>+        bary_sub(zzds + 3*n, zzn - 3*n, zzds + 3*n, zzn - 3*n, z3ds, z3n);</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(zzds, zzn);</div><div class='add'>+    MEMCPY(zds, zzds, BDIGIT, zzn);</div><div class='add'>+    BDIGITS_ZERO(zds + zzn, zn - zzn);</div><div class='add'>+</div><div class='add'>+    if (work)</div><div class='add'>+        ALLOCV_END(work);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul_toom3(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;</div><div class='add'>+    VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    if (xn &gt; yn || yn &lt; 3 || !TOOM3_BALANCED(xn,yn))</div><div class='add'>+        rb_raise(rb_eArgError, "unexpected bignum length for toom3");</div><div class='add'>+    bary_mul_toom3(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+static void</div><div class='add'>+bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_t x, y, z;</div><div class='add'>+    size_t count;</div><div class='add'>+</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    mpz_init(x);</div><div class='add'>+    mpz_init(y);</div><div class='add'>+    mpz_init(z);</div><div class='add'>+    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+    if (xds == yds &amp;&amp; xn == yn) {</div><div class='add'>+        mpz_mul(z, x, x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='add'>+        mpz_mul(z, x, y);</div><div class='add'>+    }</div><div class='add'>+    mpz_export(zds, &amp;count, -1, sizeof(BDIGIT), 0, nails, z);</div><div class='add'>+    BDIGITS_ZERO(zds+count, zn-count);</div><div class='add'>+    mpz_clear(x);</div><div class='add'>+    mpz_clear(y);</div><div class='add'>+    mpz_clear(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul_gmp(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;</div><div class='add'>+    VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    bary_mul_gmp(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_short_mul(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    if (xn == 1 &amp;&amp; yn == 1) {</div><div class='add'>+        bary_mul_single(zds, zn, xds[0], yds[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_mul_normal(zds, zn, xds, xn, yds, yn);</div><div class='add'>+        rb_thread_check_ints();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* determine whether a bignum is sparse or not by random sampling */</div><div class='add'>+static inline int</div><div class='add'>+bary_sparse_p(const BDIGIT *ds, size_t n)</div><div class='add'>+{</div><div class='add'>+    long c = 0;</div><div class='add'>+</div><div class='add'>+    if (          ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+</div><div class='add'>+    return (c &lt;= 1) ? 1 : 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bary_mul_precheck(BDIGIT **zdsp, size_t *znp, const BDIGIT **xdsp, size_t *xnp, const BDIGIT **ydsp, size_t *ynp)</div><div class='add'>+{</div><div class='add'>+    size_t nlsz; /* number of least significant zero BDIGITs */</div><div class='add'>+</div><div class='add'>+    BDIGIT *zds = *zdsp;</div><div class='add'>+    size_t zn = *znp;</div><div class='add'>+    const BDIGIT *xds = *xdsp;</div><div class='add'>+    size_t xn = *xnp;</div><div class='add'>+    const BDIGIT *yds = *ydsp;</div><div class='add'>+    size_t yn = *ynp;</div><div class='add'>+</div><div class='add'>+    assert(xn + yn &lt;= zn);</div><div class='add'>+</div><div class='add'>+    nlsz = 0;</div><div class='add'>+</div><div class='add'>+    while (0 &lt; xn) {</div><div class='add'>+        if (xds[xn-1] == 0) {</div><div class='add'>+            xn--;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            do {</div><div class='add'>+                if (xds[0] != 0)</div><div class='add'>+                    break;</div><div class='add'>+                xds++;</div><div class='add'>+                xn--;</div><div class='add'>+                nlsz++;</div><div class='add'>+            } while (0 &lt; xn);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (0 &lt; yn) {</div><div class='add'>+        if (yds[yn-1] == 0) {</div><div class='add'>+            yn--;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            do {</div><div class='add'>+                if (yds[0] != 0)</div><div class='add'>+                    break;</div><div class='add'>+                yds++;</div><div class='add'>+                yn--;</div><div class='add'>+                nlsz++;</div><div class='add'>+            } while (0 &lt; yn);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (nlsz) {</div><div class='add'>+        BDIGITS_ZERO(zds, nlsz);</div><div class='add'>+        zds += nlsz;</div><div class='add'>+        zn -= nlsz;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* make sure that y is longer than x */</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+        const BDIGIT *tds;</div><div class='add'>+        size_t tn;</div><div class='add'>+	tds = xds; xds = yds; yds = tds;</div><div class='add'>+	tn = xn; xn = yn; yn = tn;</div><div class='add'>+    }</div><div class='add'>+    assert(xn &lt;= yn);</div><div class='add'>+</div><div class='add'>+    if (xn &lt;= 1) {</div><div class='add'>+        if (xn == 0) {</div><div class='add'>+            BDIGITS_ZERO(zds, zn);</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (xds[0] == 1) {</div><div class='add'>+            MEMCPY(zds, yds, BDIGIT, yn);</div><div class='add'>+            BDIGITS_ZERO(zds+yn, zn-yn);</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+        if (POW2_P(xds[0])) {</div><div class='add'>+            zds[yn] = bary_small_lshift(zds, yds, yn, bit_length(xds[0])-1);</div><div class='add'>+            BDIGITS_ZERO(zds+yn+1, zn-yn-1);</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+        if (yn == 1 &amp;&amp; yds[0] == 1) {</div><div class='add'>+            zds[0] = xds[0];</div><div class='add'>+            BDIGITS_ZERO(zds+1, zn-1);</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+        bary_mul_normal(zds, zn, xds, xn, yds, yn);</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *zdsp = zds;</div><div class='add'>+    *znp = zn;</div><div class='add'>+    *xdsp = xds;</div><div class='add'>+    *xnp = xn;</div><div class='add'>+    *ydsp = yds;</div><div class='add'>+    *ynp = yn;</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    /* normal multiplication when x is small */</div><div class='add'>+    if (xn &lt; KARATSUBA_MUL_DIGITS) {</div><div class='add'>+      normal:</div><div class='add'>+        if (xds == yds &amp;&amp; xn == yn)</div><div class='add'>+            bary_sq_fast(zds, zn, xds, xn);</div><div class='add'>+        else</div><div class='add'>+            bary_short_mul(zds, zn, xds, xn, yds, yn);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* normal multiplication when x or y is a sparse bignum */</div><div class='add'>+    if (bary_sparse_p(xds, xn)) goto normal;</div><div class='add'>+    if (bary_sparse_p(yds, yn)) {</div><div class='add'>+        bary_short_mul(zds, zn, yds, yn, xds, xn);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* balance multiplication by slicing y when x is much smaller than y */</div><div class='add'>+    if (!KARATSUBA_BALANCED(xn, yn)) {</div><div class='add'>+        bary_mul_balance_with_mulfunc(zds, zn, xds, xn, yds, yn, wds, wn, bary_mul_karatsuba_start);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* multiplication by karatsuba method */</div><div class='add'>+    bary_mul_karatsuba(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_karatsuba_start(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    if (bary_mul_precheck(&amp;zds, &amp;zn, &amp;xds, &amp;xn, &amp;yds, &amp;yn))</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    bary_mul_karatsuba_branch(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_toom3_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    if (xn &lt; TOOM3_MUL_DIGITS) {</div><div class='add'>+        bary_mul_karatsuba_branch(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!TOOM3_BALANCED(xn, yn)) {</div><div class='add'>+        bary_mul_balance_with_mulfunc(zds, zn, xds, xn, yds, yn, wds, wn, bary_mul_toom3_start);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bary_mul_toom3(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul_toom3_start(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)</div><div class='add'>+{</div><div class='add'>+    if (bary_mul_precheck(&amp;zds, &amp;zn, &amp;xds, &amp;xn, &amp;yds, &amp;yn))</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    bary_mul_toom3_branch(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_mul(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    if (xn &lt;= yn) {</div><div class='add'>+        if (xn &lt; NAIVE_MUL_DIGITS) {</div><div class='add'>+            if (xds == yds &amp;&amp; xn == yn)</div><div class='add'>+                bary_sq_fast(zds, zn, xds, xn);</div><div class='add'>+            else</div><div class='add'>+                bary_short_mul(zds, zn, xds, xn, yds, yn);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (yn &lt; NAIVE_MUL_DIGITS) {</div><div class='add'>+            bary_short_mul(zds, zn, yds, yn, xds, xn);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+    bary_mul_gmp(zds, zn, xds, xn, yds, yn);</div><div class='add'>+#else</div><div class='add'>+    bary_mul_toom3_start(zds, zn, xds, xn, yds, yn, NULL, 0);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct big_div_struct {</div><div class='add'>+    size_t yn, zn;</div><div class='add'>+    BDIGIT *yds, *zds;</div><div class='add'>+    volatile VALUE stop;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+bigdivrem1(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct big_div_struct *bds = (struct big_div_struct*)ptr;</div><div class='add'>+    size_t yn = bds-&gt;yn;</div><div class='add'>+    size_t zn = bds-&gt;zn;</div><div class='add'>+    BDIGIT *yds = bds-&gt;yds, *zds = bds-&gt;zds;</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+    BDIGIT q;</div><div class='add'>+</div><div class='add'>+    do {</div><div class='add'>+	if (bds-&gt;stop) {</div><div class='add'>+	    bds-&gt;zn = zn;</div><div class='add'>+	    return 0;</div><div class='add'>+        }</div><div class='add'>+	if (zds[zn-1] == yds[yn-1]) q = BDIGMAX;</div><div class='add'>+	else q = (BDIGIT)((BIGUP(zds[zn-1]) + zds[zn-2])/yds[yn-1]);</div><div class='add'>+	if (q) {</div><div class='add'>+            num = bigdivrem_mulsub(zds+zn-(yn+1), yn+1,</div><div class='add'>+                                   q,</div><div class='add'>+                                   yds, yn);</div><div class='add'>+	    while (num) { /* "add back" required */</div><div class='add'>+		q--;</div><div class='add'>+                num = bary_add(zds+zn-(yn+1), yn,</div><div class='add'>+                               zds+zn-(yn+1), yn,</div><div class='add'>+                               yds, yn);</div><div class='add'>+                num--;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+        zn--;</div><div class='add'>+	zds[zn] = q;</div><div class='add'>+    } while (zn &gt; yn);</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_big_stop(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct big_div_struct *bds = ptr;</div><div class='add'>+    bds-&gt;stop = Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static BDIGIT</div><div class='add'>+bigdivrem_single1(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT x_higher_bdigit, BDIGIT y)</div><div class='add'>+{</div><div class='add'>+    assert(0 &lt; xn);</div><div class='add'>+    assert(x_higher_bdigit &lt; y);</div><div class='add'>+    if (POW2_P(y)) {</div><div class='add'>+        BDIGIT r;</div><div class='add'>+        r = xds[0] &amp; (y-1);</div><div class='add'>+        bary_small_rshift(qds, xds, xn, bit_length(y)-1, x_higher_bdigit);</div><div class='add'>+        return r;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        size_t i;</div><div class='add'>+        BDIGIT_DBL t2;</div><div class='add'>+        t2 = x_higher_bdigit;</div><div class='add'>+        i = xn;</div><div class='add'>+        while (i--) {</div><div class='add'>+            t2 = BIGUP(t2) + xds[i];</div><div class='add'>+            qds[i] = (BDIGIT)(t2 / y);</div><div class='add'>+            t2 %= y;</div><div class='add'>+        }</div><div class='add'>+        return (BDIGIT)t2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static BDIGIT</div><div class='add'>+bigdivrem_single(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT y)</div><div class='add'>+{</div><div class='add'>+    return bigdivrem_single1(qds, xds, xn, 0, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bigdivrem_restoring(BDIGIT *zds, size_t zn, BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    struct big_div_struct bds;</div><div class='add'>+    size_t ynzero;</div><div class='add'>+</div><div class='add'>+    assert(yn &lt; zn);</div><div class='add'>+    assert(BDIGIT_MSB(yds[yn-1]));</div><div class='add'>+    assert(zds[zn-1] &lt; yds[yn-1]);</div><div class='add'>+</div><div class='add'>+    for (ynzero = 0; !yds[ynzero]; ynzero++);</div><div class='add'>+</div><div class='add'>+    if (ynzero+1 == yn) {</div><div class='add'>+        BDIGIT r;</div><div class='add'>+        r = bigdivrem_single1(zds+yn, zds+ynzero, zn-yn, zds[zn-1], yds[ynzero]);</div><div class='add'>+        zds[ynzero] = r;</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bds.yn = yn - ynzero;</div><div class='add'>+    bds.zds = zds + ynzero;</div><div class='add'>+    bds.yds = yds + ynzero;</div><div class='add'>+    bds.stop = Qfalse;</div><div class='add'>+    bds.zn = zn - ynzero;</div><div class='add'>+    if (bds.zn &gt; 10000 || bds.yn &gt; 10000) {</div><div class='add'>+      retry:</div><div class='add'>+	bds.stop = Qfalse;</div><div class='add'>+	rb_thread_call_without_gvl(bigdivrem1, &amp;bds, rb_big_stop, &amp;bds);</div><div class='add'>+</div><div class='add'>+	if (bds.stop == Qtrue) {</div><div class='add'>+	    /* execute trap handler, but exception was not raised. */</div><div class='add'>+	    goto retry;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	bigdivrem1(&amp;bds);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_divmod_normal(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    int shift;</div><div class='add'>+    BDIGIT *zds, *yyds;</div><div class='add'>+    size_t zn;</div><div class='add'>+    VALUE tmpyz = 0;</div><div class='add'>+</div><div class='add'>+    assert(yn &lt; xn || (xn == yn &amp;&amp; yds[yn - 1] &lt;= xds[xn - 1]));</div><div class='add'>+    assert(qds ? (xn - yn + 1) &lt;= qn : 1);</div><div class='add'>+    assert(rds ? yn &lt;= rn : 1);</div><div class='add'>+</div><div class='add'>+    zn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+</div><div class='add'>+    shift = nlz(yds[yn-1]);</div><div class='add'>+    if (shift) {</div><div class='add'>+        int alloc_y = !rds;</div><div class='add'>+        int alloc_z = !qds || qn &lt; zn;</div><div class='add'>+        if (alloc_y &amp;&amp; alloc_z) {</div><div class='add'>+            yyds = ALLOCV_N(BDIGIT, tmpyz, yn+zn);</div><div class='add'>+            zds = yyds + yn;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            yyds = alloc_y ? ALLOCV_N(BDIGIT, tmpyz, yn) : rds;</div><div class='add'>+            zds = alloc_z ? ALLOCV_N(BDIGIT, tmpyz, zn) : qds;</div><div class='add'>+        }</div><div class='add'>+        zds[xn] = bary_small_lshift(zds, xds, xn, shift);</div><div class='add'>+        bary_small_lshift(yyds, yds, yn, shift);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (qds &amp;&amp; zn &lt;= qn)</div><div class='add'>+            zds = qds;</div><div class='add'>+        else</div><div class='add'>+            zds = ALLOCV_N(BDIGIT, tmpyz, zn);</div><div class='add'>+        MEMCPY(zds, xds, BDIGIT, xn);</div><div class='add'>+        zds[xn] = 0;</div><div class='add'>+        /* bigdivrem_restoring will not modify y.</div><div class='add'>+         * So use yds directly.  */</div><div class='add'>+        yyds = (BDIGIT *)yds;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bigdivrem_restoring(zds, zn, yyds, yn);</div><div class='add'>+</div><div class='add'>+    if (rds) {</div><div class='add'>+        if (shift)</div><div class='add'>+            bary_small_rshift(rds, zds, yn, shift, 0);</div><div class='add'>+        else</div><div class='add'>+            MEMCPY(rds, zds, BDIGIT, yn);</div><div class='add'>+        BDIGITS_ZERO(rds+yn, rn-yn);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (qds) {</div><div class='add'>+        size_t j = zn - yn;</div><div class='add'>+        MEMMOVE(qds, zds+yn, BDIGIT, j);</div><div class='add'>+        BDIGITS_ZERO(qds+j, qn-j);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (tmpyz)</div><div class='add'>+        ALLOCV_END(tmpyz);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_divrem_normal(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), qn, rn;</div><div class='add'>+    BDIGIT *xds = BDIGITS(x), *yds = BDIGITS(y), *qds, *rds;</div><div class='add'>+    VALUE q, r;</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(yds, yn);</div><div class='add'>+    if (yn == 0)</div><div class='add'>+        rb_num_zerodiv();</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+</div><div class='add'>+    if (xn &lt; yn || (xn == yn &amp;&amp; xds[xn - 1] &lt; yds[yn - 1]))</div><div class='add'>+        return rb_assoc_new(LONG2FIX(0), x);</div><div class='add'>+</div><div class='add'>+    qn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+    q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    qds = BDIGITS(q);</div><div class='add'>+</div><div class='add'>+    rn = yn;</div><div class='add'>+    r = bignew(rn, BIGNUM_SIGN(x));</div><div class='add'>+    rds = BDIGITS(r);</div><div class='add'>+</div><div class='add'>+    bary_divmod_normal(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+</div><div class='add'>+    bigtrunc(q);</div><div class='add'>+    bigtrunc(r);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+</div><div class='add'>+    return rb_assoc_new(q, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+static void</div><div class='add'>+bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_t x, y, q, r;</div><div class='add'>+    size_t count;</div><div class='add'>+</div><div class='add'>+    assert(yn &lt; xn || (xn == yn &amp;&amp; yds[yn - 1] &lt;= xds[xn - 1]));</div><div class='add'>+    assert(qds ? (xn - yn + 1) &lt;= qn : 1);</div><div class='add'>+    assert(rds ? yn &lt;= rn : 1);</div><div class='add'>+    assert(qds || rds);</div><div class='add'>+</div><div class='add'>+    mpz_init(x);</div><div class='add'>+    mpz_init(y);</div><div class='add'>+    if (qds) mpz_init(q);</div><div class='add'>+    if (rds) mpz_init(r);</div><div class='add'>+</div><div class='add'>+    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+    mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='add'>+</div><div class='add'>+    if (!rds) {</div><div class='add'>+        mpz_fdiv_q(q, x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (!qds) {</div><div class='add'>+        mpz_fdiv_r(r, x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        mpz_fdiv_qr(q, r, x, y);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    mpz_clear(x);</div><div class='add'>+    mpz_clear(y);</div><div class='add'>+</div><div class='add'>+    if (qds) {</div><div class='add'>+        mpz_export(qds, &amp;count, -1, sizeof(BDIGIT), 0, nails, q);</div><div class='add'>+        BDIGITS_ZERO(qds+count, qn-count);</div><div class='add'>+        mpz_clear(q);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rds) {</div><div class='add'>+        mpz_export(rds, &amp;count, -1, sizeof(BDIGIT), 0, nails, r);</div><div class='add'>+        BDIGITS_ZERO(rds+count, rn-count);</div><div class='add'>+        mpz_clear(r);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_divrem_gmp(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), qn, rn;</div><div class='add'>+    BDIGIT *xds = BDIGITS(x), *yds = BDIGITS(y), *qds, *rds;</div><div class='add'>+    VALUE q, r;</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(yds, yn);</div><div class='add'>+    if (yn == 0)</div><div class='add'>+        rb_num_zerodiv();</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+</div><div class='add'>+    if (xn &lt; yn || (xn == yn &amp;&amp; xds[xn - 1] &lt; yds[yn - 1]))</div><div class='add'>+        return rb_assoc_new(LONG2FIX(0), x);</div><div class='add'>+</div><div class='add'>+    qn = xn - yn + 1;</div><div class='add'>+    q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+    qds = BDIGITS(q);</div><div class='add'>+</div><div class='add'>+    rn = yn;</div><div class='add'>+    r = bignew(rn, BIGNUM_SIGN(x));</div><div class='add'>+    rds = BDIGITS(r);</div><div class='add'>+</div><div class='add'>+    bary_divmod_gmp(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+</div><div class='add'>+    bigtrunc(q);</div><div class='add'>+    bigtrunc(r);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+</div><div class='add'>+    return rb_assoc_new(q, r);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_divmod_branch(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+    if (GMP_DIV_DIGITS &lt; xn) {</div><div class='add'>+        bary_divmod_gmp(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    bary_divmod_normal(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='add'>+{</div><div class='add'>+    assert(xn &lt;= qn);</div><div class='add'>+    assert(yn &lt;= rn);</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(yds, yn);</div><div class='add'>+    if (yn == 0)</div><div class='add'>+        rb_num_zerodiv();</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+    if (xn == 0) {</div><div class='add'>+        BDIGITS_ZERO(qds, qn);</div><div class='add'>+        BDIGITS_ZERO(rds, rn);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (xn &lt; yn || (xn == yn &amp;&amp; xds[xn - 1] &lt; yds[yn - 1])) {</div><div class='add'>+        MEMCPY(rds, xds, BDIGIT, xn);</div><div class='add'>+        BDIGITS_ZERO(rds+xn, rn-xn);</div><div class='add'>+        BDIGITS_ZERO(qds, qn);</div><div class='add'>+    }</div><div class='add'>+    else if (yn == 1) {</div><div class='add'>+        MEMCPY(qds, xds, BDIGIT, xn);</div><div class='add'>+        BDIGITS_ZERO(qds+xn, qn-xn);</div><div class='add'>+        rds[0] = bigdivrem_single(qds, xds, xn, yds[0]);</div><div class='add'>+        BDIGITS_ZERO(rds+1, rn-1);</div><div class='add'>+    }</div><div class='add'>+    else if (xn == 2 &amp;&amp; yn == 2) {</div><div class='add'>+        BDIGIT_DBL x = bary2bdigitdbl(xds, 2);</div><div class='add'>+        BDIGIT_DBL y = bary2bdigitdbl(yds, 2);</div><div class='add'>+        BDIGIT_DBL q = x / y;</div><div class='add'>+        BDIGIT_DBL r = x % y;</div><div class='add'>+        qds[0] = BIGLO(q);</div><div class='add'>+        qds[1] = BIGLO(BIGDN(q));</div><div class='add'>+        BDIGITS_ZERO(qds+2, qn-2);</div><div class='add'>+        rds[0] = BIGLO(r);</div><div class='add'>+        rds[1] = BIGLO(BIGDN(r));</div><div class='add'>+        BDIGITS_ZERO(rds+2, rn-2);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_divmod_branch(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define BIGNUM_DEBUG 0</div><div class='add'>+#if BIGNUM_DEBUG</div><div class='add'>+#define ON_DEBUG(x) do { x; } while (0)</div><div class='add'>+static void</div><div class='add'>+dump_bignum(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    printf("%c0x0", BIGNUM_SIGN(x) ? '+' : '-');</div><div class='add'>+    for (i = BIGNUM_LEN(x); i--; ) {</div><div class='add'>+        printf("_%0*"PRIxBDIGIT, SIZEOF_BDIGIT*2, BDIGITS(x)[i]);</div><div class='add'>+    }</div><div class='add'>+    printf(", len=%"PRIuSIZE, BIGNUM_LEN(x));</div><div class='add'>+    puts("");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_big_dump(VALUE x)</div><div class='add'>+{</div><div class='add'>+    dump_bignum(x);</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#define ON_DEBUG(x)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+bigzero_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return bary_zero_p(BDIGITS(x), BIGNUM_LEN(x));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_bigzero_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return BIGZEROP(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_cmpint(VALUE val, VALUE a, VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(val)) {</div><div class='add'>+	rb_cmperr(a, b);</div><div class='add'>+    }</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+        long l = FIX2LONG(val);</div><div class='add'>+        if (l &gt; 0) return 1;</div><div class='add'>+        if (l &lt; 0) return -1;</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+    if (RB_BIGNUM_TYPE_P(val)) {</div><div class='add'>+	if (BIGZEROP(val)) return 0;</div><div class='add'>+	if (BIGNUM_SIGN(val)) return 1;</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    if (RTEST(rb_funcall(val, '&gt;', 1, INT2FIX(0)))) return 1;</div><div class='add'>+    if (RTEST(rb_funcall(val, '&lt;', 1, INT2FIX(0)))) return -1;</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define BIGNUM_SET_LEN(b,l) \</div><div class='add'>+    ((RBASIC(b)-&gt;flags &amp; BIGNUM_EMBED_FLAG) ? \</div><div class='add'>+     (void)(RBASIC(b)-&gt;flags = \</div><div class='add'>+	    (RBASIC(b)-&gt;flags &amp; ~BIGNUM_EMBED_LEN_MASK) | \</div><div class='add'>+	    ((l) &lt;&lt; BIGNUM_EMBED_LEN_SHIFT)) : \</div><div class='add'>+     (void)(RBIGNUM(b)-&gt;as.heap.len = (l)))</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_big_realloc(VALUE big, size_t len)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+    if (RBASIC(big)-&gt;flags &amp; BIGNUM_EMBED_FLAG) {</div><div class='add'>+	if (BIGNUM_EMBED_LEN_MAX &lt; len) {</div><div class='add'>+	    ds = ALLOC_N(BDIGIT, len);</div><div class='add'>+	    MEMCPY(ds, RBIGNUM(big)-&gt;as.ary, BDIGIT, BIGNUM_EMBED_LEN_MAX);</div><div class='add'>+	    RBIGNUM(big)-&gt;as.heap.len = BIGNUM_LEN(big);</div><div class='add'>+	    RBIGNUM(big)-&gt;as.heap.digits = ds;</div><div class='add'>+	    RBASIC(big)-&gt;flags &amp;= ~BIGNUM_EMBED_FLAG;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (len &lt;= BIGNUM_EMBED_LEN_MAX) {</div><div class='add'>+	    ds = RBIGNUM(big)-&gt;as.heap.digits;</div><div class='add'>+	    RBASIC(big)-&gt;flags |= BIGNUM_EMBED_FLAG;</div><div class='add'>+	    BIGNUM_SET_LEN(big, len);</div><div class='add'>+            (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)-&gt;as.ary, sizeof(RBIGNUM(big)-&gt;as.ary));</div><div class='add'>+	    if (ds) {</div><div class='add'>+		MEMCPY(RBIGNUM(big)-&gt;as.ary, ds, BDIGIT, len);</div><div class='add'>+		xfree(ds);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (BIGNUM_LEN(big) == 0) {</div><div class='add'>+		RBIGNUM(big)-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		REALLOC_N(RBIGNUM(big)-&gt;as.heap.digits, BDIGIT, len);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_big_resize(VALUE big, size_t len)</div><div class='add'>+{</div><div class='add'>+    rb_big_realloc(big, len);</div><div class='add'>+    BIGNUM_SET_LEN(big, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bignew_1(VALUE klass, size_t len, int sign)</div><div class='add'>+{</div><div class='add'>+    NEWOBJ_OF(big, struct RBignum, klass, T_BIGNUM | (RGENGC_WB_PROTECTED_BIGNUM ? FL_WB_PROTECTED : 0));</div><div class='add'>+    BIGNUM_SET_SIGN(big, sign);</div><div class='add'>+    if (len &lt;= BIGNUM_EMBED_LEN_MAX) {</div><div class='add'>+	RBASIC(big)-&gt;flags |= BIGNUM_EMBED_FLAG;</div><div class='add'>+	BIGNUM_SET_LEN(big, len);</div><div class='add'>+        (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)-&gt;as.ary, sizeof(RBIGNUM(big)-&gt;as.ary));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	RBIGNUM(big)-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='add'>+	RBIGNUM(big)-&gt;as.heap.len = len;</div><div class='add'>+    }</div><div class='add'>+    OBJ_FREEZE(big);</div><div class='ctx'>     return (VALUE)big;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define bignew(len,sign) bignew_1(rb_cBignum,len,sign)</div><div class='add'>+VALUE</div><div class='add'>+rb_big_new(size_t len, int sign)</div><div class='add'>+{</div><div class='add'>+    return bignew(len, sign != 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_clone(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_clone(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    VALUE z = bignew_1(CLASS_OF(x), RBIGNUM(x)-&gt;len, RBIGNUM(x)-&gt;sign);</div><div class='add'>+    size_t len = BIGNUM_LEN(x);</div><div class='add'>+    VALUE z = bignew_1(CLASS_OF(x), len, BIGNUM_SIGN(x));</div><div class='ctx'> </div><div class='del'>-    MEMCPY(BDIGITS(z), BDIGITS(x), BDIGIT, RBIGNUM(x)-&gt;len);</div><div class='add'>+    MEMCPY(BDIGITS(z), BDIGITS(x), BDIGIT, len);</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+big_extend_carry(VALUE x)</div><div class='add'>+{</div><div class='add'>+    rb_big_resize(x, BIGNUM_LEN(x)+1);</div><div class='add'>+    BDIGITS(x)[BIGNUM_LEN(x)-1] = 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* modify a bignum by 2's complement */</div><div class='ctx'> static void</div><div class='del'>-get2comp(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+get2comp(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    long i = RBIGNUM(x)-&gt;len;</div><div class='add'>+    long i = BIGNUM_LEN(x);</div><div class='ctx'>     BDIGIT *ds = BDIGITS(x);</div><div class='del'>-    BDIGIT_DBL num;</div><div class='ctx'> </div><div class='del'>-    if (!i) return;</div><div class='del'>-    while (i--) ds[i] = ~ds[i];</div><div class='del'>-    i = 0; num = 1;</div><div class='del'>-    do {</div><div class='del'>-	num += ds[i];</div><div class='del'>-	ds[i++] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='del'>-    } while (i &lt; RBIGNUM(x)-&gt;len);</div><div class='del'>-    if (num != 0) {</div><div class='del'>-	REALLOC_N(RBIGNUM(x)-&gt;digits, BDIGIT, ++RBIGNUM(x)-&gt;len);</div><div class='del'>-	ds = BDIGITS(x);</div><div class='del'>-	ds[RBIGNUM(x)-&gt;len-1] = RBIGNUM(x)-&gt;sign ? ~0 : 1;</div><div class='add'>+    if (bary_2comp(ds, i)) {</div><div class='add'>+        big_extend_carry(x);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_big_2comp(x)			/* get 2's complement */</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_2comp(VALUE x)			/* get 2's complement */</div><div class='ctx'> {</div><div class='ctx'>     get2comp(x);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-bigtrunc(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+static BDIGIT</div><div class='add'>+abs2twocomp(VALUE *xp, long *n_ret)</div><div class='add'>+{</div><div class='add'>+    VALUE x = *xp;</div><div class='add'>+    long n = BIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='add'>+    BDIGIT hibits = 0;</div><div class='add'>+</div><div class='add'>+    BARY_TRUNC(ds, n);</div><div class='add'>+</div><div class='add'>+    if (n != 0 &amp;&amp; BIGNUM_NEGATIVE_P(x)) {</div><div class='add'>+        VALUE z = bignew_1(CLASS_OF(x), n, 0);</div><div class='add'>+        MEMCPY(BDIGITS(z), ds, BDIGIT, n);</div><div class='add'>+        bary_2comp(BDIGITS(z), n);</div><div class='add'>+        hibits = BDIGMAX;</div><div class='add'>+	*xp = z;</div><div class='add'>+    }</div><div class='add'>+    *n_ret = n;</div><div class='add'>+    return hibits;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+twocomp2abs_bang(VALUE x, int hibits)</div><div class='add'>+{</div><div class='add'>+    BIGNUM_SET_SIGN(x, !hibits);</div><div class='add'>+    if (hibits) {</div><div class='add'>+        get2comp(x);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+bigtrunc(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    long len = RBIGNUM(x)-&gt;len;</div><div class='add'>+    size_t len = BIGNUM_LEN(x);</div><div class='ctx'>     BDIGIT *ds = BDIGITS(x);</div><div class='ctx'> </div><div class='ctx'>     if (len == 0) return x;</div><div class='ctx'>     while (--len &amp;&amp; !ds[len]);</div><div class='del'>-    RBIGNUM(x)-&gt;len = ++len;</div><div class='add'>+    if (BIGNUM_LEN(x) &gt; len+1) {</div><div class='add'>+	rb_big_resize(x, len+1);</div><div class='add'>+    }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='add'>+static inline VALUE</div><div class='ctx'> bigfixize(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    long len = RBIGNUM(x)-&gt;len;</div><div class='add'>+    size_t n = BIGNUM_LEN(x);</div><div class='ctx'>     BDIGIT *ds = BDIGITS(x);</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    unsigned long u;</div><div class='add'>+#else</div><div class='add'>+    BDIGIT u;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (len*SIZEOF_BDIGITS &lt;= sizeof(VALUE)) {</div><div class='del'>-	long num = 0;</div><div class='del'>-	while (len--) {</div><div class='del'>-	    num = BIGUP(num) + ds[len];</div><div class='del'>-	}</div><div class='del'>-	if (num &gt;= 0) {</div><div class='del'>-	    if (RBIGNUM(x)-&gt;sign) {</div><div class='del'>-		if (POSFIXABLE(num)) return LONG2FIX(num);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (NEGFIXABLE(-(long)num)) return LONG2FIX(-(long)num);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    BARY_TRUNC(ds, n);</div><div class='add'>+</div><div class='add'>+    if (n == 0) return INT2FIX(0);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (sizeof(long)/SIZEOF_BDIGIT &lt; n)</div><div class='add'>+        goto return_big;</div><div class='add'>+    else {</div><div class='add'>+        int i = (int)n;</div><div class='add'>+        u = 0;</div><div class='add'>+        while (i--) {</div><div class='add'>+            u = (unsigned long)(BIGUP(u) + ds[i]);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#else /* SIZEOF_BDIGIT &gt;= SIZEOF_LONG */</div><div class='add'>+    if (1 &lt; n)</div><div class='add'>+        goto return_big;</div><div class='add'>+    else</div><div class='add'>+        u = ds[0];</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x)) {</div><div class='add'>+        if (POSFIXABLE(u)) return LONG2FIX((long)u);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (u &lt;= -FIXNUM_MIN) return LONG2FIX(-(long)u);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+  return_big:</div><div class='add'>+    rb_big_resize(x, n);</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bignorm(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    if (!FIXNUM_P(x) &amp;&amp; TYPE(x) == T_BIGNUM) {</div><div class='del'>-	x = bigfixize(bigtrunc(x));</div><div class='add'>+    if (RB_BIGNUM_TYPE_P(x)) {</div><div class='add'>+	x = bigfixize(x);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_norm(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_norm(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     return bignorm(x);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_uint2big(n)</div><div class='del'>-    unsigned long n;</div><div class='add'>+rb_uint2big(VALUE n)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT_DBL num = n;</div><div class='del'>-    long i = 0;</div><div class='del'>-    BDIGIT *digits;</div><div class='del'>-    VALUE big;</div><div class='add'>+    long i;</div><div class='add'>+    VALUE big = bignew(bdigit_roomof(SIZEOF_VALUE), 1);</div><div class='add'>+    BDIGIT *digits = BDIGITS(big);</div><div class='ctx'> </div><div class='del'>-    big = bignew(DIGSPERLONG, 1);</div><div class='del'>-    digits = BDIGITS(big);</div><div class='del'>-    while (i &lt; DIGSPERLONG) {</div><div class='del'>-	digits[i++] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_VALUE</div><div class='add'>+    digits[0] = n;</div><div class='add'>+#else</div><div class='add'>+    for (i = 0; i &lt; bdigit_roomof(SIZEOF_VALUE); i++) {</div><div class='add'>+	digits[i] = BIGLO(n);</div><div class='add'>+	n = BIGDN(n);</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    i = DIGSPERLONG;</div><div class='add'>+    i = bdigit_roomof(SIZEOF_VALUE);</div><div class='ctx'>     while (--i &amp;&amp; !digits[i]) ;</div><div class='del'>-    RBIGNUM(big)-&gt;len = i+1;</div><div class='add'>+    BIGNUM_SET_LEN(big, i+1);</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_int2big(n)</div><div class='del'>-    long n;</div><div class='add'>+rb_int2big(SIGNED_VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     long neg = 0;</div><div class='add'>+    VALUE u;</div><div class='ctx'>     VALUE big;</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	n = -n;</div><div class='add'>+        u = 1 + (VALUE)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='ctx'> 	neg = 1;</div><div class='ctx'>     }</div><div class='del'>-    big = rb_uint2big(n);</div><div class='add'>+    else {</div><div class='add'>+        u = n;</div><div class='add'>+    }</div><div class='add'>+    big = rb_uint2big(u);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	RBIGNUM(big)-&gt;sign = 0;</div><div class='add'>+	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='ctx'>     }</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_uint2inum(n)</div><div class='del'>-    unsigned long n;</div><div class='add'>+rb_uint2inum(VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='ctx'>     return rb_uint2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_int2inum(n)</div><div class='del'>-    long n;</div><div class='add'>+rb_int2inum(SIGNED_VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXABLE(n)) return LONG2FIX(n);</div><div class='ctx'>     return rb_int2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-</div><div class='ctx'> void</div><div class='del'>-rb_quad_pack(buf, val)</div><div class='del'>-    char *buf;</div><div class='del'>-    VALUE val;</div><div class='add'>+rb_big_pack(VALUE val, unsigned long *buf, long num_longs)</div><div class='ctx'> {</div><div class='del'>-    LONG_LONG q;</div><div class='add'>+    rb_integer_pack(val, buf, num_longs, sizeof(long), 0,</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER|</div><div class='add'>+            INTEGER_PACK_2COMP);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_unpack(unsigned long *buf, long num_longs)</div><div class='add'>+{</div><div class='add'>+    return rb_integer_unpack(buf, num_longs, sizeof(long), 0,</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER|</div><div class='add'>+            INTEGER_PACK_2COMP);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Calculate the number of bytes to be required to represent</div><div class='add'>+ * the absolute value of the integer given as _val_.</div><div class='add'>+ *</div><div class='add'>+ * [val] an integer.</div><div class='add'>+ * [nlz_bits_ret] number of leading zero bits in the most significant byte is returned if not NULL.</div><div class='add'>+ *</div><div class='add'>+ * This function returns ((val_numbits * CHAR_BIT + CHAR_BIT - 1) / CHAR_BIT)</div><div class='add'>+ * where val_numbits is the number of bits of abs(val).</div><div class='add'>+ * This function should not overflow.</div><div class='add'>+ *</div><div class='add'>+ * If nlz_bits_ret is not NULL,</div><div class='add'>+ * (return_value * CHAR_BIT - val_numbits) is stored in *nlz_bits_ret.</div><div class='add'>+ * In this case, 0 &lt;= *nlz_bits_ret &lt; CHAR_BIT.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+size_t</div><div class='add'>+rb_absint_size(VALUE val, int *nlz_bits_ret)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *dp;</div><div class='add'>+    BDIGIT *de;</div><div class='add'>+    BDIGIT fixbuf[bdigit_roomof(sizeof(long))];</div><div class='add'>+</div><div class='add'>+    int num_leading_zeros;</div><div class='ctx'> </div><div class='ctx'>     val = rb_to_int(val);</div><div class='add'>+</div><div class='ctx'>     if (FIXNUM_P(val)) {</div><div class='del'>-	q = FIX2LONG(val);</div><div class='add'>+        long v = FIX2LONG(val);</div><div class='add'>+        if (v &lt; 0) {</div><div class='add'>+            v = -v;</div><div class='add'>+        }</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+        fixbuf[0] = v;</div><div class='add'>+#else</div><div class='add'>+        {</div><div class='add'>+            int i;</div><div class='add'>+            for (i = 0; i &lt; numberof(fixbuf); i++) {</div><div class='add'>+                fixbuf[i] = BIGLO(v);</div><div class='add'>+                v = BIGDN(v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        dp = fixbuf;</div><div class='add'>+        de = fixbuf + numberof(fixbuf);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	long len = RBIGNUM(val)-&gt;len;</div><div class='del'>-	BDIGIT *ds;</div><div class='del'>-</div><div class='del'>-	if (len &gt; SIZEOF_LONG_LONG/SIZEOF_BDIGITS)</div><div class='del'>-	    rb_raise(rb_eRangeError, "bignum too big to convert into `quad int'");</div><div class='del'>-	ds = BDIGITS(val);</div><div class='del'>-	q = 0;</div><div class='del'>-	while (len--) {</div><div class='del'>-	    q = BIGUP(q);</div><div class='del'>-	    q += ds[len];</div><div class='del'>-	}</div><div class='del'>-	if (!RBIGNUM(val)-&gt;sign) q = -q;</div><div class='del'>-    }</div><div class='del'>-    memcpy(buf, (char*)&amp;q, SIZEOF_LONG_LONG);</div><div class='add'>+        dp = BDIGITS(val);</div><div class='add'>+        de = dp + BIGNUM_LEN(val);</div><div class='add'>+    }</div><div class='add'>+    while (dp &lt; de &amp;&amp; de[-1] == 0)</div><div class='add'>+        de--;</div><div class='add'>+    if (dp == de) {</div><div class='add'>+        if (nlz_bits_ret)</div><div class='add'>+            *nlz_bits_ret = 0;</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+    num_leading_zeros = nlz(de[-1]);</div><div class='add'>+    if (nlz_bits_ret)</div><div class='add'>+        *nlz_bits_ret = num_leading_zeros % CHAR_BIT;</div><div class='add'>+    return (de - dp) * SIZEOF_BDIGIT - num_leading_zeros / CHAR_BIT;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_quad_unpack(buf, sign)</div><div class='del'>-    const char *buf;</div><div class='del'>-    int sign;</div><div class='add'>+static size_t</div><div class='add'>+absint_numwords_small(size_t numbytes, int nlz_bits_in_msbyte, size_t word_numbits, size_t *nlz_bits_ret)</div><div class='ctx'> {</div><div class='del'>-    unsigned LONG_LONG q;</div><div class='del'>-    long neg = 0;</div><div class='del'>-    long i;</div><div class='del'>-    BDIGIT *digits;</div><div class='del'>-    VALUE big;</div><div class='add'>+    size_t val_numbits = numbytes * CHAR_BIT - nlz_bits_in_msbyte;</div><div class='add'>+    size_t div = val_numbits / word_numbits;</div><div class='add'>+    size_t mod = val_numbits % word_numbits;</div><div class='add'>+    size_t numwords;</div><div class='add'>+    size_t nlz_bits;</div><div class='add'>+    numwords = mod == 0 ? div : div + 1;</div><div class='add'>+    nlz_bits = mod == 0 ? 0 : word_numbits - mod;</div><div class='add'>+    *nlz_bits_ret = nlz_bits;</div><div class='add'>+    return numwords;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    memcpy(&amp;q, buf, SIZEOF_LONG_LONG);</div><div class='del'>-    if (sign) {</div><div class='del'>-	if (FIXABLE((LONG_LONG)q)) return LONG2FIX((LONG_LONG)q);</div><div class='del'>-	if ((LONG_LONG)q &lt; 0) {</div><div class='del'>-	    q = -(LONG_LONG)q;</div><div class='del'>-	    neg = 1;</div><div class='del'>-	}</div><div class='add'>+static size_t</div><div class='add'>+absint_numwords_generic(size_t numbytes, int nlz_bits_in_msbyte, size_t word_numbits, size_t *nlz_bits_ret)</div><div class='add'>+{</div><div class='add'>+    static const BDIGIT char_bit[1] = { CHAR_BIT };</div><div class='add'>+    BDIGIT numbytes_bary[bdigit_roomof(sizeof(numbytes))];</div><div class='add'>+    BDIGIT val_numbits_bary[bdigit_roomof(sizeof(numbytes) + 1)];</div><div class='add'>+    BDIGIT nlz_bits_in_msbyte_bary[1];</div><div class='add'>+    BDIGIT word_numbits_bary[bdigit_roomof(sizeof(word_numbits))];</div><div class='add'>+    BDIGIT div_bary[numberof(val_numbits_bary) + BIGDIVREM_EXTRA_WORDS];</div><div class='add'>+    BDIGIT mod_bary[numberof(word_numbits_bary)];</div><div class='add'>+    BDIGIT one[1] = { 1 };</div><div class='add'>+    size_t nlz_bits;</div><div class='add'>+    size_t mod;</div><div class='add'>+    int sign;</div><div class='add'>+    size_t numwords;</div><div class='add'>+</div><div class='add'>+    nlz_bits_in_msbyte_bary[0] = nlz_bits_in_msbyte;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * val_numbits = numbytes * CHAR_BIT - nlz_bits_in_msbyte</div><div class='add'>+     * div, mod = val_numbits.divmod(word_numbits)</div><div class='add'>+     * numwords = mod == 0 ? div : div + 1</div><div class='add'>+     * nlz_bits = mod == 0 ? 0 : word_numbits - mod</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    bary_unpack(BARY_ARGS(numbytes_bary), &amp;numbytes, 1, sizeof(numbytes), 0,</div><div class='add'>+        INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+    BARY_SHORT_MUL(val_numbits_bary, numbytes_bary, char_bit);</div><div class='add'>+    if (nlz_bits_in_msbyte)</div><div class='add'>+        BARY_SUB(val_numbits_bary, val_numbits_bary, nlz_bits_in_msbyte_bary);</div><div class='add'>+    bary_unpack(BARY_ARGS(word_numbits_bary), &amp;word_numbits, 1, sizeof(word_numbits), 0,</div><div class='add'>+        INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+    BARY_DIVMOD(div_bary, mod_bary, val_numbits_bary, word_numbits_bary);</div><div class='add'>+    if (BARY_ZERO_P(mod_bary)) {</div><div class='add'>+        nlz_bits = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (POSFIXABLE(q)) return LONG2FIX(q);</div><div class='add'>+        BARY_ADD(div_bary, div_bary, one);</div><div class='add'>+        bary_pack(+1, BARY_ARGS(mod_bary), &amp;mod, 1, sizeof(mod), 0,</div><div class='add'>+            INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+        nlz_bits = word_numbits - mod;</div><div class='ctx'>     }</div><div class='add'>+    sign = bary_pack(+1, BARY_ARGS(div_bary), &amp;numwords, 1, sizeof(numwords), 0,</div><div class='add'>+        INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='ctx'> </div><div class='del'>-    i = 0;</div><div class='del'>-    big = bignew(DIGSPERLL, 1);</div><div class='del'>-    digits = BDIGITS(big);</div><div class='del'>-    while (i &lt; DIGSPERLL) {</div><div class='del'>-	digits[i++] = BIGLO(q);</div><div class='del'>-	q = BIGDN(q);</div><div class='add'>+    if (sign == 2) {</div><div class='add'>+#if defined __GNUC__ &amp;&amp; (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ == 4)</div><div class='add'>+	*nlz_bits_ret = 0;</div><div class='add'>+#endif</div><div class='add'>+        return (size_t)-1;</div><div class='ctx'>     }</div><div class='add'>+    *nlz_bits_ret = nlz_bits;</div><div class='add'>+    return numwords;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    i = DIGSPERLL;</div><div class='del'>-    while (i-- &amp;&amp; !digits[i]) ;</div><div class='del'>-    RBIGNUM(big)-&gt;len = i+1;</div><div class='add'>+/*</div><div class='add'>+ * Calculate the number of words to be required to represent</div><div class='add'>+ * the absolute value of the integer given as _val_.</div><div class='add'>+ *</div><div class='add'>+ * [val] an integer.</div><div class='add'>+ * [word_numbits] number of bits in a word.</div><div class='add'>+ * [nlz_bits_ret] number of leading zero bits in the most significant word is returned if not NULL.</div><div class='add'>+ *</div><div class='add'>+ * This function returns ((val_numbits * CHAR_BIT + word_numbits - 1) / word_numbits)</div><div class='add'>+ * where val_numbits is the number of bits of abs(val).</div><div class='add'>+ *</div><div class='add'>+ * This function can overflow.</div><div class='add'>+ * When overflow occur, (size_t)-1 is returned.</div><div class='add'>+ *</div><div class='add'>+ * If nlz_bits_ret is not NULL and overflow is not occur,</div><div class='add'>+ * (return_value * word_numbits - val_numbits) is stored in *nlz_bits_ret.</div><div class='add'>+ * In this case, 0 &lt;= *nlz_bits_ret &lt; word_numbits.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+size_t</div><div class='add'>+rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret)</div><div class='add'>+{</div><div class='add'>+    size_t numbytes;</div><div class='add'>+    int nlz_bits_in_msbyte;</div><div class='add'>+    size_t numwords;</div><div class='add'>+    size_t nlz_bits;</div><div class='ctx'> </div><div class='del'>-    if (neg) {</div><div class='del'>-	RBIGNUM(big)-&gt;sign = 0;</div><div class='add'>+    if (word_numbits == 0)</div><div class='add'>+        return (size_t)-1;</div><div class='add'>+</div><div class='add'>+    numbytes = rb_absint_size(val, &amp;nlz_bits_in_msbyte);</div><div class='add'>+</div><div class='add'>+    if (numbytes &lt;= SIZE_MAX / CHAR_BIT) {</div><div class='add'>+        numwords = absint_numwords_small(numbytes, nlz_bits_in_msbyte, word_numbits, &amp;nlz_bits);</div><div class='add'>+#ifdef DEBUG_INTEGER_PACK</div><div class='add'>+        {</div><div class='add'>+            size_t numwords0, nlz_bits0;</div><div class='add'>+            numwords0 = absint_numwords_generic(numbytes, nlz_bits_in_msbyte, word_numbits, &amp;nlz_bits0);</div><div class='add'>+            assert(numwords0 == numwords);</div><div class='add'>+            assert(nlz_bits0 == nlz_bits);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        numwords = absint_numwords_generic(numbytes, nlz_bits_in_msbyte, word_numbits, &amp;nlz_bits);</div><div class='ctx'>     }</div><div class='del'>-    return bignorm(big);</div><div class='add'>+    if (numwords == (size_t)-1)</div><div class='add'>+        return numwords;</div><div class='add'>+</div><div class='add'>+    if (nlz_bits_ret)</div><div class='add'>+        *nlz_bits_ret = nlz_bits;</div><div class='add'>+</div><div class='add'>+    return numwords;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Test abs(val) consists only a bit or not.</div><div class='add'>+ *</div><div class='add'>+ * Returns 1 if abs(val) == 1 &lt;&lt; n for some n &gt;= 0.</div><div class='add'>+ * Returns 0 otherwise.</div><div class='add'>+ *</div><div class='add'>+ * rb_absint_singlebit_p can be used to determine required buffer size</div><div class='add'>+ * for rb_integer_pack used with INTEGER_PACK_2COMP (two's complement).</div><div class='add'>+ *</div><div class='add'>+ * Following example calculates number of bits required to</div><div class='add'>+ * represent val in two's complement number, without sign bit.</div><div class='add'>+ *</div><div class='add'>+ *   size_t size;</div><div class='add'>+ *   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='add'>+ *   size = rb_absint_numwords(val, 1, NULL)</div><div class='add'>+ *   if (size == (size_t)-1) ...overflow...</div><div class='add'>+ *   if (neg &amp;&amp; rb_absint_singlebit_p(val))</div><div class='add'>+ *     size--;</div><div class='add'>+ *</div><div class='add'>+ * Following example calculates number of bytes required to</div><div class='add'>+ * represent val in two's complement number, with sign bit.</div><div class='add'>+ *</div><div class='add'>+ *   size_t size;</div><div class='add'>+ *   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='add'>+ *   int nlz_bits;</div><div class='add'>+ *   size = rb_absint_size(val, &amp;nlz_bits);</div><div class='add'>+ *   if (nlz_bits == 0 &amp;&amp; !(neg &amp;&amp; rb_absint_singlebit_p(val)))</div><div class='add'>+ *     size++;</div><div class='add'>+ */</div><div class='add'>+int</div><div class='add'>+rb_absint_singlebit_p(VALUE val)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *dp;</div><div class='add'>+    BDIGIT *de;</div><div class='add'>+    BDIGIT fixbuf[bdigit_roomof(sizeof(long))];</div><div class='add'>+    BDIGIT d;</div><div class='add'>+</div><div class='add'>+    val = rb_to_int(val);</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+        long v = FIX2LONG(val);</div><div class='add'>+        if (v &lt; 0) {</div><div class='add'>+            v = -v;</div><div class='add'>+        }</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+        fixbuf[0] = v;</div><div class='ctx'> #else</div><div class='add'>+        {</div><div class='add'>+            int i;</div><div class='add'>+            for (i = 0; i &lt; numberof(fixbuf); i++) {</div><div class='add'>+                fixbuf[i] = BIGLO(v);</div><div class='add'>+                v = BIGDN(v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        dp = fixbuf;</div><div class='add'>+        de = fixbuf + numberof(fixbuf);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        dp = BDIGITS(val);</div><div class='add'>+        de = dp + BIGNUM_LEN(val);</div><div class='add'>+    }</div><div class='add'>+    while (dp &lt; de &amp;&amp; de[-1] == 0)</div><div class='add'>+        de--;</div><div class='add'>+    while (dp &lt; de &amp;&amp; dp[0] == 0)</div><div class='add'>+        dp++;</div><div class='add'>+    if (dp == de) /* no bit set. */</div><div class='add'>+        return 0;</div><div class='add'>+    if (dp != de-1) /* two non-zero words. two bits set, at least. */</div><div class='add'>+        return 0;</div><div class='add'>+    d = *dp;</div><div class='add'>+    return POW2_P(d);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#define QUAD_SIZE 8</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_quad_pack(buf, val)</div><div class='del'>-    char *buf;</div><div class='del'>-    VALUE val;</div><div class='add'>+/*</div><div class='add'>+ * Export an integer into a buffer.</div><div class='add'>+ *</div><div class='add'>+ * This function fills the buffer specified by _words_ and _numwords_ as</div><div class='add'>+ * val in the format specified by _wordsize_, _nails_ and _flags_.</div><div class='add'>+ *</div><div class='add'>+ * [val] Fixnum, Bignum or another integer like object which has to_int method.</div><div class='add'>+ * [words] buffer to export abs(val).</div><div class='add'>+ * [numwords] the size of given buffer as number of words.</div><div class='add'>+ * [wordsize] the size of word as number of bytes.</div><div class='add'>+ * [nails] number of padding bits in a word.</div><div class='add'>+ *   Most significant nails bits of each word are filled by zero.</div><div class='add'>+ * [flags] bitwise or of constants which name starts "INTEGER_PACK_".</div><div class='add'>+ *</div><div class='add'>+ * flags:</div><div class='add'>+ * [INTEGER_PACK_MSWORD_FIRST] Store the most significant word as the first word.</div><div class='add'>+ * [INTEGER_PACK_LSWORD_FIRST] Store the least significant word as the first word.</div><div class='add'>+ * [INTEGER_PACK_MSBYTE_FIRST] Store the most significant byte in a word as the first byte in the word.</div><div class='add'>+ * [INTEGER_PACK_LSBYTE_FIRST] Store the least significant byte in a word as the first byte in the word.</div><div class='add'>+ * [INTEGER_PACK_NATIVE_BYTE_ORDER] INTEGER_PACK_MSBYTE_FIRST or INTEGER_PACK_LSBYTE_FIRST corresponding to the host's endian.</div><div class='add'>+ * [INTEGER_PACK_2COMP] Use 2's complement representation.</div><div class='add'>+ * [INTEGER_PACK_LITTLE_ENDIAN] Same as INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST</div><div class='add'>+ * [INTEGER_PACK_BIG_ENDIAN] Same as INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST</div><div class='add'>+ * [INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION] Use generic implementation (for test and debug).</div><div class='add'>+ *</div><div class='add'>+ * This function fills the buffer specified by _words_</div><div class='add'>+ * as abs(val) if INTEGER_PACK_2COMP is not specified in _flags_.</div><div class='add'>+ * If INTEGER_PACK_2COMP is specified, 2's complement representation of val is</div><div class='add'>+ * filled in the buffer.</div><div class='add'>+ *</div><div class='add'>+ * This function returns the signedness and overflow condition.</div><div class='add'>+ * The overflow condition depends on INTEGER_PACK_2COMP.</div><div class='add'>+ *</div><div class='add'>+ * INTEGER_PACK_2COMP is not specified:</div><div class='add'>+ *   -2 : negative overflow.  val &lt;= -2**(numwords*(wordsize*CHAR_BIT-nails))</div><div class='add'>+ *   -1 : negative without overflow.  -2**(numwords*(wordsize*CHAR_BIT-nails)) &lt; val &lt; 0</div><div class='add'>+ *   0 : zero.  val == 0</div><div class='add'>+ *   1 : positive without overflow.  0 &lt; val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails))</div><div class='add'>+ *   2 : positive overflow.  2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val</div><div class='add'>+ *</div><div class='add'>+ * INTEGER_PACK_2COMP is specified:</div><div class='add'>+ *   -2 : negative overflow.  val &lt; -2**(numwords*(wordsize*CHAR_BIT-nails))</div><div class='add'>+ *   -1 : negative without overflow.  -2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val &lt; 0</div><div class='add'>+ *   0 : zero.  val == 0</div><div class='add'>+ *   1 : positive without overflow.  0 &lt; val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails))</div><div class='add'>+ *   2 : positive overflow.  2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val</div><div class='add'>+ *</div><div class='add'>+ * The value, -2**(numwords*(wordsize*CHAR_BIT-nails)), is representable</div><div class='add'>+ * in 2's complement representation but not representable in absolute value.</div><div class='add'>+ * So -1 is returned for the value if INTEGER_PACK_2COMP is specified</div><div class='add'>+ * but returns -2 if INTEGER_PACK_2COMP is not specified.</div><div class='add'>+ *</div><div class='add'>+ * The least significant words are filled in the buffer when overflow occur.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags)</div><div class='ctx'> {</div><div class='del'>-    long len;</div><div class='add'>+    int sign;</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+    BDIGIT fixbuf[bdigit_roomof(sizeof(long))];</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(val) = rb_to_int(val);</div><div class='ctx'> </div><div class='del'>-    memset(buf, 0, QUAD_SIZE);</div><div class='del'>-    val = rb_to_int(val);</div><div class='ctx'>     if (FIXNUM_P(val)) {</div><div class='del'>-	val = rb_int2big(FIX2LONG(val));</div><div class='del'>-    }</div><div class='del'>-    len = RBIGNUM(val)-&gt;len * SIZEOF_BDIGITS;</div><div class='del'>-    if (len &gt; QUAD_SIZE) {</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `quad int'");</div><div class='del'>-    }</div><div class='del'>-    memcpy(buf, (char*)BDIGITS(val), len);</div><div class='del'>-    if (!RBIGNUM(val)-&gt;sign) {</div><div class='del'>-	len = QUAD_SIZE;</div><div class='del'>-	while (len--) {</div><div class='del'>-	    *buf = ~*buf;</div><div class='del'>-	    buf++;</div><div class='del'>-	}</div><div class='add'>+        long v = FIX2LONG(val);</div><div class='add'>+        if (v &lt; 0) {</div><div class='add'>+            sign = -1;</div><div class='add'>+            v = -v;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            sign = 1;</div><div class='add'>+        }</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+        fixbuf[0] = v;</div><div class='add'>+#else</div><div class='add'>+        {</div><div class='add'>+            int i;</div><div class='add'>+            for (i = 0; i &lt; numberof(fixbuf); i++) {</div><div class='add'>+                fixbuf[i] = BIGLO(v);</div><div class='add'>+                v = BIGDN(v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        ds = fixbuf;</div><div class='add'>+        num_bdigits = numberof(fixbuf);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        sign = BIGNUM_POSITIVE_P(val) ? 1 : -1;</div><div class='add'>+        ds = BDIGITS(val);</div><div class='add'>+        num_bdigits = BIGNUM_LEN(val);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return bary_pack(sign, ds, num_bdigits, words, numwords, wordsize, nails, flags);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define BNEG(b) (RSHIFT(((BDIGIT*)b)[QUAD_SIZE/SIZEOF_BDIGITS-1],BITSPERDIG-1) != 0)</div><div class='add'>+/*</div><div class='add'>+ * Import an integer into a buffer.</div><div class='add'>+ *</div><div class='add'>+ * [words] buffer to import.</div><div class='add'>+ * [numwords] the size of given buffer as number of words.</div><div class='add'>+ * [wordsize] the size of word as number of bytes.</div><div class='add'>+ * [nails] number of padding bits in a word.</div><div class='add'>+ *   Most significant nails bits of each word are ignored.</div><div class='add'>+ * [flags] bitwise or of constants which name starts "INTEGER_PACK_".</div><div class='add'>+ *</div><div class='add'>+ * flags:</div><div class='add'>+ * [INTEGER_PACK_MSWORD_FIRST] Interpret the first word as the most significant word.</div><div class='add'>+ * [INTEGER_PACK_LSWORD_FIRST] Interpret the first word as the least significant word.</div><div class='add'>+ * [INTEGER_PACK_MSBYTE_FIRST] Interpret the first byte in a word as the most significant byte in the word.</div><div class='add'>+ * [INTEGER_PACK_LSBYTE_FIRST] Interpret the first byte in a word as the least significant byte in the word.</div><div class='add'>+ * [INTEGER_PACK_NATIVE_BYTE_ORDER] INTEGER_PACK_MSBYTE_FIRST or INTEGER_PACK_LSBYTE_FIRST corresponding to the host's endian.</div><div class='add'>+ * [INTEGER_PACK_2COMP] Use 2's complement representation.</div><div class='add'>+ * [INTEGER_PACK_LITTLE_ENDIAN] Same as INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST</div><div class='add'>+ * [INTEGER_PACK_BIG_ENDIAN] Same as INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST</div><div class='add'>+ * [INTEGER_PACK_FORCE_BIGNUM] the result will be a Bignum</div><div class='add'>+ *   even if it is representable as a Fixnum.</div><div class='add'>+ * [INTEGER_PACK_NEGATIVE] Returns non-positive value.</div><div class='add'>+ *   (Returns non-negative value if not specified.)</div><div class='add'>+ * [INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION] Use generic implementation (for test and debug).</div><div class='add'>+ *</div><div class='add'>+ * This function returns the imported integer as Fixnum or Bignum.</div><div class='add'>+ *</div><div class='add'>+ * The range of the result value depends on INTEGER_PACK_2COMP and INTEGER_PACK_NEGATIVE.</div><div class='add'>+ *</div><div class='add'>+ * INTEGER_PACK_2COMP is not set:</div><div class='add'>+ *   0 &lt;= val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails)) if !INTEGER_PACK_NEGATIVE</div><div class='add'>+ *   -2**(numwords*(wordsize*CHAR_BIT-nails)) &lt; val &lt;= 0 if INTEGER_PACK_NEGATIVE</div><div class='add'>+ *</div><div class='add'>+ * INTEGER_PACK_2COMP is set:</div><div class='add'>+ *   -2**(numwords*(wordsize*CHAR_BIT-nails)-1) &lt;= val &lt;= 2**(numwords*(wordsize*CHAR_BIT-nails)-1)-1 if !INTEGER_PACK_NEGATIVE</div><div class='add'>+ *   -2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val &lt;= -1 if INTEGER_PACK_NEGATIVE</div><div class='add'>+ *</div><div class='add'>+ * INTEGER_PACK_2COMP without INTEGER_PACK_NEGATIVE means sign extension.</div><div class='add'>+ * INTEGER_PACK_2COMP with INTEGER_PACK_NEGATIVE mean assuming the higher bits are 1.</div><div class='add'>+ *</div><div class='add'>+ * Note that this function returns 0 when numwords is zero and</div><div class='add'>+ * INTEGER_PACK_2COMP is set but INTEGER_PACK_NEGATIVE is not set.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_quad_unpack(buf, sign)</div><div class='del'>-    const char *buf;</div><div class='add'>+rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags)</div><div class='add'>+{</div><div class='add'>+    VALUE val;</div><div class='add'>+    size_t num_bdigits;</div><div class='ctx'>     int sign;</div><div class='add'>+    int nlp_bits;</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+    BDIGIT fixbuf[2] = { 0, 0 };</div><div class='add'>+</div><div class='add'>+    validate_integer_pack_format(numwords, wordsize, nails, flags,</div><div class='add'>+            INTEGER_PACK_MSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|</div><div class='add'>+            INTEGER_PACK_MSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_LSBYTE_FIRST|</div><div class='add'>+            INTEGER_PACK_NATIVE_BYTE_ORDER|</div><div class='add'>+            INTEGER_PACK_2COMP|</div><div class='add'>+            INTEGER_PACK_FORCE_BIGNUM|</div><div class='add'>+            INTEGER_PACK_NEGATIVE|</div><div class='add'>+            INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);</div><div class='add'>+</div><div class='add'>+    num_bdigits = integer_unpack_num_bdigits(numwords, wordsize, nails, &amp;nlp_bits);</div><div class='add'>+</div><div class='add'>+    if (LONG_MAX-1 &lt; num_bdigits)</div><div class='add'>+        rb_raise(rb_eArgError, "too big to unpack as an integer");</div><div class='add'>+    if (num_bdigits &lt;= numberof(fixbuf) &amp;&amp; !(flags &amp; INTEGER_PACK_FORCE_BIGNUM)) {</div><div class='add'>+        val = Qfalse;</div><div class='add'>+        ds = fixbuf;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        val = bignew((long)num_bdigits, 0);</div><div class='add'>+        ds = BDIGITS(val);</div><div class='add'>+    }</div><div class='add'>+    sign = bary_unpack_internal(ds, num_bdigits, words, numwords, wordsize, nails, flags, nlp_bits);</div><div class='add'>+</div><div class='add'>+    if (sign == -2) {</div><div class='add'>+        if (val) {</div><div class='add'>+            big_extend_carry(val);</div><div class='add'>+        }</div><div class='add'>+        else if (num_bdigits == numberof(fixbuf)) {</div><div class='add'>+            val = bignew((long)num_bdigits+1, 0);</div><div class='add'>+	    MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);</div><div class='add'>+            BDIGITS(val)[num_bdigits++] = 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ds[num_bdigits++] = 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!val) {</div><div class='add'>+        BDIGIT_DBL u = fixbuf[0] + BIGUP(fixbuf[1]);</div><div class='add'>+        if (u == 0)</div><div class='add'>+            return LONG2FIX(0);</div><div class='add'>+	if (0 &lt; sign &amp;&amp; POSFIXABLE(u))</div><div class='add'>+            return LONG2FIX(u);</div><div class='add'>+	if (sign &lt; 0 &amp;&amp; BDIGIT_MSB(fixbuf[1]) == 0 &amp;&amp;</div><div class='add'>+                NEGFIXABLE(-(BDIGIT_DBL_SIGNED)u))</div><div class='add'>+            return LONG2FIX(-(BDIGIT_DBL_SIGNED)u);</div><div class='add'>+        val = bignew((long)num_bdigits, 0 &lt;= sign);</div><div class='add'>+        MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if ((flags &amp; INTEGER_PACK_FORCE_BIGNUM) &amp;&amp; sign != 0 &amp;&amp;</div><div class='add'>+        bary_zero_p(BDIGITS(val), BIGNUM_LEN(val)))</div><div class='add'>+        sign = 0;</div><div class='add'>+    BIGNUM_SET_SIGN(val, 0 &lt;= sign);</div><div class='add'>+</div><div class='add'>+    if (flags &amp; INTEGER_PACK_FORCE_BIGNUM)</div><div class='add'>+        return bigtrunc(val);</div><div class='add'>+    return bignorm(val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define conv_digit(c) (ruby_digit36_to_number_table[(unsigned char)(c)])</div><div class='add'>+</div><div class='add'>+NORETURN(static inline void invalid_radix(int base));</div><div class='add'>+NORETURN(static inline void invalid_integer(VALUE s));</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+valid_radix_p(int base)</div><div class='ctx'> {</div><div class='del'>-    VALUE big = bignew(QUAD_SIZE/SIZEOF_BDIGITS, 1);</div><div class='add'>+    return (1 &lt; base &amp;&amp; base &lt;= 36);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    memcpy((char*)BDIGITS(big), buf, QUAD_SIZE);</div><div class='del'>-    if (sign &amp;&amp; BNEG(buf)) {</div><div class='del'>-	long len = QUAD_SIZE;</div><div class='del'>-	char *tmp = (char*)BDIGITS(big);</div><div class='add'>+static inline void</div><div class='add'>+invalid_radix(int base)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eArgError, "invalid radix %d", base);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-	RBIGNUM(big)-&gt;sign = 0;</div><div class='del'>-	while (len--) {</div><div class='del'>-	    *tmp = ~*tmp;</div><div class='del'>-	    tmp++;</div><div class='del'>-	}</div><div class='add'>+static inline void</div><div class='add'>+invalid_integer(VALUE s)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eArgError, "invalid value for Integer(): %+"PRIsVALUE, s);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size_t *num_digits_p, ssize_t *len_p)</div><div class='add'>+{</div><div class='add'>+    char nondigit = 0;</div><div class='add'>+    size_t num_digits = 0;</div><div class='add'>+    const char *digits_start = str;</div><div class='add'>+    const char *digits_end = str;</div><div class='add'>+    ssize_t len = *len_p;</div><div class='add'>+</div><div class='add'>+    int c;</div><div class='add'>+</div><div class='add'>+    if (!len) {</div><div class='add'>+	*num_digits_p = 0;</div><div class='add'>+	*len_p = 0;</div><div class='add'>+	return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return bignorm(big);</div><div class='del'>-}</div><div class='add'>+    if (badcheck &amp;&amp; *str == '_') goto bad;</div><div class='ctx'> </div><div class='del'>-#endif</div><div class='add'>+    while ((c = *str++) != 0) {</div><div class='add'>+	if (c == '_') {</div><div class='add'>+	    if (nondigit) {</div><div class='add'>+		if (badcheck) goto bad;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    nondigit = (char) c;</div><div class='add'>+	}</div><div class='add'>+	else if ((c = conv_digit(c)) &lt; 0 || c &gt;= base) {</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    nondigit = 0;</div><div class='add'>+	    num_digits++;</div><div class='add'>+	    digits_end = str;</div><div class='add'>+	}</div><div class='add'>+	if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='add'>+    }</div><div class='add'>+    if (badcheck &amp;&amp; nondigit) goto bad;</div><div class='add'>+    if (badcheck &amp;&amp; len) {</div><div class='add'>+	str--;</div><div class='add'>+	while (*str &amp;&amp; ISSPACE(*str)) {</div><div class='add'>+	    str++;</div><div class='add'>+	    if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='add'>+	}</div><div class='add'>+	if (len &amp;&amp; *str) {</div><div class='add'>+	  bad:</div><div class='add'>+	    return FALSE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    *num_digits_p = num_digits;</div><div class='add'>+    *len_p = digits_end - digits_start;</div><div class='add'>+    return TRUE;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_cstr_to_inum(str, base, badcheck)</div><div class='del'>-    const char *str;</div><div class='del'>-    int base;</div><div class='del'>-    int badcheck;</div><div class='add'>+static VALUE</div><div class='add'>+str2big_poweroftwo(</div><div class='add'>+    int sign,</div><div class='add'>+    const char *digits_start,</div><div class='add'>+    const char *digits_end,</div><div class='add'>+    size_t num_digits,</div><div class='add'>+    int bits_per_digit)</div><div class='ctx'> {</div><div class='del'>-    const char *s = str;</div><div class='del'>-    char *end;</div><div class='del'>-    char sign = 1, nondigit = 0;</div><div class='add'>+    BDIGIT *dp;</div><div class='add'>+    BDIGIT_DBL dd;</div><div class='add'>+    int numbits;</div><div class='add'>+</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+    const char *p;</div><div class='ctx'>     int c;</div><div class='del'>-    BDIGIT_DBL num;</div><div class='del'>-    long len, blen = 1;</div><div class='del'>-    long i;</div><div class='ctx'>     VALUE z;</div><div class='add'>+</div><div class='add'>+    num_bdigits = (num_digits / BITSPERDIG) * bits_per_digit + roomof((num_digits % BITSPERDIG) * bits_per_digit, BITSPERDIG);</div><div class='add'>+    z = bignew(num_bdigits, sign);</div><div class='add'>+    dp = BDIGITS(z);</div><div class='add'>+    dd = 0;</div><div class='add'>+    numbits = 0;</div><div class='add'>+    for (p = digits_end; digits_start &lt; p; p--) {</div><div class='add'>+        if ((c = conv_digit(p[-1])) &lt; 0)</div><div class='add'>+            continue;</div><div class='add'>+        dd |= (BDIGIT_DBL)c &lt;&lt; numbits;</div><div class='add'>+        numbits += bits_per_digit;</div><div class='add'>+        if (BITSPERDIG &lt;= numbits) {</div><div class='add'>+            *dp++ = BIGLO(dd);</div><div class='add'>+            dd = BIGDN(dd);</div><div class='add'>+            numbits -= BITSPERDIG;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (numbits) {</div><div class='add'>+        *dp++ = BIGLO(dd);</div><div class='add'>+    }</div><div class='add'>+    assert((size_t)(dp - BDIGITS(z)) == num_bdigits);</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+str2big_normal(</div><div class='add'>+    int sign,</div><div class='add'>+    const char *digits_start,</div><div class='add'>+    const char *digits_end,</div><div class='add'>+    size_t num_bdigits,</div><div class='add'>+    int base)</div><div class='add'>+{</div><div class='add'>+    size_t blen = 1;</div><div class='ctx'>     BDIGIT *zds;</div><div class='add'>+    BDIGIT_DBL num;</div><div class='ctx'> </div><div class='del'>-#define conv_digit(c) \</div><div class='del'>-    (!ISASCII(c) ? -1 : \</div><div class='del'>-     isdigit(c) ? ((c) - '0') : \</div><div class='del'>-     islower(c) ? ((c) - 'a' + 10) : \</div><div class='del'>-     isupper(c) ? ((c) - 'A' + 10) : \</div><div class='del'>-     -1)</div><div class='add'>+    size_t i;</div><div class='add'>+    const char *p;</div><div class='add'>+    int c;</div><div class='add'>+    VALUE z;</div><div class='ctx'> </div><div class='del'>-    if (!str) {</div><div class='del'>-	if (badcheck) goto bad;</div><div class='del'>-	return INT2FIX(0);</div><div class='del'>-    }</div><div class='del'>-    if (badcheck) {</div><div class='del'>-	while (ISSPACE(*str)) str++;</div><div class='add'>+    z = bignew(num_bdigits, sign);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+    BDIGITS_ZERO(zds, num_bdigits);</div><div class='add'>+</div><div class='add'>+    for (p = digits_start; p &lt; digits_end; p++) {</div><div class='add'>+        if ((c = conv_digit(*p)) &lt; 0)</div><div class='add'>+            continue;</div><div class='add'>+        num = c;</div><div class='add'>+        i = 0;</div><div class='add'>+        for (;;) {</div><div class='add'>+            while (i&lt;blen) {</div><div class='add'>+                num += (BDIGIT_DBL)zds[i]*base;</div><div class='add'>+                zds[i++] = BIGLO(num);</div><div class='add'>+                num = BIGDN(num);</div><div class='add'>+            }</div><div class='add'>+            if (num) {</div><div class='add'>+                blen++;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        assert(blen &lt;= num_bdigits);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	while (ISSPACE(*str) || *str == '_') str++;</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+str2big_karatsuba(</div><div class='add'>+    int sign,</div><div class='add'>+    const char *digits_start,</div><div class='add'>+    const char *digits_end,</div><div class='add'>+    size_t num_digits,</div><div class='add'>+    size_t num_bdigits,</div><div class='add'>+    int digits_per_bdigits_dbl,</div><div class='add'>+    int base)</div><div class='add'>+{</div><div class='add'>+    VALUE powerv;</div><div class='add'>+    size_t unit;</div><div class='add'>+    VALUE tmpuv = 0;</div><div class='add'>+    BDIGIT *uds, *vds, *tds;</div><div class='add'>+    BDIGIT_DBL dd;</div><div class='add'>+    BDIGIT_DBL current_base;</div><div class='add'>+    int m;</div><div class='add'>+    int power_level = 0;</div><div class='add'>+</div><div class='add'>+    size_t i;</div><div class='add'>+    const char *p;</div><div class='add'>+    int c;</div><div class='add'>+    VALUE z;</div><div class='add'>+</div><div class='add'>+    uds = ALLOCV_N(BDIGIT, tmpuv, 2*num_bdigits);</div><div class='add'>+    vds = uds + num_bdigits;</div><div class='add'>+</div><div class='add'>+    powerv = power_cache_get_power(base, power_level, NULL);</div><div class='add'>+</div><div class='add'>+    i = 0;</div><div class='add'>+    dd = 0;</div><div class='add'>+    current_base = 1;</div><div class='add'>+    m = digits_per_bdigits_dbl;</div><div class='add'>+    if (num_digits &lt; (size_t)m)</div><div class='add'>+        m = (int)num_digits;</div><div class='add'>+    for (p = digits_end; digits_start &lt; p; p--) {</div><div class='add'>+        if ((c = conv_digit(p[-1])) &lt; 0)</div><div class='add'>+            continue;</div><div class='add'>+        dd = dd + c * current_base;</div><div class='add'>+        current_base *= base;</div><div class='add'>+        num_digits--;</div><div class='add'>+        m--;</div><div class='add'>+        if (m == 0) {</div><div class='add'>+            uds[i++] = BIGLO(dd);</div><div class='add'>+            uds[i++] = (BDIGIT)BIGDN(dd);</div><div class='add'>+            dd = 0;</div><div class='add'>+            m = digits_per_bdigits_dbl;</div><div class='add'>+            if (num_digits &lt; (size_t)m)</div><div class='add'>+                m = (int)num_digits;</div><div class='add'>+            current_base = 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    assert(i == num_bdigits);</div><div class='add'>+    for (unit = 2; unit &lt; num_bdigits; unit *= 2) {</div><div class='add'>+        for (i = 0; i &lt; num_bdigits; i += unit*2) {</div><div class='add'>+            if (2*unit &lt;= num_bdigits - i) {</div><div class='add'>+                bary_mul(vds+i, unit*2, BDIGITS(powerv), BIGNUM_LEN(powerv), uds+i+unit, unit);</div><div class='add'>+                bary_add(vds+i, unit*2, vds+i, unit*2, uds+i, unit);</div><div class='add'>+            }</div><div class='add'>+            else if (unit &lt;= num_bdigits - i) {</div><div class='add'>+                bary_mul(vds+i, num_bdigits-i, BDIGITS(powerv), BIGNUM_LEN(powerv), uds+i+unit, num_bdigits-(i+unit));</div><div class='add'>+                bary_add(vds+i, num_bdigits-i, vds+i, num_bdigits-i, uds+i, unit);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                MEMCPY(vds+i, uds+i, BDIGIT, num_bdigits-i);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        power_level++;</div><div class='add'>+        powerv = power_cache_get_power(base, power_level, NULL);</div><div class='add'>+        tds = vds;</div><div class='add'>+        vds = uds;</div><div class='add'>+        uds = tds;</div><div class='add'>+    }</div><div class='add'>+    BARY_TRUNC(uds, num_bdigits);</div><div class='add'>+    z = bignew(num_bdigits, sign);</div><div class='add'>+    MEMCPY(BDIGITS(z), uds, BDIGIT, num_bdigits);</div><div class='add'>+</div><div class='add'>+    if (tmpuv)</div><div class='add'>+        ALLOCV_END(tmpuv);</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+static VALUE</div><div class='add'>+str2big_gmp(</div><div class='add'>+    int sign,</div><div class='add'>+    const char *digits_start,</div><div class='add'>+    const char *digits_end,</div><div class='add'>+    size_t num_digits,</div><div class='add'>+    size_t num_bdigits,</div><div class='add'>+    int base)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    char *buf, *p;</div><div class='add'>+    const char *q;</div><div class='add'>+    VALUE tmps;</div><div class='add'>+    mpz_t mz;</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *zds;</div><div class='add'>+    size_t zn, count;</div><div class='add'>+</div><div class='add'>+    buf = ALLOCV_N(char, tmps, num_digits+1);</div><div class='add'>+    p = buf;</div><div class='add'>+    for (q = digits_start; q &lt; digits_end; q++) {</div><div class='add'>+        if (conv_digit(*q) &lt; 0)</div><div class='add'>+            continue;</div><div class='add'>+        *p++ = *q;</div><div class='ctx'>     }</div><div class='add'>+    *p = '\0';</div><div class='add'>+</div><div class='add'>+    mpz_init(mz);</div><div class='add'>+    mpz_set_str(mz, buf, base);</div><div class='add'>+    zn = num_bdigits;</div><div class='add'>+    z = bignew(zn, sign);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+    mpz_export(BDIGITS(z), &amp;count, -1, sizeof(BDIGIT), 0, nails, mz);</div><div class='add'>+    BDIGITS_ZERO(zds+count, zn-count);</div><div class='add'>+    mpz_clear(mz);</div><div class='ctx'> </div><div class='del'>-    if (str[0] == '+') {</div><div class='del'>-	str++;</div><div class='add'>+    if (tmps)</div><div class='add'>+        ALLOCV_END(tmps);</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Parse +str+ as Ruby Integer, i.e., underscores, 0d and 0b prefixes.</div><div class='add'>+ *</div><div class='add'>+ * str:      pointer to the string to be parsed.</div><div class='add'>+ *	     should be NUL-terminated.</div><div class='add'>+ * base:     base of conversion, must be 2..36, or -36..0.</div><div class='add'>+ *           if +base+ &gt; 0, the conversion is done according to the +base+</div><div class='add'>+ *           and unmatched prefix is parsed as a part of the result if</div><div class='add'>+ *           present.</div><div class='add'>+ *           if +base+ &lt;= 0, the conversion is done according to the</div><div class='add'>+ *           prefix if present, in base &lt;code&gt;-base&lt;/code&gt; if +base+ &lt; -1,</div><div class='add'>+ *           or in base 10.</div><div class='add'>+ * badcheck: if non-zero, +ArgumentError+ is raised when +str+ is not</div><div class='add'>+ *           valid as an Integer.  if zero, Fixnum 0 is returned in</div><div class='add'>+ *           that case.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_cstr_to_inum(const char *str, int base, int badcheck)</div><div class='add'>+{</div><div class='add'>+    char *end;</div><div class='add'>+    VALUE ret = rb_cstr_parse_inum(str, -1, (badcheck ? NULL : &amp;end), base);</div><div class='add'>+    if (NIL_P(ret)) {</div><div class='add'>+	if (badcheck) rb_invalid_str(str, "Integer()");</div><div class='add'>+	ret = INT2FIX(0);</div><div class='ctx'>     }</div><div class='del'>-    else if (str[0] == '-') {</div><div class='del'>-	str++;</div><div class='del'>-	sign = 0;</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Parse +str+ as Ruby Integer, i.e., underscores, 0d and 0b prefixes.</div><div class='add'>+ *</div><div class='add'>+ * str:  pointer to the string to be parsed.</div><div class='add'>+ *       should be NUL-terminated if +len+ is negative.</div><div class='add'>+ * len:  length of +str+ if &gt;= 0.  if +len+ is negative, +str+ should</div><div class='add'>+ *       be NUL-terminated.</div><div class='add'>+ * endp: if non-NULL, the address after parsed part is stored.  if</div><div class='add'>+ *       NULL, Qnil is returned when +str+ is not valid as an Integer.</div><div class='add'>+ * ndigits: if non-NULL, the number of parsed digits is stored.</div><div class='add'>+ * base: see +rb_cstr_to_inum+</div><div class='add'>+ * flags: bitwise OR of below flags:</div><div class='add'>+ *       RB_INT_PARSE_SIGN: allow preceding spaces and +/- sign</div><div class='add'>+ *       RB_INT_PARSE_UNDERSCORE: allow an underscore between digits</div><div class='add'>+ *       RB_INT_PARSE_PREFIX: allow preceding prefix</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,</div><div class='add'>+		  int base, int flags)</div><div class='add'>+{</div><div class='add'>+    const char *const s = str;</div><div class='add'>+    char sign = 1;</div><div class='add'>+    int c;</div><div class='add'>+    VALUE z = Qnil;</div><div class='add'>+</div><div class='add'>+    unsigned long val;</div><div class='add'>+    int ov;</div><div class='add'>+</div><div class='add'>+    const char *digits_start, *digits_end;</div><div class='add'>+    size_t num_digits = 0;</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+    const ssize_t len0 = len;</div><div class='add'>+    const int badcheck = !endp;</div><div class='add'>+</div><div class='add'>+#define ADV(n) do {\</div><div class='add'>+	if (len &gt; 0 &amp;&amp; len &lt;= (n)) goto bad; \</div><div class='add'>+	str += (n); \</div><div class='add'>+	len -= (n); \</div><div class='add'>+    } while (0)</div><div class='add'>+#define ASSERT_LEN() do {\</div><div class='add'>+	assert(len != 0); \</div><div class='add'>+	if (len0 &gt;= 0) assert(s + len0 == str + len); \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+    if (!str) {</div><div class='add'>+      bad:</div><div class='add'>+	if (endp) *endp = (char *)str;</div><div class='add'>+	if (ndigits) *ndigits = num_digits;</div><div class='add'>+	return z;</div><div class='ctx'>     }</div><div class='del'>-    if (str[0] == '+' || str[0] == '-') {</div><div class='del'>-	if (badcheck) goto bad;</div><div class='del'>-	return INT2FIX(0);</div><div class='add'>+    if (len &amp;&amp; (flags &amp; RB_INT_PARSE_SIGN)) {</div><div class='add'>+	while (ISSPACE(*str)) ADV(1);</div><div class='add'>+</div><div class='add'>+	if (str[0] == '+') {</div><div class='add'>+	    ADV(1);</div><div class='add'>+	}</div><div class='add'>+	else if (str[0] == '-') {</div><div class='add'>+	    ADV(1);</div><div class='add'>+	    sign = 0;</div><div class='add'>+	}</div><div class='add'>+	ASSERT_LEN();</div><div class='ctx'>     }</div><div class='ctx'>     if (base &lt;= 0) {</div><div class='del'>-	if (str[0] == '0') {</div><div class='add'>+	if (str[0] == '0' &amp;&amp; len &gt; 1) {</div><div class='ctx'> 	    switch (str[1]) {</div><div class='ctx'> 	      case 'x': case 'X':</div><div class='ctx'> 		base = 16;</div><div class='add'>+		ADV(2);</div><div class='ctx'> 		break;</div><div class='ctx'> 	      case 'b': case 'B':</div><div class='ctx'> 		base = 2;</div><div class='add'>+		ADV(2);</div><div class='ctx'> 		break;</div><div class='ctx'> 	      case 'o': case 'O':</div><div class='ctx'> 		base = 8;</div><div class='add'>+		ADV(2);</div><div class='ctx'> 		break;</div><div class='ctx'> 	      case 'd': case 'D':</div><div class='ctx'> 		base = 10;</div><div class='add'>+		ADV(2);</div><div class='ctx'> 		break;</div><div class='ctx'> 	      default:</div><div class='ctx'> 		base = 8;</div><div class='hunk'>@@ -416,68 +4093,75 @@ rb_cstr_to_inum(str, base, badcheck)</div><div class='ctx'> 	    base = 10;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    switch (base) {</div><div class='del'>-      case 2:</div><div class='del'>-	len = 1;</div><div class='add'>+    else if (len == 1 || !(flags &amp; RB_INT_PARSE_PREFIX)) {</div><div class='add'>+	/* no prefix */</div><div class='add'>+    }</div><div class='add'>+    else if (base == 2) {</div><div class='ctx'> 	if (str[0] == '0' &amp;&amp; (str[1] == 'b'||str[1] == 'B')) {</div><div class='del'>-	    str += 2;</div><div class='add'>+	    ADV(2);</div><div class='ctx'> 	}</div><div class='del'>-	break;</div><div class='del'>-      case 3:</div><div class='del'>-	len = 2;</div><div class='del'>-	break;</div><div class='del'>-      case 8:</div><div class='add'>+    }</div><div class='add'>+    else if (base == 8) {</div><div class='ctx'> 	if (str[0] == '0' &amp;&amp; (str[1] == 'o'||str[1] == 'O')) {</div><div class='del'>-	    str += 2;</div><div class='add'>+	    ADV(2);</div><div class='ctx'> 	}</div><div class='del'>-      case 4: case 5: case 6: case 7:</div><div class='del'>-	len = 3;</div><div class='del'>-	break;</div><div class='del'>-      case 10:</div><div class='add'>+    }</div><div class='add'>+    else if (base == 10) {</div><div class='ctx'> 	if (str[0] == '0' &amp;&amp; (str[1] == 'd'||str[1] == 'D')) {</div><div class='del'>-	    str += 2;</div><div class='add'>+	    ADV(2);</div><div class='ctx'> 	}</div><div class='del'>-      case 9: case 11: case 12: case 13: case 14: case 15:</div><div class='del'>-	len = 4;</div><div class='del'>-	break;</div><div class='del'>-      case 16:</div><div class='del'>-	len = 4;</div><div class='add'>+    }</div><div class='add'>+    else if (base == 16) {</div><div class='ctx'> 	if (str[0] == '0' &amp;&amp; (str[1] == 'x'||str[1] == 'X')) {</div><div class='del'>-	    str += 2;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      default:</div><div class='del'>-	if (base &lt; 2 || 36 &lt; base) {</div><div class='del'>-	    rb_raise(rb_eArgError, "illegal radix %d", base);</div><div class='add'>+	    ADV(2);</div><div class='ctx'> 	}</div><div class='del'>-	if (base &lt;= 32) {</div><div class='del'>-	    len = 5;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    len = 6;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='ctx'>     }</div><div class='del'>-    if (*str == '0') {		/* squeeze preceeding 0s */</div><div class='del'>-	while (*++str == '0');</div><div class='del'>-	if (!(c = *str) || ISSPACE(c)) --str;</div><div class='add'>+    if (!valid_radix_p(base)) {</div><div class='add'>+        invalid_radix(base);</div><div class='add'>+    }</div><div class='add'>+    if (!len) goto bad;</div><div class='add'>+    num_digits = str - s;</div><div class='add'>+    if (*str == '0' &amp;&amp; len != 1) { /* squeeze preceding 0s */</div><div class='add'>+	int us = 0;</div><div class='add'>+	const char *end = len &lt; 0 ? NULL : str + len;</div><div class='add'>+	++num_digits;</div><div class='add'>+	while ((c = *++str) == '0' ||</div><div class='add'>+	       ((flags &amp; RB_INT_PARSE_UNDERSCORE) &amp;&amp; c == '_')) {</div><div class='add'>+	    if (c == '_') {</div><div class='add'>+		if (++us &gt;= 2)</div><div class='add'>+		    break;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		++num_digits;</div><div class='add'>+		us = 0;</div><div class='add'>+	    }</div><div class='add'>+	    if (str == end) break;</div><div class='add'>+	}</div><div class='add'>+	if (!c || ISSPACE(c)) --str;</div><div class='add'>+	if (end) len = end - str;</div><div class='add'>+	ASSERT_LEN();</div><div class='ctx'>     }</div><div class='ctx'>     c = *str;</div><div class='ctx'>     c = conv_digit(c);</div><div class='ctx'>     if (c &lt; 0 || c &gt;= base) {</div><div class='del'>-	if (badcheck) goto bad;</div><div class='del'>-	return INT2FIX(0);</div><div class='del'>-    }</div><div class='del'>-    len *= strlen(str)*sizeof(char);</div><div class='del'>-</div><div class='del'>-    if (len &lt;= (sizeof(VALUE)*CHAR_BIT)) {</div><div class='del'>-	unsigned long val = strtoul((char*)str, &amp;end, base);</div><div class='del'>-</div><div class='del'>-	if (*end == '_') goto bigparse;</div><div class='add'>+	if (!badcheck &amp;&amp; num_digits) z = INT2FIX(0);</div><div class='add'>+	goto bad;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (ndigits) *ndigits = num_digits;</div><div class='add'>+    val = ruby_scan_digits(str, len, base, &amp;num_digits, &amp;ov);</div><div class='add'>+    if (!ov) {</div><div class='add'>+	const char *end = &amp;str[num_digits];</div><div class='add'>+	if (num_digits &gt; 0 &amp;&amp; *end == '_' &amp;&amp; (flags &amp; RB_INT_PARSE_UNDERSCORE))</div><div class='add'>+	    goto bigparse;</div><div class='add'>+	if (endp) *endp = (char *)end;</div><div class='add'>+	if (ndigits) *ndigits += num_digits;</div><div class='ctx'> 	if (badcheck) {</div><div class='del'>-	    if (end == str) goto bad; /* no number */</div><div class='del'>-	    while (*end &amp;&amp; ISSPACE(*end)) end++;</div><div class='del'>-	    if (*end) goto bad;	      /* trailing garbage */</div><div class='add'>+	    if (num_digits == 0) return Qnil; /* no number */</div><div class='add'>+	    while (len &lt; 0 ? *end : end &lt; str + len) {</div><div class='add'>+		if (!ISSPACE(*end)) return Qnil; /* trailing garbage */</div><div class='add'>+		end++;</div><div class='add'>+	    }</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	if (POSFIXABLE(val)) {</div><div class='hunk'>@@ -489,404 +4173,1013 @@ rb_cstr_to_inum(str, base, badcheck)</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    VALUE big = rb_uint2big(val);</div><div class='del'>-	    RBIGNUM(big)-&gt;sign = sign;</div><div class='add'>+	    BIGNUM_SET_SIGN(big, sign);</div><div class='ctx'> 	    return bignorm(big);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>   bigparse:</div><div class='del'>-    len = (len/BITSPERDIG)+1;</div><div class='del'>-    if (badcheck &amp;&amp; *str == '_') goto bad;</div><div class='add'>+    digits_start = str;</div><div class='add'>+    if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='add'>+	goto bad;</div><div class='add'>+    if (endp) *endp = (char *)(str + len);</div><div class='add'>+    if (ndigits) *ndigits += num_digits;</div><div class='add'>+    digits_end = digits_start + len;</div><div class='ctx'> </div><div class='del'>-    z = bignew(len, sign);</div><div class='del'>-    zds = BDIGITS(z);</div><div class='del'>-    for (i=len;i--;) zds[i]=0;</div><div class='del'>-    while ((c = *str++) != 0) {</div><div class='del'>-	if (c == '_') {</div><div class='del'>-	    if (badcheck) {</div><div class='del'>-		if (nondigit) goto bad;</div><div class='del'>-		nondigit = c;</div><div class='del'>-	    }</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	else if ((c = conv_digit(c)) &lt; 0) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	if (c &gt;= base) break;</div><div class='del'>-	nondigit = 0;</div><div class='del'>-	i = 0;</div><div class='del'>-	num = c;</div><div class='del'>-	for (;;) {</div><div class='del'>-	    while (i&lt;blen) {</div><div class='del'>-		num += (BDIGIT_DBL)zds[i]*base;</div><div class='del'>-		zds[i++] = BIGLO(num);</div><div class='del'>-		num = BIGDN(num);</div><div class='del'>-	    }</div><div class='del'>-	    if (num) {</div><div class='del'>-		blen++;</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+    if (POW2_P(base)) {</div><div class='add'>+        z = str2big_poweroftwo(sign, digits_start, digits_end, num_digits,</div><div class='add'>+			       bit_length(base-1));</div><div class='ctx'>     }</div><div class='del'>-    if (badcheck) {</div><div class='del'>-	str--;</div><div class='del'>-	if (s+1 &lt; str &amp;&amp; str[-1] == '_') goto bad;</div><div class='del'>-	while (*str &amp;&amp; ISSPACE(*str)) str++;</div><div class='del'>-	if (*str) {</div><div class='del'>-	  bad:</div><div class='del'>-	    rb_invalid_str(s, "Integer");</div><div class='del'>-	}</div><div class='add'>+    else {</div><div class='add'>+        int digits_per_bdigits_dbl;</div><div class='add'>+        maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='add'>+        num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+        if (GMP_STR2BIG_DIGITS &lt; num_bdigits) {</div><div class='add'>+            z = str2big_gmp(sign, digits_start, digits_end, num_digits,</div><div class='add'>+                    num_bdigits, base);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+#endif</div><div class='add'>+        if (num_bdigits &lt; KARATSUBA_MUL_DIGITS) {</div><div class='add'>+            z = str2big_normal(sign, digits_start, digits_end,</div><div class='add'>+                    num_bdigits, base);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            z = str2big_karatsuba(sign, digits_start, digits_end, num_digits,</div><div class='add'>+                    num_bdigits, digits_per_bdigits_dbl, base);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_str_to_inum(str, base, badcheck)</div><div class='del'>-    VALUE str;</div><div class='del'>-    int base;</div><div class='del'>-    int badcheck;</div><div class='add'>+rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base)</div><div class='ctx'> {</div><div class='del'>-    char *s;</div><div class='add'>+    return rb_int_parse_cstr(str, len, endp, NULL, base,</div><div class='add'>+			     RB_INT_PARSE_DEFAULT);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_str_to_inum(VALUE str, int base, int badcheck)</div><div class='add'>+{</div><div class='add'>+    VALUE ret;</div><div class='add'>+    const char *s;</div><div class='ctx'>     long len;</div><div class='add'>+    char *end;</div><div class='ctx'> </div><div class='ctx'>     StringValue(str);</div><div class='del'>-    if (badcheck) {</div><div class='del'>-	s = StringValueCStr(str);</div><div class='add'>+    rb_must_asciicompat(str);</div><div class='add'>+    RSTRING_GETMEM(str, s, len);</div><div class='add'>+    ret = rb_cstr_parse_inum(s, len, (badcheck ? NULL : &amp;end), base);</div><div class='add'>+    if (NIL_P(ret)) {</div><div class='add'>+	if (badcheck) invalid_integer(str);</div><div class='add'>+	ret = INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_str2big_poweroftwo(VALUE arg, int base, int badcheck)</div><div class='add'>+{</div><div class='add'>+    int positive_p = 1;</div><div class='add'>+    const char *s, *str;</div><div class='add'>+    const char *digits_start, *digits_end;</div><div class='add'>+    size_t num_digits;</div><div class='add'>+    ssize_t len;</div><div class='add'>+    VALUE z;</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base) || !POW2_P(base)) {</div><div class='add'>+        invalid_radix(base);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	s = RSTRING(str)-&gt;ptr;</div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(arg);</div><div class='add'>+    s = str = StringValueCStr(arg);</div><div class='add'>+    len = RSTRING_LEN(arg);</div><div class='add'>+    if (*str == '-') {</div><div class='add'>+	len--;</div><div class='add'>+        str++;</div><div class='add'>+        positive_p = 0;</div><div class='ctx'>     }</div><div class='del'>-    if (s) {</div><div class='del'>-	len = RSTRING(str)-&gt;len;</div><div class='del'>-	if (s[len]) {		/* no sentinel somehow */</div><div class='del'>-	    char *p = ALLOCA_N(char, len+1);</div><div class='ctx'> </div><div class='del'>-	    MEMCPY(p, s, char, len);</div><div class='del'>-	    p[len] = '\0';</div><div class='del'>-	    s = p;</div><div class='del'>-	}</div><div class='add'>+    digits_start = str;</div><div class='add'>+    if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='add'>+	invalid_integer(arg);</div><div class='add'>+    digits_end = digits_start + len;</div><div class='add'>+</div><div class='add'>+    z = str2big_poweroftwo(positive_p, digits_start, digits_end, num_digits,</div><div class='add'>+            bit_length(base-1));</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(arg);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_str2big_normal(VALUE arg, int base, int badcheck)</div><div class='add'>+{</div><div class='add'>+    int positive_p = 1;</div><div class='add'>+    const char *s, *str;</div><div class='add'>+    const char *digits_start, *digits_end;</div><div class='add'>+    size_t num_digits;</div><div class='add'>+    ssize_t len;</div><div class='add'>+    VALUE z;</div><div class='add'>+</div><div class='add'>+    int digits_per_bdigits_dbl;</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base)) {</div><div class='add'>+        invalid_radix(base);</div><div class='ctx'>     }</div><div class='del'>-    return rb_cstr_to_inum(s, base, badcheck); </div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(arg);</div><div class='add'>+    s = str = StringValuePtr(arg);</div><div class='add'>+    len = RSTRING_LEN(arg);</div><div class='add'>+    if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='add'>+	len--;</div><div class='add'>+        str++;</div><div class='add'>+        positive_p = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    digits_start = str;</div><div class='add'>+    if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='add'>+	invalid_integer(arg);</div><div class='add'>+    digits_end = digits_start + len;</div><div class='add'>+</div><div class='add'>+    maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='add'>+    num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;</div><div class='add'>+</div><div class='add'>+    z = str2big_normal(positive_p, digits_start, digits_end,</div><div class='add'>+            num_bdigits, base);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(arg);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if HAVE_LONG_LONG</div><div class='add'>+VALUE</div><div class='add'>+rb_str2big_karatsuba(VALUE arg, int base, int badcheck)</div><div class='add'>+{</div><div class='add'>+    int positive_p = 1;</div><div class='add'>+    const char *s, *str;</div><div class='add'>+    const char *digits_start, *digits_end;</div><div class='add'>+    size_t num_digits;</div><div class='add'>+    ssize_t len;</div><div class='add'>+    VALUE z;</div><div class='add'>+</div><div class='add'>+    int digits_per_bdigits_dbl;</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base)) {</div><div class='add'>+        invalid_radix(base);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(arg);</div><div class='add'>+    s = str = StringValuePtr(arg);</div><div class='add'>+    len = RSTRING_LEN(arg);</div><div class='add'>+    if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='add'>+	len--;</div><div class='add'>+        str++;</div><div class='add'>+        positive_p = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    digits_start = str;</div><div class='add'>+    if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='add'>+	invalid_integer(arg);</div><div class='add'>+    digits_end = digits_start + len;</div><div class='add'>+</div><div class='add'>+    maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='add'>+    num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;</div><div class='ctx'> </div><div class='add'>+    z = str2big_karatsuba(positive_p, digits_start, digits_end, num_digits,</div><div class='add'>+            num_bdigits, digits_per_bdigits_dbl, base);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(arg);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='ctx'> VALUE</div><div class='del'>-rb_ull2big(n)</div><div class='del'>-    unsigned LONG_LONG n;</div><div class='add'>+rb_str2big_gmp(VALUE arg, int base, int badcheck)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT_DBL num = n;</div><div class='del'>-    long i = 0;</div><div class='del'>-    BDIGIT *digits;</div><div class='del'>-    VALUE big;</div><div class='add'>+    int positive_p = 1;</div><div class='add'>+    const char *s, *str;</div><div class='add'>+    const char *digits_start, *digits_end;</div><div class='add'>+    size_t num_digits;</div><div class='add'>+    ssize_t len;</div><div class='add'>+    VALUE z;</div><div class='ctx'> </div><div class='del'>-    big = bignew(DIGSPERLL, 1);</div><div class='del'>-    digits = BDIGITS(big);</div><div class='del'>-    while (i &lt; DIGSPERLL) {</div><div class='del'>-	digits[i++] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+    int digits_per_bdigits_dbl;</div><div class='add'>+    size_t num_bdigits;</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base)) {</div><div class='add'>+        invalid_radix(base);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(arg);</div><div class='add'>+    s = str = StringValuePtr(arg);</div><div class='add'>+    len = RSTRING_LEN(arg);</div><div class='add'>+    if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='add'>+	len--;</div><div class='add'>+        str++;</div><div class='add'>+        positive_p = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    digits_start = str;</div><div class='add'>+    if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='add'>+	invalid_integer(arg);</div><div class='add'>+    digits_end = digits_start + len;</div><div class='add'>+</div><div class='add'>+    maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='add'>+    num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;</div><div class='add'>+</div><div class='add'>+    z = str2big_gmp(positive_p, digits_start, digits_end, num_digits, num_bdigits, base);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(arg);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if HAVE_LONG_LONG</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ull2big(unsigned LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    VALUE big = bignew(bdigit_roomof(SIZEOF_LONG_LONG), 1);</div><div class='add'>+    BDIGIT *digits = BDIGITS(big);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG_LONG</div><div class='add'>+    digits[0] = n;</div><div class='add'>+#else</div><div class='add'>+    for (i = 0; i &lt; bdigit_roomof(SIZEOF_LONG_LONG); i++) {</div><div class='add'>+	digits[i] = BIGLO(n);</div><div class='add'>+	n = BIGDN(n);</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    i = DIGSPERLL;</div><div class='add'>+    i = bdigit_roomof(SIZEOF_LONG_LONG);</div><div class='ctx'>     while (i-- &amp;&amp; !digits[i]) ;</div><div class='del'>-    RBIGNUM(big)-&gt;len = i+1;</div><div class='add'>+    BIGNUM_SET_LEN(big, i+1);</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_ll2big(n)</div><div class='del'>-    LONG_LONG n;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ll2big(LONG_LONG n)</div><div class='ctx'> {</div><div class='ctx'>     long neg = 0;</div><div class='add'>+    unsigned LONG_LONG u;</div><div class='ctx'>     VALUE big;</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	n = -n;</div><div class='add'>+        u = 1 + (unsigned LONG_LONG)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='ctx'> 	neg = 1;</div><div class='ctx'>     }</div><div class='del'>-    big = rb_ull2big(n);</div><div class='add'>+    else {</div><div class='add'>+        u = n;</div><div class='add'>+    }</div><div class='add'>+    big = rb_ull2big(u);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	RBIGNUM(big)-&gt;sign = 0;</div><div class='add'>+	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='ctx'>     }</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ull2inum(n)</div><div class='del'>-    unsigned LONG_LONG n;</div><div class='add'>+rb_ull2inum(unsigned LONG_LONG n)</div><div class='ctx'> {</div><div class='ctx'>     if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='ctx'>     return rb_ull2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ll2inum(n)</div><div class='del'>-    LONG_LONG n;</div><div class='add'>+rb_ll2inum(LONG_LONG n)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXABLE(n)) return LONG2FIX(n);</div><div class='ctx'>     return rb_ll2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #endif  /* HAVE_LONG_LONG */</div><div class='del'>- </div><div class='add'>+</div><div class='add'>+#ifdef HAVE_INT128_T</div><div class='add'>+static VALUE</div><div class='add'>+rb_uint128t2big(uint128_t n)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    VALUE big = bignew(bdigit_roomof(SIZEOF_INT128_T), 1);</div><div class='add'>+    BDIGIT *digits = BDIGITS(big);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; bdigit_roomof(SIZEOF_INT128_T); i++) {</div><div class='add'>+	digits[i] = BIGLO(RSHIFT(n ,BITSPERDIG*i));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    i = bdigit_roomof(SIZEOF_INT128_T);</div><div class='add'>+    while (i-- &amp;&amp; !digits[i]) ;</div><div class='add'>+    BIGNUM_SET_LEN(big, i+1);</div><div class='add'>+    return big;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-rb_cstr2inum(str, base)</div><div class='del'>-    const char *str;</div><div class='del'>-    int base;</div><div class='add'>+rb_int128t2big(int128_t n)</div><div class='add'>+{</div><div class='add'>+    int neg = 0;</div><div class='add'>+    uint128_t u;</div><div class='add'>+    VALUE big;</div><div class='add'>+</div><div class='add'>+    if (n &lt; 0) {</div><div class='add'>+        u = 1 + (uint128_t)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='add'>+	neg = 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        u = n;</div><div class='add'>+    }</div><div class='add'>+    big = rb_uint128t2big(u);</div><div class='add'>+    if (neg) {</div><div class='add'>+	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='add'>+    }</div><div class='add'>+    return big;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_cstr2inum(const char *str, int base)</div><div class='ctx'> {</div><div class='ctx'>     return rb_cstr_to_inum(str, base, base==0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_str2inum(str, base)</div><div class='del'>-    VALUE str;</div><div class='del'>-    int base;</div><div class='add'>+rb_str2inum(VALUE str, int base)</div><div class='ctx'> {</div><div class='ctx'>     return rb_str_to_inum(str, base, base==0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";</div><div class='del'>-VALUE</div><div class='del'>-rb_big2str0(x, base, trim)</div><div class='del'>-    VALUE x;</div><div class='del'>-    int base;</div><div class='del'>-    int trim;</div><div class='add'>+static VALUE</div><div class='add'>+big_shift3(VALUE x, int lshift_p, size_t shift_numdigits, int shift_numbits)</div><div class='ctx'> {</div><div class='del'>-    volatile VALUE t;</div><div class='del'>-    BDIGIT *ds;</div><div class='del'>-    long i, j, hbase;</div><div class='del'>-    VALUE ss;</div><div class='del'>-    char *s;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long s1;</div><div class='add'>+    int s2;</div><div class='add'>+    VALUE z;</div><div class='add'>+    long xn;</div><div class='add'>+</div><div class='add'>+    if (lshift_p) {</div><div class='add'>+        if (LONG_MAX &lt; shift_numdigits) {</div><div class='add'>+            rb_raise(rb_eArgError, "too big number");</div><div class='add'>+        }</div><div class='add'>+        s1 = shift_numdigits;</div><div class='add'>+        s2 = shift_numbits;</div><div class='add'>+        xn = BIGNUM_LEN(x);</div><div class='add'>+        z = bignew(xn+s1+1, BIGNUM_SIGN(x));</div><div class='add'>+        zds = BDIGITS(z);</div><div class='add'>+        BDIGITS_ZERO(zds, s1);</div><div class='add'>+        xds = BDIGITS(x);</div><div class='add'>+        zds[xn+s1] = bary_small_lshift(zds+s1, xds, xn, s2);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        long zn;</div><div class='add'>+        BDIGIT hibitsx;</div><div class='add'>+        if (LONG_MAX &lt; shift_numdigits || (size_t)BIGNUM_LEN(x) &lt;= shift_numdigits) {</div><div class='add'>+            if (BIGNUM_POSITIVE_P(x) ||</div><div class='add'>+                bary_zero_p(BDIGITS(x), BIGNUM_LEN(x)))</div><div class='add'>+                return INT2FIX(0);</div><div class='add'>+            else</div><div class='add'>+                return INT2FIX(-1);</div><div class='add'>+        }</div><div class='add'>+        s1 = shift_numdigits;</div><div class='add'>+        s2 = shift_numbits;</div><div class='add'>+        hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='add'>+        xds = BDIGITS(x);</div><div class='add'>+        if (xn &lt;= s1) {</div><div class='add'>+            return hibitsx ? INT2FIX(-1) : INT2FIX(0);</div><div class='add'>+        }</div><div class='add'>+        zn = xn - s1;</div><div class='add'>+        z = bignew(zn, 0);</div><div class='add'>+        zds = BDIGITS(z);</div><div class='add'>+        bary_small_rshift(zds, xds+s1, zn, s2, hibitsx != 0 ? BDIGMAX : 0);</div><div class='add'>+        twocomp2abs_bang(z, hibitsx != 0);</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(x)) {</div><div class='del'>-	return rb_fix2str(x, base);</div><div class='add'>+static VALUE</div><div class='add'>+big_shift2(VALUE x, int lshift_p, VALUE y)</div><div class='add'>+{</div><div class='add'>+    int sign;</div><div class='add'>+    size_t lens[2];</div><div class='add'>+    size_t shift_numdigits;</div><div class='add'>+    int shift_numbits;</div><div class='add'>+</div><div class='add'>+    assert(POW2_P(CHAR_BIT));</div><div class='add'>+    assert(POW2_P(BITSPERDIG));</div><div class='add'>+</div><div class='add'>+    if (BIGZEROP(x))</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+    sign = rb_integer_pack(y, lens, numberof(lens), sizeof(size_t), 0,</div><div class='add'>+        INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+    if (sign &lt; 0) {</div><div class='add'>+        lshift_p = !lshift_p;</div><div class='add'>+        sign = -sign;</div><div class='add'>+    }</div><div class='add'>+    if (lshift_p) {</div><div class='add'>+        if (1 &lt; sign || CHAR_BIT &lt;= lens[1])</div><div class='add'>+            rb_raise(rb_eRangeError, "shift width too big");</div><div class='ctx'>     }</div><div class='del'>-    i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    if (BIGZEROP(x)) {</div><div class='del'>-	return rb_str_new2("0");</div><div class='del'>-    }</div><div class='del'>-    if (i &gt;= LONG_MAX/SIZEOF_BDIGITS/CHAR_BIT) {</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='del'>-    }</div><div class='del'>-    j = SIZEOF_BDIGITS*CHAR_BIT*i;</div><div class='del'>-    switch (base) {</div><div class='del'>-      case 2: break;</div><div class='del'>-      case 3:</div><div class='del'>-	j = j * 53L / 84 + 1;</div><div class='del'>-	break;</div><div class='del'>-      case 4: case 5: case 6: case 7:</div><div class='del'>-	j = (j + 1) / 2;</div><div class='del'>-	break;</div><div class='del'>-      case 8: case 9:</div><div class='del'>-	j = (j + 2) / 3;</div><div class='del'>-	break;</div><div class='del'>-      case 10: case 11: case 12: case 13: case 14: case 15:</div><div class='del'>-	j = j * 28L / 93 + 1;</div><div class='del'>-	break;</div><div class='del'>-      case 16: case 17: case 18: case 19: case 20: case 21:</div><div class='del'>-      case 22: case 23: case 24: case 25: case 26: case 27:</div><div class='del'>-      case 28: case 29: case 30: case 31:</div><div class='del'>-	j = (j + 3) / 4;</div><div class='del'>-	break;</div><div class='del'>-      case 32: case 33: case 34: case 35: case 36:</div><div class='del'>-	j = (j + 4) / 5;</div><div class='del'>-	break;</div><div class='del'>-      default:</div><div class='del'>-	rb_raise(rb_eArgError, "illegal radix %d", base);</div><div class='del'>-	break;</div><div class='del'>-    }</div><div class='del'>-    j++;			/* space for sign */</div><div class='del'>-</div><div class='del'>-    hbase = base * base;</div><div class='del'>-#if SIZEOF_BDIGITS &gt; 2</div><div class='del'>-    hbase *= hbase;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    t = rb_big_clone(x);</div><div class='del'>-    ds = BDIGITS(t);</div><div class='del'>-    ss = rb_str_new(0, j+1);</div><div class='del'>-    s = RSTRING(ss)-&gt;ptr;</div><div class='del'>-</div><div class='del'>-    s[0] = RBIGNUM(x)-&gt;sign ? '+' : '-';</div><div class='del'>-    while (i &amp;&amp; j &gt; 1) {</div><div class='del'>-	long k = i;</div><div class='del'>-	BDIGIT_DBL num = 0;</div><div class='del'>-</div><div class='del'>-	while (k--) {</div><div class='del'>-	    num = BIGUP(num) + ds[k];</div><div class='del'>-	    ds[k] = (BDIGIT)(num / hbase);</div><div class='del'>-	    num %= hbase;</div><div class='add'>+    else {</div><div class='add'>+        if (1 &lt; sign || CHAR_BIT &lt;= lens[1])</div><div class='add'>+            return BIGNUM_POSITIVE_P(x) ? INT2FIX(0) : INT2FIX(-1);</div><div class='add'>+    }</div><div class='add'>+    shift_numbits = (int)(lens[0] &amp; (BITSPERDIG-1));</div><div class='add'>+    shift_numdigits = (lens[0] &gt;&gt; bit_length(BITSPERDIG-1)) |</div><div class='add'>+      (lens[1] &lt;&lt; (CHAR_BIT*SIZEOF_SIZE_T - bit_length(BITSPERDIG-1)));</div><div class='add'>+    return big_shift3(x, lshift_p, shift_numdigits, shift_numbits);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+big_lshift(VALUE x, unsigned long shift)</div><div class='add'>+{</div><div class='add'>+    long s1 = shift/BITSPERDIG;</div><div class='add'>+    int s2 = (int)(shift%BITSPERDIG);</div><div class='add'>+    return big_shift3(x, 1, s1, s2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+big_rshift(VALUE x, unsigned long shift)</div><div class='add'>+{</div><div class='add'>+    long s1 = shift/BITSPERDIG;</div><div class='add'>+    int s2 = (int)(shift%BITSPERDIG);</div><div class='add'>+    return big_shift3(x, 0, s1, s2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define MAX_BASE36_POWER_TABLE_ENTRIES (SIZEOF_SIZE_T * CHAR_BIT + 1)</div><div class='add'>+</div><div class='add'>+static VALUE base36_power_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];</div><div class='add'>+static size_t base36_numdigits_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+power_cache_init(void)</div><div class='add'>+{</div><div class='add'>+    int i, j;</div><div class='add'>+    for (i = 0; i &lt; 35; ++i) {</div><div class='add'>+	for (j = 0; j &lt; MAX_BASE36_POWER_TABLE_ENTRIES; ++j) {</div><div class='add'>+	    base36_power_cache[i][j] = Qnil;</div><div class='ctx'> 	}</div><div class='del'>-	if (trim &amp;&amp; ds[i-1] == 0) i--;</div><div class='del'>-	k = SIZEOF_BDIGITS;</div><div class='del'>-	while (k--) {</div><div class='del'>-	    s[--j] = ruby_digitmap[num % base];</div><div class='del'>-	    num /= base;</div><div class='del'>-	    if (!trim &amp;&amp; j &lt;= 1) break;</div><div class='del'>-	    if (trim &amp;&amp; i == 0 &amp;&amp; num == 0) break;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+power_cache_get_power(int base, int power_level, size_t *numdigits_ret)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     * MAX_BASE36_POWER_TABLE_ENTRIES is big enough to that</div><div class='add'>+     * base36_power_cache[base][MAX_BASE36_POWER_TABLE_ENTRIES-1] fills whole memory.</div><div class='add'>+     * So MAX_BASE36_POWER_TABLE_ENTRIES &lt;= power_level is not possible to calculate.</div><div class='add'>+     *</div><div class='add'>+     * number-of-bytes =</div><div class='add'>+     * log256(base36_power_cache[base][MAX_BASE36_POWER_TABLE_ENTRIES-1]) =</div><div class='add'>+     * log256(maxpow_in_bdigit_dbl(base)**(2**(MAX_BASE36_POWER_TABLE_ENTRIES-1))) =</div><div class='add'>+     * log256(maxpow_in_bdigit_dbl(base)**(2**(SIZEOF_SIZE_T*CHAR_BIT))) =</div><div class='add'>+     * (2**(SIZEOF_SIZE_T*CHAR_BIT))*log256(maxpow_in_bdigit_dbl(base)) =</div><div class='add'>+     * (256**SIZEOF_SIZE_T)*log256(maxpow_in_bdigit_dbl(base)) &gt;</div><div class='add'>+     * (256**SIZEOF_SIZE_T)*(sizeof(BDIGIT_DBL)-1) &gt;</div><div class='add'>+     * 256**SIZEOF_SIZE_T</div><div class='add'>+     */</div><div class='add'>+    if (MAX_BASE36_POWER_TABLE_ENTRIES &lt;= power_level)</div><div class='add'>+        rb_bug("too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)", base, power_level);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(base36_power_cache[base - 2][power_level])) {</div><div class='add'>+        VALUE power;</div><div class='add'>+        size_t numdigits;</div><div class='add'>+        if (power_level == 0) {</div><div class='add'>+            int numdigits0;</div><div class='add'>+            BDIGIT_DBL dd = maxpow_in_bdigit_dbl(base, &amp;numdigits0);</div><div class='add'>+            power = bignew(2, 1);</div><div class='add'>+            bdigitdbl2bary(BDIGITS(power), 2, dd);</div><div class='add'>+            numdigits = numdigits0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            power = bigtrunc(bigsq(power_cache_get_power(base, power_level - 1, &amp;numdigits)));</div><div class='add'>+            numdigits *= 2;</div><div class='add'>+        }</div><div class='add'>+        rb_obj_hide(power);</div><div class='add'>+        base36_power_cache[base - 2][power_level] = power;</div><div class='add'>+        base36_numdigits_cache[base - 2][power_level] = numdigits;</div><div class='add'>+	rb_gc_register_mark_object(power);</div><div class='add'>+    }</div><div class='add'>+    if (numdigits_ret)</div><div class='add'>+        *numdigits_ret = base36_numdigits_cache[base - 2][power_level];</div><div class='add'>+    return base36_power_cache[base - 2][power_level];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct big2str_struct {</div><div class='add'>+    int negative;</div><div class='add'>+    int base;</div><div class='add'>+    BDIGIT_DBL hbase2;</div><div class='add'>+    int hbase2_numdigits;</div><div class='add'>+    VALUE result;</div><div class='add'>+    char *ptr;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+big2str_alloc(struct big2str_struct *b2s, size_t len)</div><div class='add'>+{</div><div class='add'>+    if (LONG_MAX-1 &lt; len)</div><div class='add'>+        rb_raise(rb_eArgError, "too big number");</div><div class='add'>+    b2s-&gt;result = rb_usascii_str_new(0, (long)(len + 1)); /* plus one for sign */</div><div class='add'>+    b2s-&gt;ptr = RSTRING_PTR(b2s-&gt;result);</div><div class='add'>+    if (b2s-&gt;negative)</div><div class='add'>+        *b2s-&gt;ptr++ = '-';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+big2str_2bdigits(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t taillen)</div><div class='add'>+{</div><div class='add'>+    size_t j;</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    char buf[SIZEOF_BDIGIT_DBL*CHAR_BIT], *p;</div><div class='add'>+    int beginning = !b2s-&gt;ptr;</div><div class='add'>+    size_t len = 0;</div><div class='add'>+</div><div class='add'>+    assert(xn &lt;= 2);</div><div class='add'>+    num = bary2bdigitdbl(xds, xn);</div><div class='add'>+</div><div class='add'>+    if (beginning) {</div><div class='add'>+        if (num == 0)</div><div class='add'>+            return;</div><div class='add'>+        p = buf;</div><div class='add'>+        j = sizeof(buf);</div><div class='add'>+        do {</div><div class='add'>+            BDIGIT_DBL idx = num % b2s-&gt;base;</div><div class='add'>+            num /= b2s-&gt;base;</div><div class='add'>+            p[--j] = ruby_digitmap[idx];</div><div class='add'>+        } while (num);</div><div class='add'>+        len = sizeof(buf) - j;</div><div class='add'>+        big2str_alloc(b2s, len + taillen);</div><div class='add'>+	MEMCPY(b2s-&gt;ptr, buf + j, char, len);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        p = b2s-&gt;ptr;</div><div class='add'>+        j = b2s-&gt;hbase2_numdigits;</div><div class='add'>+        do {</div><div class='add'>+            BDIGIT_DBL idx = num % b2s-&gt;base;</div><div class='add'>+            num /= b2s-&gt;base;</div><div class='add'>+            p[--j] = ruby_digitmap[idx];</div><div class='add'>+        } while (j);</div><div class='add'>+        len = b2s-&gt;hbase2_numdigits;</div><div class='add'>+    }</div><div class='add'>+    b2s-&gt;ptr += len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+big2str_karatsuba(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t wn,</div><div class='add'>+		  int power_level, size_t taillen)</div><div class='add'>+{</div><div class='add'>+    VALUE b;</div><div class='add'>+    size_t half_numdigits, lower_numdigits;</div><div class='add'>+    int lower_power_level;</div><div class='add'>+    size_t bn;</div><div class='add'>+    const BDIGIT *bds;</div><div class='add'>+    size_t len;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Precondition:</div><div class='add'>+     * abs(x) &lt; maxpow**(2**power_level)</div><div class='add'>+     * where</div><div class='add'>+     *   maxpow = maxpow_in_bdigit_dbl(base, &amp;numdigits)</div><div class='add'>+     *</div><div class='add'>+     * This function generates sequence of zeros, and then stringized abs(x) into b2s-&gt;ptr.</div><div class='add'>+     *</div><div class='add'>+     * b2s-&gt;ptr can be NULL.</div><div class='add'>+     * It is allocated when the first character is generated via big2str_alloc.</div><div class='add'>+     *</div><div class='add'>+     * The prefix zeros should be generated if and only if b2s-&gt;ptr is not NULL.</div><div class='add'>+     * When the zeros are generated, the zeros and abs(x) consists</div><div class='add'>+     * numdigits*(2**power_level) characters at total.</div><div class='add'>+     *</div><div class='add'>+     * Note:</div><div class='add'>+     * power_cache_get_power(base, power_level, &amp;len) may not be cached yet. It should not be called.</div><div class='add'>+     * power_cache_get_power(base, power_level-1, &amp;len) should be cached already if 0 &lt;= power_level-1.</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    if (xn == 0 || bary_zero_p(xds, xn)) {</div><div class='add'>+	if (b2s-&gt;ptr) {</div><div class='add'>+            /* When x is zero, power_cache_get_power(base, power_level) should be cached already. */</div><div class='add'>+            power_cache_get_power(b2s-&gt;base, power_level, &amp;len);</div><div class='add'>+	    memset(b2s-&gt;ptr, '0', len);</div><div class='add'>+            b2s-&gt;ptr += len;</div><div class='ctx'> 	}</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (power_level == 0) {</div><div class='add'>+	big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='del'>-    if (trim) {while (s[j] == '0') j++;}</div><div class='del'>-    i = RSTRING(ss)-&gt;len - j;</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	memmove(s, s+j, i);</div><div class='del'>-	RSTRING(ss)-&gt;len = i-1;</div><div class='add'>+</div><div class='add'>+    lower_power_level = power_level-1;</div><div class='add'>+    b = power_cache_get_power(b2s-&gt;base, lower_power_level, &amp;lower_numdigits);</div><div class='add'>+    bn = BIGNUM_LEN(b);</div><div class='add'>+    bds = BDIGITS(b);</div><div class='add'>+</div><div class='add'>+    half_numdigits = lower_numdigits;</div><div class='add'>+</div><div class='add'>+    while (0 &lt; lower_power_level &amp;&amp;</div><div class='add'>+            (xn &lt; bn ||</div><div class='add'>+             (xn == bn &amp;&amp; bary_cmp(xds, xn, bds, bn) &lt; 0))) {</div><div class='add'>+        lower_power_level--;</div><div class='add'>+        b = power_cache_get_power(b2s-&gt;base, lower_power_level, &amp;lower_numdigits);</div><div class='add'>+        bn = BIGNUM_LEN(b);</div><div class='add'>+        bds = BDIGITS(b);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (lower_power_level == 0 &amp;&amp;</div><div class='add'>+            (xn &lt; bn ||</div><div class='add'>+             (xn == bn &amp;&amp; bary_cmp(xds, xn, bds, bn) &lt; 0))) {</div><div class='add'>+        if (b2s-&gt;ptr) {</div><div class='add'>+            len = half_numdigits * 2 - lower_numdigits;</div><div class='add'>+            memset(b2s-&gt;ptr, '0', len);</div><div class='add'>+            b2s-&gt;ptr += len;</div><div class='add'>+        }</div><div class='add'>+	big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	memmove(s+1, s+j, i);</div><div class='del'>-	RSTRING(ss)-&gt;len = i;</div><div class='add'>+        BDIGIT *qds, *rds;</div><div class='add'>+        size_t qn, rn;</div><div class='add'>+        BDIGIT *tds;</div><div class='add'>+        int shift;</div><div class='add'>+</div><div class='add'>+        if (lower_power_level != power_level-1 &amp;&amp; b2s-&gt;ptr) {</div><div class='add'>+            len = (half_numdigits - lower_numdigits) * 2;</div><div class='add'>+            memset(b2s-&gt;ptr, '0', len);</div><div class='add'>+            b2s-&gt;ptr += len;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        shift = nlz(bds[bn-1]);</div><div class='add'>+</div><div class='add'>+        qn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+</div><div class='add'>+        if (shift == 0) {</div><div class='add'>+            /* bigdivrem_restoring will not modify y.</div><div class='add'>+             * So use bds directly.  */</div><div class='add'>+            tds = (BDIGIT *)bds;</div><div class='add'>+            xds[xn] = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* bigdivrem_restoring will modify y.</div><div class='add'>+             * So use temporary buffer.  */</div><div class='add'>+            tds = xds + qn;</div><div class='add'>+            assert(qn + bn &lt;= xn + wn);</div><div class='add'>+            bary_small_lshift(tds, bds, bn, shift);</div><div class='add'>+            xds[xn] = bary_small_lshift(xds, xds, xn, shift);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        bigdivrem_restoring(xds, qn, tds, bn);</div><div class='add'>+</div><div class='add'>+        rds = xds;</div><div class='add'>+        rn = bn;</div><div class='add'>+</div><div class='add'>+        qds = xds + bn;</div><div class='add'>+        qn = qn - bn;</div><div class='add'>+</div><div class='add'>+        if (shift) {</div><div class='add'>+            bary_small_rshift(rds, rds, rn, shift, 0);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        BARY_TRUNC(qds, qn);</div><div class='add'>+        assert(qn &lt;= bn);</div><div class='add'>+        big2str_karatsuba(b2s, qds, qn, xn+wn - (rn+qn), lower_power_level, lower_numdigits+taillen);</div><div class='add'>+        BARY_TRUNC(rds, rn);</div><div class='add'>+        big2str_karatsuba(b2s, rds, rn, xn+wn - rn, lower_power_level, taillen);</div><div class='ctx'>     }</div><div class='del'>-    s[RSTRING(ss)-&gt;len] = '\0';</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return ss;</div><div class='add'>+static VALUE</div><div class='add'>+big2str_base_poweroftwo(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    int word_numbits = ffs(base) - 1;</div><div class='add'>+    size_t numwords;</div><div class='add'>+    VALUE result;</div><div class='add'>+    char *ptr;</div><div class='add'>+    numwords = rb_absint_numwords(x, word_numbits, NULL);</div><div class='add'>+    if (BIGNUM_NEGATIVE_P(x)) {</div><div class='add'>+        if (LONG_MAX-1 &lt; numwords)</div><div class='add'>+            rb_raise(rb_eArgError, "too big number");</div><div class='add'>+        result = rb_usascii_str_new(0, 1+numwords);</div><div class='add'>+        ptr = RSTRING_PTR(result);</div><div class='add'>+        *ptr++ = BIGNUM_POSITIVE_P(x) ? '+' : '-';</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (LONG_MAX &lt; numwords)</div><div class='add'>+            rb_raise(rb_eArgError, "too big number");</div><div class='add'>+        result = rb_usascii_str_new(0, numwords);</div><div class='add'>+        ptr = RSTRING_PTR(result);</div><div class='add'>+    }</div><div class='add'>+    rb_integer_pack(x, ptr, numwords, 1, CHAR_BIT-word_numbits,</div><div class='add'>+                    INTEGER_PACK_BIG_ENDIAN);</div><div class='add'>+    while (0 &lt; numwords) {</div><div class='add'>+        *ptr = ruby_digitmap[*(unsigned char *)ptr];</div><div class='add'>+        ptr++;</div><div class='add'>+        numwords--;</div><div class='add'>+    }</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big2str(VALUE x, int base)</div><div class='add'>+rb_big2str_poweroftwo(VALUE x, int base)</div><div class='ctx'> {</div><div class='del'>-    return rb_big2str0(x, base, Qtrue);</div><div class='add'>+    return big2str_base_poweroftwo(x, base);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.to_s(base=10)   =&gt;  string</div><div class='del'>- *  </div><div class='del'>- *  Returns a string containing the representation of &lt;i&gt;big&lt;/i&gt; radix</div><div class='del'>- *  &lt;i&gt;base&lt;/i&gt; (2 through 36).</div><div class='del'>- *     </div><div class='del'>- *     12345654321.to_s         #=&gt; "12345654321"</div><div class='del'>- *     12345654321.to_s(2)      #=&gt; "1011011111110110111011110000110001"</div><div class='del'>- *     12345654321.to_s(8)      #=&gt; "133766736061"</div><div class='del'>- *     12345654321.to_s(16)     #=&gt; "2dfdbbc31"</div><div class='del'>- *     78546939656932.to_s(36)  #=&gt; "rubyrules"</div><div class='del'>- */</div><div class='add'>+static VALUE</div><div class='add'>+big2str_generic(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *xds;</div><div class='add'>+    size_t xn;</div><div class='add'>+    struct big2str_struct b2s_data;</div><div class='add'>+    int power_level;</div><div class='add'>+    VALUE power;</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='ctx'> </div><div class='add'>+    if (xn == 0) {</div><div class='add'>+	return rb_usascii_str_new2("0");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base))</div><div class='add'>+	invalid_radix(base);</div><div class='add'>+</div><div class='add'>+    if (xn &gt;= LONG_MAX/BITSPERDIG) {</div><div class='add'>+        rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    power_level = 0;</div><div class='add'>+    power = power_cache_get_power(base, power_level, NULL);</div><div class='add'>+    while (power_level &lt; MAX_BASE36_POWER_TABLE_ENTRIES &amp;&amp;</div><div class='add'>+           (size_t)BIGNUM_LEN(power) &lt;= (xn+1)/2) {</div><div class='add'>+        power_level++;</div><div class='add'>+        power = power_cache_get_power(base, power_level, NULL);</div><div class='add'>+    }</div><div class='add'>+    assert(power_level != MAX_BASE36_POWER_TABLE_ENTRIES);</div><div class='add'>+</div><div class='add'>+    if ((size_t)BIGNUM_LEN(power) &lt;= xn) {</div><div class='add'>+        /*</div><div class='add'>+         * This increment guarantees x &lt; power_cache_get_power(base, power_level)</div><div class='add'>+         * without invoking it actually.</div><div class='add'>+         * (power_cache_get_power(base, power_level) can be slow and not used</div><div class='add'>+         * in big2str_karatsuba.)</div><div class='add'>+         *</div><div class='add'>+         * Although it is possible that x &lt; power_cache_get_power(base, power_level-1),</div><div class='add'>+         * it is no problem because big2str_karatsuba checks it and</div><div class='add'>+         * doesn't affect the result when b2s_data.ptr is NULL.</div><div class='add'>+         */</div><div class='add'>+        power_level++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    b2s_data.negative = BIGNUM_NEGATIVE_P(x);</div><div class='add'>+    b2s_data.base = base;</div><div class='add'>+    b2s_data.hbase2 = maxpow_in_bdigit_dbl(base, &amp;b2s_data.hbase2_numdigits);</div><div class='add'>+</div><div class='add'>+    b2s_data.result = Qnil;</div><div class='add'>+    b2s_data.ptr = NULL;</div><div class='add'>+</div><div class='add'>+    if (power_level == 0) {</div><div class='add'>+	big2str_2bdigits(&amp;b2s_data, xds, xn, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE tmpw = 0;</div><div class='add'>+        BDIGIT *wds;</div><div class='add'>+        size_t wn;</div><div class='add'>+        wn = power_level * BIGDIVREM_EXTRA_WORDS + BIGNUM_LEN(power);</div><div class='add'>+        wds = ALLOCV_N(BDIGIT, tmpw, xn + wn);</div><div class='add'>+        MEMCPY(wds, xds, BDIGIT, xn);</div><div class='add'>+	big2str_karatsuba(&amp;b2s_data, wds, xn, wn, power_level, 0);</div><div class='add'>+        if (tmpw)</div><div class='add'>+            ALLOCV_END(tmpw);</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+</div><div class='add'>+    *b2s_data.ptr = '\0';</div><div class='add'>+    rb_str_resize(b2s_data.result, (long)(b2s_data.ptr - RSTRING_PTR(b2s_data.result)));</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return b2s_data.result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big2str_generic(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    return big2str_generic(x, base);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_to_s(argc, argv, x)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE x;</div><div class='add'>+big2str_gmp(VALUE x, int base)</div><div class='ctx'> {</div><div class='del'>-    VALUE b;</div><div class='del'>-    int base;</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_t mx;</div><div class='add'>+    size_t size;</div><div class='add'>+    VALUE str;</div><div class='add'>+    BDIGIT *xds = BDIGITS(x);</div><div class='add'>+    size_t xn = BIGNUM_LEN(x);</div><div class='add'>+</div><div class='add'>+    mpz_init(mx);</div><div class='add'>+    mpz_import(mx, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+</div><div class='add'>+    size = mpz_sizeinbase(mx, base);</div><div class='add'>+</div><div class='add'>+    if (BIGNUM_NEGATIVE_P(x)) {</div><div class='add'>+        mpz_neg(mx, mx);</div><div class='add'>+        str = rb_usascii_str_new(0, size+1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        str = rb_usascii_str_new(0, size);</div><div class='add'>+    }</div><div class='add'>+    mpz_get_str(RSTRING_PTR(str), base, mx);</div><div class='add'>+    mpz_clear(mx);</div><div class='add'>+</div><div class='add'>+    if (RSTRING_PTR(str)[RSTRING_LEN(str)-1] == '\0') {</div><div class='add'>+        rb_str_set_len(str, RSTRING_LEN(str)-1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "01", &amp;b);</div><div class='del'>-    if (argc == 0) base = 10;</div><div class='del'>-    else base = NUM2INT(b);</div><div class='del'>-    return rb_big2str(x, base);</div><div class='add'>+VALUE</div><div class='add'>+rb_big2str_gmp(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    return big2str_gmp(x, base);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_big2str1(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *xds;</div><div class='add'>+    size_t xn;</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(x)) {</div><div class='add'>+	return rb_fix2str(x, base);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bigtrunc(x);</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+</div><div class='add'>+    if (xn == 0) {</div><div class='add'>+	return rb_usascii_str_new2("0");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!valid_radix_p(base))</div><div class='add'>+	invalid_radix(base);</div><div class='add'>+</div><div class='add'>+    if (xn &gt;= LONG_MAX/BITSPERDIG) {</div><div class='add'>+        rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (POW2_P(base)) {</div><div class='add'>+        /* base == 2 || base == 4 || base == 8 || base == 16 || base == 32 */</div><div class='add'>+        return big2str_base_poweroftwo(x, base);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+    if (GMP_BIG2STR_DIGITS &lt; xn) {</div><div class='add'>+        return big2str_gmp(x, base);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return big2str_generic(x, base);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big2str(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    return rb_big2str1(x, base);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static unsigned long</div><div class='del'>-big2ulong(x, type)</div><div class='del'>-    VALUE x;</div><div class='del'>-    char *type;</div><div class='add'>+big2ulong(VALUE x, const char *type)</div><div class='ctx'> {</div><div class='del'>-    long len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    BDIGIT_DBL num;</div><div class='add'>+    size_t len = BIGNUM_LEN(x);</div><div class='add'>+    unsigned long num;</div><div class='ctx'>     BDIGIT *ds;</div><div class='ctx'> </div><div class='del'>-    if (len &gt; SIZEOF_LONG/SIZEOF_BDIGITS)</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='add'>+    if (len == 0)</div><div class='add'>+        return 0;</div><div class='add'>+    if (BIGSIZE(x) &gt; sizeof(long)) {</div><div class='add'>+        rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='add'>+    }</div><div class='ctx'>     ds = BDIGITS(x);</div><div class='add'>+#if SIZEOF_LONG &lt;= SIZEOF_BDIGIT</div><div class='add'>+    num = (unsigned long)ds[0];</div><div class='add'>+#else</div><div class='ctx'>     num = 0;</div><div class='ctx'>     while (len--) {</div><div class='del'>-	num = BIGUP(num);</div><div class='del'>-	num += ds[len];</div><div class='add'>+	num &lt;&lt;= BITSPERDIG;</div><div class='add'>+	num += (unsigned long)ds[len]; /* overflow is already checked */</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'>     return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> unsigned long</div><div class='del'>-rb_big2ulong_pack(x)   </div><div class='del'>-    VALUE x;  </div><div class='del'>-{   </div><div class='del'>-    unsigned long num = big2ulong(x, "unsigned long");</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	return -num;</div><div class='del'>-    }</div><div class='del'>-    return num;</div><div class='del'>-}  </div><div class='del'>-</div><div class='del'>-unsigned long</div><div class='del'>-rb_big2ulong(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big2ulong(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     unsigned long num = big2ulong(x, "unsigned long");</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	if ((long)num &lt; 0) {</div><div class='del'>-	    rb_raise(rb_eRangeError, "bignum out of range of unsigned long");</div><div class='del'>-	}</div><div class='del'>-	return -num;</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x)) {</div><div class='add'>+        return num;</div><div class='ctx'>     }</div><div class='del'>-    return num;</div><div class='add'>+    else {</div><div class='add'>+        if (num &lt;= 1+(unsigned long)(-(LONG_MIN+1)))</div><div class='add'>+            return -(long)(num-1)-1;</div><div class='add'>+    }</div><div class='add'>+    rb_raise(rb_eRangeError, "bignum out of range of unsigned long");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> long</div><div class='del'>-rb_big2long(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big2long(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     unsigned long num = big2ulong(x, "long");</div><div class='ctx'> </div><div class='del'>-    if ((long)num &lt; 0 &amp;&amp; (RBIGNUM(x)-&gt;sign || (long)num != LONG_MIN)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `long'");</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x)) {</div><div class='add'>+        if (num &lt;= LONG_MAX)</div><div class='add'>+            return num;</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) return -(long)num;</div><div class='del'>-    return num;</div><div class='add'>+    else {</div><div class='add'>+        if (num &lt;= 1+(unsigned long)(-(LONG_MIN+1)))</div><div class='add'>+            return -(long)(num-1)-1;</div><div class='add'>+    }</div><div class='add'>+    rb_raise(rb_eRangeError, "bignum too big to convert into `long'");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'> </div><div class='ctx'> static unsigned LONG_LONG</div><div class='del'>-big2ull(x, type)</div><div class='del'>-    VALUE x;</div><div class='del'>-    char *type;</div><div class='add'>+big2ull(VALUE x, const char *type)</div><div class='ctx'> {</div><div class='del'>-    long len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    BDIGIT_DBL num;</div><div class='del'>-    BDIGIT *ds;</div><div class='add'>+    size_t len = BIGNUM_LEN(x);</div><div class='add'>+    unsigned LONG_LONG num;</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='ctx'> </div><div class='del'>-    if (len &gt; SIZEOF_LONG_LONG/SIZEOF_BDIGITS)</div><div class='add'>+    if (len == 0)</div><div class='add'>+        return 0;</div><div class='add'>+    if (BIGSIZE(x) &gt; SIZEOF_LONG_LONG)</div><div class='ctx'> 	rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='del'>-    ds = BDIGITS(x);</div><div class='add'>+#if SIZEOF_LONG_LONG &lt;= SIZEOF_BDIGIT</div><div class='add'>+    num = (unsigned LONG_LONG)ds[0];</div><div class='add'>+#else</div><div class='ctx'>     num = 0;</div><div class='ctx'>     while (len--) {</div><div class='ctx'> 	num = BIGUP(num);</div><div class='ctx'> 	num += ds[len];</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'>     return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> unsigned LONG_LONG</div><div class='del'>-rb_big2ull(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big2ull(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     unsigned LONG_LONG num = big2ull(x, "unsigned long long");</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) return -num;</div><div class='del'>-    return num;</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x)) {</div><div class='add'>+        return num;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (num &lt;= 1+(unsigned LONG_LONG)(-(LLONG_MIN+1)))</div><div class='add'>+            return -(LONG_LONG)(num-1)-1;</div><div class='add'>+    }</div><div class='add'>+    rb_raise(rb_eRangeError, "bignum out of range of unsigned long long");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> LONG_LONG</div><div class='del'>-rb_big2ll(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big2ll(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     unsigned LONG_LONG num = big2ull(x, "long long");</div><div class='ctx'> </div><div class='del'>-    if ((LONG_LONG)num &lt; 0 &amp;&amp; (RBIGNUM(x)-&gt;sign</div><div class='del'>-			       || (LONG_LONG)num != LLONG_MIN)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `long long'");</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x)) {</div><div class='add'>+        if (num &lt;= LLONG_MAX)</div><div class='add'>+            return num;</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) return -(LONG_LONG)num;</div><div class='del'>-    return num;</div><div class='add'>+    else {</div><div class='add'>+        if (num &lt;= 1+(unsigned LONG_LONG)(-(LLONG_MIN+1)))</div><div class='add'>+            return -(LONG_LONG)(num-1)-1;</div><div class='add'>+    }</div><div class='add'>+    rb_raise(rb_eRangeError, "bignum too big to convert into `long long'");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #endif  /* HAVE_LONG_LONG */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dbl2big(d)</div><div class='del'>-    double d;</div><div class='add'>+dbl2big(double d)</div><div class='ctx'> {</div><div class='ctx'>     long i = 0;</div><div class='ctx'>     BDIGIT c;</div><div class='hunk'>@@ -901,7 +5194,7 @@ dbl2big(d)</div><div class='ctx'> 	rb_raise(rb_eFloatDomainError, "NaN");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    while (!POSFIXABLE(u) || 0 != (long)u) {</div><div class='add'>+    while (1.0 &lt;= u) {</div><div class='ctx'> 	u /= (double)(BIGRAD);</div><div class='ctx'> 	i++;</div><div class='ctx'>     }</div><div class='hunk'>@@ -918,1294 +5211,1877 @@ dbl2big(d)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_dbl2big(d)</div><div class='del'>-    double d;</div><div class='add'>+rb_dbl2big(double d)</div><div class='ctx'> {</div><div class='ctx'>     return bignorm(dbl2big(d));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-double</div><div class='del'>-rb_big2dbl(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+static double</div><div class='add'>+big2dbl(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     double d = 0.0;</div><div class='del'>-    long i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    BDIGIT *ds = BDIGITS(x);</div><div class='add'>+    long i = (bigtrunc(x), BIGNUM_LEN(x)), lo = 0, bits;</div><div class='add'>+    BDIGIT *ds = BDIGITS(x), dl;</div><div class='ctx'> </div><div class='del'>-    while (i--) {</div><div class='del'>-	d = ds[i] + BIGRAD*d;</div><div class='add'>+    if (i) {</div><div class='add'>+	bits = i * BITSPERDIG - nlz(ds[i-1]);</div><div class='add'>+	if (bits &gt; DBL_MANT_DIG+DBL_MAX_EXP) {</div><div class='add'>+	    d = HUGE_VAL;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (bits &gt; DBL_MANT_DIG+1)</div><div class='add'>+		lo = (bits -= DBL_MANT_DIG+1) / BITSPERDIG;</div><div class='add'>+	    else</div><div class='add'>+		bits = 0;</div><div class='add'>+	    while (--i &gt; lo) {</div><div class='add'>+		d = ds[i] + BIGRAD*d;</div><div class='add'>+	    }</div><div class='add'>+	    dl = ds[i];</div><div class='add'>+	    if (bits &amp;&amp; (dl &amp; ((BDIGIT)1 &lt;&lt; (bits %= BITSPERDIG)))) {</div><div class='add'>+		int carry = (dl &amp; ~(BDIGMAX &lt;&lt; bits)) != 0;</div><div class='add'>+		if (!carry) {</div><div class='add'>+		    while (i-- &gt; 0) {</div><div class='add'>+			carry = ds[i] != 0;</div><div class='add'>+			if (carry) break;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		if (carry) {</div><div class='add'>+		    dl &amp;= BDIGMAX &lt;&lt; bits;</div><div class='add'>+		    dl = BIGLO(dl + ((BDIGIT)1 &lt;&lt; bits));</div><div class='add'>+		    if (!dl) d += 1;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    d = dl + BIGRAD*d;</div><div class='add'>+	    if (lo) {</div><div class='add'>+		if (lo &gt; INT_MAX / BITSPERDIG)</div><div class='add'>+		    d = HUGE_VAL;</div><div class='add'>+		else if (lo &lt; INT_MIN / BITSPERDIG)</div><div class='add'>+		    d = 0.0;</div><div class='add'>+		else</div><div class='add'>+		    d = ldexp(d, (int)(lo * BITSPERDIG));</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='add'>+    if (BIGNUM_NEGATIVE_P(x)) d = -d;</div><div class='add'>+    return d;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+double</div><div class='add'>+rb_big2dbl(VALUE x)</div><div class='add'>+{</div><div class='add'>+    double d = big2dbl(x);</div><div class='add'>+</div><div class='ctx'>     if (isinf(d)) {</div><div class='del'>-	rb_warn("Bignum out of Float range");</div><div class='del'>-	d = HUGE_VAL;</div><div class='add'>+	rb_warning("Bignum out of Float range");</div><div class='add'>+	if (d &lt; 0.0)</div><div class='add'>+	    d = -HUGE_VAL;</div><div class='add'>+	else</div><div class='add'>+	    d = HUGE_VAL;</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) d = -d;</div><div class='ctx'>     return d;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.to_f -&gt; float</div><div class='del'>- *  </div><div class='del'>- *  Converts &lt;i&gt;big&lt;/i&gt; to a &lt;code&gt;Float&lt;/code&gt;. If &lt;i&gt;big&lt;/i&gt; doesn't</div><div class='del'>- *  fit in a &lt;code&gt;Float&lt;/code&gt;, the result is infinity.</div><div class='del'>- *     </div><div class='del'>- */</div><div class='add'>+VALUE</div><div class='add'>+rb_integer_float_cmp(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    double yd = RFLOAT_VALUE(y);</div><div class='add'>+    double yi, yf;</div><div class='add'>+    VALUE rel;</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_big_to_f(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+    if (isnan(yd))</div><div class='add'>+        return Qnil;</div><div class='add'>+    if (isinf(yd)) {</div><div class='add'>+        if (yd &gt; 0.0) return INT2FIX(-1);</div><div class='add'>+        else return INT2FIX(1);</div><div class='add'>+    }</div><div class='add'>+    yf = modf(yd, &amp;yi);</div><div class='add'>+    if (FIXNUM_P(x)) {</div><div class='add'>+#if SIZEOF_LONG * CHAR_BIT &lt; DBL_MANT_DIG /* assume FLT_RADIX == 2 */</div><div class='add'>+        double xd = (double)FIX2LONG(x);</div><div class='add'>+        if (xd &lt; yd)</div><div class='add'>+            return INT2FIX(-1);</div><div class='add'>+        if (xd &gt; yd)</div><div class='add'>+            return INT2FIX(1);</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+#else</div><div class='add'>+        long xn, yn;</div><div class='add'>+        if (yi &lt; FIXNUM_MIN)</div><div class='add'>+            return INT2FIX(1);</div><div class='add'>+        if (FIXNUM_MAX+1 &lt;= yi)</div><div class='add'>+            return INT2FIX(-1);</div><div class='add'>+        xn = FIX2LONG(x);</div><div class='add'>+        yn = (long)yi;</div><div class='add'>+        if (xn &lt; yn)</div><div class='add'>+            return INT2FIX(-1);</div><div class='add'>+        if (xn &gt; yn)</div><div class='add'>+            return INT2FIX(1);</div><div class='add'>+        if (yf &lt; 0.0)</div><div class='add'>+            return INT2FIX(1);</div><div class='add'>+        if (0.0 &lt; yf)</div><div class='add'>+            return INT2FIX(-1);</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    y = rb_dbl2big(yi);</div><div class='add'>+    rel = rb_big_cmp(x, y);</div><div class='add'>+    if (yf == 0.0 || rel != INT2FIX(0))</div><div class='add'>+        return rel;</div><div class='add'>+    if (yf &lt; 0.0)</div><div class='add'>+        return INT2FIX(1);</div><div class='add'>+    return INT2FIX(-1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_integer_float_eq(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    return rb_float_new(rb_big2dbl(x));</div><div class='add'>+    double yd = RFLOAT_VALUE(y);</div><div class='add'>+    double yi, yf;</div><div class='add'>+</div><div class='add'>+    if (isnan(yd) || isinf(yd))</div><div class='add'>+        return Qfalse;</div><div class='add'>+    yf = modf(yd, &amp;yi);</div><div class='add'>+    if (yf != 0)</div><div class='add'>+        return Qfalse;</div><div class='add'>+    if (FIXNUM_P(x)) {</div><div class='add'>+#if SIZEOF_LONG * CHAR_BIT &lt; DBL_MANT_DIG /* assume FLT_RADIX == 2 */</div><div class='add'>+        double xd = (double)FIX2LONG(x);</div><div class='add'>+        if (xd != yd)</div><div class='add'>+            return Qfalse;</div><div class='add'>+        return Qtrue;</div><div class='add'>+#else</div><div class='add'>+        long xn, yn;</div><div class='add'>+        if (yi &lt; LONG_MIN || LONG_MAX &lt; yi)</div><div class='add'>+            return Qfalse;</div><div class='add'>+        xn = FIX2LONG(x);</div><div class='add'>+        yn = (long)yi;</div><div class='add'>+        if (xn != yn)</div><div class='add'>+            return Qfalse;</div><div class='add'>+        return Qtrue;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    y = rb_dbl2big(yi);</div><div class='add'>+    return rb_big_eq(x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big &lt;=&gt; numeric   =&gt; -1, 0, +1</div><div class='del'>- *  </div><div class='del'>- *  Comparison---Returns -1, 0, or +1 depending on whether &lt;i&gt;big&lt;/i&gt; is</div><div class='del'>- *  less than, equal to, or greater than &lt;i&gt;numeric&lt;/i&gt;. This is the</div><div class='del'>- *  basis for the tests in &lt;code&gt;Comparable&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- */</div><div class='add'>+VALUE</div><div class='add'>+rb_big_cmp(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	x = bigfixize(x);</div><div class='add'>+        if (FIXNUM_P(x)) {</div><div class='add'>+	    /* SIGNED_VALUE and Fixnum have same sign-bits, same</div><div class='add'>+	     * order */</div><div class='add'>+	    SIGNED_VALUE sx = (SIGNED_VALUE)x, sy = (SIGNED_VALUE)y;</div><div class='add'>+	    if (sx &lt; sy) return INT2FIX(-1);</div><div class='add'>+	    return INT2FIX(sx &gt; sy);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	if (BIGNUM_SIGN(x) == BIGNUM_SIGN(y)) {</div><div class='add'>+	    int cmp = bary_cmp(BDIGITS(x), BIGNUM_LEN(x), BDIGITS(y), BIGNUM_LEN(y));</div><div class='add'>+	    return INT2FIX(BIGNUM_SIGN(x) ? cmp : -cmp);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+        return rb_integer_float_cmp(x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_cmp(x, y, idCmp);</div><div class='add'>+    }</div><div class='add'>+    return INT2FIX(BIGNUM_SIGN(x) ? 1 : -1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+enum big_op_t {</div><div class='add'>+    big_op_gt,</div><div class='add'>+    big_op_ge,</div><div class='add'>+    big_op_lt,</div><div class='add'>+    big_op_le</div><div class='add'>+};</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_cmp(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+big_op(VALUE x, VALUE y, enum big_op_t op)</div><div class='ctx'> {</div><div class='del'>-    long xlen = RBIGNUM(x)-&gt;len;</div><div class='del'>-</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='add'>+    VALUE rel;</div><div class='add'>+    int n;</div><div class='ctx'> </div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='add'>+    if (RB_INTEGER_TYPE_P(y)) {</div><div class='add'>+	rel = rb_big_cmp(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+        rel = rb_integer_float_cmp(x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ID id = 0;</div><div class='add'>+	switch (op) {</div><div class='add'>+	  case big_op_gt: id = '&gt;'; break;</div><div class='add'>+	  case big_op_ge: id = idGE; break;</div><div class='add'>+	  case big_op_lt: id = '&lt;'; break;</div><div class='add'>+	  case big_op_le: id = idLE; break;</div><div class='add'>+	}</div><div class='add'>+	return rb_num_coerce_relop(x, y, id);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return rb_dbl_cmp(rb_big2dbl(x), RFLOAT(y)-&gt;value);</div><div class='add'>+    if (NIL_P(rel)) return Qfalse;</div><div class='add'>+    n = FIX2INT(rel);</div><div class='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_cmp(x, y);</div><div class='add'>+    switch (op) {</div><div class='add'>+	case big_op_gt: return n &gt;  0 ? Qtrue : Qfalse;</div><div class='add'>+	case big_op_ge: return n &gt;= 0 ? Qtrue : Qfalse;</div><div class='add'>+	case big_op_lt: return n &lt;  0 ? Qtrue : Qfalse;</div><div class='add'>+	case big_op_le: return n &lt;= 0 ? Qtrue : Qfalse;</div><div class='ctx'>     }</div><div class='add'>+    return Qundef;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (RBIGNUM(x)-&gt;sign &gt; RBIGNUM(y)-&gt;sign) return INT2FIX(1);</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign &lt; RBIGNUM(y)-&gt;sign) return INT2FIX(-1);</div><div class='del'>-    if (xlen &lt; RBIGNUM(y)-&gt;len)</div><div class='del'>-	return (RBIGNUM(x)-&gt;sign) ? INT2FIX(-1) : INT2FIX(1);</div><div class='del'>-    if (xlen &gt; RBIGNUM(y)-&gt;len)</div><div class='del'>-	return (RBIGNUM(x)-&gt;sign) ? INT2FIX(1) : INT2FIX(-1);</div><div class='add'>+VALUE</div><div class='add'>+rb_big_gt(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, big_op_gt);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    while(xlen-- &amp;&amp; (BDIGITS(x)[xlen]==BDIGITS(y)[xlen]));</div><div class='del'>-    if (-1 == xlen) return INT2FIX(0);</div><div class='del'>-    return (BDIGITS(x)[xlen] &gt; BDIGITS(y)[xlen]) ?</div><div class='del'>-	(RBIGNUM(x)-&gt;sign ? INT2FIX(1) : INT2FIX(-1)) :</div><div class='del'>-	    (RBIGNUM(x)-&gt;sign ? INT2FIX(-1) : INT2FIX(1));</div><div class='add'>+VALUE</div><div class='add'>+rb_big_ge(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, big_op_ge);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_lt(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, big_op_lt);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_le(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, big_op_le);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     big == obj  =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     big == obj  -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Returns &lt;code&gt;true&lt;/code&gt; only if &lt;i&gt;obj&lt;/i&gt; has the same value</div><div class='del'>- *  as &lt;i&gt;big&lt;/i&gt;. Contrast this with &lt;code&gt;Bignum#eql?&lt;/code&gt;, which</div><div class='del'>- *  requires &lt;i&gt;obj&lt;/i&gt; to be a &lt;code&gt;Bignum&lt;/code&gt;.</div><div class='del'>- *     </div><div class='add'>+ *  as &lt;i&gt;big&lt;/i&gt;. Contrast this with &lt;code&gt;Integer#eql?&lt;/code&gt;, which</div><div class='add'>+ *  requires &lt;i&gt;obj&lt;/i&gt; to be a &lt;code&gt;Integer&lt;/code&gt;.</div><div class='add'>+ *</div><div class='ctx'>  *     68719476736 == 68719476736.0   #=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_big_eq(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_eq(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='del'>-      case T_FLOAT:</div><div class='del'>-        {</div><div class='del'>-	    volatile double a, b;</div><div class='del'>-</div><div class='del'>-	    a = RFLOAT(y)-&gt;value;</div><div class='del'>-	    if (isnan(a)) return Qfalse;</div><div class='del'>-	    b = rb_big2dbl(x);</div><div class='del'>-	    return (a == b)?Qtrue:Qfalse;</div><div class='del'>-	}</div><div class='del'>-      default:</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bignorm(x) == y ? Qtrue : Qfalse;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+        return rb_integer_float_eq(x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='ctx'> 	return rb_equal(y, x);</div><div class='ctx'>     }</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign != RBIGNUM(y)-&gt;sign) return Qfalse;</div><div class='del'>-    if (RBIGNUM(x)-&gt;len != RBIGNUM(y)-&gt;len) return Qfalse;</div><div class='del'>-    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,RBIGNUM(y)-&gt;len) != 0) return Qfalse;</div><div class='add'>+    if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;</div><div class='add'>+    if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;</div><div class='add'>+    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.eql?(obj)   =&gt; true or false</div><div class='del'>- *  </div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; only if &lt;i&gt;obj&lt;/i&gt; is a</div><div class='del'>- *  &lt;code&gt;Bignum&lt;/code&gt; with the same value as &lt;i&gt;big&lt;/i&gt;. Contrast this</div><div class='del'>- *  with &lt;code&gt;Bignum#==&lt;/code&gt;, which performs type conversions.</div><div class='del'>- *     </div><div class='del'>- *     68719476736.eql?(68719476736.0)   #=&gt; false</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_eql(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_eql(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (TYPE(y) != T_BIGNUM) return Qfalse;</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign != RBIGNUM(y)-&gt;sign) return Qfalse;</div><div class='del'>-    if (RBIGNUM(x)-&gt;len != RBIGNUM(y)-&gt;len) return Qfalse;</div><div class='del'>-    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,RBIGNUM(y)-&gt;len) != 0) return Qfalse;</div><div class='add'>+    if (!RB_BIGNUM_TYPE_P(y)) return Qfalse;</div><div class='add'>+    if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;</div><div class='add'>+    if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;</div><div class='add'>+    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    -big   =&gt;  other_big</div><div class='del'>- *</div><div class='del'>- * Unary minus (returns a new Bignum whose value is 0-big)</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_uminus(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_uminus(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z = rb_big_clone(x);</div><div class='ctx'> </div><div class='del'>-    RBIGNUM(z)-&gt;sign = !RBIGNUM(x)-&gt;sign;</div><div class='add'>+    BIGNUM_NEGATE(z);</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     ~big  =&gt;  integer</div><div class='del'>- *</div><div class='del'>- * Inverts the bits in big. As Bignums are conceptually infinite</div><div class='del'>- * length, the result acts as if it had an infinite number of one</div><div class='del'>- * bits to the left. In hex representations, this is displayed</div><div class='del'>- * as two periods to the left of the digits.</div><div class='del'>- *  </div><div class='del'>- *   sprintf("%X", ~0x1122334455)    #=&gt; "..FEEDDCCBBAA"</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_neg(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_comp(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z = rb_big_clone(x);</div><div class='del'>-    long i;</div><div class='del'>-    BDIGIT *ds;</div><div class='add'>+    BDIGIT *ds = BDIGITS(z);</div><div class='add'>+    long n = BIGNUM_LEN(z);</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) get2comp(z);</div><div class='del'>-    ds = BDIGITS(z);</div><div class='del'>-    i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    if (!i) return INT2FIX(~0);</div><div class='del'>-    while (i--) ds[i] = ~ds[i];</div><div class='del'>-    RBIGNUM(z)-&gt;sign = !RBIGNUM(z)-&gt;sign;</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign) get2comp(z);</div><div class='add'>+    if (!n) return INT2FIX(-1);</div><div class='add'>+</div><div class='add'>+    if (BIGNUM_POSITIVE_P(z)) {</div><div class='add'>+        if (bary_add_one(ds, n)) {</div><div class='add'>+            big_extend_carry(z);</div><div class='add'>+        }</div><div class='add'>+        BIGNUM_SET_NEGATIVE_SIGN(z);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_neg(ds, n);</div><div class='add'>+        if (bary_add_one(ds, n))</div><div class='add'>+            return INT2FIX(-1);</div><div class='add'>+        bary_neg(ds, n);</div><div class='add'>+        BIGNUM_SET_POSITIVE_SIGN(z);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-bigsub(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+bigsub(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE z = 0;</div><div class='del'>-    BDIGIT *zds;</div><div class='del'>-    BDIGIT_DBL_SIGNED num;</div><div class='del'>-    long i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    </div><div class='del'>-    /* if x is larger than y, swap */</div><div class='del'>-    if (RBIGNUM(x)-&gt;len &lt; RBIGNUM(y)-&gt;len) {</div><div class='del'>-	z = x; x = y; y = z;	/* swap x y */</div><div class='del'>-    }</div><div class='del'>-    else if (RBIGNUM(x)-&gt;len == RBIGNUM(y)-&gt;len) {</div><div class='del'>-	while (i &gt; 0) {</div><div class='del'>-	    i--;</div><div class='del'>-	    if (BDIGITS(x)[i] &gt; BDIGITS(y)[i]) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    if (BDIGITS(x)[i] &lt; BDIGITS(y)[i]) {</div><div class='del'>-		z = x; x = y; y = z;	/* swap x y */</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *yds, *zds;</div><div class='add'>+    long xn, yn, zn;</div><div class='add'>+</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    yn = BIGNUM_LEN(y);</div><div class='add'>+    zn = xn &lt; yn ? yn : xn;</div><div class='add'>+</div><div class='add'>+    z = bignew(zn, 1);</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    yds = BDIGITS(y);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+    if (bary_sub(zds, zn, xds, xn, yds, yn)) {</div><div class='add'>+        bary_2comp(zds, zn);</div><div class='add'>+        BIGNUM_SET_NEGATIVE_SIGN(z);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    z = bignew(RBIGNUM(x)-&gt;len, z==0);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE bigadd_int(VALUE x, long y);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigsub_int(VALUE x, long y0)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+    long i, y;</div><div class='add'>+</div><div class='add'>+    y = y0;</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+</div><div class='add'>+    if (xn == 0)</div><div class='add'>+        return LONG2NUM(-y0);</div><div class='add'>+</div><div class='add'>+    zn = xn;</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (zn &lt; bdigit_roomof(SIZEOF_LONG))</div><div class='add'>+        zn = bdigit_roomof(SIZEOF_LONG);</div><div class='add'>+#endif</div><div class='add'>+    z = bignew(zn, BIGNUM_SIGN(x));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='del'>-    for (i = 0, num = 0; i &lt; RBIGNUM(y)-&gt;len; i++) { </div><div class='del'>-	num += (BDIGIT_DBL_SIGNED)BDIGITS(x)[i] - BDIGITS(y)[i];</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    assert(xn == zn);</div><div class='add'>+    num = (BDIGIT_DBL_SIGNED)xds[0] - y;</div><div class='add'>+    if (xn == 1 &amp;&amp; num &lt; 0) {</div><div class='add'>+	BIGNUM_NEGATE(z);</div><div class='add'>+	zds[0] = (BDIGIT)-num;</div><div class='add'>+	RB_GC_GUARD(x);</div><div class='add'>+	return bignorm(z);</div><div class='add'>+    }</div><div class='add'>+    zds[0] = BIGLO(num);</div><div class='add'>+    num = BIGDN(num);</div><div class='add'>+    i = 1;</div><div class='add'>+    if (i &lt; xn)</div><div class='add'>+        goto y_is_zero_x;</div><div class='add'>+    goto finish;</div><div class='add'>+#else</div><div class='add'>+    num = 0;</div><div class='add'>+    for (i=0; i &lt; xn; i++) {</div><div class='add'>+        if (y == 0) goto y_is_zero_x;</div><div class='add'>+	num += (BDIGIT_DBL_SIGNED)xds[i] - BIGLO(y);</div><div class='ctx'> 	zds[i] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='del'>-    } </div><div class='del'>-    while (num &amp;&amp; i &lt; RBIGNUM(x)-&gt;len) {</div><div class='del'>-	num += BDIGITS(x)[i];</div><div class='del'>-	zds[i++] = BIGLO(num);</div><div class='add'>+	y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        if (y == 0) goto y_is_zero_z;</div><div class='add'>+        num -= BIGLO(y);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='add'>+        y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+    goto finish;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    for (; i &lt; xn; i++) {</div><div class='add'>+      y_is_zero_x:</div><div class='add'>+        if (num == 0) goto num_is_zero_x;</div><div class='add'>+	num += xds[i];</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='del'>-    while (i &lt; RBIGNUM(x)-&gt;len) {</div><div class='del'>-	zds[i] = BDIGITS(x)[i];</div><div class='del'>-	i++;</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+      y_is_zero_z:</div><div class='add'>+        if (num == 0) goto num_is_zero_z;</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='del'>-    </div><div class='del'>-    return z;</div><div class='add'>+#endif</div><div class='add'>+    goto finish;</div><div class='add'>+</div><div class='add'>+    for (; i &lt; xn; i++) {</div><div class='add'>+      num_is_zero_x:</div><div class='add'>+	zds[i] = xds[i];</div><div class='add'>+    }</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+      num_is_zero_z:</div><div class='add'>+        zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    goto finish;</div><div class='add'>+</div><div class='add'>+  finish:</div><div class='add'>+    assert(num == 0 || num == -1);</div><div class='add'>+    if (num &lt; 0) {</div><div class='add'>+        get2comp(z);</div><div class='add'>+	BIGNUM_NEGATE(z);</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-bigadd(x, y, sign)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    int sign;</div><div class='add'>+bigadd_int(VALUE x, long y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='ctx'>     BDIGIT_DBL num;</div><div class='del'>-    long i, len;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    sign = (sign == RBIGNUM(y)-&gt;sign);</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign != sign) {</div><div class='del'>-	if (sign) return bigsub(y, x);</div><div class='del'>-	return bigsub(x, y);</div><div class='del'>-    }</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+</div><div class='add'>+    if (xn == 0)</div><div class='add'>+        return LONG2NUM(y);</div><div class='add'>+</div><div class='add'>+    zn = xn;</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (zn &lt; bdigit_roomof(SIZEOF_LONG))</div><div class='add'>+        zn = bdigit_roomof(SIZEOF_LONG);</div><div class='add'>+#endif</div><div class='add'>+    zn++;</div><div class='add'>+</div><div class='add'>+    z = bignew(zn, BIGNUM_SIGN(x));</div><div class='add'>+    zds = BDIGITS(z);</div><div class='ctx'> </div><div class='del'>-    if (RBIGNUM(x)-&gt;len &gt; RBIGNUM(y)-&gt;len) {</div><div class='del'>-	len = RBIGNUM(x)-&gt;len + 1;</div><div class='del'>-        z = x; x = y; y = z;</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    num = (BDIGIT_DBL)xds[0] + y;</div><div class='add'>+    zds[0] = BIGLO(num);</div><div class='add'>+    num = BIGDN(num);</div><div class='add'>+    i = 1;</div><div class='add'>+    if (i &lt; xn)</div><div class='add'>+        goto y_is_zero_x;</div><div class='add'>+    goto y_is_zero_z;</div><div class='add'>+#else</div><div class='add'>+    num = 0;</div><div class='add'>+    for (i=0; i &lt; xn; i++) {</div><div class='add'>+        if (y == 0) goto y_is_zero_x;</div><div class='add'>+	num += (BDIGIT_DBL)xds[i] + BIGLO(y);</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+	y = BIGDN(y);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	len = RBIGNUM(y)-&gt;len + 1;</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        if (y == 0) goto y_is_zero_z;</div><div class='add'>+	num += BIGLO(y);</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+	y = BIGDN(y);</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(len, sign);</div><div class='add'>+    goto finish;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    for (i = 0, num = 0; i &lt; len; i++) {</div><div class='del'>-	num += (BDIGIT_DBL)BDIGITS(x)[i] + BDIGITS(y)[i];</div><div class='del'>-	BDIGITS(z)[i] = BIGLO(num);</div><div class='add'>+    for (;i &lt; xn; i++) {</div><div class='add'>+      y_is_zero_x:</div><div class='add'>+        if (num == 0) goto num_is_zero_x;</div><div class='add'>+	num += (BDIGIT_DBL)xds[i];</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='del'>-    len = RBIGNUM(y)-&gt;len;</div><div class='del'>-    while (num &amp;&amp; i &lt; len) {</div><div class='del'>-	num += BDIGITS(y)[i];</div><div class='del'>-	BDIGITS(z)[i++] = BIGLO(num);</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+      y_is_zero_z:</div><div class='add'>+        if (num == 0) goto num_is_zero_z;</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='del'>-    while (i &lt; len) {</div><div class='del'>-	BDIGITS(z)[i] = BDIGITS(y)[i];</div><div class='del'>-	i++;</div><div class='add'>+    goto finish;</div><div class='add'>+</div><div class='add'>+    for (;i &lt; xn; i++) {</div><div class='add'>+      num_is_zero_x:</div><div class='add'>+	zds[i] = xds[i];</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+      num_is_zero_z:</div><div class='add'>+	zds[i] = 0;</div><div class='ctx'>     }</div><div class='del'>-    BDIGITS(z)[i] = (BDIGIT)num;</div><div class='add'>+    goto finish;</div><div class='ctx'> </div><div class='del'>-    return z;</div><div class='add'>+  finish:</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big + other  =&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Adds big and other, returning the result.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_big_plus(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static VALUE</div><div class='add'>+bigadd(VALUE x, VALUE y, int sign)</div><div class='ctx'> {</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	/* fall through */</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	return bignorm(bigadd(x, y, 1));</div><div class='add'>+    VALUE z;</div><div class='add'>+    size_t len;</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return rb_float_new(rb_big2dbl(x) + RFLOAT(y)-&gt;value);</div><div class='add'>+    sign = (sign == BIGNUM_SIGN(y));</div><div class='add'>+    if (BIGNUM_SIGN(x) != sign) {</div><div class='add'>+	if (sign) return bigsub(y, x);</div><div class='add'>+	return bigsub(x, y);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    if (BIGNUM_LEN(x) &gt; BIGNUM_LEN(y)) {</div><div class='add'>+	len = BIGNUM_LEN(x) + 1;</div><div class='ctx'>     }</div><div class='del'>-}</div><div class='add'>+    else {</div><div class='add'>+	len = BIGNUM_LEN(y) + 1;</div><div class='add'>+    }</div><div class='add'>+    z = bignew(len, sign);</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big - other  =&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Subtracts other from big, returning the result.</div><div class='del'>- */</div><div class='add'>+    bary_add(BDIGITS(z), BIGNUM_LEN(z),</div><div class='add'>+             BDIGITS(x), BIGNUM_LEN(x),</div><div class='add'>+             BDIGITS(y), BIGNUM_LEN(y));</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_minus(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_plus(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	/* fall through */</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	return bignorm(bigadd(x, y, 0));</div><div class='del'>-</div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return rb_float_new(rb_big2dbl(x) - RFLOAT(y)-&gt;value);</div><div class='add'>+    long n;</div><div class='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	n = FIX2LONG(y);</div><div class='add'>+	if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='add'>+	    if (n &lt; 0) {</div><div class='add'>+		n = -n;</div><div class='add'>+	    }</div><div class='add'>+	    return bigsub_int(x, n);</div><div class='add'>+	}</div><div class='add'>+	if (n &lt; 0) {</div><div class='add'>+	    n = -n;</div><div class='add'>+	}</div><div class='add'>+	return bigadd_int(x, n);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	return bignorm(bigadd(x, y, 1));</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_bin(x, y, '+');</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_mul0(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_minus(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    long i, j;</div><div class='del'>-    BDIGIT_DBL n = 0;</div><div class='del'>-    VALUE z;</div><div class='del'>-    BDIGIT *zds;</div><div class='add'>+    long n;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(x)) x = rb_int2big(FIX2LONG(x));</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	n = FIX2LONG(y);</div><div class='add'>+	if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='add'>+	    if (n &lt; 0) {</div><div class='add'>+		n = -n;</div><div class='add'>+	    }</div><div class='add'>+	    return bigadd_int(x, n);</div><div class='add'>+	}</div><div class='add'>+	if (n &lt; 0) {</div><div class='add'>+	    n = -n;</div><div class='add'>+	}</div><div class='add'>+	return bigsub_int(x, n);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	return bignorm(bigadd(x, y, 0));</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_bin(x, y, '-');</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='add'>+static VALUE</div><div class='add'>+bigsq(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long xn, zn;</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return rb_float_new(rb_big2dbl(x) * RFLOAT(y)-&gt;value);</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    zn = 2 * xn;</div><div class='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='del'>-    }</div><div class='add'>+    z = bignew(zn, 1);</div><div class='ctx'> </div><div class='del'>-    j = RBIGNUM(x)-&gt;len + RBIGNUM(y)-&gt;len + 1;</div><div class='del'>-    z = bignew(j, RBIGNUM(x)-&gt;sign==RBIGNUM(y)-&gt;sign);</div><div class='add'>+    xds = BDIGITS(x);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='del'>-    while (j--) zds[j] = 0;</div><div class='del'>-    for (i = 0; i &lt; RBIGNUM(x)-&gt;len; i++) {</div><div class='del'>-	BDIGIT_DBL dd = BDIGITS(x)[i]; </div><div class='del'>-	if (dd == 0) continue;</div><div class='del'>-	n = 0;</div><div class='del'>-	for (j = 0; j &lt; RBIGNUM(y)-&gt;len; j++) {</div><div class='del'>-	    BDIGIT_DBL ee = n + (BDIGIT_DBL)dd * BDIGITS(y)[j];</div><div class='del'>-	    n = zds[i + j] + ee;</div><div class='del'>-	    if (ee) zds[i + j] = BIGLO(n);</div><div class='del'>-	    n = BIGDN(n);</div><div class='del'>-	}</div><div class='del'>-	if (n) {</div><div class='del'>-	    zds[i + j] = n;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'> </div><div class='add'>+    if (xn &lt; NAIVE_MUL_DIGITS)</div><div class='add'>+        bary_sq_fast(zds, zn, xds, xn);</div><div class='add'>+    else</div><div class='add'>+        bary_mul(zds, zn, xds, xn, xds, xn);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big * other  =&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Multiplies big and other, returning the result.</div><div class='del'>- */</div><div class='add'>+static VALUE</div><div class='add'>+bigmul0(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long xn, yn, zn;</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *yds, *zds;</div><div class='add'>+</div><div class='add'>+    if (x == y)</div><div class='add'>+        return bigsq(x);</div><div class='add'>+</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    yn = BIGNUM_LEN(y);</div><div class='add'>+    zn = xn + yn;</div><div class='add'>+</div><div class='add'>+    z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    yds = BDIGITS(y);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+    bary_mul(zds, zn, xds, xn, yds, yn);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_mul(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_mul(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    return bignorm(rb_big_mul0(x, y));</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_bin(x, y, '*');</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return bignorm(bigmul0(x, y));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-bigdivrem(x, y, divp, modp)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    VALUE *divp, *modp;</div><div class='del'>-{</div><div class='del'>-    long nx = RBIGNUM(x)-&gt;len, ny = RBIGNUM(y)-&gt;len;</div><div class='del'>-    long i, j;</div><div class='del'>-    VALUE yy, z;</div><div class='del'>-    BDIGIT *xds, *yds, *zds, *tds;</div><div class='del'>-    BDIGIT_DBL t2;</div><div class='del'>-    BDIGIT_DBL_SIGNED num;</div><div class='del'>-    BDIGIT dd, q;</div><div class='add'>+static VALUE</div><div class='add'>+bigdivrem(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)</div><div class='add'>+{</div><div class='add'>+    long xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y);</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *yds, *zds;</div><div class='add'>+    BDIGIT dd;</div><div class='add'>+</div><div class='add'>+    VALUE q = Qnil, r = Qnil;</div><div class='add'>+    BDIGIT *qds, *rds;</div><div class='add'>+    long qn, rn;</div><div class='ctx'> </div><div class='del'>-    if (BIGZEROP(y)) rb_num_zerodiv();</div><div class='ctx'>     yds = BDIGITS(y);</div><div class='del'>-    if (nx &lt; ny || (nx == ny &amp;&amp; BDIGITS(x)[nx - 1] &lt; BDIGITS(y)[ny - 1])) {</div><div class='add'>+    BARY_TRUNC(yds, yn);</div><div class='add'>+    if (yn == 0)</div><div class='add'>+        rb_num_zerodiv();</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    BARY_TRUNC(xds, xn);</div><div class='add'>+</div><div class='add'>+    if (xn &lt; yn || (xn == yn &amp;&amp; xds[xn - 1] &lt; yds[yn - 1])) {</div><div class='ctx'> 	if (divp) *divp = rb_int2big(0);</div><div class='ctx'> 	if (modp) *modp = x;</div><div class='del'>-	return;</div><div class='add'>+	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    xds = BDIGITS(x);</div><div class='del'>-    if (ny == 1) {</div><div class='add'>+    if (yn == 1) {</div><div class='ctx'> 	dd = yds[0];</div><div class='del'>-	z = rb_big_clone(x);</div><div class='add'>+	z = bignew(xn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='ctx'> 	zds = BDIGITS(z);</div><div class='del'>-	t2 = 0; i = nx;</div><div class='del'>-	while (i--) {</div><div class='del'>-	    t2 = BIGUP(t2) + zds[i];</div><div class='del'>-	    zds[i] = (BDIGIT)(t2 / dd);</div><div class='del'>-	    t2 %= dd;</div><div class='del'>-	}</div><div class='del'>-	RBIGNUM(z)-&gt;sign = RBIGNUM(x)-&gt;sign==RBIGNUM(y)-&gt;sign;</div><div class='add'>+        dd = bigdivrem_single(zds, xds, xn, dd);</div><div class='ctx'> 	if (modp) {</div><div class='del'>-	    *modp = rb_uint2big((unsigned long)t2);</div><div class='del'>-	    RBIGNUM(*modp)-&gt;sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+	    *modp = rb_uint2big((VALUE)dd);</div><div class='add'>+	    BIGNUM_SET_SIGN(*modp, BIGNUM_SIGN(x));</div><div class='ctx'> 	}</div><div class='ctx'> 	if (divp) *divp = z;</div><div class='del'>-	return;</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    if (xn == 2 &amp;&amp; yn == 2) {</div><div class='add'>+        BDIGIT_DBL x0 = bary2bdigitdbl(xds, 2);</div><div class='add'>+        BDIGIT_DBL y0 = bary2bdigitdbl(yds, 2);</div><div class='add'>+        BDIGIT_DBL q0 = x0 / y0;</div><div class='add'>+        BDIGIT_DBL r0 = x0 % y0;</div><div class='add'>+        if (divp) {</div><div class='add'>+            z = bignew(bdigit_roomof(sizeof(BDIGIT_DBL)), BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+            zds = BDIGITS(z);</div><div class='add'>+            zds[0] = BIGLO(q0);</div><div class='add'>+            zds[1] = BIGLO(BIGDN(q0));</div><div class='add'>+            *divp = z;</div><div class='add'>+        }</div><div class='add'>+        if (modp) {</div><div class='add'>+            z = bignew(bdigit_roomof(sizeof(BDIGIT_DBL)), BIGNUM_SIGN(x));</div><div class='add'>+            zds = BDIGITS(z);</div><div class='add'>+            zds[0] = BIGLO(r0);</div><div class='add'>+            zds[1] = BIGLO(BIGDN(r0));</div><div class='add'>+            *modp = z;</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (divp) {</div><div class='add'>+        qn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+        q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+        qds = BDIGITS(q);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        qn = 0;</div><div class='add'>+        qds = NULL;</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(nx==ny?nx+2:nx+1, RBIGNUM(x)-&gt;sign==RBIGNUM(y)-&gt;sign);</div><div class='del'>-    zds = BDIGITS(z);</div><div class='del'>-    if (nx==ny) zds[nx+1] = 0;</div><div class='del'>-    while (!yds[ny-1]) ny--;</div><div class='ctx'> </div><div class='del'>-    dd = 0;</div><div class='del'>-    q = yds[ny-1];</div><div class='del'>-    while ((q &amp; (1&lt;&lt;(BITSPERDIG-1))) == 0) {</div><div class='del'>-	q &lt;&lt;= 1;</div><div class='del'>-	dd++;</div><div class='del'>-    }</div><div class='del'>-    if (dd) {</div><div class='del'>-	yy = rb_big_clone(y);</div><div class='del'>-	tds = BDIGITS(yy);</div><div class='del'>-	j = 0;</div><div class='del'>-	t2 = 0;</div><div class='del'>-	while (j&lt;ny) {</div><div class='del'>-	    t2 += (BDIGIT_DBL)yds[j]&lt;&lt;dd;</div><div class='del'>-	    tds[j++] = BIGLO(t2);</div><div class='del'>-	    t2 = BIGDN(t2);</div><div class='del'>-	}</div><div class='del'>-	yds = tds;</div><div class='del'>-	j = 0;</div><div class='del'>-	t2 = 0;</div><div class='del'>-	while (j&lt;nx) {</div><div class='del'>-	    t2 += (BDIGIT_DBL)xds[j]&lt;&lt;dd;</div><div class='del'>-	    zds[j++] = BIGLO(t2);</div><div class='del'>-	    t2 = BIGDN(t2);</div><div class='del'>-	}</div><div class='del'>-	zds[j] = (BDIGIT)t2;</div><div class='add'>+    if (modp) {</div><div class='add'>+        rn = yn;</div><div class='add'>+        r = bignew(rn, BIGNUM_SIGN(x));</div><div class='add'>+        rds = BDIGITS(r);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	zds[nx] = 0;</div><div class='del'>-	j = nx;</div><div class='del'>-	while (j--) zds[j] = xds[j];</div><div class='add'>+        rn = 0;</div><div class='add'>+        rds = NULL;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    j = nx==ny?nx+1:nx;</div><div class='del'>-    do {</div><div class='del'>-	if (zds[j] ==  yds[ny-1]) q = BIGRAD-1;</div><div class='del'>-	else q = (BDIGIT)((BIGUP(zds[j]) + zds[j-1])/yds[ny-1]);</div><div class='del'>-	if (q) {</div><div class='del'>-	    i = 0; num = 0; t2 = 0;</div><div class='del'>-	    do {			/* multiply and subtract */</div><div class='del'>-		BDIGIT_DBL ee;</div><div class='del'>-		t2 += (BDIGIT_DBL)yds[i] * q;</div><div class='del'>-		ee = num - BIGLO(t2);</div><div class='del'>-		num = (BDIGIT_DBL)zds[j - ny + i] + ee;</div><div class='del'>-		if (ee) zds[j - ny + i] = BIGLO(num);</div><div class='del'>-		num = BIGDN(num);</div><div class='del'>-		t2 = BIGDN(t2);</div><div class='del'>-	    } while (++i &lt; ny);</div><div class='del'>-	    num += zds[j - ny + i] - t2;/* borrow from high digit; don't update */</div><div class='del'>-	    while (num) {		/* "add back" required */</div><div class='del'>-		i = 0; num = 0; q--;</div><div class='del'>-		do {</div><div class='del'>-		    BDIGIT_DBL ee = num + yds[i];</div><div class='del'>-		    num = (BDIGIT_DBL)zds[j - ny + i] + ee;</div><div class='del'>-		    if (ee) zds[j - ny + i] = BIGLO(num);</div><div class='del'>-		    num = BIGDN(num);</div><div class='del'>-		} while (++i &lt; ny);</div><div class='del'>-		num--;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	zds[j] = q;</div><div class='del'>-    } while (--j &gt;= ny);</div><div class='del'>-    if (divp) {			/* move quotient down in z */</div><div class='del'>-	*divp = rb_big_clone(z);</div><div class='del'>-	zds = BDIGITS(*divp);</div><div class='del'>-	j = (nx==ny ? nx+2 : nx+1) - ny;</div><div class='del'>-	for (i = 0;i &lt; j;i++) zds[i] = zds[i+ny];</div><div class='del'>-	RBIGNUM(*divp)-&gt;len = i;</div><div class='del'>-    }</div><div class='del'>-    if (modp) {			/* normalize remainder */</div><div class='del'>-	*modp = rb_big_clone(z);</div><div class='del'>-	zds = BDIGITS(*modp);</div><div class='del'>-	while (--ny &amp;&amp; !zds[ny]); ++ny;</div><div class='del'>-	if (dd) {</div><div class='del'>-	    t2 = 0; i = ny;</div><div class='del'>-	    while(i--) {</div><div class='del'>-		t2 = (t2 | zds[i]) &gt;&gt; dd;</div><div class='del'>-		q = zds[i];</div><div class='del'>-		zds[i] = BIGLO(t2);</div><div class='del'>-		t2 = BIGUP(q);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	RBIGNUM(*modp)-&gt;len = ny;</div><div class='del'>-	RBIGNUM(*modp)-&gt;sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+    bary_divmod_branch(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='add'>+</div><div class='add'>+    if (divp) {</div><div class='add'>+        bigtrunc(q);</div><div class='add'>+        *divp = q;</div><div class='ctx'>     }</div><div class='add'>+    if (modp) {</div><div class='add'>+        bigtrunc(r);</div><div class='add'>+        *modp = r;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-bigdivmod(x, y, divp, modp)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    VALUE *divp, *modp;</div><div class='add'>+bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mod;</div><div class='ctx'> </div><div class='ctx'>     bigdivrem(x, y, divp, &amp;mod);</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign != RBIGNUM(y)-&gt;sign &amp;&amp; !BIGZEROP(mod)) {</div><div class='add'>+    if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y) &amp;&amp; !BIGZEROP(mod)) {</div><div class='ctx'> 	if (divp) *divp = bigadd(*divp, rb_int2big(1), 0);</div><div class='ctx'> 	if (modp) *modp = bigadd(mod, y, 1);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	if (divp) *divp = *divp;</div><div class='del'>-	if (modp) *modp = mod;</div><div class='add'>+    else if (modp) {</div><div class='add'>+	*modp = mod;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big / other     =&gt; Numeric</div><div class='del'>- *     big.div(other)  =&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Divides big by other, returning the result.</div><div class='del'>- */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_div(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_divide(VALUE x, VALUE y, ID op)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='ctx'> 	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return rb_float_new(rb_big2dbl(x) / RFLOAT(y)-&gt;value);</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	if (op == '/') {</div><div class='add'>+	    return DBL2NUM(rb_big2dbl(x) / RFLOAT_VALUE(y));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    double dy = RFLOAT_VALUE(y);</div><div class='add'>+	    if (dy == 0.0) rb_num_zerodiv();</div><div class='add'>+	    return rb_dbl2big(rb_big2dbl(x) / dy);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_bin(x, y, op);</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, &amp;z, 0);</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big % other         =&gt; Numeric</div><div class='del'>- *     big.modulo(other)   =&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Returns big modulo other. See Numeric.divmod for more</div><div class='del'>- *  information.</div><div class='del'>- */</div><div class='add'>+VALUE</div><div class='add'>+rb_big_div(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_big_divide(x, y, '/');</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_big_modulo(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_idiv(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_big_divide(x, y, rb_intern("div"));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_modulo(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='ctx'> 	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bin(x, y, '%');</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, 0, &amp;z);</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.remainder(numeric)    =&gt; number</div><div class='del'>- *  </div><div class='del'>- *  Returns the remainder after dividing &lt;i&gt;big&lt;/i&gt; by &lt;i&gt;numeric&lt;/i&gt;.</div><div class='del'>- *     </div><div class='del'>- *     -1234567890987654321.remainder(13731)      #=&gt; -6966</div><div class='del'>- *     -1234567890987654321.remainder(13731.24)   #=&gt; -9906.22531493148</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_remainder(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_remainder(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='ctx'> 	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("remainder"));</div><div class='ctx'>     }</div><div class='ctx'>     bigdivrem(x, y, 0, &amp;z);</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE big_lshift _((VALUE, unsigned long));</div><div class='del'>-static VALUE big_rshift _((VALUE, unsigned long));</div><div class='del'>-</div><div class='del'>-static VALUE big_shift(x, n)</div><div class='del'>-    VALUE x;</div><div class='del'>-    int n;</div><div class='del'>-{</div><div class='del'>-    if (n &lt; 0)</div><div class='del'>-	return big_lshift(x, (unsigned int)n);</div><div class='del'>-    else if (n &gt; 0)</div><div class='del'>-	return big_rshift(x, (unsigned int)n);</div><div class='del'>-    return x;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.divmod(numeric)   =&gt; array</div><div class='del'>- *  </div><div class='del'>- *  See &lt;code&gt;Numeric#divmod&lt;/code&gt;.</div><div class='del'>- *     </div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='del'>-rb_big_divmod(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_divmod(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE div, mod;</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='ctx'> 	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("divmod"));</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, &amp;div, &amp;mod);</div><div class='ctx'> </div><div class='ctx'>     return rb_assoc_new(bignorm(div), bignorm(mod));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.quo(numeric) -&gt; float</div><div class='del'>- *  </div><div class='del'>- *  Returns the floating point result of dividing &lt;i&gt;big&lt;/i&gt; by</div><div class='del'>- *  &lt;i&gt;numeric&lt;/i&gt;.</div><div class='del'>- *     </div><div class='del'>- *     -1234567890987654321.quo(13731)      #=&gt; -89910996357705.5</div><div class='del'>- *     -1234567890987654321.quo(13731.24)   #=&gt; -89909424858035.7</div><div class='del'>- *     </div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_quo(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+big_shift(VALUE x, long n)</div><div class='ctx'> {</div><div class='del'>-    double dx = rb_big2dbl(x);</div><div class='del'>-    double dy;</div><div class='add'>+    if (n &lt; 0)</div><div class='add'>+	return big_lshift(x, 1+(unsigned long)(-(n+1)));</div><div class='add'>+    else if (n &gt; 0)</div><div class='add'>+	return big_rshift(x, (unsigned long)n);</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	dy = (double)FIX2LONG(y);</div><div class='del'>-	break;</div><div class='add'>+enum {DBL_BIGDIG = ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG)};</div><div class='ctx'> </div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	dy = rb_big2dbl(y);</div><div class='del'>-	break;</div><div class='add'>+static double</div><div class='add'>+big_fdiv(VALUE x, VALUE y, long ey)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    long l, ex;</div><div class='add'>+</div><div class='add'>+    bigtrunc(x);</div><div class='add'>+    l = BIGNUM_LEN(x);</div><div class='add'>+    ex = l * BITSPERDIG - nlz(BDIGITS(x)[l-1]);</div><div class='add'>+    ex -= 2 * DBL_BIGDIG * BITSPERDIG;</div><div class='add'>+    if (ex &gt; BITSPERDIG) ex -= BITSPERDIG;</div><div class='add'>+    else if (ex &gt; 0) ex = 0;</div><div class='add'>+    if (ex) x = big_shift(x, ex);</div><div class='add'>+</div><div class='add'>+    bigdivrem(x, y, &amp;z, 0);</div><div class='add'>+    l = ex - ey;</div><div class='add'>+#if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='add'>+    {</div><div class='add'>+	/* Visual C++ can't be here */</div><div class='add'>+	if (l &gt; INT_MAX) return INFINITY;</div><div class='add'>+	if (l &lt; INT_MIN) return 0.0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return ldexp(big2dbl(z), (int)l);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	dy = RFLOAT(y)-&gt;value;</div><div class='del'>-	break;</div><div class='add'>+static double</div><div class='add'>+big_fdiv_int(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long l, ey;</div><div class='add'>+    bigtrunc(y);</div><div class='add'>+    l = BIGNUM_LEN(y);</div><div class='add'>+    ey = l * BITSPERDIG - nlz(BDIGITS(y)[l-1]);</div><div class='add'>+    ey -= DBL_BIGDIG * BITSPERDIG;</div><div class='add'>+    if (ey) y = big_shift(y, ey);</div><div class='add'>+    return big_fdiv(x, y, ey);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+big_fdiv_float(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    y = dbl2big(ldexp(frexp(RFLOAT_VALUE(y), &amp;i), DBL_MANT_DIG));</div><div class='add'>+    return big_fdiv(x, y, i - DBL_MANT_DIG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+double</div><div class='add'>+rb_big_fdiv_double(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    double dx, dy;</div><div class='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='add'>+    dx = big2dbl(x);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	dy = (double)FIX2LONG(y);</div><div class='add'>+	if (isinf(dx))</div><div class='add'>+	    return big_fdiv_int(x, rb_int2big(FIX2LONG(y)));</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	dy = rb_big2dbl(y);</div><div class='add'>+	if (isinf(dx) || isinf(dy))</div><div class='add'>+	    return big_fdiv_int(x, y);</div><div class='ctx'>     }</div><div class='del'>-    return rb_float_new(dx / dy);</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	dy = RFLOAT_VALUE(y);</div><div class='add'>+	if (isnan(dy))</div><div class='add'>+	    return dy;</div><div class='add'>+	if (isinf(dx))</div><div class='add'>+	    return big_fdiv_float(x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NUM2DBL(rb_num_coerce_bin(x, y, rb_intern("fdiv")));</div><div class='add'>+    }</div><div class='add'>+    return dx / dy;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big ** exponent   #=&gt; numeric</div><div class='del'>- *</div><div class='del'>- *  Raises _big_ to the _exponent_ power (which may be an integer, float,</div><div class='del'>- *  or anything that will coerce to a number). The result may be</div><div class='del'>- *  a Fixnum, Bignum, or Float</div><div class='del'>- *</div><div class='del'>- *    123456789 ** 2      #=&gt; 15241578750190521</div><div class='del'>- *    123456789 ** 1.2    #=&gt; 5126464716.09932</div><div class='del'>- *    123456789 ** -2     #=&gt; 6.5610001194102e-17</div><div class='del'>- */</div><div class='add'>+VALUE</div><div class='add'>+rb_big_fdiv(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return DBL2NUM(rb_big_fdiv_double(x, y));</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_pow(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_pow(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     double d;</div><div class='del'>-    long yy;</div><div class='del'>-    </div><div class='del'>-    if (y == INT2FIX(0)) return INT2FIX(1);</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	d = RFLOAT(y)-&gt;value;</div><div class='del'>-	break;</div><div class='add'>+    SIGNED_VALUE yy;</div><div class='ctx'> </div><div class='del'>-      case T_BIGNUM:</div><div class='add'>+  again:</div><div class='add'>+    if (y == INT2FIX(0)) return INT2FIX(1);</div><div class='add'>+    if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	d = RFLOAT_VALUE(y);</div><div class='add'>+	if ((BIGNUM_NEGATIVE_P(x) &amp;&amp; !BIGZEROP(x)) &amp;&amp; d != round(d))</div><div class='add'>+	    return rb_funcall(rb_complex_raw1(x), idPow, 1, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	y = bignorm(y);</div><div class='add'>+	if (FIXNUM_P(y))</div><div class='add'>+	    goto again;</div><div class='ctx'> 	rb_warn("in a**b, b may be too big");</div><div class='ctx'> 	d = rb_big2dbl(y);</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_FIXNUM:</div><div class='add'>+    }</div><div class='add'>+    else if (FIXNUM_P(y)) {</div><div class='ctx'> 	yy = FIX2LONG(y);</div><div class='del'>-	if (yy &gt; 0) {</div><div class='del'>-	    VALUE z = x;</div><div class='del'>-	    const long BIGLEN_LIMIT = 1024*1024 / SIZEOF_BDIGITS;</div><div class='ctx'> </div><div class='del'>-	    if ((RBIGNUM(x)-&gt;len &gt; BIGLEN_LIMIT) ||</div><div class='del'>-		(RBIGNUM(x)-&gt;len &gt; BIGLEN_LIMIT / yy)) {</div><div class='add'>+	if (yy &lt; 0)</div><div class='add'>+	    return rb_funcall(rb_rational_raw1(x), idPow, 1, y);</div><div class='add'>+	else {</div><div class='add'>+	    VALUE z = 0;</div><div class='add'>+	    SIGNED_VALUE mask;</div><div class='add'>+            const size_t xbits = rb_absint_numwords(x, 1, NULL);</div><div class='add'>+	    const size_t BIGLEN_LIMIT = 32*1024*1024;</div><div class='add'>+</div><div class='add'>+	    if (xbits == (size_t)-1 ||</div><div class='add'>+                (xbits &gt; BIGLEN_LIMIT) ||</div><div class='add'>+                (xbits * yy &gt; BIGLEN_LIMIT)) {</div><div class='ctx'> 		rb_warn("in a**b, b may be too big");</div><div class='ctx'> 		d = (double)yy;</div><div class='del'>-		break;</div><div class='ctx'> 	    }</div><div class='del'>-	    for (;;) {</div><div class='del'>-		yy -= 1;</div><div class='del'>-		if (yy == 0) break;</div><div class='del'>-		while (yy % 2 == 0) {</div><div class='del'>-		    yy /= 2;</div><div class='del'>-		    x = rb_big_mul0(x, x);</div><div class='del'>-		    bigtrunc(x);</div><div class='add'>+	    else {</div><div class='add'>+		for (mask = FIXNUM_MAX + 1; mask; mask &gt;&gt;= 1) {</div><div class='add'>+		    if (z) z = bigsq(z);</div><div class='add'>+		    if (yy &amp; mask) {</div><div class='add'>+			z = z ? bigtrunc(bigmul0(z, x)) : x;</div><div class='add'>+		    }</div><div class='ctx'> 		}</div><div class='del'>-		z = rb_big_mul0(z, x);</div><div class='del'>-		bigtrunc(z);</div><div class='add'>+		return bignorm(z);</div><div class='ctx'> 	    }</div><div class='del'>-	    return bignorm(z);</div><div class='ctx'> 	}</div><div class='del'>-	d = (double)yy;</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	return rb_num_coerce_bin(x, y);</div><div class='ctx'>     }</div><div class='del'>-    return rb_float_new(pow(rb_big2dbl(x), d));</div><div class='add'>+    else {</div><div class='add'>+	return rb_num_coerce_bin(x, y, idPow);</div><div class='add'>+    }</div><div class='add'>+    return DBL2NUM(pow(rb_big2dbl(x), d));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     big &amp; numeric   =&gt;  integer</div><div class='del'>- *</div><div class='del'>- * Performs bitwise +and+ between _big_ and _numeric_.</div><div class='del'>- */</div><div class='add'>+static VALUE</div><div class='add'>+bigand_int(VALUE x, long xn, BDIGIT hibitsx, long y)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long zn;</div><div class='add'>+    long i;</div><div class='add'>+    BDIGIT hibitsy;</div><div class='add'>+</div><div class='add'>+    if (y == 0) return INT2FIX(0);</div><div class='add'>+    if (xn == 0) return hibitsx ? LONG2NUM(y) : 0;</div><div class='add'>+    hibitsy = 0 &lt;= y ? 0 : BDIGMAX;</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    if (!hibitsy) {</div><div class='add'>+	y &amp;= xds[0];</div><div class='add'>+	return LONG2NUM(y);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    zn = xn;</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (hibitsx &amp;&amp; zn &lt; bdigit_roomof(SIZEOF_LONG))</div><div class='add'>+        zn = bdigit_roomof(SIZEOF_LONG);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    z = bignew(zn, 0);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] &amp; BIGLO(y);</div><div class='add'>+#else</div><div class='add'>+    for (i=0; i &lt; xn; i++) {</div><div class='add'>+        if (y == 0 || y == -1) break;</div><div class='add'>+        zds[i] = xds[i] &amp; BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        if (y == 0 || y == -1) break;</div><div class='add'>+        zds[i] = hibitsx &amp; BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    for (;i &lt; xn; i++) {</div><div class='add'>+	zds[i] = xds[i] &amp; hibitsy;</div><div class='add'>+    }</div><div class='add'>+    for (;i &lt; zn; i++) {</div><div class='add'>+	zds[i] = hibitsx &amp; hibitsy;</div><div class='add'>+    }</div><div class='add'>+    twocomp2abs_bang(z, hibitsx &amp;&amp; hibitsy);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_and(xx, yy)</div><div class='del'>-    VALUE xx, yy;</div><div class='add'>+rb_big_and(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    volatile VALUE x, y, z;</div><div class='add'>+    VALUE z;</div><div class='ctx'>     BDIGIT *ds1, *ds2, *zds;</div><div class='del'>-    long i, l1, l2;</div><div class='del'>-    char sign;</div><div class='add'>+    long i, xn, yn, n1, n2;</div><div class='add'>+    BDIGIT hibitsx, hibitsy;</div><div class='add'>+    BDIGIT hibits1, hibits2;</div><div class='add'>+    VALUE tmpv;</div><div class='add'>+    BDIGIT tmph;</div><div class='add'>+    long tmpn;</div><div class='ctx'> </div><div class='del'>-    x = xx;</div><div class='del'>-    y = rb_to_int(yy);</div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='del'>-    }</div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = rb_big_clone(y);</div><div class='del'>-	get2comp(y);</div><div class='del'>-    }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = rb_big_clone(x);</div><div class='del'>-	get2comp(x);</div><div class='add'>+    if (!RB_INTEGER_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bit(x, y, '&amp;');</div><div class='ctx'>     }</div><div class='del'>-    if (RBIGNUM(x)-&gt;len &gt; RBIGNUM(y)-&gt;len) {</div><div class='del'>-	l1 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(y);</div><div class='del'>-	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+</div><div class='add'>+    hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigand_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(x);</div><div class='del'>-	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+    hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+        tmpv = x; x = y; y = tmpv;</div><div class='add'>+        tmpn = xn; xn = yn; yn = tmpn;</div><div class='add'>+        tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(l2, RBIGNUM(x)-&gt;sign || RBIGNUM(y)-&gt;sign);</div><div class='add'>+    n1 = xn;</div><div class='add'>+    n2 = yn;</div><div class='add'>+    ds1 = BDIGITS(x);</div><div class='add'>+    ds2 = BDIGITS(y);</div><div class='add'>+    hibits1 = hibitsx;</div><div class='add'>+    hibits2 = hibitsy;</div><div class='add'>+</div><div class='add'>+    if (!hibits1)</div><div class='add'>+        n2 = n1;</div><div class='add'>+</div><div class='add'>+    z = bignew(n2, 0);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;l1; i++) {</div><div class='add'>+    for (i=0; i&lt;n1; i++) {</div><div class='ctx'> 	zds[i] = ds1[i] &amp; ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    for (; i&lt;l2; i++) {</div><div class='del'>-	zds[i] = sign?0:ds2[i];</div><div class='add'>+    for (; i&lt;n2; i++) {</div><div class='add'>+	zds[i] = hibits1 &amp; ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) get2comp(z);</div><div class='add'>+    twocomp2abs_bang(z, hibits1 &amp;&amp; hibits2);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     big | numeric   =&gt;  integer</div><div class='del'>- *</div><div class='del'>- * Performs bitwise +or+ between _big_ and _numeric_.</div><div class='del'>- */</div><div class='add'>+static VALUE</div><div class='add'>+bigor_int(VALUE x, long xn, BDIGIT hibitsx, long y)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long zn;</div><div class='add'>+    long i;</div><div class='add'>+    BDIGIT hibitsy;</div><div class='add'>+</div><div class='add'>+    if (y == -1) return INT2FIX(-1);</div><div class='add'>+    if (xn == 0) return hibitsx ? INT2FIX(-1) : LONG2FIX(y);</div><div class='add'>+    hibitsy = 0 &lt;= y ? 0 : BDIGMAX;</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+</div><div class='add'>+    zn = BIGNUM_LEN(x);</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (zn &lt; bdigit_roomof(SIZEOF_LONG))</div><div class='add'>+        zn = bdigit_roomof(SIZEOF_LONG);</div><div class='add'>+#endif</div><div class='add'>+    z = bignew(zn, 0);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] | BIGLO(y);</div><div class='add'>+    if (i &lt; zn)</div><div class='add'>+        goto y_is_fixed_point;</div><div class='add'>+    goto finish;</div><div class='add'>+#else</div><div class='add'>+    for (i=0; i &lt; xn; i++) {</div><div class='add'>+        if (y == 0 || y == -1) goto y_is_fixed_point;</div><div class='add'>+        zds[i] = xds[i] | BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+    if (hibitsx)</div><div class='add'>+        goto fill_hibits;</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        if (y == 0 || y == -1) goto y_is_fixed_point;</div><div class='add'>+        zds[i] = BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+  goto finish;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+  y_is_fixed_point:</div><div class='add'>+    if (hibitsy)</div><div class='add'>+        goto fill_hibits;</div><div class='add'>+    for (; i &lt; xn; i++) {</div><div class='add'>+        zds[i] = xds[i];</div><div class='add'>+    }</div><div class='add'>+    if (hibitsx)</div><div class='add'>+        goto fill_hibits;</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+  goto finish;</div><div class='add'>+</div><div class='add'>+  fill_hibits:</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        zds[i] = BDIGMAX;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  finish:</div><div class='add'>+    twocomp2abs_bang(z, hibitsx || hibitsy);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_big_or(xx, yy)</div><div class='del'>-    VALUE xx, yy;</div><div class='add'>+rb_big_or(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    volatile VALUE x, y, z;</div><div class='add'>+    VALUE z;</div><div class='ctx'>     BDIGIT *ds1, *ds2, *zds;</div><div class='del'>-    long i, l1, l2;</div><div class='del'>-    char sign;</div><div class='add'>+    long i, xn, yn, n1, n2;</div><div class='add'>+    BDIGIT hibitsx, hibitsy;</div><div class='add'>+    BDIGIT hibits1, hibits2;</div><div class='add'>+    VALUE tmpv;</div><div class='add'>+    BDIGIT tmph;</div><div class='add'>+    long tmpn;</div><div class='ctx'> </div><div class='del'>-    x = xx;</div><div class='del'>-    y = rb_to_int(yy);</div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+    if (!RB_INTEGER_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bit(x, y, '|');</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = rb_big_clone(y);</div><div class='del'>-	get2comp(y);</div><div class='del'>-    }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = rb_big_clone(x);</div><div class='del'>-	get2comp(x);</div><div class='del'>-    }</div><div class='del'>-    if (RBIGNUM(x)-&gt;len &gt; RBIGNUM(y)-&gt;len) {</div><div class='del'>-	l1 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(y);</div><div class='del'>-	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+</div><div class='add'>+    hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(x);</div><div class='del'>-	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+    hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+        tmpv = x; x = y; y = tmpv;</div><div class='add'>+        tmpn = xn; xn = yn; yn = tmpn;</div><div class='add'>+        tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(l2, RBIGNUM(x)-&gt;sign &amp;&amp; RBIGNUM(y)-&gt;sign);</div><div class='add'>+    n1 = xn;</div><div class='add'>+    n2 = yn;</div><div class='add'>+    ds1 = BDIGITS(x);</div><div class='add'>+    ds2 = BDIGITS(y);</div><div class='add'>+    hibits1 = hibitsx;</div><div class='add'>+    hibits2 = hibitsy;</div><div class='add'>+</div><div class='add'>+    if (hibits1)</div><div class='add'>+        n2 = n1;</div><div class='add'>+</div><div class='add'>+    z = bignew(n2, 0);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;l1; i++) {</div><div class='add'>+    for (i=0; i&lt;n1; i++) {</div><div class='ctx'> 	zds[i] = ds1[i] | ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    for (; i&lt;l2; i++) {</div><div class='del'>-	zds[i] = sign?ds2[i]:(BIGRAD-1);</div><div class='add'>+    for (; i&lt;n2; i++) {</div><div class='add'>+	zds[i] = hibits1 | ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) get2comp(z);</div><div class='del'>-</div><div class='add'>+    twocomp2abs_bang(z, hibits1 || hibits2);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     big ^ numeric   =&gt;  integer</div><div class='del'>- *</div><div class='del'>- * Performs bitwise +exclusive or+ between _big_ and _numeric_.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_big_xor(xx, yy)</div><div class='del'>-    VALUE xx, yy;</div><div class='add'>+static VALUE</div><div class='add'>+bigxor_int(VALUE x, long xn, BDIGIT hibitsx, long y)</div><div class='ctx'> {</div><div class='del'>-    volatile VALUE x, y;</div><div class='ctx'>     VALUE z;</div><div class='del'>-    BDIGIT *ds1, *ds2, *zds;</div><div class='del'>-    long i, l1, l2;</div><div class='del'>-    char sign;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long zn;</div><div class='add'>+    long i;</div><div class='add'>+    BDIGIT hibitsy;</div><div class='ctx'> </div><div class='del'>-    x = xx;</div><div class='del'>-    y = rb_to_int(yy);</div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+    hibitsy = 0 &lt;= y ? 0 : BDIGMAX;</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    zn = BIGNUM_LEN(x);</div><div class='add'>+#if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='add'>+    if (zn &lt; bdigit_roomof(SIZEOF_LONG))</div><div class='add'>+        zn = bdigit_roomof(SIZEOF_LONG);</div><div class='add'>+#endif</div><div class='add'>+    z = bignew(zn, 0);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] ^ BIGLO(y);</div><div class='add'>+#else</div><div class='add'>+    for (i = 0; i &lt; xn; i++) {</div><div class='add'>+        zds[i] = xds[i] ^ BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = rb_big_clone(y);</div><div class='del'>-	get2comp(y);</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        zds[i] = hibitsx ^ BIGLO(y);</div><div class='add'>+        y = BIGDN(y);</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = rb_big_clone(x);</div><div class='del'>-	get2comp(x);</div><div class='add'>+#endif</div><div class='add'>+    for (; i &lt; xn; i++) {</div><div class='add'>+        zds[i] = xds[i] ^ hibitsy;</div><div class='ctx'>     }</div><div class='del'>-    if (RBIGNUM(x)-&gt;len &gt; RBIGNUM(y)-&gt;len) {</div><div class='del'>-	l1 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(y);</div><div class='del'>-	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+    for (; i &lt; zn; i++) {</div><div class='add'>+        zds[i] = hibitsx ^ hibitsy;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='del'>-	ds1 = BDIGITS(x);</div><div class='del'>-	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+    twocomp2abs_bang(z, (hibitsx ^ hibitsy) != 0);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_xor(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *ds1, *ds2, *zds;</div><div class='add'>+    long i, xn, yn, n1, n2;</div><div class='add'>+    BDIGIT hibitsx, hibitsy;</div><div class='add'>+    BDIGIT hibits1, hibits2;</div><div class='add'>+    VALUE tmpv;</div><div class='add'>+    BDIGIT tmph;</div><div class='add'>+    long tmpn;</div><div class='add'>+</div><div class='add'>+    if (!RB_INTEGER_TYPE_P(y)) {</div><div class='add'>+	return rb_num_coerce_bit(x, y, '^');</div><div class='ctx'>     }</div><div class='del'>-    RBIGNUM(x)-&gt;sign = RBIGNUM(x)-&gt;sign?1:0;</div><div class='del'>-    RBIGNUM(y)-&gt;sign = RBIGNUM(y)-&gt;sign?1:0;</div><div class='del'>-    z = bignew(l2, !(RBIGNUM(x)-&gt;sign ^ RBIGNUM(y)-&gt;sign));</div><div class='add'>+</div><div class='add'>+    hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigxor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='add'>+    }</div><div class='add'>+    hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+        tmpv = x; x = y; y = tmpv;</div><div class='add'>+        tmpn = xn; xn = yn; yn = tmpn;</div><div class='add'>+        tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;</div><div class='add'>+    }</div><div class='add'>+    n1 = xn;</div><div class='add'>+    n2 = yn;</div><div class='add'>+    ds1 = BDIGITS(x);</div><div class='add'>+    ds2 = BDIGITS(y);</div><div class='add'>+    hibits1 = hibitsx;</div><div class='add'>+    hibits2 = hibitsy;</div><div class='add'>+</div><div class='add'>+    z = bignew(n2, 0);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;l1; i++) {</div><div class='add'>+    for (i=0; i&lt;n1; i++) {</div><div class='ctx'> 	zds[i] = ds1[i] ^ ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    for (; i&lt;l2; i++) {</div><div class='del'>-	zds[i] = sign?ds2[i]:~ds2[i];</div><div class='add'>+    for (; i&lt;n2; i++) {</div><div class='add'>+	zds[i] = hibitsx ^ ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) get2comp(z);</div><div class='del'>-</div><div class='add'>+    twocomp2abs_bang(z, (hibits1 ^ hibits2) != 0);</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-check_shiftdown(VALUE y, VALUE x)</div><div class='add'>+VALUE</div><div class='add'>+rb_big_lshift(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (!RBIGNUM(x)-&gt;len) return INT2FIX(0);</div><div class='del'>-    if (RBIGNUM(y)-&gt;len &gt; SIZEOF_LONG / SIZEOF_BDIGITS) {</div><div class='del'>-	return RBIGNUM(x)-&gt;sign ? INT2FIX(0) : INT2FIX(-1);</div><div class='add'>+    int lshift_p;</div><div class='add'>+    size_t shift_numdigits;</div><div class='add'>+    int shift_numbits;</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+	if (FIXNUM_P(y)) {</div><div class='add'>+	    long l = FIX2LONG(y);</div><div class='add'>+            unsigned long shift;</div><div class='add'>+	    if (0 &lt;= l) {</div><div class='add'>+		lshift_p = 1;</div><div class='add'>+                shift = l;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+		lshift_p = 0;</div><div class='add'>+		shift = 1+(unsigned long)(-(l+1));</div><div class='add'>+	    }</div><div class='add'>+            shift_numbits = (int)(shift &amp; (BITSPERDIG-1));</div><div class='add'>+            shift_numdigits = shift &gt;&gt; bit_length(BITSPERDIG-1);</div><div class='add'>+            return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));</div><div class='add'>+	}</div><div class='add'>+	else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+            return bignorm(big_shift2(x, 1, y));</div><div class='add'>+	}</div><div class='add'>+	y = rb_to_int(y);</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     big &lt;&lt; numeric   =&gt;  integer</div><div class='del'>- *</div><div class='del'>- * Shifts big left _numeric_ positions (right if _numeric_ is negative).</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='del'>-rb_big_lshift(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_rshift(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    long shift;</div><div class='del'>-    int neg = 0;</div><div class='add'>+    int lshift_p;</div><div class='add'>+    size_t shift_numdigits;</div><div class='add'>+    int shift_numbits;</div><div class='ctx'> </div><div class='ctx'>     for (;;) {</div><div class='ctx'> 	if (FIXNUM_P(y)) {</div><div class='del'>-	    shift = FIX2LONG(y);</div><div class='del'>-	    if (shift &lt; 0) {</div><div class='del'>-		neg = 1;</div><div class='del'>-		shift = -shift;</div><div class='add'>+	    long l = FIX2LONG(y);</div><div class='add'>+            unsigned long shift;</div><div class='add'>+            if (0 &lt;= l) {</div><div class='add'>+                lshift_p = 0;</div><div class='add'>+                shift = l;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                lshift_p = 1;</div><div class='add'>+		shift = 1+(unsigned long)(-(l+1));</div><div class='ctx'> 	    }</div><div class='del'>-	    break;</div><div class='add'>+            shift_numbits = (int)(shift &amp; (BITSPERDIG-1));</div><div class='add'>+            shift_numdigits = shift &gt;&gt; bit_length(BITSPERDIG-1);</div><div class='add'>+            return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));</div><div class='ctx'> 	}</div><div class='del'>-	else if (TYPE(y) == T_BIGNUM) {</div><div class='del'>-	    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-		VALUE t = check_shiftdown(y, x);</div><div class='del'>-		if (!NIL_P(t)) return t;</div><div class='del'>-		neg = 1;</div><div class='del'>-	    }</div><div class='del'>-	    shift = big2ulong(y, "long", Qtrue);</div><div class='del'>-	    break;</div><div class='add'>+	else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+            return bignorm(big_shift2(x, 0, y));</div><div class='ctx'> 	}</div><div class='ctx'> 	y = rb_to_int(y);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if (neg) return big_rshift(x, shift);</div><div class='del'>-    return big_lshift(x, shift);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-big_lshift(x, shift)</div><div class='del'>-    VALUE x;</div><div class='del'>-    unsigned long shift;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_aref(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT *xds, *zds;</div><div class='del'>-    long s1 = shift/BITSPERDIG;</div><div class='del'>-    int s2 = shift%BITSPERDIG;</div><div class='del'>-    VALUE z;</div><div class='del'>-    BDIGIT_DBL num = 0;</div><div class='del'>-    long len, i;</div><div class='add'>+    BDIGIT *xds;</div><div class='add'>+    size_t shift;</div><div class='add'>+    size_t i, s1, s2;</div><div class='add'>+    long l;</div><div class='add'>+    BDIGIT bit;</div><div class='ctx'> </div><div class='del'>-    len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    z = bignew(len+s1+1, RBIGNUM(x)-&gt;sign);</div><div class='del'>-    zds = BDIGITS(z);</div><div class='del'>-    for (i=0; i&lt;s1; i++) {</div><div class='del'>-	*zds++ = 0;</div><div class='add'>+    if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+	if (BIGNUM_NEGATIVE_P(y))</div><div class='add'>+	    return INT2FIX(0);</div><div class='add'>+	bigtrunc(y);</div><div class='add'>+	if (BIGSIZE(y) &gt; sizeof(size_t)) {</div><div class='add'>+	  out_of_range:</div><div class='add'>+	    return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+	}</div><div class='add'>+#if SIZEOF_SIZE_T &lt;= SIZEOF_LONG</div><div class='add'>+	shift = big2ulong(y, "long");</div><div class='add'>+#else</div><div class='add'>+	shift = big2ull(y, "long long");</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='del'>-    xds = BDIGITS(x);</div><div class='del'>-    for (i=0; i&lt;len; i++) {</div><div class='del'>-	num = num | (BDIGIT_DBL)*xds++&lt;&lt;s2;</div><div class='del'>-	*zds++ = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+    else {</div><div class='add'>+	l = NUM2LONG(y);</div><div class='add'>+	if (l &lt; 0) return INT2FIX(0);</div><div class='add'>+	shift = (size_t)l;</div><div class='ctx'>     }</div><div class='del'>-    *zds = BIGLO(num);</div><div class='del'>-    return bignorm(z);</div><div class='add'>+    s1 = shift/BITSPERDIG;</div><div class='add'>+    s2 = shift%BITSPERDIG;</div><div class='add'>+    bit = (BDIGIT)1 &lt;&lt; s2;</div><div class='add'>+</div><div class='add'>+    if (s1 &gt;= BIGNUM_LEN(x)) goto out_of_range;</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    if (BIGNUM_POSITIVE_P(x))</div><div class='add'>+        return (xds[s1] &amp; bit) ? INT2FIX(1) : INT2FIX(0);</div><div class='add'>+    if (xds[s1] &amp; (bit-1))</div><div class='add'>+        return (xds[s1] &amp; bit) ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+    for (i = 0; i &lt; s1; i++)</div><div class='add'>+        if (xds[i])</div><div class='add'>+            return (xds[s1] &amp; bit) ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+    return (xds[s1] &amp; bit) ? INT2FIX(1) : INT2FIX(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_hash(VALUE x)</div><div class='add'>+{</div><div class='add'>+    st_index_t hash;</div><div class='add'>+</div><div class='add'>+    hash = rb_memhash(BDIGITS(x), sizeof(BDIGIT)*BIGNUM_LEN(x)) ^ BIGNUM_SIGN(x);</div><div class='add'>+    return ST2FIX(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *     big &gt;&gt; numeric   =&gt;  integer</div><div class='add'>+ *   big.coerce(numeric)  -&gt;  array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array with both a +numeric+ and a +big+ represented as Bignum</div><div class='add'>+ * objects.</div><div class='add'>+ *</div><div class='add'>+ * This is achieved by converting +numeric+ to a Bignum.</div><div class='add'>+ *</div><div class='add'>+ * A TypeError is raised if the +numeric+ is not a Fixnum or Bignum type.</div><div class='ctx'>  *</div><div class='del'>- * Shifts big right _numeric_ positions (left if _numeric_ is negative).</div><div class='add'>+ *     (0x3FFFFFFFFFFFFFFF+1).coerce(42)   #=&gt; [42, 4611686018427387904]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_big_rshift(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static VALUE</div><div class='add'>+rb_int_coerce(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    long shift;</div><div class='del'>-    int neg = 0;</div><div class='add'>+    if (RB_INTEGER_TYPE_P(y)) {</div><div class='add'>+        return rb_assoc_new(y, x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        x = rb_Float(x);</div><div class='add'>+        y = rb_Float(y);</div><div class='add'>+        return rb_assoc_new(y, x);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    for (;;) {</div><div class='del'>-	if (FIXNUM_P(y)) {</div><div class='del'>-	    shift = FIX2LONG(y);</div><div class='del'>-	    if (shift &lt; 0) {</div><div class='del'>-		neg = 1;</div><div class='del'>-		shift = -shift;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	else if (TYPE(y) == T_BIGNUM) {</div><div class='del'>-	    if (RBIGNUM(y)-&gt;sign) {</div><div class='del'>-		VALUE t = check_shiftdown(y, x);</div><div class='del'>-		if (!NIL_P(t)) return t;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		neg = 1;</div><div class='del'>-	    }</div><div class='del'>-	    shift = big2ulong(y, "long", Qtrue);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	y = rb_to_int(y);</div><div class='add'>+VALUE</div><div class='add'>+rb_big_abs(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (BIGNUM_NEGATIVE_P(x)) {</div><div class='add'>+	x = rb_big_clone(x);</div><div class='add'>+	BIGNUM_SET_POSITIVE_SIGN(x);</div><div class='ctx'>     }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (neg) return big_lshift(x, shift);</div><div class='del'>-    return big_rshift(x, shift);</div><div class='add'>+int</div><div class='add'>+rb_big_sign(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return BIGNUM_SIGN(x);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-big_rshift(x, shift)</div><div class='del'>-    VALUE x;</div><div class='del'>-    unsigned long shift;</div><div class='add'>+size_t</div><div class='add'>+rb_big_size(VALUE big)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT *xds, *zds;</div><div class='del'>-    long s1 = shift/BITSPERDIG;</div><div class='del'>-    int s2 = shift%BITSPERDIG;</div><div class='del'>-    VALUE z;</div><div class='del'>-    BDIGIT_DBL num = 0;</div><div class='del'>-    long i, j;</div><div class='del'>-    volatile VALUE save_x;</div><div class='add'>+    return BIGSIZE(big);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (s1 &gt; RBIGNUM(x)-&gt;len) {</div><div class='del'>-	if (RBIGNUM(x)-&gt;sign)</div><div class='del'>-	    return INT2FIX(0);</div><div class='del'>-	else</div><div class='del'>-	    return INT2FIX(-1);</div><div class='del'>-    }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	save_x = x = rb_big_clone(x);</div><div class='del'>-	get2comp(x);</div><div class='del'>-    }</div><div class='del'>-    xds = BDIGITS(x);</div><div class='del'>-    i = RBIGNUM(x)-&gt;len; j = i - s1;</div><div class='del'>-    if (j == 0) {</div><div class='del'>-	if (RBIGNUM(x)-&gt;sign) return INT2FIX(0);</div><div class='del'>-	else return INT2FIX(-1);</div><div class='add'>+VALUE</div><div class='add'>+rb_big_size_m(VALUE big)</div><div class='add'>+{</div><div class='add'>+    return SIZET2NUM(rb_big_size(big));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_bit_length(VALUE big)</div><div class='add'>+{</div><div class='add'>+    int nlz_bits;</div><div class='add'>+    size_t numbytes;</div><div class='add'>+</div><div class='add'>+    static const BDIGIT char_bit[1] = { CHAR_BIT };</div><div class='add'>+    BDIGIT numbytes_bary[bdigit_roomof(sizeof(size_t))];</div><div class='add'>+    BDIGIT nlz_bary[1];</div><div class='add'>+    BDIGIT result_bary[bdigit_roomof(sizeof(size_t)+1)];</div><div class='add'>+</div><div class='add'>+    numbytes = rb_absint_size(big, &amp;nlz_bits);</div><div class='add'>+</div><div class='add'>+    if (numbytes == 0)</div><div class='add'>+        return LONG2FIX(0);</div><div class='add'>+</div><div class='add'>+    if (BIGNUM_NEGATIVE_P(big) &amp;&amp; rb_absint_singlebit_p(big)) {</div><div class='add'>+        if (nlz_bits != CHAR_BIT-1) {</div><div class='add'>+            nlz_bits++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            nlz_bits = 0;</div><div class='add'>+            numbytes--;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(j, RBIGNUM(x)-&gt;sign);</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	num = ((BDIGIT_DBL)~0) &lt;&lt; BITSPERDIG;</div><div class='add'>+</div><div class='add'>+    if (numbytes &lt;= SIZE_MAX / CHAR_BIT) {</div><div class='add'>+        return SIZET2NUM(numbytes * CHAR_BIT - nlz_bits);</div><div class='ctx'>     }</div><div class='del'>-    zds = BDIGITS(z);</div><div class='del'>-    while (i--, j--) {</div><div class='del'>-	num = (num | xds[i]) &gt;&gt; s2;</div><div class='del'>-	zds[j] = BIGLO(num);</div><div class='del'>-	num = BIGUP(xds[i]);</div><div class='add'>+</div><div class='add'>+    nlz_bary[0] = nlz_bits;</div><div class='add'>+</div><div class='add'>+    bary_unpack(BARY_ARGS(numbytes_bary), &amp;numbytes, 1, sizeof(numbytes), 0,</div><div class='add'>+            INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+    BARY_SHORT_MUL(result_bary, numbytes_bary, char_bit);</div><div class='add'>+    BARY_SUB(result_bary, result_bary, nlz_bary);</div><div class='add'>+</div><div class='add'>+    return rb_integer_unpack(result_bary, numberof(result_bary), sizeof(BDIGIT), 0,</div><div class='add'>+            INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_odd_p(VALUE num)</div><div class='add'>+{</div><div class='add'>+    if (BIGNUM_LEN(num) != 0 &amp;&amp; BDIGITS(num)[0] &amp; 1) {</div><div class='add'>+	return Qtrue;</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	get2comp(z);</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_even_p(VALUE num)</div><div class='add'>+{</div><div class='add'>+    if (BIGNUM_LEN(num) != 0 &amp;&amp; BDIGITS(num)[0] &amp; 1) {</div><div class='add'>+	return Qfalse;</div><div class='ctx'>     }</div><div class='del'>-    return bignorm(z);</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big[n] -&gt; 0, 1</div><div class='del'>- *  </div><div class='del'>- *  Bit Reference---Returns the &lt;em&gt;n&lt;/em&gt;th bit in the (assumed) binary</div><div class='del'>- *  representation of &lt;i&gt;big&lt;/i&gt;, where &lt;i&gt;big&lt;/i&gt;[0] is the least</div><div class='del'>- *  significant bit.</div><div class='del'>- *     </div><div class='del'>- *     a = 9**15</div><div class='del'>- *     50.downto(0) do |n|</div><div class='del'>- *       print a[n]</div><div class='del'>- *     end</div><div class='del'>- *     </div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *     </div><div class='del'>- *     000101110110100000111000011110010100111100010111001</div><div class='del'>- *     </div><div class='del'>- */</div><div class='add'>+unsigned long rb_ulong_isqrt(unsigned long);</div><div class='add'>+#if SIZEOF_BDIGIT*2 &gt; SIZEOF_LONG</div><div class='add'>+BDIGIT rb_bdigit_dbl_isqrt(BDIGIT_DBL);</div><div class='add'>+# ifdef ULL_TO_DOUBLE</div><div class='add'>+#   define BDIGIT_DBL_TO_DOUBLE(n) ULL_TO_DOUBLE(n)</div><div class='add'>+# endif</div><div class='add'>+#else</div><div class='add'>+# define rb_bdigit_dbl_isqrt(x) (BDIGIT)rb_ulong_isqrt(x)</div><div class='add'>+#endif</div><div class='add'>+#ifndef BDIGIT_DBL_TO_DOUBLE</div><div class='add'>+# define BDIGIT_DBL_TO_DOUBLE(n) (double)(n)</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_big_aref(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static BDIGIT *</div><div class='add'>+estimate_initial_sqrt(VALUE *xp, const size_t xn, const BDIGIT *nds, size_t len)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT *xds;</div><div class='del'>-    BDIGIT_DBL num;</div><div class='del'>-    unsigned long shift;</div><div class='del'>-    long i, s1, s2;</div><div class='del'>-</div><div class='del'>-    if (TYPE(y) == T_BIGNUM) {</div><div class='del'>-	if (!RBIGNUM(y)-&gt;sign)</div><div class='del'>-	    return INT2FIX(0);</div><div class='del'>-	if (RBIGNUM(bigtrunc(y))-&gt;len &gt; SIZEOF_LONG/SIZEOF_BDIGITS) {</div><div class='del'>-	  out_of_range:</div><div class='del'>-	    return RBIGNUM(x)-&gt;sign ? INT2FIX(0) : INT2FIX(1);</div><div class='del'>-	}</div><div class='del'>-	shift = big2ulong(y, "long", Qfalse);</div><div class='add'>+    enum {dbl_per_bdig = roomof(DBL_MANT_DIG,BITSPERDIG)};</div><div class='add'>+    const int zbits = nlz(nds[len-1]);</div><div class='add'>+    VALUE x = *xp = bignew_1(0, xn, 1); /* division may release the GVL */</div><div class='add'>+    BDIGIT *xds = BDIGITS(x);</div><div class='add'>+    BDIGIT_DBL d = bary2bdigitdbl(nds+len-dbl_per_bdig, dbl_per_bdig);</div><div class='add'>+    BDIGIT lowbits = 1;</div><div class='add'>+    int rshift = (int)((BITSPERDIG*2-zbits+(len&amp;BITSPERDIG&amp;1) - DBL_MANT_DIG + 1) &amp; ~1);</div><div class='add'>+    double f;</div><div class='add'>+</div><div class='add'>+    if (rshift &gt; 0) {</div><div class='add'>+	lowbits = (BDIGIT)d &amp; ~(~(BDIGIT)1U &lt;&lt; rshift);</div><div class='add'>+	d &gt;&gt;= rshift;</div><div class='add'>+    }</div><div class='add'>+    else if (rshift &lt; 0) {</div><div class='add'>+	d &lt;&lt;= -rshift;</div><div class='add'>+	d |= nds[len-dbl_per_bdig-1] &gt;&gt; (BITSPERDIG+rshift);</div><div class='add'>+    }</div><div class='add'>+    f = sqrt(BDIGIT_DBL_TO_DOUBLE(d));</div><div class='add'>+    d = (BDIGIT_DBL)ceil(f);</div><div class='add'>+    if (BDIGIT_DBL_TO_DOUBLE(d) == f) {</div><div class='add'>+	if (lowbits || (lowbits = !bary_zero_p(nds, len-dbl_per_bdig)))</div><div class='add'>+	    ++d;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	i = NUM2LONG(y);</div><div class='del'>-	if (i &lt; 0) return INT2FIX(0);</div><div class='del'>-	shift = (VALUE)i;</div><div class='del'>-    }</div><div class='del'>-    s1 = shift/BITSPERDIG;</div><div class='del'>-    s2 = shift%BITSPERDIG;</div><div class='del'>-</div><div class='del'>-    if (s1 &gt;= RBIGNUM(x)-&gt;len) goto out_of_range;</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	xds = BDIGITS(x);</div><div class='del'>-	i = 0; num = 1;</div><div class='del'>-	while (num += ~xds[i], ++i &lt;= s1) {</div><div class='del'>-	    num = BIGDN(num);</div><div class='del'>-	}</div><div class='add'>+	lowbits = 1;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	num = BDIGITS(x)[s1];</div><div class='add'>+    rshift /= 2;</div><div class='add'>+    rshift += (2-(len&amp;1))*BITSPERDIG/2;</div><div class='add'>+    if (rshift &gt;= 0) {</div><div class='add'>+	d &lt;&lt;= rshift;</div><div class='ctx'>     }</div><div class='del'>-    if (num &amp; ((BDIGIT_DBL)1&lt;&lt;s2))</div><div class='del'>-	return INT2FIX(1);</div><div class='del'>-    return INT2FIX(0);</div><div class='del'>-}</div><div class='add'>+    BDIGITS_ZERO(xds, xn-2);</div><div class='add'>+    bdigitdbl2bary(&amp;xds[xn-2], 2, d);</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   big.hash   =&gt; fixnum</div><div class='del'>- *</div><div class='del'>- * Compute a hash based on the value of _big_.</div><div class='del'>- */</div><div class='add'>+    if (!lowbits) return NULL; /* special case, exact result */</div><div class='add'>+    return xds;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_big_hash(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+VALUE</div><div class='add'>+rb_big_isqrt(VALUE n)</div><div class='ctx'> {</div><div class='del'>-    long i, len, key;</div><div class='del'>-    BDIGIT *digits;</div><div class='add'>+    BDIGIT *nds = BDIGITS(n);</div><div class='add'>+    size_t len = BIGNUM_LEN(n);</div><div class='add'>+    size_t xn = (len+1) / 2;</div><div class='add'>+    VALUE x;</div><div class='add'>+    BDIGIT *xds;</div><div class='ctx'> </div><div class='del'>-    key = 0; digits = BDIGITS(x); len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    for (i=0; i&lt;len; i++) {</div><div class='del'>-	key ^= *digits++;</div><div class='add'>+    if (len &lt;= 2) {</div><div class='add'>+	BDIGIT sq = rb_bdigit_dbl_isqrt(bary2bdigitdbl(nds, len));</div><div class='add'>+#if SIZEOF_BDIGIT &gt; SIZEOF_LONG</div><div class='add'>+	return ULL2NUM(sq);</div><div class='add'>+#else</div><div class='add'>+	return ULONG2NUM(sq);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else if ((xds = estimate_initial_sqrt(&amp;x, xn, nds, len)) != 0) {</div><div class='add'>+	size_t tn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+	VALUE t = bignew_1(0, tn, 1);</div><div class='add'>+	BDIGIT *tds = BDIGITS(t);</div><div class='add'>+	tn = BIGNUM_LEN(t);</div><div class='add'>+</div><div class='add'>+	/* t = n/x */</div><div class='add'>+	while (bary_divmod_branch(tds, tn, NULL, 0, nds, len, xds, xn),</div><div class='add'>+	       bary_cmp(tds, tn, xds, xn) &lt; 0) {</div><div class='add'>+	    int carry;</div><div class='add'>+	    BARY_TRUNC(tds, tn);</div><div class='add'>+	    /* x = (x+t)/2 */</div><div class='add'>+	    carry = bary_add(xds, xn, xds, xn, tds, tn);</div><div class='add'>+	    bary_small_rshift(xds, xds, xn, 1, carry);</div><div class='add'>+	    tn = BIGNUM_LEN(t);</div><div class='add'>+	}</div><div class='add'>+	rb_big_realloc(t, 0);</div><div class='add'>+	rb_gc_force_recycle(t);</div><div class='ctx'>     }</div><div class='del'>-    return LONG2FIX(key);</div><div class='add'>+    RBASIC_SET_CLASS_RAW(x, rb_cInteger);</div><div class='add'>+    return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * MISSING: documentation</div><div class='del'>- */</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+static void</div><div class='add'>+bary_powm_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, const BDIGIT *mds, size_t mn)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_t z, x, y, m;</div><div class='add'>+    size_t count;</div><div class='add'>+    mpz_init(x);</div><div class='add'>+    mpz_init(y);</div><div class='add'>+    mpz_init(m);</div><div class='add'>+    mpz_init(z);</div><div class='add'>+    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+    mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='add'>+    mpz_import(m, mn, -1, sizeof(BDIGIT), 0, nails, mds);</div><div class='add'>+    mpz_powm(z, x, y, m);</div><div class='add'>+    mpz_export(zds, &amp;count, -1, sizeof(BDIGIT), 0, nails, z);</div><div class='add'>+    BDIGITS_ZERO(zds+count, zn-count);</div><div class='add'>+    mpz_clear(x);</div><div class='add'>+    mpz_clear(y);</div><div class='add'>+    mpz_clear(m);</div><div class='add'>+    mpz_clear(z);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_coerce(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+int_pow_tmp3(VALUE x, VALUE y, VALUE m, int nega_flg)</div><div class='ctx'> {</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+    VALUE z;</div><div class='add'>+    size_t xn, yn, mn, zn;</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(x)) {</div><div class='add'>+       x = rb_int2big(FIX2LONG(x));</div><div class='add'>+    }</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return rb_assoc_new(rb_int2big(FIX2LONG(y)), x);</div><div class='add'>+       y = rb_int2big(FIX2LONG(y));</div><div class='add'>+    }</div><div class='add'>+    assert(RB_BIGNUM_TYPE_P(m));</div><div class='add'>+    xn = BIGNUM_LEN(x);</div><div class='add'>+    yn = BIGNUM_LEN(y);</div><div class='add'>+    mn = BIGNUM_LEN(m);</div><div class='add'>+    zn = mn;</div><div class='add'>+    z = bignew(zn, 1);</div><div class='add'>+    bary_powm_gmp(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, BDIGITS(m), mn);</div><div class='add'>+    if (nega_flg &amp; BIGNUM_POSITIVE_P(z)) {</div><div class='add'>+        z = rb_funcall(z, '-', 1, m);</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='add'>+    RB_GC_GUARD(m);</div><div class='add'>+    return rb_big_norm(z);</div><div class='add'>+#else</div><div class='add'>+    VALUE tmp = LONG2FIX(1L);</div><div class='add'>+    long yy;</div><div class='add'>+</div><div class='add'>+    for (/*NOP*/; ! FIXNUM_P(y); y = rb_funcall(y, rb_intern("&gt;&gt;"), 1, LONG2FIX(1L))) {</div><div class='add'>+        if (RTEST(rb_funcall(y, rb_intern("odd?"), 0))) {</div><div class='add'>+            tmp = rb_funcall(tmp, '*', 1, x);</div><div class='add'>+            tmp = rb_int_modulo(tmp, m);</div><div class='add'>+        }</div><div class='add'>+        x = rb_funcall(x, '*', 1, x);</div><div class='add'>+        x = rb_int_modulo(x, m);</div><div class='ctx'>     }</div><div class='del'>-    else if (TYPE(y) == T_BIGNUM) {</div><div class='del'>-       return rb_assoc_new(y, x);</div><div class='add'>+    for (yy = FIX2LONG(y); yy; yy &gt;&gt;= 1L) {</div><div class='add'>+        if (yy &amp; 1L) {</div><div class='add'>+            tmp = rb_funcall(tmp, '*', 1, x);</div><div class='add'>+            tmp = rb_int_modulo(tmp, m);</div><div class='add'>+        }</div><div class='add'>+        x = rb_funcall(x, '*', 1, x);</div><div class='add'>+        x = rb_int_modulo(x, m);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't coerce %s to Bignum",</div><div class='del'>-		 rb_obj_classname(y));</div><div class='add'>+</div><div class='add'>+    if (nega_flg &amp;&amp; RTEST(rb_funcall(tmp, rb_intern("positive?"), 0))) {</div><div class='add'>+        tmp = rb_funcall(tmp, '-', 1, m);</div><div class='ctx'>     }</div><div class='del'>-    /* not reached */</div><div class='del'>-    return Qnil;</div><div class='add'>+    return tmp;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.abs -&gt; aBignum</div><div class='del'>- *  </div><div class='del'>- *  Returns the absolute value of &lt;i&gt;big&lt;/i&gt;.</div><div class='del'>- *     </div><div class='del'>- *     -1234567890987654321.abs   #=&gt; 1234567890987654321</div><div class='add'>+ * Integer#pow</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_big_abs(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+int_pow_tmp1(VALUE x, VALUE y, long mm, int nega_flg)</div><div class='ctx'> {</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = rb_big_clone(x);</div><div class='del'>-	RBIGNUM(x)-&gt;sign = 1;</div><div class='add'>+    long xx = FIX2LONG(x);</div><div class='add'>+    long tmp = 1L;</div><div class='add'>+    long yy;</div><div class='add'>+</div><div class='add'>+    for (/*NOP*/; ! FIXNUM_P(y); y = rb_funcall(y, idGTGT, 1, LONG2FIX(1L))) {</div><div class='add'>+        if (RTEST(rb_int_odd_p(y))) {</div><div class='add'>+            tmp = (tmp * xx) % mm;</div><div class='add'>+        }</div><div class='add'>+        xx = (xx * xx) % mm;</div><div class='ctx'>     }</div><div class='del'>-    return x;</div><div class='add'>+    for (yy = FIX2LONG(y); yy; yy &gt;&gt;= 1L) {</div><div class='add'>+        if (yy &amp; 1L) {</div><div class='add'>+            tmp = (tmp * xx) % mm;</div><div class='add'>+        }</div><div class='add'>+        xx = (xx * xx) % mm;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (nega_flg &amp;&amp; tmp) {</div><div class='add'>+        tmp -= mm;</div><div class='add'>+    }</div><div class='add'>+    return LONG2FIX(tmp);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_big_rand(max, rand_buf)</div><div class='del'>-    VALUE max;</div><div class='del'>-    double *rand_buf;</div><div class='add'>+static VALUE</div><div class='add'>+int_pow_tmp2(VALUE x, VALUE y, long mm, int nega_flg)</div><div class='ctx'> {</div><div class='del'>-    VALUE v;</div><div class='del'>-    long len = RBIGNUM(max)-&gt;len;</div><div class='add'>+    long tmp = 1L;</div><div class='add'>+    long yy;</div><div class='add'>+#ifdef DLONG</div><div class='add'>+    const DLONG m = mm;</div><div class='add'>+    long tmp2 = tmp;</div><div class='add'>+    long xx = FIX2LONG(x);</div><div class='add'>+# define MUL_MODULO(a, b, c) (long)(((DLONG)(a) * (DLONG)(b)) % (c))</div><div class='add'>+#else</div><div class='add'>+    const VALUE m = LONG2FIX(mm);</div><div class='add'>+    VALUE tmp2 = LONG2FIX(tmp);</div><div class='add'>+    VALUE xx = x;</div><div class='add'>+# define MUL_MODULO(a, b, c) rb_int_modulo(rb_fix_mul_fix((a), (b)), (c))</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (BIGZEROP(max)) {</div><div class='del'>-	return rb_float_new(rand_buf[0]);</div><div class='add'>+    for (/*NOP*/; ! FIXNUM_P(y); y = rb_funcall(y, idGTGT, 1, LONG2FIX(1L))) {</div><div class='add'>+        if (RTEST(rb_int_odd_p(y))) {</div><div class='add'>+            tmp2 = MUL_MODULO(tmp2, xx, m);</div><div class='add'>+        }</div><div class='add'>+        xx = MUL_MODULO(xx, xx, m);</div><div class='ctx'>     }</div><div class='del'>-    v = bignew(len,1);</div><div class='del'>-    len--;</div><div class='del'>-    BDIGITS(v)[len] = BDIGITS(max)[len] * rand_buf[len];    </div><div class='del'>-    while (len--) {</div><div class='del'>-	BDIGITS(v)[len] = ((BDIGIT)~0) * rand_buf[len];</div><div class='add'>+    for (yy = FIX2LONG(y); yy; yy &gt;&gt;= 1L) {</div><div class='add'>+        if (yy &amp; 1L) {</div><div class='add'>+            tmp2 = MUL_MODULO(tmp2, xx, m);</div><div class='add'>+        }</div><div class='add'>+        xx = MUL_MODULO(xx, xx, m);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return v;</div><div class='add'>+#ifdef DLONG</div><div class='add'>+    tmp = tmp2;</div><div class='add'>+#else</div><div class='add'>+    tmp = FIX2LONG(tmp2);</div><div class='add'>+#endif</div><div class='add'>+    if (nega_flg &amp;&amp; tmp) {</div><div class='add'>+        tmp -= mm;</div><div class='add'>+    }</div><div class='add'>+    return LONG2FIX(tmp);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     big.size -&gt; integer</div><div class='del'>- *  </div><div class='del'>- *  Returns the number of bytes in the machine representation of</div><div class='del'>- *  &lt;i&gt;big&lt;/i&gt;.</div><div class='del'>- *     </div><div class='del'>- *     (256**10 - 1).size   #=&gt; 12</div><div class='del'>- *     (256**20 - 1).size   #=&gt; 20</div><div class='del'>- *     (256**40 - 1).size   #=&gt; 40</div><div class='add'>+ * Document-method: Integer#pow</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    integer.pow(numeric)           -&gt;  numeric</div><div class='add'>+ *    integer.pow(integer, integer)  -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Returns (modular) exponentiation as:</div><div class='add'>+ *</div><div class='add'>+ *   a.pow(b)     #=&gt; same as a**b</div><div class='add'>+ *   a.pow(b, m)  #=&gt; same as (a**b) % m, but avoids huge temporary values</div><div class='ctx'>  */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_size(big)</div><div class='del'>-    VALUE big;</div><div class='add'>+VALUE</div><div class='add'>+rb_int_powm(int const argc, VALUE * const argv, VALUE const num)</div><div class='ctx'> {</div><div class='del'>-    return LONG2FIX(RBIGNUM(big)-&gt;len*SIZEOF_BDIGITS);</div><div class='add'>+    rb_check_arity(argc, 1, 2);</div><div class='add'>+</div><div class='add'>+    if (argc == 1) {</div><div class='add'>+        return rb_funcall(num, rb_intern("**"), 1, argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE const a = num;</div><div class='add'>+        VALUE const b = argv[0];</div><div class='add'>+        VALUE m = argv[1];</div><div class='add'>+        int nega_flg = 0;</div><div class='add'>+        if ( ! RB_INTEGER_TYPE_P(b)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "Integer#pow() 2nd argument not allowed unless a 1st argument is integer");</div><div class='add'>+        }</div><div class='add'>+        if (rb_num_negative_int_p(b)) {</div><div class='add'>+            rb_raise(rb_eRangeError, "Integer#pow() 1st argument cannot be negative when 2nd argument specified");</div><div class='add'>+        }</div><div class='add'>+        if (!RB_INTEGER_TYPE_P(m)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "Integer#pow() 2nd argument not allowed unless all arguments are integers");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (rb_num_negative_int_p(m)) {</div><div class='add'>+            m = rb_funcall(m, idUMinus, 0);</div><div class='add'>+            nega_flg = 1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!rb_num_positive_int_p(m)) {</div><div class='add'>+            rb_num_zerodiv();</div><div class='add'>+        }</div><div class='add'>+        if (FIXNUM_P(m)) {</div><div class='add'>+            long const half_val = (long)HALF_LONG_MSB;</div><div class='add'>+            long const mm = FIX2LONG(m);</div><div class='add'>+            if (mm &lt;= half_val) {</div><div class='add'>+                return int_pow_tmp1(rb_int_modulo(a, m), b, mm, nega_flg);</div><div class='add'>+            } else {</div><div class='add'>+                return int_pow_tmp2(rb_int_modulo(a, m), b, mm, nega_flg);</div><div class='add'>+            }</div><div class='add'>+        } else if (RB_TYPE_P(m, T_BIGNUM)) {</div><div class='add'>+            return int_pow_tmp3(rb_int_modulo(a, m), b, m, nega_flg);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    UNREACHABLE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2215,49 +7091,32 @@ rb_big_size(big)</div><div class='ctx'>  *  Fixnum. When a calculation involving</div><div class='ctx'>  *  Bignum objects returns a result that will fit in a</div><div class='ctx'>  *  Fixnum, the result is automatically converted.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *  For the purposes of the bitwise operations and &lt;code&gt;[]&lt;/code&gt;, a</div><div class='ctx'>  *  Bignum is treated as if it were an infinite-length</div><div class='ctx'>  *  bitstring with 2's complement representation.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *  While Fixnum values are immediate, Bignum</div><div class='ctx'>  *  objects are not---assignment and parameter passing work with</div><div class='ctx'>  *  references to objects, not the objects themselves.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-Init_Bignum()</div><div class='del'>-{</div><div class='del'>-    rb_cBignum = rb_define_class("Bignum", rb_cInteger);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cBignum, "to_s", rb_big_to_s, -1);</div><div class='del'>-    rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "-@", rb_big_uminus, 0);</div><div class='del'>-    rb_define_method(rb_cBignum, "+", rb_big_plus, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "-", rb_big_minus, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "*", rb_big_mul, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "/", rb_big_div, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "%", rb_big_modulo, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "div", rb_big_div, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "divmod", rb_big_divmod, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "modulo", rb_big_modulo, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "remainder", rb_big_remainder, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "quo", rb_big_quo, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "**", rb_big_pow, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "&amp;", rb_big_and, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "|", rb_big_or, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "^", rb_big_xor, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "~", rb_big_neg, 0);</div><div class='del'>-    rb_define_method(rb_cBignum, "&lt;&lt;", rb_big_lshift, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "&gt;&gt;", rb_big_rshift, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "[]", rb_big_aref, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cBignum, "&lt;=&gt;", rb_big_cmp, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "==", rb_big_eq, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "eql?", rb_big_eql, 1);</div><div class='del'>-    rb_define_method(rb_cBignum, "hash", rb_big_hash, 0);</div><div class='del'>-    rb_define_method(rb_cBignum, "to_f", rb_big_to_f, 0);</div><div class='del'>-    rb_define_method(rb_cBignum, "abs", rb_big_abs, 0);</div><div class='del'>-    rb_define_method(rb_cBignum, "size", rb_big_size, 0);</div><div class='add'>+Init_Bignum(void)</div><div class='add'>+{</div><div class='add'>+#ifndef RUBY_INTEGER_UNIFICATION</div><div class='add'>+    rb_cBignum = rb_cInteger;</div><div class='add'>+#endif</div><div class='add'>+    rb_define_const(rb_cObject, "Bignum", rb_cInteger);</div><div class='add'>+    rb_deprecate_constant(rb_cObject, "Bignum");</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cInteger, "coerce", rb_int_coerce, 1);</div><div class='add'>+</div><div class='add'>+#ifdef USE_GMP</div><div class='add'>+    /* The version of loaded GMP. */</div><div class='add'>+    rb_define_const(rb_cInteger, "GMP_VERSION", rb_sprintf("GMP %s", gmp_version));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    power_cache_init();</div><div class='ctx'> }</div><div class='head'>diff --git a/bin/erb b/bin/erb<br/>index a6fcd5370c..86f7042fae 100755<br/>--- a/<a href='/ruby.git/tree/bin/erb?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bin/erb</a><br/>+++ b/<a href='/ruby.git/tree/bin/erb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bin/erb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> #!/usr/bin/env ruby</div><div class='ctx'> # Tiny eRuby --- ERB2</div><div class='del'>-# Copyright (c) 1999-2000,2002 Masatoshi SEKI </div><div class='add'>+# Copyright (c) 1999-2000,2002 Masatoshi SEKI</div><div class='ctx'> # You can redistribute it and/or modify it under the same terms as Ruby.</div><div class='ctx'> </div><div class='ctx'> require 'erb'</div><div class='hunk'>@@ -11,19 +11,32 @@ class ERB</div><div class='ctx'>       return nil if self.empty?</div><div class='ctx'>       arg = self.shift</div><div class='ctx'>       return nil if arg == '--'</div><div class='del'>-      if arg =~ /^-(.)(.*)/</div><div class='del'>-        return arg if $1 == '-'</div><div class='del'>-        raise 'unknown switch "-"' if $2.index('-')</div><div class='del'>-        self.unshift "-#{$2}" if $2.size &gt; 0</div><div class='add'>+      case arg</div><div class='add'>+      when /\A-(.)(.*)/</div><div class='add'>+        if $1 == '-'</div><div class='add'>+          arg, @maybe_arg = arg.split(/=/, 2)</div><div class='add'>+          return arg</div><div class='add'>+        end</div><div class='add'>+        raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T'</div><div class='add'>+        if $2.size &gt; 0</div><div class='add'>+          self.unshift "-#{$2}"</div><div class='add'>+          @maybe_arg = $2</div><div class='add'>+        else</div><div class='add'>+          @maybe_arg = nil</div><div class='add'>+        end</div><div class='ctx'>         "-#{$1}"</div><div class='add'>+      when /\A(\w+)=/</div><div class='add'>+        arg</div><div class='ctx'>       else</div><div class='ctx'>         self.unshift arg</div><div class='ctx'>         nil</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    </div><div class='add'>+</div><div class='ctx'>     def ARGV.req_arg</div><div class='del'>-      self.shift || raise('missing argument')</div><div class='add'>+      (@maybe_arg || self.shift || raise('missing argument')).tap {</div><div class='add'>+        @maybe_arg = nil</div><div class='add'>+      }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def trim_mode_opt(trim_mode, disable_percent)</div><div class='hunk'>@@ -44,6 +57,7 @@ class ERB</div><div class='ctx'>     def run(factory=ERB)</div><div class='ctx'>       trim_mode = 0</div><div class='ctx'>       disable_percent = false</div><div class='add'>+      variables = {}</div><div class='ctx'>       begin</div><div class='ctx'>         while switch = ARGV.switch</div><div class='ctx'>           case switch</div><div class='hunk'>@@ -62,56 +76,53 @@ class ERB</div><div class='ctx'>             require ARGV.req_arg</div><div class='ctx'>           when '-S'                        # security level</div><div class='ctx'>             arg = ARGV.req_arg</div><div class='del'>-            raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/</div><div class='add'>+            raise "invalid safe_level #{arg.dump}" unless arg =~ /\A[0-1]\z/</div><div class='ctx'>             safe_level = arg.to_i</div><div class='ctx'>           when '-T'                        # trim mode</div><div class='ctx'>             arg = ARGV.req_arg</div><div class='ctx'>             if arg == '-'</div><div class='del'>-              trim_mode = arg </div><div class='add'>+              trim_mode = arg</div><div class='ctx'>               next</div><div class='ctx'>             end</div><div class='del'>-            raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/</div><div class='add'>+            raise "invalid trim mode #{arg.dump}" unless arg =~ /\A[0-2]\z/</div><div class='ctx'>             trim_mode = arg.to_i</div><div class='del'>-          when '-K'                        # KCODE</div><div class='add'>+          when '-E', '--encoding'</div><div class='ctx'>             arg = ARGV.req_arg</div><div class='del'>-            case arg.downcase</div><div class='del'>-            when 'e', '-e', 'euc'</div><div class='del'>-              $KCODE = 'EUC'</div><div class='del'>-            when 's', '-s', 'sjis'</div><div class='del'>-              $KCODE = 'SJIS'</div><div class='del'>-            when 'u', '-u', 'utf8'</div><div class='del'>-              $KCODE = 'UTF8'</div><div class='del'>-            when 'n', '-n', 'none'</div><div class='del'>-              $KCODE = 'NONE'</div><div class='del'>-            else</div><div class='del'>-              raise "invalid KCODE #{arg.dump}"</div><div class='del'>-            end</div><div class='add'>+            set_encoding(*arg.split(/:/, 2))</div><div class='add'>+          when '-U'</div><div class='add'>+            set_encoding(Encoding::UTF_8, Encoding::UTF_8)</div><div class='ctx'>           when '-P'</div><div class='ctx'>             disable_percent = true</div><div class='ctx'>           when '--help'</div><div class='ctx'>             raise "print this help"</div><div class='del'>-          else</div><div class='add'>+          when /\A-/</div><div class='ctx'>             raise "unknown switch #{switch.dump}"</div><div class='add'>+          else</div><div class='add'>+            var, val = *switch.split('=', 2)</div><div class='add'>+            (variables ||= {})[var] = val</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       rescue                               # usage</div><div class='ctx'>         STDERR.puts $!.to_s</div><div class='del'>-        STDERR.puts File.basename($0) + </div><div class='del'>-          " [switches] [inputfile]"</div><div class='add'>+        STDERR.puts File.basename($0) +</div><div class='add'>+          " [switches] [var=value...] [inputfile]"</div><div class='ctx'>         STDERR.puts &lt;&lt;EOU</div><div class='ctx'>   -x               print ruby script</div><div class='ctx'>   -n               print ruby script with line number</div><div class='ctx'>   -v               enable verbose mode</div><div class='ctx'>   -d               set $DEBUG to true</div><div class='del'>-  -r [library]     load a library</div><div class='del'>-  -K [kcode]       specify KANJI code-set</div><div class='del'>-  -S [safe_level]  set $SAFE (0..4)</div><div class='del'>-  -T [trim_mode]   specify trim_mode (0..2, -)</div><div class='add'>+  -r library       load a library</div><div class='add'>+  -S safe_level    set $SAFE (0..1)</div><div class='add'>+  -E ex[:in]       set default external/internal encodings</div><div class='add'>+  -U               set default encoding to UTF-8.</div><div class='add'>+  -T trim_mode     specify trim_mode (0..2, -)</div><div class='ctx'>   -P               ignore lines which start with "%"</div><div class='add'>+  var=value        set variable</div><div class='ctx'> EOU</div><div class='ctx'>         exit 1</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      $&lt;.set_encoding(Encoding::UTF_8, nil)</div><div class='ctx'>       src = $&lt;.read</div><div class='ctx'>       filename = $FILENAME</div><div class='ctx'>       exit 2 unless src</div><div class='hunk'>@@ -120,19 +131,38 @@ EOU</div><div class='ctx'>       erb.filename = filename</div><div class='ctx'>       if output</div><div class='ctx'>         if number</div><div class='del'>-          l = 1</div><div class='del'>-          for line in erb.src</div><div class='del'>-            puts "%3d %s"%[l, line]</div><div class='del'>-            l += 1</div><div class='add'>+          erb.src.each_line.with_index do |line, l|</div><div class='add'>+            puts "%3d %s"%[l+1, line]</div><div class='ctx'>           end</div><div class='ctx'>         else</div><div class='ctx'>           puts erb.src</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='del'>-        erb.run(TOPLEVEL_BINDING.taint)</div><div class='add'>+        bind = TOPLEVEL_BINDING.taint</div><div class='add'>+        if variables</div><div class='add'>+          enc = erb.encoding</div><div class='add'>+          for var, val in variables do</div><div class='add'>+            val = val.encode(enc) if val</div><div class='add'>+            bind.local_variable_set(var, val)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        erb.run(bind)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>     module_function :run</div><div class='add'>+</div><div class='add'>+    def set_encoding(extern, intern = nil)</div><div class='add'>+      verbose, $VERBOSE = $VERBOSE, nil</div><div class='add'>+      Encoding.default_external = extern unless extern.nil? || extern == ""</div><div class='add'>+      Encoding.default_internal = intern unless intern.nil? || intern == ""</div><div class='add'>+      [$stdin, $stdout, $stderr].each do |io|</div><div class='add'>+        io.set_encoding(extern, intern)</div><div class='add'>+      end</div><div class='add'>+    ensure</div><div class='add'>+      $VERBOSE = verbose</div><div class='add'>+    end</div><div class='add'>+    module_function :set_encoding</div><div class='add'>+    class &lt;&lt; self; private :set_encoding; end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='head'>diff --git a/bin/gem b/bin/gem<br/>new file mode 100755<br/>index 0000000000..a4ec754abb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/gem?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bin/gem</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+#--</div><div class='add'>+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.</div><div class='add'>+# All rights reserved.</div><div class='add'>+# See LICENSE.txt for permissions.</div><div class='add'>+#++</div><div class='add'>+</div><div class='add'>+require 'rubygems'</div><div class='add'>+require 'rubygems/gem_runner'</div><div class='add'>+require 'rubygems/exceptions'</div><div class='add'>+</div><div class='add'>+required_version = Gem::Requirement.new "&gt;= 1.8.7"</div><div class='add'>+</div><div class='add'>+unless required_version.satisfied_by? Gem.ruby_version then</div><div class='add'>+  abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+args = ARGV.clone</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  Gem::GemRunner.new.run args</div><div class='add'>+rescue Gem::SystemExitException =&gt; e</div><div class='add'>+  exit e.exit_code</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/bin/irb b/bin/irb<br/>index f277bc4b69..c64ee85fbd 100644..100755<br/>--- a/<a href='/ruby.git/tree/bin/irb?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bin/irb</a><br/>+++ b/<a href='/ruby.git/tree/bin/irb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bin/irb</a></div><div class='hunk'>@@ -1,21 +1,11 @@</div><div class='ctx'> #!/usr/bin/env ruby</div><div class='ctx'> #</div><div class='del'>-#   irb.rb - intaractive ruby</div><div class='del'>-#   	$Release Version: 0.9.5 $</div><div class='add'>+#   irb.rb - interactive ruby</div><div class='add'>+#   	$Release Version: 0.9.6 $</div><div class='ctx'> #   	$Revision$</div><div class='del'>-#   	$Date$</div><div class='ctx'> #   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='ctx'> #</div><div class='ctx'> </div><div class='ctx'> require "irb"</div><div class='ctx'> </div><div class='del'>-if __FILE__ == $0</div><div class='del'>-  IRB.start(__FILE__)</div><div class='del'>-else</div><div class='del'>-  # check -e option</div><div class='del'>-  if /^-e$/ =~ $0</div><div class='del'>-    IRB.start(__FILE__)</div><div class='del'>-  else</div><div class='del'>-    IRB.setup(__FILE__)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='add'>+IRB.start(__FILE__)</div><div class='head'>diff --git a/bin/rdoc b/bin/rdoc<br/>index fe619137fd..aaa23292df 100644..100755<br/>--- a/<a href='/ruby.git/tree/bin/rdoc?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bin/rdoc</a><br/>+++ b/<a href='/ruby.git/tree/bin/rdoc?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bin/rdoc</a></div><div class='hunk'>@@ -5,63 +5,40 @@</div><div class='ctx'> #</div><div class='ctx'> #  Copyright (c) 2003 Dave Thomas</div><div class='ctx'> #  Released under the same terms as Ruby</div><div class='del'>-#</div><div class='del'>-#  $Revision$</div><div class='del'>-</div><div class='del'>-## Transitional Hack ####</div><div class='del'>-#</div><div class='del'>-#  RDoc was initially distributed independently, and installed</div><div class='del'>-#  itself into &lt;prefix&gt;/lib/ruby/site_ruby/&lt;ver&gt;/rdoc...</div><div class='del'>-#</div><div class='del'>-#  Now that RDoc is part of the distribution, it's installed into</div><div class='del'>-#  &lt;prefix&gt;/lib/ruby/&lt;ver&gt;, which unfortunately appears later in the</div><div class='del'>-#  search path. This means that if you have previously installed RDoc,</div><div class='del'>-#  and then install from ruby-lang, you'll pick up the old one by</div><div class='del'>-#  default. This hack checks for the condition, and readjusts the</div><div class='del'>-#  search path if necessary.</div><div class='del'>-</div><div class='del'>-def adjust_for_existing_rdoc(path)</div><div class='del'>-  </div><div class='del'>-  $stderr.puts %{</div><div class='del'>-  It seems as if you have a previously-installed RDoc in</div><div class='del'>-  the directory #{path}.</div><div class='del'>-</div><div class='del'>-  Because this is now out-of-date, you might want to consider</div><div class='del'>-  removing the directories:</div><div class='del'>-</div><div class='del'>-    #{File.join(path, "rdoc")}</div><div class='del'>-</div><div class='del'>-  and</div><div class='del'>-</div><div class='del'>-    #{File.join(path, "markup")}</div><div class='del'>-</div><div class='del'>-  }</div><div class='ctx'> </div><div class='del'>-  # Move all the site_ruby directories to the end</div><div class='del'>-  p $:</div><div class='del'>-  $:.replace($:.partition {|path| /site_ruby/ !~ path}.flatten)</div><div class='del'>-  p $:</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-$:.each do |path|</div><div class='del'>-  if /site_ruby/ =~ path </div><div class='del'>-    rdoc_path = File.join(path, 'rdoc', 'rdoc.rb')</div><div class='del'>-    if File.exists?(rdoc_path)</div><div class='del'>-      adjust_for_existing_rdoc(path)</div><div class='del'>-      break</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='add'>+begin</div><div class='add'>+  gem 'rdoc'</div><div class='add'>+rescue NameError =&gt; e # --disable-gems</div><div class='add'>+  raise unless e.name == :gem</div><div class='add'>+rescue Gem::LoadError</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-## End of Transitional Hack ##</div><div class='del'>-</div><div class='del'>-</div><div class='ctx'> require 'rdoc/rdoc'</div><div class='ctx'> </div><div class='ctx'> begin</div><div class='ctx'>   r = RDoc::RDoc.new</div><div class='del'>-  r.document(ARGV)</div><div class='del'>-rescue RDoc::RDocError =&gt; e</div><div class='del'>-  $stderr.puts e.message</div><div class='del'>-  exit(1)</div><div class='add'>+  r.document ARGV</div><div class='add'>+rescue Errno::ENOSPC</div><div class='add'>+  $stderr.puts 'Ran out of space creating documentation'</div><div class='add'>+  $stderr.puts</div><div class='add'>+  $stderr.puts 'Please free up some space and try again'</div><div class='add'>+rescue SystemExit</div><div class='add'>+  raise</div><div class='add'>+rescue Exception =&gt; e</div><div class='add'>+  if $DEBUG_RDOC then</div><div class='add'>+    $stderr.puts e.message</div><div class='add'>+    $stderr.puts "#{e.backtrace.join "\n\t"}"</div><div class='add'>+    $stderr.puts</div><div class='add'>+  elsif Interrupt === e then</div><div class='add'>+    $stderr.puts</div><div class='add'>+    $stderr.puts 'Interrupted'</div><div class='add'>+  else</div><div class='add'>+    $stderr.puts "uh-oh! RDoc had a problem:"</div><div class='add'>+    $stderr.puts e.message</div><div class='add'>+    $stderr.puts</div><div class='add'>+    $stderr.puts "run with --debug for full backtrace"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  exit 1</div><div class='ctx'> end</div><div class='add'>+</div><div class='head'>diff --git a/bin/ri b/bin/ri<br/>index fb3e00eda3..7fbed0c099 100755<br/>--- a/<a href='/ruby.git/tree/bin/ri?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bin/ri</a><br/>+++ b/<a href='/ruby.git/tree/bin/ri?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bin/ri</a></div><div class='hunk'>@@ -1,49 +1,12 @@</div><div class='ctx'> #!/usr/bin/env ruby</div><div class='del'>-# usage:</div><div class='del'>-#</div><div class='del'>-#   ri  name...</div><div class='del'>-#</div><div class='del'>-# where name can be </div><div class='del'>-#</div><div class='del'>-#   Class | Class::method | Class#method | Class.method | method</div><div class='del'>-#</div><div class='del'>-# All names may be abbreviated to their minimum unbiguous form. If a name</div><div class='del'>-# _is_ ambiguous, all valid options will be listed.</div><div class='del'>-#</div><div class='del'>-# The form '.' method matches either class or instance methods, while </div><div class='del'>-# #method matches only instance and ::method matches only class methods.</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-# == Installing Documentation</div><div class='del'>-#</div><div class='del'>-# 'ri' uses a database of documentation built by the RDoc utility.</div><div class='del'>-# </div><div class='del'>-# So, how do you install this documentation on your system?</div><div class='del'>-# It depends on how you installed Ruby.</div><div class='del'>-#</div><div class='del'>-# &lt;em&gt;If you installed Ruby from source files&lt;/em&gt; (that is, if it some point</div><div class='del'>-# you typed 'make' during the process :), you can install the RDoc</div><div class='del'>-# documentation yourself. Just go back to the place where you have </div><div class='del'>-# your Ruby source and type</div><div class='del'>-#</div><div class='del'>-#    make install-doc</div><div class='del'>-#</div><div class='del'>-# You'll probably need to do this as a superuser, as the documentation</div><div class='del'>-# is installed in the Ruby target tree (normally somewhere under </div><div class='del'>-# &lt;tt&gt;/usr/local&lt;/tt&gt;.</div><div class='del'>-#</div><div class='del'>-# &lt;em&gt;If you installed Ruby from a binary distribution&lt;/em&gt; (perhaps</div><div class='del'>-# using a one-click installer, or using some other packaging system),</div><div class='del'>-# then the team that produced the package probably forgot to package</div><div class='del'>-# the documentation as well. Contact them, and see if they can add</div><div class='del'>-# it to the next release.</div><div class='del'>-#</div><div class='ctx'> </div><div class='add'>+begin</div><div class='add'>+  gem 'rdoc'</div><div class='add'>+rescue NameError =&gt; e # --disable-gems</div><div class='add'>+  raise unless e.name == :gem</div><div class='add'>+rescue Gem::LoadError</div><div class='add'>+end</div><div class='ctx'> </div><div class='del'>-require 'rdoc/ri/ri_driver'</div><div class='del'>-</div><div class='del'>-######################################################################</div><div class='del'>-</div><div class='del'>-ri = RiDriver.new</div><div class='del'>-ri.process_args</div><div class='add'>+require 'rdoc/ri/driver'</div><div class='ctx'> </div><div class='add'>+RDoc::RI::Driver.run ARGV</div><div class='head'>diff --git a/bin/testrb b/bin/testrb<br/>deleted file mode 100755<br/>index ff49cb5466..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/testrb?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>bin/testrb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-require 'test/unit'</div><div class='del'>-(r = Test::Unit::AutoRunner.new(true)).process_args(ARGV) or</div><div class='del'>-  abort r.options.banner + " tests..."</div><div class='del'>-exit r.run</div><div class='head'>diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb<br/>new file mode 100644<br/>index 0000000000..744c0adac1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/pending.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/pending.rb</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+assert_equal 'A', %q{</div><div class='add'>+  class A</div><div class='add'>+    @@a = 'A'</div><div class='add'>+    def a=(x)</div><div class='add'>+      @@a = x</div><div class='add'>+    end</div><div class='add'>+    def a</div><div class='add'>+      @@a</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  B = A.dup</div><div class='add'>+  B.new.a = 'B'</div><div class='add'>+  A.new.a</div><div class='add'>+}, '[ruby-core:17019]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def m</div><div class='add'>+    lambda{</div><div class='add'>+      proc{</div><div class='add'>+        return :ng1</div><div class='add'>+      }</div><div class='add'>+    }.call.call</div><div class='add'>+    :ng2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    m()</div><div class='add'>+  rescue LocalJumpError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  r = Range.allocate</div><div class='add'>+  def r.&lt;=&gt;(o) true end</div><div class='add'>+  r.instance_eval { initialize r, r }</div><div class='add'>+  r.inspect</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb<br/>new file mode 100755<br/>index 0000000000..e807ce5b62<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/runner.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/runner.rb</a></div><div class='hunk'>@@ -0,0 +1,505 @@</div><div class='add'>+"exec" "${RUBY-ruby}" "-x" "$0" "$@" || true # -*- mode: ruby; coding: utf-8 -*-</div><div class='add'>+#!./ruby</div><div class='add'>+# $Id$</div><div class='add'>+</div><div class='add'>+# NOTE:</div><div class='add'>+# Never use optparse in this file.</div><div class='add'>+# Never use test/unit in this file.</div><div class='add'>+# Never use Ruby extensions in this file.</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'fileutils'</div><div class='add'>+  require 'tmpdir'</div><div class='add'>+rescue LoadError</div><div class='add'>+  $:.unshift File.join(File.dirname(__FILE__), '../lib')</div><div class='add'>+  retry</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if !Dir.respond_to?(:mktmpdir)</div><div class='add'>+  # copied from lib/tmpdir.rb</div><div class='add'>+  def Dir.mktmpdir(prefix_suffix=nil, tmpdir=nil)</div><div class='add'>+    case prefix_suffix</div><div class='add'>+    when nil</div><div class='add'>+      prefix = "d"</div><div class='add'>+      suffix = ""</div><div class='add'>+    when String</div><div class='add'>+      prefix = prefix_suffix</div><div class='add'>+      suffix = ""</div><div class='add'>+    when Array</div><div class='add'>+      prefix = prefix_suffix[0]</div><div class='add'>+      suffix = prefix_suffix[1]</div><div class='add'>+    else</div><div class='add'>+      raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"</div><div class='add'>+    end</div><div class='add'>+    tmpdir ||= Dir.tmpdir</div><div class='add'>+    t = Time.now.strftime("%Y%m%d")</div><div class='add'>+    n = nil</div><div class='add'>+    begin</div><div class='add'>+      path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"</div><div class='add'>+      path &lt;&lt; "-#{n}" if n</div><div class='add'>+      path &lt;&lt; suffix</div><div class='add'>+      Dir.mkdir(path, 0700)</div><div class='add'>+    rescue Errno::EEXIST</div><div class='add'>+      n ||= 0</div><div class='add'>+      n += 1</div><div class='add'>+      retry</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if block_given?</div><div class='add'>+      begin</div><div class='add'>+        yield path</div><div class='add'>+      ensure</div><div class='add'>+        FileUtils.remove_entry_secure path</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      path</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def main</div><div class='add'>+  @ruby = File.expand_path('miniruby')</div><div class='add'>+  @verbose = false</div><div class='add'>+  $VERBOSE = false</div><div class='add'>+  $stress = false</div><div class='add'>+  @color = nil</div><div class='add'>+  @tty = nil</div><div class='add'>+  @quiet = false</div><div class='add'>+  dir = nil</div><div class='add'>+  quiet = false</div><div class='add'>+  tests = nil</div><div class='add'>+  ARGV.delete_if {|arg|</div><div class='add'>+    case arg</div><div class='add'>+    when /\A--ruby=(.*)/</div><div class='add'>+      @ruby = $1</div><div class='add'>+      @ruby.gsub!(/^([^ ]*)/){File.expand_path($1)}</div><div class='add'>+      @ruby.gsub!(/(\s+-I\s*)((?!(?:\.\/)*-(?:\s|\z))\S+)/){$1+File.expand_path($2)}</div><div class='add'>+      @ruby.gsub!(/(\s+-r\s*)(\.\.?\/\S+)/){$1+File.expand_path($2)}</div><div class='add'>+      true</div><div class='add'>+    when /\A--sets=(.*)/</div><div class='add'>+      tests = Dir.glob("#{File.dirname($0)}/test_{#{$1}}*.rb").sort</div><div class='add'>+      puts tests.map {|path| File.basename(path) }.inspect</div><div class='add'>+      true</div><div class='add'>+    when /\A--dir=(.*)/</div><div class='add'>+      dir = $1</div><div class='add'>+      true</div><div class='add'>+    when /\A(--stress|-s)/</div><div class='add'>+      $stress = true</div><div class='add'>+    when /\A--color(?:=(?:always|(auto)|(never)|(.*)))?\z/</div><div class='add'>+      warn "unknown --color argument: #$3" if $3</div><div class='add'>+      @color = $1 ? nil : !$2</div><div class='add'>+      true</div><div class='add'>+    when /\A--tty(=(?:yes|(no)|(.*)))?\z/</div><div class='add'>+      warn "unknown --tty argument: #$3" if $3</div><div class='add'>+      @tty = !$1 || !$2</div><div class='add'>+      true</div><div class='add'>+    when /\A(-q|--q(uiet))\z/</div><div class='add'>+      quiet = true</div><div class='add'>+      @quiet = true</div><div class='add'>+      true</div><div class='add'>+    when /\A(-v|--v(erbose))\z/</div><div class='add'>+      @verbose = true</div><div class='add'>+    when /\A(-h|--h(elp)?)\z/</div><div class='add'>+      puts(&lt;&lt;-End)</div><div class='add'>+Usage: #{File.basename($0, '.*')} --ruby=PATH [--sets=NAME,NAME,...]</div><div class='add'>+        --sets=NAME,NAME,...        Name of test sets.</div><div class='add'>+        --dir=DIRECTORY             Working directory.</div><div class='add'>+                                    default: /tmp/bootstraptestXXXXX.tmpwd</div><div class='add'>+        --color[=WHEN]              Colorize the output.  WHEN defaults to 'always'</div><div class='add'>+                                    or can be 'never' or 'auto'.</div><div class='add'>+    -s, --stress                    stress test.</div><div class='add'>+    -v, --verbose                   Output test name before exec.</div><div class='add'>+    -q, --quiet                     Don\'t print header message.</div><div class='add'>+    -h, --help                      Print this message and quit.</div><div class='add'>+End</div><div class='add'>+      exit true</div><div class='add'>+    when /\A-j/</div><div class='add'>+      true</div><div class='add'>+    else</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  if tests and not ARGV.empty?</div><div class='add'>+    $stderr.puts "--tests and arguments are exclusive"</div><div class='add'>+    exit false</div><div class='add'>+  end</div><div class='add'>+  tests ||= ARGV</div><div class='add'>+  tests = Dir.glob("#{File.dirname($0)}/test_*.rb").sort if tests.empty?</div><div class='add'>+  pathes = tests.map {|path| File.expand_path(path) }</div><div class='add'>+</div><div class='add'>+  @progress = %w[- \\ | /]</div><div class='add'>+  @progress_bs = "\b" * @progress[0].size</div><div class='add'>+  @tty = $stderr.tty? if @tty.nil?</div><div class='add'>+  case @color</div><div class='add'>+  when nil</div><div class='add'>+    @color = @tty &amp;&amp; /dumb/ !~ ENV["TERM"]</div><div class='add'>+  end</div><div class='add'>+  @tty &amp;&amp;= !@verbose</div><div class='add'>+  if @color</div><div class='add'>+    # dircolors-like style</div><div class='add'>+    colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}</div><div class='add'>+    begin</div><div class='add'>+      File.read(File.join(__dir__, "../test/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='add'>+        colors[n] ||= c</div><div class='add'>+      end</div><div class='add'>+    rescue</div><div class='add'>+    end</div><div class='add'>+    @passed = "\e[;#{colors["pass"] || "32"}m"</div><div class='add'>+    @failed = "\e[;#{colors["fail"] || "31"}m"</div><div class='add'>+    @reset = "\e[m"</div><div class='add'>+  else</div><div class='add'>+    @passed = @failed = @reset = ""</div><div class='add'>+  end</div><div class='add'>+  unless quiet</div><div class='add'>+    puts Time.now</div><div class='add'>+    if defined?(RUBY_DESCRIPTION)</div><div class='add'>+      puts "Driver is #{RUBY_DESCRIPTION}"</div><div class='add'>+    elsif defined?(RUBY_PATCHLEVEL)</div><div class='add'>+      puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}#{RUBY_PLATFORM}) [#{RUBY_PLATFORM}]"</div><div class='add'>+    else</div><div class='add'>+      puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"</div><div class='add'>+    end</div><div class='add'>+    puts "Target is #{`#{@ruby} -v`.chomp}"</div><div class='add'>+    puts</div><div class='add'>+    $stdout.flush</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  in_temporary_working_directory(dir) {</div><div class='add'>+    exec_test pathes</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def erase(e = true)</div><div class='add'>+  if e and @columns &gt; 0 and !@verbose</div><div class='add'>+    "\r#{" "*@columns}\r"</div><div class='add'>+  else</div><div class='add'>+    ""</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def exec_test(pathes)</div><div class='add'>+  @count = 0</div><div class='add'>+  @error = 0</div><div class='add'>+  @errbuf = []</div><div class='add'>+  @location = nil</div><div class='add'>+  @columns = 0</div><div class='add'>+  @width = pathes.map {|path| File.basename(path).size}.max + 2</div><div class='add'>+  pathes.each do |path|</div><div class='add'>+    @basename = File.basename(path)</div><div class='add'>+    $stderr.printf("%s%-*s ", erase(@quiet), @width, @basename)</div><div class='add'>+    $stderr.flush</div><div class='add'>+    @columns = @width + 1</div><div class='add'>+    $stderr.puts if @verbose</div><div class='add'>+    count = @count</div><div class='add'>+    error = @error</div><div class='add'>+    load File.expand_path(path)</div><div class='add'>+    if @tty</div><div class='add'>+      if @error == error</div><div class='add'>+        msg = "PASS #{@count-count}"</div><div class='add'>+        @columns += msg.size - 1</div><div class='add'>+        $stderr.print "#{@progress_bs}#{@passed}#{msg}#{@reset}"</div><div class='add'>+      else</div><div class='add'>+        msg = "FAIL #{@error-error}/#{@count-count}"</div><div class='add'>+        $stderr.print "#{@progress_bs}#{@failed}#{msg}#{@reset}"</div><div class='add'>+        @columns = 0</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    $stderr.puts unless @quiet and @tty and @error == error</div><div class='add'>+  end</div><div class='add'>+  $stderr.print(erase) if @quiet</div><div class='add'>+  if @error == 0</div><div class='add'>+    if @count == 0</div><div class='add'>+      $stderr.puts "No tests, no problem"</div><div class='add'>+    else</div><div class='add'>+      $stderr.puts "#{@passed}PASS#{@reset} all #{@count} tests"</div><div class='add'>+    end</div><div class='add'>+    exit true</div><div class='add'>+  else</div><div class='add'>+    @errbuf.each do |msg|</div><div class='add'>+      $stderr.puts msg</div><div class='add'>+    end</div><div class='add'>+    $stderr.puts "#{@failed}FAIL#{@reset} #{@error}/#{@count} tests failed"</div><div class='add'>+    exit false</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def show_progress(message = '')</div><div class='add'>+  if @verbose</div><div class='add'>+    $stderr.print "\##{@count} #{@location} "</div><div class='add'>+  elsif @tty</div><div class='add'>+    $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"</div><div class='add'>+  end</div><div class='add'>+  t = Time.now if @verbose</div><div class='add'>+  faildesc, errout = with_stderr {yield}</div><div class='add'>+  t = Time.now - t if @verbose</div><div class='add'>+  if !faildesc</div><div class='add'>+    if @tty</div><div class='add'>+      $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"</div><div class='add'>+    elsif @verbose</div><div class='add'>+      $stderr.printf(". %.3f\n", t)</div><div class='add'>+    else</div><div class='add'>+      $stderr.print '.'</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    $stderr.print "#{@failed}F"</div><div class='add'>+    $stderr.printf(" %.3f", t) if @verbose</div><div class='add'>+    $stderr.print "#{@reset}"</div><div class='add'>+    $stderr.puts if @verbose</div><div class='add'>+    error faildesc, message</div><div class='add'>+    unless errout.empty?</div><div class='add'>+      $stderr.print "#{@failed}stderr output is not empty#{@reset}\n", adjust_indent(errout)</div><div class='add'>+    end</div><div class='add'>+    if @tty and !@verbose</div><div class='add'>+      $stderr.printf("%-*s%s", @width, @basename, @progress[@count % @progress.size])</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+rescue Interrupt</div><div class='add'>+  $stderr.puts "\##{@count} #{@location}"</div><div class='add'>+  raise Interrupt</div><div class='add'>+rescue Exception =&gt; err</div><div class='add'>+  $stderr.print 'E'</div><div class='add'>+  $stderr.puts if @verbose</div><div class='add'>+  error err.message, message</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_check(testsrc, message = '', opt = '', **argh)</div><div class='add'>+  show_progress(message) {</div><div class='add'>+    result = get_result_string(testsrc, opt, **argh)</div><div class='add'>+    check_coredump</div><div class='add'>+    yield(result)</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_equal(expected, testsrc, message = '', opt = '', **argh)</div><div class='add'>+  newtest</div><div class='add'>+  assert_check(testsrc, message, opt, **argh) {|result|</div><div class='add'>+    if expected == result</div><div class='add'>+      nil</div><div class='add'>+    else</div><div class='add'>+      desc = "#{result.inspect} (expected #{expected.inspect})"</div><div class='add'>+      pretty(testsrc, desc, result)</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_match(expected_pattern, testsrc, message = '')</div><div class='add'>+  newtest</div><div class='add'>+  assert_check(testsrc, message) {|result|</div><div class='add'>+    if expected_pattern =~ result</div><div class='add'>+      nil</div><div class='add'>+    else</div><div class='add'>+      desc = "#{expected_pattern.inspect} expected to be =~\n#{result.inspect}"</div><div class='add'>+      pretty(testsrc, desc, result)</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_not_match(unexpected_pattern, testsrc, message = '')</div><div class='add'>+  newtest</div><div class='add'>+  assert_check(testsrc, message) {|result|</div><div class='add'>+    if unexpected_pattern !~ result</div><div class='add'>+      nil</div><div class='add'>+    else</div><div class='add'>+      desc = "#{unexpected_pattern.inspect} expected to be !~\n#{result.inspect}"</div><div class='add'>+      pretty(testsrc, desc, result)</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_valid_syntax(testsrc, message = '')</div><div class='add'>+  newtest</div><div class='add'>+  assert_check(testsrc, message, '-c') {|result|</div><div class='add'>+    result if /Syntax OK/ !~ result</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_normal_exit(testsrc, *rest, timeout: nil, **opt)</div><div class='add'>+  newtest</div><div class='add'>+  message, ignore_signals = rest</div><div class='add'>+  message ||= ''</div><div class='add'>+  show_progress(message) {</div><div class='add'>+    faildesc = nil</div><div class='add'>+    filename = make_srcfile(testsrc)</div><div class='add'>+    old_stderr = $stderr.dup</div><div class='add'>+    timeout_signaled = false</div><div class='add'>+    begin</div><div class='add'>+      $stderr.reopen("assert_normal_exit.log", "w")</div><div class='add'>+      io = IO.popen("#{@ruby} -W0 #{filename}")</div><div class='add'>+      pid = io.pid</div><div class='add'>+      th = Thread.new {</div><div class='add'>+        io.read</div><div class='add'>+        io.close</div><div class='add'>+        $?</div><div class='add'>+      }</div><div class='add'>+      if !th.join(timeout)</div><div class='add'>+        Process.kill :KILL, pid</div><div class='add'>+        timeout_signaled = true</div><div class='add'>+      end</div><div class='add'>+      status = th.value</div><div class='add'>+    ensure</div><div class='add'>+      $stderr.reopen(old_stderr)</div><div class='add'>+      old_stderr.close</div><div class='add'>+    end</div><div class='add'>+    if status &amp;&amp; status.signaled?</div><div class='add'>+      signo = status.termsig</div><div class='add'>+      signame = Signal.list.invert[signo]</div><div class='add'>+      unless ignore_signals and ignore_signals.include?(signame)</div><div class='add'>+        sigdesc = "signal #{signo}"</div><div class='add'>+        if signame</div><div class='add'>+          sigdesc = "SIG#{signame} (#{sigdesc})"</div><div class='add'>+        end</div><div class='add'>+        if timeout_signaled</div><div class='add'>+          sigdesc &lt;&lt; " (timeout)"</div><div class='add'>+        end</div><div class='add'>+        faildesc = pretty(testsrc, "killed by #{sigdesc}", nil)</div><div class='add'>+        stderr_log = File.read("assert_normal_exit.log")</div><div class='add'>+        if !stderr_log.empty?</div><div class='add'>+          faildesc &lt;&lt; "\n" if /\n\z/ !~ faildesc</div><div class='add'>+          stderr_log &lt;&lt; "\n" if /\n\z/ !~ stderr_log</div><div class='add'>+          stderr_log.gsub!(/^.*\n/) { '| ' + $&amp; }</div><div class='add'>+          faildesc &lt;&lt; stderr_log</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    faildesc</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def assert_finish(timeout_seconds, testsrc, message = '')</div><div class='add'>+  newtest</div><div class='add'>+  show_progress(message) {</div><div class='add'>+    faildesc = nil</div><div class='add'>+    filename = make_srcfile(testsrc)</div><div class='add'>+    io = IO.popen("#{@ruby} -W0 #{filename}")</div><div class='add'>+    pid = io.pid</div><div class='add'>+    waited = false</div><div class='add'>+    tlimit = Time.now + timeout_seconds</div><div class='add'>+    while Time.now &lt; tlimit</div><div class='add'>+      if Process.waitpid pid, Process::WNOHANG</div><div class='add'>+        waited = true</div><div class='add'>+        break</div><div class='add'>+      end</div><div class='add'>+      sleep 0.1</div><div class='add'>+    end</div><div class='add'>+    if !waited</div><div class='add'>+      Process.kill(:KILL, pid)</div><div class='add'>+      Process.waitpid pid</div><div class='add'>+      faildesc = pretty(testsrc, "not finished in #{timeout_seconds} seconds", nil)</div><div class='add'>+    end</div><div class='add'>+    io.close</div><div class='add'>+    faildesc</div><div class='add'>+  }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def flunk(message = '')</div><div class='add'>+  newtest</div><div class='add'>+  show_progress('') { message }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def pretty(src, desc, result)</div><div class='add'>+  src = src.sub(/\A\s*\n/, '')</div><div class='add'>+  (/\n/ =~ src ? "\n#{adjust_indent(src)}" : src) + "  #=&gt; #{desc}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+INDENT = 27</div><div class='add'>+</div><div class='add'>+def adjust_indent(src)</div><div class='add'>+  untabify(src).gsub(/^ {#{INDENT}}/o, '').gsub(/^/, '   ').sub(/\s*\z/, "\n")</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def untabify(str)</div><div class='add'>+  str.gsub(/^\t+/) {' ' * (8 * $&amp;.size) }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def make_srcfile(src, frozen_string_literal: nil)</div><div class='add'>+  filename = 'bootstraptest.tmp.rb'</div><div class='add'>+  File.open(filename, 'w') {|f|</div><div class='add'>+    f.puts "#frozen_string_literal:true" if frozen_string_literal</div><div class='add'>+    f.puts "GC.stress = true" if $stress</div><div class='add'>+    f.puts "print(begin; #{src}; end)"</div><div class='add'>+  }</div><div class='add'>+  filename</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def get_result_string(src, opt = '', **argh)</div><div class='add'>+  if @ruby</div><div class='add'>+    filename = make_srcfile(src, **argh)</div><div class='add'>+    begin</div><div class='add'>+      `#{@ruby} -W0 #{opt} #{filename}`</div><div class='add'>+    ensure</div><div class='add'>+      raise Interrupt if $? and $?.signaled? &amp;&amp; $?.termsig == Signal.list["INT"]</div><div class='add'>+      raise CoreDumpError, "core dumped" if $? and $?.coredump?</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    eval(src).to_s</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def with_stderr</div><div class='add'>+  out = err = nil</div><div class='add'>+  begin</div><div class='add'>+    r, w = IO.pipe</div><div class='add'>+    stderr = $stderr.dup</div><div class='add'>+    $stderr.reopen(w)</div><div class='add'>+    w.close</div><div class='add'>+    reader = Thread.start {r.read}</div><div class='add'>+    begin</div><div class='add'>+      out = yield</div><div class='add'>+    ensure</div><div class='add'>+      $stderr.reopen(stderr)</div><div class='add'>+      err = reader.value</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    w.close rescue nil</div><div class='add'>+    r.close rescue nil</div><div class='add'>+  end</div><div class='add'>+  return out, err</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def newtest</div><div class='add'>+  @location = File.basename(caller(2).first)</div><div class='add'>+  @count += 1</div><div class='add'>+  cleanup_coredump</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def error(msg, additional_message)</div><div class='add'>+  msg = "#{@failed}\##{@count} #{@location}#{@reset}: #{msg}  #{additional_message}"</div><div class='add'>+  if @tty</div><div class='add'>+    $stderr.puts "#{erase}#{msg}"</div><div class='add'>+  else</div><div class='add'>+    @errbuf.push msg</div><div class='add'>+  end</div><div class='add'>+  @error += 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def in_temporary_working_directory(dir)</div><div class='add'>+  if dir</div><div class='add'>+    Dir.mkdir dir</div><div class='add'>+    Dir.chdir(dir) {</div><div class='add'>+      yield</div><div class='add'>+    }</div><div class='add'>+  else</div><div class='add'>+    Dir.mktmpdir(["bootstraptest", ".tmpwd"]) {|d|</div><div class='add'>+      Dir.chdir(d) {</div><div class='add'>+        yield</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def cleanup_coredump</div><div class='add'>+  FileUtils.rm_f 'core'</div><div class='add'>+  FileUtils.rm_f Dir.glob('core.*')</div><div class='add'>+  FileUtils.rm_f @ruby+'.stackdump' if @ruby</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class CoreDumpError &lt; StandardError; end</div><div class='add'>+</div><div class='add'>+def check_coredump</div><div class='add'>+  if File.file?('core') or not Dir.glob('core.*').empty? or</div><div class='add'>+      (@ruby and File.exist?(@ruby+'.stackdump'))</div><div class='add'>+    raise CoreDumpError, "core dumped"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+main</div><div class='head'>diff --git a/bootstraptest/test_attr.rb b/bootstraptest/test_attr.rb<br/>new file mode 100644<br/>index 0000000000..721a847145<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_attr.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_attr.rb</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  module M</div><div class='add'>+    class A</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        attr_accessor :at</div><div class='add'>+        def workflow_rule</div><div class='add'>+          yield self</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def eval_str(str)</div><div class='add'>+          eval(str)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    M::A.eval_str(&lt;&lt;-END)</div><div class='add'>+    workflow_rule do |r|</div><div class='add'>+      r.at 1</div><div class='add'>+    end</div><div class='add'>+    END</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    print "ok"</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:14641]'</div><div class='add'>+</div><div class='add'>+assert_equal %{ok}, %{</div><div class='add'>+  class A</div><div class='add'>+    attr :m</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    A.new.m(3)</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    print "ok"</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:15120]'</div><div class='head'>diff --git a/bootstraptest/test_autoload.rb b/bootstraptest/test_autoload.rb<br/>new file mode 100644<br/>index 0000000000..a9f8e6dacd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_autoload.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_autoload.rb</a></div><div class='hunk'>@@ -0,0 +1,70 @@</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  File.unlink('zzz.rb') if File.file?('zzz.rb')</div><div class='add'>+  instance_eval do</div><div class='add'>+    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    begin</div><div class='add'>+      ZZZ</div><div class='add'>+    rescue LoadError</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:43816]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  open('zzz.rb', 'w') {|f| f.puts '' }</div><div class='add'>+  instance_eval do</div><div class='add'>+    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    begin</div><div class='add'>+      ZZZ</div><div class='add'>+    rescue NameError</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:43816]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  open('zzz.rb', 'w') {|f| f.puts 'class ZZZ; def self.ok;:ok;end;end'}</div><div class='add'>+  instance_eval do</div><div class='add'>+    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    ZZZ.ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:43816]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz.rb"</div><div class='add'>+  ZZZ.ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz.rb"</div><div class='add'>+  require "./zzz.rb"</div><div class='add'>+  ZZZ.ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'okok', %q{</div><div class='add'>+  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz.rb"</div><div class='add'>+  t1 = Thread.new {ZZZ.ok}</div><div class='add'>+  t2 = Thread.new {ZZZ.ok}</div><div class='add'>+  [t1.value, t2.value].join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_finish 5, %q{</div><div class='add'>+  autoload :ZZZ, File.expand_path(__FILE__)</div><div class='add'>+  begin</div><div class='add'>+    ZZZ</div><div class='add'>+  rescue NameError</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:21696]'</div><div class='add'>+</div><div class='add'>+assert_equal 'A::C', %q{</div><div class='add'>+  open("zzz.rb", "w") {}</div><div class='add'>+  class A</div><div class='add'>+    autoload :C, "./zzz"</div><div class='add'>+    class C</div><div class='add'>+    end</div><div class='add'>+    C</div><div class='add'>+  end</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_block.rb b/bootstraptest/test_block.rb<br/>new file mode 100644<br/>index 0000000000..cdc5960a59<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_block.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_block.rb</a></div><div class='hunk'>@@ -0,0 +1,613 @@</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  1.times{</div><div class='add'>+    begin</div><div class='add'>+      a = 1</div><div class='add'>+    ensure</div><div class='add'>+      foo = nil</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  [1,2,3].find{|x| x == 2}</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  class E</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each(&amp;block)</div><div class='add'>+      [1, 2, 3].each(&amp;block)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  E.new.find {|x| x == 2 }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{6}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  for x in [1, 2, 3]</div><div class='add'>+    sum += x</div><div class='add'>+  end</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{15}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  for x in (1..5)</div><div class='add'>+    sum += x</div><div class='add'>+  end</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{0}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  for x in []</div><div class='add'>+    sum += x</div><div class='add'>+  end</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  ans = []</div><div class='add'>+  1.times{</div><div class='add'>+    for n in 1..3</div><div class='add'>+      a = n</div><div class='add'>+      ans &lt;&lt; a</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1..3}, %q{</div><div class='add'>+  ans = []</div><div class='add'>+  for m in 1..3</div><div class='add'>+    for n in 1..3</div><div class='add'>+      a = [m, n]</div><div class='add'>+      ans &lt;&lt; a</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, 3]}, %q{</div><div class='add'>+  (1..3).to_a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[4, 8, 12]}, %q{</div><div class='add'>+  (1..3).map{|e|</div><div class='add'>+    e * 4</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, 3]}, %q{</div><div class='add'>+  class C</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each</div><div class='add'>+      [1,2,3].each{|e|</div><div class='add'>+        yield e</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.new.to_a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[4, 5, 6]}, %q{</div><div class='add'>+  class C</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each</div><div class='add'>+      [1,2,3].each{|e|</div><div class='add'>+        yield e</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.new.map{|e|</div><div class='add'>+    e + 3</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{100}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  def n</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    n{</div><div class='add'>+      100</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{20}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{|ib|</div><div class='add'>+    m{|jb|</div><div class='add'>+      i = 20</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{|ib|</div><div class='add'>+    m{|jb|</div><div class='add'>+      ib = 20</div><div class='add'>+      kb = 2</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  def iter1</div><div class='add'>+    iter2{</div><div class='add'>+      yield</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def iter2</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter1{</div><div class='add'>+    jb = 2</div><div class='add'>+    iter1{</div><div class='add'>+      jb = 3</div><div class='add'>+    }</div><div class='add'>+    jb</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  def iter1</div><div class='add'>+    iter2{</div><div class='add'>+      yield</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def iter2</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter1{</div><div class='add'>+    jb = 2</div><div class='add'>+    iter1{</div><div class='add'>+      jb</div><div class='add'>+    }</div><div class='add'>+    jb</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield 1</div><div class='add'>+  end</div><div class='add'>+  m{|ib|</div><div class='add'>+    ib*2</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{92580}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield 12345, 67890</div><div class='add'>+  end</div><div class='add'>+  m{|ib,jb|</div><div class='add'>+    ib*2+jb</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[10, nil]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 10</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = nil</div><div class='add'>+  [iter{|a|</div><div class='add'>+    a</div><div class='add'>+  }, a]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{21}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 10</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|a|</div><div class='add'>+    iter{|a|</div><div class='add'>+      a + 1</div><div class='add'>+    } + a</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[10, 20, 30, 40, nil, nil, nil, nil]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 10, 20, 30, 40</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = b = c = d = nil</div><div class='add'>+  iter{|a, b, c, d|</div><div class='add'>+    [a, b, c, d]</div><div class='add'>+  } + [a, b, c, d]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[10, 20, 30, 40, nil, nil]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 10, 20, 30, 40</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = b = nil</div><div class='add'>+  iter{|a, b, c, d|</div><div class='add'>+    [a, b, c, d]</div><div class='add'>+  } + [a, b]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1]}, %q{</div><div class='add'>+  $a = []</div><div class='add'>+</div><div class='add'>+  def iter</div><div class='add'>+    yield 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    x = iter{|x|</div><div class='add'>+      $a &lt;&lt; x</div><div class='add'>+      y = 0</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, [2]]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1, 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|a, *b|</div><div class='add'>+    [a, b]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[[1, 2]]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1, 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|*a|</div><div class='add'>+    [a]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, []]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1, 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|a, b, *c|</div><div class='add'>+    [a, b, c]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, nil, []]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1, 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|a, b, c, *d|</div><div class='add'>+    [a, b, c, d]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m{</div><div class='add'>+    1</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{15129}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield 123</div><div class='add'>+  end</div><div class='add'>+  m{|ib|</div><div class='add'>+    m{|jb|</div><div class='add'>+      ib*jb</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  def m a</div><div class='add'>+    yield a</div><div class='add'>+  end</div><div class='add'>+  m(1){|ib|</div><div class='add'>+    m(2){|jb|</div><div class='add'>+      ib*jb</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{9}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  3.times{|ib|</div><div class='add'>+    2.times{|jb|</div><div class='add'>+      sum += ib + jb</div><div class='add'>+    }}</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{10}, %q{</div><div class='add'>+  3.times{|bl|</div><div class='add'>+    break 10</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1,2,3</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|i, j|</div><div class='add'>+    [i, j]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, nil]}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{|i, j|</div><div class='add'>+    [i, j]</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+def m()</div><div class='add'>+end</div><div class='add'>+m {|(v0,*,(*)),|}</div><div class='add'>+m {|(*v0,(*)),|}</div><div class='add'>+m {|(v0,*v1,(*)),|}</div><div class='add'>+m {|((v0,*v1,v2)),|}</div><div class='add'>+m {|(v0,*v1,v2),|}</div><div class='add'>+m {|(v0,*v1,(v2)),|}</div><div class='add'>+m {|((*),*v0,v1),|}</div><div class='add'>+m {|((v0),*v1,v2),|}</div><div class='add'>+m {|(v0,v1,*v2,v3),|}</div><div class='add'>+m {|v0,(v1,*v2,v3),|}</div><div class='add'>+m {|(v0,*v1,v2),v3,|}</div><div class='add'>+m {|(v0,*v1,v2)|}</div><div class='add'>+m {|(v0,*v1,v2),&amp;v3|}</div><div class='add'>+m {|(v0,*v1,v2),*|}</div><div class='add'>+m {|(v0,*v1,v2),*,&amp;v3|}</div><div class='add'>+m {|*,(v0,*v1,v2)|}</div><div class='add'>+m {|*,(v0,*v1,v2),&amp;v3|}</div><div class='add'>+m {|v0,*,(v1,*v2,v3)|}</div><div class='add'>+m {|v0,*,(v1,*v2,v3),&amp;v4|}</div><div class='add'>+m {|(v0,*v1,v2),*,v3|}</div><div class='add'>+m {|(v0,*v1,v2),*,v3,&amp;v4|}</div><div class='add'>+m {|(v0, *v1, v2)|}</div><div class='add'>+m {|(*,v)|}</div><div class='add'>+0</div><div class='add'>+}, "block parameter (shouldn't SEGV: [ruby-dev:31143])"</div><div class='add'>+</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m{|&amp;b| b}.inspect</div><div class='add'>+}, '[ruby-dev:31147]'</div><div class='add'>+</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  def m()</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m {|(v,(*))|}.inspect</div><div class='add'>+}, '[ruby-dev:31160]'</div><div class='add'>+</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  def m()</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m {|(*,a,b)|}.inspect</div><div class='add'>+}, '[ruby-dev:31153]'</div><div class='add'>+</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  def m()</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m {|((*))|}.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 1, [1, nil], [1, nil], [1, nil], [1, nil], [1, 1], 1, [1, nil], [1, nil], [1, nil], [1, nil], [[1, 1], [1, 1]], [1, 1], [1, 1], [1, 1], [1, nil], [1, nil], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [1, 1], [1, 1], [[[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]]]}, %q{</div><div class='add'>+def m(ary = [])</div><div class='add'>+  yield(ary)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+$ans = []</div><div class='add'>+o = 1</div><div class='add'>+5.times{</div><div class='add'>+  v,(*) = o; $ans &lt;&lt; o</div><div class='add'>+  m(o){|(v,(*))| $ans &lt;&lt; v}</div><div class='add'>+  ((x, y)) = o; $ans &lt;&lt; [x, y]</div><div class='add'>+  m(o){|((x, y))| $ans &lt;&lt; [x, y]}</div><div class='add'>+  (((x, y))) = o; $ans &lt;&lt; [x, y]</div><div class='add'>+  m(o){|(((x, y)))| $ans &lt;&lt; [x, y]}</div><div class='add'>+  o = [o, o]</div><div class='add'>+}; $ans</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+  def m()</div><div class='add'>+    yield [0]</div><div class='add'>+  end</div><div class='add'>+  m {|*,v| v}.inspect</div><div class='add'>+}, '[ruby-dev:31437]'</div><div class='add'>+assert_equal '[0]', %q{</div><div class='add'>+  def m</div><div class='add'>+    yield [0]</div><div class='add'>+  end</div><div class='add'>+  m{|v, &amp;b| v}.inspect</div><div class='add'>+}, '[ruby-dev:31440]'</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    lambda{|a|}.call(1, 2)</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31464]'</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    lambda{|&amp;b|}.call(3)</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31472]'</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    def each</div><div class='add'>+      yield [1,2]</div><div class='add'>+      yield 1,2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  vs1 = []</div><div class='add'>+  C.new.each {|*v| vs1 &lt;&lt; v }</div><div class='add'>+  vs2 = []</div><div class='add'>+  C.new.to_enum.each {|*v| vs2 &lt;&lt; v }</div><div class='add'>+  vs1 == vs2 ? :ok : :ng</div><div class='add'>+}, '[ruby-dev:32329]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  e = [1,2,3].each</div><div class='add'>+  10000.times {</div><div class='add'>+    e = [e].each</div><div class='add'>+  }</div><div class='add'>+  Thread.new { GC.start }.join</div><div class='add'>+}, '[ruby-dev:32604]'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+assert_equal '[nil, []]', %q{</div><div class='add'>+  def m() yield nil,[] end</div><div class='add'>+  l = lambda {|*v| v}</div><div class='add'>+  GC.stress=true</div><div class='add'>+  r = m(&amp;l)</div><div class='add'>+  GC.stress=false</div><div class='add'>+  r.inspect</div><div class='add'>+}, '[ruby-dev:32567]'</div><div class='add'>+</div><div class='add'>+assert_equal NilClass.to_s, %q{</div><div class='add'>+  r = false; 1.times{|&amp;b| r = b}; r.class</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    define_method(:foo) do |arg, &amp;block|</div><div class='add'>+      if block then block.call else arg end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.foo("ng") {"ok"}</div><div class='add'>+}, '[ruby-talk:266422]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    define_method(:xyz) do |o, k, &amp;block|</div><div class='add'>+      block.call(o, k)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.xyz("o","k") {|o, k| o+k}</div><div class='add'>+}, '[ruby-core:20544]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    define_method(:xyz) do |*args, &amp;block|</div><div class='add'>+      block.call(*args)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.xyz("o","k") {|*args| args.join("")}</div><div class='add'>+}, '[ruby-core:20544]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  class C</div><div class='add'>+    define_method(:foo) do |&amp;block|</div><div class='add'>+      block.call if block</div><div class='add'>+    end</div><div class='add'>+    result = "ng"</div><div class='add'>+    new.foo() {result = "ok"}</div><div class='add'>+    result</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  class Bar</div><div class='add'>+    def bar; :ok; end</div><div class='add'>+  end</div><div class='add'>+  def foo</div><div class='add'>+    yield(Bar.new) if block_given?</div><div class='add'>+  end</div><div class='add'>+  foo(&amp;:bar)</div><div class='add'>+}, '[ruby-core:14279]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  class Controller</div><div class='add'>+    def respond_to(&amp;block)</div><div class='add'>+      responder = Responder.new</div><div class='add'>+      block.call(responder)</div><div class='add'>+      responder.respond</div><div class='add'>+    end</div><div class='add'>+    def test_for_bug</div><div class='add'>+      respond_to{|format|</div><div class='add'>+        format.js{</div><div class='add'>+          puts "in test"</div><div class='add'>+          render{|obj|</div><div class='add'>+            puts obj</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+    def render(&amp;block)</div><div class='add'>+      puts "in render"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Responder</div><div class='add'>+    def method_missing(symbol, &amp;block)</div><div class='add'>+      puts "enter method_missing"</div><div class='add'>+      @response = Proc.new{</div><div class='add'>+        puts 'in method missing'</div><div class='add'>+        block.call</div><div class='add'>+      }</div><div class='add'>+      puts "leave method_missing"</div><div class='add'>+    end</div><div class='add'>+    def respond</div><div class='add'>+      @response.call</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  t = Controller.new</div><div class='add'>+  t.test_for_bug</div><div class='add'>+}, '[ruby-core:14395]'</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class C0</div><div class='add'>+    def foo</div><div class='add'>+      block_given?</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class C1 &lt; C0</div><div class='add'>+    def foo</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C1.new.foo{}</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class C0</div><div class='add'>+    def foo</div><div class='add'>+      block_given?</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class C1 &lt; C0</div><div class='add'>+    def foo</div><div class='add'>+      super()</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C1.new.foo{}</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  1.times do</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue</div><div class='add'>+      begin</div><div class='add'>+        raise</div><div class='add'>+      rescue</div><div class='add'>+        break</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  'ok'</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_class.rb b/bootstraptest/test_class.rb<br/>new file mode 100644<br/>index 0000000000..b7fe0a1acd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_class.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_class.rb</a></div><div class='hunk'>@@ -0,0 +1,169 @@</div><div class='add'>+# class</div><div class='add'>+assert_equal 'true',    %q( class C; end</div><div class='add'>+                            Object.const_defined?(:C) )</div><div class='add'>+assert_equal 'Class',   %q( class C; end</div><div class='add'>+                            C.class )</div><div class='add'>+assert_equal 'C',       %q( class C; end</div><div class='add'>+                            C.name )</div><div class='add'>+assert_equal 'C',       %q( class C; end</div><div class='add'>+                            C.new.class )</div><div class='add'>+assert_equal 'C',       %q( class C; end</div><div class='add'>+                            C.new.class.name )</div><div class='add'>+assert_equal 'Class',   %q( class C; end</div><div class='add'>+                            C.new.class.class )</div><div class='add'>+assert_equal 'true',    %q( Object.__send__(:remove_const, :TrueClass)</div><div class='add'>+                            GC.start</div><div class='add'>+                            true.inspect)</div><div class='add'>+assert_equal 'false',   %q( Object.__send__(:remove_const, :FalseClass)</div><div class='add'>+                            GC.start</div><div class='add'>+                            false.inspect)</div><div class='add'>+assert_equal 'nil',     %q( Object.__send__(:remove_const, :NilClass)</div><div class='add'>+                            GC.start</div><div class='add'>+                            nil.inspect)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+# inherited class</div><div class='add'>+assert_equal 'true',    %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            Object.const_defined?(:C) )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            C.class )</div><div class='add'>+assert_equal 'C',       %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            C.name )</div><div class='add'>+assert_equal 'C',       %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            C.new.class )</div><div class='add'>+assert_equal 'C',       %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            C.new.class.name )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class C &lt; A; end</div><div class='add'>+                            C.new.class.class )</div><div class='add'>+</div><div class='add'>+# module</div><div class='add'>+assert_equal 'true',    %q( module M; end</div><div class='add'>+                            Object.const_defined?(:M) )</div><div class='add'>+assert_equal 'Module',  %q( module M; end</div><div class='add'>+                            M.class )</div><div class='add'>+assert_equal 'M',       %q( module M; end</div><div class='add'>+                            M.name )</div><div class='add'>+assert_equal 'C',       %q( module M; end</div><div class='add'>+                            class C; include M; end</div><div class='add'>+                            C.new.class )</div><div class='add'>+</div><div class='add'>+# nested class</div><div class='add'>+assert_equal 'A::B',    %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            A::B )</div><div class='add'>+assert_equal 'A::B',    %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            A::B.name )</div><div class='add'>+assert_equal 'A::B',    %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            A::B.new.class )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            A::B.new.class.class )</div><div class='add'>+assert_equal 'A::B::C', %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B::C; end</div><div class='add'>+                            A::B::C )</div><div class='add'>+assert_equal 'A::B::C', %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B::C; end</div><div class='add'>+                            A::B::C.name )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B::C; end</div><div class='add'>+                            A::B::C.class )</div><div class='add'>+assert_equal 'A::B::C', %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B::C; end</div><div class='add'>+                            A::B::C.new.class )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B::C; end</div><div class='add'>+                            A::B::C.new.class.class )</div><div class='add'>+assert_equal 'A::B2',   %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B2 &lt; A::B; end</div><div class='add'>+                            A::B2 )</div><div class='add'>+assert_equal 'Class',   %q( class A; end</div><div class='add'>+                            class A::B; end</div><div class='add'>+                            class A::B2 &lt; A::B; end</div><div class='add'>+                            A::B2.class )</div><div class='add'>+</div><div class='add'>+# reopen</div><div class='add'>+assert_equal 'true',    %q( class C; end;  c1 = ::C</div><div class='add'>+                            class C; end;  c2 = ::C</div><div class='add'>+                            c1.equal?(c2) )</div><div class='add'>+assert_equal '1',       %q( class C; end</div><div class='add'>+                            class A; end</div><div class='add'>+                            begin class C &lt; A; end; rescue TypeError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class C; end</div><div class='add'>+                            begin module C; end; rescue TypeError; 1 end )</div><div class='add'>+assert_equal '1',       %q( C = 1   # [yarv-dev:782]</div><div class='add'>+                            begin class C; end; rescue TypeError; 1 end )</div><div class='add'>+assert_equal '1',       %q( C = 1   # [yarv-dev:800]</div><div class='add'>+                            begin module C; end; rescue TypeError; 1 end )</div><div class='add'>+</div><div class='add'>+# colon2, colon3</div><div class='add'>+assert_equal '1',       %q( class A; end;  A::C = 1;  A::C )</div><div class='add'>+assert_equal '1',       %q( A = 7;  begin A::C = 7; rescue TypeError; 1 end )</div><div class='add'>+assert_equal '1',       %q( begin 7::C = 7; rescue TypeError; 1 end )</div><div class='add'>+assert_equal 'C',       %q( class A; class ::C; end end;  C )</div><div class='add'>+assert_equal 'Class',   %q( class A; class ::C; end end;  C.class )</div><div class='add'>+assert_equal 'OK',      %q( class A; ::C = "OK"; end;  C )</div><div class='add'>+assert_equal 'String',  %q( class A; ::C = "OK"; end;  C.class )</div><div class='add'>+</div><div class='add'>+# class/module dup</div><div class='add'>+assert_equal 'Class',   %q( class C; end;  C.dup.class )</div><div class='add'>+assert_equal 'Module',  %q( module M; end;  M.dup.class )</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  module Foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    def foo(&amp;b)</div><div class='add'>+      Foo.module_eval &amp;b</div><div class='add'>+    end</div><div class='add'>+    foo{</div><div class='add'>+      def bar</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    bar()</div><div class='add'>+  rescue NameError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:14378]'</div><div class='add'>+</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  $i = 0</div><div class='add'>+  class C</div><div class='add'>+    def self.const_missing *args</div><div class='add'>+      $i+=1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  3.times{</div><div class='add'>+    C::FOO</div><div class='add'>+  }</div><div class='add'>+  $i</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_match /::C\z/, %q{</div><div class='add'>+  c = nil</div><div class='add'>+  Module.new{|m| c = class m::C; name; end}</div><div class='add'>+  c</div><div class='add'>+}, '[ruby-dev:38456]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  s = Symbol.dup</div><div class='add'>+  class &lt;&lt; s</div><div class='add'>+  end</div><div class='add'>+  s.allocate.to_s</div><div class='add'>+}, '[ruby-core:30843]'</div><div class='head'>diff --git a/bootstraptest/test_env.rb b/bootstraptest/test_env.rb<br/>new file mode 100644<br/>index 0000000000..7d1b45b75e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_env.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_env.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+assert_equal "true", %q{</div><div class='add'>+  ENV["ENVTEST"] = "\u{e9 3042 d76c}"</div><div class='add'>+  env = ENV["ENVTEST"]</div><div class='add'>+  env.valid_encoding?</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# different encoding is used for PATH</div><div class='add'>+assert_equal "true", %q{</div><div class='add'>+  ENV["PATH"] = "\u{e9 3042 d76c}"</div><div class='add'>+  env = ENV["PATH"]</div><div class='add'>+  env.valid_encoding?</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_eval.rb b/bootstraptest/test_eval.rb<br/>new file mode 100644<br/>index 0000000000..8e90ac2728<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_eval.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_eval.rb</a></div><div class='hunk'>@@ -0,0 +1,324 @@</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    a = :ok</div><div class='add'>+    $b = binding</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  eval('a', $b)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:ok, :ok2]}, %q{</div><div class='add'>+  def m</div><div class='add'>+    a = :ok</div><div class='add'>+    $b = binding</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  eval('b = :ok2', $b)</div><div class='add'>+  eval('[a, b]', $b)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[nil, 1]}, %q{</div><div class='add'>+  $ans = []</div><div class='add'>+  def m</div><div class='add'>+    $b = binding</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $ans &lt;&lt; eval(%q{</div><div class='add'>+    $ans &lt;&lt; eval(%q{</div><div class='add'>+      a</div><div class='add'>+    }, $b)</div><div class='add'>+    a = 1</div><div class='add'>+  }, $b)</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{C}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+    def m</div><div class='add'>+      binding</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  eval('Const', C.new.m)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{top}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  a = 1</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+    def m</div><div class='add'>+      eval('Const', TOPLEVEL_BINDING)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{:ok</div><div class='add'>+ok}, %q{</div><div class='add'>+  class C</div><div class='add'>+    $b = binding</div><div class='add'>+  end</div><div class='add'>+  eval %q{</div><div class='add'>+    def m</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  }, $b</div><div class='add'>+  p C.new.m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  b = proc{</div><div class='add'>+    a = :ok</div><div class='add'>+    binding</div><div class='add'>+  }.call</div><div class='add'>+  a = :ng</div><div class='add'>+  eval("a", b)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{C}, %q{</div><div class='add'>+  class C</div><div class='add'>+    def foo</div><div class='add'>+      binding</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.foo.eval("self.class.to_s")</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  eval('1')</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  eval('a=1; a')</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  a = 1</div><div class='add'>+  eval('a')</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  __send__ :eval, %{</div><div class='add'>+    :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  1.__send__ :instance_eval, %{</div><div class='add'>+    :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  1.instance_eval{</div><div class='add'>+    self</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{foo}, %q{</div><div class='add'>+  'foo'.instance_eval{</div><div class='add'>+    self</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  class Integer</div><div class='add'>+    Const = 1</div><div class='add'>+  end</div><div class='add'>+  1.instance_eval %{</div><div class='add'>+    Const</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{top}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+  end</div><div class='add'>+  C.module_eval{</div><div class='add'>+    Const</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{C}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+  end</div><div class='add'>+  C.class_eval %{</div><div class='add'>+    def m</div><div class='add'>+      Const</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{top}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+  end</div><div class='add'>+  C.class_eval{</div><div class='add'>+    def m</div><div class='add'>+      Const</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:top, :C, :top, :C]}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+  end</div><div class='add'>+  $nest = false</div><div class='add'>+  $ans = []</div><div class='add'>+  def m</div><div class='add'>+    $ans &lt;&lt; Const</div><div class='add'>+    C.module_eval %{</div><div class='add'>+      $ans &lt;&lt; Const</div><div class='add'>+      Boo = false unless defined? Boo</div><div class='add'>+      unless $nest</div><div class='add'>+        $nest = true</div><div class='add'>+        m</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[10, main]}, %q{</div><div class='add'>+  $nested = false</div><div class='add'>+  $ans = []</div><div class='add'>+  $pr = proc{</div><div class='add'>+    $ans &lt;&lt; self</div><div class='add'>+    unless $nested</div><div class='add'>+      $nested = true</div><div class='add'>+      $pr.call</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  class C</div><div class='add'>+    def initialize &amp;b</div><div class='add'>+      10.instance_eval(&amp;b)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new(&amp;$pr)</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+%w[break next redo].each do |keyword|</div><div class='add'>+  assert_match %r"Can't escape from eval with #{keyword}\z", %{</div><div class='add'>+    begin</div><div class='add'>+      eval "0 rescue #{keyword}"</div><div class='add'>+    rescue SyntaxError =&gt; e</div><div class='add'>+      e.message</div><div class='add'>+    end</div><div class='add'>+  }, '[ruby-dev:31372]'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  class Foo</div><div class='add'>+     def self.add_method</div><div class='add'>+       class_eval("def some-bad-name; puts 'hello' unless @some_variable.some_function(''); end")</div><div class='add'>+     end</div><div class='add'>+  end</div><div class='add'>+  Foo.add_method</div><div class='add'>+}, '[ruby-core:14556] reported by Frederick Cheung'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Module</div><div class='add'>+    def my_module_eval(&amp;block)</div><div class='add'>+      module_eval(&amp;block)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class String</div><div class='add'>+    Integer.my_module_eval do</div><div class='add'>+      def hoge; end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  if Integer.instance_methods(false).map{|m|m.to_sym}.include?(:hoge) &amp;&amp;</div><div class='add'>+     !String.instance_methods(false).map{|m|m.to_sym}.include?(:hoge)</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, "[ruby-dev:34236]"</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    eval("class nil::Foo; end")</div><div class='add'>+    :ng</div><div class='add'>+  rescue Exception</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    0.instance_eval { def m() :m end }</div><div class='add'>+    1.m</div><div class='add'>+    :ng</div><div class='add'>+  rescue Exception</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:34579]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    12.instance_eval { @@a }</div><div class='add'>+  rescue NameError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16794]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    12.instance_exec { @@a }</div><div class='add'>+  rescue NameError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16794]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  nil.instance_eval {</div><div class='add'>+    def defd_using_instance_eval() :ok end</div><div class='add'>+  }</div><div class='add'>+  nil.defd_using_instance_eval</div><div class='add'>+}, '[ruby-core:28324]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  nil.instance_exec {</div><div class='add'>+    def defd_using_instance_exec() :ok end</div><div class='add'>+  }</div><div class='add'>+  nil.defd_using_instance_exec</div><div class='add'>+}, '[ruby-core:28324]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  eval("", method(:proc).call {}.binding)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "", %q{</div><div class='add'>+  b = binding</div><div class='add'>+  10.times{</div><div class='add'>+    eval('', b)</div><div class='add'>+  }</div><div class='add'>+  begin</div><div class='add'>+    eval('1.times{raise}', b)</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:35392]'</div><div class='add'>+</div><div class='add'>+assert_equal "[:x]", %q{</div><div class='add'>+  def kaboom!</div><div class='add'>+    yield.eval("local_variables")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  for x in enum_for(:kaboom!)</div><div class='add'>+    binding</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:25125]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  hash = {}</div><div class='add'>+  ("aaaa".."matz").each_with_index do |s, i|</div><div class='add'>+    hash[s] = i</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    eval "class C; @@h = #{hash.inspect}; end"</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:25714]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    eval("# encoding:utf-16le\nfoo")</div><div class='add'>+  rescue Exception =&gt; e</div><div class='add'>+    p e</div><div class='add'>+    RubyVM::InstructionSequence.compile("p:hello")</div><div class='add'>+  end</div><div class='add'>+}, 'check escaping the internal value th-&gt;base_block'</div><div class='add'>+</div><div class='head'>diff --git a/bootstraptest/test_exception.rb b/bootstraptest/test_exception.rb<br/>new file mode 100644<br/>index 0000000000..35c8d25e37<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_exception.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_exception.rb</a></div><div class='hunk'>@@ -0,0 +1,432 @@</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+  ensure</div><div class='add'>+    2+2</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{4}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+    begin</div><div class='add'>+      2+2</div><div class='add'>+    ensure</div><div class='add'>+      3+3</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    4+4</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{4}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+    begin</div><div class='add'>+      2+2</div><div class='add'>+    ensure</div><div class='add'>+      3+3</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    4+4</div><div class='add'>+    begin</div><div class='add'>+      5+5</div><div class='add'>+    ensure</div><div class='add'>+      6+6</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{NilClass}, %q{</div><div class='add'>+  a = nil</div><div class='add'>+  1.times{|e|</div><div class='add'>+    begin</div><div class='add'>+    rescue =&gt; err</div><div class='add'>+    end</div><div class='add'>+    a = err.class</div><div class='add'>+  }</div><div class='add'>+  a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{RuntimeError}, %q{</div><div class='add'>+  a = nil</div><div class='add'>+  1.times{|e|</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue =&gt; err</div><div class='add'>+    end</div><div class='add'>+    a = err.class</div><div class='add'>+  }</div><div class='add'>+  a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  $!</div><div class='add'>+}</div><div class='add'>+assert_equal %q{FOO}, %q{</div><div class='add'>+  begin</div><div class='add'>+    raise "FOO"</div><div class='add'>+  rescue</div><div class='add'>+    $!</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{FOO}, %q{</div><div class='add'>+  def m</div><div class='add'>+    $!</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    raise "FOO"</div><div class='add'>+  rescue</div><div class='add'>+    m()</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[#&lt;RuntimeError: BAR&gt;, #&lt;RuntimeError: FOO&gt;]}, %q{</div><div class='add'>+  $ans = []</div><div class='add'>+  def m</div><div class='add'>+    $!</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    raise "FOO"</div><div class='add'>+  rescue</div><div class='add'>+    begin</div><div class='add'>+      raise "BAR"</div><div class='add'>+    rescue</div><div class='add'>+      $ans &lt;&lt; m()</div><div class='add'>+    end</div><div class='add'>+    $ans &lt;&lt; m()</div><div class='add'>+  end</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[#&lt;RuntimeError: FOO&gt;, #&lt;RuntimeError: FOO&gt;]}, %q{</div><div class='add'>+  $ans = []</div><div class='add'>+  def m</div><div class='add'>+    $!</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    begin</div><div class='add'>+      raise "FOO"</div><div class='add'>+    ensure</div><div class='add'>+      $ans &lt;&lt; m()</div><div class='add'>+    end</div><div class='add'>+  rescue</div><div class='add'>+    $ans &lt;&lt; m()</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[nil]}, %q{</div><div class='add'>+  $ans = []</div><div class='add'>+  def m</div><div class='add'>+    $!</div><div class='add'>+  end</div><div class='add'>+  def m2</div><div class='add'>+    1.times{</div><div class='add'>+      begin</div><div class='add'>+        return</div><div class='add'>+      ensure</div><div class='add'>+        $ans &lt;&lt; m</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+  m2</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue</div><div class='add'>+    :ok</div><div class='add'>+  ensure</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{RuntimeError}, %q{</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.class</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ng}, %q{</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue StandardError</div><div class='add'>+    :ng</div><div class='add'>+  rescue Exception</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{c}, %q{</div><div class='add'>+  begin</div><div class='add'>+    begin</div><div class='add'>+      raise "a"</div><div class='add'>+    rescue</div><div class='add'>+      raise "b"</div><div class='add'>+    ensure</div><div class='add'>+      raise "c"</div><div class='add'>+    end</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{33}, %q{</div><div class='add'>+  def m a, b</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  m(1, begin</div><div class='add'>+         raise</div><div class='add'>+       rescue</div><div class='add'>+         2</div><div class='add'>+       end) +</div><div class='add'>+  m(10, begin</div><div class='add'>+         raise</div><div class='add'>+       rescue</div><div class='add'>+         20</div><div class='add'>+       ensure</div><div class='add'>+         30</div><div class='add'>+       end)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  def m a, b</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  m(begin</div><div class='add'>+      raise</div><div class='add'>+    rescue</div><div class='add'>+      1</div><div class='add'>+    end,</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue</div><div class='add'>+      2</div><div class='add'>+    end)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok3}, %q{</div><div class='add'>+  class E1 &lt; Exception</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    begin</div><div class='add'>+      begin</div><div class='add'>+        m{</div><div class='add'>+          raise</div><div class='add'>+        }</div><div class='add'>+      rescue E1</div><div class='add'>+        :ok2</div><div class='add'>+      ensure</div><div class='add'>+      end</div><div class='add'>+    rescue</div><div class='add'>+      :ok3</div><div class='add'>+    ensure</div><div class='add'>+    end</div><div class='add'>+  rescue E1</div><div class='add'>+    :ok</div><div class='add'>+  ensure</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{7}, %q{</div><div class='add'>+  $i = 0</div><div class='add'>+  def m</div><div class='add'>+    iter{</div><div class='add'>+      begin</div><div class='add'>+        $i += 1</div><div class='add'>+        begin</div><div class='add'>+          $i += 2</div><div class='add'>+          break</div><div class='add'>+        ensure</div><div class='add'>+</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        $i += 4</div><div class='add'>+      end</div><div class='add'>+      $i = 0</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def iter</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $i</div><div class='add'>+}</div><div class='add'>+assert_equal %q{10}, %q{</div><div class='add'>+  $i = 0</div><div class='add'>+  def m</div><div class='add'>+    begin</div><div class='add'>+      $i += 1</div><div class='add'>+      begin</div><div class='add'>+        $i += 2</div><div class='add'>+        return</div><div class='add'>+      ensure</div><div class='add'>+        $i += 3</div><div class='add'>+      end</div><div class='add'>+    ensure</div><div class='add'>+      $i += 4</div><div class='add'>+    end</div><div class='add'>+    p :end</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $i</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1</div><div class='add'>+  rescue</div><div class='add'>+    2</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{4}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1</div><div class='add'>+    begin</div><div class='add'>+      2</div><div class='add'>+    rescue</div><div class='add'>+      3</div><div class='add'>+    end</div><div class='add'>+    4</div><div class='add'>+  rescue</div><div class='add'>+    5</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1</div><div class='add'>+  rescue</div><div class='add'>+    2</div><div class='add'>+  else</div><div class='add'>+    3</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+  rescue</div><div class='add'>+    2+2</div><div class='add'>+  ensure</div><div class='add'>+    3+3</div><div class='add'>+  end</div><div class='add'>+   }</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+  rescue</div><div class='add'>+    2+2</div><div class='add'>+  ensure</div><div class='add'>+    3+3</div><div class='add'>+  end</div><div class='add'>+   }</div><div class='add'>+assert_equal %q{6}, %q{</div><div class='add'>+  begin</div><div class='add'>+    1+1</div><div class='add'>+  rescue</div><div class='add'>+    2+2</div><div class='add'>+  else</div><div class='add'>+    3+3</div><div class='add'>+  ensure</div><div class='add'>+    4+4</div><div class='add'>+  end</div><div class='add'>+   }</div><div class='add'>+assert_equal %q{12}, %q{</div><div class='add'>+ begin</div><div class='add'>+   1+1</div><div class='add'>+   begin</div><div class='add'>+     2+2</div><div class='add'>+   rescue</div><div class='add'>+     3+3</div><div class='add'>+   else</div><div class='add'>+     4+4</div><div class='add'>+   end</div><div class='add'>+ rescue</div><div class='add'>+   5+5</div><div class='add'>+ else</div><div class='add'>+   6+6</div><div class='add'>+ ensure</div><div class='add'>+   7+7</div><div class='add'>+ end</div><div class='add'>+   }</div><div class='add'>+assert_equal %q{ok}, %q{ #</div><div class='add'>+  proc{</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+      break</div><div class='add'>+    rescue</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  }.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  proc do</div><div class='add'>+    begin</div><div class='add'>+      raise StandardError</div><div class='add'>+      redo</div><div class='add'>+    rescue StandardError</div><div class='add'>+    end</div><div class='add'>+  end.call</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+##</div><div class='add'>+assert_match /undefined method `foo\'/, %q{#`</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  class C</div><div class='add'>+    def inspect</div><div class='add'>+      bar {}</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      raise</div><div class='add'>+    ensure</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.foo</div><div class='add'>+}, "[ruby-dev:31407]"</div><div class='add'>+</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  doit = false</div><div class='add'>+  exc = nil</div><div class='add'>+  t = Thread.new {</div><div class='add'>+    begin</div><div class='add'>+      doit = true</div><div class='add'>+      sleep 10</div><div class='add'>+    ensure</div><div class='add'>+      exc = $!</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  Thread.pass until doit</div><div class='add'>+  t.kill</div><div class='add'>+  t.join</div><div class='add'>+  exc.inspect</div><div class='add'>+}, '[ruby-dev:32608]'</div><div class='add'>+</div><div class='add'>+assert_equal 'exception class/object expected', %q{</div><div class='add'>+  class ZeroDivisionError</div><div class='add'>+    def self.new(message)</div><div class='add'>+      42</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    1/0</div><div class='add'>+  rescue Exception =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:24767]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    def ===(o)</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue C.new</div><div class='add'>+    end</div><div class='add'>+  rescue TypeError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_finalizer.rb b/bootstraptest/test_finalizer.rb<br/>new file mode 100644<br/>index 0000000000..22a16b1220<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_finalizer.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_finalizer.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+a1,a2,b1,b2=Array.new(4){""}</div><div class='add'>+ObjectSpace.define_finalizer(b2,proc{})</div><div class='add'>+ObjectSpace.define_finalizer(b1,proc{b1.inspect})</div><div class='add'>+</div><div class='add'>+ObjectSpace.define_finalizer(a2,proc{a1.inspect})</div><div class='add'>+ObjectSpace.define_finalizer(a1,proc{})</div><div class='add'>+}, '[ruby-dev:35778]'</div><div class='head'>diff --git a/bootstraptest/test_flip.rb b/bootstraptest/test_flip.rb<br/>new file mode 100644<br/>index 0000000000..ff194868b2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_flip.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_flip.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+assert_equal %q{E}, %q{$_ = "E"; eval("nil if true..~/^E/",nil,"-e"); $_}</div><div class='head'>diff --git a/bootstraptest/test_flow.rb b/bootstraptest/test_flow.rb<br/>new file mode 100644<br/>index 0000000000..9da6d45cbd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_flow.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_flow.rb</a></div><div class='hunk'>@@ -0,0 +1,601 @@</div><div class='add'>+assert_equal %q{[1, 2, 4, 5, 6, 7, 8]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each{; $a &lt;&lt; 2</div><div class='add'>+    break; $a &lt;&lt; 3</div><div class='add'>+  }; $a &lt;&lt; 4</div><div class='add'>+  begin; $a &lt;&lt; 5</div><div class='add'>+  ensure; $a &lt;&lt; 6</div><div class='add'>+  end; $a &lt;&lt; 7</div><div class='add'>+; $a &lt;&lt; 8</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 6, 7, 8]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  begin; $a &lt;&lt; 2</div><div class='add'>+    [1,2].each do; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    end; $a &lt;&lt; 5</div><div class='add'>+  ensure; $a &lt;&lt; 6</div><div class='add'>+  end; $a &lt;&lt; 7</div><div class='add'>+; $a &lt;&lt; 8</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ["a"].inject("ng"){|x,y|</div><div class='add'>+    break :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  unless ''.respond_to? :lines</div><div class='add'>+    class String</div><div class='add'>+      def lines</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ('a').lines.map{|e|</div><div class='add'>+    break :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  ["a"].inject("ng"){|x,y|; $a &lt;&lt; 2</div><div class='add'>+    break :ok; $a &lt;&lt; 3</div><div class='add'>+  }; $a &lt;&lt; 4</div><div class='add'>+; $a &lt;&lt; 5</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  ('a'..'b').map{|e|; $a &lt;&lt; 2</div><div class='add'>+    break :ok; $a &lt;&lt; 3</div><div class='add'>+  }; $a &lt;&lt; 4</div><div class='add'>+; $a &lt;&lt; 5</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 7, 8]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+    end; $a &lt;&lt; 6</div><div class='add'>+  end; $a &lt;&lt; 7</div><div class='add'>+; $a &lt;&lt; 8</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 6, 9, 10]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i=0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    begin; $a &lt;&lt; 5</div><div class='add'>+    ensure; $a &lt;&lt; 6</div><div class='add'>+      break; $a &lt;&lt; 7</div><div class='add'>+    end; $a &lt;&lt; 8</div><div class='add'>+  end; $a &lt;&lt; 9</div><div class='add'>+; $a &lt;&lt; 10</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i=0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    begin; $a &lt;&lt; 5</div><div class='add'>+      raise; $a &lt;&lt; 6</div><div class='add'>+    ensure; $a &lt;&lt; 7</div><div class='add'>+      break; $a &lt;&lt; 8</div><div class='add'>+    end; $a &lt;&lt; 9</div><div class='add'>+  end; $a &lt;&lt; 10</div><div class='add'>+; $a &lt;&lt; 11</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i=0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    begin; $a &lt;&lt; 5</div><div class='add'>+      raise; $a &lt;&lt; 6</div><div class='add'>+    rescue; $a &lt;&lt; 7</div><div class='add'>+      break; $a &lt;&lt; 8</div><div class='add'>+    end; $a &lt;&lt; 9</div><div class='add'>+  end; $a &lt;&lt; 10</div><div class='add'>+; $a &lt;&lt; 11</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      raise StandardError; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+      break; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      raise StandardError; $a &lt;&lt; 4</div><div class='add'>+    rescue; $a &lt;&lt; 5</div><div class='add'>+      break; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 6, 8, 10, 11]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      begin; $a &lt;&lt; 4</div><div class='add'>+        break; $a &lt;&lt; 5</div><div class='add'>+      ensure; $a &lt;&lt; 6</div><div class='add'>+      end; $a &lt;&lt; 7</div><div class='add'>+    ensure; $a &lt;&lt; 8</div><div class='add'>+    end; $a &lt;&lt; 9</div><div class='add'>+  end; $a &lt;&lt; 10</div><div class='add'>+; $a &lt;&lt; 11</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i = 0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    j = 0; $a &lt;&lt; 5</div><div class='add'>+    while j&lt;3; $a &lt;&lt; 6</div><div class='add'>+      j+=1; $a &lt;&lt; 7</div><div class='add'>+      begin; $a &lt;&lt; 8</div><div class='add'>+        raise; $a &lt;&lt; 9</div><div class='add'>+      rescue; $a &lt;&lt; 10</div><div class='add'>+        break; $a &lt;&lt; 11</div><div class='add'>+      end; $a &lt;&lt; 12</div><div class='add'>+    end; $a &lt;&lt; 13</div><div class='add'>+  end; $a &lt;&lt; 14</div><div class='add'>+; $a &lt;&lt; 15</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i = 0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    j = 0; $a &lt;&lt; 5</div><div class='add'>+    while j&lt;3; $a &lt;&lt; 6</div><div class='add'>+      j+=1; $a &lt;&lt; 7</div><div class='add'>+      1.times{; $a &lt;&lt; 8</div><div class='add'>+        begin; $a &lt;&lt; 9</div><div class='add'>+          raise; $a &lt;&lt; 10</div><div class='add'>+        rescue; $a &lt;&lt; 11</div><div class='add'>+          break; $a &lt;&lt; 12</div><div class='add'>+        end; $a &lt;&lt; 13</div><div class='add'>+      }; $a &lt;&lt; 14</div><div class='add'>+    end; $a &lt;&lt; 15</div><div class='add'>+  end; $a &lt;&lt; 16</div><div class='add'>+; $a &lt;&lt; 17</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i = 0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    j = 0; $a &lt;&lt; 5</div><div class='add'>+    while j&lt;3; $a &lt;&lt; 6</div><div class='add'>+      j+=1; $a &lt;&lt; 7</div><div class='add'>+      begin; $a &lt;&lt; 8</div><div class='add'>+        raise; $a &lt;&lt; 9</div><div class='add'>+      ensure; $a &lt;&lt; 10</div><div class='add'>+        break; $a &lt;&lt; 11</div><div class='add'>+      end; $a &lt;&lt; 12</div><div class='add'>+    end; $a &lt;&lt; 13</div><div class='add'>+  end; $a &lt;&lt; 14</div><div class='add'>+; $a &lt;&lt; 15</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i = 0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    j = 0; $a &lt;&lt; 5</div><div class='add'>+    while j&lt;3; $a &lt;&lt; 6</div><div class='add'>+      j+=1; $a &lt;&lt; 7</div><div class='add'>+      1.times{; $a &lt;&lt; 8</div><div class='add'>+        begin; $a &lt;&lt; 9</div><div class='add'>+          raise; $a &lt;&lt; 10</div><div class='add'>+        ensure; $a &lt;&lt; 11</div><div class='add'>+          break; $a &lt;&lt; 12</div><div class='add'>+        end; $a &lt;&lt; 13</div><div class='add'>+      }; $a &lt;&lt; 14</div><div class='add'>+    end; $a &lt;&lt; 15</div><div class='add'>+  end; $a &lt;&lt; 16</div><div class='add'>+; $a &lt;&lt; 17</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  while true; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+      break; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 99]}, %q{</div><div class='add'>+$a = [];</div><div class='add'>+begin; ; $a &lt;&lt; 1</div><div class='add'>+  while true; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+      raise; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 6, 8, 9, 10, 11]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  begin; $a &lt;&lt; 2</div><div class='add'>+    [1,2].each do; $a &lt;&lt; 3</div><div class='add'>+      begin; $a &lt;&lt; 4</div><div class='add'>+        break; $a &lt;&lt; 5</div><div class='add'>+      ensure; $a &lt;&lt; 6</div><div class='add'>+      end; $a &lt;&lt; 7</div><div class='add'>+    end; $a &lt;&lt; 8</div><div class='add'>+  ensure; $a &lt;&lt; 9</div><div class='add'>+  end; $a &lt;&lt; 10</div><div class='add'>+; $a &lt;&lt; 11</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 4, 99]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  begin; $a &lt;&lt; 2</div><div class='add'>+    raise StandardError; $a &lt;&lt; 3</div><div class='add'>+  ensure; $a &lt;&lt; 4</div><div class='add'>+  end; $a &lt;&lt; 5</div><div class='add'>+; $a &lt;&lt; 6</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  begin; $a &lt;&lt; 2</div><div class='add'>+  ensure; $a &lt;&lt; 3</div><div class='add'>+  end ; $a &lt;&lt; 4</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 99]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+      raise StandardError; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  def m a, b</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  m(1,</div><div class='add'>+    while true</div><div class='add'>+      break 2</div><div class='add'>+    end</div><div class='add'>+    )</div><div class='add'>+}</div><div class='add'>+assert_equal %q{4}, %q{</div><div class='add'>+  def m a, b</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  m(1,</div><div class='add'>+    (i=0; while i&lt;2</div><div class='add'>+       i+=1</div><div class='add'>+       class C</div><div class='add'>+         next 2</div><div class='add'>+       end</div><div class='add'>+     end; 3)</div><div class='add'>+    )</div><div class='add'>+}</div><div class='add'>+assert_equal %q{34}, %q{</div><div class='add'>+  def m a, b</div><div class='add'>+    a+b</div><div class='add'>+  end</div><div class='add'>+  m(1, 1.times{break 3}) +</div><div class='add'>+  m(10, (1.times{next 3}; 20))</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  3.times{; $a &lt;&lt; 2</div><div class='add'>+    class C; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    end; $a &lt;&lt; 5</div><div class='add'>+  }; $a &lt;&lt; 6</div><div class='add'>+; $a &lt;&lt; 7</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  3.times{; $a &lt;&lt; 2</div><div class='add'>+    class A; $a &lt;&lt; 3</div><div class='add'>+      class B; $a &lt;&lt; 4</div><div class='add'>+        break; $a &lt;&lt; 5</div><div class='add'>+      end; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  }; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 2, 3, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  3.times{; $a &lt;&lt; 2</div><div class='add'>+    class C; $a &lt;&lt; 3</div><div class='add'>+      next; $a &lt;&lt; 4</div><div class='add'>+    end; $a &lt;&lt; 5</div><div class='add'>+  }; $a &lt;&lt; 6</div><div class='add'>+; $a &lt;&lt; 7</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  3.times{; $a &lt;&lt; 2</div><div class='add'>+    class C; $a &lt;&lt; 3</div><div class='add'>+      class D; $a &lt;&lt; 4</div><div class='add'>+        next; $a &lt;&lt; 5</div><div class='add'>+      end; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  }; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  while true; $a &lt;&lt; 2</div><div class='add'>+    class C; $a &lt;&lt; 3</div><div class='add'>+      break; $a &lt;&lt; 4</div><div class='add'>+    end; $a &lt;&lt; 5</div><div class='add'>+  end; $a &lt;&lt; 6</div><div class='add'>+; $a &lt;&lt; 7</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  while true; $a &lt;&lt; 2</div><div class='add'>+    class C; $a &lt;&lt; 3</div><div class='add'>+      class D; $a &lt;&lt; 4</div><div class='add'>+        break; $a &lt;&lt; 5</div><div class='add'>+      end; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  i=0; $a &lt;&lt; 2</div><div class='add'>+  while i&lt;3; $a &lt;&lt; 3</div><div class='add'>+    i+=1; $a &lt;&lt; 4</div><div class='add'>+    class C; $a &lt;&lt; 5</div><div class='add'>+      next 10; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  1.times{</div><div class='add'>+    while true</div><div class='add'>+      class C</div><div class='add'>+        begin</div><div class='add'>+          break</div><div class='add'>+        ensure</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2, 3, 5, 2, 3, 5, 7, 8]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  [1,2].each do; $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      next; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+    end; $a &lt;&lt; 6</div><div class='add'>+  end; $a &lt;&lt; 7</div><div class='add'>+; $a &lt;&lt; 8</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 2, 6, 3, 5, 7, 8]}, %q{$a = []; begin;  ; $a &lt;&lt; 1</div><div class='add'>+  o = "test"; $a &lt;&lt; 2</div><div class='add'>+  def o.test(a); $a &lt;&lt; 3</div><div class='add'>+    return a; $a &lt;&lt; 4</div><div class='add'>+  ensure; $a &lt;&lt; 5</div><div class='add'>+  end; $a &lt;&lt; 6</div><div class='add'>+  o.test(123); $a &lt;&lt; 7</div><div class='add'>+; $a &lt;&lt; 8</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 4, 7, 5, 8, 9]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  def m1 *args; $a &lt;&lt; 2</div><div class='add'>+    ; $a &lt;&lt; 3</div><div class='add'>+  end; $a &lt;&lt; 4</div><div class='add'>+  def m2; $a &lt;&lt; 5</div><div class='add'>+    m1(:a, :b, (return 1; :c)); $a &lt;&lt; 6</div><div class='add'>+  end; $a &lt;&lt; 7</div><div class='add'>+  m2; $a &lt;&lt; 8</div><div class='add'>+; $a &lt;&lt; 9</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 8, 2, 3, 4, 5, 9, 10]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  def m(); $a &lt;&lt; 2</div><div class='add'>+    begin; $a &lt;&lt; 3</div><div class='add'>+      2; $a &lt;&lt; 4</div><div class='add'>+    ensure; $a &lt;&lt; 5</div><div class='add'>+      return 3; $a &lt;&lt; 6</div><div class='add'>+    end; $a &lt;&lt; 7</div><div class='add'>+  end; $a &lt;&lt; 8</div><div class='add'>+  m; $a &lt;&lt; 9</div><div class='add'>+; $a &lt;&lt; 10</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 3, 11, 4, 5, 6, 7, 12, 13]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  def m2; $a &lt;&lt; 2</div><div class='add'>+  end; $a &lt;&lt; 3</div><div class='add'>+  def m(); $a &lt;&lt; 4</div><div class='add'>+    m2(begin; $a &lt;&lt; 5</div><div class='add'>+         2; $a &lt;&lt; 6</div><div class='add'>+       ensure; $a &lt;&lt; 7</div><div class='add'>+         return 3; $a &lt;&lt; 8</div><div class='add'>+       end); $a &lt;&lt; 9</div><div class='add'>+    4; $a &lt;&lt; 10</div><div class='add'>+  end; $a &lt;&lt; 11</div><div class='add'>+  m(); $a &lt;&lt; 12</div><div class='add'>+; $a &lt;&lt; 13</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[1, 16, 2, 3, 4, 5, 6, 7, 10, 11, 17, 18]}, %q{$a = []; begin; ; $a &lt;&lt; 1</div><div class='add'>+  def m; $a &lt;&lt; 2</div><div class='add'>+    1; $a &lt;&lt; 3</div><div class='add'>+    1.times{; $a &lt;&lt; 4</div><div class='add'>+      2; $a &lt;&lt; 5</div><div class='add'>+      begin; $a &lt;&lt; 6</div><div class='add'>+        3; $a &lt;&lt; 7</div><div class='add'>+        return; $a &lt;&lt; 8</div><div class='add'>+        4; $a &lt;&lt; 9</div><div class='add'>+      ensure; $a &lt;&lt; 10</div><div class='add'>+        5; $a &lt;&lt; 11</div><div class='add'>+      end; $a &lt;&lt; 12</div><div class='add'>+      6; $a &lt;&lt; 13</div><div class='add'>+    }; $a &lt;&lt; 14</div><div class='add'>+    7; $a &lt;&lt; 15</div><div class='add'>+  end; $a &lt;&lt; 16</div><div class='add'>+  m(); $a &lt;&lt; 17</div><div class='add'>+; $a &lt;&lt; 18</div><div class='add'>+; rescue Exception; $a &lt;&lt; 99; end; $a}</div><div class='add'>+assert_equal %q{[:ok, :ok2, :last]}, %q{</div><div class='add'>+  a = []</div><div class='add'>+  i = 0</div><div class='add'>+  begin</div><div class='add'>+    while i &lt; 1</div><div class='add'>+      i+=1</div><div class='add'>+      begin</div><div class='add'>+        begin</div><div class='add'>+          next</div><div class='add'>+        ensure</div><div class='add'>+          a &lt;&lt; :ok</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        a &lt;&lt; :ok2</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    a &lt;&lt; :last</div><div class='add'>+  end</div><div class='add'>+  a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:ok, :ok2, :last]}, %q{</div><div class='add'>+  a = []</div><div class='add'>+  i = 0</div><div class='add'>+  begin</div><div class='add'>+    while i &lt; 1</div><div class='add'>+      i+=1</div><div class='add'>+      begin</div><div class='add'>+        begin</div><div class='add'>+          break</div><div class='add'>+        ensure</div><div class='add'>+          a &lt;&lt; :ok</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        a &lt;&lt; :ok2</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    a &lt;&lt; :last</div><div class='add'>+  end</div><div class='add'>+  a</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:ok, :ok2, :last]}, %q{</div><div class='add'>+  a = []</div><div class='add'>+  i = 0</div><div class='add'>+  begin</div><div class='add'>+    while i &lt; 1</div><div class='add'>+      if i&gt;0</div><div class='add'>+        break</div><div class='add'>+      end</div><div class='add'>+      i+=1</div><div class='add'>+      begin</div><div class='add'>+        begin</div><div class='add'>+          redo</div><div class='add'>+        ensure</div><div class='add'>+          a &lt;&lt; :ok</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        a &lt;&lt; :ok2</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    a &lt;&lt; :last</div><div class='add'>+  end</div><div class='add'>+  a</div><div class='add'>+}</div><div class='add'>+assert_equal %Q{ENSURE\n}, %q{</div><div class='add'>+  def test</div><div class='add'>+    while true</div><div class='add'>+      return</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    puts("ENSURE")</div><div class='add'>+  end</div><div class='add'>+  test</div><div class='add'>+}, '[ruby-dev:37967]'</div><div class='add'>+</div><div class='add'>+[['[ruby-core:28129]', %q{</div><div class='add'>+  class Bug2728</div><div class='add'>+    include Enumerable</div><div class='add'>+    define_method(:dynamic_method) do</div><div class='add'>+      "dynamically defined method"</div><div class='add'>+    end</div><div class='add'>+    def each</div><div class='add'>+      begin</div><div class='add'>+        yield :foo</div><div class='add'>+      ensure</div><div class='add'>+        dynamic_method</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  e = Bug2728.new</div><div class='add'>+}],</div><div class='add'>+ ['[ruby-core:28132]', %q{</div><div class='add'>+  class Bug2729</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each</div><div class='add'>+      begin</div><div class='add'>+        yield :foo</div><div class='add'>+      ensure</div><div class='add'>+        proc {}.call</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  e = Bug2729.new</div><div class='add'>+}],</div><div class='add'>+ ['[ruby-core:39125]', %q{</div><div class='add'>+  class Bug5234</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each</div><div class='add'>+      begin</div><div class='add'>+        yield :foo</div><div class='add'>+      ensure</div><div class='add'>+        proc</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  e = Bug5234.new</div><div class='add'>+}],</div><div class='add'>+ ['[ruby-dev:45656]', %q{</div><div class='add'>+  class Bug6460</div><div class='add'>+    include Enumerable</div><div class='add'>+    def each</div><div class='add'>+      begin</div><div class='add'>+        yield :foo</div><div class='add'>+      ensure</div><div class='add'>+        1.times { Proc.new }</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  e = Bug6460.new</div><div class='add'>+}]].each do |bug, src|</div><div class='add'>+  assert_equal "foo", src + %q{e.detect {true}}, bug</div><div class='add'>+  assert_equal "true", src + %q{e.any? {true}}, bug</div><div class='add'>+  assert_equal "false", src + %q{e.all? {false}}, bug</div><div class='add'>+  assert_equal "true", src + %q{e.include?(:foo)}, bug</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+assert_equal "foo", %q{</div><div class='add'>+  class Bug6460</div><div class='add'>+    def m1</div><div class='add'>+      m2 {|e|</div><div class='add'>+        return e</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def m2</div><div class='add'>+      begin</div><div class='add'>+        yield :foo</div><div class='add'>+      ensure</div><div class='add'>+        begin</div><div class='add'>+          begin</div><div class='add'>+            yield :foo</div><div class='add'>+          ensure</div><div class='add'>+            Proc.new</div><div class='add'>+            raise ''</div><div class='add'>+          end</div><div class='add'>+        rescue</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  Bug6460.new.m1</div><div class='add'>+}, '[ruby-dev:46372]'</div><div class='add'>+</div><div class='add'>+assert_equal "foo", %q{</div><div class='add'>+  obj = "foo"</div><div class='add'>+  if obj || any1</div><div class='add'>+    any2 = any2</div><div class='add'>+  else</div><div class='add'>+    raise obj.inspect</div><div class='add'>+  end</div><div class='add'>+  obj</div><div class='add'>+}, '[ruby-core:87830]'</div><div class='head'>diff --git a/bootstraptest/test_fork.rb b/bootstraptest/test_fork.rb<br/>new file mode 100644<br/>index 0000000000..1cd9f7ac6c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_fork.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_fork.rb</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+  begin</div><div class='add'>+    GC.stress = true</div><div class='add'>+    pid = fork {}</div><div class='add'>+    Process.wait pid</div><div class='add'>+    $?.to_i</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    0</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:32404]'</div><div class='add'>+</div><div class='add'>+assert_finish 10, %q{</div><div class='add'>+  begin</div><div class='add'>+    children = (1..10).map{</div><div class='add'>+      Thread.start{fork{}}.value</div><div class='add'>+    }</div><div class='add'>+    while !children.empty? and pid = Process.wait</div><div class='add'>+      children.delete(pid)</div><div class='add'>+    end</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:22158]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit(&lt;&lt;'End', '[ruby-dev:37934]')</div><div class='add'>+  main = Thread.current</div><div class='add'>+  Thread.new { sleep 0.01 until main.stop?; Thread.kill main }</div><div class='add'>+  Process.setrlimit(:NPROC, 1) if defined?(Process::RLIMIT_NPROC)</div><div class='add'>+  fork {}</div><div class='add'>+End</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    r, w = IO.pipe</div><div class='add'>+    if pid1 = fork</div><div class='add'>+      w.close</div><div class='add'>+      r.read(1)</div><div class='add'>+      Process.kill("USR1", pid1)</div><div class='add'>+      _, s = Process.wait2(pid1)</div><div class='add'>+      s.success? ? :ok : :ng</div><div class='add'>+    else</div><div class='add'>+      r.close</div><div class='add'>+      if pid2 = fork</div><div class='add'>+        trap("USR1") { Time.now.to_s; Process.kill("USR2", pid2) }</div><div class='add'>+        w.close</div><div class='add'>+        Process.wait2(pid2)</div><div class='add'>+      else</div><div class='add'>+        w.close</div><div class='add'>+        sleep 0.2</div><div class='add'>+      end</div><div class='add'>+      exit true</div><div class='add'>+    end</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:28924]'</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2]', %q{</div><div class='add'>+  a = []</div><div class='add'>+  main = Thread.current</div><div class='add'>+  trap(:INT) { a.push(1).size == 2 and main.wakeup }</div><div class='add'>+  trap(:TERM) { a.push(2).size == 2 and main.wakeup }</div><div class='add'>+  pid = $$</div><div class='add'>+  begin</div><div class='add'>+    pid = fork do</div><div class='add'>+      Process.kill(:INT, pid)</div><div class='add'>+      Process.kill(:TERM, pid)</div><div class='add'>+    end</div><div class='add'>+    Process.wait(pid)</div><div class='add'>+    100.times {break if a.size &gt; 1; sleep 0.001}</div><div class='add'>+    a.sort</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    [1, 2]</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:44005] [Ruby 1.9 - Bug #4950]'</div><div class='add'>+</div><div class='head'>diff --git a/bootstraptest/test_gc.rb b/bootstraptest/test_gc.rb<br/>new file mode 100644<br/>index 0000000000..eb68c9845e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_gc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_gc.rb</a></div><div class='hunk'>@@ -0,0 +1,34 @@</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+a = []</div><div class='add'>+ms = "a".."k"</div><div class='add'>+("A".."Z").each do |mod|</div><div class='add'>+  mod = eval("module #{mod}; self; end")</div><div class='add'>+  ms.each do |meth|</div><div class='add'>+    iseq = RubyVM::InstructionSequence.compile("module #{mod}; def #{meth}; end; end")</div><div class='add'>+    GC.stress = true</div><div class='add'>+    iseq.eval</div><div class='add'>+    GC.stress = false</div><div class='add'>+  end</div><div class='add'>+  o = Object.new.extend(mod)</div><div class='add'>+  ms.each do |meth|</div><div class='add'>+    o.send(meth)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+}, '[ruby-dev:39453]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+a = []</div><div class='add'>+ms = "a".."k"</div><div class='add'>+("A".."Z").each do |mod|</div><div class='add'>+  mod = eval("module #{mod}; self; end")</div><div class='add'>+  ms.each do |meth|</div><div class='add'>+    GC.stress = true</div><div class='add'>+    mod.module_eval {define_method(meth) {}}</div><div class='add'>+    GC.stress = false</div><div class='add'>+  end</div><div class='add'>+  o = Object.new.extend(mod)</div><div class='add'>+  ms.each do |meth|</div><div class='add'>+    o.send(meth)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+}, '[ruby-dev:39453]'</div><div class='head'>diff --git a/bootstraptest/test_insns.rb b/bootstraptest/test_insns.rb<br/>new file mode 100644<br/>index 0000000000..4dd888897a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_insns.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_insns.rb</a></div><div class='hunk'>@@ -0,0 +1,389 @@</div><div class='add'>+# C0 coverage of each instructions</div><div class='add'>+</div><div class='add'>+# :NOTE: This is for development purpose; never consider this file as</div><div class='add'>+# ISeq compilation specification.</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  # This library brings some additional coverage.</div><div class='add'>+  # Not mandatory.</div><div class='add'>+  require 'rbconfig/sizeof'</div><div class='add'>+rescue LoadError</div><div class='add'>+  # OK, just skip</div><div class='add'>+else</div><div class='add'>+  $FIXNUM_MAX = RbConfig::LIMITS["FIXNUM_MAX"]</div><div class='add'>+  $FIXNUM_MIN = RbConfig::LIMITS["FIXNUM_MIN"]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+fsl   = { frozen_string_literal: true } # used later</div><div class='add'>+tests = [</div><div class='add'>+  # insn ,   expression to generate such insn</div><div class='add'>+  [ 'nop',   %q{ raise rescue true }, ],</div><div class='add'>+  [ 'trace', %q{ true }, ],</div><div class='add'>+</div><div class='add'>+  [ 'setlocal *, 0', %q{ x = true }, ],</div><div class='add'>+  [ 'setlocal *, 1', %q{ x = nil; -&gt; { x = true }.call }, ],</div><div class='add'>+  [ 'setlocal',      %q{ x = nil; -&gt; { -&gt; { x = true }.() }.() }, ],</div><div class='add'>+  [ 'getlocal *, 0', %q{ x = true; x }, ],</div><div class='add'>+  [ 'getlocal *, 1', %q{ x = true; -&gt; { x }.call }, ],</div><div class='add'>+  [ 'getlocal',      %q{ x = true; -&gt; { -&gt; { x }.() }.() }, ],</div><div class='add'>+</div><div class='add'>+  [ 'setspecial', %q{ true if true..true }, ],</div><div class='add'>+  [ 'getspecial', %q{ $&amp;.nil? }, ],</div><div class='add'>+  [ 'getspecial', %q{ $`.nil? }, ],</div><div class='add'>+  [ 'getspecial', %q{ $'.nil? }, ],</div><div class='add'>+  [ 'getspecial', %q{ $+.nil? }, ],</div><div class='add'>+  [ 'getspecial', %q{ $1.nil? }, ],</div><div class='add'>+  [ 'getspecial', %q{ $128.nil? }, ],</div><div class='add'>+</div><div class='add'>+  [ 'getglobal', %q{ String === $0 }, ],</div><div class='add'>+  [ 'getglobal', %q{ $_.nil? }, ],</div><div class='add'>+  [ 'setglobal', %q{ $0 = "true" }, ],</div><div class='add'>+</div><div class='add'>+  [ 'setinstancevariable', %q{ @x = true }, ],</div><div class='add'>+  [ 'getinstancevariable', %q{ @x = true; @x }, ],</div><div class='add'>+</div><div class='add'>+  [ 'setclassvariable', %q{ @@x = true }, ],</div><div class='add'>+  [ 'getclassvariable', %q{ @@x = true; @@x }, ],</div><div class='add'>+</div><div class='add'>+  [ 'setconstant', %q{ X = true }, ],</div><div class='add'>+  [ 'setconstant', %q{ Object::X = true }, ],</div><div class='add'>+  [ 'getconstant', %q{ X = true; X }, ],</div><div class='add'>+  [ 'getconstant', %q{ X = true; Object::X }, ],</div><div class='add'>+</div><div class='add'>+  [ 'getinlinecache / setinlinecache', %q{ def x; X; end; X = true; x; x; x }, ],</div><div class='add'>+</div><div class='add'>+  [ 'putnil',               %q{ $~ == nil }, ],</div><div class='add'>+  [ 'putself',              %q{ $~ != self }, ],</div><div class='add'>+  [ 'putobject INT2FIX(0)', %q{ $~ != 0 }, ],</div><div class='add'>+  [ 'putobject INT2FIX(1)', %q{ $~ != 1 }, ],</div><div class='add'>+  [ 'putobject',            %q{ $~ != -1 }, ],</div><div class='add'>+  [ 'putobject',            %q{ $~ != /x/ }, ],</div><div class='add'>+  [ 'putobject',            %q{ $~ != :x }, ],</div><div class='add'>+  [ 'putobject',            %q{ $~ != (1..2) }, ],</div><div class='add'>+  [ 'putobject',            %q{ $~ != true }, ],</div><div class='add'>+  [ 'putobject',            %q{ /(?&lt;x&gt;x)/ =~ "x"; x == "x" }, ],</div><div class='add'>+</div><div class='add'>+  [ 'putspecialobject',         %q{ {//=&gt;true}[//] }, ],</div><div class='add'>+  [ 'putiseq',                  %q{ -&gt; { true }.() }, ],</div><div class='add'>+  [ 'putstring',                %q{ "true" }, ],</div><div class='add'>+  [ 'tostring / concatstrings', %q{ "#{true}" }, ],</div><div class='add'>+  [ 'freezestring',             %q{ "#{true}"}, fsl, ],</div><div class='add'>+  [ 'freezestring',             %q{ "#{true}"}, '-d', fsl, ],</div><div class='add'>+  [ 'toregexp',                 %q{ /#{true}/ =~ "true" &amp;&amp; $~ }, ],</div><div class='add'>+</div><div class='add'>+  [ 'newarray',    %q{ ["true"][0] }, ],</div><div class='add'>+  [ 'duparray',    %q{ [ true ][0] }, ],</div><div class='add'>+  [ 'expandarray', %q{ y = [ true, false, nil ]; x, = y; x }, ],</div><div class='add'>+  [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z = y; x }, ],</div><div class='add'>+  [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z, w = y; x }, ],</div><div class='add'>+  [ 'splatarray',  %q{ x, = *(y = true), false; x }, ],</div><div class='add'>+  [ 'concatarray', %q{ ["t", "r", *x = "u", "e"].join }, ],</div><div class='add'>+  [ 'concatarray', &lt;&lt;~'},', ],  # {</div><div class='add'>+    class X; def to_a; ['u']; end; end</div><div class='add'>+    ['t', 'r', *X.new, 'e'].join</div><div class='add'>+  },</div><div class='add'>+  [ 'concatarray', &lt;&lt;~'},', ],  # {</div><div class='add'>+    r = false</div><div class='add'>+    t = [true, nil]</div><div class='add'>+    q, w, e = r, *t             # here</div><div class='add'>+    w</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'newhash',  %q{ x = {}; x[x] = true }, ],</div><div class='add'>+  [ 'newhash',  %q{ x = true; { x =&gt; x }[x] }, ],</div><div class='add'>+  [ 'newrange', %q{ x = 1; [*(0..x)][0] == 0 }, ],</div><div class='add'>+  [ 'newrange', %q{ x = 1; [*(0...x)][0] == 0 }, ],</div><div class='add'>+</div><div class='add'>+  [ 'pop',     %q{ def x; true; end; x }, ],</div><div class='add'>+  [ 'dup',     %q{ x = y = true; x }, ],</div><div class='add'>+  [ 'dupn',    %q{ Object::X ||= true }, ],</div><div class='add'>+  [ 'dupn',    %q{ Object::X ||= true }, ],</div><div class='add'>+  [ 'reverse', %q{ q, (w, e), r = 1, [2, 3], 4; e == 3 }, ],</div><div class='add'>+  [ 'swap',    &lt;&lt;~'},', ],      # {</div><div class='add'>+    x = [[false, true]]</div><div class='add'>+    for i, j in x               # here</div><div class='add'>+      ;</div><div class='add'>+    end</div><div class='add'>+    j</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'topn',        %q{ x, y = [], 0; x[*y], = [true, false]; x[0] }, ],</div><div class='add'>+  [ 'setn',        %q{ x, y = [], 0; x[*y]  =  true        ; x[0] }, ],</div><div class='add'>+  [ 'adjuststack', %q{ x = [true]; x[0] ||= nil; x[0] }, ],</div><div class='add'>+</div><div class='add'>+  [ 'defined',      %q{ !defined?(x) }, ],</div><div class='add'>+  [ 'checkkeyword', %q{ def x x:rand;x end; x x: true }, ],</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+    x = y = true</div><div class='add'>+    case x</div><div class='add'>+    when false</div><div class='add'>+      y = false</div><div class='add'>+    when true                   # here</div><div class='add'>+      y = nil</div><div class='add'>+    end</div><div class='add'>+    y == nil</div><div class='add'>+  },</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+    x, y = true, [false]</div><div class='add'>+    case x</div><div class='add'>+    when *y                     # here</div><div class='add'>+      z = false</div><div class='add'>+    else</div><div class='add'>+      z = true</div><div class='add'>+    end</div><div class='add'>+    z</div><div class='add'>+  },</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+    x = false</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue                      # here</div><div class='add'>+      x = true</div><div class='add'>+    end</div><div class='add'>+    x</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'defineclass', %q{                 module X;    true end }, ],</div><div class='add'>+  [ 'defineclass', %q{ X = Module.new; module X;    true end }, ],</div><div class='add'>+  [ 'defineclass', %q{                 class X;     true end }, ],</div><div class='add'>+  [ 'defineclass', %q{ X = Class.new;  class X;     true end }, ],</div><div class='add'>+  [ 'defineclass', %q{ X = Class.new;  class Y &lt; X; true end }, ],</div><div class='add'>+  [ 'defineclass', %q{ X = Class.new;  class &lt;&lt; X;  true end }, ],</div><div class='add'>+  [ 'defineclass', &lt;&lt;~'},', ], # {</div><div class='add'>+    X = Class.new</div><div class='add'>+    Y = Class.new(X)</div><div class='add'>+    class Y &lt; X</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_send_without_block', %q{ true.to_s }, ],</div><div class='add'>+  [ 'send',                   %q{ true.tap {|i| i.to_s } }, ],</div><div class='add'>+  [ 'leave',                  %q{ def x; true; end; x }, ],</div><div class='add'>+  [ 'invokesuper',            &lt;&lt;~'},', ], # {</div><div class='add'>+    class X &lt; String</div><div class='add'>+      def empty?</div><div class='add'>+        super                   # here</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+   X.new.empty?</div><div class='add'>+  },</div><div class='add'>+  [ 'invokeblock',            &lt;&lt;~'},', ], # {</div><div class='add'>+    def x</div><div class='add'>+      return yield self         # here</div><div class='add'>+    end</div><div class='add'>+    x do</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_str_freeze', %q{ 'true'.freeze }, ],</div><div class='add'>+  [ 'opt_str_uminus', %q{ -'true' }, ],</div><div class='add'>+  [ 'opt_str_freeze', &lt;&lt;~'},', ], # {</div><div class='add'>+    class String</div><div class='add'>+      def freeze</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    'true'.freeze</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_newarray_max', %q{ [ ].max.nil? }, ],</div><div class='add'>+  [ 'opt_newarray_max', %q{ [1, x = 2, 3].max == 3 }, ],</div><div class='add'>+  [ 'opt_newarray_max', &lt;&lt;~'},', ], # {</div><div class='add'>+    class Array</div><div class='add'>+      def max</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    [1, x = 2, 3].max</div><div class='add'>+  },</div><div class='add'>+  [ 'opt_newarray_min', %q{ [ ].min.nil? }, ],</div><div class='add'>+  [ 'opt_newarray_min', %q{ [3, x = 2, 1].min == 1 }, ],</div><div class='add'>+  [ 'opt_newarray_min', &lt;&lt;~'},', ], # {</div><div class='add'>+    class Array</div><div class='add'>+      def min</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    [3, x = 2, 1].min</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'throw',        %q{ false.tap { break true } }, ],</div><div class='add'>+  [ 'branchif',     %q{ x = nil;  x ||= true }, ],</div><div class='add'>+  [ 'branchif',     %q{ x = true; x ||= nil; x }, ],</div><div class='add'>+  [ 'branchunless', %q{ x = 1;    x &amp;&amp;= true }, ],</div><div class='add'>+  [ 'branchunless', %q{ x = nil;  x &amp;&amp;= true; x.nil? }, ],</div><div class='add'>+  [ 'branchnil',    %q{ x = true; x&amp;.to_s }, ],</div><div class='add'>+  [ 'branchnil',    %q{ x = nil;  (x&amp;.to_s).nil? }, ],</div><div class='add'>+  [ 'jump',         &lt;&lt;~'},', ], # {</div><div class='add'>+    y = 1</div><div class='add'>+    x = if y == 0 then nil elsif y == 1 then true else nil end</div><div class='add'>+    x</div><div class='add'>+  },</div><div class='add'>+  [ 'jump',         &lt;&lt;~'},', ], # {</div><div class='add'>+    # ultra complicated situation: this ||= assignment only generates</div><div class='add'>+    # 15 instructions, not including the class definition.</div><div class='add'>+    class X; attr_accessor :x; end</div><div class='add'>+    x = X.new</div><div class='add'>+    x&amp;.x ||= true               # here</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'once', %q{ /#{true}/o =~ "true" &amp;&amp; $~ }, ],</div><div class='add'>+  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+    def once expr</div><div class='add'>+      return /#{expr}/o         # here</div><div class='add'>+    end</div><div class='add'>+    x = once(true); x = once(false); x = once(nil);</div><div class='add'>+    x =~ "true" &amp;&amp; $~</div><div class='add'>+  },</div><div class='add'>+  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+    # recursive once</div><div class='add'>+    def once n</div><div class='add'>+      return %r/#{</div><div class='add'>+        if n == 0</div><div class='add'>+          true</div><div class='add'>+        else</div><div class='add'>+          once(n-1)             # here</div><div class='add'>+        end</div><div class='add'>+      }/ox</div><div class='add'>+    end</div><div class='add'>+    x = once(128); x = once(7); x = once(16);</div><div class='add'>+    x =~ "true" &amp;&amp; $~</div><div class='add'>+  },</div><div class='add'>+  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+    # inter-thread lockup situation</div><div class='add'>+    def once n</div><div class='add'>+      return Thread.start n do |m|</div><div class='add'>+        Thread.pass</div><div class='add'>+        next %r/#{</div><div class='add'>+          sleep m               # here</div><div class='add'>+          true</div><div class='add'>+        }/ox</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    x = once(1); y = once(0.1); z = y.value</div><div class='add'>+    z =~ "true" &amp;&amp; $~</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_case_dispatch', %q{ case   0 when 1.1 then false else true end }, ],</div><div class='add'>+  [ 'opt_case_dispatch', %q{ case 1.0 when 1.1 then false else true end }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_plus',    %q{ 1 + 1 == 2 }, ],</div><div class='add'>+  if defined? $FIXNUM_MAX then</div><div class='add'>+    [ 'opt_plus',  %Q{ #{ $FIXNUM_MAX } + 1 == #{ $FIXNUM_MAX + 1 } }, ]</div><div class='add'>+  end,</div><div class='add'>+  [ 'opt_plus',    %q{ 1.0 + 1.0 == 2.0 }, ],</div><div class='add'>+  [ 'opt_plus',    %q{ x = +0.0.next_float; x + x &gt;= x }, ],</div><div class='add'>+  [ 'opt_plus',    %q{ 't' + 'rue' }, ],</div><div class='add'>+  [ 'opt_plus',    %q{ ( ['t'] + ['r', ['u', ['e'], ], ] ).join }, ],</div><div class='add'>+  [ 'opt_plus',    %q{ Time.at(1) + 1 == Time.at(2) }, ],</div><div class='add'>+  [ 'opt_minus',   %q{ 1 - 1 == 0 }, ],</div><div class='add'>+  if defined? $FIXNUM_MIN then</div><div class='add'>+    [ 'opt_minus', %Q{ #{ $FIXNUM_MIN } - 1 == #{ $FIXNUM_MIN - 1 } }, ]</div><div class='add'>+  end,</div><div class='add'>+  [ 'opt_minus',   %q{ 1.0 - 1.0 == 0.0 }, ],</div><div class='add'>+  [ 'opt_minus',   %q{ x = -0.0.prev_float; x - x == 0.0 }, ],</div><div class='add'>+  [ 'opt_minus',   %q{ ( [false, true] - [false] )[0] }, ],</div><div class='add'>+  [ 'opt_mult',    %q{ 1 * 1 == 1 }, ],</div><div class='add'>+  [ 'opt_mult',    %q{ 1.0 * 1.0 == 1.0 }, ],</div><div class='add'>+  [ 'opt_mult',    %q{ x = +0.0.next_float; x * x &lt;= x }, ],</div><div class='add'>+  [ 'opt_mult',    %q{ ( "ruet" * 3 )[7,4] }, ],</div><div class='add'>+  [ 'opt_div',     %q{ 1 / 1 == 1 }, ],</div><div class='add'>+  [ 'opt_div',     %q{ 1.0 / 1.0 == 1.0 }, ],</div><div class='add'>+  [ 'opt_div',     %q{ x = +0.0.next_float; x / x &gt;= x }, ],</div><div class='add'>+  [ 'opt_div',     %q{ x = 1/2r; x / x == 1 }, ],</div><div class='add'>+  [ 'opt_mod',     %q{ 1 % 1 == 0 }, ],</div><div class='add'>+  [ 'opt_mod',     %q{ 1.0 % 1.0 == 0.0 }, ],</div><div class='add'>+  [ 'opt_mod',     %q{ x = +0.0.next_float; x % x == 0.0 }, ],</div><div class='add'>+  [ 'opt_mod',     %q{ '%s' % [ true ] }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_eq', %q{ 1 == 1 }, ],</div><div class='add'>+  [ 'opt_eq', &lt;&lt;~'},', ],       # {</div><div class='add'>+    class X; def == other; true; end; end</div><div class='add'>+    X.new == true</div><div class='add'>+  },</div><div class='add'>+  [ 'opt_neq', %q{ 1 != 0 }, ],</div><div class='add'>+  [ 'opt_neq', &lt;&lt;~'},', ],       # {</div><div class='add'>+    class X; def != other; true; end; end</div><div class='add'>+    X.new != true</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_lt', %q{            -1   &lt;  0 }, ],</div><div class='add'>+  [ 'opt_lt', %q{            -1.0 &lt;  0.0 }, ],</div><div class='add'>+  [ 'opt_lt', %q{ -0.0.prev_float &lt;  0.0 }, ],</div><div class='add'>+  [ 'opt_lt', %q{              ?a &lt;  ?z }, ],</div><div class='add'>+  [ 'opt_le', %q{            -1   &lt;= 0 }, ],</div><div class='add'>+  [ 'opt_le', %q{            -1.0 &lt;= 0.0 }, ],</div><div class='add'>+  [ 'opt_le', %q{ -0.0.prev_float &lt;= 0.0 }, ],</div><div class='add'>+  [ 'opt_le', %q{              ?a &lt;= ?z }, ],</div><div class='add'>+  [ 'opt_gt', %q{             1   &gt;  0 }, ],</div><div class='add'>+  [ 'opt_gt', %q{             1.0 &gt;  0.0 }, ],</div><div class='add'>+  [ 'opt_gt', %q{ +0.0.next_float &gt;  0.0 }, ],</div><div class='add'>+  [ 'opt_gt', %q{              ?z &gt;  ?a }, ],</div><div class='add'>+  [ 'opt_ge', %q{             1   &gt;= 0 }, ],</div><div class='add'>+  [ 'opt_ge', %q{             1.0 &gt;= 0.0 }, ],</div><div class='add'>+  [ 'opt_ge', %q{ +0.0.next_float &gt;= 0.0 }, ],</div><div class='add'>+  [ 'opt_ge', %q{              ?z &gt;= ?a }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_ltlt', %q{  '' &lt;&lt; 'true' }, ],</div><div class='add'>+  [ 'opt_ltlt', %q{ ([] &lt;&lt; 'true').join }, ],</div><div class='add'>+  [ 'opt_ltlt', %q{ (1 &lt;&lt; 31) == 2147483648 }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_aref', %q{ ['true'][0] }, ],</div><div class='add'>+  [ 'opt_aref', %q{ { 0 =&gt; 'true'}[0] }, ],</div><div class='add'>+  [ 'opt_aref', %q{ 'true'[0] == ?t }, ],</div><div class='add'>+  [ 'opt_aset', %q{ [][0] = true }, ],</div><div class='add'>+  [ 'opt_aset', %q{ {}[0] = true }, ],</div><div class='add'>+  [ 'opt_aset', %q{ x = 'frue'; x[0] = 't'; x }, ],</div><div class='add'>+  [ 'opt_aset', &lt;&lt;~'},', ], # {</div><div class='add'>+    # opt_aref / opt_aset mixup situation</div><div class='add'>+    class X; def x; {}; end; end</div><div class='add'>+    x = X.new</div><div class='add'>+    x&amp;.x[true] ||= true         # here</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_aref_with', %q{ { 'true' =&gt; true }['true'] }, ],</div><div class='add'>+  [ 'opt_aref_with', %q{ Struct.new(:nil).new['nil'].nil? }, ],</div><div class='add'>+  [ 'opt_aset_with', %q{ {}['true'] = true }, ],</div><div class='add'>+  [ 'opt_aset_with', %q{ Struct.new(:true).new['true'] = true }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_length',  %q{   'true'       .length == 4 }, ],</div><div class='add'>+  [ 'opt_length',  %q{   :true        .length == 4 }, ],</div><div class='add'>+  [ 'opt_length',  %q{ [ 'true' ]     .length == 1 }, ],</div><div class='add'>+  [ 'opt_length',  %q{ { 'true' =&gt; 1 }.length == 1 }, ],</div><div class='add'>+  [ 'opt_size',    %q{   'true'       .size   == 4 }, ],</div><div class='add'>+  [ 'opt_size',    %q{               1.size   &gt;= 4 }, ],</div><div class='add'>+  [ 'opt_size',    %q{ [ 'true' ]     .size   == 1 }, ],</div><div class='add'>+  [ 'opt_size',    %q{ { 'true' =&gt; 1 }.size   == 1 }, ],</div><div class='add'>+  [ 'opt_empty_p', %q{ ''.empty? }, ],</div><div class='add'>+  [ 'opt_empty_p', %q{ [].empty? }, ],</div><div class='add'>+  [ 'opt_empty_p', %q{ {}.empty? }, ],</div><div class='add'>+  [ 'opt_empty_p', %q{ Queue.new.empty? }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_succ',  %q{ 1.succ == 2 }, ],</div><div class='add'>+  if defined? $FIXNUM_MAX then</div><div class='add'>+    [ 'opt_succ',%Q{ #{ $FIXNUM_MAX }.succ == #{ $FIXNUM_MAX + 1 } }, ]</div><div class='add'>+  end,</div><div class='add'>+  [ 'opt_succ',  %q{ '1'.succ == '2' }, ],</div><div class='add'>+  [ 'opt_succ',  %q{ x = Time.at(0); x.succ == Time.at(1) }, ],</div><div class='add'>+</div><div class='add'>+  [ 'opt_not',  %q{ ! false }, ],</div><div class='add'>+  [ 'opt_neq', &lt;&lt;~'},', ],       # {</div><div class='add'>+    class X; def !; true; end; end</div><div class='add'>+    ! X.new</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+  [ 'opt_regexpmatch1',  %q{ /true/ =~ 'true' &amp;&amp; $~ }, ],</div><div class='add'>+  [ 'opt_regexpmatch1', &lt;&lt;~'},', ],       # {</div><div class='add'>+    class Regexp; def =~ other; true; end; end</div><div class='add'>+    /true/ =~ 'true'</div><div class='add'>+  },</div><div class='add'>+  [ 'opt_regexpmatch2',  %q{ 'true' =~ /true/ &amp;&amp; $~ }, ],</div><div class='add'>+  [ 'opt_regexpmatch2', &lt;&lt;~'},', ],       # {</div><div class='add'>+    class String; def =~ other; true; end; end</div><div class='add'>+    'true' =~ /true/</div><div class='add'>+  },</div><div class='add'>+]</div><div class='add'>+</div><div class='add'>+tests.compact.each {|(insn, expr, *a)| assert_equal 'true', expr, insn, *a }</div><div class='head'>diff --git a/bootstraptest/test_io.rb b/bootstraptest/test_io.rb<br/>new file mode 100644<br/>index 0000000000..89c00d0b88<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_io.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_io.rb</a></div><div class='hunk'>@@ -0,0 +1,112 @@</div><div class='add'>+assert_finish 5, %q{</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  t1 = Thread.new { r.sysread(1) }</div><div class='add'>+  t2 = Thread.new { r.sysread(1) }</div><div class='add'>+  sleep 0.01 until t1.stop? and t2.stop?</div><div class='add'>+  w.write "a"</div><div class='add'>+  w.write "a"</div><div class='add'>+}, '[ruby-dev:31866]'</div><div class='add'>+</div><div class='add'>+assert_finish 10, %q{</div><div class='add'>+  begin</div><div class='add'>+    require "io/nonblock"</div><div class='add'>+    require "timeout"</div><div class='add'>+    timeout(3) do</div><div class='add'>+      r, w = IO.pipe</div><div class='add'>+      w.nonblock?</div><div class='add'>+      w.nonblock = true</div><div class='add'>+      w.write_nonblock("a" * 100000)</div><div class='add'>+      w.nonblock = false</div><div class='add'>+      t1 = Thread.new { w.write("b" * 4096) }</div><div class='add'>+      t2 = Thread.new { w.write("c" * 4096) }</div><div class='add'>+      sleep 0.5</div><div class='add'>+      r.sysread(4096).length</div><div class='add'>+      sleep 0.5</div><div class='add'>+      r.sysread(4096).length</div><div class='add'>+      t1.join</div><div class='add'>+      t2.join</div><div class='add'>+    end</div><div class='add'>+  rescue LoadError, Timeout::Error, NotImplementedError</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:32566]'</div><div class='add'>+</div><div class='add'>+assert_finish 1, %q{</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  Thread.new {</div><div class='add'>+    w &lt;&lt; "ab"</div><div class='add'>+    sleep 0.01</div><div class='add'>+    w &lt;&lt; "ab"</div><div class='add'>+  }</div><div class='add'>+  r.gets("abab")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  require 'tmpdir'</div><div class='add'>+  begin</div><div class='add'>+    tmpname = "#{Dir.tmpdir}/ruby-btest-#{$$}-#{rand(0x100000000).to_s(36)}"</div><div class='add'>+    rw = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL)</div><div class='add'>+  rescue Errno::EEXIST</div><div class='add'>+    retry</div><div class='add'>+  end</div><div class='add'>+  save = STDIN.dup</div><div class='add'>+  STDIN.reopen(rw)</div><div class='add'>+  STDIN.reopen(save)</div><div class='add'>+  rw.close</div><div class='add'>+  File.unlink(tmpname)</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  require 'tmpdir'</div><div class='add'>+  begin</div><div class='add'>+    tmpname = "#{Dir.tmpdir}/ruby-btest-#{$$}-#{rand(0x100000000).to_s(36)}"</div><div class='add'>+    rw = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL)</div><div class='add'>+  rescue Errno::EEXIST</div><div class='add'>+    retry</div><div class='add'>+  end</div><div class='add'>+  save = STDIN.dup</div><div class='add'>+  STDIN.reopen(rw)</div><div class='add'>+  STDIN.print "a"</div><div class='add'>+  STDIN.reopen(save)</div><div class='add'>+  rw.close</div><div class='add'>+  File.unlink(tmpname)</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  dup = STDIN.dup</div><div class='add'>+  dupfd = dup.fileno</div><div class='add'>+  dupfd == STDIN.dup.fileno ? :ng : :ok</div><div class='add'>+}, '[ruby-dev:46834]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  ARGF.set_encoding "foo"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+10.times do</div><div class='add'>+  assert_normal_exit %q{</div><div class='add'>+    at_exit { p :foo }</div><div class='add'>+</div><div class='add'>+    megacontent = "abc" * 12345678</div><div class='add'>+    #File.open("megasrc", "w") {|f| f &lt;&lt; megacontent }</div><div class='add'>+</div><div class='add'>+    t0 = Thread.main</div><div class='add'>+    Thread.new { sleep 0.001 until t0.stop?; Process.kill(:INT, $$) }</div><div class='add'>+</div><div class='add'>+    r1, w1 = IO.pipe</div><div class='add'>+    r2, w2 = IO.pipe</div><div class='add'>+    t1 = Thread.new { w1 &lt;&lt; megacontent; w1.close }</div><div class='add'>+    t2 = Thread.new { r2.read; r2.close }</div><div class='add'>+    IO.copy_stream(r1, w2) rescue nil</div><div class='add'>+    w2.close</div><div class='add'>+    r1.close</div><div class='add'>+    t1.join</div><div class='add'>+    t2.join</div><div class='add'>+  }, 'megacontent-copy_stream', ["INT"], :timeout =&gt; 10 or break</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  r, w = IO.pipe</div><div class='add'>+  STDOUT.reopen(w)</div><div class='add'>+  STDOUT.reopen(__FILE__, "r")</div><div class='add'>+}, '[ruby-dev:38131]'</div><div class='head'>diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb<br/>new file mode 100644<br/>index 0000000000..595aaa7c4b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_jump.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_jump.rb</a></div><div class='hunk'>@@ -0,0 +1,308 @@</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    :ng1</div><div class='add'>+    mm{</div><div class='add'>+      yield</div><div class='add'>+    }</div><div class='add'>+    :ng2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mm</div><div class='add'>+    :ng3</div><div class='add'>+    yield</div><div class='add'>+    :ng4</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    break :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  3.times{</div><div class='add'>+    break :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    throw :foo</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{false}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    throw :foo, false</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    throw :foo, nil</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    throw :foo, :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    1.times{</div><div class='add'>+      throw :foo</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    1.times{</div><div class='add'>+      throw :foo, :ok</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    catch(:bar){</div><div class='add'>+      throw :foo, :ok</div><div class='add'>+    }</div><div class='add'>+    :ng</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  catch(:foo){</div><div class='add'>+    catch(:bar){</div><div class='add'>+      1.times{</div><div class='add'>+        throw :foo, :ok</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    :ng</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{2}, %q{</div><div class='add'>+  module Enumerable</div><div class='add'>+    def all_?</div><div class='add'>+      self.each{|e|</div><div class='add'>+        unless yield(e)</div><div class='add'>+          return false</div><div class='add'>+        end</div><div class='add'>+      }</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  xxx = 0</div><div class='add'>+  [1,2].each{|bi|</div><div class='add'>+    [3,4].each{|bj|</div><div class='add'>+      [true, nil, true].all_?{|be| be}</div><div class='add'>+      break</div><div class='add'>+    }</div><div class='add'>+    xxx += 1</div><div class='add'>+  }</div><div class='add'>+  xxx</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    begin</div><div class='add'>+    ensure</div><div class='add'>+      break :ok</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+  i=0</div><div class='add'>+  m{</div><div class='add'>+    if i&gt;10</div><div class='add'>+      i*i</div><div class='add'>+    else</div><div class='add'>+      i+=1</div><div class='add'>+      next</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    next :ok</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{131}, %q{</div><div class='add'>+  def m</div><div class='add'>+    yield + 10</div><div class='add'>+  end</div><div class='add'>+  i=0</div><div class='add'>+  m{</div><div class='add'>+    if i&gt;10</div><div class='add'>+      i*i</div><div class='add'>+    else</div><div class='add'>+      i+=1</div><div class='add'>+      redo</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+begin</div><div class='add'>+  eval %q{</div><div class='add'>+    1.times{</div><div class='add'>+      retry</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+rescue SyntaxError</div><div class='add'>+  :ok</div><div class='add'>+end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  def m</div><div class='add'>+    return 3</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    :ng1</div><div class='add'>+    mm{</div><div class='add'>+      return :ok</div><div class='add'>+    }</div><div class='add'>+    :ng2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mm</div><div class='add'>+    :ng3</div><div class='add'>+    yield</div><div class='add'>+    :ng4</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{100}, %q{</div><div class='add'>+  $i = 0</div><div class='add'>+  def m</div><div class='add'>+    begin</div><div class='add'>+      iter{</div><div class='add'>+        return</div><div class='add'>+      }</div><div class='add'>+    ensure</div><div class='add'>+      $i = 100</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def iter</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+  $i</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  def m</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue</div><div class='add'>+      return :ok</div><div class='add'>+    end</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def m</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+    rescue</div><div class='add'>+      return 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def m</div><div class='add'>+    begin</div><div class='add'>+      #</div><div class='add'>+    ensure</div><div class='add'>+      return 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    catch {|t| throw t, :ok }</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31609]'</div><div class='add'>+</div><div class='add'>+assert_equal "1", %q{</div><div class='add'>+  catch do |t|</div><div class='add'>+    begin</div><div class='add'>+      throw t, 1</div><div class='add'>+      2</div><div class='add'>+    ensure</div><div class='add'>+      3</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, "[ruby-dev:31698]"</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  f = 0</div><div class='add'>+  1.times do</div><div class='add'>+    begin</div><div class='add'>+      f += 1</div><div class='add'>+    ensure</div><div class='add'>+      redo unless f &gt; 2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  -&gt; do</div><div class='add'>+    1.times do</div><div class='add'>+      begin</div><div class='add'>+        raise</div><div class='add'>+      rescue</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end.call</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  while true</div><div class='add'>+    begin</div><div class='add'>+      raise</div><div class='add'>+      next</div><div class='add'>+    rescue</div><div class='add'>+    end</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:28172]'</div><div class='add'>+</div><div class='add'>+assert_equal "true", %q{</div><div class='add'>+  class Object</div><div class='add'>+    def return_eigenclass</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        return self</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  s = "foo"</div><div class='add'>+  s.return_eigenclass == class &lt;&lt; s; self; end</div><div class='add'>+}, '[ruby-core:21379]'</div><div class='add'>+</div><div class='add'>+assert_equal "true", %q{</div><div class='add'>+  class Object</div><div class='add'>+    def yield_eigenclass</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        yield self</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  s = "foo"</div><div class='add'>+  s.yield_eigenclass {|c| c == class &lt;&lt; s; self; end }</div><div class='add'>+}, '[ruby-dev:40975]'</div><div class='head'>diff --git a/bootstraptest/test_literal.rb b/bootstraptest/test_literal.rb<br/>new file mode 100644<br/>index 0000000000..9b3c10d519<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_literal.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_literal.rb</a></div><div class='hunk'>@@ -0,0 +1,247 @@</div><div class='add'>+# empty program</div><div class='add'>+assert_equal '',                ''</div><div class='add'>+assert_equal '',                ' '</div><div class='add'>+assert_equal '',                "\n"</div><div class='add'>+</div><div class='add'>+# special const</div><div class='add'>+assert_equal 'true',            'true'</div><div class='add'>+assert_equal 'TrueClass',       'true.class'</div><div class='add'>+assert_equal 'false',           'false'</div><div class='add'>+assert_equal 'FalseClass',      'false.class'</div><div class='add'>+assert_equal '',                'nil'</div><div class='add'>+assert_equal 'nil',             'nil.inspect'</div><div class='add'>+assert_equal 'NilClass',        'nil.class'</div><div class='add'>+assert_equal 'sym',             ':sym'</div><div class='add'>+assert_equal ':sym',            ':sym.inspect'</div><div class='add'>+assert_equal 'Symbol',          ':sym.class'</div><div class='add'>+assert_equal '1234',            '1234'</div><div class='add'>+assert_equal 'Integer',         '1234.class'</div><div class='add'>+assert_equal '1234',            '1_2_3_4'</div><div class='add'>+assert_equal 'Integer',         '1_2_3_4.class'</div><div class='add'>+assert_equal '18',              '0x12'</div><div class='add'>+assert_equal 'Integer',         '0x12.class'</div><div class='add'>+assert_equal '15',              '0o17'</div><div class='add'>+assert_equal 'Integer',         '0o17.class'</div><div class='add'>+assert_equal '5',               '0b101'</div><div class='add'>+assert_equal 'Integer',         '0b101.class'</div><div class='add'>+assert_equal '123456789012345678901234567890', '123456789012345678901234567890'</div><div class='add'>+assert_equal 'Integer',         '123456789012345678901234567890.class'</div><div class='add'>+assert_equal '2.0',             '2.0'</div><div class='add'>+assert_equal 'Float',           '1.3.class'</div><div class='add'>+</div><div class='add'>+# self</div><div class='add'>+assert_equal 'main',            'self'</div><div class='add'>+assert_equal 'Object',          'self.class'</div><div class='add'>+</div><div class='add'>+# string literal</div><div class='add'>+assert_equal 'a',               '?a'</div><div class='add'>+assert_equal 'String',          '?a.class'</div><div class='add'>+assert_equal 'A',               '?A'</div><div class='add'>+assert_equal 'String',          '?A.class'</div><div class='add'>+assert_equal "\n",              '?\n'</div><div class='add'>+assert_equal 'String',          '?\n.class'</div><div class='add'>+assert_equal ' ',               '?\ '</div><div class='add'>+assert_equal 'String',          '?\ .class'</div><div class='add'>+assert_equal 'string',          "'string'"</div><div class='add'>+assert_equal 'string',          '"string"'</div><div class='add'>+assert_equal 'string',          '%(string)'</div><div class='add'>+assert_equal 'string',          '%q(string)'</div><div class='add'>+assert_equal 'string',          '%Q(string)'</div><div class='add'>+assert_equal 'string string',   '"string string"'</div><div class='add'>+assert_equal ' ',               '" "'</div><div class='add'>+assert_equal "\0",              '"\0"'</div><div class='add'>+assert_equal "\1",              '"\1"'</div><div class='add'>+assert_equal "3",               '"\x33"'</div><div class='add'>+assert_equal "\n",              '"\n"'</div><div class='add'>+</div><div class='add'>+# dynamic string literal</div><div class='add'>+assert_equal '2',               '"#{1 + 1}"'</div><div class='add'>+assert_equal '16',              '"#{2 ** 4}"'</div><div class='add'>+assert_equal 'string',          's = "string"; "#{s}"'</div><div class='add'>+</div><div class='add'>+# dynamic symbol literal</div><div class='add'>+assert_equal 'a3c',             ':"a#{1+2}c"'</div><div class='add'>+assert_equal ':a3c',            ':"a#{1+2}c".inspect'</div><div class='add'>+assert_equal 'Symbol',          ':"a#{1+2}c".class'</div><div class='add'>+</div><div class='add'>+# xstring</div><div class='add'>+assert_equal "foo\n",           %q(`echo foo`)</div><div class='add'>+assert_equal "foo\n",           %q(s = "foo"; `echo #{s}`)</div><div class='add'>+</div><div class='add'>+# regexp</div><div class='add'>+assert_equal '',                '//.source'</div><div class='add'>+assert_equal 'Regexp',          '//.class'</div><div class='add'>+assert_equal '0',               '// =~ "a"'</div><div class='add'>+assert_equal '0',               '// =~ ""'</div><div class='add'>+assert_equal 'a',               '/a/.source'</div><div class='add'>+assert_equal 'Regexp',          '/a/.class'</div><div class='add'>+assert_equal '0',               '/a/ =~ "a"'</div><div class='add'>+assert_equal '0',               '/test/ =~ "test"'</div><div class='add'>+assert_equal '',                '/test/ =~ "tes"'</div><div class='add'>+assert_equal '0',               're = /test/; re =~ "test"'</div><div class='add'>+assert_equal '0',               'str = "test"; /test/ =~ str'</div><div class='add'>+assert_equal '0',               're = /test/; str = "test"; re =~ str'</div><div class='add'>+</div><div class='add'>+# dynamic regexp</div><div class='add'>+assert_equal 'regexp',          %q(/re#{'ge'}xp/.source)</div><div class='add'>+assert_equal 'Regexp',          %q(/re#{'ge'}xp/.class)</div><div class='add'>+</div><div class='add'>+# array</div><div class='add'>+assert_equal 'Array',           '[].class'</div><div class='add'>+assert_equal '0',               '[].size'</div><div class='add'>+assert_equal '0',               '[].length'</div><div class='add'>+assert_equal '[]',              '[].inspect'</div><div class='add'>+assert_equal 'Array',           '[0].class'</div><div class='add'>+assert_equal '1',               '[3].size'</div><div class='add'>+assert_equal '[3]',             '[3].inspect'</div><div class='add'>+assert_equal '3',               'a = [3]; a[0]'</div><div class='add'>+assert_equal 'Array',           '[1,2].class'</div><div class='add'>+assert_equal '2',               '[1,2].size'</div><div class='add'>+assert_equal '[1, 2]',          '[1,2].inspect'</div><div class='add'>+assert_equal 'Array',           '[1,2,3,4,5].class'</div><div class='add'>+assert_equal '5',               '[1,2,3,4,5].size'</div><div class='add'>+assert_equal '[1, 2, 3, 4, 5]', '[1,2,3,4,5].inspect'</div><div class='add'>+assert_equal '1',               'a = [1,2]; a[0]'</div><div class='add'>+assert_equal '2',               'a = [1,2]; a[1]'</div><div class='add'>+assert_equal 'Array',           'a = [1 + 2, 3 + 4, 5 + 6]; a.class'</div><div class='add'>+assert_equal '[3, 7, 11]',      'a = [1 + 2, 3 + 4, 5 + 6]; a.inspect'</div><div class='add'>+assert_equal '7',               'a = [1 + 2, 3 + 4, 5 + 6]; a[1]'</div><div class='add'>+assert_equal '1',               '([0][0] += 1)'</div><div class='add'>+assert_equal '1',               '([2][0] -= 1)'</div><div class='add'>+assert_equal 'Array',           'a = [obj = Object.new]; a.class'</div><div class='add'>+assert_equal '1',               'a = [obj = Object.new]; a.size'</div><div class='add'>+assert_equal 'true',            'a = [obj = Object.new]; a[0] == obj'</div><div class='add'>+assert_equal '5',               'a = [1,2,3]; a[1] = 5; a[1]'</div><div class='add'>+assert_equal 'bar',             '[*:foo];:bar'</div><div class='add'>+assert_equal '[1, 2]',          'def nil.to_a; [2]; end; [1, *nil]'</div><div class='add'>+assert_equal '[1, 2]',          'def nil.to_a; [1, 2]; end; [*nil]'</div><div class='add'>+assert_equal '[0, 1, {2=&gt;3}]',  '[0, *[1], 2=&gt;3]', "[ruby-dev:31592]"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+# hash</div><div class='add'>+assert_equal 'Hash',            '{}.class'</div><div class='add'>+assert_equal '{}',              '{}.inspect'</div><div class='add'>+assert_equal 'Hash',            '{1=&gt;2}.class'</div><div class='add'>+assert_equal '{1=&gt;2}',          '{1=&gt;2}.inspect'</div><div class='add'>+assert_equal '2',               'h = {1 =&gt; 2}; h[1]'</div><div class='add'>+assert_equal '0',               'h = {1 =&gt; 2}; h.delete(1); h.size'</div><div class='add'>+assert_equal '',                'h = {1 =&gt; 2}; h.delete(1); h[1]'</div><div class='add'>+assert_equal '2',               'h = {"string" =&gt; "literal", "goto" =&gt; "hell"}; h.size'</div><div class='add'>+assert_equal 'literal', 'h = {"string"=&gt;"literal", "goto"=&gt;"hell"}; h["string"]'</div><div class='add'>+assert_equal 'hell', 'h = {"string"=&gt;"literal", "goto"=&gt;"hell"}; h["goto"]'</div><div class='add'>+</div><div class='add'>+# range</div><div class='add'>+assert_equal 'Range',           '(1..2).class'</div><div class='add'>+assert_equal '1..2',            '(1..2).inspect'</div><div class='add'>+assert_equal '1',               '(1..2).begin'</div><div class='add'>+assert_equal '2',               '(1..2).end'</div><div class='add'>+assert_equal 'false',           '(1..2).exclude_end?'</div><div class='add'>+assert_equal 'Range',           'r = 1..2; r.class'</div><div class='add'>+assert_equal '1..2',            'r = 1..2; r.inspect'</div><div class='add'>+assert_equal '1',               'r = 1..2; r.begin'</div><div class='add'>+assert_equal '2',               'r = 1..2; r.end'</div><div class='add'>+assert_equal 'false',           'r = 1..2; r.exclude_end?'</div><div class='add'>+assert_equal 'Range',           '(1...3).class'</div><div class='add'>+assert_equal '1...3',           '(1...3).inspect'</div><div class='add'>+assert_equal '1',               '(1...3).begin'</div><div class='add'>+assert_equal '3',               '(1...3).end'</div><div class='add'>+assert_equal 'true',            '(1...3).exclude_end?'</div><div class='add'>+assert_equal 'Range',           'r = (1...3); r.class'</div><div class='add'>+assert_equal '1...3',           'r = (1...3); r.inspect'</div><div class='add'>+assert_equal '1',               'r = (1...3); r.begin'</div><div class='add'>+assert_equal '3',               'r = (1...3); r.end'</div><div class='add'>+assert_equal 'true',            'r = (1...3); r.exclude_end?'</div><div class='add'>+assert_equal 'Range',           'r = (1+2 .. 3+4); r.class'</div><div class='add'>+assert_equal '3..7',            'r = (1+2 .. 3+4); r.inspect'</div><div class='add'>+assert_equal '3',               'r = (1+2 .. 3+4); r.begin'</div><div class='add'>+assert_equal '7',               'r = (1+2 .. 3+4); r.end'</div><div class='add'>+assert_equal 'false',           'r = (1+2 .. 3+4); r.exclude_end?'</div><div class='add'>+assert_equal 'Range',           'r = (1+2 ... 3+4); r.class'</div><div class='add'>+assert_equal '3...7',           'r = (1+2 ... 3+4); r.inspect'</div><div class='add'>+assert_equal '3',               'r = (1+2 ... 3+4); r.begin'</div><div class='add'>+assert_equal '7',               'r = (1+2 ... 3+4); r.end'</div><div class='add'>+assert_equal 'true',            'r = (1+2 ... 3+4); r.exclude_end?'</div><div class='add'>+assert_equal 'Range',           'r = ("a".."c"); r.class'</div><div class='add'>+assert_equal '"a".."c"',        'r = ("a".."c"); r.inspect'</div><div class='add'>+assert_equal 'a',               'r = ("a".."c"); r.begin'</div><div class='add'>+assert_equal 'c',               'r = ("a".."c"); r.end'</div><div class='add'>+</div><div class='add'>+assert_equal 'String',          '__FILE__.class'</div><div class='add'>+assert_equal 'Integer',         '__LINE__.class'</div><div class='add'>+</div><div class='add'>+###</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # this cause "called on terminated object".</div><div class='add'>+  ObjectSpace.each_object(Module) {|m| m.name.inspect }</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    r = 0**-1</div><div class='add'>+    r + r</div><div class='add'>+  rescue</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:34524]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    r = Marshal.load("\x04\bU:\rRational[\ai\x06i\x05")</div><div class='add'>+    r + r</div><div class='add'>+  rescue</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:34536]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "#{}""#{}ok"</div><div class='add'>+}, '[ruby-dev:38968]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "#{}o""#{}k""#{}"</div><div class='add'>+}, '[ruby-core:25284]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{ #  long array literal</div><div class='add'>+  x = nil</div><div class='add'>+  eval "a = [#{(1..10_000).map{'x'}.join(", ")}]"</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{ #  long array literal (optimized)</div><div class='add'>+  eval "a = [#{(1..10_000).to_a.join(", ")}]"</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{ #  long hash literal</div><div class='add'>+  x = nil</div><div class='add'>+  eval "a = {#{(1..10_000).map{|n| "#{n} =&gt; x"}.join(', ')}}"</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{ #  long hash literal (optimized)</div><div class='add'>+  eval "a = {#{(1..10_000).map{|n| "#{n} =&gt; #{n}"}.join(', ')}}"</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{ #  Bug #15536</div><div class='add'>+  eval &lt;&lt;-END</div><div class='add'>+    {</div><div class='add'>+      **{</div><div class='add'>+        a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,</div><div class='add'>+      },</div><div class='add'>+      a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,</div><div class='add'>+      **{</div><div class='add'>+        c: nil</div><div class='add'>+      },</div><div class='add'>+      b0: nil, b1: nil, b2: nil, b3: nil, b4: nil, b5: nil, b6: nil, b7: nil, b8: nil,</div><div class='add'>+      b9: nil, b10: nil, b11: nil, b12: nil, b13: nil, b14: nil, b15: nil, b16: nil,</div><div class='add'>+      b17: nil, b18: nil, b19: nil, b20: nil, b21: nil,</div><div class='add'>+    }</div><div class='add'>+  END</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  [print(:ok), exit] # void literal with side-effect</div><div class='add'>+  :dummy</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_literal_suffix.rb b/bootstraptest/test_literal_suffix.rb<br/>new file mode 100644<br/>index 0000000000..4316c9e040<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_literal_suffix.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_literal_suffix.rb</a></div><div class='hunk'>@@ -0,0 +1,54 @@</div><div class='add'>+# numbers with suffix</div><div class='add'>+assert_equal '0/1',             '0r'</div><div class='add'>+assert_equal 'Rational',        '0r.class'</div><div class='add'>+assert_equal '1/1',             '1r'</div><div class='add'>+assert_equal 'Rational',        '1r.class'</div><div class='add'>+assert_equal '-1/1',            '-1r'</div><div class='add'>+assert_equal 'Rational',        '(-1r).class'</div><div class='add'>+assert_equal '1/1',             '0x1r'</div><div class='add'>+assert_equal 'Rational',        '0x1r.class'</div><div class='add'>+assert_equal '1/1',             '0b1r'</div><div class='add'>+assert_equal 'Rational',        '0b1r.class'</div><div class='add'>+assert_equal '1/1',             '0d1r'</div><div class='add'>+assert_equal 'Rational',        '0d1r.class'</div><div class='add'>+assert_equal '1/1',             '0o1r'</div><div class='add'>+assert_equal 'Rational',        '0o1r.class'</div><div class='add'>+assert_equal '1/1',             '01r'</div><div class='add'>+assert_equal 'Rational',        '01r.class'</div><div class='add'>+assert_equal '6/5',             '1.2r'</div><div class='add'>+assert_equal 'Rational',        '1.2r.class'</div><div class='add'>+assert_equal '-6/5',            '-1.2r'</div><div class='add'>+assert_equal 'Rational',        '(-1.2r).class'</div><div class='add'>+assert_equal '0+0i',            '0i'</div><div class='add'>+assert_equal 'Complex',         '0i.class'</div><div class='add'>+assert_equal '0+1i',            '1i'</div><div class='add'>+assert_equal 'Complex',         '1i.class'</div><div class='add'>+assert_equal '0+1i',            '0x1i'</div><div class='add'>+assert_equal 'Complex',         '0x1i.class'</div><div class='add'>+assert_equal '0+1i',            '0b1i'</div><div class='add'>+assert_equal 'Complex',         '0b1i.class'</div><div class='add'>+assert_equal '0+1i',            '0d1i'</div><div class='add'>+assert_equal 'Complex',         '0d1i.class'</div><div class='add'>+assert_equal '0+1i',            '0o1i'</div><div class='add'>+assert_equal 'Complex',         '0o1i.class'</div><div class='add'>+assert_equal '0+1i',            '01i'</div><div class='add'>+assert_equal 'Complex',         '01i.class'</div><div class='add'>+assert_equal '0+1.2i',          '1.2i'</div><div class='add'>+assert_equal 'Complex',         '1.2i.class'</div><div class='add'>+assert_equal '0+1/1i',          '1ri'</div><div class='add'>+assert_equal 'Complex',         '1ri.class'</div><div class='add'>+assert_equal '0+6/5i',          '1.2ri'</div><div class='add'>+assert_equal 'Complex',         '1.2ri.class'</div><div class='add'>+assert_equal '0+10.0i',         '1e1i'</div><div class='add'>+assert_equal 'Complex',         '1e1i.class'</div><div class='add'>+assert_equal '1',               '1if true'</div><div class='add'>+assert_equal '1',               '1rescue nil'</div><div class='add'>+assert_equal '10000000000000000001/10000000000000000000',</div><div class='add'>+             '1.0000000000000000001r'</div><div class='add'>+</div><div class='add'>+assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+             %q{begin eval('1ir', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='add'>+assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+             %q{begin eval('1.2ir', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='add'>+assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+             %q{begin eval('1e1r', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='head'>diff --git a/bootstraptest/test_load.rb b/bootstraptest/test_load.rb<br/>new file mode 100644<br/>index 0000000000..e63c93a8f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_load.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_load.rb</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  open("require-lock-test.rb", "w") {|f|</div><div class='add'>+    f.puts "sleep 0.1"</div><div class='add'>+    f.puts "module M"</div><div class='add'>+    f.puts "end"</div><div class='add'>+  }</div><div class='add'>+  $:.unshift Dir.pwd</div><div class='add'>+  vs = (1..2).map {|i|</div><div class='add'>+    Thread.start {</div><div class='add'>+      require "require-lock-test"</div><div class='add'>+      M</div><div class='add'>+    }</div><div class='add'>+  }.map {|t| t.value }</div><div class='add'>+  vs[0] == M &amp;&amp; vs[1] == M ? :ok : :ng</div><div class='add'>+}, '[ruby-dev:32048]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  %w[a a/foo b].each {|d| Dir.mkdir(d)}</div><div class='add'>+  open("b/foo", "w") {|f| f.puts "$ok = :ok"}</div><div class='add'>+  $:.replace(%w[a b])</div><div class='add'>+  begin</div><div class='add'>+    load "foo"</div><div class='add'>+    $ok</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:38097]'</div><div class='head'>diff --git a/bootstraptest/test_marshal.rb b/bootstraptest/test_marshal.rb<br/>new file mode 100644<br/>index 0000000000..7e34176169<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_marshal.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_marshal.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  Marshal.load(Marshal.dump({"k"=&gt;"v"}), lambda {|v| v})</div><div class='add'>+}</div><div class='add'>+</div><div class='head'>diff --git a/bootstraptest/test_massign.rb b/bootstraptest/test_massign.rb<br/>new file mode 100644<br/>index 0000000000..0f63dd424a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_massign.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_massign.rb</a></div><div class='hunk'>@@ -0,0 +1,183 @@</div><div class='add'>+assert_equal '[[1], 2, 3]', '*v1, (a, b) = [1,[2, 3]]; [v1, a, b]'</div><div class='add'>+assert_equal '[[1], 2, 3]', '*v1,(*), (a, b) = [1,:x,[2, 3]]; [v1, a, b]'</div><div class='add'>+</div><div class='add'>+assert_equal '[]',          '*a = *nil; a'</div><div class='add'>+assert_equal '[nil]',       '*a = nil; a'</div><div class='add'>+assert_equal '2',           'a, a = 1, 2; a', "[ruby-dev:31522]"</div><div class='add'>+assert_equal '[1, 2]',      'a, b = 1, 2'</div><div class='add'>+assert_equal '[1, 2]', %q{</div><div class='add'>+  ans = []</div><div class='add'>+  trace_var(:$a){|v| ans &lt;&lt; v}</div><div class='add'>+  trace_var(:$b){|v| ans &lt;&lt; v}</div><div class='add'>+  $a, $b = 1, 2</div><div class='add'>+  ans</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = :ok</div><div class='add'>+  :ng.tap {|(r)|}</div><div class='add'>+  r</div><div class='add'>+}, '[ruby-dev:31507]'</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+# generated by this script:</div><div class='add'>+</div><div class='add'>+3.times{|i|</div><div class='add'>+  8.times{|e|</div><div class='add'>+    ary = (0...e).to_a</div><div class='add'>+    a,b,c,d,e,f = nil</div><div class='add'>+    vals = %w(a b c d e f)</div><div class='add'>+    vals[i] = '*' + vals[i]</div><div class='add'>+    program = "#{vals.join(", ")} = *ary"</div><div class='add'>+    eval(program)</div><div class='add'>+    ans = [a,b,c,d,e,f]</div><div class='add'>+    puts %Q{</div><div class='add'>+      assert_equal "#{ans.inspect}", %q{</div><div class='add'>+        ary = #{ary.inspect}</div><div class='add'>+        #{program}; [a, b, c, d, e, f]</div><div class='add'>+      }}</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+=end</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], nil, nil, nil, nil, nil]", %q{</div><div class='add'>+        ary = []</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], 0, nil, nil, nil, nil]", %q{</div><div class='add'>+        ary = [0]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], 0, 1, nil, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], 0, 1, 2, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], 0, 1, 2, 3, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[], 0, 1, 2, 3, 4]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[0], 1, 2, 3, 4, 5]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[[0, 1], 2, 3, 4, 5, 6]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5, 6]</div><div class='add'>+        *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[nil, [], nil, nil, nil, nil]", %q{</div><div class='add'>+        ary = []</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [], nil, nil, nil, nil]", %q{</div><div class='add'>+        ary = [0]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [], 1, nil, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [], 1, 2, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [], 1, 2, 3, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [], 1, 2, 3, 4]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [1], 2, 3, 4, 5]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, [1, 2], 3, 4, 5, 6]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5, 6]</div><div class='add'>+        a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[nil, nil, [], nil, nil, nil]", %q{</div><div class='add'>+        ary = []</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, nil, [], nil, nil, nil]", %q{</div><div class='add'>+        ary = [0]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [], nil, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [], 2, nil, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [], 2, 3, nil]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [], 2, 3, 4]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [2], 3, 4, 5]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      assert_equal "[0, 1, [2, 3], 4, 5, 6]", %q{</div><div class='add'>+        ary = [0, 1, 2, 3, 4, 5, 6]</div><div class='add'>+        a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  a,s=[],"aaa"</div><div class='add'>+  300.times { a&lt;&lt;s; s=s.succ }</div><div class='add'>+  eval &lt;&lt;-END__</div><div class='add'>+  GC.stress=true</div><div class='add'>+  Fiber.new do</div><div class='add'>+    #{ a.join(",") },*zzz=1</div><div class='add'>+  end.resume</div><div class='add'>+  END__</div><div class='add'>+  :ok</div><div class='add'>+}, '[ruby-dev:32581]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  while true</div><div class='add'>+    *, z = 1</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, '[ruby-dev:32892]'</div><div class='head'>diff --git a/bootstraptest/test_method.rb b/bootstraptest/test_method.rb<br/>new file mode 100644<br/>index 0000000000..3462aa9434<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_method.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_method.rb</a></div><div class='hunk'>@@ -0,0 +1,1192 @@</div><div class='add'>+# regular argument</div><div class='add'>+assert_equal '1',       'def m() 1 end; m()'</div><div class='add'>+assert_equal '1',       'def m(a) a end; m(1)'</div><div class='add'>+assert_equal '[1, 2]',  'def m(a,b) [a, b] end; m(1,2)'</div><div class='add'>+assert_equal '[1, 2, 3]', 'def m(a,b,c) [a, b, c] end; m(1,2,3)'</div><div class='add'>+assert_match /\Awrong number of arguments \(.*\b1\b.* 0\)\z/, %q{</div><div class='add'>+  def m; end</div><div class='add'>+  begin</div><div class='add'>+    m(1)</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_match /\Awrong number of arguments \(.*\b0\b.* 1\)\z/, %q{</div><div class='add'>+  def m a; end</div><div class='add'>+  begin</div><div class='add'>+    m</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# default argument</div><div class='add'>+assert_equal '1',       'def m(x=1) x end; m()'</div><div class='add'>+assert_equal '1',       'def m(x=7) x end; m(1)'</div><div class='add'>+assert_equal '1',       'def m(a,x=1) x end; m(7)'</div><div class='add'>+assert_equal '1',       'def m(a,x=7) x end; m(7,1)'</div><div class='add'>+assert_equal '1',       'def m(a,b,x=1) x end; m(7,7)'</div><div class='add'>+assert_equal '1',       'def m(a,b,x=7) x end; m(7,7,1)'</div><div class='add'>+assert_equal '1',       'def m(a,x=1,y=1) x end; m(7)'</div><div class='add'>+assert_equal '1',       'def m(a,x=1,y=1) y end; m(7)'</div><div class='add'>+assert_equal '1',       'def m(a,x=7,y=1) x end; m(7,1)'</div><div class='add'>+assert_equal '1',       'def m(a,x=7,y=1) y end; m(7,1)'</div><div class='add'>+assert_equal '1',       'def m(a,x=7,y=7) x end; m(7,1,1)'</div><div class='add'>+assert_equal '1',       'def m(a,x=7,y=7) y end; m(7,1,1)'</div><div class='add'>+</div><div class='add'>+# rest argument</div><div class='add'>+assert_equal '[]',      'def m(*a) a end; m().inspect'</div><div class='add'>+assert_equal '[1]',     'def m(*a) a end; m(1).inspect'</div><div class='add'>+assert_equal '[1, 2]',  'def m(*a) a end; m(1,2).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,*a) a end; m(7).inspect'</div><div class='add'>+assert_equal '[1]',     'def m(x,*a) a end; m(7,1).inspect'</div><div class='add'>+assert_equal '[1, 2]',  'def m(x,*a) a end; m(7,1,2).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y,*a) a end; m(7,7).inspect'</div><div class='add'>+assert_equal '[1]',     'def m(x,y,*a) a end; m(7,7,1).inspect'</div><div class='add'>+assert_equal '[1, 2]',  'def m(x,y,*a) a end; m(7,7,1,2).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y=7,*a) a end; m(7).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y,z=7,*a) a end; m(7,7).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y,z=7,*a) a end; m(7,7,7).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y,z=7,zz=7,*a) a end; m(7,7,7).inspect'</div><div class='add'>+assert_equal '[]',      'def m(x,y,z=7,zz=7,*a) a end; m(7,7,7,7).inspect'</div><div class='add'>+assert_equal '1',       'def m(x,y,z=7,zz=1,*a) zz end; m(7,7,7).inspect'</div><div class='add'>+assert_equal '1',       'def m(x,y,z=7,zz=1,*a) zz end; m(7,7,7).inspect'</div><div class='add'>+assert_equal '1',       'def m(x,y,z=7,zz=7,*a) zz end; m(7,7,7,1).inspect'</div><div class='add'>+</div><div class='add'>+# block argument</div><div class='add'>+assert_equal 'Proc',    'def m(&amp;block) block end; m{}.class'</div><div class='add'>+assert_equal 'nil',     'def m(&amp;block) block end; m().inspect'</div><div class='add'>+assert_equal 'Proc',    'def m(a,&amp;block) block end; m(7){}.class'</div><div class='add'>+assert_equal 'nil',     'def m(a,&amp;block) block end; m(7).inspect'</div><div class='add'>+assert_equal '1',       'def m(a,&amp;block) a end; m(1){}'</div><div class='add'>+assert_equal 'Proc',    'def m(a,b=nil,&amp;block) block end; m(7){}.class'</div><div class='add'>+assert_equal 'nil',     'def m(a,b=nil,&amp;block) block end; m(7).inspect'</div><div class='add'>+assert_equal 'Proc',    'def m(a,b=nil,&amp;block) block end; m(7,7){}.class'</div><div class='add'>+assert_equal '1',       'def m(a,b=nil,&amp;block) b end; m(7,1){}'</div><div class='add'>+assert_equal 'Proc',    'def m(a,b=nil,*c,&amp;block) block end; m(7){}.class'</div><div class='add'>+assert_equal 'nil',     'def m(a,b=nil,*c,&amp;block) block end; m(7).inspect'</div><div class='add'>+assert_equal '1',       'def m(a,b=nil,*c,&amp;block) a end; m(1).inspect'</div><div class='add'>+assert_equal '1',       'def m(a,b=1,*c,&amp;block) b end; m(7).inspect'</div><div class='add'>+assert_equal '1',       'def m(a,b=7,*c,&amp;block) b end; m(7,1).inspect'</div><div class='add'>+assert_equal '[1]',     'def m(a,b=7,*c,&amp;block) c end; m(7,7,1).inspect'</div><div class='add'>+</div><div class='add'>+# splat</div><div class='add'>+assert_equal '1',       'def m(a) a end; m(*[1])'</div><div class='add'>+assert_equal '1',       'def m(x,a) a end; m(7,*[1])'</div><div class='add'>+assert_equal '1',       'def m(x,y,a) a end; m(7,7,*[1])'</div><div class='add'>+assert_equal '1',       'def m(a,b) a end; m(*[1,7])'</div><div class='add'>+assert_equal '1',       'def m(a,b) b end; m(*[7,1])'</div><div class='add'>+assert_equal '1',       'def m(x,a,b) b end; m(7,*[7,1])'</div><div class='add'>+assert_equal '1',       'def m(x,y,a,b) b end; m(7,7,*[7,1])'</div><div class='add'>+assert_equal '1',       'def m(a,b,c) a end; m(*[1,7,7])'</div><div class='add'>+assert_equal '1',       'def m(a,b,c) b end; m(*[7,1,7])'</div><div class='add'>+assert_equal '1',       'def m(a,b,c) c end; m(*[7,7,1])'</div><div class='add'>+assert_equal '1',       'def m(x,a,b,c) a end; m(7,*[1,7,7])'</div><div class='add'>+assert_equal '1',       'def m(x,y,a,b,c) a end; m(7,7,*[1,7,7])'</div><div class='add'>+</div><div class='add'>+# hash argument</div><div class='add'>+assert_equal '1',       'def m(h) h end; m(7=&gt;1)[7]'</div><div class='add'>+assert_equal '1',       'def m(h) h end; m(7=&gt;1).size'</div><div class='add'>+assert_equal '1',       'def m(h) h end; m(7=&gt;1, 8=&gt;7)[7]'</div><div class='add'>+assert_equal '2',       'def m(h) h end; m(7=&gt;1, 8=&gt;7).size'</div><div class='add'>+assert_equal '1',       'def m(h) h end; m(7=&gt;1, 8=&gt;7, 9=&gt;7)[7]'</div><div class='add'>+assert_equal '3',       'def m(h) h end; m(7=&gt;1, 8=&gt;7, 9=&gt;7).size'</div><div class='add'>+assert_equal '1',       'def m(x,h) h end; m(7, 7=&gt;1)[7]'</div><div class='add'>+assert_equal '1',       'def m(x,h) h end; m(7, 7=&gt;1, 8=&gt;7)[7]'</div><div class='add'>+assert_equal '1',       'def m(x,h) h end; m(7, 7=&gt;1, 8=&gt;7, 9=&gt;7)[7]'</div><div class='add'>+assert_equal '1',       'def m(x,y,h) h end; m(7,7, 7=&gt;1)[7]'</div><div class='add'>+assert_equal '1',       'def m(x,y,h) h end; m(7,7, 7=&gt;1, 8=&gt;7)[7]'</div><div class='add'>+assert_equal '1',       'def m(x,y,h) h end; m(7,7, 7=&gt;1, 8=&gt;7, 9=&gt;7)[7]'</div><div class='add'>+</div><div class='add'>+# block argument</div><div class='add'>+assert_equal '1',       %q(def m(&amp;block) mm(&amp;block) end</div><div class='add'>+                           def mm() yield 1 end</div><div class='add'>+                           m {|a| a })</div><div class='add'>+assert_equal '1',       %q(def m(x,&amp;block) mm(x,&amp;block) end</div><div class='add'>+                           def mm(x) yield 1 end</div><div class='add'>+                           m(7) {|a| a })</div><div class='add'>+assert_equal '1',       %q(def m(x,y,&amp;block) mm(x,y,&amp;block) end</div><div class='add'>+                           def mm(x,y) yield 1 end</div><div class='add'>+                           m(7,7) {|a| a })</div><div class='add'>+</div><div class='add'>+# recursive call</div><div class='add'>+assert_equal '1',       %q(def m(n) n == 0 ? 1 : m(n-1) end; m(5))</div><div class='add'>+</div><div class='add'>+# instance method</div><div class='add'>+assert_equal '1',       %q(class C; def m() 1 end end;  C.new.m)</div><div class='add'>+assert_equal '1',       %q(class C; def m(a) a end end;  C.new.m(1))</div><div class='add'>+assert_equal '1',       %q(class C; def m(a = 1) a end end;  C.new.m)</div><div class='add'>+assert_equal '[1]',     %q(class C; def m(*a) a end end;  C.new.m(1).inspect)</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m() mm() end</div><div class='add'>+                              def mm() 1 end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+</div><div class='add'>+# singleton method (const)</div><div class='add'>+assert_equal '1',       %q(class C; def C.m() 1 end end;  C.m)</div><div class='add'>+assert_equal '1',       %q(class C; def C.m(a) a end end;  C.m(1))</div><div class='add'>+assert_equal '1',       %q(class C; def C.m(a = 1) a end end;  C.m)</div><div class='add'>+assert_equal '[1]',     %q(class C; def C.m(*a) a end end;  C.m(1).inspect)</div><div class='add'>+assert_equal '1',       %q(class C; end; def C.m() 1 end;  C.m)</div><div class='add'>+assert_equal '1',       %q(class C; end; def C.m(a) a end;  C.m(1))</div><div class='add'>+assert_equal '1',       %q(class C; end; def C.m(a = 1) a end;  C.m)</div><div class='add'>+assert_equal '[1]',     %q(class C; end; def C.m(*a) a end;  C.m(1).inspect)</div><div class='add'>+assert_equal '1',       %q(class C; def m() 7 end end; def C.m() 1 end;  C.m)</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def C.m() mm() end</div><div class='add'>+                              def C.mm() 1 end</div><div class='add'>+                            end</div><div class='add'>+                            C.m )</div><div class='add'>+</div><div class='add'>+# singleton method (lvar)</div><div class='add'>+assert_equal '1',       %q(obj = Object.new; def obj.m() 1 end;  obj.m)</div><div class='add'>+assert_equal '1',       %q(obj = Object.new; def obj.m(a) a end;  obj.m(1))</div><div class='add'>+assert_equal '1',       %q(obj = Object.new; def obj.m(a=1) a end;  obj.m)</div><div class='add'>+assert_equal '[1]',     %q(obj = Object.new; def obj.m(*a) a end;  obj.m(1))</div><div class='add'>+assert_equal '1',       %q(class C; def m() 7 end; end</div><div class='add'>+                           obj = C.new</div><div class='add'>+                           def obj.m() 1 end</div><div class='add'>+                           obj.m)</div><div class='add'>+</div><div class='add'>+# inheritance</div><div class='add'>+assert_equal '1',       %q(class A; def m(a) a end end</div><div class='add'>+                           class B &lt; A; end</div><div class='add'>+                           B.new.m(1))</div><div class='add'>+assert_equal '1',       %q(class A; end</div><div class='add'>+                           class B &lt; A; def m(a) a end end</div><div class='add'>+                           B.new.m(1))</div><div class='add'>+assert_equal '1',       %q(class A; def m(a) a end end</div><div class='add'>+                           class B &lt; A; end</div><div class='add'>+                           class C &lt; B; end</div><div class='add'>+                           C.new.m(1))</div><div class='add'>+</div><div class='add'>+# include</div><div class='add'>+assert_equal '1',       %q(class A; def m(a) a end end</div><div class='add'>+                           module M; end</div><div class='add'>+                           class B &lt; A; include M; end</div><div class='add'>+                           B.new.m(1))</div><div class='add'>+assert_equal '1',       %q(class A; end</div><div class='add'>+                           module M; def m(a) a end end</div><div class='add'>+                           class B &lt; A; include M; end</div><div class='add'>+                           B.new.m(1))</div><div class='add'>+</div><div class='add'>+# alias</div><div class='add'>+assert_equal '1',       %q( def a() 1 end</div><div class='add'>+                            alias m a</div><div class='add'>+                            m() )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def a() 1 end</div><div class='add'>+                              alias m a</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def a() 1 end</div><div class='add'>+                              alias :m a</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def a() 1 end</div><div class='add'>+                              alias m :a</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def a() 1 end</div><div class='add'>+                              alias :m :a</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def a() 1 end</div><div class='add'>+                              alias m a</div><div class='add'>+                              undef a</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+</div><div class='add'>+# undef</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m() end</div><div class='add'>+                              undef m</div><div class='add'>+                            end</div><div class='add'>+                            begin C.new.m; rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class A</div><div class='add'>+                              def m() end</div><div class='add'>+                            end</div><div class='add'>+                            class C &lt; A</div><div class='add'>+                              def m() end</div><div class='add'>+                              undef m</div><div class='add'>+                            end</div><div class='add'>+                            begin C.new.m; rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class A; def a() end end   # [yarv-dev:999]</div><div class='add'>+                            class B &lt; A</div><div class='add'>+                              def b() end</div><div class='add'>+                              undef a, b</div><div class='add'>+                            end</div><div class='add'>+                            begin B.new.a; rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class A; def a() end end   # [yarv-dev:999]</div><div class='add'>+                            class B &lt; A</div><div class='add'>+                              def b() end</div><div class='add'>+                              undef a, b</div><div class='add'>+                            end</div><div class='add'>+                            begin B.new.b; rescue NoMethodError; 1 end )</div><div class='add'>+</div><div class='add'>+assert_equal '3',  %q{</div><div class='add'>+  def m1</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+  alias m2 m1</div><div class='add'>+  alias :"#{'m3'}" m1</div><div class='add'>+  m1 + m2 + m3</div><div class='add'>+}, '[ruby-dev:32308]'</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foobar</div><div class='add'>+  end</div><div class='add'>+  undef :"foo#{:bar}"</div><div class='add'>+  1</div><div class='add'>+}, '[ruby-dev:32308]'</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foobar</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+  alias :"bar#{:baz}" :"foo#{:bar}"</div><div class='add'>+  barbaz</div><div class='add'>+}, '[ruby-dev:32308]'</div><div class='add'>+</div><div class='add'>+# private</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m() mm() end</div><div class='add'>+                              def mm() 1 end</div><div class='add'>+                              private :mm</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m() 7 end</div><div class='add'>+                              private :m</div><div class='add'>+                            end</div><div class='add'>+                            begin C.m; rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def C.m() mm() end</div><div class='add'>+                              def C.mm() 1 end</div><div class='add'>+                              private_class_method :mm</div><div class='add'>+                            end</div><div class='add'>+                            C.m )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def C.m() 7 end</div><div class='add'>+                              private_class_method :m</div><div class='add'>+                            end</div><div class='add'>+                            begin C.m; rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class C; def m() 1 end end</div><div class='add'>+                            C.new.m   # cache</div><div class='add'>+                            class C</div><div class='add'>+                              alias mm m; private :mm</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m</div><div class='add'>+                            begin C.new.mm; 7; rescue NoMethodError; 1 end )</div><div class='add'>+</div><div class='add'>+# nested method</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m</div><div class='add'>+                                def mm() 1 end</div><div class='add'>+                              end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m</div><div class='add'>+                            C.new.mm )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def m</div><div class='add'>+                                def mm() 1 end</div><div class='add'>+                              end</div><div class='add'>+                            end</div><div class='add'>+                            instance_eval "C.new.m; C.new.mm" )</div><div class='add'>+</div><div class='add'>+# method_missing</div><div class='add'>+assert_equal ':m',      %q( class C</div><div class='add'>+                              def method_missing(mid, *args) mid end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m.inspect )</div><div class='add'>+assert_equal ':mm',     %q( class C</div><div class='add'>+                              def method_missing(mid, *args) mid end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.mm.inspect )</div><div class='add'>+assert_equal '[1, 2]',  %q( class C</div><div class='add'>+                              def method_missing(mid, *args) args end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m(1,2).inspect )</div><div class='add'>+assert_equal '1',       %q( class C</div><div class='add'>+                              def method_missing(mid, *args) yield 1 end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m {|a| a })</div><div class='add'>+assert_equal 'nil',     %q( class C</div><div class='add'>+                              def method_missing(mid, *args, &amp;block) block end</div><div class='add'>+                            end</div><div class='add'>+                            C.new.m.inspect )</div><div class='add'>+</div><div class='add'>+# send</div><div class='add'>+assert_equal '1',       %q( class C; def m() 1 end end;</div><div class='add'>+                            C.new.__send__(:m) )</div><div class='add'>+assert_equal '1',       %q( class C; def m() 1 end end;</div><div class='add'>+                            C.new.send(:m) )</div><div class='add'>+assert_equal '1',       %q( class C; def m(a) a end end;</div><div class='add'>+                            C.new.send(:m,1) )</div><div class='add'>+assert_equal '1',       %q( class C; def m(a,b) a end end;</div><div class='add'>+                            C.new.send(:m,1,7) )</div><div class='add'>+assert_equal '1',       %q( class C; def m(x,a=1) a end end;</div><div class='add'>+                            C.new.send(:m,7) )</div><div class='add'>+assert_equal '1',       %q( class C; def m(x,a=7) a end end;</div><div class='add'>+                            C.new.send(:m,7,1) )</div><div class='add'>+assert_equal '[1, 2]',  %q( class C; def m(*a) a end end;</div><div class='add'>+                            C.new.send(:m,1,2).inspect )</div><div class='add'>+assert_equal '1',       %q( class C; def m() 7 end; private :m end</div><div class='add'>+                            begin C.new.public_send(:m); rescue NoMethodError; 1 end )</div><div class='add'>+assert_equal '1',       %q( class C; def m() 1 end; private :m end</div><div class='add'>+                            C.new.send(:m) )</div><div class='add'>+</div><div class='add'>+# with block</div><div class='add'>+assert_equal '[[:ok1, :foo], [:ok2, :foo, :bar]]',</div><div class='add'>+%q{</div><div class='add'>+  class C</div><div class='add'>+    def [](a)</div><div class='add'>+      $ary &lt;&lt; [yield, a]</div><div class='add'>+    end</div><div class='add'>+    def []=(a, b)</div><div class='add'>+      $ary &lt;&lt; [yield, a, b]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  $ary = []</div><div class='add'>+  C.new[:foo, &amp;lambda{:ok1}]</div><div class='add'>+  C.new[:foo, &amp;lambda{:ok2}] = :bar</div><div class='add'>+  $ary</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# with</div><div class='add'>+assert_equal '[:ok1, [:ok2, 11]]', %q{</div><div class='add'>+  class C</div><div class='add'>+    def []</div><div class='add'>+      $ary &lt;&lt; :ok1</div><div class='add'>+      10</div><div class='add'>+    end</div><div class='add'>+    def []=(a)</div><div class='add'>+      $ary &lt;&lt; [:ok2, a]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  $ary = []</div><div class='add'>+  C.new[]+=1</div><div class='add'>+  $ary</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# splat and block arguments</div><div class='add'>+assert_equal %q{[[[:x, :y, :z], NilClass], [[1, :x, :y, :z], NilClass], [[1, 2, :x, :y, :z], NilClass], [[:obj], NilClass], [[1, :obj], NilClass], [[1, 2, :obj], NilClass], [[], Proc], [[1], Proc], [[1, 2], Proc], [[], Proc], [[1], Proc], [[1, 2], Proc], [[:x, :y, :z], Proc], [[1, :x, :y, :z], Proc], [[1, 2, :x, :y, :z], Proc]]}, %q{</div><div class='add'>+def m(*args, &amp;b)</div><div class='add'>+  $result &lt;&lt; [args, b.class]</div><div class='add'>+end</div><div class='add'>+$result = []</div><div class='add'>+ary = [:x, :y, :z]</div><div class='add'>+obj = :obj</div><div class='add'>+b = Proc.new{}</div><div class='add'>+</div><div class='add'>+m(*ary)</div><div class='add'>+m(1,*ary)</div><div class='add'>+m(1,2,*ary)</div><div class='add'>+m(*obj)</div><div class='add'>+m(1,*obj)</div><div class='add'>+m(1,2,*obj)</div><div class='add'>+m(){}</div><div class='add'>+m(1){}</div><div class='add'>+m(1,2){}</div><div class='add'>+m(&amp;b)</div><div class='add'>+m(1,&amp;b)</div><div class='add'>+m(1,2,&amp;b)</div><div class='add'>+m(*ary,&amp;b)</div><div class='add'>+m(1,*ary,&amp;b)</div><div class='add'>+m(1,2,*ary,&amp;b)</div><div class='add'>+$result</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# aset and splat</div><div class='add'>+assert_equal '4', %q{class Foo;def []=(a,b,c,d);end;end;Foo.new[1,*a=[2,3]]=4}</div><div class='add'>+assert_equal '4', %q{class Foo;def []=(a,b,c,d);end;end;def m(&amp;blk)Foo.new[1,*a=[2,3],&amp;blk]=4;end;m{}}</div><div class='add'>+</div><div class='add'>+# post test</div><div class='add'>+assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, :o2, [], 4, 5, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [], 5, 6, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5], 6, 7, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, NilClass, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, :o2, [], 4, 5, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [], 5, 6, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5], 6, 7, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, Proc, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &amp;b)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, b.class, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, :o2, [], 4, 5, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[1, 2, 3, 4, [], 5, 6, nil, nil]}, %q{</div><div class='add'>+def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)</div><div class='add'>+  x, y = :x, :y if $foo</div><div class='add'>+  [m1, m2, o1, o2, r, p1, p2, x, y]</div><div class='add'>+end</div><div class='add'>+; m(1, 2, 3, 4, 5, 6)}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#</div><div class='add'>+# super</div><div class='add'>+#</div><div class='add'>+=begin</div><div class='add'>+# below programs are generated by this program:</div><div class='add'>+</div><div class='add'>+BASE = &lt;&lt;EOS__</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; &lt;TEST&gt;; super; end; end</div><div class='add'>+EOS__</div><div class='add'>+</div><div class='add'>+tests = {</div><div class='add'>+%q{</div><div class='add'>+  def m</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+%q{</div><div class='add'>+  def m a</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+},</div><div class='add'>+%q{</div><div class='add'>+  def m a</div><div class='add'>+    a = :a</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+%q{</div><div class='add'>+  def m a, o=:o</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+},</div><div class='add'>+%q{</div><div class='add'>+  def m a, o=:o</div><div class='add'>+    a = :a</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+},</div><div class='add'>+%q{</div><div class='add'>+  def m a, o=:o</div><div class='add'>+    o = :x</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+%q{</div><div class='add'>+  def m a, *r</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+  C1.new.m 1, 2, 3</div><div class='add'>+},</div><div class='add'>+%q{</div><div class='add'>+  def m a, *r</div><div class='add'>+    r = [:x, :y]</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+  C1.new.m 1, 2, 3</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+%q{</div><div class='add'>+  def m a, o=:o, *r</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+  C1.new.m 1, 2, 3</div><div class='add'>+  C1.new.m 1, 2, 3, 4</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+%q{</div><div class='add'>+  def m a, o=:o, *r, &amp;b</div><div class='add'>+} =&gt; %q{</div><div class='add'>+  C1.new.m 1</div><div class='add'>+  C1.new.m 1, 2</div><div class='add'>+  C1.new.m 1, 2, 3</div><div class='add'>+  C1.new.m 1, 2, 3, 4</div><div class='add'>+  C1.new.m(1){}</div><div class='add'>+  C1.new.m(1, 2){}</div><div class='add'>+  C1.new.m(1, 2, 3){}</div><div class='add'>+  C1.new.m(1, 2, 3, 4){}</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+"def m(m1, m2, o1=:o1, o2=:o2, p1, p2)" =&gt;</div><div class='add'>+%q{</div><div class='add'>+C1.new.m(1,2,3,4)</div><div class='add'>+C1.new.m(1,2,3,4,5)</div><div class='add'>+C1.new.m(1,2,3,4,5,6)</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+"def m(m1, m2, *r, p1, p2)" =&gt;</div><div class='add'>+%q{</div><div class='add'>+C1.new.m(1,2,3,4)</div><div class='add'>+C1.new.m(1,2,3,4,5)</div><div class='add'>+C1.new.m(1,2,3,4,5,6)</div><div class='add'>+C1.new.m(1,2,3,4,5,6,7)</div><div class='add'>+C1.new.m(1,2,3,4,5,6,7,8)</div><div class='add'>+},</div><div class='add'>+#</div><div class='add'>+"def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)" =&gt;</div><div class='add'>+%q{</div><div class='add'>+C1.new.m(1,2,3,4)</div><div class='add'>+C1.new.m(1,2,3,4,5)</div><div class='add'>+C1.new.m(1,2,3,4,5,6)</div><div class='add'>+C1.new.m(1,2,3,4,5,6,7)</div><div class='add'>+C1.new.m(1,2,3,4,5,6,7,8)</div><div class='add'>+C1.new.m(1,2,3,4,5,6,7,8,9)</div><div class='add'>+},</div><div class='add'>+</div><div class='add'>+###</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+tests.each{|setup, methods| setup = setup.dup; setup.strip!</div><div class='add'>+  setup = BASE.gsub(/&lt;TEST&gt;/){setup}</div><div class='add'>+  methods.split(/\n/).each{|m| m = m.dup; m.strip!</div><div class='add'>+    next if m.empty?</div><div class='add'>+    expr = "#{setup}; #{m}"</div><div class='add'>+    result = eval(expr)</div><div class='add'>+    puts "assert_equal %q{#{result.inspect}}, %q{\n#{expr}}"</div><div class='add'>+    puts</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+=end</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :o]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3, 4}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [:a]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a</div><div class='add'>+    a = :a; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6,7)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6,7,8)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :o]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3, 4}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :o]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m(1){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m(1, 2){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m(1, 2, 3){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o, *r, &amp;b; super; end; end</div><div class='add'>+; C1.new.m(1, 2, 3, 4){}}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :x]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o</div><div class='add'>+    o = :x; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :x]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o</div><div class='add'>+    o = :x; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [:a, :o]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o</div><div class='add'>+    a = :a; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [:a, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o</div><div class='add'>+    a = :a; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r</div><div class='add'>+    r = [:x, :y]; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r</div><div class='add'>+    r = [:x, :y]; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r</div><div class='add'>+    r = [:x, :y]; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6,7)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6,7,8)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8, 9]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end</div><div class='add'>+; C1.new.m(1,2,3,4,5,6,7,8,9)}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, *r; super; end; end</div><div class='add'>+; C1.new.m 1, 2, 3}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, []]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m; super; end; end</div><div class='add'>+; C1.new.m}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, :o]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o; super; end; end</div><div class='add'>+; C1.new.m 1}</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:C0_m, [1, 2]]}, %q{</div><div class='add'>+class C0; def m *args; [:C0_m, args]; end; end</div><div class='add'>+class C1 &lt; C0; def m a, o=:o; super; end; end</div><div class='add'>+; C1.new.m 1, 2}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    def x=(n)</div><div class='add'>+    end</div><div class='add'>+    def m</div><div class='add'>+      self.x = :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  proc{</div><div class='add'>+    $SAFE = 1</div><div class='add'>+    class C</div><div class='add'>+      def m</div><div class='add'>+        :ok</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  }.call</div><div class='add'>+  C.new.m</div><div class='add'>+}, '[ruby-core:11998]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class B</div><div class='add'>+    def m() :fail end</div><div class='add'>+  end</div><div class='add'>+  class C &lt; B</div><div class='add'>+    undef m</div><div class='add'>+    begin</div><div class='add'>+      remove_method :m</div><div class='add'>+    rescue NameError</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    C.new.m</div><div class='add'>+  rescue NameError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31816], [ruby-dev:31817]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    Process.setrlimit(Process::RLIMIT_STACK, 4_206_592)</div><div class='add'>+    # FreeBSD SEGVs this less than 4M + 12K bytes.</div><div class='add'>+  rescue Exception</div><div class='add'>+    exit</div><div class='add'>+  end</div><div class='add'>+  class C</div><div class='add'>+    attr "a" * (10*1024*1024)</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31818]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Module</div><div class='add'>+    def define_method2(name, &amp;block)</div><div class='add'>+      define_method(name, &amp;block)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class C</div><div class='add'>+    define_method2(:m) {|x, y| :fail }</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    C.new.m([1,2])</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_not_match /method_missing/, %q{</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  variable_or_mehtod_not_exist</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[false, false, false, false, true, true]', %q{</div><div class='add'>+  class C</div><div class='add'>+    define_method(:foo) {</div><div class='add'>+      block_given?</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.new.foo {}</div><div class='add'>+</div><div class='add'>+  class D</div><div class='add'>+    def foo</div><div class='add'>+      D.module_eval{</div><div class='add'>+        define_method(:m1){</div><div class='add'>+          block_given?</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+    def bar</div><div class='add'>+      D.module_eval{</div><div class='add'>+        define_method(:m2){</div><div class='add'>+          block_given?</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  D.new.foo</div><div class='add'>+  D.new.bar{}</div><div class='add'>+  [C.new.foo, C.new.foo{}, D.new.m1, D.new.m1{}, D.new.m2, D.new.m2{}]</div><div class='add'>+}, '[ruby-core:14813]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    define_method(:foo) do |&amp;b|</div><div class='add'>+      b.call</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  Foo.new.foo do</div><div class='add'>+    break :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:36028]'</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2, [3, 4]]', %q{</div><div class='add'>+  def regular(a, b, *c)</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+  regular(*[], 1, *[], *[2, 3], *[], 4)</div><div class='add'>+}, '[ruby-core:19413]'</div><div class='add'>+</div><div class='add'>+assert_equal '[1, [:foo, 3, 4, :foo]]', %q{</div><div class='add'>+  def regular(a, *b)</div><div class='add'>+    [a, b]</div><div class='add'>+  end</div><div class='add'>+  a = b = [:foo]</div><div class='add'>+  regular(1, *a, *[3, 4], *b)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '["B", "A"]', %q{</div><div class='add'>+  class A</div><div class='add'>+    def m</div><div class='add'>+      'A'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class B &lt; A</div><div class='add'>+    define_method(:m) do</div><div class='add'>+      ['B', super()]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class C &lt; B</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  module Foo</div><div class='add'>+    def foo</div><div class='add'>+      begin</div><div class='add'>+        super</div><div class='add'>+      rescue NoMethodError</div><div class='add'>+        :ok</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    module_function :foo</div><div class='add'>+  end</div><div class='add'>+  Foo.foo</div><div class='add'>+}, '[ruby-dev:37587]'</div><div class='add'>+</div><div class='add'>+assert_equal 'Object#foo', %q{</div><div class='add'>+  class Object</div><div class='add'>+    def self.foo</div><div class='add'>+      "Object.foo"</div><div class='add'>+    end</div><div class='add'>+    def foo</div><div class='add'>+      "Object#foo"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module Foo</div><div class='add'>+    def foo</div><div class='add'>+      begin</div><div class='add'>+        super</div><div class='add'>+      rescue NoMethodError</div><div class='add'>+        :ok</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    module_function :foo</div><div class='add'>+  end</div><div class='add'>+  Foo.foo</div><div class='add'>+}, '[ruby-dev:37587]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  class BasicObject</div><div class='add'>+    remove_method :method_missing</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    "a".lalala!</div><div class='add'>+  rescue NoMethodError =&gt; e</div><div class='add'>+    e.message == "undefined method `lalala!' for \"a\":String" ? :ok : :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:22298]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "hello"[0] ||= "H"</div><div class='add'>+  "ok"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "hello"[0, 1] ||= "H"</div><div class='add'>+  "ok"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    define_method(:foo) do</div><div class='add'>+      C.class_eval { remove_method(:foo) }</div><div class='add'>+      super()</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    C.new.foo</div><div class='add'>+  rescue NoMethodError</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  [0][0, &amp;proc{}] += 21</div><div class='add'>+  'ok'</div><div class='add'>+}, '[ruby-core:30534]'</div><div class='add'>+</div><div class='add'>+# should not cache when splat</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class C</div><div class='add'>+    attr_reader :a</div><div class='add'>+    def initialize</div><div class='add'>+      @a = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m *args</div><div class='add'>+    C.new.a(*args)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m()</div><div class='add'>+  begin</div><div class='add'>+    m(1)</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'DC', %q{</div><div class='add'>+  $result = []</div><div class='add'>+</div><div class='add'>+  class C</div><div class='add'>+    def foo *args</div><div class='add'>+      $result &lt;&lt; 'C'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class D</div><div class='add'>+    def foo *args</div><div class='add'>+      $result &lt;&lt; 'D'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  o1 = $o1 = C.new</div><div class='add'>+  o2 = $o2 = D.new</div><div class='add'>+</div><div class='add'>+  args = Object.new</div><div class='add'>+  def args.to_a</div><div class='add'>+    test1 $o2, nil</div><div class='add'>+    []</div><div class='add'>+  end</div><div class='add'>+  def test1 o, args</div><div class='add'>+    o.foo(*args)</div><div class='add'>+  end</div><div class='add'>+  test1 o1, args</div><div class='add'>+  $result.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'DC', %q{</div><div class='add'>+  $result = []</div><div class='add'>+</div><div class='add'>+  class C</div><div class='add'>+    def foo *args</div><div class='add'>+      $result &lt;&lt; 'C'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class D</div><div class='add'>+    def foo *args</div><div class='add'>+      $result &lt;&lt; 'D'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  o1 = $o1 = C.new</div><div class='add'>+  o2 = $o2 = D.new</div><div class='add'>+</div><div class='add'>+  block = Object.new</div><div class='add'>+  def block.to_proc</div><div class='add'>+    test2 $o2, %w(a, b, c), nil</div><div class='add'>+    Proc.new{}</div><div class='add'>+  end</div><div class='add'>+  def test2 o, args, block</div><div class='add'>+    o.foo(*args, &amp;block)</div><div class='add'>+  end</div><div class='add'>+  test2 o1, [], block</div><div class='add'>+  $result.join</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_objectspace.rb b/bootstraptest/test_objectspace.rb<br/>new file mode 100644<br/>index 0000000000..24a1a0ce2c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_objectspace.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_objectspace.rb</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  eval("", TOPLEVEL_BINDING)</div><div class='add'>+  minobj = ObjectSpace.to_enum(:each_object).min_by {|a| a.object_id }</div><div class='add'>+  maxobj = ObjectSpace.to_enum(:each_object).max_by {|a| a.object_id }</div><div class='add'>+  (((minobj.object_id-100)..(minobj.object_id+100))+</div><div class='add'>+   ((maxobj.object_id-100)..(maxobj.object_id+100))).each {|id|</div><div class='add'>+    begin</div><div class='add'>+      o = ObjectSpace._id2ref(id)</div><div class='add'>+    rescue RangeError</div><div class='add'>+      next</div><div class='add'>+    end</div><div class='add'>+    o.inspect if defined?(o.inspect)</div><div class='add'>+  }</div><div class='add'>+}, '[ruby-dev:31911]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  ary = (1..10).to_a</div><div class='add'>+  ary.permutation(2) {|x|</div><div class='add'>+    if x == [1,2]</div><div class='add'>+      ObjectSpace.each_object(String) {|s|</div><div class='add'>+        s.clear if !s.frozen? &amp;&amp; (s.length == 40 || s.length == 80)</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}, '[ruby-dev:31982]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  ary = (1..100).to_a</div><div class='add'>+  ary.permutation(2) {|x|</div><div class='add'>+    if x == [1,2]</div><div class='add'>+      ObjectSpace.each_object(Array) {|o| o.clear if o == ary &amp;&amp; o.object_id != ary.object_id }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+}, '[ruby-dev:31985]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  ObjectSpace.define_finalizer("") do</div><div class='add'>+    Thread::Mutex.new.lock</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:44049]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  ObjectSpace.define_finalizer("") do</div><div class='add'>+    Thread.new {}</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:37858]'</div><div class='head'>diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb<br/>new file mode 100644<br/>index 0000000000..c23394e8d2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_proc.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_proc.rb</a></div><div class='hunk'>@@ -0,0 +1,483 @@</div><div class='add'>+assert_equal %q{[1, 2, 3]}, %q{</div><div class='add'>+  def getproc &amp;b</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    i = 1</div><div class='add'>+    m{</div><div class='add'>+      j = 2</div><div class='add'>+      m{</div><div class='add'>+        k = 3</div><div class='add'>+        getproc{</div><div class='add'>+          [i, j, k]</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{7}, %q{</div><div class='add'>+  def make_proc(&amp;b)</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def make_closure</div><div class='add'>+    a = 0</div><div class='add'>+    make_proc{</div><div class='add'>+      a+=1</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  cl = make_closure</div><div class='add'>+  cl.call + cl.call * cl.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  class C</div><div class='add'>+    def foo</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def block</div><div class='add'>+    C.method(:new).to_proc</div><div class='add'>+  end</div><div class='add'>+  b = block()</div><div class='add'>+  b.call.foo</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[0, 1, :last, 0, 2, :last]}, %q{</div><div class='add'>+  def proc &amp;b</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  pr = []</div><div class='add'>+  proc{|i_b|</div><div class='add'>+    p3 = proc{|j_b|</div><div class='add'>+      pr &lt;&lt; proc{|k_b|</div><div class='add'>+        [i_b, j_b, k_b]</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    p3.call(1)</div><div class='add'>+    p3.call(2)</div><div class='add'>+  }.call(0)</div><div class='add'>+</div><div class='add'>+  pr[0].call(:last).concat pr[1].call(:last)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{12}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def getproc &amp;b</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  iter{</div><div class='add'>+    bvar = 3</div><div class='add'>+    getproc{</div><div class='add'>+      bvar2 = 4</div><div class='add'>+      bvar * bvar2</div><div class='add'>+    }</div><div class='add'>+  }.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{200}, %q{</div><div class='add'>+  def iter</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def getproc &amp;b</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  loc1 = 0</div><div class='add'>+  pr1 = iter{</div><div class='add'>+    bl1 = 1</div><div class='add'>+    getproc{</div><div class='add'>+      loc1 += 1</div><div class='add'>+      bl1  += 1</div><div class='add'>+      loc1 + bl1</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  pr2 = iter{</div><div class='add'>+    bl1 = 1</div><div class='add'>+    getproc{</div><div class='add'>+      loc1 += 1</div><div class='add'>+      bl1  += 1</div><div class='add'>+      loc1 + bl1</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  pr1.call; pr2.call</div><div class='add'>+  pr1.call; pr2.call</div><div class='add'>+  pr1.call; pr2.call</div><div class='add'>+  (pr1.call + pr2.call) * loc1</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 2]}, %q{</div><div class='add'>+  def proc(&amp;pr)</div><div class='add'>+    pr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    a = 1</div><div class='add'>+    m2{</div><div class='add'>+      a</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m2</div><div class='add'>+    b = 2</div><div class='add'>+    proc{</div><div class='add'>+      [yield, b]</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  pr = m</div><div class='add'>+  x = ['a', 1,2,3,4,5,6,7,8,9,0,</div><div class='add'>+            1,2,3,4,5,6,7,8,9,0,</div><div class='add'>+            1,2,3,4,5,6,7,8,9,0,</div><div class='add'>+            1,2,3,4,5,6,7,8,9,0,</div><div class='add'>+            1,2,3,4,5,6,7,8,9,0,]</div><div class='add'>+  pr.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def proc(&amp;pr)</div><div class='add'>+    pr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    a = 1</div><div class='add'>+    m2{</div><div class='add'>+      a</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def m2</div><div class='add'>+    b = 2</div><div class='add'>+    proc{</div><div class='add'>+      [yield, b]</div><div class='add'>+    }</div><div class='add'>+    100000.times{|x|</div><div class='add'>+      "#{x}"</div><div class='add'>+    }</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:C, :C]}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+    $pr = proc{</div><div class='add'>+      (1..2).map{</div><div class='add'>+        Const</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+  $pr.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{top}, %q{</div><div class='add'>+  Const = :top</div><div class='add'>+  class C</div><div class='add'>+    Const = :C</div><div class='add'>+  end</div><div class='add'>+  pr = proc{</div><div class='add'>+    Const</div><div class='add'>+  }</div><div class='add'>+  C.class_eval %q{</div><div class='add'>+    pr.call</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def m(&amp;b)</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{|e_proctest| e_proctest}.call(1)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{12}, %q{</div><div class='add'>+  def m(&amp;b)</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{|e_proctest1, e_proctest2|</div><div class='add'>+    a = e_proctest1 * e_proctest2 * 2</div><div class='add'>+    a * 3</div><div class='add'>+  }.call(1, 2)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[[], [1], [1, 2], [1, 2, 3]]}, %q{</div><div class='add'>+  [</div><div class='add'>+  Proc.new{|*args| args}.call(),</div><div class='add'>+  Proc.new{|*args| args}.call(1),</div><div class='add'>+  Proc.new{|*args| args}.call(1, 2),</div><div class='add'>+  Proc.new{|*args| args}.call(1, 2, 3),</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[[nil, []], [1, []], [1, [2]], [1, [2, 3]]]}, %q{</div><div class='add'>+  [</div><div class='add'>+  Proc.new{|a, *b| [a, b]}.call(),</div><div class='add'>+  Proc.new{|a, *b| [a, b]}.call(1),</div><div class='add'>+  Proc.new{|a, *b| [a, b]}.call(1, 2),</div><div class='add'>+  Proc.new{|a, *b| [a, b]}.call(1, 2, 3),</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{0}, %q{</div><div class='add'>+  pr = proc{</div><div class='add'>+    $SAFE</div><div class='add'>+  }</div><div class='add'>+  $SAFE = 1</div><div class='add'>+  pr.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 0]}, %q{</div><div class='add'>+  pr = proc{</div><div class='add'>+    $SAFE += 1</div><div class='add'>+  }</div><div class='add'>+  [pr.call, $SAFE]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  def m(&amp;b)</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+  m{1}.call</div><div class='add'>+}</div><div class='add'>+assert_equal %q{3}, %q{</div><div class='add'>+  def m(&amp;b)</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m{</div><div class='add'>+    a = 1</div><div class='add'>+    a + 2</div><div class='add'>+  }.call</div><div class='add'>+}</div><div class='add'>+assert_equal %Q{ok\n}, %q{</div><div class='add'>+  class A; def get_block; proc {puts "ok"} end end</div><div class='add'>+  block = A.new.get_block</div><div class='add'>+  GC.start</div><div class='add'>+  block.call</div><div class='add'>+}, '[ruby-core:14885]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  a = lambda {|x, y, &amp;b| b }</div><div class='add'>+  b = a.curry[1]</div><div class='add'>+  if b.call(2){} == nil</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:15551]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  lambda {</div><div class='add'>+    break :ok</div><div class='add'>+    :ng</div><div class='add'>+  }.call</div><div class='add'>+}, '[ruby-dev:34646]'</div><div class='add'>+</div><div class='add'>+assert_equal %q{[:bar, :foo]}, %q{</div><div class='add'>+  def foo</div><div class='add'>+    klass = Class.new do</div><div class='add'>+      define_method(:bar) do</div><div class='add'>+        return :bar</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    [klass.new.bar, :foo]</div><div class='add'>+  end</div><div class='add'>+  foo</div><div class='add'>+}, "[ ruby-Bugs-19304 ]"</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+   $x = :ok</div><div class='add'>+   def def7(x, y)</div><div class='add'>+      x[y]</div><div class='add'>+      $x = :ng</div><div class='add'>+   end</div><div class='add'>+   def test_def7</div><div class='add'>+      def7(lambda {|x| x.call}, Proc.new {return})</div><div class='add'>+      $x = :ng</div><div class='add'>+   end</div><div class='add'>+   test_def7</div><div class='add'>+   $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  lambda { a = lambda { return }; $x = :ng; a[]; $x = :ok }.call</div><div class='add'>+  $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  lambda { a = lambda { break }; $x = :ng; a[]; $x = :ok }.call</div><div class='add'>+  $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def def8</div><div class='add'>+    $x = :ng</div><div class='add'>+    lambda { a = Proc.new { return }; a[]}.call</div><div class='add'>+    $x = :ok</div><div class='add'>+  end</div><div class='add'>+  def8</div><div class='add'>+  $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+   def def9</div><div class='add'>+      lambda {|a| $x = :ok; a[]; $x = :ng }.call(Proc.new { return })</div><div class='add'>+      $x = :ng</div><div class='add'>+   end</div><div class='add'>+   def9</div><div class='add'>+   $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+   def def10</div><div class='add'>+     $x = :ng</div><div class='add'>+     lambda { 1.times { return } }.call</div><div class='add'>+     $x = :ok</div><div class='add'>+   end</div><div class='add'>+   $x = :ok</div><div class='add'>+   def10</div><div class='add'>+   $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+   def def11</div><div class='add'>+      yield</div><div class='add'>+   end</div><div class='add'>+   begin</div><div class='add'>+      lambda { def11 { return } }.call</div><div class='add'>+   rescue LocalJumpError</div><div class='add'>+      :ng</div><div class='add'>+   else</div><div class='add'>+      :ok</div><div class='add'>+   end</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+   def def12</div><div class='add'>+      b = Proc.new { $x = :ng; lambda { return }.call; $x = :ok }.call</div><div class='add'>+   end</div><div class='add'>+   def12</div><div class='add'>+   $x</div><div class='add'>+}, '[ruby-core:17164]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def m</div><div class='add'>+    pr = proc{</div><div class='add'>+      proc{</div><div class='add'>+        return :ok</div><div class='add'>+      }</div><div class='add'>+    }.call</div><div class='add'>+    pr.call</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+  m()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    def call_it</div><div class='add'>+      p = Proc.new</div><div class='add'>+      p.call</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def give_it</div><div class='add'>+    proc { :ok }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  f = Foo.new</div><div class='add'>+  a_proc = give_it</div><div class='add'>+  f.call_it(&amp;give_it())</div><div class='add'>+}, '[ruby-core:15711]'</div><div class='add'>+</div><div class='add'>+assert_equal 'foo!', %q{</div><div class='add'>+  class FooProc &lt; Proc</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = "foo!"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      @foo</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar</div><div class='add'>+    FooProc.new &amp;lambda{</div><div class='add'>+      p 1</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  fp = bar(&amp;lambda{</div><div class='add'>+    p 2</div><div class='add'>+  })</div><div class='add'>+</div><div class='add'>+  fp.bar</div><div class='add'>+}, 'Subclass of Proc'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  o = Object.new</div><div class='add'>+  def o.write(s); end</div><div class='add'>+  $stderr = o</div><div class='add'>+  at_exit{</div><div class='add'>+    print $!.message</div><div class='add'>+  }</div><div class='add'>+  raise "ok"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  lambda do</div><div class='add'>+    class A</div><div class='add'>+      class B</div><div class='add'>+        proc{return :ng}.call</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end.call</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  $proc = proc{return}</div><div class='add'>+  begin</div><div class='add'>+    lambda do</div><div class='add'>+      class A</div><div class='add'>+        class B</div><div class='add'>+          $proc.call</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end.call</div><div class='add'>+    :ng</div><div class='add'>+  rescue LocalJumpError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def x</div><div class='add'>+    binding</div><div class='add'>+  end</div><div class='add'>+  b = x{|a| a }</div><div class='add'>+  b.eval('yield("ok")')</div><div class='add'>+}, '[Bug #5634]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def x</div><div class='add'>+    binding</div><div class='add'>+  end</div><div class='add'>+  eval("x { 'ok' }").eval "yield"</div><div class='add'>+}, '[Bug #5634]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def x</div><div class='add'>+    binding</div><div class='add'>+  end</div><div class='add'>+  def m</div><div class='add'>+    x{ 'ok' }</div><div class='add'>+  end</div><div class='add'>+  eval('yield', m)</div><div class='add'>+}, '[Bug #5634]'</div><div class='add'>+</div><div class='head'>diff --git a/bootstraptest/test_string.rb b/bootstraptest/test_string.rb<br/>new file mode 100644<br/>index 0000000000..849dcd45b0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_string.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_string.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  inspect.clear</div><div class='add'>+}, '[ruby-core:68110]'</div><div class='head'>diff --git a/bootstraptest/test_struct.rb b/bootstraptest/test_struct.rb<br/>new file mode 100644<br/>index 0000000000..a65964d5f9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_struct.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_struct.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+assert_equal 'Struct::Foo', %q{</div><div class='add'>+  Struct.instance_eval { const_set(:Foo, nil) }</div><div class='add'>+  Struct.new("Foo")</div><div class='add'>+  Struct::Foo</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb<br/>new file mode 100644<br/>index 0000000000..a111990a1f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_syntax.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_syntax.rb</a></div><div class='hunk'>@@ -0,0 +1,904 @@</div><div class='add'>+assert_equal %q{4}, %q{1 &amp;&amp; 2 &amp;&amp; 3 &amp;&amp; 4}</div><div class='add'>+assert_equal %q{}, %q{1 &amp;&amp; nil &amp;&amp; 3 &amp;&amp; 4}</div><div class='add'>+assert_equal %q{}, %q{1 &amp;&amp; 2 &amp;&amp; 3 &amp;&amp; nil}</div><div class='add'>+assert_equal %q{false}, %q{1 &amp;&amp; 2 &amp;&amp; 3 &amp;&amp; false}</div><div class='add'>+assert_equal %q{4}, %q{1 and 2 and 3 and 4}</div><div class='add'>+assert_equal %q{}, %q{1 and nil and 3 and 4}</div><div class='add'>+assert_equal %q{}, %q{1 and 2 and 3 and nil}</div><div class='add'>+assert_equal %q{false}, %q{1 and 2 and 3 and false}</div><div class='add'>+assert_equal %q{}, %q{nil &amp;&amp; true}</div><div class='add'>+assert_equal %q{false}, %q{false &amp;&amp; true}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  case 1</div><div class='add'>+  when 2</div><div class='add'>+    :ng</div><div class='add'>+  end}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case 1</div><div class='add'>+  when 10,20,30</div><div class='add'>+    :ng1</div><div class='add'>+  when 1,2,3</div><div class='add'>+    :ok</div><div class='add'>+  when 100,200,300</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :elseng</div><div class='add'>+  end}</div><div class='add'>+assert_equal %q{elseok}, %q{</div><div class='add'>+  case 123</div><div class='add'>+  when 10,20,30</div><div class='add'>+    :ng1</div><div class='add'>+  when 1,2,3</div><div class='add'>+    :ng2</div><div class='add'>+  when 100,200,300</div><div class='add'>+    :ng3</div><div class='add'>+  else</div><div class='add'>+    :elseok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case 'test'</div><div class='add'>+  when /testx/</div><div class='add'>+    :ng1</div><div class='add'>+  when /test/</div><div class='add'>+    :ok</div><div class='add'>+  when /tetxx/</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :ng_else</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case Object.new</div><div class='add'>+  when Object</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case Object</div><div class='add'>+  when Object.new</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case 'test'</div><div class='add'>+  when 'tes'</div><div class='add'>+    :ng</div><div class='add'>+  when 'te'</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case 'test'</div><div class='add'>+  when 'tes'</div><div class='add'>+    :ng</div><div class='add'>+  when 'te'</div><div class='add'>+    :ng</div><div class='add'>+  when 'test'</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ng}, %q{</div><div class='add'>+  case 'test'</div><div class='add'>+  when 'tes'</div><div class='add'>+    :ng</div><div class='add'>+  when /te/</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case 'test'</div><div class='add'>+  when 'tes'</div><div class='add'>+    :ng</div><div class='add'>+  when /test/</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{100}, %q{</div><div class='add'>+  def test(arg)</div><div class='add'>+    case 1</div><div class='add'>+    when 2</div><div class='add'>+      3</div><div class='add'>+    end</div><div class='add'>+    return arg</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  test(100)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [1, 2]</div><div class='add'>+  case 1</div><div class='add'>+  when *ary</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [1, 2]</div><div class='add'>+  case 3</div><div class='add'>+  when *ary</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [1, 2]</div><div class='add'>+  case 1</div><div class='add'>+  when :x, *ary</div><div class='add'>+    :ok</div><div class='add'>+  when :z</div><div class='add'>+    :ng1</div><div class='add'>+  else</div><div class='add'>+    :ng2</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [1, 2]</div><div class='add'>+  case 3</div><div class='add'>+  when :x, *ary</div><div class='add'>+    :ng1</div><div class='add'>+  when :z</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep]}, %q{</div><div class='add'>+</div><div class='add'>+  def make_perm ary, num</div><div class='add'>+    if num == 1</div><div class='add'>+      ary.map{|e| [e]}</div><div class='add'>+    else</div><div class='add'>+      base = make_perm(ary, num-1)</div><div class='add'>+      res  = []</div><div class='add'>+      base.each{|b|</div><div class='add'>+        ary.each{|e|</div><div class='add'>+          res &lt;&lt; [e] + b</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+      res</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def each_test</div><div class='add'>+    conds = make_perm(['fv', 'tv'], 3)</div><div class='add'>+    bangs = make_perm(['', '!'], 3)</div><div class='add'>+    exprs = make_perm(['and', 'or'], 3)</div><div class='add'>+    ['if', 'unless'].each{|syn|</div><div class='add'>+      conds.each{|cs|</div><div class='add'>+        bangs.each{|bs|</div><div class='add'>+          exprs.each{|es|</div><div class='add'>+            yield(syn, cs, bs, es)</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  fv = false</div><div class='add'>+  tv = true</div><div class='add'>+</div><div class='add'>+  $ans = []</div><div class='add'>+  each_test{|syn, conds, bangs, exprs|</div><div class='add'>+    c1, c2, c3 = conds</div><div class='add'>+    bang1, bang2, bang3 = bangs</div><div class='add'>+    e1, e2 = exprs</div><div class='add'>+    eval %Q{</div><div class='add'>+      #{syn} #{bang1}#{c1} #{e1} #{bang2}#{c2} #{e2} #{bang3}#{c3}</div><div class='add'>+        $ans &lt;&lt; :then</div><div class='add'>+      else</div><div class='add'>+        $ans &lt;&lt; :false</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  each_test{|syn, conds, bangs, exprs|</div><div class='add'>+    c1, c2, c3 = conds</div><div class='add'>+    bang1, bang2, bang3 = bangs</div><div class='add'>+    e1, e2 = exprs</div><div class='add'>+    eval %Q{</div><div class='add'>+      #{syn} #{bang1}#{c1} #{e1} #{bang2}#{c2} #{e2} #{bang3}#{c3}</div><div class='add'>+        $ans &lt;&lt; :then</div><div class='add'>+      end</div><div class='add'>+      $ans &lt;&lt; :sep</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  $ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(m)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{method}, %q{</div><div class='add'>+  def m</div><div class='add'>+  end</div><div class='add'>+  defined?(m)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(a.class)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{method}, %q{</div><div class='add'>+  a = 1</div><div class='add'>+  defined?(a.class)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{["method", "method", "method", "method", nil, nil, "method", "method", "method", nil]}, %q{</div><div class='add'>+  class C</div><div class='add'>+    def test</div><div class='add'>+      [defined?(m1()), defined?(self.m1), defined?(C.new.m1),</div><div class='add'>+       defined?(m2()), defined?(self.m2), defined?(C.new.m2),</div><div class='add'>+       defined?(m3()), defined?(self.m3), defined?(C.new.m3)]</div><div class='add'>+    end</div><div class='add'>+    def m1</div><div class='add'>+    end</div><div class='add'>+    private</div><div class='add'>+    def m2</div><div class='add'>+    end</div><div class='add'>+    protected</div><div class='add'>+    def m3</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.test + [defined?(C.new.m3)]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[nil, nil, nil, nil, "global-variable", "global-variable", nil, nil]}, %q{</div><div class='add'>+  $ans = [defined?($1), defined?($2), defined?($3), defined?($4)]</div><div class='add'>+  /(a)(b)/ =~ 'ab'</div><div class='add'>+  $ans + [defined?($1), defined?($2), defined?($3), defined?($4)]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{nilselftruefalse}, %q{</div><div class='add'>+  defined?(nil) + defined?(self) +</div><div class='add'>+    defined?(true) + defined?(false)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(@a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{instance-variable}, %q{</div><div class='add'>+  @a = 1</div><div class='add'>+  defined?(@a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(@@a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{class variable}, %q{</div><div class='add'>+  @@a = 1</div><div class='add'>+  defined?(@@a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?($a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{global-variable}, %q{</div><div class='add'>+  $a = 1</div><div class='add'>+  defined?($a)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(C_definedtest)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{constant}, %q{</div><div class='add'>+  C_definedtest = 1</div><div class='add'>+  defined?(C_definedtest)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(::C_definedtest)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{constant}, %q{</div><div class='add'>+  C_definedtest = 1</div><div class='add'>+  defined?(::C_definedtest)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  defined?(C_definedtestA::C_definedtestB::C_definedtestC)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{constant}, %q{</div><div class='add'>+  class C_definedtestA</div><div class='add'>+    class C_definedtestB</div><div class='add'>+      C_definedtestC = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  defined?(C_definedtestA::C_definedtestB::C_definedtestC)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{30}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  30.times{|ib|</div><div class='add'>+    if ib % 10 == 0 .. true</div><div class='add'>+      sum += ib</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{63}, %q{</div><div class='add'>+  sum = 0</div><div class='add'>+  30.times{|ib|</div><div class='add'>+    if ib % 10 == 0 ... true</div><div class='add'>+      sum += ib</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  sum</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[["NUM", "Type: NUM\n"], ["NUM", "123\n"], ["NUM", "456\n"], ["NUM", "Type: ARP\n"], ["NUM", "aaa\n"], ["NUM", "bbb\n"], ["NUM", "\f\n"], ["ARP", "Type: ARP\n"], ["ARP", "aaa\n"], ["ARP", "bbb\n"]]}, %q{</div><div class='add'>+  t = nil</div><div class='add'>+  unless ''.respond_to? :lines</div><div class='add'>+    class String</div><div class='add'>+      def lines</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  ary = []</div><div class='add'>+"this must not print</div><div class='add'>+Type: NUM</div><div class='add'>+123</div><div class='add'>+456</div><div class='add'>+Type: ARP</div><div class='add'>+aaa</div><div class='add'>+bbb</div><div class='add'>+\f</div><div class='add'>+this must not print</div><div class='add'>+hoge</div><div class='add'>+Type: ARP</div><div class='add'>+aaa</div><div class='add'>+bbb</div><div class='add'>+".lines.each{|l|</div><div class='add'>+    if (t = l[/^Type: (.*)/, 1])..(/^\f/ =~ l)</div><div class='add'>+      ary &lt;&lt; [t, l]</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  ary</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{if true  then 1 ; end}</div><div class='add'>+assert_equal %q{}, %q{if false then 1 ; end}</div><div class='add'>+assert_equal %q{1}, %q{if true  then 1 ; else; 2; end}</div><div class='add'>+assert_equal %q{2}, %q{if false then 1 ; else; 2; end}</div><div class='add'>+assert_equal %q{}, %q{if true  then   ; elsif true then ; 1 ; end}</div><div class='add'>+assert_equal %q{1}, %q{if false then   ; elsif true then ; 1 ; end}</div><div class='add'>+assert_equal %q{}, %q{unless true  then 1 ; end}</div><div class='add'>+assert_equal %q{1}, %q{unless false then 1 ; end}</div><div class='add'>+assert_equal %q{2}, %q{unless true  then 1 ; else; 2; end}</div><div class='add'>+assert_equal %q{1}, %q{unless false then 1 ; else; 2; end}</div><div class='add'>+assert_equal %q{1}, %q{1 if true}</div><div class='add'>+assert_equal %q{}, %q{1 if false}</div><div class='add'>+assert_equal %q{}, %q{1 if nil}</div><div class='add'>+assert_equal %q{}, %q{1 unless true}</div><div class='add'>+assert_equal %q{1}, %q{1 unless false}</div><div class='add'>+assert_equal %q{1}, %q{1 unless nil}</div><div class='add'>+assert_equal %q{1}, %q{1 || 2 || 3 || 4}</div><div class='add'>+assert_equal %q{1}, %q{1 || false || 3 || 4}</div><div class='add'>+assert_equal %q{2}, %q{nil || 2 || 3 || 4}</div><div class='add'>+assert_equal %q{2}, %q{false || 2 || 3 || 4}</div><div class='add'>+assert_equal %q{false}, %q{nil || false || nil || false}</div><div class='add'>+assert_equal %q{1}, %q{1 or 2 or 3 or 4}</div><div class='add'>+assert_equal %q{1}, %q{1 or false or 3 or 4}</div><div class='add'>+assert_equal %q{2}, %q{nil or 2 or 3 or 4}</div><div class='add'>+assert_equal %q{2}, %q{false or 2 or 3 or 4}</div><div class='add'>+assert_equal %q{1}, %q{if true &amp;&amp; ""; then 1; end}</div><div class='add'>+assert_equal %q{1}, %q{if nil || true; then 1; end}</div><div class='add'>+assert_equal %q{false}, %q{nil or false or nil or false}</div><div class='add'>+assert_equal %q{elseng}, %q{</div><div class='add'>+  case</div><div class='add'>+  when 1==2, 2==3</div><div class='add'>+    :ng1</div><div class='add'>+  when false, 4==5</div><div class='add'>+    :ok</div><div class='add'>+  when false</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :elseng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  case</div><div class='add'>+  when nil, nil</div><div class='add'>+    :ng1</div><div class='add'>+  when 1,2,3</div><div class='add'>+    :ok</div><div class='add'>+  when false, false</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :elseng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{elseok}, %q{</div><div class='add'>+  case</div><div class='add'>+  when nil</div><div class='add'>+    :ng1</div><div class='add'>+  when false</div><div class='add'>+    :ng2</div><div class='add'>+  else</div><div class='add'>+    :elseok</div><div class='add'>+  end}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  case</div><div class='add'>+  when 1</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  r = nil</div><div class='add'>+  ary = []</div><div class='add'>+  case</div><div class='add'>+  when false</div><div class='add'>+    r = :ng1</div><div class='add'>+  when false, false</div><div class='add'>+    r = :ng2</div><div class='add'>+  when *ary</div><div class='add'>+    r = :ng3</div><div class='add'>+  when false, *ary</div><div class='add'>+    r = :ng4</div><div class='add'>+  when true, *ary</div><div class='add'>+    r = :ok</div><div class='add'>+  end</div><div class='add'>+  r</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = []</div><div class='add'>+  case</div><div class='add'>+  when false, *ary</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [false, nil]</div><div class='add'>+  case</div><div class='add'>+  when *ary</div><div class='add'>+    :ng</div><div class='add'>+  else</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [false, nil]</div><div class='add'>+  case</div><div class='add'>+  when *ary</div><div class='add'>+    :ng</div><div class='add'>+  when true</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng2</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ng}, %q{</div><div class='add'>+  ary = [false, nil]</div><div class='add'>+  case</div><div class='add'>+  when *ary</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [false, true]</div><div class='add'>+  case</div><div class='add'>+  when *ary</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ary = [false, true]</div><div class='add'>+  case</div><div class='add'>+  when false, false</div><div class='add'>+  when false, *ary</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  while i &lt; 10</div><div class='add'>+    i+=1</div><div class='add'>+  end}</div><div class='add'>+assert_equal %q{10}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  while i &lt; 10</div><div class='add'>+    i+=1</div><div class='add'>+  end; i}</div><div class='add'>+assert_equal %q{}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  until i &gt; 10</div><div class='add'>+    i+=1</div><div class='add'>+  end}</div><div class='add'>+assert_equal %q{11}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  until i &gt; 10</div><div class='add'>+    i+=1</div><div class='add'>+  end; i}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  begin</div><div class='add'>+    i+=1</div><div class='add'>+  end while false</div><div class='add'>+  i</div><div class='add'>+}</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  i = 0</div><div class='add'>+  begin</div><div class='add'>+    i+=1</div><div class='add'>+  end until true</div><div class='add'>+  i</div><div class='add'>+}</div><div class='add'>+def assert_syntax_error expected, code, message = ''</div><div class='add'>+  assert_equal "#{expected}",</div><div class='add'>+    "begin eval(%q{#{code}}, nil, '', 0)"'; rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end', message</div><div class='add'>+end</div><div class='add'>+assert_syntax_error "unterminated string meets end of file", '().."', '[ruby-dev:29732]'</div><div class='add'>+assert_equal %q{[]}, %q{$&amp;;[]}, '[ruby-dev:31068]'</div><div class='add'>+assert_syntax_error "syntax error, unexpected *, expecting '}'", %q{{*0}}, '[ruby-dev:31072]'</div><div class='add'>+assert_syntax_error "`@0' is not allowed as an instance variable name", %q{@0..0}, '[ruby-dev:31095]'</div><div class='add'>+assert_syntax_error "identifier $00 is not valid to get", %q{$00..0}, '[ruby-dev:31100]'</div><div class='add'>+assert_syntax_error "identifier $00 is not valid to set", %q{0..$00=1}</div><div class='add'>+assert_equal %q{0}, %q{[*0];0}, '[ruby-dev:31102]'</div><div class='add'>+assert_syntax_error "syntax error, unexpected ')'", %q{v0,(*,v1,) = 0}, '[ruby-dev:31104]'</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  class &lt;&lt; (ary=[]); def []; 0; end; def []=(x); super(0,x);end;end; ary[]+=1</div><div class='add'>+}, '[ruby-dev:31110]'</div><div class='add'>+assert_syntax_error "Can't set variable $1", %q{0..$1=1}, '[ruby-dev:31118]'</div><div class='add'>+assert_valid_syntax %q{1.times{1+(1&amp;&amp;next)}}, '[ruby-dev:31119]'</div><div class='add'>+assert_valid_syntax %q{x=-1;loop{x+=1&amp;&amp;redo if (x+=1).zero?}}, '[ruby-dev:31119]'</div><div class='add'>+assert_syntax_error %q{syntax error, unexpected end-of-input}, %q{!}, '[ruby-dev:31243]'</div><div class='add'>+assert_equal %q{[nil]}, %q{[()]}, '[ruby-dev:31252]'</div><div class='add'>+assert_equal %q{true}, %q{!_=()}, '[ruby-dev:31263]'</div><div class='add'>+assert_equal 'ok', %q{while true; redo; end if 1 == 2; :ok}, '[ruby-dev:31360]'</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  1.times {</div><div class='add'>+    begin</div><div class='add'>+    ensure</div><div class='add'>+      next</div><div class='add'>+    end</div><div class='add'>+  }; :ok</div><div class='add'>+}, '[ruby-dev:31373]'</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  flag = false</div><div class='add'>+  1.times {</div><div class='add'>+    next if flag</div><div class='add'>+    flag = true</div><div class='add'>+    begin</div><div class='add'>+    ensure</div><div class='add'>+      redo</div><div class='add'>+    end</div><div class='add'>+  }; :ok</div><div class='add'>+}, '[ruby-dev:31373]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  1.times{</div><div class='add'>+    p(1, (next; 2))</div><div class='add'>+  }; :ok</div><div class='add'>+}</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  1 + (while true</div><div class='add'>+         break 2 if (i+=1) &gt; 1</div><div class='add'>+         next</div><div class='add'>+       end)</div><div class='add'>+}</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  1 + (while true</div><div class='add'>+         break 2 if (i+=1) &gt; 1</div><div class='add'>+         p(1, (next; 2))</div><div class='add'>+       end)</div><div class='add'>+}</div><div class='add'>+# redo</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  1.times{</div><div class='add'>+    break if i&gt;1</div><div class='add'>+    i+=1</div><div class='add'>+    p(1, (redo; 2))</div><div class='add'>+  }; :ok</div><div class='add'>+}</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  1 + (while true</div><div class='add'>+         break 2 if (i+=1) &gt; 1</div><div class='add'>+         redo</div><div class='add'>+       end)</div><div class='add'>+}</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  1 + (while true</div><div class='add'>+         break 2 if (i+=1) &gt; 1</div><div class='add'>+         p(1, (redo; 2))</div><div class='add'>+       end)</div><div class='add'>+}</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  a = [0]</div><div class='add'>+  a[*a]+=1</div><div class='add'>+}</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  ary = [0]</div><div class='add'>+  case 1</div><div class='add'>+  when *ary, 1</div><div class='add'>+    1</div><div class='add'>+  end +</div><div class='add'>+  case</div><div class='add'>+  when *ary</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_match /invalid multibyte char/, %q{</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  eval("\"\xf0".force_encoding("utf-8"))</div><div class='add'>+}, '[ruby-dev:32429]'</div><div class='add'>+</div><div class='add'>+# method ! and !=</div><div class='add'>+assert_equal 'true', %q{!false}</div><div class='add'>+assert_equal 'true', %q{1 == 1}</div><div class='add'>+assert_equal 'true', %q{1 != 2}</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class C; def !=(obj); true; end; end</div><div class='add'>+  C.new != 1</div><div class='add'>+}</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class C; def !@; true; end; end</div><div class='add'>+  !C.new</div><div class='add'>+}</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  eval "while true; return; end rescue p $!"</div><div class='add'>+}, '[ruby-dev:31663]'</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def bar</div><div class='add'>+    raise</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    1.times{</div><div class='add'>+      begin</div><div class='add'>+        return bar</div><div class='add'>+      rescue</div><div class='add'>+        :ok</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    next if counter != 0</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, '[ruby-core:14385]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    next if counter != 0</div><div class='add'>+    break :ok</div><div class='add'>+  end # direct</div><div class='add'>+}, '[ruby-core:14385]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    break if counter == 0</div><div class='add'>+    "#{next}"</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    break if counter == 0</div><div class='add'>+    next</div><div class='add'>+    redo</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    break if counter == 0</div><div class='add'>+    next</div><div class='add'>+    "#{ redo }"</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    raise</div><div class='add'>+  rescue</div><div class='add'>+    counter = 2</div><div class='add'>+    while true</div><div class='add'>+      counter -= 1</div><div class='add'>+      break if counter == 0</div><div class='add'>+      next</div><div class='add'>+      retry</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    break if counter == 0</div><div class='add'>+    next</div><div class='add'>+    "#{ break }"</div><div class='add'>+  end</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  counter = 2</div><div class='add'>+  while true</div><div class='add'>+    counter -= 1</div><div class='add'>+    next if counter != 0</div><div class='add'>+    "#{ break }"</div><div class='add'>+  end</div><div class='add'>+}, 'reported by Yusuke ENDOH'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  1.times do</div><div class='add'>+    [</div><div class='add'>+      1, 2, 3, 4, 5, 6, 7, 8,</div><div class='add'>+      begin</div><div class='add'>+        false ? next : p</div><div class='add'>+        break while true</div><div class='add'>+      end</div><div class='add'>+    ]</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}, '[ruby-dev:32882]'</div><div class='add'>+</div><div class='add'>+assert_equal "1\n2\n", %q{</div><div class='add'>+  i = 0</div><div class='add'>+  while i&lt;2</div><div class='add'>+    i += 1</div><div class='add'>+    next p(i)</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_valid_syntax('1.times {|i|print (42),1;}', '[ruby-list:44479]')</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def a() end</div><div class='add'>+  begin</div><div class='add'>+    if defined?(a(1).a)</div><div class='add'>+      :ng</div><div class='add'>+    else</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  rescue</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16010]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def a() end</div><div class='add'>+  begin</div><div class='add'>+    if defined?(a::B)</div><div class='add'>+      :ng</div><div class='add'>+    else</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  rescue</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16010]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  defined? C &amp;&amp; 0</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  class C</div><div class='add'>+    def m</div><div class='add'>+      defined?(super())</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  C.new.m</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class X &lt; RuntimeError;end</div><div class='add'>+  x = [X]</div><div class='add'>+  begin</div><div class='add'>+   raise X</div><div class='add'>+  rescue *x</div><div class='add'>+   :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:14537]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  a = [false]</div><div class='add'>+  (a[0] &amp;&amp;= true) == false ? :ok : :ng</div><div class='add'>+}, '[ruby-dev:34679]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  a = []</div><div class='add'>+  100.times {|i| a &lt;&lt; i &lt;&lt; nil &lt;&lt; nil }</div><div class='add'>+  p a.compact!</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "#{}""#{}ok"</div><div class='add'>+}, '[ruby-dev:38968]'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  "o" "#{}k"</div><div class='add'>+}, '[ruby-dev:38980]'</div><div class='add'>+</div><div class='add'>+bug2415 = '[ruby-core:26961]'</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  0.times do</div><div class='add'>+    0.times do</div><div class='add'>+      def x(a=1, b, *rest); nil end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, bug2415</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  0.times do</div><div class='add'>+    0.times do</div><div class='add'>+      def x@; nil end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, bug2415</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  0.times do</div><div class='add'>+    0.times do</div><div class='add'>+      def x(a = 0.times do</div><div class='add'>+              def y(a=1, b, *rest); nil; end</div><div class='add'>+            end)</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, bug2415</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  0.times do</div><div class='add'>+    0.times do</div><div class='add'>+      def x(a = 0.times do</div><div class='add'>+              def x@; nil; end</div><div class='add'>+            end)</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}, bug2415</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  a {</div><div class='add'>+    b {|c.d| }</div><div class='add'>+    e</div><div class='add'>+  }</div><div class='add'>+}, '[ruby-dev:39861]'</div><div class='add'>+</div><div class='add'>+bug1240 = '[ruby-core:22637]'</div><div class='add'>+assert_valid_syntax('x y { "#{}".z { } }', bug1240)</div><div class='add'>+assert_valid_syntax('x y { "#{}".z do end }', bug1240)</div><div class='add'>+</div><div class='add'>+assert_valid_syntax('y "#{a 1}" do end', '[ruby-core:29579]')</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo do</div><div class='add'>+    s = defined?(raise + 1)</div><div class='add'>+    Class</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:30293]'</div><div class='head'>diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb<br/>new file mode 100644<br/>index 0000000000..d16295de8b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_thread.rb?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>bootstraptest/test_thread.rb</a></div><div class='hunk'>@@ -0,0 +1,484 @@</div><div class='add'>+# Thread and Fiber</div><div class='add'>+</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  Thread.new{</div><div class='add'>+  }.join</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  Thread.new{</div><div class='add'>+    :ok</div><div class='add'>+  }.value</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+begin</div><div class='add'>+  v = 0</div><div class='add'>+  (1..200).map{|i|</div><div class='add'>+    Thread.new{</div><div class='add'>+      i</div><div class='add'>+    }</div><div class='add'>+  }.each{|t|</div><div class='add'>+    v += t.value</div><div class='add'>+  }</div><div class='add'>+  v == 20100 ? :ok : v</div><div class='add'>+rescue ThreadError =&gt; e</div><div class='add'>+  :ok if /can't create Thread/ =~ e.message</div><div class='add'>+end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+begin</div><div class='add'>+  :ok if 5000 == 5000.times{|e|</div><div class='add'>+    (1..2).map{</div><div class='add'>+      Thread.new{</div><div class='add'>+      }</div><div class='add'>+    }.each{|e|</div><div class='add'>+      e.join()</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+rescue ThreadError =&gt; e</div><div class='add'>+  :ok if /can't create Thread/ =~ e.message</div><div class='add'>+end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+begin</div><div class='add'>+  :ok if 5000 == 5000.times{|e|</div><div class='add'>+    (1..2).map{</div><div class='add'>+      Thread.new{</div><div class='add'>+      }</div><div class='add'>+    }.each{|e|</div><div class='add'>+      e.join(1000000000)</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+rescue ThreadError =&gt; e</div><div class='add'>+  :ok if /can't create Thread/ =~ e.message</div><div class='add'>+end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+begin</div><div class='add'>+  :ok if 5000 == 5000.times{</div><div class='add'>+    t = Thread.new{}</div><div class='add'>+    while t.alive?</div><div class='add'>+      Thread.pass</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+rescue NoMemoryError</div><div class='add'>+  :ok</div><div class='add'>+end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{100}, %q{</div><div class='add'>+  100.times{</div><div class='add'>+    Thread.new{loop{Thread.pass}}</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  Thread.new{</div><div class='add'>+    :ok</div><div class='add'>+  }.join.value</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  begin</div><div class='add'>+    Thread.new{</div><div class='add'>+      raise "ok"</div><div class='add'>+    }.join</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  ans = nil</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    begin</div><div class='add'>+      sleep 0.5</div><div class='add'>+    ensure</div><div class='add'>+      ans = :ok</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  Thread.pass until t.stop?</div><div class='add'>+  t.kill</div><div class='add'>+  t.join</div><div class='add'>+  ans</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    sleep</div><div class='add'>+  }</div><div class='add'>+  sleep 0.1</div><div class='add'>+  t.raise</div><div class='add'>+  begin</div><div class='add'>+    t.join</div><div class='add'>+    :ng</div><div class='add'>+  rescue</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    loop{}</div><div class='add'>+  }</div><div class='add'>+  Thread.pass</div><div class='add'>+  t.raise</div><div class='add'>+  begin</div><div class='add'>+    t.join</div><div class='add'>+    :ng</div><div class='add'>+  rescue</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+  }</div><div class='add'>+  Thread.pass</div><div class='add'>+  t.join</div><div class='add'>+  t.raise # raise to exited thread</div><div class='add'>+  begin</div><div class='add'>+    t.join</div><div class='add'>+    :ok</div><div class='add'>+  rescue</div><div class='add'>+    :ng</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+assert_equal %q{run}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    loop{}</div><div class='add'>+  }</div><div class='add'>+  st = t.status</div><div class='add'>+  t.kill</div><div class='add'>+  st</div><div class='add'>+}</div><div class='add'>+assert_equal %q{sleep}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    sleep</div><div class='add'>+  }</div><div class='add'>+  sleep 0.1</div><div class='add'>+  st = t.status</div><div class='add'>+  t.kill</div><div class='add'>+  st</div><div class='add'>+}</div><div class='add'>+assert_equal %q{false}, %q{</div><div class='add'>+  t = Thread.new{</div><div class='add'>+  }</div><div class='add'>+  t.kill</div><div class='add'>+  sleep 0.1</div><div class='add'>+  t.status</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[ThreadGroup, true]}, %q{</div><div class='add'>+  ptg = Thread.current.group</div><div class='add'>+  Thread.new{</div><div class='add'>+    ctg = Thread.current.group</div><div class='add'>+    [ctg.class, ctg == ptg]</div><div class='add'>+  }.value</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[1, 1]}, %q{</div><div class='add'>+  thg = ThreadGroup.new</div><div class='add'>+</div><div class='add'>+  t = Thread.new{</div><div class='add'>+    thg.add Thread.current</div><div class='add'>+    sleep</div><div class='add'>+  }</div><div class='add'>+  sleep 0.1</div><div class='add'>+  [thg.list.size, ThreadGroup::Default.list.size]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{true}, %q{</div><div class='add'>+  thg = ThreadGroup.new</div><div class='add'>+</div><div class='add'>+  t = Thread.new{sleep 5}</div><div class='add'>+  thg.add t</div><div class='add'>+  thg.list.include?(t)</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[true, nil, true]}, %q{</div><div class='add'>+  /a/ =~ 'a'</div><div class='add'>+  $a = $~</div><div class='add'>+  Thread.new{</div><div class='add'>+    $b = $~</div><div class='add'>+    /b/ =~ 'b'</div><div class='add'>+    $c = $~</div><div class='add'>+  }.join</div><div class='add'>+  $d = $~</div><div class='add'>+  [$a == $d, $b, $c != $d]</div><div class='add'>+}</div><div class='add'>+assert_equal %q{11}, %q{</div><div class='add'>+  Thread.current[:a] = 1</div><div class='add'>+  Thread.new{</div><div class='add'>+    Thread.current[:a] = 10</div><div class='add'>+    Thread.pass</div><div class='add'>+    Thread.current[:a]</div><div class='add'>+  }.value + Thread.current[:a]</div><div class='add'>+}</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  begin</div><div class='add'>+    100.times do |i|</div><div class='add'>+      begin</div><div class='add'>+        th = Thread.start(Thread.current) {|u| u.raise }</div><div class='add'>+        raise</div><div class='add'>+      rescue</div><div class='add'>+      ensure</div><div class='add'>+        th.join</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  rescue</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-dev:31371]'</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %{</div><div class='add'>+  t = Thread.new { loop {} }</div><div class='add'>+  begin</div><div class='add'>+    pid = fork {</div><div class='add'>+      exit t.status != "run"</div><div class='add'>+    }</div><div class='add'>+    Process.wait pid</div><div class='add'>+    $?.success?</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    true</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %{</div><div class='add'>+  open("zzz.rb", "w") do |f|</div><div class='add'>+    f.puts &lt;&lt;-END</div><div class='add'>+      begin</div><div class='add'>+        Thread.new { fork { GC.start } }.join</div><div class='add'>+        pid, status = Process.wait2</div><div class='add'>+        $result = status.success? ? :ok : :ng</div><div class='add'>+      rescue NotImplementedError</div><div class='add'>+        $result = :ok</div><div class='add'>+      end</div><div class='add'>+    END</div><div class='add'>+  end</div><div class='add'>+  require "./zzz.rb"</div><div class='add'>+  $result</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_finish 3, %{</div><div class='add'>+  th = Thread.new {sleep 0.2}</div><div class='add'>+  th.join(0.1)</div><div class='add'>+  th.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_finish 3, %{</div><div class='add'>+  require 'timeout'</div><div class='add'>+  th = Thread.new {sleep 0.2}</div><div class='add'>+  begin</div><div class='add'>+    Timeout.timeout(0.1) {th.join}</div><div class='add'>+  rescue Timeout::Error</div><div class='add'>+  end</div><div class='add'>+  th.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  exec "/"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  (0..10).map {</div><div class='add'>+    Thread.new {</div><div class='add'>+     10000.times {</div><div class='add'>+        Object.new.to_s</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }.each {|t|</div><div class='add'>+    t.join</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def m</div><div class='add'>+    t = Thread.new { while true; // =~ "" end }</div><div class='add'>+    sleep 0.01</div><div class='add'>+    10.times {</div><div class='add'>+      if /((ab)*(ab)*)*(b)/ =~ "ab"*7</div><div class='add'>+        return :ng if !$4</div><div class='add'>+        return :ng if $~.size != 5</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    :ok</div><div class='add'>+  ensure</div><div class='add'>+    Thread.kill t</div><div class='add'>+  end</div><div class='add'>+  m</div><div class='add'>+}, '[ruby-dev:34492]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  at_exit { Fiber.new{}.resume }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  g = enum_for(:local_variables)</div><div class='add'>+  loop { g.next }</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  g = enum_for(:block_given?)</div><div class='add'>+  loop { g.next }</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  g = enum_for(:binding)</div><div class='add'>+  loop { g.next }</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  g = "abc".enum_for(:scan, /./)</div><div class='add'>+  loop { g.next }</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  g = Module.enum_for(:new)</div><div class='add'>+  loop { g.next }</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  Fiber.new(&amp;Object.method(:class_eval)).resume("foo")</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  Thread.new("foo", &amp;Object.method(:class_eval)).join</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    Thread.new { Thread.stop }</div><div class='add'>+    Thread.stop</div><div class='add'>+    :ng</div><div class='add'>+  rescue Exception</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    m1, m2 = Thread::Mutex.new, Thread::Mutex.new</div><div class='add'>+    f1 = f2 = false</div><div class='add'>+    Thread.new { m1.lock; f2 = true; sleep 0.001 until f1; m2.lock }</div><div class='add'>+    m2.lock; f1 = true; sleep 0.001 until f2; m1.lock</div><div class='add'>+    :ng</div><div class='add'>+  rescue Exception</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+  Thread.new { m.lock }; sleep 0.1; m.lock</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+  Thread.new { m.lock }; m.lock</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+  Thread.new { m.lock }.join; m.lock</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+  Thread.new { m.lock; sleep 0.2 }</div><div class='add'>+  sleep 0.1; m.lock</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+  Thread.new { m.lock; sleep 0.2; m.unlock }</div><div class='add'>+  sleep 0.1; m.lock</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  t = Thread.new {`echo`}</div><div class='add'>+  t.join</div><div class='add'>+  $? ? :ng : :ok</div><div class='add'>+}, '[ruby-dev:35414]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    100.times{</div><div class='add'>+      (1..100).map{ Thread.new(true) {|x| x == false } }.each{|th| th.join}</div><div class='add'>+    }</div><div class='add'>+  rescue NoMemoryError, StandardError</div><div class='add'>+  end</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %{</div><div class='add'>+  open("zzz.rb", "w") do |f|</div><div class='add'>+    f.puts &lt;&lt;-'end;' # do</div><div class='add'>+      begin</div><div class='add'>+        m = Thread::Mutex.new</div><div class='add'>+        parent = Thread.current</div><div class='add'>+        th1 = Thread.new { m.lock; sleep }</div><div class='add'>+        sleep 0.01 until th1.stop?</div><div class='add'>+        Thread.new do</div><div class='add'>+          sleep 0.01 until parent.stop?</div><div class='add'>+          begin</div><div class='add'>+            fork { GC.start }</div><div class='add'>+          rescue Exception</div><div class='add'>+            parent.raise $!</div><div class='add'>+          end</div><div class='add'>+          th1.run</div><div class='add'>+        end</div><div class='add'>+        m.lock</div><div class='add'>+        pid, status = Process.wait2</div><div class='add'>+        $result = status.success? ? :ok : :ng</div><div class='add'>+      rescue NotImplementedError</div><div class='add'>+        $result = :ok</div><div class='add'>+      end</div><div class='add'>+    end;</div><div class='add'>+  end</div><div class='add'>+  require "./zzz.rb"</div><div class='add'>+  $result</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_finish 3, %q{</div><div class='add'>+  require 'thread'</div><div class='add'>+</div><div class='add'>+  lock = Thread::Mutex.new</div><div class='add'>+  cond = Thread::ConditionVariable.new</div><div class='add'>+  t = Thread.new do</div><div class='add'>+    lock.synchronize do</div><div class='add'>+      cond.wait(lock)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    pid = fork do</div><div class='add'>+      # Child</div><div class='add'>+      STDOUT.write "This is the child process.\n"</div><div class='add'>+      STDOUT.write "Child process exiting.\n"</div><div class='add'>+    end</div><div class='add'>+    Process.waitpid(pid)</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:23572]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    Process.waitpid2(fork {})[1].success? ? 'ok' : 'ng'</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  i = 0</div><div class='add'>+  Thread.start {sleep 1; exit!}</div><div class='add'>+  f = proc {|s, c| /#{c.call; s}/o }</div><div class='add'>+  th2 = Thread.new {</div><div class='add'>+    sleep 0.01 until i == 1</div><div class='add'>+    i = 2</div><div class='add'>+    f.call("bar", proc {sleep 2});</div><div class='add'>+    nil</div><div class='add'>+  }</div><div class='add'>+  th1 = Thread.new {</div><div class='add'>+    f.call("foo", proc {i = 1; sleep 0.01 until i == 2; sleep 0.01})</div><div class='add'>+    nil</div><div class='add'>+  }</div><div class='add'>+  [th1, th2].each {|t| t.join }</div><div class='add'>+  GC.start</div><div class='add'>+  f.call.source</div><div class='add'>+}</div><div class='head'>diff --git a/ccan/build_assert/build_assert.h b/ccan/build_assert/build_assert.h<br/>new file mode 100644<br/>index 0000000000..a04d1d4709<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/build_assert/build_assert.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/build_assert/build_assert.h</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+/* CC0 (Public domain) - see ccan/licenses/CC0 file for details */</div><div class='add'>+#ifndef CCAN_BUILD_ASSERT_H</div><div class='add'>+#define CCAN_BUILD_ASSERT_H</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * BUILD_ASSERT - assert a build-time dependency.</div><div class='add'>+ * @cond: the compile-time condition which must be true.</div><div class='add'>+ *</div><div class='add'>+ * Your compile will fail if the condition isn't true, or can't be evaluated</div><div class='add'>+ * by the compiler.  This can only be used within a function.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	#include &lt;stddef.h&gt;</div><div class='add'>+ *	...</div><div class='add'>+ *	static char *foo_to_char(struct foo *foo)</div><div class='add'>+ *	{</div><div class='add'>+ *		// This code needs string to be at start of foo.</div><div class='add'>+ *		BUILD_ASSERT(offsetof(struct foo, string) == 0);</div><div class='add'>+ *		return (char *)foo;</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#define BUILD_ASSERT(cond) \</div><div class='add'>+	do { (void) sizeof(char [1 - 2*!(cond)]); } while(0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.</div><div class='add'>+ * @cond: the compile-time condition which must be true.</div><div class='add'>+ *</div><div class='add'>+ * Your compile will fail if the condition isn't true, or can't be evaluated</div><div class='add'>+ * by the compiler.  This can be used in an expression: its value is "0".</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	#define foo_to_char(foo)					\</div><div class='add'>+ *		 ((char *)(foo)						\</div><div class='add'>+ *		  + BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))</div><div class='add'>+ */</div><div class='add'>+#define BUILD_ASSERT_OR_ZERO(cond) \</div><div class='add'>+	(sizeof(char [1 - 2*!(cond)]) - 1)</div><div class='add'>+</div><div class='add'>+#endif /* CCAN_BUILD_ASSERT_H */</div><div class='head'>diff --git a/ccan/check_type/check_type.h b/ccan/check_type/check_type.h<br/>new file mode 100644<br/>index 0000000000..1f77a535e4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/check_type/check_type.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/check_type/check_type.h</a></div><div class='hunk'>@@ -0,0 +1,63 @@</div><div class='add'>+/* CC0 (Public domain) - see ccan/licenses/CC0 file for details */</div><div class='add'>+#ifndef CCAN_CHECK_TYPE_H</div><div class='add'>+#define CCAN_CHECK_TYPE_H</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * check_type - issue a warning or build failure if type is not correct.</div><div class='add'>+ * @expr: the expression whose type we should check (not evaluated).</div><div class='add'>+ * @type: the exact type we expect the expression to be.</div><div class='add'>+ *</div><div class='add'>+ * This macro is usually used within other macros to try to ensure that a macro</div><div class='add'>+ * argument is of the expected type.  No type promotion of the expression is</div><div class='add'>+ * done: an unsigned int is not the same as an int!</div><div class='add'>+ *</div><div class='add'>+ * check_type() always evaluates to 0.</div><div class='add'>+ *</div><div class='add'>+ * If your compiler does not support typeof, then the best we can do is fail</div><div class='add'>+ * to compile if the sizes of the types are unequal (a less complete check).</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	// They should always pass a 64-bit value to _set_some_value!</div><div class='add'>+ *	#define set_some_value(expr)			\</div><div class='add'>+ *		_set_some_value((check_type((expr), uint64_t), (expr)))</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * check_types_match - issue a warning or build failure if types are not same.</div><div class='add'>+ * @expr1: the first expression (not evaluated).</div><div class='add'>+ * @expr2: the second expression (not evaluated).</div><div class='add'>+ *</div><div class='add'>+ * This macro is usually used within other macros to try to ensure that</div><div class='add'>+ * arguments are of identical types.  No type promotion of the expressions is</div><div class='add'>+ * done: an unsigned int is not the same as an int!</div><div class='add'>+ *</div><div class='add'>+ * check_types_match() always evaluates to 0.</div><div class='add'>+ *</div><div class='add'>+ * If your compiler does not support typeof, then the best we can do is fail</div><div class='add'>+ * to compile if the sizes of the types are unequal (a less complete check).</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	// Do subtraction to get to enclosing type, but make sure that</div><div class='add'>+ *	// pointer is of correct type for that member.</div><div class='add'>+ *	#define container_of(mbr_ptr, encl_type, mbr)			\</div><div class='add'>+ *		(check_types_match((mbr_ptr), &amp;((encl_type *)0)-&gt;mbr),	\</div><div class='add'>+ *		 ((encl_type *)						\</div><div class='add'>+ *		  ((char *)(mbr_ptr) - offsetof(enclosing_type, mbr))))</div><div class='add'>+ */</div><div class='add'>+#if HAVE_TYPEOF</div><div class='add'>+#define check_type(expr, type)			\</div><div class='add'>+	((typeof(expr) *)0 != (type *)0)</div><div class='add'>+</div><div class='add'>+#define check_types_match(expr1, expr2)		\</div><div class='add'>+	((typeof(expr1) *)0 != (typeof(expr2) *)0)</div><div class='add'>+#else</div><div class='add'>+#include "ccan/build_assert/build_assert.h"</div><div class='add'>+/* Without typeof, we can only test the sizes. */</div><div class='add'>+#define check_type(expr, type)					\</div><div class='add'>+	BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type))</div><div class='add'>+</div><div class='add'>+#define check_types_match(expr1, expr2)				\</div><div class='add'>+	BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2))</div><div class='add'>+#endif /* HAVE_TYPEOF */</div><div class='add'>+</div><div class='add'>+#endif /* CCAN_CHECK_TYPE_H */</div><div class='head'>diff --git a/ccan/container_of/container_of.h b/ccan/container_of/container_of.h<br/>new file mode 100644<br/>index 0000000000..ae3e1fc81f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/container_of/container_of.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/container_of/container_of.h</a></div><div class='hunk'>@@ -0,0 +1,142 @@</div><div class='add'>+/* CC0 (Public domain) - see ccan/licenses/CC0 file for details */</div><div class='add'>+#ifndef CCAN_CONTAINER_OF_H</div><div class='add'>+#define CCAN_CONTAINER_OF_H</div><div class='add'>+#include "ccan/check_type/check_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * container_of - get pointer to enclosing structure</div><div class='add'>+ * @member_ptr: pointer to the structure member</div><div class='add'>+ * @containing_type: the type this member is within</div><div class='add'>+ * @member: the name of this member within the structure.</div><div class='add'>+ *</div><div class='add'>+ * Given a pointer to a member of a structure, this macro does pointer</div><div class='add'>+ * subtraction to return the pointer to the enclosing type.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct foo {</div><div class='add'>+ *		int fielda, fieldb;</div><div class='add'>+ *		// ...</div><div class='add'>+ *	};</div><div class='add'>+ *	struct info {</div><div class='add'>+ *		int some_other_field;</div><div class='add'>+ *		struct foo my_foo;</div><div class='add'>+ *	};</div><div class='add'>+ *</div><div class='add'>+ *	static struct info *foo_to_info(struct foo *foo)</div><div class='add'>+ *	{</div><div class='add'>+ *		return container_of(foo, struct info, my_foo);</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#define container_of(member_ptr, containing_type, member)		\</div><div class='add'>+	 ((containing_type *)						\</div><div class='add'>+	  ((char *)(member_ptr)						\</div><div class='add'>+	   - container_off(containing_type, member))			\</div><div class='add'>+	  + check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * container_of_or_null - get pointer to enclosing structure, or NULL</div><div class='add'>+ * @member_ptr: pointer to the structure member</div><div class='add'>+ * @containing_type: the type this member is within</div><div class='add'>+ * @member: the name of this member within the structure.</div><div class='add'>+ *</div><div class='add'>+ * Given a pointer to a member of a structure, this macro does pointer</div><div class='add'>+ * subtraction to return the pointer to the enclosing type, unless it</div><div class='add'>+ * is given NULL, in which case it also returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct foo {</div><div class='add'>+ *		int fielda, fieldb;</div><div class='add'>+ *		// ...</div><div class='add'>+ *	};</div><div class='add'>+ *	struct info {</div><div class='add'>+ *		int some_other_field;</div><div class='add'>+ *		struct foo my_foo;</div><div class='add'>+ *	};</div><div class='add'>+ *</div><div class='add'>+ *	static struct info *foo_to_info_allowing_null(struct foo *foo)</div><div class='add'>+ *	{</div><div class='add'>+ *		return container_of_or_null(foo, struct info, my_foo);</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+static inline char *container_of_or_null_(void *member_ptr, size_t offset)</div><div class='add'>+{</div><div class='add'>+	return member_ptr ? (char *)member_ptr - offset : NULL;</div><div class='add'>+}</div><div class='add'>+#define container_of_or_null(member_ptr, containing_type, member)	\</div><div class='add'>+	((containing_type *)						\</div><div class='add'>+	 container_of_or_null_(member_ptr,				\</div><div class='add'>+			       container_off(containing_type, member))	\</div><div class='add'>+	 + check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * container_off - get offset to enclosing structure</div><div class='add'>+ * @containing_type: the type this member is within</div><div class='add'>+ * @member: the name of this member within the structure.</div><div class='add'>+ *</div><div class='add'>+ * Given a pointer to a member of a structure, this macro does</div><div class='add'>+ * typechecking and figures out the offset to the enclosing type.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct foo {</div><div class='add'>+ *		int fielda, fieldb;</div><div class='add'>+ *		// ...</div><div class='add'>+ *	};</div><div class='add'>+ *	struct info {</div><div class='add'>+ *		int some_other_field;</div><div class='add'>+ *		struct foo my_foo;</div><div class='add'>+ *	};</div><div class='add'>+ *</div><div class='add'>+ *	static struct info *foo_to_info(struct foo *foo)</div><div class='add'>+ *	{</div><div class='add'>+ *		size_t off = container_off(struct info, my_foo);</div><div class='add'>+ *		return (void *)((char *)foo - off);</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#define container_off(containing_type, member)	\</div><div class='add'>+	offsetof(containing_type, member)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * container_of_var - get pointer to enclosing structure using a variable</div><div class='add'>+ * @member_ptr: pointer to the structure member</div><div class='add'>+ * @container_var: a pointer of same type as this member's container</div><div class='add'>+ * @member: the name of this member within the structure.</div><div class='add'>+ *</div><div class='add'>+ * Given a pointer to a member of a structure, this macro does pointer</div><div class='add'>+ * subtraction to return the pointer to the enclosing type.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	static struct info *foo_to_i(struct foo *foo)</div><div class='add'>+ *	{</div><div class='add'>+ *		struct info *i = container_of_var(foo, i, my_foo);</div><div class='add'>+ *		return i;</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#if HAVE_TYPEOF</div><div class='add'>+#define container_of_var(member_ptr, container_var, member) \</div><div class='add'>+	container_of(member_ptr, typeof(*container_var), member)</div><div class='add'>+#else</div><div class='add'>+#define container_of_var(member_ptr, container_var, member)	\</div><div class='add'>+	((void *)((char *)(member_ptr)	-			\</div><div class='add'>+		  container_off_var(container_var, member)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * container_off_var - get offset of a field in enclosing structure</div><div class='add'>+ * @container_var: a pointer to a container structure</div><div class='add'>+ * @member: the name of a member within the structure.</div><div class='add'>+ *</div><div class='add'>+ * Given (any) pointer to a structure and a its member name, this</div><div class='add'>+ * macro does pointer subtraction to return offset of member in a</div><div class='add'>+ * structure memory layout.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+#if HAVE_TYPEOF</div><div class='add'>+#define container_off_var(var, member)		\</div><div class='add'>+	container_off(typeof(*var), member)</div><div class='add'>+#else</div><div class='add'>+#define container_off_var(var, member)			\</div><div class='add'>+	((const char *)&amp;(var)-&gt;member - (const char *)(var))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* CCAN_CONTAINER_OF_H */</div><div class='head'>diff --git a/ccan/licenses/BSD-MIT b/ccan/licenses/BSD-MIT<br/>new file mode 100644<br/>index 0000000000..89de354795<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/licenses/BSD-MIT?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/licenses/BSD-MIT</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+Permission is hereby granted, free of charge, to any person obtaining a copy</div><div class='add'>+of this software and associated documentation files (the "Software"), to deal</div><div class='add'>+in the Software without restriction, including without limitation the rights</div><div class='add'>+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</div><div class='add'>+copies of the Software, and to permit persons to whom the Software is</div><div class='add'>+furnished to do so, subject to the following conditions:</div><div class='add'>+</div><div class='add'>+The above copyright notice and this permission notice shall be included in</div><div class='add'>+all copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</div><div class='add'>+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</div><div class='add'>+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</div><div class='add'>+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</div><div class='add'>+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</div><div class='add'>+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</div><div class='add'>+THE SOFTWARE.</div><div class='head'>diff --git a/ccan/licenses/CC0 b/ccan/licenses/CC0<br/>new file mode 100644<br/>index 0000000000..feb9b118e6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/licenses/CC0?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/licenses/CC0</a></div><div class='hunk'>@@ -0,0 +1,28 @@</div><div class='add'>+Statement of Purpose</div><div class='add'>+</div><div class='add'>+The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").</div><div class='add'>+</div><div class='add'>+Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.</div><div class='add'>+</div><div class='add'>+For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.</div><div class='add'>+</div><div class='add'>+1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:</div><div class='add'>+</div><div class='add'>+    the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;</div><div class='add'>+    moral rights retained by the original author(s) and/or performer(s);</div><div class='add'>+    publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;</div><div class='add'>+    rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;</div><div class='add'>+    rights protecting the extraction, dissemination, use and reuse of data in a Work;</div><div class='add'>+    database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and</div><div class='add'>+    other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.</div><div class='add'>+</div><div class='add'>+2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.</div><div class='add'>+</div><div class='add'>+3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.</div><div class='add'>+</div><div class='add'>+4. Limitations and Disclaimers.</div><div class='add'>+</div><div class='add'>+    No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.</div><div class='add'>+    Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.</div><div class='add'>+    Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.</div><div class='add'>+    Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.</div><div class='head'>diff --git a/ccan/list/list.h b/ccan/list/list.h<br/>new file mode 100644<br/>index 0000000000..ca9f9f1f7f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/list/list.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/list/list.h</a></div><div class='hunk'>@@ -0,0 +1,773 @@</div><div class='add'>+/* Licensed under BSD-MIT - see ccan/licenses/BSD-MIT file for details */</div><div class='add'>+#ifndef CCAN_LIST_H</div><div class='add'>+#define CCAN_LIST_H</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include "ccan/str/str.h"</div><div class='add'>+#include "ccan/container_of/container_of.h"</div><div class='add'>+#include "ccan/check_type/check_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * struct list_node - an entry in a doubly-linked list</div><div class='add'>+ * @next: next entry (self if empty)</div><div class='add'>+ * @prev: previous entry (self if empty)</div><div class='add'>+ *</div><div class='add'>+ * This is used as an entry in a linked list.</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child {</div><div class='add'>+ *		const char *name;</div><div class='add'>+ *		// Linked list of all us children.</div><div class='add'>+ *		struct list_node list;</div><div class='add'>+ *	};</div><div class='add'>+ */</div><div class='add'>+struct list_node</div><div class='add'>+{</div><div class='add'>+	struct list_node *next, *prev;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * struct list_head - the head of a doubly-linked list</div><div class='add'>+ * @h: the list_head (containing next and prev pointers)</div><div class='add'>+ *</div><div class='add'>+ * This is used as the head of a linked list.</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct parent {</div><div class='add'>+ *		const char *name;</div><div class='add'>+ *		struct list_head children;</div><div class='add'>+ *		unsigned int num_children;</div><div class='add'>+ *	};</div><div class='add'>+ */</div><div class='add'>+struct list_head</div><div class='add'>+{</div><div class='add'>+	struct list_node n;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define LIST_LOC __FILE__  ":" stringify(__LINE__)</div><div class='add'>+#define list_debug(h, loc) ((void)loc, h)</div><div class='add'>+#define list_debug_node(n, loc) ((void)loc, n)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * LIST_HEAD_INIT - initializer for an empty list_head</div><div class='add'>+ * @name: the name of the list.</div><div class='add'>+ *</div><div class='add'>+ * Explicit initializer for an empty list.</div><div class='add'>+ *</div><div class='add'>+ * See also:</div><div class='add'>+ *	LIST_HEAD, list_head_init()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	static struct list_head my_list = LIST_HEAD_INIT(my_list);</div><div class='add'>+ */</div><div class='add'>+#define LIST_HEAD_INIT(name) { { &amp;name.n, &amp;name.n } }</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * LIST_HEAD - define and initialize an empty list_head</div><div class='add'>+ * @name: the name of the list.</div><div class='add'>+ *</div><div class='add'>+ * The LIST_HEAD macro defines a list_head and initializes it to an empty</div><div class='add'>+ * list.  It can be prepended by "static" to define a static list_head.</div><div class='add'>+ *</div><div class='add'>+ * See also:</div><div class='add'>+ *	LIST_HEAD_INIT, list_head_init()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	static LIST_HEAD(my_global_list);</div><div class='add'>+ */</div><div class='add'>+#define LIST_HEAD(name) \</div><div class='add'>+	struct list_head name = LIST_HEAD_INIT(name)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_head_init - initialize a list_head</div><div class='add'>+ * @h: the list_head to set to the empty list</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	...</div><div class='add'>+ *	struct parent *parent = malloc(sizeof(*parent));</div><div class='add'>+ *</div><div class='add'>+ *	list_head_init(&amp;parent-&gt;children);</div><div class='add'>+ *	parent-&gt;num_children = 0;</div><div class='add'>+ */</div><div class='add'>+static inline void list_head_init(struct list_head *h)</div><div class='add'>+{</div><div class='add'>+	h-&gt;n.next = h-&gt;n.prev = &amp;h-&gt;n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_node_init - initialize a list_node</div><div class='add'>+ * @n: the list_node to link to itself.</div><div class='add'>+ *</div><div class='add'>+ * You don't need to use this normally!  But it lets you list_del(@n)</div><div class='add'>+ * safely.</div><div class='add'>+ */</div><div class='add'>+static inline void list_node_init(struct list_node *n)</div><div class='add'>+{</div><div class='add'>+	n-&gt;next = n-&gt;prev = n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_add_after - add an entry after an existing node in a linked list</div><div class='add'>+ * @h: the list_head to add the node to (for debugging)</div><div class='add'>+ * @p: the existing list_node to add the node after</div><div class='add'>+ * @n: the new list_node to add to the list.</div><div class='add'>+ *</div><div class='add'>+ * The existing list_node must already be a member of the list.</div><div class='add'>+ * The new list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child c1, c2, c3;</div><div class='add'>+ *	LIST_HEAD(h);</div><div class='add'>+ *</div><div class='add'>+ *	list_add_tail(&amp;h, &amp;c1.list);</div><div class='add'>+ *	list_add_tail(&amp;h, &amp;c3.list);</div><div class='add'>+ *	list_add_after(&amp;h, &amp;c1.list, &amp;c2.list);</div><div class='add'>+ */</div><div class='add'>+#define list_add_after(h, p, n) list_add_after_(h, p, n, LIST_LOC)</div><div class='add'>+static inline void list_add_after_(struct list_head *h,</div><div class='add'>+				   struct list_node *p,</div><div class='add'>+				   struct list_node *n,</div><div class='add'>+				   const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	n-&gt;next = p-&gt;next;</div><div class='add'>+	n-&gt;prev = p;</div><div class='add'>+	p-&gt;next-&gt;prev = n;</div><div class='add'>+	p-&gt;next = n;</div><div class='add'>+	(void)list_debug(h, abortstr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_add - add an entry at the start of a linked list.</div><div class='add'>+ * @h: the list_head to add the node to</div><div class='add'>+ * @n: the list_node to add to the list.</div><div class='add'>+ *</div><div class='add'>+ * The list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *child = malloc(sizeof(*child));</div><div class='add'>+ *</div><div class='add'>+ *	child-&gt;name = "marvin";</div><div class='add'>+ *	list_add(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	parent-&gt;num_children++;</div><div class='add'>+ */</div><div class='add'>+#define list_add(h, n) list_add_(h, n, LIST_LOC)</div><div class='add'>+static inline void list_add_(struct list_head *h,</div><div class='add'>+			     struct list_node *n,</div><div class='add'>+			     const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	list_add_after_(h, &amp;h-&gt;n, n, abortstr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_add_before - add an entry before an existing node in a linked list</div><div class='add'>+ * @h: the list_head to add the node to (for debugging)</div><div class='add'>+ * @p: the existing list_node to add the node before</div><div class='add'>+ * @n: the new list_node to add to the list.</div><div class='add'>+ *</div><div class='add'>+ * The existing list_node must already be a member of the list.</div><div class='add'>+ * The new list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_head_init(&amp;h);</div><div class='add'>+ *	list_add_tail(&amp;h, &amp;c1.list);</div><div class='add'>+ *	list_add_tail(&amp;h, &amp;c3.list);</div><div class='add'>+ *	list_add_before(&amp;h, &amp;c3.list, &amp;c2.list);</div><div class='add'>+ */</div><div class='add'>+#define list_add_before(h, p, n) list_add_before_(h, p, n, LIST_LOC)</div><div class='add'>+static inline void list_add_before_(struct list_head *h,</div><div class='add'>+				    struct list_node *p,</div><div class='add'>+				    struct list_node *n,</div><div class='add'>+				    const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	n-&gt;next = p;</div><div class='add'>+	n-&gt;prev = p-&gt;prev;</div><div class='add'>+	p-&gt;prev-&gt;next = n;</div><div class='add'>+	p-&gt;prev = n;</div><div class='add'>+	(void)list_debug(h, abortstr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_add_tail - add an entry at the end of a linked list.</div><div class='add'>+ * @h: the list_head to add the node to</div><div class='add'>+ * @n: the list_node to add to the list.</div><div class='add'>+ *</div><div class='add'>+ * The list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_add_tail(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	parent-&gt;num_children++;</div><div class='add'>+ */</div><div class='add'>+#define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)</div><div class='add'>+static inline void list_add_tail_(struct list_head *h,</div><div class='add'>+				  struct list_node *n,</div><div class='add'>+				  const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	list_add_before_(h, &amp;h-&gt;n, n, abortstr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_empty - is a list empty?</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ *</div><div class='add'>+ * If the list is empty, returns true.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	assert(list_empty(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='add'>+ */</div><div class='add'>+#define list_empty(h) list_empty_(h, LIST_LOC)</div><div class='add'>+static inline int list_empty_(const struct list_head *h, const char* abortstr)</div><div class='add'>+{</div><div class='add'>+	(void)list_debug(h, abortstr);</div><div class='add'>+	return h-&gt;n.next == &amp;h-&gt;n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_empty_nodebug - is a list empty (and don't perform debug checks)?</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ *</div><div class='add'>+ * If the list is empty, returns true.</div><div class='add'>+ * This differs from list_empty() in that if CCAN_LIST_DEBUG is set it</div><div class='add'>+ * will NOT perform debug checks. Only use this function if you REALLY</div><div class='add'>+ * know what you're doing.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	assert(list_empty_nodebug(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='add'>+ */</div><div class='add'>+#ifndef CCAN_LIST_DEBUG</div><div class='add'>+#define list_empty_nodebug(h) list_empty(h)</div><div class='add'>+#else</div><div class='add'>+static inline int list_empty_nodebug(const struct list_head *h)</div><div class='add'>+{</div><div class='add'>+	return h-&gt;n.next == &amp;h-&gt;n;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_del - delete an entry from an (unknown) linked list.</div><div class='add'>+ * @n: the list_node to delete from the list.</div><div class='add'>+ *</div><div class='add'>+ * Note that this leaves @n in an undefined state; it can be added to</div><div class='add'>+ * another list, but not deleted again.</div><div class='add'>+ *</div><div class='add'>+ * See also:</div><div class='add'>+ *	list_del_from(), list_del_init()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_del(&amp;child-&gt;list);</div><div class='add'>+ *	parent-&gt;num_children--;</div><div class='add'>+ */</div><div class='add'>+#define list_del(n) list_del_(n, LIST_LOC)</div><div class='add'>+static inline void list_del_(struct list_node *n, const char* abortstr)</div><div class='add'>+{</div><div class='add'>+	(void)list_debug_node(n, abortstr);</div><div class='add'>+	n-&gt;next-&gt;prev = n-&gt;prev;</div><div class='add'>+	n-&gt;prev-&gt;next = n-&gt;next;</div><div class='add'>+#ifdef CCAN_LIST_DEBUG</div><div class='add'>+	/* Catch use-after-del. */</div><div class='add'>+	n-&gt;next = n-&gt;prev = NULL;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_del_init - delete a node, and reset it so it can be deleted again.</div><div class='add'>+ * @n: the list_node to be deleted.</div><div class='add'>+ *</div><div class='add'>+ * list_del(@n) or list_del_init() again after this will be safe,</div><div class='add'>+ * which can be useful in some cases.</div><div class='add'>+ *</div><div class='add'>+ * See also:</div><div class='add'>+ *	list_del_from(), list_del()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_del_init(&amp;child-&gt;list);</div><div class='add'>+ *	parent-&gt;num_children--;</div><div class='add'>+ */</div><div class='add'>+#define list_del_init(n) list_del_init_(n, LIST_LOC)</div><div class='add'>+static inline void list_del_init_(struct list_node *n, const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	list_del_(n, abortstr);</div><div class='add'>+	list_node_init(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_del_from - delete an entry from a known linked list.</div><div class='add'>+ * @h: the list_head the node is in.</div><div class='add'>+ * @n: the list_node to delete from the list.</div><div class='add'>+ *</div><div class='add'>+ * This explicitly indicates which list a node is expected to be in,</div><div class='add'>+ * which is better documentation and can catch more bugs.</div><div class='add'>+ *</div><div class='add'>+ * See also: list_del()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_del_from(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	parent-&gt;num_children--;</div><div class='add'>+ */</div><div class='add'>+static inline void list_del_from(struct list_head *h, struct list_node *n)</div><div class='add'>+{</div><div class='add'>+#ifdef CCAN_LIST_DEBUG</div><div class='add'>+	{</div><div class='add'>+		/* Thorough check: make sure it was in list! */</div><div class='add'>+		struct list_node *i;</div><div class='add'>+		for (i = h-&gt;n.next; i != n; i = i-&gt;next)</div><div class='add'>+			assert(i != &amp;h-&gt;n);</div><div class='add'>+	}</div><div class='add'>+#endif /* CCAN_LIST_DEBUG */</div><div class='add'>+</div><div class='add'>+	/* Quick test that catches a surprising number of bugs. */</div><div class='add'>+	assert(!list_empty(h));</div><div class='add'>+	list_del(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_swap - swap out an entry from an (unknown) linked list for a new one.</div><div class='add'>+ * @o: the list_node to replace from the list.</div><div class='add'>+ * @n: the list_node to insert in place of the old one.</div><div class='add'>+ *</div><div class='add'>+ * Note that this leaves @o in an undefined state; it can be added to</div><div class='add'>+ * another list, but not deleted/swapped again.</div><div class='add'>+ *</div><div class='add'>+ * See also:</div><div class='add'>+ *	list_del()</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child x1, x2;</div><div class='add'>+ *	LIST_HEAD(xh);</div><div class='add'>+ *</div><div class='add'>+ *	list_add(&amp;xh, &amp;x1.list);</div><div class='add'>+ *	list_swap(&amp;x1.list, &amp;x2.list);</div><div class='add'>+ */</div><div class='add'>+#define list_swap(o, n) list_swap_(o, n, LIST_LOC)</div><div class='add'>+static inline void list_swap_(struct list_node *o,</div><div class='add'>+			      struct list_node *n,</div><div class='add'>+			      const char* abortstr)</div><div class='add'>+{</div><div class='add'>+	(void)list_debug_node(o, abortstr);</div><div class='add'>+	*n = *o;</div><div class='add'>+	n-&gt;next-&gt;prev = n;</div><div class='add'>+	n-&gt;prev-&gt;next = n;</div><div class='add'>+#ifdef CCAN_LIST_DEBUG</div><div class='add'>+	/* Catch use-after-del. */</div><div class='add'>+	o-&gt;next = o-&gt;prev = NULL;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_entry - convert a list_node back into the structure containing it.</div><div class='add'>+ * @n: the list_node</div><div class='add'>+ * @type: the type of the entry</div><div class='add'>+ * @member: the list_node member of the type</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	// First list entry is children.next; convert back to child.</div><div class='add'>+ *	child = list_entry(parent-&gt;children.n.next, struct child, list);</div><div class='add'>+ *</div><div class='add'>+ * See Also:</div><div class='add'>+ *	list_top(), list_for_each()</div><div class='add'>+ */</div><div class='add'>+#define list_entry(n, type, member) container_of(n, type, member)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_top - get the first entry in a list</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @type: the type of the entry</div><div class='add'>+ * @member: the list_node member of the type</div><div class='add'>+ *</div><div class='add'>+ * If the list is empty, returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *first;</div><div class='add'>+ *	first = list_top(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	if (!first)</div><div class='add'>+ *		printf("Empty list!\n");</div><div class='add'>+ */</div><div class='add'>+#define list_top(h, type, member)					\</div><div class='add'>+	((type *)list_top_((h), list_off_(type, member)))</div><div class='add'>+</div><div class='add'>+static inline const void *list_top_(const struct list_head *h, size_t off)</div><div class='add'>+{</div><div class='add'>+	if (list_empty(h))</div><div class='add'>+		return NULL;</div><div class='add'>+	return (const char *)h-&gt;n.next - off;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_pop - remove the first entry in a list</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @type: the type of the entry</div><div class='add'>+ * @member: the list_node member of the type</div><div class='add'>+ *</div><div class='add'>+ * If the list is empty, returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *one;</div><div class='add'>+ *	one = list_pop(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	if (!one)</div><div class='add'>+ *		printf("Empty list!\n");</div><div class='add'>+ */</div><div class='add'>+#define list_pop(h, type, member)					\</div><div class='add'>+	((type *)list_pop_((h), list_off_(type, member)))</div><div class='add'>+</div><div class='add'>+static inline const void *list_pop_(const struct list_head *h, size_t off)</div><div class='add'>+{</div><div class='add'>+	struct list_node *n;</div><div class='add'>+</div><div class='add'>+	if (list_empty(h))</div><div class='add'>+		return NULL;</div><div class='add'>+	n = h-&gt;n.next;</div><div class='add'>+	list_del(n);</div><div class='add'>+	return (const char *)n - off;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_tail - get the last entry in a list</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @type: the type of the entry</div><div class='add'>+ * @member: the list_node member of the type</div><div class='add'>+ *</div><div class='add'>+ * If the list is empty, returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *last;</div><div class='add'>+ *	last = list_tail(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	if (!last)</div><div class='add'>+ *		printf("Empty list!\n");</div><div class='add'>+ */</div><div class='add'>+#define list_tail(h, type, member) \</div><div class='add'>+	((type *)list_tail_((h), list_off_(type, member)))</div><div class='add'>+</div><div class='add'>+static inline const void *list_tail_(const struct list_head *h, size_t off)</div><div class='add'>+{</div><div class='add'>+	if (list_empty(h))</div><div class='add'>+		return NULL;</div><div class='add'>+	return (const char *)h-&gt;n.prev - off;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each - iterate through a list.</div><div class='add'>+ * @h: the list_head (warning: evaluated multiple times!)</div><div class='add'>+ * @i: the structure containing the list_node</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='add'>+ * a for loop, so you can break and continue as normal.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each(&amp;parent-&gt;children, child, list)</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ */</div><div class='add'>+#define list_for_each(h, i, member)					\</div><div class='add'>+	list_for_each_off(h, i, list_off_var_(i, member))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_rev - iterate through a list backwards.</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the structure containing the list_node</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='add'>+ * a for loop, so you can break and continue as normal.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each_rev(&amp;parent-&gt;children, child, list)</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_rev(h, i, member)					\</div><div class='add'>+	list_for_each_rev_off(h, i, list_off_var_(i, member))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_rev_safe - iterate through a list backwards,</div><div class='add'>+ * maybe during deletion</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the structure containing the list_node</div><div class='add'>+ * @nxt: the structure containing the list_node</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * This is a convenient wrapper to iterate @i over the entire list backwards.</div><div class='add'>+ * It's a for loop, so you can break and continue as normal.  The extra</div><div class='add'>+ * variable * @nxt is used to hold the next element, so you can delete @i</div><div class='add'>+ * from the list.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *next;</div><div class='add'>+ *	list_for_each_rev_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_rev_safe(h, i, nxt, member)			\</div><div class='add'>+	list_for_each_rev_safe_off(h, i, nxt, list_off_var_(i, member))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_safe - iterate through a list, maybe during deletion</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the structure containing the list_node</div><div class='add'>+ * @nxt: the structure containing the list_node</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='add'>+ * a for loop, so you can break and continue as normal.  The extra variable</div><div class='add'>+ * @nxt is used to hold the next element, so you can delete @i from the list.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='add'>+ *		list_del(&amp;child-&gt;list);</div><div class='add'>+ *		parent-&gt;num_children--;</div><div class='add'>+ *	}</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_safe(h, i, nxt, member)				\</div><div class='add'>+	list_for_each_safe_off(h, i, nxt, list_off_var_(i, member))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_next - get the next entry in a list</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: a pointer to an entry in the list.</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * If @i was the last entry in the list, returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct child *second;</div><div class='add'>+ *	second = list_next(&amp;parent-&gt;children, first, list);</div><div class='add'>+ *	if (!second)</div><div class='add'>+ *		printf("No second child!\n");</div><div class='add'>+ */</div><div class='add'>+#define list_next(h, i, member)						\</div><div class='add'>+	((list_typeof(i))list_entry_or_null(list_debug(h,		\</div><div class='add'>+					    __FILE__ ":" stringify(__LINE__)), \</div><div class='add'>+					    (i)-&gt;member.next,		\</div><div class='add'>+					    list_off_var_((i), member)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_prev - get the previous entry in a list</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: a pointer to an entry in the list.</div><div class='add'>+ * @member: the list_node member of the structure</div><div class='add'>+ *</div><div class='add'>+ * If @i was the first entry in the list, returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	first = list_prev(&amp;parent-&gt;children, second, list);</div><div class='add'>+ *	if (!first)</div><div class='add'>+ *		printf("Can't go back to first child?!\n");</div><div class='add'>+ */</div><div class='add'>+#define list_prev(h, i, member)						\</div><div class='add'>+	((list_typeof(i))list_entry_or_null(list_debug(h,		\</div><div class='add'>+					    __FILE__ ":" stringify(__LINE__)), \</div><div class='add'>+					    (i)-&gt;member.prev,		\</div><div class='add'>+					    list_off_var_((i), member)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_append_list - empty one list onto the end of another.</div><div class='add'>+ * @to: the list to append into</div><div class='add'>+ * @from: the list to empty.</div><div class='add'>+ *</div><div class='add'>+ * This takes the entire contents of @from and moves it to the end of</div><div class='add'>+ * @to.  After this @from will be empty.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	struct list_head adopter;</div><div class='add'>+ *</div><div class='add'>+ *	list_append_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='add'>+ *	assert(list_empty(&amp;parent-&gt;children));</div><div class='add'>+ *	parent-&gt;num_children = 0;</div><div class='add'>+ */</div><div class='add'>+#define list_append_list(t, f) list_append_list_(t, f,			\</div><div class='add'>+				   __FILE__ ":" stringify(__LINE__))</div><div class='add'>+static inline void list_append_list_(struct list_head *to,</div><div class='add'>+				     struct list_head *from,</div><div class='add'>+				     const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	struct list_node *from_tail = list_debug(from, abortstr)-&gt;n.prev;</div><div class='add'>+	struct list_node *to_tail = list_debug(to, abortstr)-&gt;n.prev;</div><div class='add'>+</div><div class='add'>+	/* Sew in head and entire list. */</div><div class='add'>+	to-&gt;n.prev = from_tail;</div><div class='add'>+	from_tail-&gt;next = &amp;to-&gt;n;</div><div class='add'>+	to_tail-&gt;next = &amp;from-&gt;n;</div><div class='add'>+	from-&gt;n.prev = to_tail;</div><div class='add'>+</div><div class='add'>+	/* Now remove head. */</div><div class='add'>+	list_del(&amp;from-&gt;n);</div><div class='add'>+	list_head_init(from);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_prepend_list - empty one list into the start of another.</div><div class='add'>+ * @to: the list to prepend into</div><div class='add'>+ * @from: the list to empty.</div><div class='add'>+ *</div><div class='add'>+ * This takes the entire contents of @from and moves it to the start</div><div class='add'>+ * of @to.  After this @from will be empty.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_prepend_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='add'>+ *	assert(list_empty(&amp;parent-&gt;children));</div><div class='add'>+ *	parent-&gt;num_children = 0;</div><div class='add'>+ */</div><div class='add'>+#define list_prepend_list(t, f) list_prepend_list_(t, f, LIST_LOC)</div><div class='add'>+static inline void list_prepend_list_(struct list_head *to,</div><div class='add'>+				      struct list_head *from,</div><div class='add'>+				      const char *abortstr)</div><div class='add'>+{</div><div class='add'>+	struct list_node *from_tail = list_debug(from, abortstr)-&gt;n.prev;</div><div class='add'>+	struct list_node *to_head = list_debug(to, abortstr)-&gt;n.next;</div><div class='add'>+</div><div class='add'>+	/* Sew in head and entire list. */</div><div class='add'>+	to-&gt;n.next = &amp;from-&gt;n;</div><div class='add'>+	from-&gt;n.prev = &amp;to-&gt;n;</div><div class='add'>+	to_head-&gt;prev = from_tail;</div><div class='add'>+	from_tail-&gt;next = to_head;</div><div class='add'>+</div><div class='add'>+	/* Now remove head. */</div><div class='add'>+	list_del(&amp;from-&gt;n);</div><div class='add'>+	list_head_init(from);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* internal macros, do not use directly */</div><div class='add'>+#define list_for_each_off_dir_(h, i, off, dir)				\</div><div class='add'>+	for (i = list_node_to_off_(list_debug(h, LIST_LOC)-&gt;n.dir,	\</div><div class='add'>+				   (off));				\</div><div class='add'>+	list_node_from_off_((void *)i, (off)) != &amp;(h)-&gt;n;		\</div><div class='add'>+	i = list_node_to_off_(list_node_from_off_((void *)i, (off))-&gt;dir, \</div><div class='add'>+			      (off)))</div><div class='add'>+</div><div class='add'>+#define list_for_each_safe_off_dir_(h, i, nxt, off, dir)		\</div><div class='add'>+	for (i = list_node_to_off_(list_debug(h, LIST_LOC)-&gt;n.dir,	\</div><div class='add'>+				   (off)),				\</div><div class='add'>+	nxt = list_node_to_off_(list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='add'>+				(off));					\</div><div class='add'>+	list_node_from_off_(i, (off)) != &amp;(h)-&gt;n;			\</div><div class='add'>+	i = nxt,							\</div><div class='add'>+	nxt = list_node_to_off_(list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='add'>+				(off)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_off - iterate through a list of memory regions.</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * @off: offset(relative to @i) at which list node data resides.</div><div class='add'>+ *</div><div class='add'>+ * This is a low-level wrapper to iterate @i over the entire list, used to</div><div class='add'>+ * implement all oher, more high-level, for-each constructs. It's a for loop,</div><div class='add'>+ * so you can break and continue as normal.</div><div class='add'>+ *</div><div class='add'>+ * WARNING! Being the low-level macro that it is, this wrapper doesn't know</div><div class='add'>+ * nor care about the type of @i. The only assumtion made is that @i points</div><div class='add'>+ * to a chunk of memory that at some @offset, relative to @i, contains a</div><div class='add'>+ * properly filled `struct node_list' which in turn contains pointers to</div><div class='add'>+ * memory chunks and it's turtles all the way down. Whith all that in mind</div><div class='add'>+ * remember that given the wrong pointer/offset couple this macro will</div><div class='add'>+ * happilly churn all you memory untill SEGFAULT stops it, in other words</div><div class='add'>+ * caveat emptor.</div><div class='add'>+ *</div><div class='add'>+ * It is worth mentioning that one of legitimate use-cases for that wrapper</div><div class='add'>+ * is operation on opaque types with known offset for `struct list_node'</div><div class='add'>+ * member(preferably 0), because it allows you not to disclose the type of</div><div class='add'>+ * @i.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *				offsetof(struct child, list))</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_off(h, i, off)                                    \</div><div class='add'>+	list_for_each_off_dir_((h),(i),(off),next)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_rev_off - iterate through a list of memory regions backwards</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * @off: offset(relative to @i) at which list node data resides.</div><div class='add'>+ *</div><div class='add'>+ * See list_for_each_off for details</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_rev_off(h, i, off)                                    \</div><div class='add'>+	list_for_each_off_dir_((h),(i),(off),prev)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_safe_off - iterate through a list of memory regions, maybe</div><div class='add'>+ * during deletion</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * @nxt: the structure containing the list_node</div><div class='add'>+ * @off: offset(relative to @i) at which list node data resides.</div><div class='add'>+ *</div><div class='add'>+ * For details see `list_for_each_off' and `list_for_each_safe'</div><div class='add'>+ * descriptions.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each_safe_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *		next, offsetof(struct child, list))</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_safe_off(h, i, nxt, off)                          \</div><div class='add'>+	list_for_each_safe_off_dir_((h),(i),(nxt),(off),next)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * list_for_each_rev_safe_off - iterate backwards through a list of</div><div class='add'>+ * memory regions, maybe during deletion</div><div class='add'>+ * @h: the list_head</div><div class='add'>+ * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * @nxt: the structure containing the list_node</div><div class='add'>+ * @off: offset(relative to @i) at which list node data resides.</div><div class='add'>+ *</div><div class='add'>+ * For details see `list_for_each_rev_off' and `list_for_each_rev_safe'</div><div class='add'>+ * descriptions.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	list_for_each_rev_safe_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *		next, offsetof(struct child, list))</div><div class='add'>+ *		printf("Name: %s\n", child-&gt;name);</div><div class='add'>+ */</div><div class='add'>+#define list_for_each_rev_safe_off(h, i, nxt, off)                      \</div><div class='add'>+	list_for_each_safe_off_dir_((h),(i),(nxt),(off),prev)</div><div class='add'>+</div><div class='add'>+/* Other -off variants. */</div><div class='add'>+#define list_entry_off(n, type, off)		\</div><div class='add'>+	((type *)list_node_from_off_((n), (off)))</div><div class='add'>+</div><div class='add'>+#define list_head_off(h, type, off)		\</div><div class='add'>+	((type *)list_head_off((h), (off)))</div><div class='add'>+</div><div class='add'>+#define list_tail_off(h, type, off)		\</div><div class='add'>+	((type *)list_tail_((h), (off)))</div><div class='add'>+</div><div class='add'>+#define list_add_off(h, n, off)                 \</div><div class='add'>+	list_add((h), list_node_from_off_((n), (off)))</div><div class='add'>+</div><div class='add'>+#define list_del_off(n, off)                    \</div><div class='add'>+	list_del(list_node_from_off_((n), (off)))</div><div class='add'>+</div><div class='add'>+#define list_del_from_off(h, n, off)			\</div><div class='add'>+	list_del_from(h, list_node_from_off_((n), (off)))</div><div class='add'>+</div><div class='add'>+/* Offset helper functions so we only single-evaluate. */</div><div class='add'>+static inline void *list_node_to_off_(struct list_node *node, size_t off)</div><div class='add'>+{</div><div class='add'>+	return (void *)((char *)node - off);</div><div class='add'>+}</div><div class='add'>+static inline struct list_node *list_node_from_off_(void *ptr, size_t off)</div><div class='add'>+{</div><div class='add'>+	return (struct list_node *)((char *)ptr + off);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Get the offset of the member, but make sure it's a list_node. */</div><div class='add'>+#define list_off_(type, member)					\</div><div class='add'>+	(container_off(type, member) +				\</div><div class='add'>+	 check_type(((type *)0)-&gt;member, struct list_node))</div><div class='add'>+</div><div class='add'>+#define list_off_var_(var, member)			\</div><div class='add'>+	(container_off_var(var, member) +		\</div><div class='add'>+	 check_type(var-&gt;member, struct list_node))</div><div class='add'>+</div><div class='add'>+#if HAVE_TYPEOF</div><div class='add'>+#define list_typeof(var) typeof(var)</div><div class='add'>+#else</div><div class='add'>+#define list_typeof(var) void *</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* Returns member, or NULL if at end of list. */</div><div class='add'>+static inline void *list_entry_or_null(const struct list_head *h,</div><div class='add'>+				       const struct list_node *n,</div><div class='add'>+				       size_t off)</div><div class='add'>+{</div><div class='add'>+	if (n == &amp;h-&gt;n)</div><div class='add'>+		return NULL;</div><div class='add'>+	return (char *)n - off;</div><div class='add'>+}</div><div class='add'>+#endif /* CCAN_LIST_H */</div><div class='head'>diff --git a/ccan/str/str.h b/ccan/str/str.h<br/>new file mode 100644<br/>index 0000000000..9a9da9cd3f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ccan/str/str.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>ccan/str/str.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+/* CC0 (Public domain) - see ccan/licenses/CC0 file for details */</div><div class='add'>+#ifndef CCAN_STR_H</div><div class='add'>+#define CCAN_STR_H</div><div class='add'>+/**</div><div class='add'>+ * stringify - Turn expression into a string literal</div><div class='add'>+ * @expr: any C expression</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *	#define PRINT_COND_IF_FALSE(cond) \</div><div class='add'>+ *		((cond) || printf("%s is false!", stringify(cond)))</div><div class='add'>+ */</div><div class='add'>+#define stringify(expr)		stringify_1(expr)</div><div class='add'>+/* Double-indirection required to stringify expansions */</div><div class='add'>+#define stringify_1(expr)	#expr</div><div class='add'>+</div><div class='add'>+#endif /* CCAN_STR_H */</div><div class='head'>diff --git a/class.c b/class.c<br/>index 106f796140..364f258333 100644<br/>--- a/<a href='/ruby.git/tree/class.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>class.c</a><br/>+++ b/<a href='/ruby.git/tree/class.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>class.c</a></div><div class='hunk'>@@ -3,208 +3,600 @@</div><div class='ctx'>   class.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Tue Aug 10 15:05:44 JST 1993</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='del'>-#include "rubysig.h"</div><div class='del'>-#include "node.h"</div><div class='del'>-#include "st.h"</div><div class='add'>+/*!</div><div class='add'>+ * \defgroup class Classes and their hierarchy.</div><div class='add'>+ * \par Terminology</div><div class='add'>+ * - class: same as in Ruby.</div><div class='add'>+ * - singleton class: class for a particular object</div><div class='add'>+ * - eigenclass: = singleton class</div><div class='add'>+ * - metaclass: class of a class. metaclass is a kind of singleton class.</div><div class='add'>+ * - metametaclass: class of a metaclass.</div><div class='add'>+ * - meta^(n)-class: class of a meta^(n-1)-class.</div><div class='add'>+ * - attached object: A singleton class knows its unique instance.</div><div class='add'>+ *   The instance is called the attached object for the singleton class.</div><div class='add'>+ * \{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "constant.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "id_table.h"</div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='del'>-extern st_table *rb_class_tbl;</div><div class='add'>+#define id_attached id__attached__</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_subclass_add(VALUE super, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *entry, *head;</div><div class='add'>+</div><div class='add'>+    if (super &amp;&amp; super != Qundef) {</div><div class='add'>+	entry = ALLOC(rb_subclass_entry_t);</div><div class='add'>+	entry-&gt;klass = klass;</div><div class='add'>+	entry-&gt;next = NULL;</div><div class='add'>+</div><div class='add'>+	head = RCLASS_EXT(super)-&gt;subclasses;</div><div class='add'>+	if (head) {</div><div class='add'>+	    entry-&gt;next = head;</div><div class='add'>+	    RCLASS_EXT(head-&gt;klass)-&gt;parent_subclasses = &amp;entry-&gt;next;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	RCLASS_EXT(super)-&gt;subclasses = entry;</div><div class='add'>+	RCLASS_EXT(klass)-&gt;parent_subclasses = &amp;RCLASS_EXT(super)-&gt;subclasses;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_module_add_to_subclasses_list(VALUE module, VALUE iclass)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *entry, *head;</div><div class='add'>+</div><div class='add'>+    entry = ALLOC(rb_subclass_entry_t);</div><div class='add'>+    entry-&gt;klass = iclass;</div><div class='add'>+    entry-&gt;next = NULL;</div><div class='add'>+</div><div class='add'>+    head = RCLASS_EXT(module)-&gt;subclasses;</div><div class='add'>+    if (head) {</div><div class='add'>+	entry-&gt;next = head;</div><div class='add'>+	RCLASS_EXT(head-&gt;klass)-&gt;module_subclasses = &amp;entry-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RCLASS_EXT(module)-&gt;subclasses = entry;</div><div class='add'>+    RCLASS_EXT(iclass)-&gt;module_subclasses = &amp;RCLASS_EXT(module)-&gt;subclasses;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_remove_from_super_subclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *entry;</div><div class='add'>+</div><div class='add'>+    if (RCLASS_EXT(klass)-&gt;parent_subclasses) {</div><div class='add'>+	entry = *RCLASS_EXT(klass)-&gt;parent_subclasses;</div><div class='add'>+</div><div class='add'>+	*RCLASS_EXT(klass)-&gt;parent_subclasses = entry-&gt;next;</div><div class='add'>+	if (entry-&gt;next) {</div><div class='add'>+	    RCLASS_EXT(entry-&gt;next-&gt;klass)-&gt;parent_subclasses = RCLASS_EXT(klass)-&gt;parent_subclasses;</div><div class='add'>+	}</div><div class='add'>+	xfree(entry);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RCLASS_EXT(klass)-&gt;parent_subclasses = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_remove_from_module_subclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *entry;</div><div class='add'>+</div><div class='add'>+    if (RCLASS_EXT(klass)-&gt;module_subclasses) {</div><div class='add'>+	entry = *RCLASS_EXT(klass)-&gt;module_subclasses;</div><div class='add'>+	*RCLASS_EXT(klass)-&gt;module_subclasses = entry-&gt;next;</div><div class='add'>+</div><div class='add'>+	if (entry-&gt;next) {</div><div class='add'>+	    RCLASS_EXT(entry-&gt;next-&gt;klass)-&gt;module_subclasses = RCLASS_EXT(klass)-&gt;module_subclasses;</div><div class='add'>+	}</div><div class='ctx'> </div><div class='add'>+	xfree(entry);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RCLASS_EXT(klass)-&gt;module_subclasses = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE arg)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *cur = RCLASS_EXT(klass)-&gt;subclasses;</div><div class='add'>+</div><div class='add'>+    /* do not be tempted to simplify this loop into a for loop, the order of</div><div class='add'>+       operations is important here if `f` modifies the linked list */</div><div class='add'>+    while (cur) {</div><div class='add'>+	VALUE curklass = cur-&gt;klass;</div><div class='add'>+	cur = cur-&gt;next;</div><div class='add'>+	f(curklass, arg);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+class_detach_subclasses(VALUE klass, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    rb_class_remove_from_super_subclasses(klass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_detach_subclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_class_foreach_subclass(klass, class_detach_subclasses, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+class_detach_module_subclasses(VALUE klass, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    rb_class_remove_from_module_subclasses(klass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_detach_module_subclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_class_foreach_subclass(klass, class_detach_module_subclasses, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a struct RClass for a new class.</div><div class='add'>+ *</div><div class='add'>+ * \param flags     initial value for basic.flags of the returned class.</div><div class='add'>+ * \param klass     the class of the returned class.</div><div class='add'>+ * \return          an uninitialized Class object.</div><div class='add'>+ * \pre  \p klass must refer \c Class class or an ancestor of Class.</div><div class='add'>+ * \pre  \code (flags | T_CLASS) != 0  \endcode</div><div class='add'>+ * \post the returned class can safely be \c #initialize 'd.</div><div class='add'>+ *</div><div class='add'>+ * \note this function is not Class#allocate.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+class_alloc(VALUE flags, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    NEWOBJ_OF(obj, struct RClass, klass, (flags &amp; T_MASK) | FL_PROMOTED1 /* start from age == 2 */ | (RGENGC_WB_PROTECTED_CLASS ? FL_WB_PROTECTED : 0));</div><div class='add'>+    obj-&gt;ptr = ZALLOC(rb_classext_t);</div><div class='add'>+    /* ZALLOC</div><div class='add'>+      RCLASS_IV_TBL(obj) = 0;</div><div class='add'>+      RCLASS_CONST_TBL(obj) = 0;</div><div class='add'>+      RCLASS_M_TBL(obj) = 0;</div><div class='add'>+      RCLASS_IV_INDEX_TBL(obj) = 0;</div><div class='add'>+      RCLASS_SET_SUPER((VALUE)obj, 0);</div><div class='add'>+      RCLASS_EXT(obj)-&gt;subclasses = NULL;</div><div class='add'>+      RCLASS_EXT(obj)-&gt;parent_subclasses = NULL;</div><div class='add'>+      RCLASS_EXT(obj)-&gt;module_subclasses = NULL;</div><div class='add'>+     */</div><div class='add'>+    RCLASS_SET_ORIGIN((VALUE)obj, (VALUE)obj);</div><div class='add'>+    RCLASS_SERIAL(obj) = rb_next_class_serial();</div><div class='add'>+    RCLASS_REFINED_CLASS(obj) = Qnil;</div><div class='add'>+    RCLASS_EXT(obj)-&gt;allocator = 0;</div><div class='add'>+</div><div class='add'>+    return (VALUE)obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+RCLASS_M_TBL_INIT(VALUE c)</div><div class='add'>+{</div><div class='add'>+    RCLASS_M_TBL(c) = rb_id_table_create(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * A utility function that wraps class_alloc.</div><div class='add'>+ *</div><div class='add'>+ * allocates a class and initializes safely.</div><div class='add'>+ * \param super     a class from which the new class derives.</div><div class='add'>+ * \return          a class object.</div><div class='add'>+ * \pre  \a super must be a class.</div><div class='add'>+ * \post the metaclass of the new class is Class.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='del'>-rb_class_boot(super)</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_class_boot(VALUE super)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(klass, struct RClass);</div><div class='del'>-    OBJSETUP(klass, rb_cClass, T_CLASS);</div><div class='add'>+    VALUE klass = class_alloc(T_CLASS, rb_cClass);</div><div class='ctx'> </div><div class='del'>-    klass-&gt;super = super;</div><div class='del'>-    klass-&gt;iv_tbl = 0;</div><div class='del'>-    klass-&gt;m_tbl = 0;		/* safe GC */</div><div class='del'>-    klass-&gt;m_tbl = st_init_numtable();</div><div class='add'>+    RCLASS_SET_SUPER(klass, super);</div><div class='add'>+    RCLASS_M_TBL_INIT(klass);</div><div class='ctx'> </div><div class='ctx'>     OBJ_INFECT(klass, super);</div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_class_new(super)</div><div class='del'>-    VALUE super;</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Ensures a class can be derived from super.</div><div class='add'>+ *</div><div class='add'>+ * \param super a reference to an object.</div><div class='add'>+ * \exception TypeError if \a super is not a Class or \a super is a singleton class.</div><div class='add'>+ */</div><div class='add'>+void</div><div class='add'>+rb_check_inheritable(VALUE super)</div><div class='ctx'> {</div><div class='del'>-    Check_Type(super, T_CLASS);</div><div class='add'>+    if (!RB_TYPE_P(super, T_CLASS)) {</div><div class='add'>+	rb_raise(rb_eTypeError, "superclass must be a Class (%"PRIsVALUE" given)",</div><div class='add'>+		 rb_obj_class(super));</div><div class='add'>+    }</div><div class='add'>+    if (RBASIC(super)-&gt;flags &amp; FL_SINGLETON) {</div><div class='add'>+	rb_raise(rb_eTypeError, "can't make subclass of singleton class");</div><div class='add'>+    }</div><div class='ctx'>     if (super == rb_cClass) {</div><div class='ctx'> 	rb_raise(rb_eTypeError, "can't make subclass of Class");</div><div class='ctx'>     }</div><div class='del'>-    if (FL_TEST(super, FL_SINGLETON)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't make subclass of virtual class");</div><div class='del'>-    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Creates a new class.</div><div class='add'>+ * \param super     a class from which the new class derives.</div><div class='add'>+ * \exception TypeError \a super is not inheritable.</div><div class='add'>+ * \exception TypeError \a super is the Class class.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_class_new(VALUE super)</div><div class='add'>+{</div><div class='add'>+    Check_Type(super, T_CLASS);</div><div class='add'>+    rb_check_inheritable(super);</div><div class='ctx'>     return rb_class_boot(super);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-struct clone_method_data {</div><div class='del'>-    st_table *tbl;</div><div class='add'>+static void</div><div class='add'>+clone_method(VALUE old_klass, VALUE new_klass, ID mid, const rb_method_entry_t *me)</div><div class='add'>+{</div><div class='add'>+    if (me-&gt;def-&gt;type == VM_METHOD_TYPE_ISEQ) {</div><div class='add'>+	rb_cref_t *new_cref;</div><div class='add'>+	rb_vm_rewrite_cref(me-&gt;def-&gt;body.iseq.cref, old_klass, new_klass, &amp;new_cref);</div><div class='add'>+	rb_add_method_iseq(new_klass, mid, me-&gt;def-&gt;body.iseq.iseqptr, new_cref, METHOD_ENTRY_VISI(me));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_method_entry_set(new_klass, mid, me, METHOD_ENTRY_VISI(me));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct clone_method_arg {</div><div class='add'>+    VALUE new_klass;</div><div class='add'>+    VALUE old_klass;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+clone_method_i(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    const struct clone_method_arg *arg = (struct clone_method_arg *)data;</div><div class='add'>+    clone_method(arg-&gt;old_klass, arg-&gt;new_klass, key, (const rb_method_entry_t *)value);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct clone_const_arg {</div><div class='ctx'>     VALUE klass;</div><div class='add'>+    struct rb_id_table *tbl;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-clone_method(mid, body, data)</div><div class='del'>-    ID mid;</div><div class='del'>-    NODE *body;</div><div class='del'>-    struct clone_method_data *data;</div><div class='add'>+clone_const(ID key, const rb_const_entry_t *ce, struct clone_const_arg *arg)</div><div class='add'>+{</div><div class='add'>+    rb_const_entry_t *nce = ALLOC(rb_const_entry_t);</div><div class='add'>+    MEMCPY(nce, ce, rb_const_entry_t, 1);</div><div class='add'>+    RB_OBJ_WRITTEN(arg-&gt;klass, Qundef, ce-&gt;value);</div><div class='add'>+    RB_OBJ_WRITTEN(arg-&gt;klass, Qundef, ce-&gt;file);</div><div class='add'>+</div><div class='add'>+    rb_id_table_insert(arg-&gt;tbl, key, (VALUE)nce);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+clone_const_i(ID key, VALUE value, void *data)</div><div class='ctx'> {</div><div class='del'>-    NODE *fbody = body-&gt;nd_body;</div><div class='add'>+    return clone_const(key, (const rb_const_entry_t *)value, data);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (fbody &amp;&amp; nd_type(fbody) == NODE_SCOPE) {</div><div class='del'>-	VALUE cref = data-&gt;klass ?</div><div class='del'>-	    (VALUE)NEW_NODE(NODE_CREF,data-&gt;klass,0,fbody-&gt;nd_rval) :</div><div class='del'>-	    fbody-&gt;nd_rval;</div><div class='del'>-	fbody = NEW_NODE(NODE_SCOPE, fbody-&gt;nd_tbl, cref, fbody-&gt;nd_next);</div><div class='add'>+static void</div><div class='add'>+class_init_copy_check(VALUE clone, VALUE orig)</div><div class='add'>+{</div><div class='add'>+    if (orig == rb_cBasicObject) {</div><div class='add'>+	rb_raise(rb_eTypeError, "can't copy the root class");</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_SUPER(clone) != 0 || clone == rb_cBasicObject) {</div><div class='add'>+	rb_raise(rb_eTypeError, "already initialized class");</div><div class='add'>+    }</div><div class='add'>+    if (FL_TEST(orig, FL_SINGLETON)) {</div><div class='add'>+	rb_raise(rb_eTypeError, "can't copy singleton class");</div><div class='ctx'>     }</div><div class='del'>-    st_insert(data-&gt;tbl, mid, (st_data_t)NEW_METHOD(fbody, body-&gt;nd_noex));</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> VALUE</div><div class='del'>-rb_mod_init_copy(clone, orig)</div><div class='del'>-    VALUE clone, orig;</div><div class='add'>+rb_mod_init_copy(VALUE clone, VALUE orig)</div><div class='ctx'> {</div><div class='del'>-    rb_obj_init_copy(clone, orig);</div><div class='add'>+    if (RB_TYPE_P(clone, T_CLASS)) {</div><div class='add'>+	class_init_copy_check(clone, orig);</div><div class='add'>+    }</div><div class='add'>+    if (!OBJ_INIT_COPY(clone, orig)) return clone;</div><div class='ctx'>     if (!FL_TEST(CLASS_OF(clone), FL_SINGLETON)) {</div><div class='del'>-	RBASIC(clone)-&gt;klass = RBASIC(orig)-&gt;klass;</div><div class='del'>-	RBASIC(clone)-&gt;klass = rb_singleton_class_clone(clone);</div><div class='add'>+	RBASIC_SET_CLASS(clone, rb_singleton_class_clone(orig));</div><div class='add'>+	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, (VALUE)clone);</div><div class='ctx'>     }</div><div class='del'>-    RCLASS(clone)-&gt;super = RCLASS(orig)-&gt;super;</div><div class='del'>-    if (RCLASS(orig)-&gt;iv_tbl) {</div><div class='del'>-	ID id;</div><div class='del'>-</div><div class='del'>-	RCLASS(clone)-&gt;iv_tbl = st_copy(RCLASS(orig)-&gt;iv_tbl);</div><div class='del'>-	id = rb_intern("__classpath__");</div><div class='del'>-	st_delete(RCLASS(clone)-&gt;iv_tbl, (st_data_t*)&amp;id, 0);</div><div class='del'>-	id = rb_intern("__classid__");</div><div class='del'>-	st_delete(RCLASS(clone)-&gt;iv_tbl, (st_data_t*)&amp;id, 0);</div><div class='add'>+    RCLASS_SET_SUPER(clone, RCLASS_SUPER(orig));</div><div class='add'>+    RCLASS_EXT(clone)-&gt;allocator = RCLASS_EXT(orig)-&gt;allocator;</div><div class='add'>+    if (RCLASS_IV_TBL(clone)) {</div><div class='add'>+	st_free_table(RCLASS_IV_TBL(clone));</div><div class='add'>+	RCLASS_IV_TBL(clone) = 0;</div><div class='ctx'>     }</div><div class='del'>-    if (RCLASS(orig)-&gt;m_tbl) {</div><div class='del'>-	struct clone_method_data data;</div><div class='del'>-</div><div class='del'>-	data.tbl = RCLASS(clone)-&gt;m_tbl = st_init_numtable();</div><div class='del'>-	data.klass = (VALUE)clone;</div><div class='add'>+    if (RCLASS_CONST_TBL(clone)) {</div><div class='add'>+	rb_free_const_table(RCLASS_CONST_TBL(clone));</div><div class='add'>+	RCLASS_CONST_TBL(clone) = 0;</div><div class='add'>+    }</div><div class='add'>+    RCLASS_M_TBL(clone) = 0;</div><div class='add'>+    if (RCLASS_IV_TBL(orig)) {</div><div class='add'>+	st_data_t id;</div><div class='add'>+</div><div class='add'>+	RCLASS_IV_TBL(clone) = rb_st_copy(clone, RCLASS_IV_TBL(orig));</div><div class='add'>+	CONST_ID(id, "__tmp_classpath__");</div><div class='add'>+	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='add'>+	CONST_ID(id, "__classpath__");</div><div class='add'>+	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='add'>+	CONST_ID(id, "__classid__");</div><div class='add'>+	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_CONST_TBL(orig)) {</div><div class='add'>+	struct clone_const_arg arg;</div><div class='ctx'> </div><div class='del'>-	st_foreach(RCLASS(orig)-&gt;m_tbl, clone_method, (st_data_t)&amp;data);</div><div class='add'>+	arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='add'>+	arg.klass = clone;</div><div class='add'>+	rb_id_table_foreach(RCLASS_CONST_TBL(orig), clone_const_i, &amp;arg);</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_M_TBL(orig)) {</div><div class='add'>+	struct clone_method_arg arg;</div><div class='add'>+	arg.old_klass = orig;</div><div class='add'>+	arg.new_klass = clone;</div><div class='add'>+	RCLASS_M_TBL_INIT(clone);</div><div class='add'>+	rb_id_table_foreach(RCLASS_M_TBL(orig), clone_method_i, &amp;arg);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return clone;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* :nodoc: */</div><div class='ctx'> VALUE</div><div class='del'>-rb_class_init_copy(clone, orig)</div><div class='del'>-    VALUE clone, orig;</div><div class='add'>+rb_singleton_class_clone(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    if (RCLASS(clone)-&gt;super != 0) {</div><div class='del'>-	rb_raise(rb_eTypeError, "already initialized class");</div><div class='del'>-    }</div><div class='del'>-    if (FL_TEST(orig, FL_SINGLETON)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't copy singleton class");</div><div class='del'>-    }</div><div class='del'>-    return rb_mod_init_copy(clone, orig);</div><div class='add'>+    return rb_singleton_class_clone_and_attach(obj, Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_singleton_class_clone(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach)</div><div class='ctx'> {</div><div class='del'>-    VALUE klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    const VALUE klass = RBASIC(obj)-&gt;klass;</div><div class='ctx'> </div><div class='ctx'>     if (!FL_TEST(klass, FL_SINGLETON))</div><div class='ctx'> 	return klass;</div><div class='ctx'>     else {</div><div class='ctx'> 	/* copy singleton(unnamed) class */</div><div class='del'>-	NEWOBJ(clone, struct RClass);</div><div class='del'>-	OBJSETUP(clone, 0, RBASIC(klass)-&gt;flags);</div><div class='add'>+	VALUE clone = class_alloc(RBASIC(klass)-&gt;flags, 0);</div><div class='ctx'> </div><div class='ctx'> 	if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='del'>-	    RBASIC(clone)-&gt;klass = (VALUE)clone;</div><div class='add'>+	    RBASIC_SET_CLASS(clone, clone);</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    RBASIC(clone)-&gt;klass = rb_singleton_class_clone(klass);</div><div class='add'>+	    RBASIC_SET_CLASS(clone, rb_singleton_class_clone(klass));</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	clone-&gt;super = RCLASS(klass)-&gt;super;</div><div class='del'>-	clone-&gt;iv_tbl = 0;</div><div class='del'>-	clone-&gt;m_tbl = 0;</div><div class='del'>-	if (RCLASS(klass)-&gt;iv_tbl) {</div><div class='del'>-	    clone-&gt;iv_tbl = st_copy(RCLASS(klass)-&gt;iv_tbl);</div><div class='add'>+	RCLASS_SET_SUPER(clone, RCLASS_SUPER(klass));</div><div class='add'>+	RCLASS_EXT(clone)-&gt;allocator = RCLASS_EXT(klass)-&gt;allocator;</div><div class='add'>+	if (RCLASS_IV_TBL(klass)) {</div><div class='add'>+	    RCLASS_IV_TBL(clone) = rb_st_copy(clone, RCLASS_IV_TBL(klass));</div><div class='add'>+	}</div><div class='add'>+	if (RCLASS_CONST_TBL(klass)) {</div><div class='add'>+	    struct clone_const_arg arg;</div><div class='add'>+	    arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='add'>+	    arg.klass = clone;</div><div class='add'>+	    rb_id_table_foreach(RCLASS_CONST_TBL(klass), clone_const_i, &amp;arg);</div><div class='add'>+	}</div><div class='add'>+	if (attach != Qundef) {</div><div class='add'>+	    rb_singleton_class_attached(clone, attach);</div><div class='ctx'> 	}</div><div class='add'>+	RCLASS_M_TBL_INIT(clone);</div><div class='ctx'> 	{</div><div class='del'>-	    struct clone_method_data data;</div><div class='del'>-</div><div class='del'>-	    data.tbl = clone-&gt;m_tbl = st_init_numtable();</div><div class='del'>-	    switch (TYPE(obj)) {</div><div class='del'>-	      case T_CLASS:</div><div class='del'>-	      case T_MODULE:</div><div class='del'>-		data.klass = obj;</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		data.klass = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    st_foreach(RCLASS(klass)-&gt;m_tbl, clone_method, (st_data_t)&amp;data);</div><div class='add'>+	    struct clone_method_arg arg;</div><div class='add'>+	    arg.old_klass = klass;</div><div class='add'>+	    arg.new_klass = clone;</div><div class='add'>+	    rb_id_table_foreach(RCLASS_M_TBL(klass), clone_method_i, &amp;arg);</div><div class='ctx'> 	}</div><div class='del'>-	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, (VALUE)clone);</div><div class='add'>+	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, clone);</div><div class='ctx'> 	FL_SET(clone, FL_SINGLETON);</div><div class='del'>-	return (VALUE)clone;</div><div class='add'>+</div><div class='add'>+	return clone;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * Attach a object to a singleton class.</div><div class='add'>+ * @pre \a klass is the singleton class of \a obj.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_singleton_class_attached(klass, obj)</div><div class='del'>-    VALUE klass, obj;</div><div class='add'>+rb_singleton_class_attached(VALUE klass, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	if (!RCLASS(klass)-&gt;iv_tbl) {</div><div class='del'>-	    RCLASS(klass)-&gt;iv_tbl = st_init_numtable();</div><div class='add'>+	if (!RCLASS_IV_TBL(klass)) {</div><div class='add'>+	    RCLASS_IV_TBL(klass) = st_init_numtable();</div><div class='ctx'> 	}</div><div class='del'>-	st_insert(RCLASS(klass)-&gt;iv_tbl, rb_intern("__attached__"), obj);</div><div class='add'>+	rb_class_ivar_set(klass, id_attached, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_make_metaclass(obj, super)</div><div class='del'>-    VALUE obj, super;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define METACLASS_OF(k) RBASIC(k)-&gt;klass</div><div class='add'>+#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * whether k is a meta^(n)-class of Class class</div><div class='add'>+ * @retval 1 if \a k is a meta^(n)-class of Class class (n &gt;= 0)</div><div class='add'>+ * @retval 0 otherwise</div><div class='add'>+ */</div><div class='add'>+#define META_CLASS_OF_CLASS_CLASS_P(k)  (METACLASS_OF(k) == (k))</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_singleton_class_has_metaclass_p(VALUE sklass)</div><div class='ctx'> {</div><div class='del'>-    VALUE klass = rb_class_boot(super);</div><div class='del'>-    FL_SET(klass, FL_SINGLETON);</div><div class='del'>-    RBASIC(obj)-&gt;klass = klass;</div><div class='del'>-    rb_singleton_class_attached(klass, obj);</div><div class='del'>-    if (BUILTIN_TYPE(obj) == T_CLASS &amp;&amp; FL_TEST(obj, FL_SINGLETON)) {</div><div class='del'>-	RBASIC(klass)-&gt;klass = klass;</div><div class='del'>-	RCLASS(klass)-&gt;super = RBASIC(rb_class_real(RCLASS(obj)-&gt;super))-&gt;klass;</div><div class='add'>+    return rb_attr_get(METACLASS_OF(sklass), id_attached) == sklass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_singleton_class_internal_p(VALUE sklass)</div><div class='add'>+{</div><div class='add'>+    return (RB_TYPE_P(rb_attr_get(sklass, id_attached), T_CLASS) &amp;&amp;</div><div class='add'>+	    !rb_singleton_class_has_metaclass_p(sklass));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * whether k has a metaclass</div><div class='add'>+ * @retval 1 if \a k has a metaclass</div><div class='add'>+ * @retval 0 otherwise</div><div class='add'>+ */</div><div class='add'>+#define HAVE_METACLASS_P(k) \</div><div class='add'>+    (FL_TEST(METACLASS_OF(k), FL_SINGLETON) &amp;&amp; \</div><div class='add'>+     rb_singleton_class_has_metaclass_p(k))</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * ensures \a klass belongs to its own eigenclass.</div><div class='add'>+ * @return the eigenclass of \a klass</div><div class='add'>+ * @post \a klass belongs to the returned eigenclass.</div><div class='add'>+ *       i.e. the attached object of the eigenclass is \a klass.</div><div class='add'>+ * @note this macro creates a new eigenclass if necessary.</div><div class='add'>+ */</div><div class='add'>+#define ENSURE_EIGENCLASS(klass) \</div><div class='add'>+    (HAVE_METACLASS_P(klass) ? METACLASS_OF(klass) : make_metaclass(klass))</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Creates a metaclass of \a klass</div><div class='add'>+ * \param klass     a class</div><div class='add'>+ * \return          created metaclass for the class</div><div class='add'>+ * \pre \a klass is a Class object</div><div class='add'>+ * \pre \a klass has no singleton class.</div><div class='add'>+ * \post the class of \a klass is the returned class.</div><div class='add'>+ * \post the returned class is meta^(n+1)-class when \a klass is a meta^(n)-klass for n &gt;= 0</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+make_metaclass(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE super;</div><div class='add'>+    VALUE metaclass = rb_class_boot(Qundef);</div><div class='add'>+</div><div class='add'>+    FL_SET(metaclass, FL_SINGLETON);</div><div class='add'>+    rb_singleton_class_attached(metaclass, klass);</div><div class='add'>+</div><div class='add'>+    if (META_CLASS_OF_CLASS_CLASS_P(klass)) {</div><div class='add'>+	SET_METACLASS_OF(klass, metaclass);</div><div class='add'>+	SET_METACLASS_OF(metaclass, metaclass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE metasuper = RBASIC(rb_class_real(super))-&gt;klass;</div><div class='del'>-</div><div class='del'>-	/* metaclass of a superclass may be NULL at boot time */</div><div class='del'>-	if (metasuper) {</div><div class='del'>-	    RBASIC(klass)-&gt;klass = metasuper;</div><div class='del'>-	}</div><div class='add'>+	VALUE tmp = METACLASS_OF(klass); /* for a meta^(n)-class klass, tmp is meta^(n)-class of Class class */</div><div class='add'>+	SET_METACLASS_OF(klass, metaclass);</div><div class='add'>+	SET_METACLASS_OF(metaclass, ENSURE_EIGENCLASS(tmp));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    super = RCLASS_SUPER(klass);</div><div class='add'>+    while (RB_TYPE_P(super, T_ICLASS)) super = RCLASS_SUPER(super);</div><div class='add'>+    RCLASS_SET_SUPER(metaclass, super ? ENSURE_EIGENCLASS(super) : rb_cClass);</div><div class='add'>+</div><div class='add'>+    OBJ_INFECT(metaclass, RCLASS_SUPER(metaclass));</div><div class='add'>+</div><div class='add'>+    return metaclass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Creates a singleton class for \a obj.</div><div class='add'>+ * \pre \a obj must not a immediate nor a special const.</div><div class='add'>+ * \pre \a obj must not a Class object.</div><div class='add'>+ * \pre \a obj has no singleton class.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+make_singleton_class(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE orig_class = RBASIC(obj)-&gt;klass;</div><div class='add'>+    VALUE klass = rb_class_boot(orig_class);</div><div class='add'>+</div><div class='add'>+    FL_SET(klass, FL_SINGLETON);</div><div class='add'>+    RBASIC_SET_CLASS(obj, klass);</div><div class='add'>+    rb_singleton_class_attached(klass, obj);</div><div class='add'>+</div><div class='add'>+    SET_METACLASS_OF(klass, METACLASS_OF(rb_class_real(orig_class)));</div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+boot_defclass(const char *name, VALUE super)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = rb_class_boot(super);</div><div class='add'>+    ID id = rb_intern(name);</div><div class='add'>+</div><div class='add'>+    rb_name_class(obj, id);</div><div class='add'>+    rb_const_set((rb_cObject ? rb_cObject : obj), id, obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_class_hierarchy(void)</div><div class='add'>+{</div><div class='add'>+    rb_cBasicObject = boot_defclass("BasicObject", 0);</div><div class='add'>+    rb_cObject = boot_defclass("Object", rb_cBasicObject);</div><div class='add'>+    rb_gc_register_mark_object(rb_cObject);</div><div class='add'>+</div><div class='add'>+    /* resolve class name ASAP for order-independence */</div><div class='add'>+    rb_class_name(rb_cObject);</div><div class='add'>+</div><div class='add'>+    rb_cModule = boot_defclass("Module", rb_cObject);</div><div class='add'>+    rb_cClass =  boot_defclass("Class",  rb_cModule);</div><div class='add'>+</div><div class='add'>+    rb_const_set(rb_cObject, rb_intern_const("BasicObject"), rb_cBasicObject);</div><div class='add'>+    RBASIC_SET_CLASS(rb_cClass, rb_cClass);</div><div class='add'>+    RBASIC_SET_CLASS(rb_cModule, rb_cClass);</div><div class='add'>+    RBASIC_SET_CLASS(rb_cObject, rb_cClass);</div><div class='add'>+    RBASIC_SET_CLASS(rb_cBasicObject, rb_cClass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * \internal</div><div class='add'>+ * Creates a new *singleton class* for an object.</div><div class='add'>+ *</div><div class='add'>+ * \pre \a obj has no singleton class.</div><div class='add'>+ * \note DO NOT USE the function in an extension libraries. Use \ref rb_singleton_class.</div><div class='add'>+ * \param obj     An object.</div><div class='add'>+ * \param unused  ignored.</div><div class='add'>+ * \return        The singleton class of the object.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='del'>-rb_define_class_id(id, super)</div><div class='del'>-    ID id;</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_make_metaclass(VALUE obj, VALUE unused)</div><div class='add'>+{</div><div class='add'>+    if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='add'>+	return make_metaclass(obj);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return make_singleton_class(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a new class.</div><div class='add'>+ * \param id     ignored</div><div class='add'>+ * \param super  A class from which the new class will derive. NULL means \c Object class.</div><div class='add'>+ * \return       the created class</div><div class='add'>+ * \throw TypeError if super is not a \c Class object.</div><div class='add'>+ *</div><div class='add'>+ * \note the returned class will not be associated with \a id.</div><div class='add'>+ *       You must explicitly set a class name if necessary.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_define_class_id(ID id, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='hunk'>@@ -215,31 +607,43 @@ rb_define_class_id(id, super)</div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_check_inheritable(super)</div><div class='del'>-    VALUE super;</div><div class='del'>-{</div><div class='del'>-    if (TYPE(super) != T_CLASS) {</div><div class='del'>-	rb_raise(rb_eTypeError, "superclass must be a Class (%s given)",</div><div class='del'>-		 rb_obj_classname(super));</div><div class='del'>-    }</div><div class='del'>-    if (RBASIC(super)-&gt;flags &amp; FL_SINGLETON) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't make subclass of virtual class");</div><div class='del'>-    }</div><div class='del'>-}</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * Calls Class#inherited.</div><div class='add'>+ * \param super  A class which will be called #inherited.</div><div class='add'>+ *               NULL means Object class.</div><div class='add'>+ * \param klass  A Class object which derived from \a super</div><div class='add'>+ * \return the value \c Class#inherited's returns</div><div class='add'>+ * \pre Each of \a super and \a klass must be a \c Class object.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='del'>-rb_class_inherited(super, klass)</div><div class='del'>-    VALUE super, klass;</div><div class='add'>+rb_class_inherited(VALUE super, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    ID inherited;</div><div class='ctx'>     if (!super) super = rb_cObject;</div><div class='del'>-    return rb_funcall(super, rb_intern("inherited"), 1, klass);</div><div class='add'>+    CONST_ID(inherited, "inherited");</div><div class='add'>+    return rb_funcall(super, inherited, 1, klass);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a top-level class.</div><div class='add'>+ * \param name   name of the class</div><div class='add'>+ * \param super  a class from which the new class will derive.</div><div class='add'>+ * \return the created class</div><div class='add'>+ * \throw TypeError if the constant name \a name is already taken but</div><div class='add'>+ *                  the constant is not a \c Class.</div><div class='add'>+ * \throw TypeError if the class is already defined but the class can not</div><div class='add'>+ *                  be reopened because its superclass is not \a super.</div><div class='add'>+ * \throw ArgumentError if the \a super is NULL.</div><div class='add'>+ * \post top-level constant named \a name refers the returned class.</div><div class='add'>+ *</div><div class='add'>+ * \note if a class named \a name is already defined and its superclass is</div><div class='add'>+ *       \a super, the function just returns the defined class.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='del'>-rb_define_class(name, super)</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_define_class(const char *name, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'>     ID id;</div><div class='hunk'>@@ -247,19 +651,20 @@ rb_define_class(name, super)</div><div class='ctx'>     id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined(rb_cObject, id)) {</div><div class='ctx'> 	klass = rb_const_get(rb_cObject, id);</div><div class='del'>-	if (TYPE(klass) != T_CLASS) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%s is not a class", name);</div><div class='add'>+	if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%s is not a class (%"PRIsVALUE")",</div><div class='add'>+		     name, rb_obj_class(klass));</div><div class='ctx'> 	}</div><div class='del'>-	if (rb_class_real(RCLASS(klass)-&gt;super) != super) {</div><div class='del'>-	    rb_name_error(id, "%s is already defined", name);</div><div class='add'>+	if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "superclass mismatch for class %s", name);</div><div class='ctx'> 	}</div><div class='ctx'> 	return klass;</div><div class='ctx'>     }</div><div class='ctx'>     if (!super) {</div><div class='del'>-	rb_warn("no super class for `%s', Object assumed", name);</div><div class='add'>+	rb_raise(rb_eArgError, "no super class for `%s'", name);</div><div class='ctx'>     }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</div><div class='del'>-    st_add_direct(rb_class_tbl, id, klass);</div><div class='add'>+    rb_vm_add_root_module(id, klass);</div><div class='ctx'>     rb_name_class(klass, id);</div><div class='ctx'>     rb_const_set(rb_cObject, id, klass);</div><div class='ctx'>     rb_class_inherited(super, klass);</div><div class='hunk'>@@ -267,55 +672,89 @@ rb_define_class(name, super)</div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a class under the namespace of \a outer.</div><div class='add'>+ * \param outer  a class which contains the new class.</div><div class='add'>+ * \param name   name of the new class</div><div class='add'>+ * \param super  a class from which the new class will derive.</div><div class='add'>+ *               NULL means \c Object class.</div><div class='add'>+ * \return the created class</div><div class='add'>+ * \throw TypeError if the constant name \a name is already taken but</div><div class='add'>+ *                  the constant is not a \c Class.</div><div class='add'>+ * \throw TypeError if the class is already defined but the class can not</div><div class='add'>+ *                  be reopened because its superclass is not \a super.</div><div class='add'>+ * \post top-level constant named \a name refers the returned class.</div><div class='add'>+ *</div><div class='add'>+ * \note if a class named \a name is already defined and its superclass is</div><div class='add'>+ *       \a super, the function just returns the defined class.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='add'>+{</div><div class='add'>+    return rb_define_class_id_under(outer, rb_intern(name), super);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a class under the namespace of \a outer.</div><div class='add'>+ * \param outer  a class which contains the new class.</div><div class='add'>+ * \param id     name of the new class</div><div class='add'>+ * \param super  a class from which the new class will derive.</div><div class='add'>+ *               NULL means \c Object class.</div><div class='add'>+ * \return the created class</div><div class='add'>+ * \throw TypeError if the constant name \a name is already taken but</div><div class='add'>+ *                  the constant is not a \c Class.</div><div class='add'>+ * \throw TypeError if the class is already defined but the class can not</div><div class='add'>+ *                  be reopened because its superclass is not \a super.</div><div class='add'>+ * \post top-level constant named \a name refers the returned class.</div><div class='add'>+ *</div><div class='add'>+ * \note if a class named \a name is already defined and its superclass is</div><div class='add'>+ *       \a super, the function just returns the defined class.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='del'>-rb_define_class_under(outer, name, super)</div><div class='del'>-    VALUE outer;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_define_class_id_under(VALUE outer, ID id, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='del'>-    ID id;</div><div class='ctx'> </div><div class='del'>-    id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined_at(outer, id)) {</div><div class='ctx'> 	klass = rb_const_get_at(outer, id);</div><div class='del'>-	if (TYPE(klass) != T_CLASS) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%s is not a class", name);</div><div class='add'>+	if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a class"</div><div class='add'>+		     " (%"PRIsVALUE")",</div><div class='add'>+		     outer, rb_id2str(id), rb_obj_class(klass));</div><div class='ctx'> 	}</div><div class='del'>-	if (rb_class_real(RCLASS(klass)-&gt;super) != super) {</div><div class='del'>-	    rb_name_error(id, "%s is already defined", name);</div><div class='add'>+	if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "superclass mismatch for class "</div><div class='add'>+		     "%"PRIsVALUE"::%"PRIsVALUE""</div><div class='add'>+		     " (%"PRIsVALUE" is given but was %"PRIsVALUE")",</div><div class='add'>+		     outer, rb_id2str(id), RCLASS_SUPER(klass), super);</div><div class='ctx'> 	}</div><div class='ctx'> 	return klass;</div><div class='ctx'>     }</div><div class='ctx'>     if (!super) {</div><div class='del'>-	rb_warn("no super class for `%s::%s', Object assumed",</div><div class='del'>-		rb_class2name(outer), name);</div><div class='add'>+	rb_raise(rb_eArgError, "no super class for `%"PRIsVALUE"::%"PRIsVALUE"'",</div><div class='add'>+		 rb_class_path(outer), rb_id2str(id));</div><div class='ctx'>     }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</div><div class='del'>-    rb_set_class_path(klass, outer, name);</div><div class='add'>+    rb_set_class_path_string(klass, outer, rb_id2str(id));</div><div class='ctx'>     rb_const_set(outer, id, klass);</div><div class='ctx'>     rb_class_inherited(super, klass);</div><div class='add'>+    rb_gc_register_mark_object(klass);</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_module_new()</div><div class='add'>+rb_module_new(void)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(mdl, struct RClass);</div><div class='del'>-    OBJSETUP(mdl, rb_cModule, T_MODULE);</div><div class='del'>-</div><div class='del'>-    mdl-&gt;super = 0;</div><div class='del'>-    mdl-&gt;iv_tbl = 0;</div><div class='del'>-    mdl-&gt;m_tbl = 0;</div><div class='del'>-    mdl-&gt;m_tbl = st_init_numtable();</div><div class='del'>-</div><div class='add'>+    VALUE mdl = class_alloc(T_MODULE, rb_cModule);</div><div class='add'>+    RCLASS_M_TBL_INIT(mdl);</div><div class='ctx'>     return (VALUE)mdl;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_define_module_id(id)</div><div class='del'>-    ID id;</div><div class='add'>+rb_define_module_id(ID id)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mdl;</div><div class='ctx'> </div><div class='hunk'>@@ -326,8 +765,7 @@ rb_define_module_id(id)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_define_module(name)</div><div class='del'>-    const char *name;</div><div class='add'>+rb_define_module(const char *name)</div><div class='ctx'> {</div><div class='ctx'>     VALUE module;</div><div class='ctx'>     ID id;</div><div class='hunk'>@@ -335,61 +773,73 @@ rb_define_module(name)</div><div class='ctx'>     id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined(rb_cObject, id)) {</div><div class='ctx'> 	module = rb_const_get(rb_cObject, id);</div><div class='del'>-	if (TYPE(module) == T_MODULE)</div><div class='del'>-	    return module;</div><div class='del'>-	rb_raise(rb_eTypeError, "%s is not a module", rb_obj_classname(module));</div><div class='add'>+	if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%s is not a module (%"PRIsVALUE")",</div><div class='add'>+		     name, rb_obj_class(module));</div><div class='add'>+	}</div><div class='add'>+	return module;</div><div class='ctx'>     }</div><div class='ctx'>     module = rb_define_module_id(id);</div><div class='del'>-    st_add_direct(rb_class_tbl, id, module);</div><div class='add'>+    rb_vm_add_root_module(id, module);</div><div class='ctx'>     rb_const_set(rb_cObject, id, module);</div><div class='ctx'> </div><div class='ctx'>     return module;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_define_module_under(outer, name)</div><div class='del'>-    VALUE outer;</div><div class='del'>-    const char *name;</div><div class='add'>+rb_define_module_under(VALUE outer, const char *name)</div><div class='add'>+{</div><div class='add'>+    return rb_define_module_id_under(outer, rb_intern(name));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_define_module_id_under(VALUE outer, ID id)</div><div class='ctx'> {</div><div class='ctx'>     VALUE module;</div><div class='del'>-    ID id;</div><div class='ctx'> </div><div class='del'>-    id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined_at(outer, id)) {</div><div class='ctx'> 	module = rb_const_get_at(outer, id);</div><div class='del'>-	if (TYPE(module) == T_MODULE)</div><div class='del'>-	    return module;</div><div class='del'>-	rb_raise(rb_eTypeError, "%s::%s is not a module",</div><div class='del'>-		 rb_class2name(outer), rb_obj_classname(module));</div><div class='add'>+	if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a module"</div><div class='add'>+		     " (%"PRIsVALUE")",</div><div class='add'>+		     outer, rb_id2str(id), rb_obj_class(module));</div><div class='add'>+	}</div><div class='add'>+	return module;</div><div class='ctx'>     }</div><div class='ctx'>     module = rb_define_module_id(id);</div><div class='ctx'>     rb_const_set(outer, id, module);</div><div class='del'>-    rb_set_class_path(module, outer, name);</div><div class='add'>+    rb_set_class_path_string(module, outer, rb_id2str(id));</div><div class='add'>+    rb_gc_register_mark_object(module);</div><div class='ctx'> </div><div class='ctx'>     return module;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-include_class_new(module, super)</div><div class='del'>-    VALUE module, super;</div><div class='add'>+VALUE</div><div class='add'>+rb_include_class_new(VALUE module, VALUE super)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(klass, struct RClass);</div><div class='del'>-    OBJSETUP(klass, rb_cClass, T_ICLASS);</div><div class='add'>+    VALUE klass = class_alloc(T_ICLASS, rb_cClass);</div><div class='ctx'> </div><div class='ctx'>     if (BUILTIN_TYPE(module) == T_ICLASS) {</div><div class='ctx'> 	module = RBASIC(module)-&gt;klass;</div><div class='ctx'>     }</div><div class='del'>-    if (!RCLASS(module)-&gt;iv_tbl) {</div><div class='del'>-	RCLASS(module)-&gt;iv_tbl = st_init_numtable();</div><div class='add'>+    if (!RCLASS_IV_TBL(module)) {</div><div class='add'>+	RCLASS_IV_TBL(module) = st_init_numtable();</div><div class='ctx'>     }</div><div class='del'>-    klass-&gt;iv_tbl = RCLASS(module)-&gt;iv_tbl;</div><div class='del'>-    klass-&gt;m_tbl = RCLASS(module)-&gt;m_tbl;</div><div class='del'>-    klass-&gt;super = super;</div><div class='del'>-    if (TYPE(module) == T_ICLASS) {</div><div class='del'>-	RBASIC(klass)-&gt;klass = RBASIC(module)-&gt;klass;</div><div class='add'>+    if (!RCLASS_CONST_TBL(module)) {</div><div class='add'>+	RCLASS_CONST_TBL(module) = rb_id_table_create(0);</div><div class='add'>+    }</div><div class='add'>+    RCLASS_IV_TBL(klass) = RCLASS_IV_TBL(module);</div><div class='add'>+    RCLASS_CONST_TBL(klass) = RCLASS_CONST_TBL(module);</div><div class='add'>+</div><div class='add'>+    RCLASS_M_TBL(OBJ_WB_UNPROTECT(klass)) =</div><div class='add'>+      RCLASS_M_TBL(OBJ_WB_UNPROTECT(RCLASS_ORIGIN(module))); /* TODO: unprotected? */</div><div class='add'>+</div><div class='add'>+    RCLASS_SET_SUPER(klass, super);</div><div class='add'>+    if (RB_TYPE_P(module, T_ICLASS)) {</div><div class='add'>+	RBASIC_SET_CLASS(klass, RBASIC(module)-&gt;klass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RBASIC(klass)-&gt;klass = module;</div><div class='add'>+	RBASIC_SET_CLASS(klass, module);</div><div class='ctx'>     }</div><div class='ctx'>     OBJ_INFECT(klass, module);</div><div class='ctx'>     OBJ_INFECT(klass, super);</div><div class='hunk'>@@ -397,80 +847,184 @@ include_class_new(module, super)</div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ensure_includable(VALUE klass, VALUE module)</div><div class='add'>+{</div><div class='add'>+    rb_frozen_class_p(klass);</div><div class='add'>+    Check_Type(module, T_MODULE);</div><div class='add'>+    if (!NIL_P(rb_refinement_module_get_refined_class(module))) {</div><div class='add'>+	rb_raise(rb_eArgError, "refinement module is not allowed");</div><div class='add'>+    }</div><div class='add'>+    OBJ_INFECT(klass, module);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-rb_include_module(klass, module)</div><div class='del'>-    VALUE klass, module;</div><div class='add'>+rb_include_module(VALUE klass, VALUE module)</div><div class='ctx'> {</div><div class='del'>-    VALUE p, c;</div><div class='ctx'>     int changed = 0;</div><div class='ctx'> </div><div class='del'>-    rb_frozen_class_p(klass);</div><div class='del'>-    if (!OBJ_TAINTED(klass)) {</div><div class='del'>-	rb_secure(4);</div><div class='del'>-    }</div><div class='del'>-    </div><div class='del'>-    if (TYPE(module) != T_MODULE) {</div><div class='del'>-	Check_Type(module, T_MODULE);</div><div class='del'>-    }</div><div class='add'>+    ensure_includable(klass, module);</div><div class='add'>+</div><div class='add'>+    changed = include_modules_at(klass, RCLASS_ORIGIN(klass), module, TRUE);</div><div class='add'>+    if (changed &lt; 0)</div><div class='add'>+	rb_raise(rb_eArgError, "cyclic include detected");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+add_refined_method_entry_i(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_add_refined_method_entry((VALUE)data, key);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)</div><div class='add'>+{</div><div class='add'>+    VALUE p, iclass;</div><div class='add'>+    int method_changed = 0, constant_changed = 0;</div><div class='add'>+    struct rb_id_table *const klass_m_tbl = RCLASS_M_TBL(RCLASS_ORIGIN(klass));</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(klass, module);</div><div class='del'>-    c = klass;</div><div class='ctx'>     while (module) {</div><div class='del'>-	int superclass_seen = Qfalse;</div><div class='add'>+	int superclass_seen = FALSE;</div><div class='add'>+	struct rb_id_table *tbl;</div><div class='ctx'> </div><div class='del'>-	if (RCLASS(klass)-&gt;m_tbl == RCLASS(module)-&gt;m_tbl)</div><div class='del'>-	    rb_raise(rb_eArgError, "cyclic include detected");</div><div class='add'>+	if (RCLASS_ORIGIN(module) != module)</div><div class='add'>+	    goto skip;</div><div class='add'>+	if (klass_m_tbl &amp;&amp; klass_m_tbl == RCLASS_M_TBL(module))</div><div class='add'>+	    return -1;</div><div class='ctx'> 	/* ignore if the module included already in superclasses */</div><div class='del'>-	for (p = RCLASS(klass)-&gt;super; p; p = RCLASS(p)-&gt;super) {</div><div class='del'>-	    switch (BUILTIN_TYPE(p)) {</div><div class='del'>-	      case T_ICLASS:</div><div class='del'>-		if (RCLASS(p)-&gt;m_tbl == RCLASS(module)-&gt;m_tbl) {</div><div class='add'>+	for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {</div><div class='add'>+	    int type = BUILTIN_TYPE(p);</div><div class='add'>+	    if (type == T_ICLASS) {</div><div class='add'>+		if (RCLASS_M_TBL(p) == RCLASS_M_TBL(module)) {</div><div class='ctx'> 		    if (!superclass_seen) {</div><div class='del'>-			c = p;	/* move insertion point */</div><div class='add'>+			c = p;  /* move insertion point */</div><div class='ctx'> 		    }</div><div class='ctx'> 		    goto skip;</div><div class='ctx'> 		}</div><div class='del'>-		break;</div><div class='del'>-	      case T_CLASS:</div><div class='del'>-		superclass_seen = Qtrue;</div><div class='del'>-		break;</div><div class='ctx'> 	    }</div><div class='add'>+	    else if (type == T_CLASS) {</div><div class='add'>+		if (!search_super) break;</div><div class='add'>+		superclass_seen = TRUE;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	iclass = rb_include_class_new(module, RCLASS_SUPER(c));</div><div class='add'>+	c = RCLASS_SET_SUPER(c, iclass);</div><div class='add'>+</div><div class='add'>+	{</div><div class='add'>+	    VALUE m = module;</div><div class='add'>+	    if (BUILTIN_TYPE(m) == T_ICLASS) m = RBASIC(m)-&gt;klass;</div><div class='add'>+	    rb_module_add_to_subclasses_list(m, iclass);</div><div class='ctx'> 	}</div><div class='del'>-	c = RCLASS(c)-&gt;super = include_class_new(module, RCLASS(c)-&gt;super);</div><div class='del'>-	changed = 1;</div><div class='add'>+</div><div class='add'>+	if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {</div><div class='add'>+	    VALUE refined_class =</div><div class='add'>+		rb_refinement_module_get_refined_class(klass);</div><div class='add'>+</div><div class='add'>+	    rb_id_table_foreach(RMODULE_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);</div><div class='add'>+	    FL_SET(c, RMODULE_INCLUDED_INTO_REFINEMENT);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	tbl = RMODULE_M_TBL(module);</div><div class='add'>+	if (tbl &amp;&amp; rb_id_table_size(tbl)) method_changed = 1;</div><div class='add'>+</div><div class='add'>+	tbl = RMODULE_CONST_TBL(module);</div><div class='add'>+	if (tbl &amp;&amp; rb_id_table_size(tbl)) constant_changed = 1;</div><div class='ctx'>       skip:</div><div class='del'>-	module = RCLASS(module)-&gt;super;</div><div class='add'>+	module = RCLASS_SUPER(module);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (method_changed) rb_clear_method_cache_by_class(klass);</div><div class='add'>+    if (constant_changed) rb_clear_constant_cache();</div><div class='add'>+</div><div class='add'>+    return method_changed;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+move_refined_method(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_method_entry_t *me = (rb_method_entry_t *) value;</div><div class='add'>+    VALUE klass = (VALUE)data;</div><div class='add'>+    struct rb_id_table *tbl = RCLASS_M_TBL(klass);</div><div class='add'>+</div><div class='add'>+    if (me-&gt;def-&gt;type == VM_METHOD_TYPE_REFINED) {</div><div class='add'>+	if (me-&gt;def-&gt;body.refined.orig_me) {</div><div class='add'>+	    const rb_method_entry_t *orig_me = me-&gt;def-&gt;body.refined.orig_me, *new_me;</div><div class='add'>+	    RB_OBJ_WRITE(me, &amp;me-&gt;def-&gt;body.refined.orig_me, NULL);</div><div class='add'>+	    new_me = rb_method_entry_clone(me);</div><div class='add'>+	    rb_id_table_insert(tbl, key, (VALUE)new_me);</div><div class='add'>+	    RB_OBJ_WRITTEN(klass, Qundef, new_me);</div><div class='add'>+	    rb_method_entry_copy(me, orig_me);</div><div class='add'>+	    return ID_TABLE_CONTINUE;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_id_table_insert(tbl, key, (VALUE)me);</div><div class='add'>+	    return ID_TABLE_DELETE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return ID_TABLE_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_prepend_module(VALUE klass, VALUE module)</div><div class='add'>+{</div><div class='add'>+    VALUE origin;</div><div class='add'>+    int changed = 0;</div><div class='add'>+</div><div class='add'>+    ensure_includable(klass, module);</div><div class='add'>+</div><div class='add'>+    origin = RCLASS_ORIGIN(klass);</div><div class='add'>+    if (origin == klass) {</div><div class='add'>+	origin = class_alloc(T_ICLASS, klass);</div><div class='add'>+	OBJ_WB_UNPROTECT(origin); /* TODO: conservative shading. Need more survey. */</div><div class='add'>+	RCLASS_SET_SUPER(origin, RCLASS_SUPER(klass));</div><div class='add'>+	RCLASS_SET_SUPER(klass, origin);</div><div class='add'>+	RCLASS_SET_ORIGIN(klass, origin);</div><div class='add'>+	RCLASS_M_TBL(origin) = RCLASS_M_TBL(klass);</div><div class='add'>+	RCLASS_M_TBL_INIT(klass);</div><div class='add'>+	rb_id_table_foreach(RCLASS_M_TBL(origin), move_refined_method, (void *)klass);</div><div class='add'>+    }</div><div class='add'>+    changed = include_modules_at(klass, klass, module, FALSE);</div><div class='add'>+    if (changed &lt; 0)</div><div class='add'>+	rb_raise(rb_eArgError, "cyclic prepend detected");</div><div class='add'>+    if (changed) {</div><div class='add'>+	rb_vm_check_redefinition_by_prepend(klass);</div><div class='ctx'>     }</div><div class='del'>-    if (changed) rb_clear_cache();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     mod.included_modules -&gt; array</div><div class='del'>- *  </div><div class='add'>+ *</div><div class='ctx'>  *  Returns the list of modules included in &lt;i&gt;mod&lt;/i&gt;.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     module Mixin</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     module Outer</div><div class='ctx'>  *       include Mixin</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     Mixin.included_modules   #=&gt; []</div><div class='ctx'>  *     Outer.included_modules   #=&gt; [Mixin]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_mod_included_modules(mod)</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_mod_included_modules(VALUE mod)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     VALUE p;</div><div class='add'>+    VALUE origin = RCLASS_ORIGIN(mod);</div><div class='ctx'> </div><div class='del'>-    for (p = RCLASS(mod)-&gt;super; p; p = RCLASS(p)-&gt;super) {</div><div class='del'>-	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='del'>-	    rb_ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='add'>+    for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {</div><div class='add'>+	if (p != origin &amp;&amp; BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='add'>+	    VALUE m = RBASIC(p)-&gt;klass;</div><div class='add'>+	    if (RB_TYPE_P(m, T_MODULE))</div><div class='add'>+		rb_ary_push(ary, m);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -478,11 +1032,11 @@ rb_mod_included_modules(mod)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     mod.include?(module)    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     mod.include?(module)    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;module&lt;/i&gt; is included in</div><div class='ctx'>  *  &lt;i&gt;mod&lt;/i&gt; or one of &lt;i&gt;mod&lt;/i&gt;'s ancestors.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     module A</div><div class='ctx'>  *     end</div><div class='ctx'>  *     class B</div><div class='hunk'>@@ -496,14 +1050,12 @@ rb_mod_included_modules(mod)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_mod_include_p(mod, mod2)</div><div class='del'>-    VALUE mod;</div><div class='del'>-    VALUE mod2;</div><div class='add'>+rb_mod_include_p(VALUE mod, VALUE mod2)</div><div class='ctx'> {</div><div class='ctx'>     VALUE p;</div><div class='ctx'> </div><div class='ctx'>     Check_Type(mod2, T_MODULE);</div><div class='del'>-    for (p = RCLASS(mod)-&gt;super; p; p = RCLASS(p)-&gt;super) {</div><div class='add'>+    for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {</div><div class='ctx'> 	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='ctx'> 	    if (RBASIC(p)-&gt;klass == mod2) return Qtrue;</div><div class='ctx'> 	}</div><div class='hunk'>@@ -514,131 +1066,123 @@ rb_mod_include_p(mod, mod2)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     mod.ancestors -&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Returns a list of modules included in &lt;i&gt;mod&lt;/i&gt; (including</div><div class='del'>- *  &lt;i&gt;mod&lt;/i&gt; itself).</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of modules included/prepended in &lt;i&gt;mod&lt;/i&gt;</div><div class='add'>+ *  (including &lt;i&gt;mod&lt;/i&gt; itself).</div><div class='add'>+ *</div><div class='ctx'>  *     module Mod</div><div class='ctx'>  *       include Math</div><div class='ctx'>  *       include Comparable</div><div class='add'>+ *       prepend Enumerable</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='del'>- *     Mod.ancestors    #=&gt; [Mod, Comparable, Math]</div><div class='del'>- *     Math.ancestors   #=&gt; [Math]</div><div class='add'>+ *</div><div class='add'>+ *     Mod.ancestors        #=&gt; [Enumerable, Mod, Comparable, Math]</div><div class='add'>+ *     Math.ancestors       #=&gt; [Math]</div><div class='add'>+ *     Enumerable.ancestors #=&gt; [Enumerable]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_mod_ancestors(mod)</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_mod_ancestors(VALUE mod)</div><div class='ctx'> {</div><div class='ctx'>     VALUE p, ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    for (p = mod; p; p = RCLASS(p)-&gt;super) {</div><div class='del'>-	if (FL_TEST(p, FL_SINGLETON))</div><div class='del'>-	    continue;</div><div class='add'>+    for (p = mod; p; p = RCLASS_SUPER(p)) {</div><div class='ctx'> 	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='ctx'> 	    rb_ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='ctx'> 	}</div><div class='del'>-	else {</div><div class='add'>+	else if (p == RCLASS_ORIGIN(p)) {</div><div class='ctx'> 	    rb_ary_push(ary, p);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define VISI(x) ((x)&amp;NOEX_MASK)</div><div class='del'>-#define VISI_CHECK(x,f) (VISI(x) == (f))</div><div class='add'>+static void</div><div class='add'>+ins_methods_push(st_data_t name, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    rb_ary_push((VALUE)ary, ID2SYM((ID)name));</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_push(name, type, ary, visi)</div><div class='del'>-    ID name;</div><div class='del'>-    long type;</div><div class='del'>-    VALUE ary;</div><div class='del'>-    long visi;</div><div class='del'>-{</div><div class='del'>-    if (type == -1) return ST_CONTINUE;</div><div class='del'>-    switch (visi) {</div><div class='del'>-      case NOEX_PRIVATE:</div><div class='del'>-      case NOEX_PROTECTED:</div><div class='del'>-      case NOEX_PUBLIC:</div><div class='del'>-	visi = (type == visi);</div><div class='add'>+ins_methods_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    switch ((rb_method_visibility_t)type) {</div><div class='add'>+      case METHOD_VISI_UNDEF:</div><div class='add'>+      case METHOD_VISI_PRIVATE:</div><div class='ctx'> 	break;</div><div class='del'>-      default:</div><div class='del'>-	visi = (type != NOEX_PRIVATE);</div><div class='add'>+      default: /* everything but private */</div><div class='add'>+	ins_methods_push(name, ary);</div><div class='ctx'> 	break;</div><div class='ctx'>     }</div><div class='del'>-    if (visi) {</div><div class='del'>-	rb_ary_push(ary, rb_str_new2(rb_id2name(name)));</div><div class='del'>-    }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_i(name, type, ary)</div><div class='del'>-    ID name;</div><div class='del'>-    long type;</div><div class='del'>-    VALUE ary;</div><div class='del'>-{</div><div class='del'>-    return ins_methods_push(name, type, ary, -1); /* everything but private */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-ins_methods_prot_i(name, type, ary)</div><div class='del'>-    ID name;</div><div class='del'>-    long type;</div><div class='del'>-    VALUE ary;</div><div class='add'>+ins_methods_prot_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    return ins_methods_push(name, type, ary, NOEX_PROTECTED);</div><div class='add'>+    if ((rb_method_visibility_t)type == METHOD_VISI_PROTECTED) {</div><div class='add'>+	ins_methods_push(name, ary);</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_priv_i(name, type, ary)</div><div class='del'>-    ID name;</div><div class='del'>-    long type;</div><div class='del'>-    VALUE ary;</div><div class='add'>+ins_methods_priv_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    return ins_methods_push(name, type, ary, NOEX_PRIVATE);</div><div class='add'>+    if ((rb_method_visibility_t)type == METHOD_VISI_PRIVATE) {</div><div class='add'>+	ins_methods_push(name, ary);</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_pub_i(name, type, ary)</div><div class='del'>-    ID name;</div><div class='del'>-    long type;</div><div class='del'>-    VALUE ary;</div><div class='add'>+ins_methods_pub_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    return ins_methods_push(name, type, ary, NOEX_PUBLIC);</div><div class='add'>+    if ((rb_method_visibility_t)type == METHOD_VISI_PUBLIC) {</div><div class='add'>+	ins_methods_push(name, ary);</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-method_entry(key, body, list)</div><div class='del'>-    ID key;</div><div class='del'>-    NODE *body;</div><div class='add'>+struct method_entry_arg {</div><div class='ctx'>     st_table *list;</div><div class='del'>-{</div><div class='del'>-    long type;</div><div class='add'>+    int recur;</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-    if (key == ID_ALLOCATOR) return ST_CONTINUE;</div><div class='del'>-    if (!st_lookup(list, key, 0)) {</div><div class='del'>-	if (!body-&gt;nd_body) type = -1; /* none */</div><div class='del'>-	else type = VISI(body-&gt;nd_noex);</div><div class='del'>-	st_add_direct(list, key, type);</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+method_entry_i(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    const rb_method_entry_t *me = (const rb_method_entry_t *)value;</div><div class='add'>+    struct method_entry_arg *arg = (struct method_entry_arg *)data;</div><div class='add'>+    rb_method_visibility_t type;</div><div class='add'>+</div><div class='add'>+    if (me-&gt;def-&gt;type == VM_METHOD_TYPE_REFINED) {</div><div class='add'>+	VALUE owner = me-&gt;owner;</div><div class='add'>+	me = rb_resolve_refined_method(Qnil, me);</div><div class='add'>+	if (!me) return ID_TABLE_CONTINUE;</div><div class='add'>+	if (!arg-&gt;recur &amp;&amp; me-&gt;owner != owner) return ID_TABLE_CONTINUE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+    if (!st_lookup(arg-&gt;list, key, 0)) {</div><div class='add'>+	if (UNDEFINED_METHOD_ENTRY_P(me)) {</div><div class='add'>+	    type = METHOD_VISI_UNDEF; /* none */</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    type = METHOD_ENTRY_VISI(me);</div><div class='add'>+	}</div><div class='add'>+	st_add_direct(arg-&gt;list, key, (st_data_t)type);</div><div class='add'>+    }</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-class_instance_method_list(argc, argv, mod, func)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE mod;</div><div class='del'>-    int (*func) _((ID, long, VALUE));</div><div class='add'>+class_instance_method_list(int argc, const VALUE *argv, VALUE mod, int obj, int (*func) (st_data_t, st_data_t, st_data_t))</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    int recur;</div><div class='del'>-    st_table *list;</div><div class='add'>+    int recur, prepended = 0;</div><div class='add'>+    struct method_entry_arg me_arg;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	recur = Qtrue;</div><div class='add'>+	recur = TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	VALUE r;</div><div class='hunk'>@@ -646,415 +1190,858 @@ class_instance_method_list(argc, argv, mod, func)</div><div class='ctx'> 	recur = RTEST(r);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    list = st_init_numtable();</div><div class='del'>-    for (; mod; mod = RCLASS(mod)-&gt;super) {</div><div class='del'>-	st_foreach(RCLASS(mod)-&gt;m_tbl, method_entry, (st_data_t)list);</div><div class='del'>-	if (BUILTIN_TYPE(mod) == T_ICLASS) continue;</div><div class='del'>-	if (FL_TEST(mod, FL_SINGLETON)) continue;</div><div class='add'>+    if (!recur &amp;&amp; RCLASS_ORIGIN(mod) != mod) {</div><div class='add'>+	mod = RCLASS_ORIGIN(mod);</div><div class='add'>+	prepended = 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    me_arg.list = st_init_numtable();</div><div class='add'>+    me_arg.recur = recur;</div><div class='add'>+    for (; mod; mod = RCLASS_SUPER(mod)) {</div><div class='add'>+	if (RCLASS_M_TBL(mod)) rb_id_table_foreach(RCLASS_M_TBL(mod), method_entry_i, &amp;me_arg);</div><div class='add'>+	if (BUILTIN_TYPE(mod) == T_ICLASS &amp;&amp; !prepended) continue;</div><div class='add'>+	if (obj &amp;&amp; FL_TEST(mod, FL_SINGLETON)) continue;</div><div class='ctx'> 	if (!recur) break;</div><div class='ctx'>     }</div><div class='ctx'>     ary = rb_ary_new();</div><div class='del'>-    st_foreach(list, func, ary);</div><div class='del'>-    st_free_table(list);</div><div class='add'>+    st_foreach(me_arg.list, func, ary);</div><div class='add'>+    st_free_table(me_arg.list);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     mod.instance_methods(include_super=true)   =&gt; array</div><div class='del'>- *  </div><div class='del'>- *  Returns an array containing the names of public instance methods in</div><div class='del'>- *  the receiver. For a module, these are the public methods; for a</div><div class='del'>- *  class, they are the instance (not singleton) methods. With no</div><div class='del'>- *  argument, or with an argument that is &lt;code&gt;false&lt;/code&gt;, the</div><div class='del'>- *  instance methods in &lt;i&gt;mod&lt;/i&gt; are returned, otherwise the methods</div><div class='del'>- *  in &lt;i&gt;mod&lt;/i&gt; and &lt;i&gt;mod&lt;/i&gt;'s superclasses are returned.</div><div class='del'>- *     </div><div class='add'>+ *     mod.instance_methods(include_super=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing the names of the public and protected instance</div><div class='add'>+ *  methods in the receiver. For a module, these are the public and protected methods;</div><div class='add'>+ *  for a class, they are the instance (not singleton) methods. If the optional</div><div class='add'>+ *  parameter is &lt;code&gt;false&lt;/code&gt;, the methods of any ancestors are not included.</div><div class='add'>+ *</div><div class='ctx'>  *     module A</div><div class='ctx'>  *       def method1()  end</div><div class='ctx'>  *     end</div><div class='ctx'>  *     class B</div><div class='add'>+ *       include A</div><div class='ctx'>  *       def method2()  end</div><div class='ctx'>  *     end</div><div class='ctx'>  *     class C &lt; B</div><div class='ctx'>  *       def method3()  end</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='del'>- *     A.instance_methods                #=&gt; ["method1"]</div><div class='del'>- *     B.instance_methods(false)         #=&gt; ["method2"]</div><div class='del'>- *     C.instance_methods(false)         #=&gt; ["method3"]</div><div class='del'>- *     C.instance_methods(true).length   #=&gt; 43</div><div class='add'>+ *</div><div class='add'>+ *     A.instance_methods(false)                   #=&gt; [:method1]</div><div class='add'>+ *     B.instance_methods(false)                   #=&gt; [:method2]</div><div class='add'>+ *     B.instance_methods(true).include?(:method1) #=&gt; true</div><div class='add'>+ *     C.instance_methods(false)                   #=&gt; [:method3]</div><div class='add'>+ *     C.instance_methods.include?(:method2)       #=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_class_instance_methods(argc, argv, mod)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='del'>-    return class_instance_method_list(argc, argv, mod, ins_methods_i);</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, ins_methods_i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     mod.protected_instance_methods(include_super=true)   =&gt; array</div><div class='del'>- *  </div><div class='add'>+ *     mod.protected_instance_methods(include_super=true)   -&gt; array</div><div class='add'>+ *</div><div class='ctx'>  *  Returns a list of the protected instance methods defined in</div><div class='del'>- *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the</div><div class='del'>- *  methods of any ancestors are included.</div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is &lt;code&gt;false&lt;/code&gt;, the</div><div class='add'>+ *  methods of any ancestors are not included.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_class_protected_instance_methods(argc, argv, mod)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='del'>-    return class_instance_method_list(argc, argv, mod, ins_methods_prot_i);</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, ins_methods_prot_i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     mod.private_instance_methods(include_super=true)    =&gt; array</div><div class='del'>- *  </div><div class='add'>+ *     mod.private_instance_methods(include_super=true)    -&gt; array</div><div class='add'>+ *</div><div class='ctx'>  *  Returns a list of the private instance methods defined in</div><div class='del'>- *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the</div><div class='del'>- *  methods of any ancestors are included.</div><div class='del'>- *     </div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is &lt;code&gt;false&lt;/code&gt;, the</div><div class='add'>+ *  methods of any ancestors are not included.</div><div class='add'>+ *</div><div class='ctx'>  *     module Mod</div><div class='ctx'>  *       def method1()  end</div><div class='ctx'>  *       private :method1</div><div class='ctx'>  *       def method2()  end</div><div class='ctx'>  *     end</div><div class='del'>- *     Mod.instance_methods           #=&gt; ["method2"]</div><div class='del'>- *     Mod.private_instance_methods   #=&gt; ["method1"]</div><div class='add'>+ *     Mod.instance_methods           #=&gt; [:method2]</div><div class='add'>+ *     Mod.private_instance_methods   #=&gt; [:method1]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_class_private_instance_methods(argc, argv, mod)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='del'>-    return class_instance_method_list(argc, argv, mod, ins_methods_priv_i);</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, ins_methods_priv_i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     mod.public_instance_methods(include_super=true)   =&gt; array</div><div class='del'>- *  </div><div class='add'>+ *     mod.public_instance_methods(include_super=true)   -&gt; array</div><div class='add'>+ *</div><div class='ctx'>  *  Returns a list of the public instance methods defined in &lt;i&gt;mod&lt;/i&gt;.</div><div class='del'>- *  If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the methods of</div><div class='del'>- *  any ancestors are included.</div><div class='add'>+ *  If the optional parameter is &lt;code&gt;false&lt;/code&gt;, the methods of</div><div class='add'>+ *  any ancestors are not included.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod)</div><div class='add'>+{</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, ins_methods_pub_i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.methods(regular=true)    -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of the names of public and protected methods of</div><div class='add'>+ *  &lt;i&gt;obj&lt;/i&gt;. This will include all the methods accessible in</div><div class='add'>+ *  &lt;i&gt;obj&lt;/i&gt;'s ancestors.</div><div class='add'>+ *  If the optional parameter is &lt;code&gt;false&lt;/code&gt;, it</div><div class='add'>+ *  returns an array of &lt;i&gt;obj&lt;i&gt;'s public and protected singleton methods,</div><div class='add'>+ *  the array will not include methods in modules included in &lt;i&gt;obj&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     class Klass</div><div class='add'>+ *       def klass_method()</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *     k = Klass.new</div><div class='add'>+ *     k.methods[0..9]    #=&gt; [:klass_method, :nil?, :===,</div><div class='add'>+ *                        #    :==~, :!, :eql?</div><div class='add'>+ *                        #    :hash, :&lt;=&gt;, :class, :singleton_class]</div><div class='add'>+ *     k.methods.length   #=&gt; 56</div><div class='add'>+ *</div><div class='add'>+ *     k.methods(false)   #=&gt; []</div><div class='add'>+ *     def k.singleton_method; end</div><div class='add'>+ *     k.methods(false)   #=&gt; [:singleton_method]</div><div class='add'>+ *</div><div class='add'>+ *     module M123; def m123; end end</div><div class='add'>+ *     k.extend M123</div><div class='add'>+ *     k.methods(false)   #=&gt; [:singleton_method]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_class_public_instance_methods(argc, argv, mod)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_obj_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return class_instance_method_list(argc, argv, mod, ins_methods_pub_i);</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    if (argc &gt; 0 &amp;&amp; !RTEST(argv[0])) {</div><div class='add'>+	return rb_obj_singleton_methods(argc, argv, obj);</div><div class='add'>+    }</div><div class='add'>+    return class_instance_method_list(argc, argv, CLASS_OF(obj), 1, ins_methods_i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.protected_methods(all=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the list of protected methods accessible to &lt;i&gt;obj&lt;/i&gt;. If</div><div class='add'>+ *  the &lt;i&gt;all&lt;/i&gt; parameter is set to &lt;code&gt;false&lt;/code&gt;, only those methods</div><div class='add'>+ *  in the receiver will be listed.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_obj_protected_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return class_instance_method_list(argc, argv, CLASS_OF(obj), 1, ins_methods_prot_i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.private_methods(all=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the list of private methods accessible to &lt;i&gt;obj&lt;/i&gt;. If</div><div class='add'>+ *  the &lt;i&gt;all&lt;/i&gt; parameter is set to &lt;code&gt;false&lt;/code&gt;, only those methods</div><div class='add'>+ *  in the receiver will be listed.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_obj_private_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return class_instance_method_list(argc, argv, CLASS_OF(obj), 1, ins_methods_priv_i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.public_methods(all=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the list of public methods accessible to &lt;i&gt;obj&lt;/i&gt;. If</div><div class='add'>+ *  the &lt;i&gt;all&lt;/i&gt; parameter is set to &lt;code&gt;false&lt;/code&gt;, only those methods</div><div class='add'>+ *  in the receiver will be listed.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_obj_public_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return class_instance_method_list(argc, argv, CLASS_OF(obj), 1, ins_methods_pub_i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj.singleton_methods(all=true)    =&gt; array</div><div class='del'>- *  </div><div class='add'>+ *     obj.singleton_methods(all=true)    -&gt; array</div><div class='add'>+ *</div><div class='ctx'>  *  Returns an array of the names of singleton methods for &lt;i&gt;obj&lt;/i&gt;.</div><div class='ctx'>  *  If the optional &lt;i&gt;all&lt;/i&gt; parameter is true, the list will include</div><div class='ctx'>  *  methods in modules included in &lt;i&gt;obj&lt;/i&gt;.</div><div class='del'>- *     </div><div class='add'>+ *  Only public and protected singleton methods are returned.</div><div class='add'>+ *</div><div class='ctx'>  *     module Other</div><div class='ctx'>  *       def three() end</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     class Single</div><div class='ctx'>  *       def Single.four() end</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     a = Single.new</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     def a.one()</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     class &lt;&lt; a</div><div class='ctx'>  *       include Other</div><div class='ctx'>  *       def two()</div><div class='ctx'>  *       end</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='del'>- *     Single.singleton_methods    #=&gt; ["four"]</div><div class='del'>- *     a.singleton_methods(false)  #=&gt; ["two", "one"]</div><div class='del'>- *     a.singleton_methods         #=&gt; ["two", "one", "three"]</div><div class='add'>+ *</div><div class='add'>+ *     Single.singleton_methods    #=&gt; [:four]</div><div class='add'>+ *     a.singleton_methods(false)  #=&gt; [:two, :one]</div><div class='add'>+ *     a.singleton_methods         #=&gt; [:two, :one, :three]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_obj_singleton_methods(argc, argv, obj)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE recur, ary, klass;</div><div class='del'>-    st_table *list;</div><div class='add'>+    VALUE recur, ary, klass, origin;</div><div class='add'>+    struct method_entry_arg me_arg;</div><div class='add'>+    struct rb_id_table *mtbl;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "01", &amp;recur);</div><div class='ctx'>     if (argc == 0) {</div><div class='ctx'> 	recur = Qtrue;</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+	rb_scan_args(argc, argv, "01", &amp;recur);</div><div class='add'>+    }</div><div class='ctx'>     klass = CLASS_OF(obj);</div><div class='del'>-    list = st_init_numtable();</div><div class='add'>+    origin = RCLASS_ORIGIN(klass);</div><div class='add'>+    me_arg.list = st_init_numtable();</div><div class='add'>+    me_arg.recur = RTEST(recur);</div><div class='ctx'>     if (klass &amp;&amp; FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	st_foreach(RCLASS(klass)-&gt;m_tbl, method_entry, (st_data_t)list);</div><div class='del'>-	klass = RCLASS(klass)-&gt;super;</div><div class='add'>+	if ((mtbl = RCLASS_M_TBL(origin)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='add'>+	klass = RCLASS_SUPER(klass);</div><div class='ctx'>     }</div><div class='ctx'>     if (RTEST(recur)) {</div><div class='del'>-	while (klass &amp;&amp; (FL_TEST(klass, FL_SINGLETON) || TYPE(klass) == T_ICLASS)) {</div><div class='del'>-	    st_foreach(RCLASS(klass)-&gt;m_tbl, method_entry, (st_data_t)list);</div><div class='del'>-	    klass = RCLASS(klass)-&gt;super;</div><div class='add'>+	while (klass &amp;&amp; (FL_TEST(klass, FL_SINGLETON) || RB_TYPE_P(klass, T_ICLASS))) {</div><div class='add'>+	    if (klass != origin &amp;&amp; (mtbl = RCLASS_M_TBL(klass)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='add'>+	    klass = RCLASS_SUPER(klass);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     ary = rb_ary_new();</div><div class='del'>-    st_foreach(list, ins_methods_i, ary);</div><div class='del'>-    st_free_table(list);</div><div class='add'>+    st_foreach(me_arg.list, ins_methods_i, ary);</div><div class='add'>+    st_free_table(me_arg.list);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * \}</div><div class='add'>+ */</div><div class='add'>+/*!</div><div class='add'>+ * \defgroup defmethod Defining methods</div><div class='add'>+ * There are some APIs to define a method from C.</div><div class='add'>+ * These API takes a C function as a method body.</div><div class='add'>+ *</div><div class='add'>+ * \par Method body functions</div><div class='add'>+ * Method body functions must return a VALUE and</div><div class='add'>+ * can be one of the following form:</div><div class='add'>+ * &lt;dl&gt;</div><div class='add'>+ * &lt;dt&gt;Fixed number of parameters&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;</div><div class='add'>+ *     This form is a normal C function, excepting it takes</div><div class='add'>+ *     a receiver object as the first argument.</div><div class='add'>+ *</div><div class='add'>+ *     \code</div><div class='add'>+ *     static VALUE my_method(VALUE self, VALUE x, VALUE y);</div><div class='add'>+ *     \endcode</div><div class='add'>+ * &lt;/dd&gt;</div><div class='add'>+ * &lt;dt&gt;argc and argv style&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;</div><div class='add'>+ *     This form takes three parameters: \a argc, \a argv and \a self.</div><div class='add'>+ *     \a self is the receiver. \a argc is the number of arguments.</div><div class='add'>+ *     \a argv is a pointer to an array of the arguments.</div><div class='add'>+ *</div><div class='add'>+ *     \code</div><div class='add'>+ *     static VALUE my_method(int argc, VALUE *argv, VALUE self);</div><div class='add'>+ *     \endcode</div><div class='add'>+ * &lt;/dd&gt;</div><div class='add'>+ * &lt;dt&gt;Ruby array style&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;</div><div class='add'>+ *     This form takes two parameters: self and args.</div><div class='add'>+ *     \a self is the receiver. \a args is an Array object which</div><div class='add'>+ *     contains the arguments.</div><div class='add'>+ *</div><div class='add'>+ *     \code</div><div class='add'>+ *     static VALUE my_method(VALUE self, VALUE args);</div><div class='add'>+ *     \endcode</div><div class='add'>+ * &lt;/dd&gt;</div><div class='add'>+ *</div><div class='add'>+ * \par Number of parameters</div><div class='add'>+ * Method defining APIs takes the number of parameters which the</div><div class='add'>+ * method will takes. This number is called \a argc.</div><div class='add'>+ * \a argc can be:</div><div class='add'>+ * &lt;dl&gt;</div><div class='add'>+ * &lt;dt&gt;zero or positive number&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;This means the method body function takes a fixed number of parameters&lt;/dd&gt;</div><div class='add'>+ * &lt;dt&gt;-1&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;This means the method body function is "argc and argv" style.&lt;/dd&gt;</div><div class='add'>+ * &lt;dt&gt;-2&lt;/dt&gt;</div><div class='add'>+ * &lt;dd&gt;This means the method body function is "self and args" style.&lt;/dd&gt;</div><div class='add'>+ * &lt;/dl&gt;</div><div class='add'>+ * \{</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-rb_define_method_id(klass, name, func, argc)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    ID name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='del'>-    rb_add_method(klass, name, NEW_CFUNC(func,argc), NOEX_PUBLIC);</div><div class='add'>+    rb_add_method_cfunc(klass, mid, func, argc, METHOD_VISI_PUBLIC);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_define_method(klass, name, func, argc)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='del'>-    ID id = rb_intern(name);</div><div class='del'>-    int ex = NOEX_PUBLIC;</div><div class='del'>-</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, METHOD_VISI_PUBLIC);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    rb_add_method(klass, id, NEW_CFUNC(func, argc), ex);</div><div class='add'>+void</div><div class='add'>+rb_define_protected_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='add'>+{</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, METHOD_VISI_PROTECTED);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_define_protected_method(klass, name, func, argc)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='del'>-    rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PROTECTED);</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, METHOD_VISI_PRIVATE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_define_private_method(klass, name, func, argc)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_undef_method(VALUE klass, const char *name)</div><div class='ctx'> {</div><div class='del'>-    rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE);</div><div class='add'>+    rb_add_method(klass, rb_intern(name), VM_METHOD_TYPE_UNDEF, 0, METHOD_VISI_UNDEF);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+undef_method_i(ID name, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = (VALUE)data;</div><div class='add'>+    rb_add_method(klass, name, VM_METHOD_TYPE_UNDEF, 0, METHOD_VISI_UNDEF);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_undef_method(klass, name)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name;</div><div class='add'>+rb_undef_methods_from(VALUE klass, VALUE super)</div><div class='ctx'> {</div><div class='del'>-    rb_add_method(klass, rb_intern(name), 0, NOEX_UNDEF);</div><div class='add'>+    struct rb_id_table *mtbl = RCLASS_M_TBL(super);</div><div class='add'>+    if (mtbl) {</div><div class='add'>+	rb_id_table_foreach(mtbl, undef_method_i, (void *)klass);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * \}</div><div class='add'>+ */</div><div class='add'>+/*!</div><div class='add'>+ * \addtogroup class</div><div class='add'>+ * \{</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> #define SPECIAL_SINGLETON(x,c) do {\</div><div class='ctx'>     if (obj == (x)) {\</div><div class='del'>-	return c;\</div><div class='add'>+	return (c);\</div><div class='ctx'>     }\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='add'>+static inline VALUE</div><div class='add'>+special_singleton_class_of(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    SPECIAL_SINGLETON(Qnil, rb_cNilClass);</div><div class='add'>+    SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);</div><div class='add'>+    SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-rb_singleton_class(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_special_singleton_class(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return special_singleton_class_of(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * \internal</div><div class='add'>+ * Returns the singleton class of \a obj. Creates it if necessary.</div><div class='add'>+ *</div><div class='add'>+ * \note DO NOT expose the returned singleton class to</div><div class='add'>+ *       outside of class.c.</div><div class='add'>+ *       Use \ref rb_singleton_class instead for</div><div class='add'>+ *       consistency of the metaclass hierarchy.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+singleton_class_of(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(obj) || SYMBOL_P(obj)) {</div><div class='add'>+    if (FIXNUM_P(obj) || FLONUM_P(obj) || STATIC_SYM_P(obj)) {</div><div class='add'>+      no_singleton:</div><div class='ctx'> 	rb_raise(rb_eTypeError, "can't define singleton");</div><div class='ctx'>     }</div><div class='del'>-    if (rb_special_const_p(obj)) {</div><div class='del'>-	SPECIAL_SINGLETON(Qnil, rb_cNilClass);</div><div class='del'>-	SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);</div><div class='del'>-	SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);</div><div class='del'>-	rb_bug("unknown immediate %ld", obj);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    DEFER_INTS;</div><div class='del'>-    if (FL_TEST(RBASIC(obj)-&gt;klass, FL_SINGLETON) &amp;&amp;</div><div class='del'>-	rb_iv_get(RBASIC(obj)-&gt;klass, "__attached__") == obj) {</div><div class='del'>-	klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+	klass = special_singleton_class_of(obj);</div><div class='add'>+	if (NIL_P(klass))</div><div class='add'>+	    rb_bug("unknown immediate %p", (void *)obj);</div><div class='add'>+	return klass;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	klass = rb_make_metaclass(obj, RBASIC(obj)-&gt;klass);</div><div class='add'>+	switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+	  case T_FLOAT: case T_BIGNUM: case T_SYMBOL:</div><div class='add'>+	    goto no_singleton;</div><div class='add'>+	  case T_STRING:</div><div class='add'>+	    if (FL_TEST_RAW(obj, RSTRING_FSTR)) goto no_singleton;</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    if (!(FL_TEST(klass, FL_SINGLETON) &amp;&amp;</div><div class='add'>+	  rb_ivar_get(klass, id_attached) == obj)) {</div><div class='add'>+	rb_serial_t serial = RCLASS_SERIAL(klass);</div><div class='add'>+	klass = rb_make_metaclass(obj, klass);</div><div class='add'>+	RCLASS_SERIAL(klass) = serial;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (OBJ_TAINTED(obj)) {</div><div class='ctx'> 	OBJ_TAINT(klass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	FL_UNSET(klass, FL_TAINT);</div><div class='ctx'>     }</div><div class='del'>-    if (OBJ_FROZEN(obj)) OBJ_FREEZE(klass);</div><div class='del'>-    ALLOW_INTS;</div><div class='add'>+    RB_FL_SET_RAW(klass, RB_OBJ_FROZEN_RAW(obj));</div><div class='add'>+</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_freeze_singleton_class(VALUE x)</div><div class='add'>+{</div><div class='add'>+    /* should not propagate to meta-meta-class, and so on */</div><div class='add'>+    if (!(RBASIC(x)-&gt;flags &amp; FL_SINGLETON)) {</div><div class='add'>+	VALUE klass = RBASIC_CLASS(x);</div><div class='add'>+	if (klass &amp;&amp; (klass = RCLASS_ORIGIN(klass)) != 0 &amp;&amp;</div><div class='add'>+	    FL_TEST(klass, (FL_SINGLETON|FL_FREEZE)) == FL_SINGLETON) {</div><div class='add'>+	    OBJ_FREEZE_RAW(klass);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Returns the singleton class of \a obj, or nil if obj is not a</div><div class='add'>+ * singleton object.</div><div class='add'>+ *</div><div class='add'>+ * \param obj an arbitrary object.</div><div class='add'>+ * \return the singleton class or nil.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_singleton_class_get(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE klass;</div><div class='add'>+</div><div class='add'>+    if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+	return rb_special_singleton_class(obj);</div><div class='add'>+    }</div><div class='add'>+    klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    if (!FL_TEST(klass, FL_SINGLETON)) return Qnil;</div><div class='add'>+    if (rb_ivar_get(klass, id_attached) != obj) return Qnil;</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Returns the singleton class of \a obj. Creates it if necessary.</div><div class='add'>+ *</div><div class='add'>+ * \param obj an arbitrary object.</div><div class='add'>+ * \throw TypeError if \a obj is a Integer or a Symbol.</div><div class='add'>+ * \return the singleton class.</div><div class='add'>+ *</div><div class='add'>+ * \post \a obj has its own singleton class.</div><div class='add'>+ * \post if \a obj is a class,</div><div class='add'>+ *       the returned singleton class also has its own</div><div class='add'>+ *       singleton class in order to keep consistency of the</div><div class='add'>+ *       inheritance structure of metaclasses.</div><div class='add'>+ * \note a new singleton class will be created</div><div class='add'>+ *       if \a obj does not have it.</div><div class='add'>+ * \note the singleton classes for nil, true and false are:</div><div class='add'>+ *       NilClass, TrueClass and FalseClass.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_singleton_class(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = singleton_class_of(obj);</div><div class='add'>+</div><div class='add'>+    /* ensures an exposed class belongs to its own eigenclass */</div><div class='add'>+    if (RB_TYPE_P(obj, T_CLASS)) (void)ENSURE_EIGENCLASS(klass);</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * \}</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * \addtogroup defmethod</div><div class='add'>+ * \{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a singleton method for \a obj.</div><div class='add'>+ * \param obj    an arbitrary object</div><div class='add'>+ * \param name   name of the singleton method</div><div class='add'>+ * \param func   the method body</div><div class='add'>+ * \param argc   the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_define_singleton_method(obj, name, func, argc)</div><div class='del'>-    VALUE obj;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_singleton_method(VALUE obj, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_singleton_class(obj), name, func, argc);</div><div class='add'>+    rb_define_method(singleton_class_of(obj), name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a module function for \a module.</div><div class='add'>+ * \param module  an module or a class.</div><div class='add'>+ * \param name    name of the function</div><div class='add'>+ * \param func    the method body</div><div class='add'>+ * \param argc    the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_define_module_function(module, name, func, argc)</div><div class='del'>-    VALUE module;</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_module_function(VALUE module, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_private_method(module, name, func, argc);</div><div class='ctx'>     rb_define_singleton_method(module, name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines a global function</div><div class='add'>+ * \param name    name of the function</div><div class='add'>+ * \param func    the method body</div><div class='add'>+ * \param argc    the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_define_global_function(name, func, argc)</div><div class='del'>-    const char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_global_function(const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_module_function(rb_mKernel, name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * Defines an alias of a method.</div><div class='add'>+ * \param klass  the class which the original method belongs to</div><div class='add'>+ * \param name1  a new name for the method</div><div class='add'>+ * \param name2  the original name of the method</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_define_alias(klass, name1, name2)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name1, *name2;</div><div class='add'>+rb_define_alias(VALUE klass, const char *name1, const char *name2)</div><div class='ctx'> {</div><div class='ctx'>     rb_alias(klass, rb_intern(name1), rb_intern(name2));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*!</div><div class='add'>+ * Defines (a) public accessor method(s) for an attribute.</div><div class='add'>+ * \param klass  the class which the attribute will belongs to</div><div class='add'>+ * \param name   name of the attribute</div><div class='add'>+ * \param read   a getter method for the attribute will be defined if \a read is non-zero.</div><div class='add'>+ * \param write  a setter method for the attribute will be defined if \a write is non-zero.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-rb_define_attr(klass, name, read, write)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    const char *name;</div><div class='del'>-    int read, write;</div><div class='add'>+rb_define_attr(VALUE klass, const char *name, int read, int write)</div><div class='add'>+{</div><div class='add'>+    rb_attr(klass, rb_intern(name), read, write, FALSE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_keyword_error_new(const char *error, VALUE keys)</div><div class='add'>+{</div><div class='add'>+    const VALUE *ptr = RARRAY_CONST_PTR(keys);</div><div class='add'>+    long i = 0, len = RARRAY_LEN(keys);</div><div class='add'>+    VALUE error_message = rb_sprintf("%s keyword%.*s", error, len &gt; 1, "s");</div><div class='add'>+</div><div class='add'>+    if (len &gt; 0) {</div><div class='add'>+	rb_str_cat_cstr(error_message, ": ");</div><div class='add'>+	while (1) {</div><div class='add'>+	    const VALUE k = ptr[i];</div><div class='add'>+	    Check_Type(k, T_SYMBOL); /* wrong hash is given to rb_get_kwargs */</div><div class='add'>+	    rb_str_append(error_message, rb_sym2str(k));</div><div class='add'>+	    if (++i &gt;= len) break;</div><div class='add'>+	    rb_str_cat_cstr(error_message, ", ");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_exc_new_str(rb_eArgError, error_message);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static void rb_keyword_error(const char *error, VALUE keys));</div><div class='add'>+static void</div><div class='add'>+rb_keyword_error(const char *error, VALUE keys)</div><div class='ctx'> {</div><div class='del'>-    rb_attr(klass, rb_intern(name), read, write, Qfalse);</div><div class='add'>+    rb_exc_raise(rb_keyword_error_new(error, keys));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static void unknown_keyword_error(VALUE hash, const ID *table, int keywords));</div><div class='add'>+static void</div><div class='add'>+unknown_keyword_error(VALUE hash, const ID *table, int keywords)</div><div class='add'>+{</div><div class='add'>+    st_table *tbl = rb_hash_tbl_raw(hash);</div><div class='add'>+    int i;</div><div class='add'>+    for (i = 0; i &lt; keywords; i++) {</div><div class='add'>+	st_data_t key = ID2SYM(table[i]);</div><div class='add'>+	st_delete(tbl, &amp;key, NULL);</div><div class='add'>+    }</div><div class='add'>+    rb_keyword_error("unknown", rb_hash_keys(hash));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+separate_symbol(st_data_t key, st_data_t value, st_data_t arg)</div><div class='add'>+{</div><div class='add'>+    VALUE *kwdhash = (VALUE *)arg;</div><div class='add'>+</div><div class='add'>+    if (!SYMBOL_P(key)) kwdhash++;</div><div class='add'>+    if (!*kwdhash) *kwdhash = rb_hash_new();</div><div class='add'>+    rb_hash_aset(*kwdhash, (VALUE)key, (VALUE)value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_extract_keywords(VALUE *orighash)</div><div class='add'>+{</div><div class='add'>+    VALUE parthash[2] = {0, 0};</div><div class='add'>+    VALUE hash = *orighash;</div><div class='add'>+</div><div class='add'>+    if (RHASH_EMPTY_P(hash)) {</div><div class='add'>+	*orighash = 0;</div><div class='add'>+	return hash;</div><div class='add'>+    }</div><div class='add'>+    st_foreach(rb_hash_tbl_raw(hash), separate_symbol, (st_data_t)&amp;parthash);</div><div class='add'>+    *orighash = parthash[1];</div><div class='add'>+    if (parthash[1] &amp;&amp; RBASIC_CLASS(hash) != rb_cHash) {</div><div class='add'>+	RBASIC_SET_CLASS(parthash[1], RBASIC_CLASS(hash));</div><div class='add'>+    }</div><div class='add'>+    return parthash[0];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-#define va_init_list(a,b) va_start(a,b)</div><div class='del'>-#else</div><div class='del'>-#include &lt;varargs.h&gt;</div><div class='del'>-#define va_init_list(a,b) va_start(a)</div><div class='del'>-#endif</div><div class='add'>+int</div><div class='add'>+rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values)</div><div class='add'>+{</div><div class='add'>+    int i = 0, j;</div><div class='add'>+    int rest = 0;</div><div class='add'>+    VALUE missing = Qnil;</div><div class='add'>+    st_data_t key;</div><div class='add'>+</div><div class='add'>+#define extract_kwarg(keyword, val) \</div><div class='add'>+    (key = (st_data_t)(keyword), values ? \</div><div class='add'>+     st_delete(rb_hash_tbl_raw(keyword_hash), &amp;key, (val)) : \</div><div class='add'>+     st_lookup(rb_hash_tbl_raw(keyword_hash), key, (val)))</div><div class='add'>+</div><div class='add'>+    if (NIL_P(keyword_hash)) keyword_hash = 0;</div><div class='add'>+</div><div class='add'>+    if (optional &lt; 0) {</div><div class='add'>+	rest = 1;</div><div class='add'>+	optional = -1-optional;</div><div class='add'>+    }</div><div class='add'>+    if (values) {</div><div class='add'>+	for (j = 0; j &lt; required + optional; j++) {</div><div class='add'>+	    values[j] = Qundef;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (required) {</div><div class='add'>+	for (; i &lt; required; i++) {</div><div class='add'>+	    VALUE keyword = ID2SYM(table[i]);</div><div class='add'>+	    if (keyword_hash) {</div><div class='add'>+		st_data_t val;</div><div class='add'>+		if (extract_kwarg(keyword, &amp;val)) {</div><div class='add'>+		    if (values) values[i] = (VALUE)val;</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    if (NIL_P(missing)) missing = rb_ary_tmp_new(1);</div><div class='add'>+	    rb_ary_push(missing, keyword);</div><div class='add'>+	}</div><div class='add'>+	if (!NIL_P(missing)) {</div><div class='add'>+	    rb_keyword_error("missing", missing);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    j = i;</div><div class='add'>+    if (optional &amp;&amp; keyword_hash) {</div><div class='add'>+	for (i = 0; i &lt; optional; i++) {</div><div class='add'>+	    st_data_t val;</div><div class='add'>+	    if (extract_kwarg(ID2SYM(table[required+i]), &amp;val)) {</div><div class='add'>+		if (values) values[required+i] = (VALUE)val;</div><div class='add'>+		j++;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (!rest &amp;&amp; keyword_hash) {</div><div class='add'>+	if (RHASH_SIZE(keyword_hash) &gt; (unsigned int)(values ? 0 : j)) {</div><div class='add'>+	    unknown_keyword_error(keyword_hash, table, required+optional);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return j;</div><div class='add'>+#undef extract_kwarg</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+#undef rb_scan_args</div><div class='ctx'> int</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='ctx'> rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)</div><div class='del'>-#else</div><div class='del'>-rb_scan_args(argc, argv, fmt, va_alist)</div><div class='del'>-    int argc;</div><div class='del'>-    const VALUE *argv;</div><div class='del'>-    const char *fmt;</div><div class='del'>-    va_dcl</div><div class='del'>-#endif</div><div class='del'>-{</div><div class='del'>-    int n, i = 0;</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='ctx'>     const char *p = fmt;</div><div class='ctx'>     VALUE *var;</div><div class='ctx'>     va_list vargs;</div><div class='del'>-</div><div class='del'>-    va_init_list(vargs, fmt);</div><div class='del'>-</div><div class='del'>-    if (*p == '*') goto rest_arg;</div><div class='add'>+    int f_var = 0, f_hash = 0, f_block = 0;</div><div class='add'>+    int n_lead = 0, n_opt = 0, n_trail = 0, n_mand;</div><div class='add'>+    int argi = 0, last_idx = -1;</div><div class='add'>+    VALUE hash = Qnil, last_hash = 0;</div><div class='ctx'> </div><div class='ctx'>     if (ISDIGIT(*p)) {</div><div class='del'>-	n = *p - '0';</div><div class='del'>-	if (n &gt; argc)</div><div class='del'>-	    rb_raise(rb_eArgError, "wrong number of arguments (%d for %d)", argc, n);</div><div class='del'>-	for (i=0; i&lt;n; i++) {</div><div class='del'>-	    var = va_arg(vargs, VALUE*);</div><div class='del'>-	    if (var) *var = argv[i];</div><div class='add'>+	n_lead = *p - '0';</div><div class='add'>+	p++;</div><div class='add'>+	if (ISDIGIT(*p)) {</div><div class='add'>+	    n_opt = *p - '0';</div><div class='add'>+	    p++;</div><div class='ctx'> 	}</div><div class='add'>+    }</div><div class='add'>+    if (*p == '*') {</div><div class='add'>+	f_var = 1;</div><div class='ctx'> 	p++;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	goto error;</div><div class='add'>+    if (ISDIGIT(*p)) {</div><div class='add'>+	n_trail = *p - '0';</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+    if (*p == ':') {</div><div class='add'>+	f_hash = 1;</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+    if (*p == '&amp;') {</div><div class='add'>+	f_block = 1;</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+    if (*p != '\0') {</div><div class='add'>+	rb_fatal("bad scan arg format: %s", fmt);</div><div class='ctx'>     }</div><div class='add'>+    n_mand = n_lead + n_trail;</div><div class='ctx'> </div><div class='del'>-    if (ISDIGIT(*p)) {</div><div class='del'>-	n = i + *p - '0';</div><div class='del'>-	for (; i&lt;n; i++) {</div><div class='del'>-	    var = va_arg(vargs, VALUE*);</div><div class='del'>-	    if (argc &gt; i) {</div><div class='del'>-		if (var) *var = argv[i];</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (var) *var = Qnil;</div><div class='add'>+    if (argc &lt; n_mand)</div><div class='add'>+	goto argc_error;</div><div class='add'>+</div><div class='add'>+    va_start(vargs, fmt);</div><div class='add'>+</div><div class='add'>+    /* capture an option hash - phase 1: pop */</div><div class='add'>+    if (f_hash &amp;&amp; n_mand &lt; argc) {</div><div class='add'>+	VALUE last = argv[argc - 1];</div><div class='add'>+</div><div class='add'>+	if (NIL_P(last)) {</div><div class='add'>+	    /* nil is taken as an empty option hash only if it is not</div><div class='add'>+	       ambiguous; i.e. '*' is not specified and arguments are</div><div class='add'>+	       given more than sufficient */</div><div class='add'>+	    if (!f_var &amp;&amp; n_mand + n_opt &lt; argc)</div><div class='add'>+		argc--;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    hash = rb_check_hash_type(last);</div><div class='add'>+	    if (!NIL_P(hash)) {</div><div class='add'>+		VALUE opts = rb_extract_keywords(&amp;hash);</div><div class='add'>+		if (!(last_hash = hash)) argc--;</div><div class='add'>+		else last_idx = argc - 1;</div><div class='add'>+		hash = opts ? opts : Qnil;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	p++;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if(*p == '*') {</div><div class='del'>-      rest_arg:</div><div class='del'>-	var = va_arg(vargs, VALUE*);</div><div class='del'>-	if (argc &gt; i) {</div><div class='del'>-	    if (var) *var = rb_ary_new4(argc-i, argv+i);</div><div class='del'>-	    i = argc;</div><div class='add'>+    /* capture leading mandatory arguments */</div><div class='add'>+    for (i = n_lead; i-- &gt; 0; ) {</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='add'>+	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='add'>+	argi++;</div><div class='add'>+    }</div><div class='add'>+    /* capture optional arguments */</div><div class='add'>+    for (i = n_opt; i-- &gt; 0; ) {</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='add'>+	if (argi &lt; argc - n_trail) {</div><div class='add'>+	    if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='add'>+	    argi++;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (var) *var = Qnil;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    /* capture variable length arguments */</div><div class='add'>+    if (f_var) {</div><div class='add'>+	int n_var = argc - argi - n_trail;</div><div class='add'>+</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='add'>+	if (0 &lt; n_var) {</div><div class='add'>+	    if (var) {</div><div class='add'>+		int f_last = (last_idx + 1 == argc - n_trail);</div><div class='add'>+		*var = rb_ary_new4(n_var-f_last, &amp;argv[argi]);</div><div class='add'>+		if (f_last) rb_ary_push(*var, last_hash);</div><div class='add'>+	    }</div><div class='add'>+	    argi += n_var;</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    if (var) *var = rb_ary_new();</div><div class='ctx'> 	}</div><div class='del'>-	p++;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if (*p == '&amp;') {</div><div class='del'>-	var = va_arg(vargs, VALUE*);</div><div class='add'>+    /* capture trailing mandatory arguments */</div><div class='add'>+    for (i = n_trail; i-- &gt; 0; ) {</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='add'>+	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='add'>+	argi++;</div><div class='add'>+    }</div><div class='add'>+    /* capture an option hash - phase 2: assignment */</div><div class='add'>+    if (f_hash) {</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='add'>+	if (var) *var = hash;</div><div class='add'>+    }</div><div class='add'>+    /* capture iterator block */</div><div class='add'>+    if (f_block) {</div><div class='add'>+	var = va_arg(vargs, VALUE *);</div><div class='ctx'> 	if (rb_block_given_p()) {</div><div class='ctx'> 	    *var = rb_block_proc();</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    *var = Qnil;</div><div class='ctx'> 	}</div><div class='del'>-	p++;</div><div class='ctx'>     }</div><div class='ctx'>     va_end(vargs);</div><div class='ctx'> </div><div class='del'>-    if (*p != '\0') {</div><div class='del'>-	goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (argc &gt; i) {</div><div class='del'>-	rb_raise(rb_eArgError, "wrong number of arguments (%d for %d)", argc, i);</div><div class='add'>+    if (argi &lt; argc) {</div><div class='add'>+      argc_error:</div><div class='add'>+	rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return argc;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-  error:</div><div class='del'>-    rb_fatal("bad scan arg format: %s", fmt);</div><div class='del'>-    return 0;</div><div class='add'>+int</div><div class='add'>+rb_class_has_methods(VALUE c)</div><div class='add'>+{</div><div class='add'>+    return rb_id_table_size(RCLASS_M_TBL(c)) == 0 ? FALSE : TRUE;</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * \}</div><div class='add'>+ */</div><div class='head'>diff --git a/common.mk b/common.mk<br/>index f751fecfb5..2175f67eba 100644<br/>--- a/<a href='/ruby.git/tree/common.mk?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>common.mk</a><br/>+++ b/<a href='/ruby.git/tree/common.mk?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>common.mk</a></div><div class='hunk'>@@ -2,27 +2,88 @@ bin: $(PROGRAM) $(WPROGRAM)</div><div class='ctx'> lib: $(LIBRUBY)</div><div class='ctx'> dll: $(LIBRUBY_SO)</div><div class='ctx'> </div><div class='del'>-RUBYOPT       =</div><div class='add'>+.SUFFIXES: .inc .h .c .y .i .$(DTRACE_EXT)</div><div class='add'>+</div><div class='add'>+# V=0 quiet, V=1 verbose.  other values don't work.</div><div class='add'>+V = 0</div><div class='add'>+Q1 = $(V:1=)</div><div class='add'>+Q = $(Q1:0=@)</div><div class='add'>+ECHO0 = $(ECHO1:0=echo)</div><div class='add'>+ECHO = @$(ECHO0)</div><div class='add'>+</div><div class='add'>+mflags = $(MFLAGS)</div><div class='add'>+gnumake_recursive =</div><div class='add'>+enable_shared = $(ENABLE_SHARED:no=)</div><div class='add'>+</div><div class='add'>+UNICODE_VERSION = 10.0.0</div><div class='add'>+UNICODE_EMOJI_VERSION = 5.0</div><div class='add'>+</div><div class='add'>+### set the following environment variable or uncomment the line if</div><div class='add'>+### the Unicode data files should be updated completely on every update ('make up',...).</div><div class='add'>+# ALWAYS_UPDATE_UNICODE = yes</div><div class='add'>+UNICODE_DATA_DIR = enc/unicode/data/$(UNICODE_VERSION)/ucd</div><div class='add'>+UNICODE_SRC_DATA_DIR = $(srcdir)/$(UNICODE_DATA_DIR)</div><div class='add'>+UNICODE_SRC_EMOJI_DATA_DIR = $(srcdir)/enc/unicode/data/emoji/$(UNICODE_EMOJI_VERSION)</div><div class='add'>+UNICODE_HDR_DIR = $(srcdir)/enc/unicode/$(UNICODE_VERSION)</div><div class='add'>+UNICODE_DATA_HEADERS = \</div><div class='add'>+	$(UNICODE_HDR_DIR)/casefold.h \</div><div class='add'>+	$(UNICODE_HDR_DIR)/name2ctype.h \</div><div class='add'>+	$(empty)</div><div class='add'>+</div><div class='add'>+RUBY_RELEASE_DATE = $(RUBY_RELEASE_YEAR)-$(RUBY_RELEASE_MONTH)-$(RUBY_RELEASE_DAY)</div><div class='add'>+RUBYLIB       = $(PATH_SEPARATOR)</div><div class='add'>+RUBYOPT       = -</div><div class='add'>+RUN_OPTS      = --disable-gems</div><div class='add'>+</div><div class='add'>+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(UNICODE_HDR_DIR)</div><div class='add'>+</div><div class='add'>+GEM_HOME =</div><div class='add'>+GEM_PATH =</div><div class='add'>+GEM_VENDOR =</div><div class='add'>+</div><div class='add'>+SIMPLECOV_GIT_URL = git://github.com/colszowka/simplecov.git</div><div class='add'>+SIMPLECOV_GIT_REF = v0.15.0</div><div class='add'>+SIMPLECOV_HTML_GIT_URL = git://github.com/colszowka/simplecov-html.git</div><div class='add'>+SIMPLECOV_HTML_GIT_REF = v0.10.2</div><div class='add'>+DOCLIE_GIT_URL = git://github.com/ms-ati/docile.git</div><div class='add'>+DOCLIE_GIT_REF = v1.1.5</div><div class='ctx'> </div><div class='ctx'> STATIC_RUBY   = static-ruby</div><div class='ctx'> </div><div class='add'>+TIMESTAMPDIR  = $(EXTOUT)/.timestamp</div><div class='ctx'> EXTCONF       = extconf.rb</div><div class='del'>-RBCONFIG      = ./.rbconfig.time</div><div class='ctx'> LIBRUBY_EXTS  = ./.libruby-with-ext.time</div><div class='add'>+REVISION_H    = ./.revision.time</div><div class='add'>+PLATFORM_D    = $(TIMESTAMPDIR)/.$(PLATFORM_DIR).time</div><div class='add'>+ENC_TRANS_D   = $(TIMESTAMPDIR)/.enc-trans.time</div><div class='ctx'> RDOCOUT       = $(EXTOUT)/rdoc</div><div class='add'>+HTMLOUT       = $(EXTOUT)/html</div><div class='add'>+CAPIOUT       = doc/capi</div><div class='ctx'> </div><div class='del'>-DMYEXT	      = dmyext.$(OBJEXT)</div><div class='del'>-MAINOBJ	      = main.$(OBJEXT)</div><div class='del'>-EXTOBJS	      = </div><div class='del'>-DLDOBJS	      = $(DMYEXT)</div><div class='add'>+INITOBJS      = dmyext.$(OBJEXT) dmyenc.$(OBJEXT)</div><div class='add'>+NORMALMAINOBJ = main.$(OBJEXT)</div><div class='add'>+MAINOBJ       = $(NORMALMAINOBJ)</div><div class='add'>+DLDOBJS	      = $(INITOBJS)</div><div class='add'>+EXTSOLIBS     =</div><div class='add'>+MINIOBJS      = $(ARCHMINIOBJS) miniinit.$(OBJEXT) dmyext.$(OBJEXT) miniprelude.$(OBJEXT)</div><div class='add'>+ENC_MK        = enc.mk</div><div class='add'>+MAKE_ENC      = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \</div><div class='add'>+		RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags)</div><div class='ctx'> </div><div class='del'>-OBJS	      = array.$(OBJEXT) \</div><div class='add'>+COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		bignum.$(OBJEXT) \</div><div class='ctx'> 		class.$(OBJEXT) \</div><div class='ctx'> 		compar.$(OBJEXT) \</div><div class='add'>+		compile.$(OBJEXT) \</div><div class='add'>+		complex.$(OBJEXT) \</div><div class='add'>+		cont.$(OBJEXT) \</div><div class='add'>+		debug.$(OBJEXT) \</div><div class='add'>+		debug_counter.$(OBJEXT) \</div><div class='ctx'> 		dir.$(OBJEXT) \</div><div class='del'>-		dln.$(OBJEXT) \</div><div class='add'>+		dln_find.$(OBJEXT) \</div><div class='add'>+		encoding.$(OBJEXT) \</div><div class='ctx'> 		enum.$(OBJEXT) \</div><div class='add'>+		enumerator.$(OBJEXT) \</div><div class='ctx'> 		error.$(OBJEXT) \</div><div class='ctx'> 		eval.$(OBJEXT) \</div><div class='ctx'> 		file.$(OBJEXT) \</div><div class='hunk'>@@ -30,417 +91,2843 @@ OBJS	      = array.$(OBJEXT) \</div><div class='ctx'> 		hash.$(OBJEXT) \</div><div class='ctx'> 		inits.$(OBJEXT) \</div><div class='ctx'> 		io.$(OBJEXT) \</div><div class='add'>+		iseq.$(OBJEXT) \</div><div class='add'>+		load.$(OBJEXT) \</div><div class='ctx'> 		marshal.$(OBJEXT) \</div><div class='ctx'> 		math.$(OBJEXT) \</div><div class='add'>+		node.$(OBJEXT) \</div><div class='ctx'> 		numeric.$(OBJEXT) \</div><div class='ctx'> 		object.$(OBJEXT) \</div><div class='ctx'> 		pack.$(OBJEXT) \</div><div class='ctx'> 		parse.$(OBJEXT) \</div><div class='add'>+		proc.$(OBJEXT) \</div><div class='ctx'> 		process.$(OBJEXT) \</div><div class='del'>-		prec.$(OBJEXT) \</div><div class='ctx'> 		random.$(OBJEXT) \</div><div class='ctx'> 		range.$(OBJEXT) \</div><div class='add'>+		rational.$(OBJEXT) \</div><div class='ctx'> 		re.$(OBJEXT) \</div><div class='del'>-		regex.$(OBJEXT) \</div><div class='add'>+		regcomp.$(OBJEXT) \</div><div class='add'>+		regenc.$(OBJEXT) \</div><div class='add'>+		regerror.$(OBJEXT) \</div><div class='add'>+		regexec.$(OBJEXT) \</div><div class='add'>+		regparse.$(OBJEXT) \</div><div class='add'>+		regsyntax.$(OBJEXT) \</div><div class='ctx'> 		ruby.$(OBJEXT) \</div><div class='add'>+		safe.$(OBJEXT) \</div><div class='ctx'> 		signal.$(OBJEXT) \</div><div class='ctx'> 		sprintf.$(OBJEXT) \</div><div class='ctx'> 		st.$(OBJEXT) \</div><div class='add'>+		strftime.$(OBJEXT) \</div><div class='ctx'> 		string.$(OBJEXT) \</div><div class='ctx'> 		struct.$(OBJEXT) \</div><div class='add'>+		symbol.$(OBJEXT) \</div><div class='add'>+		thread.$(OBJEXT) \</div><div class='ctx'> 		time.$(OBJEXT) \</div><div class='add'>+		transcode.$(OBJEXT) \</div><div class='ctx'> 		util.$(OBJEXT) \</div><div class='ctx'> 		variable.$(OBJEXT) \</div><div class='ctx'> 		version.$(OBJEXT) \</div><div class='add'>+		vm.$(OBJEXT) \</div><div class='add'>+		vm_backtrace.$(OBJEXT) \</div><div class='add'>+		vm_dump.$(OBJEXT) \</div><div class='add'>+		vm_trace.$(OBJEXT) \</div><div class='add'>+		$(DTRACE_OBJ) \</div><div class='add'>+		$(BUILTIN_ENCOBJS) \</div><div class='add'>+		$(BUILTIN_TRANSOBJS) \</div><div class='ctx'> 		$(MISSING)</div><div class='ctx'> </div><div class='add'>+EXPORTOBJS    = $(DLNOBJ) \</div><div class='add'>+		localeinit.$(OBJEXT) \</div><div class='add'>+		loadpath.$(OBJEXT) \</div><div class='add'>+		$(COMMONOBJS)</div><div class='add'>+</div><div class='add'>+OBJS          = $(EXPORTOBJS) prelude.$(OBJEXT)</div><div class='add'>+ALLOBJS       = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS)</div><div class='add'>+</div><div class='add'>+GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+DEFAULT_PRELUDES = $(GEM_PRELUDE)</div><div class='add'>+PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(DEFAULT_PRELUDES)</div><div class='add'>+GEM_PRELUDE   = $(srcdir)/gem_prelude.rb</div><div class='add'>+PRELUDES      = {$(srcdir)}prelude.c {$(srcdir)}miniprelude.c</div><div class='add'>+GOLFPRELUDES  = {$(srcdir)}golf_prelude.c</div><div class='add'>+</div><div class='ctx'> SCRIPT_ARGS   =	--dest-dir="$(DESTDIR)" \</div><div class='ctx'> 		--extout="$(EXTOUT)" \</div><div class='del'>-		--make="$(MAKE)" \</div><div class='ctx'> 		--mflags="$(MFLAGS)" \</div><div class='ctx'> 		--make-flags="$(MAKEFLAGS)"</div><div class='del'>-EXTMK_ARGS    =	$(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) --</div><div class='del'>-INSTRUBY_ARGS =	$(SCRIPT_ARGS) --installed-list $(INSTALLED_LIST)</div><div class='add'>+EXTMK_ARGS    =	$(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) \</div><div class='add'>+		--make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" \</div><div class='add'>+		--gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \</div><div class='add'>+		--</div><div class='add'>+INSTRUBY      =	$(SUDO) $(RUNRUBY) -r./$(arch)-fake $(srcdir)/tool/rbinstall.rb</div><div class='add'>+INSTRUBY_ARGS =	$(SCRIPT_ARGS) \</div><div class='add'>+		--data-mode=$(INSTALL_DATA_MODE) \</div><div class='add'>+		--prog-mode=$(INSTALL_PROG_MODE) \</div><div class='add'>+		--installed-list $(INSTALLED_LIST) \</div><div class='add'>+		--mantype="$(MANTYPE)"</div><div class='add'>+INSTALL_PROG_MODE = 0755</div><div class='add'>+INSTALL_DATA_MODE = 0644</div><div class='ctx'> </div><div class='ctx'> PRE_LIBRUBY_UPDATE = $(MINIRUBY) -e 'ARGV[1] or File.unlink(ARGV[0]) rescue nil' -- \</div><div class='ctx'> 			$(LIBRUBY_EXTS) $(LIBRUBY_SO_UPDATE)</div><div class='ctx'> </div><div class='ctx'> TESTSDIR      = $(srcdir)/test</div><div class='add'>+TEST_EXCLUDES = --excludes-dir=$(TESTSDIR)/excludes --name=!/memory_leak/</div><div class='add'>+EXCLUDE_TESTFRAMEWORK = --exclude=/testunit/ --exclude=/minitest/</div><div class='ctx'> TESTWORKDIR   = testwork</div><div class='add'>+TESTOPTS      = $(RUBY_TESTOPTS)</div><div class='add'>+</div><div class='add'>+TESTRUN_SCRIPT = $(srcdir)/test.rb</div><div class='add'>+</div><div class='add'>+COMPILE_PRELUDE = $(srcdir)/tool/generic_erb.rb $(srcdir)/template/prelude.c.tmpl</div><div class='add'>+</div><div class='add'>+SHOWFLAGS = showflags</div><div class='add'>+</div><div class='add'>+all: $(SHOWFLAGS) main docs</div><div class='add'>+</div><div class='add'>+main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+.PHONY: showflags</div><div class='add'>+exts enc trans: $(SHOWFLAGS)</div><div class='add'>+showflags:</div><div class='add'>+	$(MESSAGE_BEGIN) \</div><div class='add'>+	"	CC = $(CC)" \</div><div class='add'>+	"	LD = $(LD)" \</div><div class='add'>+	"	LDSHARED = $(LDSHARED)" \</div><div class='add'>+	"	CFLAGS = $(CFLAGS)" \</div><div class='add'>+	"	XCFLAGS = $(XCFLAGS)" \</div><div class='add'>+	"	CPPFLAGS = $(CPPFLAGS)" \</div><div class='add'>+	"	DLDFLAGS = $(DLDFLAGS)" \</div><div class='add'>+	"	SOLIBS = $(SOLIBS)" \</div><div class='add'>+	"	LANG = $(LANG)" \</div><div class='add'>+	"	LC_ALL = $(LC_ALL)" \</div><div class='add'>+	"	LC_CTYPE = $(LC_CTYPE)" \</div><div class='add'>+	$(MESSAGE_END)</div><div class='add'>+	-@$(CC_VERSION)</div><div class='add'>+</div><div class='add'>+.PHONY: showconfig</div><div class='add'>+showconfig:</div><div class='add'>+	@$(ECHO_BEGIN) \</div><div class='add'>+	$(configure_args) \</div><div class='add'>+	$(ECHO_END)</div><div class='add'>+</div><div class='add'>+EXTS_NOTE = -f $(EXTS_MK) $(mflags) RUBY="$(MINIRUBY)" top_srcdir="$(srcdir)" note</div><div class='add'>+</div><div class='add'>+exts: build-ext</div><div class='add'>+</div><div class='add'>+EXTS_MK = exts.mk</div><div class='add'>+$(EXTS_MK): ext/configure-ext.mk $(TIMESTAMPDIR)/$(arch)/.time $(srcdir)/template/exts.mk.tmpl</div><div class='add'>+	$(Q)$(MAKE) -f ext/configure-ext.mk $(mflags) V=$(V) EXTSTATIC=$(EXTSTATIC) \</div><div class='add'>+		gnumake=$(gnumake) MINIRUBY="$(MINIRUBY)" \</div><div class='add'>+		EXTLDFLAGS="$(EXTLDFLAGS)" srcdir="$(srcdir)"</div><div class='add'>+	$(ECHO) generating makefile $@</div><div class='add'>+	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='add'>+	    $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake)</div><div class='add'>+</div><div class='add'>+ext/configure-ext.mk: $(PREP) all-incs $(MKFILES) $(RBCONFIG) $(LIBRUBY) \</div><div class='add'>+		$(srcdir)/template/configure-ext.mk.tmpl</div><div class='add'>+	$(ECHO) generating makefiles $@</div><div class='add'>+	$(Q)$(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='add'>+	    $(srcdir)/template/$(@F).tmpl --srcdir="$(srcdir)" \</div><div class='add'>+	    --miniruby="$(MINIRUBY)" --script-args='$(SCRIPT_ARGS)'</div><div class='add'>+</div><div class='add'>+configure-ext: $(EXTS_MK)</div><div class='add'>+</div><div class='add'>+build-ext: $(EXTS_MK)</div><div class='add'>+	$(Q)$(MAKE) -f $(EXTS_MK) $(mflags) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \</div><div class='add'>+	    EXTENCS="$(ENCOBJS)" UPDATE_LIBRARIES=no $(EXTSTATIC)</div><div class='add'>+	$(Q)$(MAKE) $(EXTS_NOTE)</div><div class='add'>+</div><div class='add'>+exts-note: $(EXTS_MK)</div><div class='add'>+	$(Q)$(MAKE) $(EXTS_NOTE)</div><div class='add'>+</div><div class='add'>+ext/extinit.c: $(srcdir)/template/extinit.c.tmpl</div><div class='add'>+	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='add'>+	    $(srcdir)/template/extinit.c.tmpl $(EXTINITS)</div><div class='ctx'> </div><div class='del'>-all: $(MKFILES) $(PREP) $(RBCONFIG) $(LIBRUBY)</div><div class='del'>-	@$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS)</div><div class='del'>-prog: $(PROGRAM) $(WPROGRAM)</div><div class='add'>+prog: program wprogram</div><div class='add'>+programs: $(PROGRAM) $(WPROGRAM)</div><div class='ctx'> </div><div class='del'>-miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(MINIOBJS) $(OBJS) $(DMYEXT)</div><div class='add'>+$(PREP): $(MKFILES)</div><div class='ctx'> </div><div class='del'>-$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)</div><div class='add'>+miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE)</div><div class='ctx'> </div><div class='del'>-$(LIBRUBY_A):	$(OBJS) $(DMYEXT) $(ARCHFILE)</div><div class='add'>+objs: $(ALLOBJS)</div><div class='ctx'> </div><div class='del'>-$(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE)</div><div class='add'>+GORUBY = go$(RUBY_INSTALL_NAME)</div><div class='add'>+golf: $(LIBRUBY) $(GOLFOBJS) PHONY</div><div class='add'>+	$(Q) $(MAKE) $(mflags) \</div><div class='add'>+		MAINOBJ=goruby.$(OBJEXT) \</div><div class='add'>+		EXTOBJS="golf_prelude.$(OBJEXT) $(EXTOBJS)" \</div><div class='add'>+		PROGRAM=$(GORUBY)$(EXEEXT) \</div><div class='add'>+	program</div><div class='add'>+capi: $(CAPIOUT)/.timestamp PHONY</div><div class='add'>+</div><div class='add'>+$(CAPIOUT)/.timestamp: Doxyfile $(PREP)</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(@D)"</div><div class='add'>+	$(ECHO) generating capi</div><div class='add'>+	-$(Q) $(DOXYGEN) -b</div><div class='add'>+	$(Q) $(MINIRUBY) -e 'File.open(ARGV[0], "w"){'"|f|"' f.puts(Time.now)}' "$@"</div><div class='add'>+</div><div class='add'>+Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(srcdir)/tool/generic_erb.rb $(RBCONFIG)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \</div><div class='add'>+	--srcdir="$(srcdir)" --miniruby="$(MINIRUBY)"</div><div class='add'>+</div><div class='add'>+program: $(SHOWFLAGS) $(PROGRAM)</div><div class='add'>+wprogram: $(SHOWFLAGS) $(WPROGRAM)</div><div class='add'>+mini: PHONY miniruby$(EXEEXT)</div><div class='add'>+</div><div class='add'>+$(PROGRAM) $(WPROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_A):	$(LIBRUBY_A_OBJS) $(MAINOBJ) $(INITOBJS) $(ARCHFILE)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)</div><div class='ctx'> </div><div class='ctx'> $(LIBRUBY_EXTS):</div><div class='ctx'> 	@exit &gt; $@</div><div class='ctx'> </div><div class='ctx'> $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)</div><div class='del'>-	@$(RM) $@</div><div class='add'>+	$(Q)$(RM) $@</div><div class='ctx'> 	$(PURIFY) $(CC) $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(XLDFLAGS)</div><div class='ctx'> </div><div class='del'>-ruby.imp: $(OBJS)</div><div class='del'>-	@$(NM) -Pgp $(OBJS) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@</div><div class='add'>+ruby.imp: $(COMMONOBJS)</div><div class='add'>+	$(Q)$(NM) -Pgp $(COMMONOBJS) | \</div><div class='add'>+	awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&amp;&amp;$$1!~/^(Init_|ruby_static_id_|.*_threadptr_|rb_ec_\.)/{print $$1}' | \</div><div class='add'>+	sort -u -o $@</div><div class='add'>+</div><div class='add'>+install: install-$(INSTALLDOC)</div><div class='add'>+docs: $(DOCTARGETS)</div><div class='add'>+pkgconfig-data: $(ruby_pc)</div><div class='add'>+$(ruby_pc): $(srcdir)/template/ruby.pc.in config.status</div><div class='ctx'> </div><div class='del'>-install: install-nodoc $(RDOCTARGET)</div><div class='del'>-install-all: install-nodoc install-doc</div><div class='add'>+install-all: docs pre-install-all do-install-all post-install-all</div><div class='add'>+pre-install-all:: all pre-install-local pre-install-ext pre-install-doc</div><div class='add'>+do-install-all: pre-install-all</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --rdoc-output="$(RDOCOUT)"</div><div class='add'>+post-install-all:: post-install-local post-install-ext post-install-doc</div><div class='add'>+	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc</div><div class='ctx'> pre-install-nodoc:: pre-install-local pre-install-ext</div><div class='del'>-do-install-nodoc: </div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --mantype="$(MANTYPE)"</div><div class='add'>+do-install-nodoc: main pre-install-nodoc</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='ctx'> post-install-nodoc:: post-install-local post-install-ext</div><div class='ctx'> </div><div class='ctx'> install-local: pre-install-local do-install-local post-install-local</div><div class='ctx'> pre-install-local:: pre-install-bin pre-install-lib pre-install-man</div><div class='del'>-do-install-local:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=local --mantype="$(MANTYPE)"</div><div class='add'>+do-install-local: $(PROGRAM) pre-install-local</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local</div><div class='ctx'> post-install-local:: post-install-bin post-install-lib post-install-man</div><div class='ctx'> </div><div class='ctx'> install-ext: pre-install-ext do-install-ext post-install-ext</div><div class='ctx'> pre-install-ext:: pre-install-ext-arch pre-install-ext-comm</div><div class='del'>-do-install-ext:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=ext</div><div class='add'>+do-install-ext: exts pre-install-ext</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext</div><div class='ctx'> post-install-ext:: post-install-ext-arch post-install-ext-comm</div><div class='ctx'> </div><div class='ctx'> install-arch: pre-install-arch do-install-arch post-install-arch</div><div class='ctx'> pre-install-arch:: pre-install-bin pre-install-ext-arch</div><div class='del'>-do-install-arch:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=bin --install=ext-arch</div><div class='add'>+do-install-arch: main do-install-arch</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=arch</div><div class='ctx'> post-install-arch:: post-install-bin post-install-ext-arch</div><div class='ctx'> </div><div class='ctx'> install-comm: pre-install-comm do-install-comm post-install-comm</div><div class='ctx'> pre-install-comm:: pre-install-lib pre-install-ext-comm pre-install-man</div><div class='del'>-do-install-comm:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man</div><div class='add'>+do-install-comm: $(PREP) pre-install-comm</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man</div><div class='ctx'> post-install-comm:: post-install-lib post-install-ext-comm post-install-man</div><div class='ctx'> </div><div class='ctx'> install-bin: pre-install-bin do-install-bin post-install-bin</div><div class='ctx'> pre-install-bin:: install-prereq</div><div class='del'>-do-install-bin:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=bin</div><div class='add'>+do-install-bin: $(PROGRAM) pre-install-bin</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin</div><div class='ctx'> post-install-bin::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-lib: pre-install-lib do-install-lib post-install-lib</div><div class='ctx'> pre-install-lib:: install-prereq</div><div class='del'>-do-install-lib:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=lib</div><div class='add'>+do-install-lib: $(PREP) pre-install-lib</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib</div><div class='ctx'> post-install-lib::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-ext-comm: pre-install-ext-comm do-install-ext-comm post-install-ext-comm</div><div class='ctx'> pre-install-ext-comm:: install-prereq</div><div class='del'>-do-install-ext-comm:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=ext-comm</div><div class='add'>+do-install-ext-comm: exts pre-install-ext-comm</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-comm</div><div class='ctx'> post-install-ext-comm::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-ext-arch: pre-install-ext-arch do-install-ext-arch post-install-ext-arch</div><div class='ctx'> pre-install-ext-arch:: install-prereq</div><div class='del'>-do-install-ext-arch:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=ext-arch</div><div class='add'>+do-install-ext-arch: exts pre-install-ext-arch</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-arch</div><div class='ctx'> post-install-ext-arch::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-man: pre-install-man do-install-man post-install-man</div><div class='ctx'> pre-install-man:: install-prereq</div><div class='del'>-do-install-man:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=man --mantype="$(MANTYPE)"</div><div class='add'>+do-install-man: $(PREP) pre-install-man</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man</div><div class='ctx'> post-install-man::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='add'>+install-capi: capi pre-install-capi do-install-capi post-install-capi</div><div class='add'>+pre-install-capi:: install-prereq</div><div class='add'>+do-install-capi: $(PREP) pre-install-capi</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=capi</div><div class='add'>+post-install-capi::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='ctx'> what-where: no-install</div><div class='del'>-no-install: no-install-nodoc no-install-doc</div><div class='add'>+no-install: no-install-$(INSTALLDOC)</div><div class='ctx'> what-where-all: no-install-all</div><div class='del'>-no-install-all: no-install-nodoc</div><div class='add'>+no-install-all: pre-no-install-all dont-install-all post-no-install-all</div><div class='add'>+pre-no-install-all:: pre-no-install-local pre-no-install-ext pre-no-install-doc</div><div class='add'>+dont-install-all: $(PROGRAM)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --rdoc-output="$(RDOCOUT)"</div><div class='add'>+post-no-install-all:: post-no-install-local post-no-install-ext post-no-install-doc</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+uninstall: $(INSTALLED_LIST) sudo-precheck</div><div class='add'>+	$(Q)$(SUDO) $(MINIRUBY) $(srcdir)/tool/rbuninstall.rb --destdir=$(DESTDIR) $(INSTALLED_LIST)</div><div class='add'>+</div><div class='add'>+reinstall: all uninstall install</div><div class='ctx'> </div><div class='ctx'> what-where-nodoc: no-install-nodoc</div><div class='ctx'> no-install-nodoc: pre-no-install-nodoc dont-install-nodoc post-no-install-nodoc</div><div class='ctx'> pre-no-install-nodoc:: pre-no-install-local pre-no-install-ext</div><div class='del'>-dont-install-nodoc: </div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --mantype="$(MANTYPE)"</div><div class='add'>+dont-install-nodoc:  $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='ctx'> post-no-install-nodoc:: post-no-install-local post-no-install-ext</div><div class='ctx'> </div><div class='ctx'> what-where-local: no-install-local</div><div class='ctx'> no-install-local: pre-no-install-local dont-install-local post-no-install-local</div><div class='ctx'> pre-no-install-local:: pre-no-install-bin pre-no-install-lib pre-no-install-man</div><div class='del'>-dont-install-local:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=local --mantype="$(MANTYPE)"</div><div class='add'>+dont-install-local: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local</div><div class='ctx'> post-no-install-local:: post-no-install-bin post-no-install-lib post-no-install-man</div><div class='ctx'> </div><div class='ctx'> what-where-ext: no-install-ext</div><div class='ctx'> no-install-ext: pre-no-install-ext dont-install-ext post-no-install-ext</div><div class='ctx'> pre-no-install-ext:: pre-no-install-ext-arch pre-no-install-ext-comm</div><div class='del'>-dont-install-ext:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=ext</div><div class='add'>+dont-install-ext: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext</div><div class='ctx'> post-no-install-ext:: post-no-install-ext-arch post-no-install-ext-comm</div><div class='ctx'> </div><div class='ctx'> what-where-arch: no-install-arch</div><div class='ctx'> no-install-arch: pre-no-install-arch dont-install-arch post-no-install-arch</div><div class='ctx'> pre-no-install-arch:: pre-no-install-bin pre-no-install-ext-arch</div><div class='del'>-dont-install-arch:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=bin --install=ext-arch</div><div class='add'>+dont-install-arch: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin --install=ext-arch</div><div class='ctx'> post-no-install-arch:: post-no-install-lib post-no-install-man post-no-install-ext-arch</div><div class='ctx'> </div><div class='ctx'> what-where-comm: no-install-comm</div><div class='ctx'> no-install-comm: pre-no-install-comm dont-install-comm post-no-install-comm</div><div class='ctx'> pre-no-install-comm:: pre-no-install-lib pre-no-install-ext-comm pre-no-install-man</div><div class='del'>-dont-install-comm:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man</div><div class='add'>+dont-install-comm: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man</div><div class='ctx'> post-no-install-comm:: post-no-install-lib post-no-install-ext-comm post-no-install-man</div><div class='ctx'> </div><div class='ctx'> what-where-bin: no-install-bin</div><div class='ctx'> no-install-bin: pre-no-install-bin dont-install-bin post-no-install-bin</div><div class='ctx'> pre-no-install-bin:: install-prereq</div><div class='del'>-dont-install-bin:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=bin</div><div class='add'>+dont-install-bin: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin</div><div class='ctx'> post-no-install-bin::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> what-where-lib: no-install-lib</div><div class='ctx'> no-install-lib: pre-no-install-lib dont-install-lib post-no-install-lib</div><div class='ctx'> pre-no-install-lib:: install-prereq</div><div class='del'>-dont-install-lib:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=lib</div><div class='add'>+dont-install-lib: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib</div><div class='ctx'> post-no-install-lib::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> what-where-ext-comm: no-install-ext-comm</div><div class='ctx'> no-install-ext-comm: pre-no-install-ext-comm dont-install-ext-comm post-no-install-ext-comm</div><div class='ctx'> pre-no-install-ext-comm:: install-prereq</div><div class='del'>-dont-install-ext-comm:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=ext-comm</div><div class='add'>+dont-install-ext-comm: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-comm</div><div class='ctx'> post-no-install-ext-comm::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> what-where-ext-arch: no-install-ext-arch</div><div class='ctx'> no-install-ext-arch: pre-no-install-ext-arch dont-install-ext-arch post-no-install-ext-arch</div><div class='ctx'> pre-no-install-ext-arch:: install-prereq</div><div class='del'>-dont-install-ext-arch:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=ext-arch</div><div class='add'>+dont-install-ext-arch: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-arch</div><div class='ctx'> post-no-install-ext-arch::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> what-where-man: no-install-man</div><div class='ctx'> no-install-man: pre-no-install-man dont-install-man post-no-install-man</div><div class='ctx'> pre-no-install-man:: install-prereq</div><div class='del'>-dont-install-man:</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=man --mantype="$(MANTYPE)"</div><div class='add'>+dont-install-man: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man</div><div class='ctx'> post-no-install-man::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-doc: rdoc pre-install-doc do-install-doc post-install-doc</div><div class='ctx'> pre-install-doc:: install-prereq</div><div class='del'>-do-install-doc: $(PROGRAM)</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"</div><div class='add'>+do-install-doc: $(PROGRAM) pre-install-doc</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"</div><div class='ctx'> post-install-doc::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='del'>-rdoc: $(PROGRAM) PHONY</div><div class='add'>+install-gem: pre-install-gem do-install-gem post-install-gem</div><div class='add'>+pre-install-gem:: pre-install-bin pre-install-lib pre-install-man</div><div class='add'>+do-install-gem: $(PROGRAM) pre-install-gem</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=gem</div><div class='add'>+post-install-gem::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+rdoc: PHONY main</div><div class='ctx'> 	@echo Generating RDoc documentation</div><div class='del'>-	$(RUNRUBY) "$(srcdir)/bin/rdoc" --all --ri --op "$(RDOCOUT)" "$(srcdir)"</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --root "$(srcdir)" --page-dir "$(srcdir)/doc" --encoding=UTF-8 --no-force-update --all --ri --op "$(RDOCOUT)" $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+</div><div class='add'>+html: PHONY main</div><div class='add'>+	@echo Generating RDoc HTML files</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --root "$(srcdir)" --page-dir "$(srcdir)/doc" --encoding=UTF-8 --no-force-update --all --op "$(HTMLOUT)" $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+</div><div class='add'>+rdoc-coverage: PHONY main</div><div class='add'>+	@echo Generating RDoc coverage report</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --root "$(srcdir)" --encoding=UTF-8 --all --quiet -C $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+</div><div class='add'>+RDOCBENCHOUT=/tmp/rdocbench</div><div class='add'>+</div><div class='add'>+GCBENCH_ITEM=null</div><div class='add'>+</div><div class='add'>+gcbench: PHONY</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/benchmark/gc/gcbench.rb" $(GCBENCH_ITEM)</div><div class='add'>+</div><div class='add'>+gcbench-rdoc: PHONY</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/benchmark/gc/gcbench.rb" rdoc</div><div class='add'>+</div><div class='add'>+nodoc: PHONY</div><div class='ctx'> </div><div class='ctx'> what-where-doc: no-install-doc</div><div class='ctx'> no-install-doc: pre-no-install-doc dont-install-doc post-no-install-doc</div><div class='ctx'> pre-no-install-doc:: install-prereq</div><div class='del'>-dont-install-doc::</div><div class='del'>-	$(MINIRUBY) $(srcdir)/instruby.rb -n $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"</div><div class='add'>+dont-install-doc:: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"</div><div class='ctx'> post-no-install-doc::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='del'>-install-prereq:</div><div class='del'>-	@exit &gt; $(INSTALLED_LIST)</div><div class='add'>+CLEAR_INSTALLED_LIST = clear-installed-list</div><div class='add'>+</div><div class='add'>+install-prereq: $(CLEAR_INSTALLED_LIST) yes-fake sudo-precheck PHONY</div><div class='add'>+</div><div class='add'>+clear-installed-list: PHONY</div><div class='add'>+	@&gt; $(INSTALLED_LIST) set MAKE="$(MAKE)"</div><div class='ctx'> </div><div class='del'>-clean: clean-ext clean-local</div><div class='del'>-clean-local::</div><div class='del'>-	@$(RM) $(OBJS) $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)</div><div class='del'>-	@$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) $(ARCHFILE) .*.time</div><div class='del'>-clean-ext:</div><div class='del'>-	@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) clean</div><div class='add'>+clean: clean-ext clean-enc clean-golf clean-docs clean-extout clean-local clean-platform clean-spec</div><div class='add'>+clean-local:: clean-runnable</div><div class='add'>+	$(Q)$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)</div><div class='add'>+	$(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) dmyenc.$(OBJEXT) $(ARCHFILE) .*.time</div><div class='add'>+	$(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT)</div><div class='add'>+	$(Q)$(RM) GNUmakefile.old Makefile.old $(arch)-fake.rb bisect.sh $(ENC_TRANS_D)</div><div class='add'>+	-$(Q) $(RMDIR) enc/jis enc/trans enc 2&gt; $(NULL) || exit 0</div><div class='add'>+clean-runnable:: PHONY</div><div class='add'>+	$(Q)$(CHDIR) bin 2&gt;$(NULL) &amp;&amp; $(RM) $(PROGRAM) $(WPROGRAM) $(GORUBY)$(EXEEXT) bin/*.$(DLEXT) 2&gt;$(NULL) || exit 0</div><div class='add'>+	$(Q)$(CHDIR) lib 2&gt;$(NULL) &amp;&amp; $(RM) $(LIBRUBY_A) $(LIBRUBY) $(LIBRUBY_ALIASES) $(RUBY_BASE_NAME)/$(RUBY_PROGRAM_VERSION) $(RUBY_BASE_NAME)/vendor_ruby 2&gt;$(NULL) || exit 0</div><div class='add'>+	$(Q)$(RMDIR) lib/$(RUBY_BASE_NAME) lib bin 2&gt;$(NULL) || exit 0</div><div class='add'>+clean-ext:: PHONY</div><div class='add'>+clean-golf: PHONY</div><div class='add'>+	$(Q)$(RM) $(GORUBY)$(EXEEXT) $(GOLFOBJS)</div><div class='add'>+clean-rdoc: PHONY</div><div class='add'>+clean-html: PHONY</div><div class='add'>+clean-capi: PHONY</div><div class='add'>+clean-platform: PHONY</div><div class='add'>+clean-extout: PHONY</div><div class='add'>+	-$(Q)$(RMDIR) $(EXTOUT)/$(arch) $(EXTOUT) 2&gt; $(NULL) || exit 0</div><div class='add'>+clean-docs: clean-rdoc clean-html clean-capi</div><div class='add'>+clean-spec: PHONY</div><div class='add'>+clean-rubyspec: clean-spec</div><div class='ctx'> </div><div class='del'>-distclean: distclean-ext distclean-local</div><div class='add'>+distclean: distclean-ext distclean-enc distclean-golf distclean-docs distclean-extout distclean-local distclean-platform distclean-spec</div><div class='ctx'> distclean-local:: clean-local</div><div class='del'>-	@$(RM) $(MKFILES) config.h rbconfig.rb</div><div class='del'>-	@$(RM) config.cache config.log config.status</div><div class='del'>-	@$(RM) *~ *.bak *.stackdump core *.core gmon.out y.tab.c y.output $(PREP)</div><div class='del'>-distclean-ext:</div><div class='del'>-	@-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS) distclean</div><div class='add'>+	$(Q)$(RM) $(MKFILES) yasmdata.rb *.inc $(PRELUDES)</div><div class='add'>+	$(Q)$(RM) config.cache config.status config.status.lineno</div><div class='add'>+	$(Q)$(RM) *~ *.bak *.stackdump core *.core gmon.out $(PREP)</div><div class='add'>+	-$(Q)$(RMALL) $(srcdir)/autom4te.cache</div><div class='add'>+distclean-ext:: PHONY</div><div class='add'>+distclean-golf: clean-golf</div><div class='add'>+distclean-rdoc: clean-rdoc</div><div class='add'>+distclean-html: clean-html</div><div class='add'>+distclean-capi: clean-capi</div><div class='add'>+distclean-docs: clean-docs</div><div class='add'>+distclean-extout: clean-extout</div><div class='add'>+distclean-platform: clean-platform</div><div class='add'>+distclean-spec: clean-spec</div><div class='add'>+distclean-rubyspec: distclean-spec</div><div class='add'>+</div><div class='add'>+realclean:: realclean-ext realclean-local realclean-enc realclean-golf realclean-extout</div><div class='add'>+realclean-local:: distclean-local</div><div class='add'>+	$(Q)$(RM) parse.c parse.h lex.c enc/trans/newline.c revision.h</div><div class='add'>+	$(Q)$(RM) id.c id.h probes.dmyh</div><div class='add'>+	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) parse.c parse.h lex.c enc/trans/newline.c $(PRELUDES) revision.h</div><div class='add'>+	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) id.c id.h probes.dmyh</div><div class='add'>+	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) configure aclocal.m4 tool/config.guess tool/config.sub gems/*.gem</div><div class='add'>+realclean-ext:: PHONY</div><div class='add'>+realclean-golf: distclean-golf</div><div class='add'>+	$(Q)$(RM) $(GOLFPRELUDES)</div><div class='add'>+realclean-rdoc: distclean-rdoc</div><div class='add'>+realclean-html: distclean-html</div><div class='add'>+realclean-capi: distclean-capi</div><div class='add'>+realclean-docs: distclean-docs</div><div class='add'>+realclean-extout: distclean-extout</div><div class='add'>+realclean-platform: distclean-platform</div><div class='add'>+realclean-spec: distclean-spec</div><div class='add'>+realclean-rubyspec: realclean-spec</div><div class='add'>+</div><div class='add'>+clean-ext:: ext/clean gems/clean timestamp/clean</div><div class='add'>+distclean-ext:: ext/distclean gems/distclean timestamp/distclean</div><div class='add'>+realclean-ext:: ext/realclean gems/realclean timestamp/realclean</div><div class='add'>+</div><div class='add'>+ext/clean.mk ext/distclean.mk ext/realclean.mk::</div><div class='add'>+ext/clean gems/clean:: ext/clean.mk</div><div class='add'>+ext/distclean gems/distclean:: ext/distclean.mk</div><div class='add'>+ext/realclean gems/realclean:: ext/realclean.mk</div><div class='ctx'> </div><div class='del'>-realclean:: distclean</div><div class='del'>-	@$(RM) parse.c lex.c</div><div class='add'>+timestamp/clean:: ext/clean gems/clean</div><div class='add'>+timestamp/distclean:: ext/distclean gems/distclean</div><div class='add'>+timestamp/realclean:: ext/realclean gems/realclean</div><div class='ctx'> </div><div class='del'>-check: test test-all</div><div class='add'>+timestamp/clean timestamp/distclean timestamp/realclean::</div><div class='add'>+	$(Q)$(RM) $(TIMESTAMPDIR)/.*.time $(TIMESTAMPDIR)/$(arch)/.time</div><div class='add'>+	$(Q)$(RMDIRS) $(TIMESTAMPDIR)/$(arch) 2&gt; $(NULL) || exit 0</div><div class='ctx'> </div><div class='del'>-test: miniruby$(EXEEXT) $(RBCONFIG) $(PROGRAM) PHONY</div><div class='del'>-	@$(MINIRUBY) $(srcdir)/rubytest.rb</div><div class='add'>+clean-ext::</div><div class='add'>+	-$(Q)$(RM) ext/extinit.$(OBJEXT)</div><div class='ctx'> </div><div class='del'>-test-all:</div><div class='del'>-	$(RUNRUBY) "$(srcdir)/test/runner.rb" --basedir="$(TESTSDIR)" --runner=$(TESTUI) $(TESTS)</div><div class='add'>+distclean-ext realclean-ext::</div><div class='add'>+	-$(Q)$(RM) $(EXTS_MK) ext/extinit.* ext/configure-ext.mk</div><div class='add'>+	-$(Q)$(RMDIR) ext 2&gt; $(NULL) || exit 0</div><div class='ctx'> </div><div class='del'>-extconf:</div><div class='del'>-	$(MINIRUBY) -I$(srcdir)/lib -run -e mkdir -- -p "$(EXTCONFDIR)"</div><div class='add'>+clean-enc distclean-enc realclean-enc: PHONY</div><div class='add'>+</div><div class='add'>+clean-enc: clean-enc.d</div><div class='add'>+</div><div class='add'>+clean-enc.d: PHONY</div><div class='add'>+	$(Q)$(RM) $(ENC_TRANS_D)</div><div class='add'>+	-$(Q) $(RMDIR) enc/jis enc/trans enc 2&gt; $(NULL) || exit 0</div><div class='add'>+</div><div class='add'>+clean-rdoc distclean-rdoc realclean-rdoc:</div><div class='add'>+	@echo $(@:-rdoc=ing) rdoc</div><div class='add'>+	$(Q)$(RMALL) $(RDOCOUT)</div><div class='add'>+</div><div class='add'>+clean-html distclean-html realclean-html:</div><div class='add'>+	@echo $(@:-html=ing) HTML</div><div class='add'>+	$(Q)$(RMALL) $(HTMLOUT)</div><div class='add'>+</div><div class='add'>+clean-capi distclean-capi realclean-capi:</div><div class='add'>+	@echo $(@:-capi=ing) capi</div><div class='add'>+	$(Q)$(RMALL) $(CAPIOUT)</div><div class='add'>+</div><div class='add'>+clean-platform:</div><div class='add'>+	$(Q) $(RM) $(PLATFORM_D)</div><div class='add'>+	-$(Q) $(RMDIR) $(PLATFORM_DIR) 2&gt; $(NULL) || exit 0</div><div class='add'>+</div><div class='add'>+RUBYSPEC_CAPIEXT = spec/ruby/optional/capi/ext</div><div class='add'>+clean-spec: PHONY</div><div class='add'>+	-$(Q) $(RM) $(RUBYSPEC_CAPIEXT)/*.$(OBJEXT) $(RUBYSPEC_CAPIEXT)/*.$(DLEXT)</div><div class='add'>+	-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2&gt; $(NULL) || exit 0</div><div class='add'>+</div><div class='add'>+check: main test test-testframework test-almost</div><div class='add'>+	$(ECHO) check succeeded</div><div class='add'>+check-ruby: test test-ruby</div><div class='add'>+</div><div class='add'>+fake: $(CROSS_COMPILING)-fake</div><div class='add'>+yes-fake: $(arch)-fake.rb $(RBCONFIG) PHONY</div><div class='add'>+no-fake -fake: PHONY</div><div class='add'>+</div><div class='add'>+# really doesn't depend on .o, just ensure newer than headers which</div><div class='add'>+# version.o depends on.</div><div class='add'>+$(arch)-fake.rb: $(srcdir)/template/fake.rb.in $(srcdir)/tool/generic_erb.rb version.$(OBJEXT) miniruby$(EXEEXT)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) "$(srcdir)/version.c" | \</div><div class='add'>+	$(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ "$(srcdir)/template/fake.rb.in" \</div><div class='add'>+		i=- srcdir="$(srcdir)" BASERUBY="$(BASERUBY)"</div><div class='add'>+</div><div class='add'>+btest: $(TEST_RUNNABLE)-btest</div><div class='add'>+no-btest: PHONY</div><div class='add'>+yes-btest: fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(Q)$(exec) $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(BTESTRUBY) $(RUN_OPTS)" $(OPTS) $(TESTOPTS)</div><div class='add'>+</div><div class='add'>+btest-ruby: $(TEST_RUNNABLE)-btest-ruby</div><div class='add'>+no-btest-ruby: PHONY</div><div class='add'>+yes-btest-ruby: prog PHONY</div><div class='add'>+	$(Q)$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib $(RUN_OPTS)" -q $(OPTS) $(TESTOPTS)</div><div class='add'>+</div><div class='add'>+test-basic: $(TEST_RUNNABLE)-test-basic</div><div class='add'>+no-test-basic: PHONY</div><div class='add'>+yes-test-basic: prog PHONY</div><div class='add'>+	$(Q)$(exec) $(RUNRUBY) "$(srcdir)/basictest/runner.rb" --run-opt=$(RUN_OPTS) $(OPTS) $(TESTOPTS)</div><div class='add'>+</div><div class='add'>+test-knownbugs: test-knownbug</div><div class='add'>+test-knownbug: $(TEST_RUNNABLE)-test-knownbug</div><div class='add'>+no-test-knownbug: PHONY</div><div class='add'>+yes-test-knownbug: prog PHONY</div><div class='add'>+	-$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) $(RUN_OPTS)" $(OPTS) $(TESTOPTS) $(srcdir)/KNOWNBUGS.rb</div><div class='add'>+</div><div class='add'>+test-testframework: $(TEST_RUNNABLE)-test-testframework</div><div class='add'>+yes-test-testframework: prog PHONY</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TESTOPTS) testunit minitest</div><div class='add'>+no-test-testframework: PHONY</div><div class='add'>+</div><div class='add'>+test-sample: test-basic # backward compatibility for mswin-build</div><div class='add'>+test: btest-ruby test-knownbug test-basic</div><div class='add'>+</div><div class='add'>+# $ make test-all TESTOPTS="--help" displays more detail</div><div class='add'>+# for example, make test-all TESTOPTS="-j2 -v -n test-name -- test-file-name"</div><div class='add'>+test-all: $(TEST_RUNNABLE)-test-all</div><div class='add'>+yes-test-all: programs PHONY</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS)</div><div class='add'>+TESTS_BUILD = mkmf</div><div class='add'>+no-test-all: PHONY</div><div class='add'>+	$(gnumake_recursive)$(MINIRUBY) -I"$(srcdir)/lib" "$(srcdir)/test/runner.rb" $(TESTOPTS) $(TESTS_BUILD)</div><div class='add'>+</div><div class='add'>+test-almost: $(TEST_RUNNABLE)-test-almost</div><div class='add'>+yes-test-almost: prog PHONY</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(EXCLUDE_TESTFRAMEWORK) $(TESTS)</div><div class='add'>+no-test-almost: PHONY</div><div class='add'>+</div><div class='add'>+test-ruby: $(TEST_RUNNABLE)-test-ruby</div><div class='add'>+no-test-ruby: PHONY</div><div class='add'>+yes-test-ruby: prog encs PHONY</div><div class='add'>+	$(gnumake_recursive)$(RUNRUBY) "$(srcdir)/test/runner.rb" $(TEST_EXCLUDES) $(TESTOPTS) -- ruby -ext-</div><div class='add'>+</div><div class='add'>+extconf: $(PREP)</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(EXTCONFDIR)"</div><div class='ctx'> 	$(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)</div><div class='ctx'> </div><div class='del'>-$(RBCONFIG): $(srcdir)/mkconfig.rb config.status $(PREP)</div><div class='del'>-	@$(MINIRUBY) $(srcdir)/mkconfig.rb -timestamp=$@ \</div><div class='add'>+$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h</div><div class='add'>+	$(Q)$(BOOTSTRAPRUBY) -n \</div><div class='add'>+	-e 'BEGIN{version=ARGV.shift;mis=ARGV.dup}' \</div><div class='add'>+	-e 'END{abort "UNICODE version mismatch: #{mis}" unless mis.empty?}' \</div><div class='add'>+	-e '(mis.delete(ARGF.path); ARGF.close) if /ONIG_UNICODE_VERSION_STRING +"#{Regexp.quote(version)}"/o' \</div><div class='add'>+	$(UNICODE_VERSION) $(UNICODE_DATA_HEADERS)</div><div class='add'>+	$(Q)$(BOOTSTRAPRUBY) $(srcdir)/tool/mkconfig.rb \</div><div class='add'>+		-arch=$(arch) -version=$(RUBY_PROGRAM_VERSION) \</div><div class='ctx'> 		-install_name=$(RUBY_INSTALL_NAME) \</div><div class='del'>-		-so_name=$(RUBY_SO_NAME) rbconfig.rb</div><div class='add'>+		-so_name=$(RUBY_SO_NAME) \</div><div class='add'>+		-unicode_version=$(UNICODE_VERSION) \</div><div class='add'>+	&gt; rbconfig.tmp</div><div class='add'>+	$(IFCHANGE) "--timestamp=$@" rbconfig.rb rbconfig.tmp</div><div class='add'>+</div><div class='add'>+test-rubyspec: test-spec</div><div class='add'>+yes-test-rubyspec: yes-test-spec</div><div class='add'>+</div><div class='add'>+test-spec-precheck: $(arch)-fake.rb programs</div><div class='add'>+</div><div class='add'>+test-spec: $(TEST_RUNNABLE)-test-spec</div><div class='add'>+yes-test-spec: test-spec-precheck</div><div class='add'>+	$(gnumake_recursive)$(Q) \</div><div class='add'>+	$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS)</div><div class='add'>+no-test-spec:</div><div class='add'>+</div><div class='add'>+RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable</div><div class='add'>+runnable: $(RUNNABLE) prog $(srcdir)/tool/mkrunnable.rb PHONY</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/tool/mkrunnable.rb -v $(EXTOUT)</div><div class='add'>+yes-runnable: PHONY</div><div class='add'>+</div><div class='add'>+encs: enc trans</div><div class='add'>+libencs: libenc libtrans</div><div class='add'>+encs enc trans libencs libenc libtrans: $(SHOWFLAGS) $(ENC_MK) $(LIBRUBY) $(PREP) PHONY</div><div class='add'>+	$(ECHO) making $@</div><div class='add'>+	$(Q) $(MAKE) $(MAKE_ENC) $@</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+libenc enc: {$(VPATH)}encdb.h</div><div class='add'>+libtrans trans: {$(VPATH)}transdb.h</div><div class='add'>+</div><div class='add'>+# Use MINIRUBY which loads fake.rb for cross compiling</div><div class='add'>+$(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \</div><div class='add'>+	$(srcdir)/enc/encinit.c.erb $(srcdir)/lib/mkmf.rb $(RBCONFIG) fake</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" --builtin-transes="$(BUILTIN_TRANSOBJS)" --module$(ENCSTATIC) $(ENCS) $@</div><div class='ctx'> </div><div class='ctx'> .PRECIOUS: $(MKFILES)</div><div class='ctx'> </div><div class='add'>+.PHONY: PHONY all fake prereq incs srcs preludes help</div><div class='ctx'> .PHONY: test install install-nodoc install-doc dist</div><div class='add'>+.PHONY: loadpath golf capi rdoc install-prereq clear-installed-list</div><div class='add'>+.PHONY: clean clean-ext clean-local clean-enc clean-golf clean-rdoc clean-html clean-extout</div><div class='add'>+.PHONY: distclean distclean-ext distclean-local distclean-enc distclean-golf distclean-extout</div><div class='add'>+.PHONY: realclean realclean-ext realclean-local realclean-enc realclean-golf realclean-extout</div><div class='add'>+.PHONY: check test test-all btest btest-ruby test-basic test-knownbug</div><div class='add'>+.PHONY: run runruby parse benchmark benchmark-each tbench gdb gdb-ruby</div><div class='add'>+.PHONY: update-mspec update-rubyspec test-rubyspec test-spec</div><div class='add'>+.PHONY: touch-unicode-files</div><div class='ctx'> </div><div class='ctx'> PHONY:</div><div class='ctx'> </div><div class='del'>-{$(VPATH)}parse.c: parse.y</div><div class='add'>+{$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed {$(VPATH)}id.h</div><div class='add'>+{$(VPATH)}parse.h: {$(VPATH)}parse.c</div><div class='add'>+</div><div class='add'>+{$(srcdir)}.y.c:</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q)$(BASERUBY) $(srcdir)/tool/id2token.rb --path-separator=.$(PATH_SEPARATOR)./ --vpath=$(VPATH) id.h $(SRC_FILE) &gt; parse.tmp.y</div><div class='add'>+	$(Q)$(YACC) -d $(YFLAGS) -o y.tab.c parse.tmp.y</div><div class='add'>+	$(Q)$(RM) parse.tmp.y</div><div class='add'>+	$(Q)sed -f $(srcdir)/tool/ytab.sed -e "/^#/s|parse\.tmp\.[iy]|$(SRC_FILE)|" -e "/^#/s!y\.tab\.c!$@!" y.tab.c &gt; $@.new</div><div class='add'>+	$(Q)$(MV) $@.new $@</div><div class='add'>+	$(Q)sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse.*\.y/d" y.tab.h &gt; $(@:.c=.h)</div><div class='add'>+	$(Q)$(RM) y.tab.c y.tab.h</div><div class='add'>+</div><div class='add'>+$(PLATFORM_D):</div><div class='add'>+	$(Q) $(MAKEDIRS) $(PLATFORM_DIR) $(@D)</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+exe/$(PROGRAM): ruby-runner.c ruby-runner.h exe/.time miniruby$(EXEEXT)</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(CFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(@F) $(LDFLAGS) $(LIBS) $(OUTFLAG)$@ $&lt;</div><div class='add'>+	$(Q) ./miniruby$(EXEEXT) \</div><div class='add'>+	    -e 'prog, dest = ARGV; dest += "/ruby"' \</div><div class='add'>+	    -e 'unless prog=="ruby"' \</div><div class='add'>+	    -e '  begin File.unlink(dest); rescue Errno::ENOENT; end' \</div><div class='add'>+	    -e '  File.symlink(prog, dest)' \</div><div class='add'>+	    -e 'end' \</div><div class='add'>+	$(@F) $(@D)</div><div class='add'>+</div><div class='add'>+exe/.time:</div><div class='add'>+	$(Q) $(MAKEDIRS) exe $(@D)</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+$(BUILTIN_ENCOBJS) $(BUILTIN_TRANSOBJS): $(ENC_TRANS_D)</div><div class='add'>+</div><div class='add'>+$(ENC_TRANS_D):</div><div class='add'>+	$(Q) $(MAKEDIRS) enc/trans $(@D)</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+$(TIMESTAMPDIR)/$(arch)/.time:</div><div class='add'>+	$(Q)$(MAKEDIRS) $(@D) $(EXTOUT)/$(arch)</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+###</div><div class='add'>+CCAN_DIR = {$(VPATH)}ccan</div><div class='add'>+</div><div class='add'>+RUBY_H_INCLUDES    = {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}defines.h \</div><div class='add'>+		     {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \</div><div class='add'>+		     {$(VPATH)}subst.h</div><div class='add'>+</div><div class='add'>+###</div><div class='ctx'> </div><div class='ctx'> acosh.$(OBJEXT): {$(VPATH)}acosh.c</div><div class='del'>-alloca.$(OBJEXT): {$(VPATH)}alloca.c</div><div class='del'>-crypt.$(OBJEXT): {$(VPATH)}crypt.c</div><div class='add'>+alloca.$(OBJEXT): {$(VPATH)}alloca.c {$(VPATH)}config.h</div><div class='add'>+crypt.$(OBJEXT): {$(VPATH)}crypt.c {$(VPATH)}crypt.h {$(VPATH)}missing/des_tables.c</div><div class='ctx'> dup2.$(OBJEXT): {$(VPATH)}dup2.c</div><div class='ctx'> erf.$(OBJEXT): {$(VPATH)}erf.c</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c</div><div class='ctx'> finite.$(OBJEXT): {$(VPATH)}finite.c</div><div class='ctx'> flock.$(OBJEXT): {$(VPATH)}flock.c</div><div class='ctx'> memcmp.$(OBJEXT): {$(VPATH)}memcmp.c</div><div class='ctx'> memmove.$(OBJEXT): {$(VPATH)}memmove.c</div><div class='ctx'> mkdir.$(OBJEXT): {$(VPATH)}mkdir.c</div><div class='del'>-vsnprintf.$(OBJEXT): {$(VPATH)}vsnprintf.c</div><div class='del'>-strcasecmp.$(OBJEXT): {$(VPATH)}strcasecmp.c</div><div class='del'>-strncasecmp.$(OBJEXT): {$(VPATH)}strncasecmp.c</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}setproctitle.c</div><div class='ctx'> strchr.$(OBJEXT): {$(VPATH)}strchr.c</div><div class='ctx'> strdup.$(OBJEXT): {$(VPATH)}strdup.c</div><div class='ctx'> strerror.$(OBJEXT): {$(VPATH)}strerror.c</div><div class='del'>-strftime.$(OBJEXT): {$(VPATH)}strftime.c</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}strlcat.c</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}strlcpy.c</div><div class='ctx'> strstr.$(OBJEXT): {$(VPATH)}strstr.c</div><div class='del'>-strtod.$(OBJEXT): {$(VPATH)}strtod.c</div><div class='del'>-strtol.$(OBJEXT): {$(VPATH)}strtol.c</div><div class='del'>-strtoul.$(OBJEXT): {$(VPATH)}strtoul.c</div><div class='ctx'> nt.$(OBJEXT): {$(VPATH)}nt.c</div><div class='del'>-x68.$(OBJEXT): {$(VPATH)}x68.c</div><div class='del'>-os2.$(OBJEXT): {$(VPATH)}os2.c</div><div class='del'>-dl_os2.$(OBJEXT): {$(VPATH)}dl_os2.c</div><div class='ctx'> ia64.$(OBJEXT): {$(VPATH)}ia64.s</div><div class='ctx'> 	$(CC) $(CFLAGS) -c $&lt;</div><div class='ctx'> </div><div class='del'>-# when I use -I., there is confliction at "OpenFile" </div><div class='del'>-# so, set . into environment varible "include"</div><div class='del'>-win32.$(OBJEXT): {$(VPATH)}win32.c</div><div class='del'>-</div><div class='ctx'> ###</div><div class='ctx'> </div><div class='del'>-array.$(OBJEXT): {$(VPATH)}array.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}util.h {$(VPATH)}st.h</div><div class='del'>-bignum.$(OBJEXT): {$(VPATH)}bignum.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-class.$(OBJEXT): {$(VPATH)}class.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubysig.h {$(VPATH)}node.h {$(VPATH)}st.h</div><div class='del'>-compar.$(OBJEXT): {$(VPATH)}compar.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-dir.$(OBJEXT): {$(VPATH)}dir.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}util.h</div><div class='del'>-dln.$(OBJEXT): {$(VPATH)}dln.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}dln.h</div><div class='del'>-dmydln.$(OBJEXT): {$(VPATH)}dmydln.c {$(VPATH)}dln.c {$(VPATH)}ruby.h \</div><div class='del'>-  config.h {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}dln.h</div><div class='add'>+# dependencies for generated C sources.</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}parse.c</div><div class='add'>+miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}prelude.c</div><div class='add'>+</div><div class='add'>+# dependencies for optional sources.</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}opt_sc.inc {$(VPATH)}optunifs.inc</div><div class='add'>+</div><div class='add'>+win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c {$(VPATH)}win32/file.h \</div><div class='add'>+  {$(VPATH)}dln.h {$(VPATH)}dln_find.c {$(VPATH)}encindex.h \</div><div class='add'>+  {$(VPATH)}internal.h {$(VPATH)}util.h $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}vm.h $(PLATFORM_D)</div><div class='add'>+win32/file.$(OBJEXT): {$(VPATH)}win32/file.c {$(VPATH)}win32/file.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) $(PLATFORM_D)</div><div class='add'>+</div><div class='add'>+$(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb</div><div class='add'>+	$(Q) $(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans</div><div class='add'>+enc/trans/newline.$(OBJEXT): $(NEWLINE_C)</div><div class='add'>+</div><div class='add'>+verconf.h: $(srcdir)/template/verconf.h.tmpl $(srcdir)/tool/generic_erb.rb</div><div class='add'>+	$(ECHO) creating $@</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl</div><div class='add'>+</div><div class='add'>+ruby-glommed.$(OBJEXT): $(OBJS)</div><div class='add'>+</div><div class='add'>+$(OBJS):  {$(VPATH)}config.h {$(VPATH)}missing.h</div><div class='add'>+</div><div class='add'>+INSNS2VMOPT = --srcdir="$(srcdir)"</div><div class='add'>+</div><div class='add'>+{$(VPATH)}minsns.inc: $(srcdir)/template/minsns.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}opt_sc.inc: $(srcdir)/template/opt_sc.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}optinsn.inc: $(srcdir)/template/optinsn.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}optunifs.inc: $(srcdir)/template/optunifs.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}insns.inc: $(srcdir)/template/insns.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}insns_info.inc: $(srcdir)/template/insns_info.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}vmtc.inc: $(srcdir)/template/vmtc.inc.tmpl</div><div class='add'>+</div><div class='add'>+{$(VPATH)}vm.inc: $(srcdir)/template/vm.inc.tmpl</div><div class='add'>+</div><div class='add'>+common-srcs: {$(VPATH)}parse.c {$(VPATH)}lex.c {$(VPATH)}enc/trans/newline.c {$(VPATH)}id.c \</div><div class='add'>+	     srcs-lib srcs-ext incs</div><div class='add'>+</div><div class='add'>+missing-srcs: $(srcdir)/missing/des_tables.c</div><div class='add'>+</div><div class='add'>+srcs: common-srcs missing-srcs srcs-enc</div><div class='add'>+</div><div class='add'>+EXT_SRCS = $(srcdir)/ext/ripper/ripper.c \</div><div class='add'>+	   $(srcdir)/ext/rbconfig/sizeof/sizes.c \</div><div class='add'>+	   $(srcdir)/ext/rbconfig/sizeof/limits.c \</div><div class='add'>+	   $(srcdir)/ext/socket/constdefs.c \</div><div class='add'>+	   # EXT_SRCS</div><div class='add'>+</div><div class='add'>+srcs-ext: $(EXT_SRCS)</div><div class='add'>+</div><div class='add'>+srcs-extra: $(srcdir)/ext/json/parser/parser.c \</div><div class='add'>+	    $(srcdir)/ext/date/zonetab.h \</div><div class='add'>+	    $(empty)</div><div class='add'>+</div><div class='add'>+LIB_SRCS = $(srcdir)/lib/unicode_normalize/tables.rb</div><div class='add'>+</div><div class='add'>+srcs-lib: $(LIB_SRCS)</div><div class='add'>+</div><div class='add'>+srcs-enc: $(ENC_MK)</div><div class='add'>+	$(ECHO) making srcs under enc</div><div class='add'>+	$(Q) $(MAKE) $(MAKE_ENC) srcs</div><div class='add'>+</div><div class='add'>+all-incs: incs {$(VPATH)}encdb.h {$(VPATH)}transdb.h</div><div class='add'>+incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \</div><div class='add'>+      {$(VPATH)}vm_call_iseq_optimized.inc $(srcdir)/revision.h \</div><div class='add'>+      $(REVISION_H) \</div><div class='add'>+      $(UNICODE_DATA_HEADERS) $(srcdir)/enc/jis/props.h \</div><div class='add'>+      {$(VPATH)}id.h {$(VPATH)}probes.dmyh</div><div class='add'>+</div><div class='add'>+insns: $(INSNS)</div><div class='add'>+</div><div class='add'>+id.h: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \</div><div class='add'>+		$(srcdir)/template/id.h.tmpl</div><div class='add'>+</div><div class='add'>+id.c: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.c.tmpl $(srcdir)/defs/id.def</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \</div><div class='add'>+		$(srcdir)/template/id.c.tmpl</div><div class='add'>+</div><div class='add'>+node_name.inc: {$(VPATH)}node.h</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) -n $(srcdir)/tool/node_name.rb &lt; $? &gt; $@</div><div class='add'>+</div><div class='add'>+encdb.h: $(PREP) $(srcdir)/tool/generic_erb.rb $(srcdir)/template/encdb.h.tmpl</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc</div><div class='add'>+</div><div class='add'>+transdb.h: $(PREP) srcs-enc $(srcdir)/tool/generic_erb.rb $(srcdir)/template/transdb.h.tmpl</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans</div><div class='add'>+</div><div class='add'>+enc/encinit.c: $(ENC_MK) $(srcdir)/enc/encinit.c.erb</div><div class='add'>+</div><div class='add'>+known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def</div><div class='add'>+</div><div class='add'>+vm_call_iseq_optimized.inc: $(srcdir)/tool/mk_call_iseq_optimized.rb</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/mk_call_iseq_optimized.rb &gt; $@</div><div class='add'>+</div><div class='add'>+$(MINIPRELUDE_C): $(COMPILE_PRELUDE)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -o $@ \</div><div class='add'>+		$(srcdir)/template/prelude.c.tmpl</div><div class='add'>+</div><div class='add'>+$(PRELUDE_C): $(COMPILE_PRELUDE) \</div><div class='add'>+	   $(PRELUDE_SCRIPTS)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \</div><div class='add'>+		$(srcdir)/template/prelude.c.tmpl $(PRELUDE_SCRIPTS)</div><div class='add'>+</div><div class='add'>+{$(VPATH)}golf_prelude.c: $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \</div><div class='add'>+		$(srcdir)/template/prelude.c.tmpl golf_prelude.rb</div><div class='add'>+</div><div class='add'>+MAINCPPFLAGS = $(ENABLE_DEBUG_ENV:yes=-DRUBY_DEBUG_ENV=1)</div><div class='add'>+</div><div class='add'>+$(MAINOBJ): $(srcdir)/$(MAINSRC)</div><div class='add'>+	$(ECHO) compiling $(srcdir)/$(MAINSRC)</div><div class='add'>+	$(Q) $(CC) $(MAINCPPFLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$(srcdir)/$(MAINSRC)</div><div class='add'>+</div><div class='add'>+{$(VPATH)}probes.dmyh: {$(srcdir)}probes.d $(srcdir)/tool/gen_dummy_probes.rb</div><div class='add'>+</div><div class='add'>+probes.dmyh:</div><div class='add'>+	$(BASERUBY) $(srcdir)/tool/gen_dummy_probes.rb $(srcdir)/probes.d &gt; $@</div><div class='add'>+</div><div class='add'>+probes.h: {$(VPATH)}probes.$(DTRACE_EXT)</div><div class='add'>+</div><div class='add'>+prereq: incs srcs preludes PHONY</div><div class='add'>+</div><div class='add'>+preludes: {$(VPATH)}prelude.c</div><div class='add'>+preludes: {$(VPATH)}miniprelude.c</div><div class='add'>+preludes: {$(srcdir)}golf_prelude.c</div><div class='add'>+</div><div class='add'>+$(srcdir)/revision.h:</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+$(REVISION_H): $(srcdir)/version.h $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)</div><div class='add'>+	-$(Q) $(BASERUBY) $(srcdir)/tool/file2lastrev.rb -q --revision.h "$(srcdir)" &gt; revision.tmp</div><div class='add'>+	$(Q)$(IFCHANGE) "--timestamp=$@" "$(srcdir)/revision.h" revision.tmp</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/ripper/ripper.c: $(srcdir)/parse.y id.h</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) VPATH=$${PWD-`pwd`} &amp;&amp; $(CHDIR) $(@D) &amp;&amp; \</div><div class='add'>+	sed /AUTOGENERATED/q depend | \</div><div class='add'>+	$(exec) $(MAKE) -f - $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) RM="$(RM)" top_srcdir=../.. srcdir=. VPATH="$${VPATH}" \</div><div class='add'>+		RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)"</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; $(exec) $(MAKE) -f prereq.mk $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. BASERUBY="$(BASERUBY)"</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/date/zonetab.h: $(srcdir)/ext/date/zonetab.list</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; $(exec) $(MAKE) -f prereq.mk $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. BASERUBY="$(BASERUBY)"</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \</div><div class='add'>+		$(srcdir)/tool/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.ac</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='add'>+	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(exec) $(MAKE) -f - $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F)</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/rbconfig/sizeof/limits.c: $(srcdir)/ext/rbconfig/sizeof/depend \</div><div class='add'>+		$(srcdir)/tool/generic_erb.rb $(srcdir)/template/limits.c.tmpl</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='add'>+	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(exec) $(MAKE) -f - $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F)</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/socket/constdefs.c: $(srcdir)/ext/socket/depend</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='add'>+	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(exec) $(MAKE) -f - $(mflags) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. RUBY="$(BASERUBY)"</div><div class='add'>+</div><div class='add'>+##</div><div class='add'>+</div><div class='add'>+run: fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BTESTRUBY) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='add'>+</div><div class='add'>+runruby: $(PROGRAM) PHONY</div><div class='add'>+	$(RUNRUBY) $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+parse: fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BTESTRUBY) --dump=parsetree_with_comment,insns $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+bisect: PHONY</div><div class='add'>+	$(srcdir)/tool/bisect.sh miniruby $(srcdir)</div><div class='add'>+</div><div class='add'>+bisect-ruby: PHONY</div><div class='add'>+	$(srcdir)/tool/bisect.sh ruby $(srcdir)</div><div class='add'>+</div><div class='add'>+COMPARE_RUBY = $(BASERUBY)</div><div class='add'>+ITEM =</div><div class='add'>+OPTS =</div><div class='add'>+</div><div class='add'>+# You can pass several options through OPTS environment variable.</div><div class='add'>+# $ make benchmark OPTS="--help" displays more detail.</div><div class='add'>+# for example,</div><div class='add'>+#  $ make benchmark COMPARE_RUBY="ruby-trunk" OPTS="-e ruby-2.2.2"</div><div class='add'>+# This command compares trunk and built-ruby and 2.2.2</div><div class='add'>+benchmark: miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY) -I$(srcdir)/lib -I. -I$(EXTOUT)/common --disable-gem; built-ruby::$(MINIRUBY) --disable-gem" \</div><div class='add'>+	            --pattern='bm_' --directory=$(srcdir)/benchmark $(OPTS)</div><div class='add'>+</div><div class='add'>+benchmark-each: miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY) -I$(srcdir)/lib -I. -I$(EXTOUT)/common --disable-gem; built-ruby::$(MINIRUBY) --disable-gem" \</div><div class='add'>+	            --pattern=$(ITEM) --directory=$(srcdir)/benchmark $(OPTS)</div><div class='add'>+</div><div class='add'>+tbench: miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY) -I$(srcdir)/lib -I. -I$(EXTOUT)/common --disable-gem; built-ruby::$(MINIRUBY) --disable-gem" \</div><div class='add'>+	            --pattern='bmx_' --directory=$(srcdir)/benchmark $(OPTS)</div><div class='add'>+</div><div class='add'>+run.gdb:</div><div class='add'>+	echo set breakpoint pending on         &gt; run.gdb</div><div class='add'>+	echo b ruby_debug_breakpoint          &gt;&gt; run.gdb</div><div class='add'>+	echo '# handle SIGINT nostop'         &gt;&gt; run.gdb</div><div class='add'>+	echo '# handle SIGPIPE nostop'        &gt;&gt; run.gdb</div><div class='add'>+	echo '# b rb_longjmp'                 &gt;&gt; run.gdb</div><div class='add'>+	echo source $(srcdir)/breakpoints.gdb &gt;&gt; run.gdb</div><div class='add'>+	echo source $(srcdir)/.gdbinit        &gt;&gt; run.gdb</div><div class='add'>+	echo 'set $$_exitcode = -999'         &gt;&gt; run.gdb</div><div class='add'>+	echo run                              &gt;&gt; run.gdb</div><div class='add'>+	echo 'if $$_exitcode != -999'         &gt;&gt; run.gdb</div><div class='add'>+	echo '  quit'                         &gt;&gt; run.gdb</div><div class='add'>+	echo end                              &gt;&gt; run.gdb</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+gdb: miniruby$(EXEEXT) run.gdb PHONY</div><div class='add'>+	gdb -x run.gdb --quiet --args $(MINIRUBY) $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+gdb-ruby: $(PROGRAM) run.gdb PHONY</div><div class='add'>+	$(Q) $(RUNRUBY_COMMAND) $(RUNRUBY_DEBUGGER) -- $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+LLDB_INIT = command script import -r $(srcdir)/misc/lldb_cruby.py</div><div class='add'>+</div><div class='add'>+lldb: miniruby$(EXEEXT) PHONY</div><div class='add'>+	lldb -o '$(LLDB_INIT)' miniruby$(EXEEXT) -- $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+lldb-ruby: $(PROGRAM) PHONY</div><div class='add'>+	lldb $(enable_shared:yes=-o 'target modules add ${LIBRUBY_SO}') -o '$(LLDB_INIT)' $(PROGRAM) -- $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+DISTPKGS = gzip,zip,all</div><div class='add'>+dist:</div><div class='add'>+	$(BASERUBY) $(srcdir)/tool/make-snapshot \</div><div class='add'>+	-srcdir=$(srcdir) -packages=$(DISTPKGS) \</div><div class='add'>+	-unicode-version=$(UNICODE_VERSION) \</div><div class='add'>+	tmp $(RELNAME)</div><div class='add'>+</div><div class='add'>+up:: update-remote</div><div class='add'>+</div><div class='add'>+up::</div><div class='add'>+	-$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY "$(REVISION_H)"</div><div class='add'>+</div><div class='add'>+up::</div><div class='add'>+	-$(Q)$(MAKE) $(mflags) Q=$(Q) after-update</div><div class='add'>+</div><div class='add'>+after-update:: extract-extlibs</div><div class='add'>+</div><div class='add'>+update-remote:: update-src update-download</div><div class='add'>+update-download:: update-unicode update-gems download-extlibs</div><div class='add'>+</div><div class='add'>+update-mspec:</div><div class='add'>+update-rubyspec:</div><div class='add'>+</div><div class='add'>+update-config_files: PHONY</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" tool/downloader.rb -d tool -e gnu \</div><div class='add'>+	    config.guess config.sub</div><div class='add'>+</div><div class='add'>+update-gems: PHONY</div><div class='add'>+	$(ECHO) Downloading bundled gem files...</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='add'>+	    -I./tool -rdownloader -answ \</div><div class='add'>+	    -e 'gem, ver = *$$F' \</div><div class='add'>+	    -e 'old = Dir.glob("gems/#{gem}-*.gem")' \</div><div class='add'>+	    -e 'gem = "#{gem}-#{ver}.gem"' \</div><div class='add'>+	    -e 'Downloader::RubyGems.download(gem, "gems", nil) and' \</div><div class='add'>+	    -e '(old.delete("gems/#{gem}"); !old.empty?) and' \</div><div class='add'>+	    -e 'File.unlink(*old) and' \</div><div class='add'>+	    -e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})' \</div><div class='add'>+	    gems/bundled_gems</div><div class='add'>+</div><div class='add'>+extract-gems: PHONY</div><div class='add'>+	$(ECHO) Extracting bundled gem files...</div><div class='add'>+	$(Q) $(RUNRUBY) -C "$(srcdir)/gems" \</div><div class='add'>+	    -I../tool -rgem-unpack -answ \</div><div class='add'>+	    -e 'gem, ver = *$$F' \</div><div class='add'>+	    -e 'Gem.unpack("#{gem}-#{ver}.gem")' \</div><div class='add'>+	    bundled_gems</div><div class='add'>+</div><div class='add'>+update-bundled_gems: PHONY</div><div class='add'>+	$(Q) $(RUNRUBY) -rrubygems \</div><div class='add'>+	    -pla \</div><div class='add'>+	    -e '$$_=Gem::SpecFetcher.fetcher.detect(:latest) {'"|s|" \</div><div class='add'>+	    -e   'if s.platform=="ruby"&amp;&amp;s.name==$$F[0]' \</div><div class='add'>+	    -e     'break [s.name, s.version, *$$F[2..-1]].join(" ")' \</div><div class='add'>+	    -e   'end' \</div><div class='add'>+	    -e '}' \</div><div class='add'>+	     "$(srcdir)/gems/bundled_gems" | \</div><div class='add'>+	"$(IFCHANGE)" "$(srcdir)/gems/bundled_gems" -</div><div class='add'>+</div><div class='add'>+test-bundled-gems-precheck: $(arch)-fake.rb programs</div><div class='add'>+</div><div class='add'>+test-bundled-gems-fetch: $(PREP)</div><div class='add'>+	$(Q) $(BASERUBY) -C $(srcdir)/gems ../tool/fetch-bundled_gems.rb src bundled_gems</div><div class='add'>+</div><div class='add'>+test-bundled-gems-prepare: test-bundled-gems-precheck test-bundled-gems-fetch</div><div class='add'>+	$(XRUBY) -C "$(srcdir)" bin/gem install --no-ri --no-rdoc \</div><div class='add'>+		--install-dir .bundle --conservative "bundler" "minitest:~&gt; 5" 'test-unit' 'rake' 'hoe' 'yard' 'pry' 'packnga'</div><div class='add'>+</div><div class='add'>+PREPARE_BUNDLED_GEMS = test-bundled-gems-prepare</div><div class='add'>+test-bundled-gems: $(TEST_RUNNABLE)-test-bundled-gems</div><div class='add'>+yes-test-bundled-gems: test-bundled-gems-run</div><div class='add'>+no-test-bundled-gems:</div><div class='add'>+test-bundled-gems-run: $(PREPARE_BUNDLED_GEMS)</div><div class='add'>+</div><div class='add'>+UNICODE_FILES = $(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/CompositionExclusions.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/NormalizationTest.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/CaseFolding.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/SpecialCasing.txt \</div><div class='add'>+		$(empty)</div><div class='add'>+</div><div class='add'>+UNICODE_PROPERTY_FILES =  \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/Blocks.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/DerivedAge.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/DerivedCoreProperties.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/PropList.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/PropertyAliases.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/PropertyValueAliases.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/Scripts.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/auxiliary/GraphemeBreakProperty.txt \</div><div class='add'>+		$(empty)</div><div class='add'>+</div><div class='add'>+UNICODE_EMOJI_FILES = \</div><div class='add'>+		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-data.txt \</div><div class='add'>+		$(empty)</div><div class='add'>+</div><div class='add'>+update-unicode: $(UNICODE_FILES)</div><div class='add'>+</div><div class='add'>+CACHE_DIR = $(srcdir)/.downloaded-cache</div><div class='add'>+UNICODE_DOWNLOAD = \</div><div class='add'>+	$(BASERUBY) $(srcdir)/tool/downloader.rb \</div><div class='add'>+	    --cache-dir=$(CACHE_DIR) \</div><div class='add'>+	    -d $(UNICODE_SRC_DATA_DIR) \</div><div class='add'>+	    -p $(UNICODE_VERSION)/ucd \</div><div class='add'>+	    -e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode</div><div class='add'>+UNICODE_EMOJI_DOWNLOAD = \</div><div class='add'>+	$(BASERUBY) $(srcdir)/tool/downloader.rb \</div><div class='add'>+	    --cache-dir=$(CACHE_DIR) \</div><div class='add'>+	    -d $(UNICODE_SRC_EMOJI_DATA_DIR) \</div><div class='add'>+	    -p emoji/$(UNICODE_EMOJI_VERSION) \</div><div class='add'>+	    -e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode</div><div class='add'>+</div><div class='add'>+$(UNICODE_PROPERTY_FILES): update-unicode-property-files</div><div class='add'>+update-unicode-property-files:</div><div class='add'>+	$(ECHO) Downloading Unicode $(UNICODE_VERSION) property files...</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)/auxiliary"</div><div class='add'>+	$(Q) $(UNICODE_DOWNLOAD) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+	$(ECHO) Downloading Unicode emoji $(UNICODE_EMOJI_VERSION) files...</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_EMOJI_DATA_DIR)"</div><div class='add'>+	$(Q) $(UNICODE_EMOJI_DOWNLOAD) $(UNICODE_EMOJI_FILES)</div><div class='add'>+</div><div class='add'>+$(UNICODE_FILES): update-unicode-files</div><div class='add'>+update-unicode-files:</div><div class='add'>+	$(ECHO) Downloading Unicode $(UNICODE_VERSION) data files...</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)"</div><div class='add'>+	$(Q) $(UNICODE_DOWNLOAD) $(UNICODE_FILES)</div><div class='add'>+</div><div class='add'>+$(srcdir)/$(HAVE_BASERUBY:yes=lib/unicode_normalize/tables.rb): \</div><div class='add'>+	$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time</div><div class='add'>+</div><div class='add'>+$(UNICODE_SRC_DATA_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=.unicode-tables.time): \</div><div class='add'>+	$(UNICODE_FILES) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+</div><div class='add'>+touch-unicode-files:</div><div class='add'>+	$(MAKEDIRS) $(UNICODE_SRC_DATA_DIR)</div><div class='add'>+	touch $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time $(UNICODE_DATA_HEADERS)</div><div class='add'>+</div><div class='add'>+$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \</div><div class='add'>+		$(srcdir)/template/unicode_norm_gen.tmpl \</div><div class='add'>+		$(ALWAYS_UPDATE_UNICODE:yes=update-unicode)</div><div class='add'>+	$(Q) $(MAKE) $(@D)</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb \</div><div class='add'>+		-c -t$@ -o $(srcdir)/lib/unicode_normalize/tables.rb \</div><div class='add'>+		-I $(srcdir) \</div><div class='add'>+		$(srcdir)/template/unicode_norm_gen.tmpl \</div><div class='add'>+		$(UNICODE_DATA_DIR) lib/unicode_normalize</div><div class='add'>+</div><div class='add'>+$(UNICODE_SRC_DATA_DIR):</div><div class='add'>+	$(Q) $(exec) $(MAKEDIRS) $@ || exit &amp;&amp; echo $(MAKE)</div><div class='add'>+</div><div class='add'>+$(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=name2ctype.h): \</div><div class='add'>+		$(srcdir)/tool/enc-unicode.rb \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='add'>+		$(UNICODE_PROPERTY_FILES)</div><div class='add'>+</div><div class='add'>+$(UNICODE_HDR_DIR)/name2ctype.h:</div><div class='add'>+	$(MAKEDIRS) $(@D)</div><div class='add'>+	$(BOOTSTRAPRUBY) $(srcdir)/tool/enc-unicode.rb --header \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR) $(UNICODE_SRC_EMOJI_DATA_DIR) &gt; $@.new</div><div class='add'>+	$(MV) $@.new $@</div><div class='add'>+</div><div class='add'>+# the next non-comment line was:</div><div class='add'>+# $(UNICODE_HDR_DIR)/casefold.h: $(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+# but was changed to make sure CI works on systems that don't have gperf</div><div class='add'>+unicode-up: $(UNICODE_DATA_HEADERS)</div><div class='add'>+</div><div class='add'>+$(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=casefold.h): \</div><div class='add'>+		$(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/SpecialCasing.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/CaseFolding.txt</div><div class='add'>+</div><div class='add'>+$(UNICODE_HDR_DIR)/casefold.h:</div><div class='add'>+	$(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) $(BASERUBY) $(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+		--output-file=$@ \</div><div class='add'>+		--mapping-data-directory=$(UNICODE_SRC_DATA_DIR)</div><div class='add'>+</div><div class='add'>+download-extlibs:</div><div class='add'>+	$(Q) $(BASERUBY) -C $(srcdir) -w tool/extlibs.rb --download ext</div><div class='add'>+</div><div class='add'>+extract-extlibs:</div><div class='add'>+	$(Q) $(BASERUBY) -C $(srcdir) -w tool/extlibs.rb --all ext</div><div class='add'>+</div><div class='add'>+clean-extlibs:</div><div class='add'>+	$(Q) $(RMALL) $(srcdir)/.downloaded-cache</div><div class='add'>+</div><div class='add'>+clean-gems:</div><div class='add'>+	$(Q) $(RM) gems/*.gem</div><div class='add'>+</div><div class='add'>+CLEAN_CACHE = clean-extlibs</div><div class='add'>+</div><div class='add'>+info: info-program info-libruby_a info-libruby_so info-arch</div><div class='add'>+info-program: PHONY</div><div class='add'>+	@echo PROGRAM=$(PROGRAM)</div><div class='add'>+info-libruby_a: PHONY</div><div class='add'>+	@echo LIBRUBY_A=$(LIBRUBY_A)</div><div class='add'>+info-libruby_so: PHONY</div><div class='add'>+	@echo LIBRUBY_SO=$(LIBRUBY_SO)</div><div class='add'>+info-arch: PHONY</div><div class='add'>+	@echo arch=$(arch)</div><div class='add'>+</div><div class='add'>+change: PHONY</div><div class='add'>+	$(BASERUBY) -C "$(srcdir)" ./tool/change_maker.rb $(CHANGES) &gt; change.log</div><div class='add'>+</div><div class='add'>+exam: check test-spec</div><div class='add'>+</div><div class='add'>+love: sudo-precheck up all test exam install</div><div class='add'>+	@echo love is all you need</div><div class='add'>+</div><div class='add'>+great: exam</div><div class='add'>+</div><div class='add'>+yes-test-all no-test-all: sudo-precheck</div><div class='add'>+</div><div class='add'>+sudo-precheck: PHONY</div><div class='add'>+	@$(SUDO) echo &gt; $(NULL)</div><div class='add'>+</div><div class='add'>+update-man-date: PHONY</div><div class='add'>+	-$(Q) $(BASERUBY) -I"$(srcdir)/tool" -rvcs -i -p \</div><div class='add'>+	-e 'BEGIN{@vcs=VCS.detect(ARGV.shift)}' \</div><div class='add'>+	-e '$$_.sub!(/^(\.Dd ).*/){$$1+@vcs.modified(ARGF.path).strftime("%B %d, %Y")}' \</div><div class='add'>+	"$(srcdir)" "$(srcdir)"/man/*.1</div><div class='add'>+</div><div class='add'>+help: PHONY</div><div class='add'>+	$(MESSAGE_BEGIN) \</div><div class='add'>+	"                Makefile of Ruby" \</div><div class='add'>+	"" \</div><div class='add'>+	"targets:" \</div><div class='add'>+	"  all (default):       builds all of below" \</div><div class='add'>+	"  miniruby:            builds only miniruby" \</div><div class='add'>+	"  encs:                builds encodings" \</div><div class='add'>+	"  exts:                builds extensions" \</div><div class='add'>+	"  main:                builds encodings, extensions and ruby" \</div><div class='add'>+	"  docs:                builds documents" \</div><div class='add'>+	"  install-capi:        builds C API documents" \</div><div class='add'>+	"  run:                 runs test.rb by miniruby" \</div><div class='add'>+	"  runruby:             runs test.rb by ruby you just built" \</div><div class='add'>+	"  gdb:                 runs test.rb by miniruby under gdb" \</div><div class='add'>+	"  gdb-ruby:            runs test.rb by ruby under gdb" \</div><div class='add'>+	"  check:               equals make test test-all" \</div><div class='add'>+	"  exam:                equals make check test-spec" \</div><div class='add'>+	"  test:                ruby core tests" \</div><div class='add'>+	"  test-all:            all ruby tests [TESTOPTS=-j4 TESTS=&lt;test files&gt;]" \</div><div class='add'>+	"  test-spec:           run the Ruby spec suite" \</div><div class='add'>+	"  test-rubyspec:       same as test-spec" \</div><div class='add'>+	"  test-bundled-gems:   run the test suite of bundled gems" \</div><div class='add'>+	"  up:                  update local copy and autogenerated files" \</div><div class='add'>+	"  benchmark:           benchmark this ruby and COMPARE_RUBY." \</div><div class='add'>+	"  gcbench:             gc benchmark [GCBENCH_ITEM=&lt;item_name&gt;]" \</div><div class='add'>+	"  gcbench-rdoc:        gc benchmark with GCBENCH_ITEM=rdoc" \</div><div class='add'>+	"  install:             install all ruby distributions" \</div><div class='add'>+	"  install-nodoc:       install without rdoc" \</div><div class='add'>+	"  install-cross:       install cross compiling stuff" \</div><div class='add'>+	"  clean:               clean for tarball" \</div><div class='add'>+	"  distclean:           clean for repository" \</div><div class='add'>+	"  change:              make change log template" \</div><div class='add'>+	"  golf:                for golfers" \</div><div class='add'>+	"" \</div><div class='add'>+	"see DeveloperHowto for more detail: " \</div><div class='add'>+	"  https://bugs.ruby-lang.org/projects/ruby/wiki/DeveloperHowto" \</div><div class='add'>+	$(MESSAGE_END)</div><div class='add'>+</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}addr2line.c</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}addr2line.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+array.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}array.c</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+bignum.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}bignum.c</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+class.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+class.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+class.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+class.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+class.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}class.c</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}compar.c</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+compile.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+compile.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+compile.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}compile.c</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}opt_sc.inc</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}optinsn.inc</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}optunifs.inc</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}re.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+complex.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}complex.c</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+cont.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+cont.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+cont.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+cont.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+cont.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}cont.c</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+debug.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+debug.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+debug.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+debug.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+debug.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}debug.c</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+debug_counter.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+debug_counter.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.c</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+dir.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}dir.c</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+dln.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}dln.c</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+dln_find.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}dln_find.c</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+dmydln.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}dmydln.c</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+dmyenc.$(OBJEXT): {$(VPATH)}dmyenc.c</div><div class='ctx'> dmyext.$(OBJEXT): {$(VPATH)}dmyext.c</div><div class='del'>-enum.$(OBJEXT): {$(VPATH)}enum.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}node.h {$(VPATH)}util.h</div><div class='del'>-error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}env.h {$(VPATH)}st.h</div><div class='del'>-eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}node.h {$(VPATH)}env.h {$(VPATH)}util.h \</div><div class='del'>-  {$(VPATH)}rubysig.h {$(VPATH)}st.h {$(VPATH)}dln.h</div><div class='del'>-file.$(OBJEXT): {$(VPATH)}file.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubyio.h {$(VPATH)}rubysig.h {$(VPATH)}util.h \</div><div class='del'>-  {$(VPATH)}dln.h</div><div class='del'>-gc.$(OBJEXT): {$(VPATH)}gc.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubysig.h {$(VPATH)}st.h {$(VPATH)}node.h \</div><div class='del'>-  {$(VPATH)}env.h {$(VPATH)}re.h {$(VPATH)}regex.h</div><div class='del'>-hash.$(OBJEXT): {$(VPATH)}hash.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}st.h {$(VPATH)}util.h {$(VPATH)}rubysig.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}inits.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-io.$(OBJEXT): {$(VPATH)}io.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubyio.h {$(VPATH)}rubysig.h  {$(VPATH)}util.h \</div><div class='del'>-  {$(VPATH)}env.h</div><div class='del'>-main.$(OBJEXT): {$(VPATH)}main.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-marshal.$(OBJEXT): {$(VPATH)}marshal.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubyio.h {$(VPATH)}st.h {$(VPATH)}util.h</div><div class='del'>-math.$(OBJEXT): {$(VPATH)}math.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-numeric.$(OBJEXT): {$(VPATH)}numeric.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}env.h {$(VPATH)}defines.h {$(VPATH)}intern.h \</div><div class='del'>-  {$(VPATH)}missing.h</div><div class='del'>-object.$(OBJEXT): {$(VPATH)}object.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}st.h {$(VPATH)}util.h</div><div class='del'>-pack.$(OBJEXT): {$(VPATH)}pack.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-parse.$(OBJEXT): {$(VPATH)}parse.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}env.h {$(VPATH)}node.h {$(VPATH)}st.h \</div><div class='del'>-  {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c</div><div class='del'>-prec.$(OBJEXT): {$(VPATH)}prec.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-process.$(OBJEXT): {$(VPATH)}process.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubysig.h {$(VPATH)}st.h</div><div class='del'>-random.$(OBJEXT): {$(VPATH)}random.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-range.$(OBJEXT): {$(VPATH)}range.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-re.$(OBJEXT): {$(VPATH)}re.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}re.h {$(VPATH)}regex.h</div><div class='del'>-regex.$(OBJEXT): {$(VPATH)}regex.c config.h {$(VPATH)}regex.h</div><div class='del'>-ruby.$(OBJEXT): {$(VPATH)}ruby.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}dln.h {$(VPATH)}node.h {$(VPATH)}util.h</div><div class='del'>-signal.$(OBJEXT): {$(VPATH)}signal.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}rubysig.h</div><div class='del'>-sprintf.$(OBJEXT): {$(VPATH)}sprintf.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-st.$(OBJEXT): {$(VPATH)}st.c config.h {$(VPATH)}st.h</div><div class='del'>-string.$(OBJEXT): {$(VPATH)}string.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}re.h {$(VPATH)}regex.h</div><div class='del'>-struct.$(OBJEXT): {$(VPATH)}struct.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-time.$(OBJEXT): {$(VPATH)}time.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h</div><div class='del'>-util.$(OBJEXT): {$(VPATH)}util.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}util.h</div><div class='del'>-variable.$(OBJEXT): {$(VPATH)}variable.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}env.h {$(VPATH)}node.h {$(VPATH)}st.h {$(VPATH)}util.h</div><div class='del'>-version.$(OBJEXT): {$(VPATH)}version.c {$(VPATH)}ruby.h config.h \</div><div class='del'>-  {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \</div><div class='del'>-  {$(VPATH)}version.h</div><div class='del'>-</div><div class='del'>-dist: $(PROGRAM)</div><div class='del'>-	$(RUNRUBY) $(srcdir)/distruby.rb</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}enc/ascii.c</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}enc/trans/newline.c</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}transcode_data.h</div><div class='add'>+enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/casefold.h</div><div class='add'>+enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/name2ctype.h</div><div class='add'>+enc/unicode.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}enc/unicode.c</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}enc/us_ascii.c</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}enc/utf_8.c</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+encoding.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}encoding.c</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+enum.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}enum.c</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+enumerator.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}enumerator.c</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+error.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+error.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+error.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+error.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+error.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}error.c</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}known_errors.inc</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+eval.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+eval.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+eval.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+eval.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+eval.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+eval.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}eval.c</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}eval_error.c</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}eval_jump.c</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}probes_helper.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}vm.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+file.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}file.c</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+gc.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+gc.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+gc.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+gc.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+gc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}gc.c</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}re.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+golf_prelude.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+goruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}goruby.c</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}main.c</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+hash.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}hash.c</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+inits.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+inits.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}inits.c</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+io.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}io.c</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+iseq.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+iseq.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+iseq.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+iseq.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+iseq.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+iseq.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}iseq.c</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}node_name.inc</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+load.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+load.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+load.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+load.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}load.c</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+loadpath.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+loadpath.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+loadpath.$(OBJEXT): $(top_srcdir)/version.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}loadpath.c</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}verconf.h</div><div class='add'>+localeinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+localeinit.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}localeinit.c</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+main.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+main.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}main.c</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+marshal.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}marshal.c</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+math.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}math.c</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+miniinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}miniinit.c</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+miniprelude.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+miniprelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='add'>+node.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+node.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+node.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+node.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+node.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}node.c</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+numeric.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}numeric.c</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+object.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}object.c</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+pack.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}pack.c</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+parse.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}defs/keywords</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}lex.c</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}parse.c</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}parse.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}parse.y</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+prelude.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+prelude.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}prelude.c</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+proc.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+proc.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+proc.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+proc.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+proc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+proc.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}proc.c</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+process.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+process.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+process.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+process.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+process.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}process.c</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+random.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}random.c</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}siphash.c</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}siphash.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+range.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}range.c</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+rational.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}rational.c</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+re.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}re.c</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}re.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+regcomp.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}regcomp.c</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}regparse.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regenc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}regenc.c</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regerror.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}regerror.c</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regexec.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}regexec.c</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regparse.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}regparse.c</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}regparse.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regsyntax.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}regsyntax.c</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.c</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.h</div><div class='add'>+ruby.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+ruby.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+ruby.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+ruby.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+ruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}ruby.c</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+safe.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+safe.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+safe.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+safe.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+safe.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+safe.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}safe.c</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+setproctitle.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+setproctitle.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}setproctitle.c</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+signal.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+signal.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+signal.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+signal.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+signal.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}signal.c</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+sprintf.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}re.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}sprintf.c</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}vsnprintf.c</div><div class='add'>+st.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+st.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+st.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+st.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+st.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}st.c</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+strftime.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}strftime.c</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}timev.h</div><div class='add'>+string.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}crypt.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}re.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}string.c</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}strlcat.c</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}strlcpy.c</div><div class='add'>+struct.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+struct.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+struct.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+struct.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+struct.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}struct.c</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+symbol.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}id.c</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}id_table.c</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}symbol.c</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+thread.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+thread.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+thread.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+thread.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+thread.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread.c</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).c</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread_sync.c</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}timev.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+time.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}time.c</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}timev.h</div><div class='add'>+transcode.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}transcode.c</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}transcode_data.h</div><div class='add'>+util.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+util.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}util.c</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+variable.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+variable.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+variable.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+variable.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+variable.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}variable.c</div><div class='add'>+version.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+version.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/revision.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/version.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}version.c</div><div class='add'>+vm.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+vm.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+vm.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+vm.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+vm.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}insns.def</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}probes_helper.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm.inc</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_args.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_call_iseq_optimized.inc</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_eval.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_exec.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_exec.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_method.c</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vmtc.inc</div><div class='add'>+vm_backtrace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}vm_backtrace.c</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm_dump.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+vm_dump.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+vm_dump.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+vm_dump.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm_dump.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+vm_dump.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}addr2line.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm_trace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+vm_trace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+vm_trace.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+vm_trace.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm_trace.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/compar.c b/compar.c<br/>index 1488b2c65d..02529c9960 100644<br/>--- a/<a href='/ruby.git/tree/compar.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>compar.c</a><br/>+++ b/<a href='/ruby.git/tree/compar.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>compar.c</a></div><div class='hunk'>@@ -3,209 +3,226 @@</div><div class='ctx'>   compar.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Thu Aug 26 14:39:48 JST 1993</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "id.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_mComparable;</div><div class='ctx'> </div><div class='del'>-static ID cmp;</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-rb_cmpint(val, a, b)</div><div class='del'>-    VALUE val, a, b;</div><div class='add'>+static VALUE</div><div class='add'>+rb_cmp(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (NIL_P(val)) {</div><div class='del'>-	rb_cmperr(a, b);</div><div class='del'>-    }</div><div class='del'>-    if (FIXNUM_P(val)) return FIX2INT(val);</div><div class='del'>-    if (TYPE(val) == T_BIGNUM) {</div><div class='del'>-	if (RBIGNUM(val)-&gt;sign) return 1;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    if (RTEST(rb_funcall(val, '&gt;', 1, INT2FIX(0)))) return 1;</div><div class='del'>-    if (RTEST(rb_funcall(val, '&lt;', 1, INT2FIX(0)))) return -1;</div><div class='del'>-    return 0;</div><div class='add'>+    return rb_funcallv(x, idCmp, 1, &amp;y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_cmperr(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_cmperr(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    const char *classname;</div><div class='add'>+    VALUE classname;</div><div class='ctx'> </div><div class='del'>-    if (SPECIAL_CONST_P(y)) {</div><div class='del'>-	y = rb_inspect(y);</div><div class='del'>-	classname = StringValuePtr(y);</div><div class='add'>+    if (SPECIAL_CONST_P(y) || BUILTIN_TYPE(y) == T_FLOAT) {</div><div class='add'>+	classname = rb_inspect(y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	classname = rb_obj_classname(y);</div><div class='add'>+	classname = rb_obj_class(y);</div><div class='ctx'>     }</div><div class='del'>-    rb_raise(rb_eArgError, "comparison of %s with %s failed",</div><div class='del'>-	     rb_obj_classname(x), classname);</div><div class='add'>+    rb_raise(rb_eArgError, "comparison of %"PRIsVALUE" with %"PRIsVALUE" failed",</div><div class='add'>+	     rb_obj_class(x), classname);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define cmperr() (rb_cmperr(x, y), Qnil)</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-cmp_eq(a)</div><div class='del'>-    VALUE *a;</div><div class='add'>+invcmp_recursive(VALUE x, VALUE y, int recursive)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(a[0], cmp, 1, a[1]);</div><div class='add'>+    if (recursive) return Qnil;</div><div class='add'>+    return rb_cmp(y, x);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(c)) return Qnil;</div><div class='del'>-    if (rb_cmpint(c, a[0], a[1]) == 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+VALUE</div><div class='add'>+rb_invcmp(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE invcmp = rb_exec_recursive(invcmp_recursive, x, y);</div><div class='add'>+    if (invcmp == Qundef || NIL_P(invcmp)) {</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	int result = -rb_cmpint(invcmp, x, y);</div><div class='add'>+	return INT2FIX(result);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_failed()</div><div class='add'>+cmp_eq_recursive(VALUE arg1, VALUE arg2, int recursive)</div><div class='ctx'> {</div><div class='del'>-    return Qnil;</div><div class='add'>+    if (recursive) return Qnil;</div><div class='add'>+    return rb_cmp(arg1, arg2);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj == other    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj == other    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  method, returning true if it returns 0. Also returns true if</div><div class='ctx'>  *  _obj_ and _other_ are the same object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_equal(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_equal(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE a[2];</div><div class='del'>-</div><div class='add'>+    VALUE c;</div><div class='ctx'>     if (x == y) return Qtrue;</div><div class='ctx'> </div><div class='del'>-    a[0] = x; a[1] = y;</div><div class='del'>-    return rb_rescue(cmp_eq, (VALUE)a, cmp_failed, 0);</div><div class='add'>+    c = rb_exec_recursive_paired_outer(cmp_eq_recursive, x, y, y);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(c)) return Qfalse;</div><div class='add'>+    if (rb_cmpint(c, x, y) == 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cmpint(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_cmpint(rb_cmp(x, y), x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj &gt; other    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj &gt; other    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  method, returning true if it returns 1.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_gt(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_gt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(c)) return cmperr();</div><div class='del'>-    if (rb_cmpint(c, x, y) &gt; 0) return Qtrue;</div><div class='add'>+    if (cmpint(x, y) &gt; 0) return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj &gt;= other    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj &gt;= other    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  method, returning true if it returns 0 or 1.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_ge(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_ge(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(c)) return cmperr();</div><div class='del'>-    if (rb_cmpint(c, x, y) &gt;= 0) return Qtrue;</div><div class='add'>+    if (cmpint(x, y) &gt;= 0) return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj &lt; other    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj &lt; other    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  method, returning true if it returns -1.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_lt(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_lt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(c)) return cmperr();</div><div class='del'>-    if (rb_cmpint(c, x, y) &lt; 0) return Qtrue;</div><div class='add'>+    if (cmpint(x, y) &lt; 0) return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj &lt;= other    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj &lt;= other    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  method, returning true if it returns -1 or 0.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_le(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_le(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(c)) return cmperr();</div><div class='del'>-    if (rb_cmpint(c, x, y) &lt;= 0) return Qtrue;</div><div class='add'>+    if (cmpint(x, y) &lt;= 0) return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj.between?(min, max)    =&gt; true or false</div><div class='del'>- *  </div><div class='add'>+ *     obj.between?(min, max)    -&gt; true or false</div><div class='add'>+ *</div><div class='ctx'>  *  Returns &lt;code&gt;false&lt;/code&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  &lt;i&gt;min&lt;/i&gt; is less than zero or if &lt;i&gt;anObject&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='ctx'>  *  &lt;i&gt;max&lt;/i&gt; is greater than zero, &lt;code&gt;true&lt;/code&gt; otherwise.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     3.between?(1, 5)               #=&gt; true</div><div class='ctx'>  *     6.between?(1, 5)               #=&gt; false</div><div class='ctx'>  *     'cat'.between?('ant', 'dog')   #=&gt; true</div><div class='ctx'>  *     'gnu'.between?('ant', 'dog')   #=&gt; false</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_between(x, min, max)</div><div class='del'>-    VALUE x, min, max;</div><div class='add'>+cmp_between(VALUE x, VALUE min, VALUE max)</div><div class='ctx'> {</div><div class='del'>-    if (RTEST(cmp_lt(x, min))) return Qfalse;</div><div class='del'>-    if (RTEST(cmp_gt(x, max))) return Qfalse;</div><div class='add'>+    if (cmpint(x, min) &lt; 0) return Qfalse;</div><div class='add'>+    if (cmpint(x, max) &gt; 0) return Qfalse;</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.clamp(min, max) -&gt;  obj</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;i&gt;min&lt;/i&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt; &lt;i&gt;min&lt;/i&gt; is less</div><div class='add'>+ * than zero, &lt;i&gt;max&lt;/i&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt; &lt;i&gt;max&lt;/i&gt; is</div><div class='add'>+ * greater than zero and &lt;i&gt;obj&lt;/i&gt; otherwise.</div><div class='add'>+ *</div><div class='add'>+ *     12.clamp(0, 100)         #=&gt; 12</div><div class='add'>+ *     523.clamp(0, 100)        #=&gt; 100</div><div class='add'>+ *     -3.123.clamp(0, 100)     #=&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *     'd'.clamp('a', 'f')      #=&gt; 'd'</div><div class='add'>+ *     'z'.clamp('a', 'f')      #=&gt; 'f'</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+cmp_clamp(VALUE x, VALUE min, VALUE max)</div><div class='add'>+{</div><div class='add'>+    int c;</div><div class='add'>+</div><div class='add'>+    if (cmpint(min, max) &gt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "min argument must be smaller than max argument");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    c = cmpint(x, min);</div><div class='add'>+    if (c == 0) return x;</div><div class='add'>+    if (c &lt; 0) return min;</div><div class='add'>+    c = cmpint(x, max);</div><div class='add'>+    if (c &gt; 0) return max;</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  The &lt;code&gt;Comparable&lt;/code&gt; mixin is used by classes whose objects</div><div class='ctx'>  *  may be ordered. The class must define the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator,</div><div class='ctx'>  *  which compares the receiver against another object, returning -1, 0,</div><div class='ctx'>  *  or +1 depending on whether the receiver is less than, equal to, or</div><div class='del'>- *  greater than the other object. &lt;code&gt;Comparable&lt;/code&gt; uses</div><div class='add'>+ *  greater than the other object. If the other object is not comparable</div><div class='add'>+ *  then the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator should return nil.</div><div class='add'>+ *  &lt;code&gt;Comparable&lt;/code&gt; uses</div><div class='ctx'>  *  &lt;code&gt;&lt;=&gt;&lt;/code&gt; to implement the conventional comparison operators</div><div class='ctx'>  *  (&lt;code&gt;&lt;&lt;/code&gt;, &lt;code&gt;&lt;=&lt;/code&gt;, &lt;code&gt;==&lt;/code&gt;, &lt;code&gt;&gt;=&lt;/code&gt;,</div><div class='ctx'>  *  and &lt;code&gt;&gt;&lt;/code&gt;) and the method &lt;code&gt;between?&lt;/code&gt;.</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     class SizeMatters</div><div class='ctx'>  *       include Comparable</div><div class='ctx'>  *       attr :str</div><div class='del'>- *       def &lt;=&gt;(anOther)</div><div class='del'>- *         str.size &lt;=&gt; anOther.str.size</div><div class='add'>+ *       def &lt;=&gt;(other)</div><div class='add'>+ *         str.size &lt;=&gt; other.str.size</div><div class='ctx'>  *       end</div><div class='ctx'>  *       def initialize(str)</div><div class='ctx'>  *         @str = str</div><div class='hunk'>@@ -214,23 +231,26 @@ cmp_between(x, min, max)</div><div class='ctx'>  *         @str</div><div class='ctx'>  *       end</div><div class='ctx'>  *     end</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     s1 = SizeMatters.new("Z")</div><div class='ctx'>  *     s2 = SizeMatters.new("YY")</div><div class='ctx'>  *     s3 = SizeMatters.new("XXX")</div><div class='ctx'>  *     s4 = SizeMatters.new("WWWW")</div><div class='ctx'>  *     s5 = SizeMatters.new("VVVVV")</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  *     s1 &lt; s2                       #=&gt; true</div><div class='ctx'>  *     s4.between?(s1, s3)           #=&gt; false</div><div class='ctx'>  *     s4.between?(s3, s5)           #=&gt; true</div><div class='ctx'>  *     [ s3, s2, s5, s4, s1 ].sort   #=&gt; [Z, YY, XXX, WWWW, VVVVV]</div><div class='del'>- *     </div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-Init_Comparable()</div><div class='add'>+Init_Comparable(void)</div><div class='ctx'> {</div><div class='add'>+#undef rb_intern</div><div class='add'>+#define rb_intern(str) rb_intern_const(str)</div><div class='add'>+</div><div class='ctx'>     rb_mComparable = rb_define_module("Comparable");</div><div class='ctx'>     rb_define_method(rb_mComparable, "==", cmp_equal, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "&gt;", cmp_gt, 1);</div><div class='hunk'>@@ -238,6 +258,5 @@ Init_Comparable()</div><div class='ctx'>     rb_define_method(rb_mComparable, "&lt;", cmp_lt, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "&lt;=", cmp_le, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "between?", cmp_between, 2);</div><div class='del'>-</div><div class='del'>-    cmp = rb_intern("&lt;=&gt;");</div><div class='add'>+    rb_define_method(rb_mComparable, "clamp", cmp_clamp, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/compile.c b/compile.c<br/>new file mode 100644<br/>index 0000000000..2c10d151f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/compile.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>compile.c</a></div><div class='hunk'>@@ -0,0 +1,9599 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  compile.c - ruby node tree -&gt; VM instruction sequence</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: 04/01/01 03:42:15 JST</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2004-2007 Koichi Sasada</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "ruby/re.h"</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+</div><div class='add'>+#define USE_INSN_STACK_INCREASE 1</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "iseq.h"</div><div class='add'>+#include "insns.inc"</div><div class='add'>+#include "insns_info.inc"</div><div class='add'>+#include "id_table.h"</div><div class='add'>+#include "gc.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_DLADDR</div><div class='add'>+# include &lt;dlfcn.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef RUBY_UNTYPED_DATA_WARNING</div><div class='add'>+#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='add'>+</div><div class='add'>+#define ISEQ_TYPE_ONCE_GUARD ISEQ_TYPE_DEFINED_GUARD</div><div class='add'>+</div><div class='add'>+#define FIXNUM_INC(n, i) ((n)+(INT2FIX(i)&amp;~FIXNUM_FLAG))</div><div class='add'>+#define FIXNUM_OR(n, i) ((n)|INT2FIX(i))</div><div class='add'>+</div><div class='add'>+typedef struct iseq_link_element {</div><div class='add'>+    enum {</div><div class='add'>+	ISEQ_ELEMENT_LABEL,</div><div class='add'>+	ISEQ_ELEMENT_INSN,</div><div class='add'>+	ISEQ_ELEMENT_ADJUST,</div><div class='add'>+	ISEQ_ELEMENT_TRACE</div><div class='add'>+    } type;</div><div class='add'>+    struct iseq_link_element *next;</div><div class='add'>+    struct iseq_link_element *prev;</div><div class='add'>+} LINK_ELEMENT;</div><div class='add'>+</div><div class='add'>+typedef struct iseq_link_anchor {</div><div class='add'>+    LINK_ELEMENT anchor;</div><div class='add'>+    LINK_ELEMENT *last;</div><div class='add'>+} LINK_ANCHOR;</div><div class='add'>+</div><div class='add'>+typedef enum {</div><div class='add'>+    LABEL_RESCUE_NONE,</div><div class='add'>+    LABEL_RESCUE_BEG,</div><div class='add'>+    LABEL_RESCUE_END,</div><div class='add'>+    LABEL_RESCUE_TYPE_MAX</div><div class='add'>+} LABEL_RESCUE_TYPE;</div><div class='add'>+</div><div class='add'>+typedef struct iseq_label_data {</div><div class='add'>+    LINK_ELEMENT link;</div><div class='add'>+    int label_no;</div><div class='add'>+    int position;</div><div class='add'>+    int sc_state;</div><div class='add'>+    int sp;</div><div class='add'>+    int refcnt;</div><div class='add'>+    unsigned int set: 1;</div><div class='add'>+    unsigned int rescued: 2;</div><div class='add'>+    unsigned int unremovable: 1;</div><div class='add'>+} LABEL;</div><div class='add'>+</div><div class='add'>+typedef struct iseq_insn_data {</div><div class='add'>+    LINK_ELEMENT link;</div><div class='add'>+    enum ruby_vminsn_type insn_id;</div><div class='add'>+    int operand_size;</div><div class='add'>+    int sc_state;</div><div class='add'>+    VALUE *operands;</div><div class='add'>+    struct {</div><div class='add'>+	int line_no;</div><div class='add'>+	rb_event_flag_t events;</div><div class='add'>+    } insn_info;</div><div class='add'>+} INSN;</div><div class='add'>+</div><div class='add'>+typedef struct iseq_adjust_data {</div><div class='add'>+    LINK_ELEMENT link;</div><div class='add'>+    LABEL *label;</div><div class='add'>+    int line_no;</div><div class='add'>+} ADJUST;</div><div class='add'>+</div><div class='add'>+typedef struct iseq_trace_data {</div><div class='add'>+    LINK_ELEMENT link;</div><div class='add'>+    rb_event_flag_t event;</div><div class='add'>+} TRACE;</div><div class='add'>+</div><div class='add'>+struct ensure_range {</div><div class='add'>+    LABEL *begin;</div><div class='add'>+    LABEL *end;</div><div class='add'>+    struct ensure_range *next;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct iseq_compile_data_ensure_node_stack {</div><div class='add'>+    const NODE *ensure_node;</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack *prev;</div><div class='add'>+    struct ensure_range *erange;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * debug function(macro) interface depend on CPDEBUG</div><div class='add'>+ * if it is less than 0, runtime option is in effect.</div><div class='add'>+ *</div><div class='add'>+ * debug level:</div><div class='add'>+ *  0: no debug output</div><div class='add'>+ *  1: show node type</div><div class='add'>+ *  2: show node important parameters</div><div class='add'>+ *  ...</div><div class='add'>+ *  5: show other parameters</div><div class='add'>+ * 10: show every AST array</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#ifndef CPDEBUG</div><div class='add'>+#define CPDEBUG 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if CPDEBUG &gt;= 0</div><div class='add'>+#define compile_debug CPDEBUG</div><div class='add'>+#else</div><div class='add'>+#define compile_debug ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_level</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if CPDEBUG</div><div class='add'>+</div><div class='add'>+#define compile_debug_print_indent(level) \</div><div class='add'>+    ruby_debug_print_indent((level), compile_debug, gl_node_level * 2)</div><div class='add'>+</div><div class='add'>+#define debugp(header, value) (void) \</div><div class='add'>+  (compile_debug_print_indent(1) &amp;&amp; \</div><div class='add'>+   ruby_debug_print_value(1, compile_debug, (header), (value)))</div><div class='add'>+</div><div class='add'>+#define debugi(header, id)  (void) \</div><div class='add'>+  (compile_debug_print_indent(1) &amp;&amp; \</div><div class='add'>+   ruby_debug_print_id(1, compile_debug, (header), (id)))</div><div class='add'>+</div><div class='add'>+#define debugp_param(header, value)  (void) \</div><div class='add'>+  (compile_debug_print_indent(1) &amp;&amp; \</div><div class='add'>+   ruby_debug_print_value(1, compile_debug, (header), (value)))</div><div class='add'>+</div><div class='add'>+#define debugp_verbose(header, value)  (void) \</div><div class='add'>+  (compile_debug_print_indent(2) &amp;&amp; \</div><div class='add'>+   ruby_debug_print_value(2, compile_debug, (header), (value)))</div><div class='add'>+</div><div class='add'>+#define debugp_verbose_node(header, value)  (void) \</div><div class='add'>+  (compile_debug_print_indent(10) &amp;&amp; \</div><div class='add'>+   ruby_debug_print_value(10, compile_debug, (header), (value)))</div><div class='add'>+</div><div class='add'>+#define debug_node_start(node)  ((void) \</div><div class='add'>+  (compile_debug_print_indent(1) &amp;&amp; \</div><div class='add'>+   (ruby_debug_print_node(1, CPDEBUG, "", (const NODE *)(node)), gl_node_level)), \</div><div class='add'>+   gl_node_level++)</div><div class='add'>+</div><div class='add'>+#define debug_node_end()  gl_node_level --</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+#define debugi(header, id)                 ((void)0)</div><div class='add'>+#define debugp(header, value)              ((void)0)</div><div class='add'>+#define debugp_verbose(header, value)      ((void)0)</div><div class='add'>+#define debugp_verbose_node(header, value) ((void)0)</div><div class='add'>+#define debugp_param(header, value)        ((void)0)</div><div class='add'>+#define debug_node_start(node)             ((void)0)</div><div class='add'>+#define debug_node_end()                   ((void)0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if CPDEBUG &gt; 1 || CPDEBUG &lt; 0</div><div class='add'>+#define printf ruby_debug_printf</div><div class='add'>+#define debugs if (compile_debug_print_indent(1)) ruby_debug_printf</div><div class='add'>+#define debug_compile(msg, v) ((void)(compile_debug_print_indent(1) &amp;&amp; fputs((msg), stderr)), (v))</div><div class='add'>+#else</div><div class='add'>+#define debugs                             if(0)printf</div><div class='add'>+#define debug_compile(msg, v) (v)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define LVAR_ERRINFO (1)</div><div class='add'>+</div><div class='add'>+/* create new label */</div><div class='add'>+#define NEW_LABEL(l) new_label_body(iseq, (l))</div><div class='add'>+#define LABEL_FORMAT "&lt;L%03d&gt;"</div><div class='add'>+</div><div class='add'>+#define NEW_ISEQ(node, name, type, line_no) \</div><div class='add'>+  new_child_iseq(iseq, (node), rb_fstring(name), 0, (type), (line_no))</div><div class='add'>+</div><div class='add'>+#define NEW_CHILD_ISEQ(node, name, type, line_no) \</div><div class='add'>+  new_child_iseq(iseq, (node), rb_fstring(name), iseq, (type), (line_no))</div><div class='add'>+</div><div class='add'>+/* add instructions */</div><div class='add'>+#define ADD_SEQ(seq1, seq2) \</div><div class='add'>+  APPEND_LIST((seq1), (seq2))</div><div class='add'>+</div><div class='add'>+/* add an instruction */</div><div class='add'>+#define ADD_INSN(seq, line, insn) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0))</div><div class='add'>+</div><div class='add'>+/* insert an instruction before prev */</div><div class='add'>+#define INSERT_BEFORE_INSN(prev, line, insn) \</div><div class='add'>+  ELEM_INSERT_PREV(&amp;(prev)-&gt;link, (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0))</div><div class='add'>+</div><div class='add'>+/* add an instruction with some operands (1, 2, 3, 5) */</div><div class='add'>+#define ADD_INSN1(seq, line, insn, op1) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(op1)))</div><div class='add'>+</div><div class='add'>+/* insert an instruction with some operands (1, 2, 3, 5) before prev */</div><div class='add'>+#define INSERT_BEFORE_INSN1(prev, line, insn, op1) \</div><div class='add'>+  ELEM_INSERT_PREV(&amp;(prev)-&gt;link, (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(op1)))</div><div class='add'>+</div><div class='add'>+#define LABEL_REF(label) ((label)-&gt;refcnt++)</div><div class='add'>+</div><div class='add'>+/* add an instruction with label operand (alias of ADD_INSN1) */</div><div class='add'>+#define ADD_INSNL(seq, line, insn, label) (ADD_INSN1(seq, line, insn, label), LABEL_REF(label))</div><div class='add'>+</div><div class='add'>+#define ADD_INSN2(seq, line, insn, op1, op2) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_body(iseq, (line), BIN(insn), 2, (VALUE)(op1), (VALUE)(op2)))</div><div class='add'>+</div><div class='add'>+#define ADD_INSN3(seq, line, insn, op1, op2, op3) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_body(iseq, (line), BIN(insn), 3, (VALUE)(op1), (VALUE)(op2), (VALUE)(op3)))</div><div class='add'>+</div><div class='add'>+/* Specific Insn factory */</div><div class='add'>+#define ADD_SEND(seq, line, id, argc) \</div><div class='add'>+  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)INT2FIX(0), NULL)</div><div class='add'>+</div><div class='add'>+#define ADD_SEND_WITH_FLAG(seq, line, id, argc, flag) \</div><div class='add'>+  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)(flag), NULL)</div><div class='add'>+</div><div class='add'>+#define ADD_SEND_WITH_BLOCK(seq, line, id, argc, block) \</div><div class='add'>+  ADD_SEND_R((seq), (line), (id), (argc), (block), (VALUE)INT2FIX(0), NULL)</div><div class='add'>+</div><div class='add'>+#define ADD_CALL_RECEIVER(seq, line) \</div><div class='add'>+  ADD_INSN((seq), (line), putself)</div><div class='add'>+</div><div class='add'>+#define ADD_CALL(seq, line, id, argc) \</div><div class='add'>+  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='add'>+</div><div class='add'>+#define ADD_CALL_WITH_BLOCK(seq, line, id, argc, block) \</div><div class='add'>+  ADD_SEND_R((seq), (line), (id), (argc), (block), (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='add'>+</div><div class='add'>+#define ADD_SEND_R(seq, line, id, argc, block, flag, keywords) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_send(iseq, (line), (id), (VALUE)(argc), (block), (VALUE)(flag), (keywords)))</div><div class='add'>+</div><div class='add'>+#define ADD_TRACE(seq, event) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *)new_trace_body(iseq, (event)))</div><div class='add'>+#define ADD_TRACE_LINE_COVERAGE(seq, line) \</div><div class='add'>+  do { \</div><div class='add'>+      if (ISEQ_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  ISEQ_LINE_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  (line) &gt; 0) { \</div><div class='add'>+	  RARRAY_ASET(ISEQ_LINE_COVERAGE(iseq), (line) - 1, INT2FIX(0)); \</div><div class='add'>+	  ADD_INSN2((seq), (line), tracecoverage, INT2FIX(RUBY_EVENT_COVERAGE_LINE), INT2FIX(line)); \</div><div class='add'>+      } \</div><div class='add'>+  } while (0)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define DECL_BRANCH_BASE(branches, first_line, first_column, last_line, last_column, type) \</div><div class='add'>+  do { \</div><div class='add'>+      if (ISEQ_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  ISEQ_BRANCH_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  (first_line) &gt; 0) { \</div><div class='add'>+	  VALUE structure = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 0); \</div><div class='add'>+	  branches = rb_ary_tmp_new(0); \</div><div class='add'>+	  rb_ary_push(structure, branches); \</div><div class='add'>+	  rb_ary_push(branches, ID2SYM(rb_intern(type))); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(first_line)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(first_column)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(last_line)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(last_column)); \</div><div class='add'>+      } \</div><div class='add'>+  } while (0)</div><div class='add'>+#define ADD_TRACE_BRANCH_COVERAGE(seq, first_line, first_column, last_line, last_column, type, branches) \</div><div class='add'>+  do { \</div><div class='add'>+      if (ISEQ_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  ISEQ_BRANCH_COVERAGE(iseq) &amp;&amp; \</div><div class='add'>+	  (first_line) &gt; 0) { \</div><div class='add'>+	  VALUE counters = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 1); \</div><div class='add'>+	  long counter_idx = RARRAY_LEN(counters); \</div><div class='add'>+	  rb_ary_push(counters, INT2FIX(0)); \</div><div class='add'>+	  rb_ary_push(branches, ID2SYM(rb_intern(type))); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(first_line)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(first_column)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(last_line)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(last_column)); \</div><div class='add'>+	  rb_ary_push(branches, INT2FIX(counter_idx)); \</div><div class='add'>+	  ADD_INSN2((seq), (first_line), tracecoverage, INT2FIX(RUBY_EVENT_COVERAGE_BRANCH), INT2FIX(counter_idx)); \</div><div class='add'>+      } \</div><div class='add'>+  } while (0)</div><div class='add'>+</div><div class='add'>+static void iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);</div><div class='add'>+static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);</div><div class='add'>+</div><div class='add'>+#define ADD_GETLOCAL(seq, line, idx, level) iseq_add_getlocal(iseq, (seq), (line), (idx), (level))</div><div class='add'>+#define ADD_SETLOCAL(seq, line, idx, level) iseq_add_setlocal(iseq, (seq), (line), (idx), (level))</div><div class='add'>+</div><div class='add'>+/* add label */</div><div class='add'>+#define ADD_LABEL(seq, label) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) (label))</div><div class='add'>+</div><div class='add'>+#define APPEND_LABEL(seq, before, label) \</div><div class='add'>+  APPEND_ELEM((seq), (before), (LINK_ELEMENT *) (label))</div><div class='add'>+</div><div class='add'>+#define ADD_ADJUST(seq, line, label) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_adjust_body(iseq, (label), (line)))</div><div class='add'>+</div><div class='add'>+#define ADD_ADJUST_RESTORE(seq, label) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_adjust_body(iseq, (label), -1))</div><div class='add'>+</div><div class='add'>+#define LABEL_UNREMOVABLE(label) \</div><div class='add'>+    ((label) ? (LABEL_REF(label), (label)-&gt;unremovable=1) : 0)</div><div class='add'>+#define ADD_CATCH_ENTRY(type, ls, le, iseqv, lc) do {				\</div><div class='add'>+    VALUE _e = rb_ary_new3(5, (type),						\</div><div class='add'>+			   (VALUE)(ls) | 1, (VALUE)(le) | 1,			\</div><div class='add'>+			   (VALUE)(iseqv), (VALUE)(lc) | 1);			\</div><div class='add'>+    LABEL_UNREMOVABLE(ls);							\</div><div class='add'>+    LABEL_REF(le);								\</div><div class='add'>+    LABEL_REF(lc);								\</div><div class='add'>+    rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, freeze_hide_obj(_e));	\</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+/* compile node */</div><div class='add'>+#define COMPILE(anchor, desc, node) \</div><div class='add'>+  (debug_compile("== " desc "\n", \</div><div class='add'>+                 iseq_compile_each(iseq, (anchor), (node), 0)))</div><div class='add'>+</div><div class='add'>+/* compile node, this node's value will be popped */</div><div class='add'>+#define COMPILE_POPPED(anchor, desc, node)    \</div><div class='add'>+  (debug_compile("== " desc "\n", \</div><div class='add'>+                 iseq_compile_each(iseq, (anchor), (node), 1)))</div><div class='add'>+</div><div class='add'>+/* compile node, which is popped when 'popped' is true */</div><div class='add'>+#define COMPILE_(anchor, desc, node, popped)  \</div><div class='add'>+  (debug_compile("== " desc "\n", \</div><div class='add'>+                 iseq_compile_each(iseq, (anchor), (node), (popped))))</div><div class='add'>+</div><div class='add'>+#define COMPILE_RECV(anchor, desc, node) \</div><div class='add'>+    (private_recv_p(node) ? \</div><div class='add'>+     (ADD_INSN(anchor, nd_line(node), putself), VM_CALL_FCALL) : \</div><div class='add'>+     (COMPILE(anchor, desc, node-&gt;nd_recv), 0))</div><div class='add'>+</div><div class='add'>+#define OPERAND_AT(insn, idx) \</div><div class='add'>+  (((INSN*)(insn))-&gt;operands[(idx)])</div><div class='add'>+</div><div class='add'>+#define INSN_OF(insn) \</div><div class='add'>+  (((INSN*)(insn))-&gt;insn_id)</div><div class='add'>+</div><div class='add'>+#define IS_INSN(link) ((link)-&gt;type == ISEQ_ELEMENT_INSN)</div><div class='add'>+#define IS_LABEL(link) ((link)-&gt;type == ISEQ_ELEMENT_LABEL)</div><div class='add'>+#define IS_ADJUST(link) ((link)-&gt;type == ISEQ_ELEMENT_ADJUST)</div><div class='add'>+#define IS_TRACE(link) ((link)-&gt;type == ISEQ_ELEMENT_TRACE)</div><div class='add'>+#define IS_INSN_ID(iobj, insn) (INSN_OF(iobj) == BIN(insn))</div><div class='add'>+#define IS_NEXT_INSN_ID(link, insn) \</div><div class='add'>+    ((link)-&gt;next &amp;&amp; IS_INSN((link)-&gt;next) &amp;&amp; IS_INSN_ID((link)-&gt;next, insn))</div><div class='add'>+</div><div class='add'>+/* error */</div><div class='add'>+#if CPDEBUG &gt; 0</div><div class='add'>+NORETURN(static void append_compile_error(rb_iseq_t *iseq, int line, const char *fmt, ...));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+append_compile_error(rb_iseq_t *iseq, int line, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    VALUE err_info = ISEQ_COMPILE_DATA(iseq)-&gt;err_info;</div><div class='add'>+    VALUE file = rb_iseq_path(iseq);</div><div class='add'>+    VALUE err = err_info == Qtrue ? Qfalse : err_info;</div><div class='add'>+    va_list args;</div><div class='add'>+</div><div class='add'>+    va_start(args, fmt);</div><div class='add'>+    err = rb_syntax_error_append(err, file, line, -1, NULL, fmt, args);</div><div class='add'>+    va_end(args);</div><div class='add'>+    if (NIL_P(err_info)) {</div><div class='add'>+	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, err);</div><div class='add'>+	rb_set_errinfo(err);</div><div class='add'>+    }</div><div class='add'>+    else if (!err_info) {</div><div class='add'>+	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, Qtrue);</div><div class='add'>+    }</div><div class='add'>+    if (compile_debug) rb_exc_fatal(err);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static void</div><div class='add'>+compile_bug(rb_iseq_t *iseq, int line, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    va_list args;</div><div class='add'>+    va_start(args, fmt);</div><div class='add'>+    rb_report_bug_valist(rb_iseq_path(iseq), line, fmt, args);</div><div class='add'>+    va_end(args);</div><div class='add'>+    abort();</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define COMPILE_ERROR append_compile_error</div><div class='add'>+</div><div class='add'>+#define ERROR_ARGS_AT(n) iseq, nd_line(n),</div><div class='add'>+#define ERROR_ARGS ERROR_ARGS_AT(node)</div><div class='add'>+</div><div class='add'>+#define EXPECT_NODE(prefix, node, ndtype, errval) \</div><div class='add'>+do { \</div><div class='add'>+    const NODE *error_node = (node); \</div><div class='add'>+    enum node_type error_type = nd_type(error_node); \</div><div class='add'>+    if (error_type != (ndtype)) { \</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS_AT(error_node) \</div><div class='add'>+		      prefix ": " #ndtype " is expected, but %s", \</div><div class='add'>+		      ruby_node_name(error_type)); \</div><div class='add'>+	return errval; \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define EXPECT_NODE_NONULL(prefix, parent, ndtype, errval) \</div><div class='add'>+do { \</div><div class='add'>+    COMPILE_ERROR(ERROR_ARGS_AT(parent) \</div><div class='add'>+		  prefix ": must be " #ndtype ", but 0"); \</div><div class='add'>+    return errval; \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define UNKNOWN_NODE(prefix, node, errval) \</div><div class='add'>+do { \</div><div class='add'>+    const NODE *error_node = (node); \</div><div class='add'>+    COMPILE_ERROR(ERROR_ARGS_AT(error_node) prefix ": unknown node (%s)", \</div><div class='add'>+		  ruby_node_name(nd_type(error_node))); \</div><div class='add'>+    return errval; \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define COMPILE_OK 1</div><div class='add'>+#define COMPILE_NG 0</div><div class='add'>+</div><div class='add'>+#define CHECK(sub) if (!(sub)) {BEFORE_RETURN;return COMPILE_NG;}</div><div class='add'>+#define BEFORE_RETURN</div><div class='add'>+</div><div class='add'>+/* leave name uninitialized so that compiler warn if INIT_ANCHOR is</div><div class='add'>+ * missing */</div><div class='add'>+#define DECL_ANCHOR(name) \</div><div class='add'>+    LINK_ANCHOR name[1] = {{{0,},}}</div><div class='add'>+#define INIT_ANCHOR(name) \</div><div class='add'>+    (name-&gt;last = &amp;name-&gt;anchor)</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+freeze_hide_obj(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    OBJ_FREEZE(obj);</div><div class='add'>+    RBASIC_CLEAR_CLASS(obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#include "optinsn.inc"</div><div class='add'>+#if OPT_INSTRUCTIONS_UNIFICATION</div><div class='add'>+#include "optunifs.inc"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* for debug */</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define ISEQ_ARG iseq,</div><div class='add'>+#define ISEQ_ARG_DECLARE rb_iseq_t *iseq,</div><div class='add'>+#else</div><div class='add'>+#define ISEQ_ARG</div><div class='add'>+#define ISEQ_ARG_DECLARE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if CPDEBUG</div><div class='add'>+#define gl_node_level ISEQ_COMPILE_DATA(iseq)-&gt;node_level</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void dump_disasm_list_with_cursor(const LINK_ELEMENT *link, const LINK_ELEMENT *curr, const LABEL *dest);</div><div class='add'>+static void dump_disasm_list(const LINK_ELEMENT *elem);</div><div class='add'>+</div><div class='add'>+static int insn_data_length(INSN *iobj);</div><div class='add'>+static int calc_sp_depth(int depth, INSN *iobj);</div><div class='add'>+</div><div class='add'>+static INSN *new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int argc, ...);</div><div class='add'>+static LABEL *new_label_body(rb_iseq_t *iseq, long line);</div><div class='add'>+static ADJUST *new_adjust_body(rb_iseq_t *iseq, LABEL *label, int line);</div><div class='add'>+static TRACE *new_trace_body(rb_iseq_t *iseq, rb_event_flag_t event);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static int iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *anchor, const NODE *n, int);</div><div class='add'>+static int iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+static int iseq_setup_insn(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+static int iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+static int iseq_insns_unification(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+</div><div class='add'>+static int iseq_set_local_table(rb_iseq_t *iseq, const ID *tbl);</div><div class='add'>+static int iseq_set_exception_local_table(rb_iseq_t *iseq);</div><div class='add'>+static int iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *const anchor, const NODE *const node);</div><div class='add'>+</div><div class='add'>+static int iseq_set_sequence_stackcaching(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+static int iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='add'>+static int iseq_set_exception_table(rb_iseq_t *iseq);</div><div class='add'>+static int iseq_set_optargs_table(rb_iseq_t *iseq);</div><div class='add'>+</div><div class='add'>+static int compile_defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE needstr);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * To make Array to LinkedList, use link_anchor</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+verify_list(ISEQ_ARG_DECLARE const char *info, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+#if CPDEBUG</div><div class='add'>+    int flag = 0;</div><div class='add'>+    LINK_ELEMENT *list, *plist;</div><div class='add'>+</div><div class='add'>+    if (!compile_debug) return;</div><div class='add'>+</div><div class='add'>+    list = anchor-&gt;anchor.next;</div><div class='add'>+    plist = &amp;anchor-&gt;anchor;</div><div class='add'>+    while (list) {</div><div class='add'>+	if (plist != list-&gt;prev) {</div><div class='add'>+	    flag += 1;</div><div class='add'>+	}</div><div class='add'>+	plist = list;</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (anchor-&gt;last != plist &amp;&amp; anchor-&gt;last != 0) {</div><div class='add'>+	flag |= 0x70000;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (flag != 0) {</div><div class='add'>+	rb_bug("list verify error: %08x (%s)", flag, info);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define verify_list(info, anchor) verify_list(iseq, (info), (anchor))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * elem1, elem2 =&gt; elem1, elem2, elem</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+ADD_ELEM(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *elem)</div><div class='add'>+{</div><div class='add'>+    elem-&gt;prev = anchor-&gt;last;</div><div class='add'>+    anchor-&gt;last-&gt;next = elem;</div><div class='add'>+    anchor-&gt;last = elem;</div><div class='add'>+    verify_list("add", anchor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * elem1, before, elem2 =&gt; elem1, before, elem, elem2</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+APPEND_ELEM(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *before, LINK_ELEMENT *elem)</div><div class='add'>+{</div><div class='add'>+    elem-&gt;prev = before;</div><div class='add'>+    elem-&gt;next = before-&gt;next;</div><div class='add'>+    elem-&gt;next-&gt;prev = elem;</div><div class='add'>+    before-&gt;next = elem;</div><div class='add'>+    if (before == anchor-&gt;last) anchor-&gt;last = elem;</div><div class='add'>+    verify_list("add", anchor);</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define ADD_ELEM(anchor, elem) ADD_ELEM(iseq, (anchor), (elem))</div><div class='add'>+#define APPEND_ELEM(anchor, before, elem) APPEND_ELEM(iseq, (anchor), (before), (elem))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_add_mark_object(const rb_iseq_t *iseq, VALUE v)</div><div class='add'>+{</div><div class='add'>+    if (!SPECIAL_CONST_P(v)) {</div><div class='add'>+	rb_iseq_add_mark_object(iseq, v);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_add_mark_object_compile_time(const rb_iseq_t *iseq, VALUE v)</div><div class='add'>+{</div><div class='add'>+    if (!SPECIAL_CONST_P(v)) {</div><div class='add'>+	rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;mark_ary, v);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+freeze_literal(rb_iseq_t *iseq, VALUE lit)</div><div class='add'>+{</div><div class='add'>+    lit = rb_fstring(lit);</div><div class='add'>+    rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;mark_ary, lit);</div><div class='add'>+    return lit;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+validate_label(st_data_t name, st_data_t label, st_data_t arg)</div><div class='add'>+{</div><div class='add'>+    rb_iseq_t *iseq = (rb_iseq_t *)arg;</div><div class='add'>+    LABEL *lobj = (LABEL *)label;</div><div class='add'>+    if (!lobj-&gt;link.next) {</div><div class='add'>+	do {</div><div class='add'>+	    COMPILE_ERROR(iseq, lobj-&gt;position,</div><div class='add'>+			  "%"PRIsVALUE": undefined label",</div><div class='add'>+			  rb_sym2str((VALUE)name));</div><div class='add'>+	} while (0);</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+validate_labels(rb_iseq_t *iseq, st_table *labels_table)</div><div class='add'>+{</div><div class='add'>+    st_foreach(labels_table, validate_label, (st_data_t)iseq);</div><div class='add'>+    st_free_table(labels_table);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_compile_ifunc(rb_iseq_t *iseq, const struct vm_ifunc *ifunc)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(ret);</div><div class='add'>+    INIT_ANCHOR(ret);</div><div class='add'>+</div><div class='add'>+    (*ifunc-&gt;func)(iseq, ret, ifunc-&gt;data);</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, ISEQ_COMPILE_DATA(iseq)-&gt;last_line, leave);</div><div class='add'>+</div><div class='add'>+    CHECK(iseq_setup_insn(iseq, ret));</div><div class='add'>+    return iseq_setup(iseq, ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(ret);</div><div class='add'>+    INIT_ANCHOR(ret);</div><div class='add'>+</div><div class='add'>+    if (node == 0) {</div><div class='add'>+	COMPILE(ret, "nil", node);</div><div class='add'>+	iseq_set_local_table(iseq, 0);</div><div class='add'>+    }</div><div class='add'>+    else if (imemo_type_p((VALUE)node, imemo_ifunc)) {</div><div class='add'>+	const struct vm_ifunc *ifunc = (struct vm_ifunc *)node;</div><div class='add'>+	/* user callback */</div><div class='add'>+	(*ifunc-&gt;func)(iseq, ret, ifunc-&gt;data);</div><div class='add'>+    }</div><div class='add'>+    /* assume node is T_NODE */</div><div class='add'>+    else if (nd_type(node) == NODE_SCOPE) {</div><div class='add'>+	/* iseq type of top, method, class, block */</div><div class='add'>+	iseq_set_local_table(iseq, node-&gt;nd_tbl);</div><div class='add'>+	iseq_set_arguments(iseq, ret, node-&gt;nd_args);</div><div class='add'>+</div><div class='add'>+	switch (iseq-&gt;body-&gt;type) {</div><div class='add'>+	  case ISEQ_TYPE_BLOCK:</div><div class='add'>+	    {</div><div class='add'>+		LABEL *start = ISEQ_COMPILE_DATA(iseq)-&gt;start_label = NEW_LABEL(0);</div><div class='add'>+		LABEL *end = ISEQ_COMPILE_DATA(iseq)-&gt;end_label = NEW_LABEL(0);</div><div class='add'>+</div><div class='add'>+		start-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='add'>+		end-&gt;rescued = LABEL_RESCUE_END;</div><div class='add'>+</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_B_CALL);</div><div class='add'>+		ADD_INSN (ret, FIX2INT(iseq-&gt;body-&gt;location.first_lineno), nop);</div><div class='add'>+		ADD_LABEL(ret, start);</div><div class='add'>+		CHECK(COMPILE(ret, "block body", node-&gt;nd_body));</div><div class='add'>+		ADD_LABEL(ret, end);</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_B_RETURN);</div><div class='add'>+		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = iseq-&gt;body-&gt;location.code_range.last_loc.lineno;</div><div class='add'>+</div><div class='add'>+		/* wide range catch handler must put at last */</div><div class='add'>+		ADD_CATCH_ENTRY(CATCH_TYPE_REDO, start, end, NULL, start);</div><div class='add'>+		ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, NULL, end);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_TYPE_CLASS:</div><div class='add'>+	    {</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_CLASS);</div><div class='add'>+		CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_END);</div><div class='add'>+		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_TYPE_METHOD:</div><div class='add'>+	    {</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_CALL);</div><div class='add'>+		CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+		ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='add'>+		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default: {</div><div class='add'>+	    CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	const char *m;</div><div class='add'>+#define INVALID_ISEQ_TYPE(type) \</div><div class='add'>+	ISEQ_TYPE_##type: m = #type; goto invalid_iseq_type</div><div class='add'>+	switch (iseq-&gt;body-&gt;type) {</div><div class='add'>+	  case INVALID_ISEQ_TYPE(METHOD);</div><div class='add'>+	  case INVALID_ISEQ_TYPE(CLASS);</div><div class='add'>+	  case INVALID_ISEQ_TYPE(BLOCK);</div><div class='add'>+	  case INVALID_ISEQ_TYPE(EVAL);</div><div class='add'>+	  case INVALID_ISEQ_TYPE(MAIN);</div><div class='add'>+	  case INVALID_ISEQ_TYPE(TOP);</div><div class='add'>+#undef INVALID_ISEQ_TYPE /* invalid iseq types end */</div><div class='add'>+	  case ISEQ_TYPE_RESCUE:</div><div class='add'>+	    iseq_set_exception_local_table(iseq);</div><div class='add'>+	    CHECK(COMPILE(ret, "rescue", node));</div><div class='add'>+	    break;</div><div class='add'>+	  case ISEQ_TYPE_ENSURE:</div><div class='add'>+	    iseq_set_exception_local_table(iseq);</div><div class='add'>+	    CHECK(COMPILE_POPPED(ret, "ensure", node));</div><div class='add'>+	    break;</div><div class='add'>+	  case ISEQ_TYPE_DEFINED_GUARD:</div><div class='add'>+	    iseq_set_exception_local_table(iseq);</div><div class='add'>+	    CHECK(COMPILE(ret, "defined guard", node));</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "unknown scope: %d", iseq-&gt;body-&gt;type);</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	  invalid_iseq_type:</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "compile/ISEQ_TYPE_%s should not be reached", m);</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE || iseq-&gt;body-&gt;type == ISEQ_TYPE_ENSURE) {</div><div class='add'>+	ADD_GETLOCAL(ret, 0, LVAR_ERRINFO, 0);</div><div class='add'>+	ADD_INSN1(ret, 0, throw, INT2FIX(0) /* continue throw */ );</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ADD_INSN(ret, ISEQ_COMPILE_DATA(iseq)-&gt;last_line, leave);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if SUPPORT_JOKE</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;labels_table) {</div><div class='add'>+	st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = 0;</div><div class='add'>+	validate_labels(iseq, labels_table);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    CHECK(iseq_setup_insn(iseq, ret));</div><div class='add'>+    return iseq_setup(iseq, ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_iseq_translate_threaded_code(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='add'>+    const void * const *table = rb_vm_get_insns_address_table();</div><div class='add'>+    unsigned int i;</div><div class='add'>+    VALUE *encoded = (VALUE *)iseq-&gt;body-&gt;iseq_encoded;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; iseq-&gt;body-&gt;iseq_size; /* */ ) {</div><div class='add'>+	int insn = (int)iseq-&gt;body-&gt;iseq_encoded[i];</div><div class='add'>+	int len = insn_len(insn);</div><div class='add'>+	encoded[i] = (VALUE)table[insn];</div><div class='add'>+	i += len;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='add'>+static int</div><div class='add'>+rb_vm_insn_addr2insn(const void *addr) /* cold path */</div><div class='add'>+{</div><div class='add'>+    int insn;</div><div class='add'>+    const void * const *table = rb_vm_get_insns_address_table();</div><div class='add'>+</div><div class='add'>+    for (insn = 0; insn &lt; VM_INSTRUCTION_SIZE; insn++) {</div><div class='add'>+	if (table[insn] == addr) {</div><div class='add'>+	    return insn;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    rb_bug("rb_vm_insn_addr2insn: invalid insn address: %p", addr);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+VALUE *</div><div class='add'>+rb_iseq_original_iseq(const rb_iseq_t *iseq) /* cold path */</div><div class='add'>+{</div><div class='add'>+    VALUE *original_code;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_ORIGINAL_ISEQ(iseq)) return ISEQ_ORIGINAL_ISEQ(iseq);</div><div class='add'>+    original_code = ISEQ_ORIGINAL_ISEQ_ALLOC(iseq, iseq-&gt;body-&gt;iseq_size);</div><div class='add'>+    MEMCPY(original_code, iseq-&gt;body-&gt;iseq_encoded, VALUE, iseq-&gt;body-&gt;iseq_size);</div><div class='add'>+</div><div class='add'>+#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='add'>+    {</div><div class='add'>+	unsigned int i;</div><div class='add'>+</div><div class='add'>+	for (i = 0; i &lt; iseq-&gt;body-&gt;iseq_size; /* */ ) {</div><div class='add'>+	    const void *addr = (const void *)original_code[i];</div><div class='add'>+	    const int insn = rb_vm_insn_addr2insn(addr);</div><div class='add'>+</div><div class='add'>+	    original_code[i] = insn;</div><div class='add'>+	    i += insn_len(insn);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return original_code;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*********************************************/</div><div class='add'>+/* definition of data structure for compiler */</div><div class='add'>+/*********************************************/</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * On 32-bit SPARC, GCC by default generates SPARC V7 code that may require</div><div class='add'>+ * 8-byte word alignment. On the other hand, Oracle Solaris Studio seems to</div><div class='add'>+ * generate SPARCV8PLUS code with unaligned memory access instructions.</div><div class='add'>+ * That is why the STRICT_ALIGNMENT is defined only with GCC.</div><div class='add'>+ */</div><div class='add'>+#if defined(__sparc) &amp;&amp; SIZEOF_VOIDP == 4 &amp;&amp; defined(__GNUC__)</div><div class='add'>+  #define STRICT_ALIGNMENT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+  #if defined(HAVE_TRUE_LONG_LONG) &amp;&amp; SIZEOF_LONG_LONG &gt; SIZEOF_VALUE</div><div class='add'>+    #define ALIGNMENT_SIZE SIZEOF_LONG_LONG</div><div class='add'>+  #else</div><div class='add'>+    #define ALIGNMENT_SIZE SIZEOF_VALUE</div><div class='add'>+  #endif</div><div class='add'>+  #define PADDING_SIZE_MAX    ((size_t)((ALIGNMENT_SIZE) - 1))</div><div class='add'>+  #define ALIGNMENT_SIZE_MASK PADDING_SIZE_MAX</div><div class='add'>+  /* Note: ALIGNMENT_SIZE == (2 ** N) is expected. */</div><div class='add'>+#else</div><div class='add'>+  #define PADDING_SIZE_MAX 0</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+/* calculate padding size for aligned memory access */</div><div class='add'>+static size_t</div><div class='add'>+calc_padding(void *ptr, size_t size)</div><div class='add'>+{</div><div class='add'>+    size_t mis;</div><div class='add'>+    size_t padding = 0;</div><div class='add'>+</div><div class='add'>+    mis = (size_t)ptr &amp; ALIGNMENT_SIZE_MASK;</div><div class='add'>+    if (mis &gt; 0) {</div><div class='add'>+        padding = ALIGNMENT_SIZE - mis;</div><div class='add'>+    }</div><div class='add'>+/*</div><div class='add'>+ * On 32-bit sparc or equivalents, when a single VALUE is requested</div><div class='add'>+ * and padding == sizeof(VALUE), it is clear that no padding is needed.</div><div class='add'>+ */</div><div class='add'>+#if ALIGNMENT_SIZE &gt; SIZEOF_VALUE</div><div class='add'>+    if (size == sizeof(VALUE) &amp;&amp; padding == sizeof(VALUE)) {</div><div class='add'>+        padding = 0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return padding;</div><div class='add'>+}</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+compile_data_alloc(rb_iseq_t *iseq, size_t size)</div><div class='add'>+{</div><div class='add'>+    void *ptr = 0;</div><div class='add'>+    struct iseq_compile_data_storage *storage =</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;storage_current;</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+    size_t padding = calc_padding((void *)&amp;storage-&gt;buff[storage-&gt;pos], size);</div><div class='add'>+#else</div><div class='add'>+    const size_t padding = 0; /* expected to be optimized by compiler */</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+</div><div class='add'>+    if (size &gt;= INT_MAX - padding) rb_memerror();</div><div class='add'>+    if (storage-&gt;pos + size + padding &gt; storage-&gt;size) {</div><div class='add'>+	unsigned int alloc_size = storage-&gt;size;</div><div class='add'>+</div><div class='add'>+	while (alloc_size &lt; size + PADDING_SIZE_MAX) {</div><div class='add'>+	    if (alloc_size &gt;= INT_MAX / 2) rb_memerror();</div><div class='add'>+	    alloc_size *= 2;</div><div class='add'>+	}</div><div class='add'>+	storage-&gt;next = (void *)ALLOC_N(char, alloc_size +</div><div class='add'>+					SIZEOF_ISEQ_COMPILE_DATA_STORAGE);</div><div class='add'>+	storage = ISEQ_COMPILE_DATA(iseq)-&gt;storage_current = storage-&gt;next;</div><div class='add'>+	storage-&gt;next = 0;</div><div class='add'>+	storage-&gt;pos = 0;</div><div class='add'>+	storage-&gt;size = alloc_size;</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+        padding = calc_padding((void *)&amp;storage-&gt;buff[storage-&gt;pos], size);</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+    storage-&gt;pos += (int)padding;</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+</div><div class='add'>+    ptr = (void *)&amp;storage-&gt;buff[storage-&gt;pos];</div><div class='add'>+    storage-&gt;pos += (int)size;</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static INSN *</div><div class='add'>+compile_data_alloc_insn(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return (INSN *)compile_data_alloc(iseq, sizeof(INSN));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LABEL *</div><div class='add'>+compile_data_alloc_label(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return (LABEL *)compile_data_alloc(iseq, sizeof(LABEL));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ADJUST *</div><div class='add'>+compile_data_alloc_adjust(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return (ADJUST *)compile_data_alloc(iseq, sizeof(ADJUST));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static TRACE *</div><div class='add'>+compile_data_alloc_trace(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return (TRACE *)compile_data_alloc(iseq, sizeof(TRACE));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * elem1, elemX =&gt; elem1, elem2, elemX</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+ELEM_INSERT_NEXT(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='add'>+{</div><div class='add'>+    elem2-&gt;next = elem1-&gt;next;</div><div class='add'>+    elem2-&gt;prev = elem1;</div><div class='add'>+    elem1-&gt;next = elem2;</div><div class='add'>+    if (elem2-&gt;next) {</div><div class='add'>+	elem2-&gt;next-&gt;prev = elem2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * elem1, elemX =&gt; elemX, elem2, elem1</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+ELEM_INSERT_PREV(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='add'>+{</div><div class='add'>+    elem2-&gt;prev = elem1-&gt;prev;</div><div class='add'>+    elem2-&gt;next = elem1;</div><div class='add'>+    elem1-&gt;prev = elem2;</div><div class='add'>+    if (elem2-&gt;prev) {</div><div class='add'>+	elem2-&gt;prev-&gt;next = elem2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * elemX, elem1, elemY =&gt; elemX, elem2, elemY</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+ELEM_REPLACE(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='add'>+{</div><div class='add'>+    elem2-&gt;prev = elem1-&gt;prev;</div><div class='add'>+    elem2-&gt;next = elem1-&gt;next;</div><div class='add'>+    if (elem1-&gt;prev) {</div><div class='add'>+	elem1-&gt;prev-&gt;next = elem2;</div><div class='add'>+    }</div><div class='add'>+    if (elem1-&gt;next) {</div><div class='add'>+	elem1-&gt;next-&gt;prev = elem2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ELEM_REMOVE(LINK_ELEMENT *elem)</div><div class='add'>+{</div><div class='add'>+    elem-&gt;prev-&gt;next = elem-&gt;next;</div><div class='add'>+    if (elem-&gt;next) {</div><div class='add'>+	elem-&gt;next-&gt;prev = elem-&gt;prev;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+FIRST_ELEMENT(const LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    return anchor-&gt;anchor.next;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+LAST_ELEMENT(LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    return anchor-&gt;last;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+POP_ELEMENT(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *elem = anchor-&gt;last;</div><div class='add'>+    anchor-&gt;last = anchor-&gt;last-&gt;prev;</div><div class='add'>+    anchor-&gt;last-&gt;next = 0;</div><div class='add'>+    verify_list("pop", anchor);</div><div class='add'>+    return elem;</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define POP_ELEMENT(anchor) POP_ELEMENT(iseq, (anchor))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+ELEM_FIRST_INSN(LINK_ELEMENT *elem)</div><div class='add'>+{</div><div class='add'>+    while (elem) {</div><div class='add'>+	switch (elem-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    return elem;</div><div class='add'>+	  default:</div><div class='add'>+	    elem = elem-&gt;next;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+LIST_INSN_SIZE_ONE(const LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *first_insn = ELEM_FIRST_INSN(FIRST_ELEMENT(anchor));</div><div class='add'>+    if (first_insn != NULL &amp;&amp;</div><div class='add'>+	ELEM_FIRST_INSN(first_insn-&gt;next) == NULL) {</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+LIST_INSN_SIZE_ZERO(const LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    if (ELEM_FIRST_INSN(FIRST_ELEMENT(anchor)) == NULL) {</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * anc1: e1, e2, e3</div><div class='add'>+ * anc2: e4, e5</div><div class='add'>+ *#=&gt;</div><div class='add'>+ * anc1: e1, e2, e3, e4, e5</div><div class='add'>+ * anc2: e4, e5 (broken)</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+APPEND_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)</div><div class='add'>+{</div><div class='add'>+    if (anc2-&gt;anchor.next) {</div><div class='add'>+	anc1-&gt;last-&gt;next = anc2-&gt;anchor.next;</div><div class='add'>+	anc2-&gt;anchor.next-&gt;prev = anc1-&gt;last;</div><div class='add'>+	anc1-&gt;last = anc2-&gt;last;</div><div class='add'>+    }</div><div class='add'>+    verify_list("append", anc1);</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define APPEND_LIST(anc1, anc2) APPEND_LIST(iseq, (anc1), (anc2))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * anc1: e1, e2, e3</div><div class='add'>+ * anc2: e4, e5</div><div class='add'>+ *#=&gt;</div><div class='add'>+ * anc1: e4, e5, e1, e2, e3</div><div class='add'>+ * anc2: e4, e5 (broken)</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+INSERT_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)</div><div class='add'>+{</div><div class='add'>+    if (anc2-&gt;anchor.next) {</div><div class='add'>+	LINK_ELEMENT *first = anc1-&gt;anchor.next;</div><div class='add'>+	anc1-&gt;anchor.next = anc2-&gt;anchor.next;</div><div class='add'>+	anc1-&gt;anchor.next-&gt;prev = &amp;anc1-&gt;anchor;</div><div class='add'>+	anc2-&gt;last-&gt;next = first;</div><div class='add'>+	if (first) {</div><div class='add'>+	    first-&gt;prev = anc2-&gt;last;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    anc1-&gt;last = anc2-&gt;last;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    verify_list("append", anc1);</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define INSERT_LIST(anc1, anc2) INSERT_LIST(iseq, (anc1), (anc2))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if CPDEBUG &amp;&amp; 0</div><div class='add'>+static void</div><div class='add'>+debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *list = FIRST_ELEMENT(anchor);</div><div class='add'>+    printf("----\n");</div><div class='add'>+    printf("anch: %p, frst: %p, last: %p\n", &amp;anchor-&gt;anchor,</div><div class='add'>+	   anchor-&gt;anchor.next, anchor-&gt;last);</div><div class='add'>+    while (list) {</div><div class='add'>+	printf("curr: %p, next: %p, prev: %p, type: %d\n", list, list-&gt;next,</div><div class='add'>+	       list-&gt;prev, FIX2INT(list-&gt;type));</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    printf("----\n");</div><div class='add'>+</div><div class='add'>+    dump_disasm_list(anchor-&gt;anchor.next);</div><div class='add'>+    verify_list("debug list", anchor);</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define debug_list(anc) debug_list(iseq, (anc))</div><div class='add'>+#endif</div><div class='add'>+#else</div><div class='add'>+#define debug_list(anc) ((void)0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static TRACE *</div><div class='add'>+new_trace_body(rb_iseq_t *iseq, rb_event_flag_t event)</div><div class='add'>+{</div><div class='add'>+    TRACE *trace = compile_data_alloc_trace(iseq);</div><div class='add'>+</div><div class='add'>+    trace-&gt;link.type = ISEQ_ELEMENT_TRACE;</div><div class='add'>+    trace-&gt;link.next = NULL;</div><div class='add'>+    trace-&gt;event = event;</div><div class='add'>+</div><div class='add'>+    return trace;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LABEL *</div><div class='add'>+new_label_body(rb_iseq_t *iseq, long line)</div><div class='add'>+{</div><div class='add'>+    LABEL *labelobj = compile_data_alloc_label(iseq);</div><div class='add'>+</div><div class='add'>+    labelobj-&gt;link.type = ISEQ_ELEMENT_LABEL;</div><div class='add'>+    labelobj-&gt;link.next = 0;</div><div class='add'>+</div><div class='add'>+    labelobj-&gt;label_no = ISEQ_COMPILE_DATA(iseq)-&gt;label_no++;</div><div class='add'>+    labelobj-&gt;sc_state = 0;</div><div class='add'>+    labelobj-&gt;sp = -1;</div><div class='add'>+    labelobj-&gt;refcnt = 0;</div><div class='add'>+    labelobj-&gt;set = 0;</div><div class='add'>+    labelobj-&gt;rescued = LABEL_RESCUE_NONE;</div><div class='add'>+    labelobj-&gt;unremovable = 0;</div><div class='add'>+    return labelobj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ADJUST *</div><div class='add'>+new_adjust_body(rb_iseq_t *iseq, LABEL *label, int line)</div><div class='add'>+{</div><div class='add'>+    ADJUST *adjust = compile_data_alloc_adjust(iseq);</div><div class='add'>+    adjust-&gt;link.type = ISEQ_ELEMENT_ADJUST;</div><div class='add'>+    adjust-&gt;link.next = 0;</div><div class='add'>+    adjust-&gt;label = label;</div><div class='add'>+    adjust-&gt;line_no = line;</div><div class='add'>+    LABEL_UNREMOVABLE(label);</div><div class='add'>+    return adjust;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static INSN *</div><div class='add'>+new_insn_core(rb_iseq_t *iseq, int line_no,</div><div class='add'>+	      int insn_id, int argc, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    INSN *iobj = compile_data_alloc_insn(iseq);</div><div class='add'>+</div><div class='add'>+    /* printf("insn_id: %d, line: %d\n", insn_id, line_no); */</div><div class='add'>+</div><div class='add'>+    iobj-&gt;link.type = ISEQ_ELEMENT_INSN;</div><div class='add'>+    iobj-&gt;link.next = 0;</div><div class='add'>+    iobj-&gt;insn_id = insn_id;</div><div class='add'>+    iobj-&gt;insn_info.line_no = line_no;</div><div class='add'>+    iobj-&gt;insn_info.events = 0;</div><div class='add'>+    iobj-&gt;operands = argv;</div><div class='add'>+    iobj-&gt;operand_size = argc;</div><div class='add'>+    iobj-&gt;sc_state = 0;</div><div class='add'>+    return iobj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static INSN *</div><div class='add'>+new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int argc, ...)</div><div class='add'>+{</div><div class='add'>+    VALUE *operands = 0;</div><div class='add'>+    va_list argv;</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+	int i;</div><div class='add'>+	va_init_list(argv, argc);</div><div class='add'>+	operands = (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='add'>+	for (i = 0; i &lt; argc; i++) {</div><div class='add'>+	    VALUE v = va_arg(argv, VALUE);</div><div class='add'>+	    operands[i] = v;</div><div class='add'>+	}</div><div class='add'>+	va_end(argv);</div><div class='add'>+    }</div><div class='add'>+    return new_insn_core(iseq, line_no, insn_id, argc, operands);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_call_info *</div><div class='add'>+new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_call_info_kw_arg *kw_arg, int has_blockiseq)</div><div class='add'>+{</div><div class='add'>+    size_t size = kw_arg != NULL ? sizeof(struct rb_call_info_with_kwarg) : sizeof(struct rb_call_info);</div><div class='add'>+    struct rb_call_info *ci = (struct rb_call_info *)compile_data_alloc(iseq, size);</div><div class='add'>+    struct rb_call_info_with_kwarg *ci_kw = (struct rb_call_info_with_kwarg *)ci;</div><div class='add'>+</div><div class='add'>+    ci-&gt;mid = mid;</div><div class='add'>+    ci-&gt;flag = flag;</div><div class='add'>+    ci-&gt;orig_argc = argc;</div><div class='add'>+</div><div class='add'>+    if (kw_arg) {</div><div class='add'>+	ci-&gt;flag |= VM_CALL_KWARG;</div><div class='add'>+	ci_kw-&gt;kw_arg = kw_arg;</div><div class='add'>+	ci-&gt;orig_argc += kw_arg-&gt;keyword_len;</div><div class='add'>+	iseq-&gt;body-&gt;ci_kw_size++;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	iseq-&gt;body-&gt;ci_size++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!(ci-&gt;flag &amp; (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT)) &amp;&amp;</div><div class='add'>+	kw_arg == NULL &amp;&amp; !has_blockiseq) {</div><div class='add'>+	ci-&gt;flag |= VM_CALL_ARGS_SIMPLE;</div><div class='add'>+    }</div><div class='add'>+    return ci;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static INSN *</div><div class='add'>+new_insn_send(rb_iseq_t *iseq, int line_no, ID id, VALUE argc, const rb_iseq_t *blockiseq, VALUE flag, struct rb_call_info_kw_arg *keywords)</div><div class='add'>+{</div><div class='add'>+    VALUE *operands = (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * 3);</div><div class='add'>+    operands[0] = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL);</div><div class='add'>+    operands[1] = Qfalse; /* cache */</div><div class='add'>+    operands[2] = (VALUE)blockiseq;</div><div class='add'>+    return new_insn_core(iseq, line_no, BIN(send), 3, operands);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_iseq_t *</div><div class='add'>+new_child_iseq(rb_iseq_t *iseq, const NODE *const node,</div><div class='add'>+	       VALUE name, const rb_iseq_t *parent, enum iseq_type type, int line_no)</div><div class='add'>+{</div><div class='add'>+    rb_iseq_t *ret_iseq;</div><div class='add'>+</div><div class='add'>+    debugs("[new_child_iseq]&gt; ---------------------------------------\n");</div><div class='add'>+    ret_iseq = rb_iseq_new_with_opt(node, name,</div><div class='add'>+				    rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='add'>+				    INT2FIX(line_no), parent, type, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='add'>+    debugs("[new_child_iseq]&lt; ---------------------------------------\n");</div><div class='add'>+    iseq_add_mark_object(iseq, (VALUE)ret_iseq);</div><div class='add'>+    return ret_iseq;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_insert_nop_between_end_and_cont(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    VALUE catch_table_ary = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='add'>+    unsigned int i, tlen = (unsigned int)RARRAY_LEN(catch_table_ary);</div><div class='add'>+    const VALUE *tptr = RARRAY_CONST_PTR(catch_table_ary);</div><div class='add'>+    for (i = 0; i &lt; tlen; i++) {</div><div class='add'>+        const VALUE *ptr = RARRAY_CONST_PTR(tptr[i]);</div><div class='add'>+        LINK_ELEMENT *end = (LINK_ELEMENT *)(ptr[2] &amp; ~1);</div><div class='add'>+        LINK_ELEMENT *cont = (LINK_ELEMENT *)(ptr[4] &amp; ~1);</div><div class='add'>+        LINK_ELEMENT *e;</div><div class='add'>+        for (e = end; e &amp;&amp; (IS_LABEL(e) || IS_TRACE(e)); e = e-&gt;next) {</div><div class='add'>+            if (e == cont) {</div><div class='add'>+                INSN *nop = new_insn_core(iseq, 0, BIN(nop), 0, 0);</div><div class='add'>+                ELEM_INSERT_NEXT(end, &amp;nop-&gt;link);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_setup_insn(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    if (RTEST(ISEQ_COMPILE_DATA(iseq)-&gt;err_info))</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    /* debugs("[compile step 2] (iseq_array_to_linkedlist)\n"); */</div><div class='add'>+</div><div class='add'>+    if (compile_debug &gt; 5)</div><div class='add'>+	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 3.1 (iseq_optimize)]\n");</div><div class='add'>+    iseq_optimize(iseq, anchor);</div><div class='add'>+</div><div class='add'>+    if (compile_debug &gt; 5)</div><div class='add'>+	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;instructions_unification) {</div><div class='add'>+	debugs("[compile step 3.2 (iseq_insns_unification)]\n");</div><div class='add'>+	iseq_insns_unification(iseq, anchor);</div><div class='add'>+	if (compile_debug &gt; 5)</div><div class='add'>+	    dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;stack_caching) {</div><div class='add'>+	debugs("[compile step 3.3 (iseq_set_sequence_stackcaching)]\n");</div><div class='add'>+	iseq_set_sequence_stackcaching(iseq, anchor);</div><div class='add'>+	if (compile_debug &gt; 5)</div><div class='add'>+	    dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 3.4 (iseq_insert_nop_between_end_and_cont)]\n");</div><div class='add'>+    iseq_insert_nop_between_end_and_cont(iseq);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    if (RTEST(ISEQ_COMPILE_DATA(iseq)-&gt;err_info))</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 4.1 (iseq_set_sequence)]\n");</div><div class='add'>+    if (!iseq_set_sequence(iseq, anchor)) return COMPILE_NG;</div><div class='add'>+    if (compile_debug &gt; 5)</div><div class='add'>+	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 4.2 (iseq_set_exception_table)]\n");</div><div class='add'>+    if (!iseq_set_exception_table(iseq)) return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 4.3 (set_optargs_table)] \n");</div><div class='add'>+    if (!iseq_set_optargs_table(iseq)) return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 5 (iseq_translate_threaded_code)] \n");</div><div class='add'>+    if (!rb_iseq_translate_threaded_code(iseq)) return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    if (compile_debug &gt; 1) {</div><div class='add'>+	VALUE str = rb_iseq_disasm(iseq);</div><div class='add'>+	printf("%s\n", StringValueCStr(str));</div><div class='add'>+    }</div><div class='add'>+    debugs("[compile step: finish]\n");</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_set_exception_local_table(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    /* TODO: every id table is same -&gt; share it.</div><div class='add'>+     * Current problem is iseq_free().</div><div class='add'>+     */</div><div class='add'>+    ID id_dollar_bang;</div><div class='add'>+    ID *ids = (ID *)ALLOC_N(ID, 1);</div><div class='add'>+</div><div class='add'>+    CONST_ID(id_dollar_bang, "#$!");</div><div class='add'>+    iseq-&gt;body-&gt;local_table_size = 1;</div><div class='add'>+    ids[0] = id_dollar_bang;</div><div class='add'>+    iseq-&gt;body-&gt;local_table = ids;</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_lvar_level(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    int lev = 0;</div><div class='add'>+    while (iseq != iseq-&gt;body-&gt;local_iseq) {</div><div class='add'>+	lev++;</div><div class='add'>+	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+    }</div><div class='add'>+    return lev;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_dyna_var_idx_at_raw(const rb_iseq_t *iseq, ID id)</div><div class='add'>+{</div><div class='add'>+    unsigned int i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; iseq-&gt;body-&gt;local_table_size; i++) {</div><div class='add'>+	if (iseq-&gt;body-&gt;local_table[i] == id) {</div><div class='add'>+	    return (int)i;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return -1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_local_var_idx(const rb_iseq_t *iseq, ID id)</div><div class='add'>+{</div><div class='add'>+    int idx = get_dyna_var_idx_at_raw(iseq-&gt;body-&gt;local_iseq, id);</div><div class='add'>+</div><div class='add'>+    if (idx &lt; 0) {</div><div class='add'>+	rb_bug("get_local_var_idx: %d", idx);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return idx;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_dyna_var_idx(const rb_iseq_t *iseq, ID id, int *level, int *ls)</div><div class='add'>+{</div><div class='add'>+    int lv = 0, idx = -1;</div><div class='add'>+</div><div class='add'>+    while (iseq) {</div><div class='add'>+	idx = get_dyna_var_idx_at_raw(iseq, id);</div><div class='add'>+	if (idx &gt;= 0) {</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+	lv++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (idx &lt; 0) {</div><div class='add'>+	rb_bug("get_dyna_var_idx: -1");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *level = lv;</div><div class='add'>+    *ls = iseq-&gt;body-&gt;local_table_size;</div><div class='add'>+    return idx;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_local_block_param_p(const rb_iseq_t *iseq, unsigned int idx, unsigned int level)</div><div class='add'>+{</div><div class='add'>+    while (level &gt; 0) {</div><div class='add'>+	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+	level--;</div><div class='add'>+    }</div><div class='add'>+    if (iseq-&gt;body-&gt;local_iseq == iseq &amp;&amp; /* local variables */</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_block &amp;&amp;</div><div class='add'>+	iseq-&gt;body-&gt;local_table_size - iseq-&gt;body-&gt;param.block_start == idx) {</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level)</div><div class='add'>+{</div><div class='add'>+    if (iseq_local_block_param_p(iseq, idx, level)) {</div><div class='add'>+	ADD_INSN2(seq, line, getblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ADD_INSN2(seq, line, getlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level)</div><div class='add'>+{</div><div class='add'>+    if (iseq_local_block_param_p(iseq, idx, level)) {</div><div class='add'>+	ADD_INSN2(seq, line, setblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ADD_INSN2(seq, line, setlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_calc_param_size(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    if (iseq-&gt;body-&gt;param.flags.has_opt ||</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_post ||</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_rest ||</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_block ||</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_kw ||</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_kwrest) {</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;body-&gt;param.flags.has_block) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.block_start + 1;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;body-&gt;param.flags.has_kwrest) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.keyword-&gt;rest_start + 1;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;body-&gt;param.flags.has_kw) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.keyword-&gt;bits_start + 1;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;body-&gt;param.flags.has_post) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.post_start + iseq-&gt;body-&gt;param.post_num;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;body-&gt;param.flags.has_rest) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.rest_start + 1;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.lead_num + iseq-&gt;body-&gt;param.opt_num;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_bug("unreachable");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	iseq-&gt;body-&gt;param.size = iseq-&gt;body-&gt;param.lead_num;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_set_arguments_keywords(rb_iseq_t *iseq, LINK_ANCHOR *const optargs,</div><div class='add'>+			    const struct rb_args_info *args)</div><div class='add'>+{</div><div class='add'>+    const NODE *node = args-&gt;kw_args;</div><div class='add'>+    struct rb_iseq_param_keyword *keyword;</div><div class='add'>+    const VALUE default_values = rb_ary_tmp_new(1);</div><div class='add'>+    const VALUE complex_mark = rb_str_tmp_new(0);</div><div class='add'>+    int kw = 0, rkw = 0, di = 0, i;</div><div class='add'>+</div><div class='add'>+    iseq-&gt;body-&gt;param.flags.has_kw = TRUE;</div><div class='add'>+    iseq-&gt;body-&gt;param.keyword = keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1);</div><div class='add'>+    keyword-&gt;bits_start = get_dyna_var_idx_at_raw(iseq, args-&gt;kw_rest_arg-&gt;nd_cflag);</div><div class='add'>+</div><div class='add'>+    while (node) {</div><div class='add'>+	const NODE *val_node = node-&gt;nd_body-&gt;nd_value;</div><div class='add'>+	VALUE dv;</div><div class='add'>+</div><div class='add'>+	if (val_node == (const NODE *)-1) {</div><div class='add'>+	    ++rkw;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    switch (nd_type(val_node)) {</div><div class='add'>+	      case NODE_LIT:</div><div class='add'>+		dv = val_node-&gt;nd_lit;</div><div class='add'>+		iseq_add_mark_object(iseq, dv);</div><div class='add'>+		break;</div><div class='add'>+	      case NODE_NIL:</div><div class='add'>+		dv = Qnil;</div><div class='add'>+		break;</div><div class='add'>+	      case NODE_TRUE:</div><div class='add'>+		dv = Qtrue;</div><div class='add'>+		break;</div><div class='add'>+	      case NODE_FALSE:</div><div class='add'>+		dv = Qfalse;</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='add'>+		COMPILE_POPPED(optargs, "kwarg", node); /* nd_type(node) == NODE_KW_ARG */</div><div class='add'>+		dv = complex_mark;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    keyword-&gt;num = ++di;</div><div class='add'>+	    rb_ary_push(default_values, dv);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	kw++;</div><div class='add'>+	node = node-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    keyword-&gt;num = kw;</div><div class='add'>+</div><div class='add'>+    if (args-&gt;kw_rest_arg-&gt;nd_vid != 0) {</div><div class='add'>+	keyword-&gt;rest_start =  get_dyna_var_idx_at_raw(iseq, args-&gt;kw_rest_arg-&gt;nd_vid);</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+    }</div><div class='add'>+    keyword-&gt;required_num = rkw;</div><div class='add'>+    keyword-&gt;table = &amp;iseq-&gt;body-&gt;local_table[keyword-&gt;bits_start - keyword-&gt;num];</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+	VALUE *dvs = ALLOC_N(VALUE, RARRAY_LEN(default_values));</div><div class='add'>+</div><div class='add'>+	for (i = 0; i &lt; RARRAY_LEN(default_values); i++) {</div><div class='add'>+	    VALUE dv = RARRAY_AREF(default_values, i);</div><div class='add'>+	    if (dv == complex_mark) dv = Qundef;</div><div class='add'>+	    dvs[i] = dv;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	keyword-&gt;default_values = dvs;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *const optargs, const NODE *const node_args)</div><div class='add'>+{</div><div class='add'>+    debugs("iseq_set_arguments: %s\n", node_args ? "" : "0");</div><div class='add'>+</div><div class='add'>+    if (node_args) {</div><div class='add'>+	struct rb_args_info *args = node_args-&gt;nd_ainfo;</div><div class='add'>+	ID rest_id = 0;</div><div class='add'>+	int last_comma = 0;</div><div class='add'>+	ID block_id = 0;</div><div class='add'>+</div><div class='add'>+	EXPECT_NODE("iseq_set_arguments", node_args, NODE_ARGS, COMPILE_NG);</div><div class='add'>+</div><div class='add'>+	iseq-&gt;body-&gt;param.lead_num = (int)args-&gt;pre_args_num;</div><div class='add'>+	if (iseq-&gt;body-&gt;param.lead_num &gt; 0) iseq-&gt;body-&gt;param.flags.has_lead = TRUE;</div><div class='add'>+	debugs("  - argc: %d\n", iseq-&gt;body-&gt;param.lead_num);</div><div class='add'>+</div><div class='add'>+	rest_id = args-&gt;rest_arg;</div><div class='add'>+	if (rest_id == 1) {</div><div class='add'>+	    last_comma = 1;</div><div class='add'>+	    rest_id = 0;</div><div class='add'>+	}</div><div class='add'>+	block_id = args-&gt;block_arg;</div><div class='add'>+</div><div class='add'>+	if (args-&gt;first_post_arg) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.post_start = get_dyna_var_idx_at_raw(iseq, args-&gt;first_post_arg);</div><div class='add'>+	    iseq-&gt;body-&gt;param.post_num = args-&gt;post_args_num;</div><div class='add'>+	    iseq-&gt;body-&gt;param.flags.has_post = TRUE;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (args-&gt;opt_args) {</div><div class='add'>+	    const NODE *node = args-&gt;opt_args;</div><div class='add'>+	    LABEL *label;</div><div class='add'>+	    VALUE labels = rb_ary_tmp_new(1);</div><div class='add'>+	    VALUE *opt_table;</div><div class='add'>+	    int i = 0, j;</div><div class='add'>+</div><div class='add'>+	    while (node) {</div><div class='add'>+		label = NEW_LABEL(nd_line(node));</div><div class='add'>+		rb_ary_push(labels, (VALUE)label | 1);</div><div class='add'>+		ADD_LABEL(optargs, label);</div><div class='add'>+		COMPILE_POPPED(optargs, "optarg", node-&gt;nd_body);</div><div class='add'>+		node = node-&gt;nd_next;</div><div class='add'>+		i += 1;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    /* last label */</div><div class='add'>+	    label = NEW_LABEL(nd_line(node_args));</div><div class='add'>+	    rb_ary_push(labels, (VALUE)label | 1);</div><div class='add'>+	    ADD_LABEL(optargs, label);</div><div class='add'>+</div><div class='add'>+	    opt_table = ALLOC_N(VALUE, i+1);</div><div class='add'>+</div><div class='add'>+	    MEMCPY(opt_table, RARRAY_CONST_PTR(labels), VALUE, i+1);</div><div class='add'>+	    for (j = 0; j &lt; i+1; j++) {</div><div class='add'>+		opt_table[j] &amp;= ~1;</div><div class='add'>+	    }</div><div class='add'>+	    rb_ary_clear(labels);</div><div class='add'>+</div><div class='add'>+	    iseq-&gt;body-&gt;param.flags.has_opt = TRUE;</div><div class='add'>+	    iseq-&gt;body-&gt;param.opt_num = i;</div><div class='add'>+	    iseq-&gt;body-&gt;param.opt_table = opt_table;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (args-&gt;kw_args) {</div><div class='add'>+	    iseq_set_arguments_keywords(iseq, optargs, args);</div><div class='add'>+	}</div><div class='add'>+	else if (args-&gt;kw_rest_arg) {</div><div class='add'>+	    struct rb_iseq_param_keyword *keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1);</div><div class='add'>+	    keyword-&gt;rest_start = get_dyna_var_idx_at_raw(iseq, args-&gt;kw_rest_arg-&gt;nd_vid);</div><div class='add'>+	    iseq-&gt;body-&gt;param.keyword = keyword;</div><div class='add'>+	    iseq-&gt;body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (args-&gt;pre_init) { /* m_init */</div><div class='add'>+	    COMPILE_POPPED(optargs, "init arguments (m)", args-&gt;pre_init);</div><div class='add'>+	}</div><div class='add'>+	if (args-&gt;post_init) { /* p_init */</div><div class='add'>+	    COMPILE_POPPED(optargs, "init arguments (p)", args-&gt;post_init);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (rest_id) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.rest_start = get_dyna_var_idx_at_raw(iseq, rest_id);</div><div class='add'>+	    iseq-&gt;body-&gt;param.flags.has_rest = TRUE;</div><div class='add'>+	    assert(iseq-&gt;body-&gt;param.rest_start != -1);</div><div class='add'>+</div><div class='add'>+	    if (iseq-&gt;body-&gt;param.post_start == 0) { /* TODO: why that? */</div><div class='add'>+		iseq-&gt;body-&gt;param.post_start = iseq-&gt;body-&gt;param.rest_start + 1;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (block_id) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.block_start = get_dyna_var_idx_at_raw(iseq, block_id);</div><div class='add'>+	    iseq-&gt;body-&gt;param.flags.has_block = TRUE;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	iseq_calc_param_size(iseq);</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+	    if (iseq-&gt;body-&gt;param.flags.has_opt    == FALSE &amp;&amp;</div><div class='add'>+		iseq-&gt;body-&gt;param.flags.has_post   == FALSE &amp;&amp;</div><div class='add'>+		iseq-&gt;body-&gt;param.flags.has_rest   == FALSE &amp;&amp;</div><div class='add'>+		iseq-&gt;body-&gt;param.flags.has_kw     == FALSE &amp;&amp;</div><div class='add'>+		iseq-&gt;body-&gt;param.flags.has_kwrest == FALSE) {</div><div class='add'>+</div><div class='add'>+		if (iseq-&gt;body-&gt;param.lead_num == 1 &amp;&amp; last_comma == 0) {</div><div class='add'>+		    /* {|a|} */</div><div class='add'>+		    iseq-&gt;body-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_set_local_table(rb_iseq_t *iseq, const ID *tbl)</div><div class='add'>+{</div><div class='add'>+    unsigned int size;</div><div class='add'>+</div><div class='add'>+    if (tbl) {</div><div class='add'>+	size = (unsigned int)*tbl;</div><div class='add'>+	tbl++;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	size = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (size &gt; 0) {</div><div class='add'>+	ID *ids = (ID *)ALLOC_N(ID, size);</div><div class='add'>+	MEMCPY(ids, tbl, ID, size);</div><div class='add'>+	iseq-&gt;body-&gt;local_table = ids;</div><div class='add'>+    }</div><div class='add'>+    iseq-&gt;body-&gt;local_table_size = size;</div><div class='add'>+</div><div class='add'>+    debugs("iseq_set_local_table: %u\n", iseq-&gt;body-&gt;local_table_size);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cdhash_cmp(VALUE val, VALUE lit)</div><div class='add'>+{</div><div class='add'>+    if (val == lit) return 0;</div><div class='add'>+    if (SPECIAL_CONST_P(lit)) {</div><div class='add'>+	return val != lit;</div><div class='add'>+    }</div><div class='add'>+    if (SPECIAL_CONST_P(val) || BUILTIN_TYPE(val) != BUILTIN_TYPE(lit)) {</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    if (BUILTIN_TYPE(lit) == T_STRING) {</div><div class='add'>+	return rb_str_hash_cmp(lit, val);</div><div class='add'>+    }</div><div class='add'>+    return !rb_eql(lit, val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static st_index_t</div><div class='add'>+cdhash_hash(VALUE a)</div><div class='add'>+{</div><div class='add'>+    if (SPECIAL_CONST_P(a)) return (st_index_t)a;</div><div class='add'>+    if (RB_TYPE_P(a, T_STRING)) return rb_str_hash(a);</div><div class='add'>+    {</div><div class='add'>+	VALUE hval = rb_hash(a);</div><div class='add'>+	return (st_index_t)FIX2LONG(hval);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct st_hash_type cdhash_type = {</div><div class='add'>+    cdhash_cmp,</div><div class='add'>+    cdhash_hash,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct cdhash_set_label_struct {</div><div class='add'>+    VALUE hash;</div><div class='add'>+    int pos;</div><div class='add'>+    int len;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cdhash_set_label_i(VALUE key, VALUE val, void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct cdhash_set_label_struct *data = (struct cdhash_set_label_struct *)ptr;</div><div class='add'>+    LABEL *lobj = (LABEL *)(val &amp; ~1);</div><div class='add'>+    rb_hash_aset(data-&gt;hash, key, INT2FIX(lobj-&gt;position - (data-&gt;pos+data-&gt;len)));</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+get_ivar_ic_value(rb_iseq_t *iseq,ID id)</div><div class='add'>+{</div><div class='add'>+    VALUE val;</div><div class='add'>+    struct rb_id_table *tbl = ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table;</div><div class='add'>+    if (tbl) {</div><div class='add'>+	if (rb_id_table_lookup(tbl,id,&amp;val)) {</div><div class='add'>+	    return val;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	tbl = rb_id_table_create(1);</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table = tbl;</div><div class='add'>+    }</div><div class='add'>+    val = INT2FIX(iseq-&gt;body-&gt;is_size++);</div><div class='add'>+    rb_id_table_insert(tbl,id,val);</div><div class='add'>+    return val;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define BADINSN_DUMP(anchor, list, dest) \</div><div class='add'>+    dump_disasm_list_with_cursor(&amp;anchor-&gt;anchor, list, dest)</div><div class='add'>+</div><div class='add'>+#define BADINSN_ERROR \</div><div class='add'>+    (xfree(generated_iseq), \</div><div class='add'>+     xfree(insns_info), \</div><div class='add'>+     BADINSN_DUMP(anchor, list, NULL), \</div><div class='add'>+     COMPILE_ERROR)</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    int stack_max = 0, sp = 0, line = 0;</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+</div><div class='add'>+    for (list = FIRST_ELEMENT(anchor); list; list = list-&gt;next) {</div><div class='add'>+	if (list-&gt;type == ISEQ_ELEMENT_LABEL) {</div><div class='add'>+	    LABEL *lobj = (LABEL *)list;</div><div class='add'>+	    lobj-&gt;set = TRUE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (list = FIRST_ELEMENT(anchor); list; list = list-&gt;next) {</div><div class='add'>+	switch (list-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	    {</div><div class='add'>+		int j, len, insn;</div><div class='add'>+		const char *types;</div><div class='add'>+		VALUE *operands;</div><div class='add'>+		INSN *iobj = (INSN *)list;</div><div class='add'>+</div><div class='add'>+		/* update sp */</div><div class='add'>+		sp = calc_sp_depth(sp, iobj);</div><div class='add'>+		if (sp &lt; 0) {</div><div class='add'>+		    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+		    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+				  "argument stack underflow (%d)", sp);</div><div class='add'>+		    return -1;</div><div class='add'>+		}</div><div class='add'>+		if (sp &gt; stack_max) {</div><div class='add'>+		    stack_max = sp;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		line = iobj-&gt;insn_info.line_no;</div><div class='add'>+		/* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='add'>+		operands = iobj-&gt;operands;</div><div class='add'>+		insn = iobj-&gt;insn_id;</div><div class='add'>+		types = insn_op_types(insn);</div><div class='add'>+		len = insn_len(insn);</div><div class='add'>+</div><div class='add'>+		/* operand check */</div><div class='add'>+		if (iobj-&gt;operand_size != len - 1) {</div><div class='add'>+		    /* printf("operand size miss! (%d, %d)\n", iobj-&gt;operand_size, len); */</div><div class='add'>+		    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+		    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+				  "operand size miss! (%d for %d)",</div><div class='add'>+				  iobj-&gt;operand_size, len - 1);</div><div class='add'>+		    return -1;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		for (j = 0; types[j]; j++) {</div><div class='add'>+		    if (types[j] == TS_OFFSET) {</div><div class='add'>+			/* label(destination position) */</div><div class='add'>+			LABEL *lobj = (LABEL *)operands[j];</div><div class='add'>+			if (!lobj-&gt;set) {</div><div class='add'>+			    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+			    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+					  "unknown label: "LABEL_FORMAT, lobj-&gt;label_no);</div><div class='add'>+			    return -1;</div><div class='add'>+			}</div><div class='add'>+			if (lobj-&gt;sp == -1) {</div><div class='add'>+			    lobj-&gt;sp = sp;</div><div class='add'>+			}</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    {</div><div class='add'>+		LABEL *lobj = (LABEL *)list;</div><div class='add'>+		if (lobj-&gt;sp == -1) {</div><div class='add'>+		    lobj-&gt;sp = sp;</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    sp = lobj-&gt;sp;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_TRACE:</div><div class='add'>+	    {</div><div class='add'>+		/* ignore */</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    {</div><div class='add'>+		ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+		int orig_sp = sp;</div><div class='add'>+</div><div class='add'>+		sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='add'>+		if (adjust-&gt;line_no != -1 &amp;&amp; orig_sp - sp &lt; 0) {</div><div class='add'>+		    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+		    COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='add'>+				  "iseq_set_sequence: adjust bug %d &lt; %d",</div><div class='add'>+				  orig_sp, sp);</div><div class='add'>+		    return -1;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default:</div><div class='add'>+	    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+	    COMPILE_ERROR(iseq, line, "unknown list type: %d", list-&gt;type);</div><div class='add'>+	    return -1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return stack_max;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+add_insn_info(struct iseq_insn_info_entry *insns_info, int insns_info_index, int code_index, LINK_ELEMENT *list)</div><div class='add'>+{</div><div class='add'>+    if (list-&gt;type == ISEQ_ELEMENT_INSN) {</div><div class='add'>+	INSN *iobj = (INSN *)list;</div><div class='add'>+	if (insns_info_index == 0 ||</div><div class='add'>+	    insns_info[insns_info_index-1].line_no != iobj-&gt;insn_info.line_no ||</div><div class='add'>+	    insns_info[insns_info_index-1].events  != iobj-&gt;insn_info.events) {</div><div class='add'>+	    insns_info[insns_info_index].position   = code_index;</div><div class='add'>+	    insns_info[insns_info_index].line_no    = iobj-&gt;insn_info.line_no;</div><div class='add'>+	    insns_info[insns_info_index].events     = iobj-&gt;insn_info.events;</div><div class='add'>+	    return TRUE;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    return FALSE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (list-&gt;type == ISEQ_ELEMENT_ADJUST) {</div><div class='add'>+	ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+	if (insns_info_index &gt; 0 ||</div><div class='add'>+	    insns_info[insns_info_index-1].line_no != adjust-&gt;line_no) {</div><div class='add'>+	    insns_info[insns_info_index].position   = code_index;</div><div class='add'>+	    insns_info[insns_info_index].line_no    = adjust-&gt;line_no;</div><div class='add'>+	    insns_info[insns_info_index].events     = 0;</div><div class='add'>+	    return TRUE;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    return FALSE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VM_UNREACHABLE(add_insn_info);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+  ruby insn object list -&gt; raw instruction sequence</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    struct iseq_insn_info_entry *insns_info;</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    VALUE *generated_iseq;</div><div class='add'>+    rb_event_flag_t events = 0;</div><div class='add'>+</div><div class='add'>+    int insn_num, code_index, insns_info_index, sp = 0;</div><div class='add'>+    int stack_max = fix_sp_depth(iseq, anchor);</div><div class='add'>+</div><div class='add'>+    if (stack_max &lt; 0) return COMPILE_NG;</div><div class='add'>+</div><div class='add'>+    /* fix label position */</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    insn_num = code_index = 0;</div><div class='add'>+    while (list) {</div><div class='add'>+	switch (list-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	    {</div><div class='add'>+		INSN *iobj = (INSN *)list;</div><div class='add'>+		/* update sp */</div><div class='add'>+		sp = calc_sp_depth(sp, iobj);</div><div class='add'>+		code_index += insn_data_length(iobj);</div><div class='add'>+		insn_num++;</div><div class='add'>+		iobj-&gt;insn_info.events |= events;</div><div class='add'>+		events = 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    {</div><div class='add'>+		LABEL *lobj = (LABEL *)list;</div><div class='add'>+		lobj-&gt;position = code_index;</div><div class='add'>+		sp = lobj-&gt;sp;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_TRACE:</div><div class='add'>+	    {</div><div class='add'>+		TRACE *trace = (TRACE *)list;</div><div class='add'>+		events |= trace-&gt;event;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    {</div><div class='add'>+		ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+		if (adjust-&gt;line_no != -1) {</div><div class='add'>+		    int orig_sp = sp;</div><div class='add'>+		    sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='add'>+		    if (orig_sp - sp &gt; 0) {</div><div class='add'>+			if (orig_sp - sp &gt; 1) code_index++; /* 1 operand */</div><div class='add'>+			code_index++; /* insn */</div><div class='add'>+			insn_num++;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* make instruction sequence */</div><div class='add'>+    generated_iseq = ALLOC_N(VALUE, code_index);</div><div class='add'>+    insns_info = ALLOC_N(struct iseq_insn_info_entry, insn_num);</div><div class='add'>+    iseq-&gt;body-&gt;is_entries = ZALLOC_N(union iseq_inline_storage_entry, iseq-&gt;body-&gt;is_size);</div><div class='add'>+    iseq-&gt;body-&gt;ci_entries = (struct rb_call_info *)ruby_xmalloc(sizeof(struct rb_call_info) * iseq-&gt;body-&gt;ci_size +</div><div class='add'>+								 sizeof(struct rb_call_info_with_kwarg) * iseq-&gt;body-&gt;ci_kw_size);</div><div class='add'>+    MEMZERO(iseq-&gt;body-&gt;ci_entries + iseq-&gt;body-&gt;ci_size, struct rb_call_info_with_kwarg,  iseq-&gt;body-&gt;ci_kw_size); /* need to clear ci_kw entries */</div><div class='add'>+    iseq-&gt;body-&gt;cc_entries = ZALLOC_N(struct rb_call_cache, iseq-&gt;body-&gt;ci_size + iseq-&gt;body-&gt;ci_kw_size);</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ci_index = ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index = 0;</div><div class='add'>+</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    insns_info_index = code_index = sp = 0;</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	switch (list-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	    {</div><div class='add'>+		int j, len, insn;</div><div class='add'>+		const char *types;</div><div class='add'>+		VALUE *operands;</div><div class='add'>+		INSN *iobj = (INSN *)list;</div><div class='add'>+</div><div class='add'>+		/* update sp */</div><div class='add'>+		sp = calc_sp_depth(sp, iobj);</div><div class='add'>+		/* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='add'>+		operands = iobj-&gt;operands;</div><div class='add'>+		insn = iobj-&gt;insn_id;</div><div class='add'>+		generated_iseq[code_index] = insn;</div><div class='add'>+		types = insn_op_types(insn);</div><div class='add'>+		len = insn_len(insn);</div><div class='add'>+</div><div class='add'>+		for (j = 0; types[j]; j++) {</div><div class='add'>+		    char type = types[j];</div><div class='add'>+		    /* printf("--&gt; [%c - (%d-%d)]\n", type, k, j); */</div><div class='add'>+		    switch (type) {</div><div class='add'>+		      case TS_OFFSET:</div><div class='add'>+			{</div><div class='add'>+			    /* label(destination position) */</div><div class='add'>+			    LABEL *lobj = (LABEL *)operands[j];</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = lobj-&gt;position - (code_index + len);</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_CDHASH:</div><div class='add'>+			{</div><div class='add'>+			    VALUE map = operands[j];</div><div class='add'>+			    struct cdhash_set_label_struct data;</div><div class='add'>+                            data.hash = map;</div><div class='add'>+                            data.pos = code_index;</div><div class='add'>+                            data.len = len;</div><div class='add'>+			    rb_hash_foreach(map, cdhash_set_label_i, (VALUE)&amp;data);</div><div class='add'>+</div><div class='add'>+			    rb_hash_rehash(map);</div><div class='add'>+			    freeze_hide_obj(map);</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = map;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_LINDEX:</div><div class='add'>+		      case TS_NUM:	/* ulong */</div><div class='add'>+			generated_iseq[code_index + 1 + j] = FIX2INT(operands[j]);</div><div class='add'>+			break;</div><div class='add'>+		      case TS_ISEQ:	/* iseq */</div><div class='add'>+			{</div><div class='add'>+			    VALUE v = operands[j];</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = v;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_VALUE:	/* VALUE */</div><div class='add'>+			{</div><div class='add'>+			    VALUE v = operands[j];</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = v;</div><div class='add'>+			    /* to mark ruby object */</div><div class='add'>+			    iseq_add_mark_object(iseq, v);</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_IC: /* inline cache */</div><div class='add'>+			{</div><div class='add'>+			    unsigned int ic_index = FIX2UINT(operands[j]);</div><div class='add'>+			    IC ic = (IC)&amp;iseq-&gt;body-&gt;is_entries[ic_index];</div><div class='add'>+			    if (UNLIKELY(ic_index &gt;= iseq-&gt;body-&gt;is_size)) {</div><div class='add'>+				rb_bug("iseq_set_sequence: ic_index overflow: index: %d, size: %d", ic_index, iseq-&gt;body-&gt;is_size);</div><div class='add'>+			    }</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = (VALUE)ic;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_CALLINFO: /* call info */</div><div class='add'>+			{</div><div class='add'>+			    struct rb_call_info *base_ci = (struct rb_call_info *)operands[j];</div><div class='add'>+			    struct rb_call_info *ci;</div><div class='add'>+</div><div class='add'>+			    if (base_ci-&gt;flag &amp; VM_CALL_KWARG) {</div><div class='add'>+				struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;iseq-&gt;body-&gt;ci_entries[iseq-&gt;body-&gt;ci_size];</div><div class='add'>+				struct rb_call_info_with_kwarg *ci_kw = &amp;ci_kw_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index++];</div><div class='add'>+				*ci_kw = *((struct rb_call_info_with_kwarg *)base_ci);</div><div class='add'>+				ci = (struct rb_call_info *)ci_kw;</div><div class='add'>+				assert(ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index &lt;= iseq-&gt;body-&gt;ci_kw_size);</div><div class='add'>+			    }</div><div class='add'>+			    else {</div><div class='add'>+				ci = &amp;iseq-&gt;body-&gt;ci_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_index++];</div><div class='add'>+				*ci = *base_ci;</div><div class='add'>+				assert(ISEQ_COMPILE_DATA(iseq)-&gt;ci_index &lt;= iseq-&gt;body-&gt;ci_size);</div><div class='add'>+			    }</div><div class='add'>+</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = (VALUE)ci;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_CALLCACHE:</div><div class='add'>+			{</div><div class='add'>+			    struct rb_call_cache *cc = &amp;iseq-&gt;body-&gt;cc_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_index + ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index - 1];</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = (VALUE)cc;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_ID: /* ID */</div><div class='add'>+			generated_iseq[code_index + 1 + j] = SYM2ID(operands[j]);</div><div class='add'>+			break;</div><div class='add'>+		      case TS_GENTRY:</div><div class='add'>+			{</div><div class='add'>+			    struct rb_global_entry *entry =</div><div class='add'>+				(struct rb_global_entry *)(operands[j] &amp; (~1));</div><div class='add'>+			    generated_iseq[code_index + 1 + j] = (VALUE)entry;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      case TS_FUNCPTR:</div><div class='add'>+			generated_iseq[code_index + 1 + j] = operands[j];</div><div class='add'>+			break;</div><div class='add'>+		      default:</div><div class='add'>+			BADINSN_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+				      "unknown operand type: %c", type);</div><div class='add'>+			return COMPILE_NG;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		if (add_insn_info(insns_info, insns_info_index, code_index, (LINK_ELEMENT *)iobj)) insns_info_index++;</div><div class='add'>+		code_index += len;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    {</div><div class='add'>+		LABEL *lobj = (LABEL *)list;</div><div class='add'>+		sp = lobj-&gt;sp;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    {</div><div class='add'>+		ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+		int orig_sp = sp;</div><div class='add'>+</div><div class='add'>+		if (adjust-&gt;label) {</div><div class='add'>+		    sp = adjust-&gt;label-&gt;sp;</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    sp = 0;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (adjust-&gt;line_no != -1) {</div><div class='add'>+		    const int diff = orig_sp - sp;</div><div class='add'>+		    if (diff &gt; 0) {</div><div class='add'>+			if (add_insn_info(insns_info, insns_info_index, code_index, (LINK_ELEMENT *)adjust)) insns_info_index++;</div><div class='add'>+		    }</div><div class='add'>+		    if (diff &gt; 1) {</div><div class='add'>+			generated_iseq[code_index++] = BIN(adjuststack);</div><div class='add'>+			generated_iseq[code_index++] = orig_sp - sp;</div><div class='add'>+		    }</div><div class='add'>+		    else if (diff == 1) {</div><div class='add'>+			generated_iseq[code_index++] = BIN(pop);</div><div class='add'>+		    }</div><div class='add'>+		    else if (diff &lt; 0) {</div><div class='add'>+			int label_no = adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1;</div><div class='add'>+			xfree(generated_iseq);</div><div class='add'>+			xfree(insns_info);</div><div class='add'>+			debug_list(anchor);</div><div class='add'>+			COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='add'>+				      "iseq_set_sequence: adjust bug to %d %d &lt; %d",</div><div class='add'>+				      label_no, orig_sp, sp);</div><div class='add'>+			return COMPILE_NG;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default:</div><div class='add'>+	    /* ignore */</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    iseq-&gt;body-&gt;iseq_encoded = (void *)generated_iseq;</div><div class='add'>+    iseq-&gt;body-&gt;iseq_size = code_index;</div><div class='add'>+    iseq-&gt;body-&gt;stack_max = stack_max;</div><div class='add'>+</div><div class='add'>+    /* get rid of memory leak when REALLOC failed */</div><div class='add'>+    iseq-&gt;body-&gt;insns_info = insns_info;</div><div class='add'>+</div><div class='add'>+    REALLOC_N(insns_info, struct iseq_insn_info_entry, insns_info_index);</div><div class='add'>+    iseq-&gt;body-&gt;insns_info = insns_info;</div><div class='add'>+    iseq-&gt;body-&gt;insns_info_size = insns_info_index;</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+label_get_position(LABEL *lobj)</div><div class='add'>+{</div><div class='add'>+    return lobj-&gt;position;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+label_get_sp(LABEL *lobj)</div><div class='add'>+{</div><div class='add'>+    return lobj-&gt;sp;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_set_exception_table(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const VALUE *tptr, *ptr;</div><div class='add'>+    unsigned int tlen, i;</div><div class='add'>+    struct iseq_catch_table_entry *entry;</div><div class='add'>+</div><div class='add'>+    tlen = (int)RARRAY_LEN(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary);</div><div class='add'>+    tptr = RARRAY_CONST_PTR(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary);</div><div class='add'>+</div><div class='add'>+    if (tlen &gt; 0) {</div><div class='add'>+	struct iseq_catch_table *table = xmalloc(iseq_catch_table_bytes(tlen));</div><div class='add'>+	table-&gt;size = tlen;</div><div class='add'>+</div><div class='add'>+	for (i = 0; i &lt; table-&gt;size; i++) {</div><div class='add'>+	    ptr = RARRAY_CONST_PTR(tptr[i]);</div><div class='add'>+	    entry = &amp;table-&gt;entries[i];</div><div class='add'>+	    entry-&gt;type = (enum catch_type)(ptr[0] &amp; 0xffff);</div><div class='add'>+	    entry-&gt;start = label_get_position((LABEL *)(ptr[1] &amp; ~1));</div><div class='add'>+	    entry-&gt;end = label_get_position((LABEL *)(ptr[2] &amp; ~1));</div><div class='add'>+	    entry-&gt;iseq = (rb_iseq_t *)ptr[3];</div><div class='add'>+</div><div class='add'>+	    /* register iseq as mark object */</div><div class='add'>+	    if (entry-&gt;iseq != 0) {</div><div class='add'>+		iseq_add_mark_object(iseq, (VALUE)entry-&gt;iseq);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    /* stack depth */</div><div class='add'>+	    if (ptr[4]) {</div><div class='add'>+		LABEL *lobj = (LABEL *)(ptr[4] &amp; ~1);</div><div class='add'>+		entry-&gt;cont = label_get_position(lobj);</div><div class='add'>+		entry-&gt;sp = label_get_sp(lobj);</div><div class='add'>+</div><div class='add'>+		/* TODO: Dirty Hack!  Fix me */</div><div class='add'>+		if (entry-&gt;type == CATCH_TYPE_RESCUE ||</div><div class='add'>+		    entry-&gt;type == CATCH_TYPE_BREAK ||</div><div class='add'>+		    entry-&gt;type == CATCH_TYPE_NEXT) {</div><div class='add'>+		    entry-&gt;sp--;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		entry-&gt;cont = 0;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	iseq-&gt;body-&gt;catch_table = table;</div><div class='add'>+	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, 0); /* free */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	iseq-&gt;body-&gt;catch_table = NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * set optional argument table</div><div class='add'>+ *   def foo(a, b=expr1, c=expr2)</div><div class='add'>+ *   =&gt;</div><div class='add'>+ *    b:</div><div class='add'>+ *      expr1</div><div class='add'>+ *    c:</div><div class='add'>+ *      expr2</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+iseq_set_optargs_table(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    VALUE *opt_table = (VALUE *)iseq-&gt;body-&gt;param.opt_table;</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='add'>+	for (i = 0; i &lt; iseq-&gt;body-&gt;param.opt_num + 1; i++) {</div><div class='add'>+	    opt_table[i] = label_get_position((LABEL *)opt_table[i]);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+get_destination_insn(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    LABEL *lobj = (LABEL *)OPERAND_AT(iobj, 0);</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    rb_event_flag_t events = 0;</div><div class='add'>+</div><div class='add'>+    list = lobj-&gt;link.next;</div><div class='add'>+    while (list) {</div><div class='add'>+	switch (list-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    goto found;</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    /* ignore */</div><div class='add'>+	    break;</div><div class='add'>+	  case ISEQ_ELEMENT_TRACE:</div><div class='add'>+	    {</div><div class='add'>+		TRACE *trace = (TRACE *)list;</div><div class='add'>+		events |= trace-&gt;event;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+  found:</div><div class='add'>+    if (list &amp;&amp; IS_INSN(list)) {</div><div class='add'>+	INSN *iobj = (INSN *)list;</div><div class='add'>+	iobj-&gt;insn_info.events |= events;</div><div class='add'>+    }</div><div class='add'>+    return list;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+get_next_insn(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *list = iobj-&gt;link.next;</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='add'>+	    return list;</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+get_prev_insn(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *list = iobj-&gt;link.prev;</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='add'>+	    return list;</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;prev;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+unref_destination(INSN *iobj, int pos)</div><div class='add'>+{</div><div class='add'>+    LABEL *lobj = (LABEL *)OPERAND_AT(iobj, pos);</div><div class='add'>+    --lobj-&gt;refcnt;</div><div class='add'>+    if (!lobj-&gt;refcnt) ELEM_REMOVE(&amp;lobj-&gt;link);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+replace_destination(INSN *dobj, INSN *nobj)</div><div class='add'>+{</div><div class='add'>+    VALUE n = OPERAND_AT(nobj, 0);</div><div class='add'>+    LABEL *dl = (LABEL *)OPERAND_AT(dobj, 0);</div><div class='add'>+    LABEL *nl = (LABEL *)n;</div><div class='add'>+    --dl-&gt;refcnt;</div><div class='add'>+    ++nl-&gt;refcnt;</div><div class='add'>+    OPERAND_AT(dobj, 0) = n;</div><div class='add'>+    if (!dl-&gt;refcnt) ELEM_REMOVE(&amp;dl-&gt;link);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LABEL*</div><div class='add'>+find_destination(INSN *i)</div><div class='add'>+{</div><div class='add'>+    int pos, len = insn_len(i-&gt;insn_id);</div><div class='add'>+    for (pos = 0; pos &lt; len; ++pos) {</div><div class='add'>+	if (insn_op_types(i-&gt;insn_id)[pos] == TS_OFFSET) {</div><div class='add'>+	    return (LABEL *)OPERAND_AT(i, pos);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+remove_unreachable_chunk(rb_iseq_t *iseq, LINK_ELEMENT *i)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *first = i, *end;</div><div class='add'>+    int *unref_counts = 0, nlabels = ISEQ_COMPILE_DATA(iseq)-&gt;label_no;</div><div class='add'>+</div><div class='add'>+    if (!i) return 0;</div><div class='add'>+    unref_counts = ALLOCA_N(int, nlabels);</div><div class='add'>+    MEMZERO(unref_counts, int, nlabels);</div><div class='add'>+    end = i;</div><div class='add'>+    do {</div><div class='add'>+	LABEL *lab;</div><div class='add'>+	if (IS_INSN(i)) {</div><div class='add'>+	    if (IS_INSN_ID(i, leave)) {</div><div class='add'>+		end = i;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if ((lab = find_destination((INSN *)i)) != 0) {</div><div class='add'>+		if (lab-&gt;unremovable) break;</div><div class='add'>+		unref_counts[lab-&gt;label_no]++;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (IS_LABEL(i)) {</div><div class='add'>+	    lab = (LABEL *)i;</div><div class='add'>+	    if (lab-&gt;unremovable) return 0;</div><div class='add'>+	    if (lab-&gt;refcnt &gt; unref_counts[lab-&gt;label_no]) {</div><div class='add'>+		if (i == first) return 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	else if (IS_TRACE(i)) {</div><div class='add'>+	    /* do nothing */</div><div class='add'>+	}</div><div class='add'>+	else if (IS_ADJUST(i)) {</div><div class='add'>+	    LABEL *dest = ((ADJUST *)i)-&gt;label;</div><div class='add'>+	    if (dest &amp;&amp; dest-&gt;unremovable) return 0;</div><div class='add'>+	}</div><div class='add'>+	end = i;</div><div class='add'>+    } while ((i = i-&gt;next) != 0);</div><div class='add'>+    i = first;</div><div class='add'>+    do {</div><div class='add'>+	if (IS_INSN(i)) {</div><div class='add'>+	    struct rb_iseq_constant_body *body = iseq-&gt;body;</div><div class='add'>+	    VALUE insn = INSN_OF(i);</div><div class='add'>+	    int pos, len = insn_len(insn);</div><div class='add'>+	    for (pos = 0; pos &lt; len; ++pos) {</div><div class='add'>+		switch (insn_op_types(insn)[pos]) {</div><div class='add'>+		  case TS_OFFSET:</div><div class='add'>+		    unref_destination((INSN *)i, pos);</div><div class='add'>+		    break;</div><div class='add'>+		  case TS_CALLINFO:</div><div class='add'>+		    if (((struct rb_call_info *)OPERAND_AT(i, pos))-&gt;flag &amp; VM_CALL_KWARG)</div><div class='add'>+			--(body-&gt;ci_kw_size);</div><div class='add'>+		    else</div><div class='add'>+			--(body-&gt;ci_size);</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	ELEM_REMOVE(i);</div><div class='add'>+    } while ((i != end) &amp;&amp; (i = i-&gt;next) != 0);</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_pop_newarray(rb_iseq_t *iseq, INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    switch (OPERAND_AT(iobj, 0)) {</div><div class='add'>+      case INT2FIX(0): /* empty array */</div><div class='add'>+	ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	return TRUE;</div><div class='add'>+      case INT2FIX(1): /* single element array */</div><div class='add'>+	ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	return FALSE;</div><div class='add'>+      default:</div><div class='add'>+	iobj-&gt;insn_id = BIN(adjuststack);</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+same_debug_pos_p(LINK_ELEMENT *iobj1, LINK_ELEMENT *iobj2)</div><div class='add'>+{</div><div class='add'>+    VALUE debug1 = OPERAND_AT(iobj1, 0);</div><div class='add'>+    VALUE debug2 = OPERAND_AT(iobj2, 0);</div><div class='add'>+    if (debug1 == debug2) return TRUE;</div><div class='add'>+    if (!RB_TYPE_P(debug1, T_ARRAY)) return FALSE;</div><div class='add'>+    if (!RB_TYPE_P(debug2, T_ARRAY)) return FALSE;</div><div class='add'>+    if (RARRAY_LEN(debug1) != 2) return FALSE;</div><div class='add'>+    if (RARRAY_LEN(debug2) != 2) return FALSE;</div><div class='add'>+    if (RARRAY_AREF(debug1, 0) != RARRAY_AREF(debug2, 0)) return FALSE;</div><div class='add'>+    if (RARRAY_AREF(debug1, 1) != RARRAY_AREF(debug2, 1)) return FALSE;</div><div class='add'>+    return TRUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)</div><div class='add'>+{</div><div class='add'>+    INSN *const iobj = (INSN *)list;</div><div class='add'>+  again:</div><div class='add'>+    if (IS_INSN_ID(iobj, jump)) {</div><div class='add'>+	INSN *niobj, *diobj, *piobj;</div><div class='add'>+	diobj = (INSN *)get_destination_insn(iobj);</div><div class='add'>+	niobj = (INSN *)get_next_insn(iobj);</div><div class='add'>+</div><div class='add'>+	if (diobj == niobj) {</div><div class='add'>+	    /*</div><div class='add'>+	     *   jump LABEL</div><div class='add'>+	     *  LABEL:</div><div class='add'>+	     * =&gt;</div><div class='add'>+	     *   LABEL:</div><div class='add'>+	     */</div><div class='add'>+	    unref_destination(iobj, 0);</div><div class='add'>+	    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	    return COMPILE_OK;</div><div class='add'>+	}</div><div class='add'>+	else if (iobj != diobj &amp;&amp; IS_INSN_ID(diobj, jump) &amp;&amp;</div><div class='add'>+		 OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0)) {</div><div class='add'>+	    /*</div><div class='add'>+	     *  useless jump elimination:</div><div class='add'>+	     *     jump LABEL1</div><div class='add'>+	     *     ...</div><div class='add'>+	     *   LABEL1:</div><div class='add'>+	     *     jump LABEL2</div><div class='add'>+	     *</div><div class='add'>+	     *   =&gt; in this case, first jump instruction should jump to</div><div class='add'>+	     *      LABEL2 directly</div><div class='add'>+	     */</div><div class='add'>+	    replace_destination(iobj, diobj);</div><div class='add'>+	    remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='add'>+	    goto again;</div><div class='add'>+	}</div><div class='add'>+	else if (IS_INSN_ID(diobj, leave)) {</div><div class='add'>+	    INSN *pop;</div><div class='add'>+	    /*</div><div class='add'>+	     *  jump LABEL</div><div class='add'>+	     *  ...</div><div class='add'>+	     * LABEL:</div><div class='add'>+	     *  leave</div><div class='add'>+	     * =&gt;</div><div class='add'>+	     *  leave</div><div class='add'>+	     *  pop</div><div class='add'>+	     *  ...</div><div class='add'>+	     * LABEL:</div><div class='add'>+	     *  leave</div><div class='add'>+	     */</div><div class='add'>+	    /* replace */</div><div class='add'>+	    unref_destination(iobj, 0);</div><div class='add'>+	    iobj-&gt;insn_id = BIN(leave);</div><div class='add'>+	    iobj-&gt;operand_size = 0;</div><div class='add'>+	    iobj-&gt;insn_info = diobj-&gt;insn_info;</div><div class='add'>+	    /* adjust stack depth */</div><div class='add'>+	    pop = new_insn_body(iseq, diobj-&gt;insn_info.line_no, BIN(pop), 0);</div><div class='add'>+	    ELEM_INSERT_NEXT(&amp;iobj-&gt;link, &amp;pop-&gt;link);</div><div class='add'>+	    goto again;</div><div class='add'>+	}</div><div class='add'>+        else if (IS_INSN(iobj-&gt;link.prev) &amp;&amp;</div><div class='add'>+                 (piobj = (INSN *)iobj-&gt;link.prev) &amp;&amp;</div><div class='add'>+		 (IS_INSN_ID(piobj, branchif) ||</div><div class='add'>+		  IS_INSN_ID(piobj, branchunless))) {</div><div class='add'>+	    INSN *pdiobj = (INSN *)get_destination_insn(piobj);</div><div class='add'>+	    if (niobj == pdiobj) {</div><div class='add'>+		int refcnt = IS_LABEL(piobj-&gt;link.next) ?</div><div class='add'>+		    ((LABEL *)piobj-&gt;link.next)-&gt;refcnt : 0;</div><div class='add'>+		/*</div><div class='add'>+		 * useless jump elimination (if/unless destination):</div><div class='add'>+		 *   if   L1</div><div class='add'>+		 *   jump L2</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   ...</div><div class='add'>+		 * L2:</div><div class='add'>+		 *</div><div class='add'>+		 * ==&gt;</div><div class='add'>+		 *   unless L2</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   ...</div><div class='add'>+		 * L2:</div><div class='add'>+		 */</div><div class='add'>+		piobj-&gt;insn_id = (IS_INSN_ID(piobj, branchif))</div><div class='add'>+		  ? BIN(branchunless) : BIN(branchif);</div><div class='add'>+		replace_destination(piobj, iobj);</div><div class='add'>+		if (refcnt &lt;= 1) {</div><div class='add'>+		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    /* TODO: replace other branch destinations too */</div><div class='add'>+		}</div><div class='add'>+		return COMPILE_OK;</div><div class='add'>+	    }</div><div class='add'>+	    else if (diobj == pdiobj) {</div><div class='add'>+		/*</div><div class='add'>+		 * useless jump elimination (if/unless before jump):</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   ...</div><div class='add'>+		 *   if   L1</div><div class='add'>+		 *   jump L1</div><div class='add'>+		 *</div><div class='add'>+		 * ==&gt;</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   ...</div><div class='add'>+		 *   pop</div><div class='add'>+		 *   jump L1</div><div class='add'>+		 */</div><div class='add'>+		INSN *popiobj = new_insn_core(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+					      BIN(pop), 0, 0);</div><div class='add'>+		ELEM_REPLACE(&amp;piobj-&gt;link, &amp;popiobj-&gt;link);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (remove_unreachable_chunk(iseq, iobj-&gt;link.next)) {</div><div class='add'>+	    goto again;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * putstring "beg"</div><div class='add'>+     * putstring "end"</div><div class='add'>+     * newrange excl</div><div class='add'>+     *</div><div class='add'>+     * ==&gt;</div><div class='add'>+     *</div><div class='add'>+     * putobject "beg".."end"</div><div class='add'>+     */</div><div class='add'>+    if (IS_INSN_ID(iobj, checkmatch)) {</div><div class='add'>+	INSN *range = (INSN *)get_prev_insn(iobj);</div><div class='add'>+	INSN *beg, *end;</div><div class='add'>+</div><div class='add'>+	if (range &amp;&amp; IS_INSN_ID(range, newrange) &amp;&amp;</div><div class='add'>+		(end = (INSN *)get_prev_insn(range)) != 0 &amp;&amp;</div><div class='add'>+		IS_INSN_ID(end, putstring) &amp;&amp;</div><div class='add'>+		(beg = (INSN *)get_prev_insn(end)) != 0 &amp;&amp;</div><div class='add'>+		IS_INSN_ID(beg, putstring)) {</div><div class='add'>+	    VALUE str_beg = OPERAND_AT(beg, 0);</div><div class='add'>+	    VALUE str_end = OPERAND_AT(end, 0);</div><div class='add'>+	    int excl = FIX2INT(OPERAND_AT(range, 0));</div><div class='add'>+	    VALUE lit_range = rb_range_new(str_beg, str_end, excl);</div><div class='add'>+</div><div class='add'>+	    iseq_add_mark_object_compile_time(iseq, lit_range);</div><div class='add'>+	    ELEM_REMOVE(&amp;beg-&gt;link);</div><div class='add'>+	    ELEM_REMOVE(&amp;end-&gt;link);</div><div class='add'>+	    range-&gt;insn_id = BIN(putobject);</div><div class='add'>+	    OPERAND_AT(range, 0) = lit_range;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, leave)) {</div><div class='add'>+	remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, branchif) ||</div><div class='add'>+	IS_INSN_ID(iobj, branchnil) ||</div><div class='add'>+	IS_INSN_ID(iobj, branchunless)) {</div><div class='add'>+	/*</div><div class='add'>+	 *   if L1</div><div class='add'>+	 *   ...</div><div class='add'>+	 * L1:</div><div class='add'>+	 *   jump L2</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *   if L2</div><div class='add'>+	 */</div><div class='add'>+	INSN *nobj = (INSN *)get_destination_insn(iobj);</div><div class='add'>+	INSN *pobj = (INSN *)iobj-&gt;link.prev;</div><div class='add'>+	int prev_dup = 0;</div><div class='add'>+	if (pobj) {</div><div class='add'>+	    if (!IS_INSN(&amp;pobj-&gt;link))</div><div class='add'>+		pobj = 0;</div><div class='add'>+	    else if (IS_INSN_ID(pobj, dup))</div><div class='add'>+		prev_dup = 1;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	for (;;) {</div><div class='add'>+	    if (IS_INSN_ID(nobj, jump)) {</div><div class='add'>+		replace_destination(iobj, nobj);</div><div class='add'>+	    }</div><div class='add'>+	    else if (prev_dup &amp;&amp; IS_INSN_ID(nobj, dup) &amp;&amp;</div><div class='add'>+		     !!(nobj = (INSN *)nobj-&gt;link.next) &amp;&amp;</div><div class='add'>+		     /* basic blocks, with no labels in the middle */</div><div class='add'>+		     nobj-&gt;insn_id == iobj-&gt;insn_id) {</div><div class='add'>+		/*</div><div class='add'>+		 *   dup</div><div class='add'>+		 *   if L1</div><div class='add'>+		 *   ...</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   dup</div><div class='add'>+		 *   if L2</div><div class='add'>+		 * =&gt;</div><div class='add'>+		 *   dup</div><div class='add'>+		 *   if L2</div><div class='add'>+		 *   ...</div><div class='add'>+		 * L1:</div><div class='add'>+		 *   dup</div><div class='add'>+		 *   if L2</div><div class='add'>+		 */</div><div class='add'>+		replace_destination(iobj, nobj);</div><div class='add'>+	    }</div><div class='add'>+	    else if (pobj) {</div><div class='add'>+		/*</div><div class='add'>+		 *   putnil</div><div class='add'>+		 *   if L1</div><div class='add'>+		 * =&gt;</div><div class='add'>+		 *   # nothing</div><div class='add'>+		 *</div><div class='add'>+		 *   putobject true</div><div class='add'>+		 *   if L1</div><div class='add'>+		 * =&gt;</div><div class='add'>+		 *   jump L1</div><div class='add'>+		 *</div><div class='add'>+		 *   putstring ".."</div><div class='add'>+		 *   if L1</div><div class='add'>+		 * =&gt;</div><div class='add'>+		 *   jump L1</div><div class='add'>+		 *</div><div class='add'>+		 *   putstring ".."</div><div class='add'>+		 *   dup</div><div class='add'>+		 *   if L1</div><div class='add'>+		 * =&gt;</div><div class='add'>+		 *   putstring ".."</div><div class='add'>+		 *   jump L1</div><div class='add'>+		 *</div><div class='add'>+		 */</div><div class='add'>+		int cond;</div><div class='add'>+		if (prev_dup &amp;&amp; IS_INSN(pobj-&gt;link.prev)) {</div><div class='add'>+		    pobj = (INSN *)pobj-&gt;link.prev;</div><div class='add'>+		}</div><div class='add'>+		if (IS_INSN_ID(pobj, putobject)) {</div><div class='add'>+		    cond = (IS_INSN_ID(iobj, branchif) ?</div><div class='add'>+			    OPERAND_AT(pobj, 0) != Qfalse :</div><div class='add'>+			    IS_INSN_ID(iobj, branchunless) ?</div><div class='add'>+			    OPERAND_AT(pobj, 0) == Qfalse :</div><div class='add'>+			    FALSE);</div><div class='add'>+		}</div><div class='add'>+		else if (IS_INSN_ID(pobj, putstring) ||</div><div class='add'>+			 IS_INSN_ID(pobj, duparray) ||</div><div class='add'>+			 IS_INSN_ID(pobj, newarray)) {</div><div class='add'>+		    cond = IS_INSN_ID(iobj, branchif);</div><div class='add'>+		}</div><div class='add'>+		else if (IS_INSN_ID(pobj, putnil)) {</div><div class='add'>+		    cond = !IS_INSN_ID(iobj, branchif);</div><div class='add'>+		}</div><div class='add'>+		else break;</div><div class='add'>+		if (prev_dup || !IS_INSN_ID(pobj, newarray)) {</div><div class='add'>+		    ELEM_REMOVE(iobj-&gt;link.prev);</div><div class='add'>+		}</div><div class='add'>+		else if (!iseq_pop_newarray(iseq, pobj)) {</div><div class='add'>+		    pobj = new_insn_core(iseq, pobj-&gt;insn_info.line_no, BIN(pop), 0, NULL);</div><div class='add'>+                    ELEM_INSERT_PREV(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='add'>+		}</div><div class='add'>+		if (cond) {</div><div class='add'>+		    if (prev_dup) {</div><div class='add'>+			pobj = new_insn_core(iseq, pobj-&gt;insn_info.line_no, BIN(putnil), 0, NULL);</div><div class='add'>+			ELEM_INSERT_NEXT(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='add'>+		    }</div><div class='add'>+		    iobj-&gt;insn_id = BIN(jump);</div><div class='add'>+		    goto again;</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    unref_destination(iobj, 0);</div><div class='add'>+		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else break;</div><div class='add'>+	    nobj = (INSN *)get_destination_insn(nobj);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, pop)) {</div><div class='add'>+	/*</div><div class='add'>+	 *  putself / putnil / putobject obj / putstring "..."</div><div class='add'>+	 *  pop</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  # do nothing</div><div class='add'>+	 */</div><div class='add'>+	LINK_ELEMENT *prev = iobj-&gt;link.prev;</div><div class='add'>+	if (IS_INSN(prev)) {</div><div class='add'>+	    enum ruby_vminsn_type previ = ((INSN *)prev)-&gt;insn_id;</div><div class='add'>+	    if (previ == BIN(putobject) || previ == BIN(putnil) ||</div><div class='add'>+		previ == BIN(putself) || previ == BIN(putstring) ||</div><div class='add'>+		previ == BIN(duparray)) {</div><div class='add'>+		/* just push operand or static value and pop soon, no</div><div class='add'>+		 * side effects */</div><div class='add'>+		ELEM_REMOVE(prev);</div><div class='add'>+		ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	    }</div><div class='add'>+	    else if (previ == BIN(newarray) &amp;&amp; iseq_pop_newarray(iseq, (INSN*)prev)) {</div><div class='add'>+		ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, newarray) ||</div><div class='add'>+	IS_INSN_ID(iobj, duparray) ||</div><div class='add'>+	IS_INSN_ID(iobj, expandarray) ||</div><div class='add'>+	IS_INSN_ID(iobj, concatarray) ||</div><div class='add'>+	IS_INSN_ID(iobj, splatarray) ||</div><div class='add'>+	0) {</div><div class='add'>+	/*</div><div class='add'>+	 *  newarray N</div><div class='add'>+	 *  splatarray</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  newarray N</div><div class='add'>+	 * newarray always puts an array</div><div class='add'>+	 */</div><div class='add'>+	LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, splatarray)) {</div><div class='add'>+	    /* remove splatarray following always-array insn */</div><div class='add'>+	    ELEM_REMOVE(next);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, tostring)) {</div><div class='add'>+	LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+	/*</div><div class='add'>+	 *  tostring</div><div class='add'>+	 *  concatstrings 1</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  tostring</div><div class='add'>+	 */</div><div class='add'>+	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings) &amp;&amp;</div><div class='add'>+	    OPERAND_AT(next, 0) == INT2FIX(1)) {</div><div class='add'>+	    ELEM_REMOVE(next);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, putstring) ||</div><div class='add'>+	(IS_INSN_ID(iobj, putobject) &amp;&amp; RB_TYPE_P(OPERAND_AT(iobj, 0), T_STRING))) {</div><div class='add'>+	/*</div><div class='add'>+	 *  putstring ""</div><div class='add'>+	 *  concatstrings N</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  concatstrings N-1</div><div class='add'>+	 */</div><div class='add'>+	if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, concatstrings) &amp;&amp;</div><div class='add'>+	    RSTRING_LEN(OPERAND_AT(iobj, 0)) == 0) {</div><div class='add'>+	    INSN *next = (INSN *)iobj-&gt;link.next;</div><div class='add'>+	    if ((OPERAND_AT(next, 0) = FIXNUM_INC(OPERAND_AT(next, 0), -1)) == INT2FIX(1)) {</div><div class='add'>+		ELEM_REMOVE(&amp;next-&gt;link);</div><div class='add'>+	    }</div><div class='add'>+	    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, concatstrings)) {</div><div class='add'>+	/*</div><div class='add'>+	 *  concatstrings N</div><div class='add'>+	 *  concatstrings M</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  concatstrings N+M-1</div><div class='add'>+	 */</div><div class='add'>+	LINK_ELEMENT *next = iobj-&gt;link.next, *freeze = 0;</div><div class='add'>+	INSN *jump = 0;</div><div class='add'>+	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, freezestring))</div><div class='add'>+	    next = (freeze = next)-&gt;next;</div><div class='add'>+	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, jump))</div><div class='add'>+	    next = get_destination_insn(jump = (INSN *)next);</div><div class='add'>+	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings)) {</div><div class='add'>+	    int n = FIX2INT(OPERAND_AT(iobj, 0)) + FIX2INT(OPERAND_AT(next, 0)) - 1;</div><div class='add'>+	    OPERAND_AT(iobj, 0) = INT2FIX(n);</div><div class='add'>+	    if (jump) {</div><div class='add'>+		LABEL *label = ((LABEL *)OPERAND_AT(jump, 0));</div><div class='add'>+		if (!--label-&gt;refcnt) {</div><div class='add'>+		    ELEM_REMOVE(&amp;label-&gt;link);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    label = NEW_LABEL(0);</div><div class='add'>+		    OPERAND_AT(jump, 0) = (VALUE)label;</div><div class='add'>+		}</div><div class='add'>+		label-&gt;refcnt++;</div><div class='add'>+		if (freeze &amp;&amp; IS_NEXT_INSN_ID(next, freezestring)) {</div><div class='add'>+		    if (same_debug_pos_p(freeze, next-&gt;next)) {</div><div class='add'>+			ELEM_REMOVE(freeze);</div><div class='add'>+		    }</div><div class='add'>+		    else {</div><div class='add'>+			next = next-&gt;next;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		ELEM_INSERT_NEXT(next, &amp;label-&gt;link);</div><div class='add'>+		CHECK(iseq_peephole_optimize(iseq, get_next_insn(jump), do_tailcallopt));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (freeze) ELEM_REMOVE(freeze);</div><div class='add'>+		ELEM_REMOVE(next);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (do_tailcallopt &amp;&amp;</div><div class='add'>+	(IS_INSN_ID(iobj, send) ||</div><div class='add'>+	 IS_INSN_ID(iobj, opt_aref_with) ||</div><div class='add'>+	 IS_INSN_ID(iobj, opt_aset_with) ||</div><div class='add'>+	 IS_INSN_ID(iobj, invokesuper))) {</div><div class='add'>+	/*</div><div class='add'>+	 *  send ...</div><div class='add'>+	 *  leave</div><div class='add'>+	 * =&gt;</div><div class='add'>+	 *  send ..., ... | VM_CALL_TAILCALL, ...</div><div class='add'>+	 *  leave # unreachable</div><div class='add'>+	 */</div><div class='add'>+	INSN *piobj = NULL;</div><div class='add'>+	if (iobj-&gt;link.next) {</div><div class='add'>+	    LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+	    do {</div><div class='add'>+		if (!IS_INSN(next)) {</div><div class='add'>+		    next = next-&gt;next;</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+		switch (INSN_OF(next)) {</div><div class='add'>+		  case BIN(nop):</div><div class='add'>+		    next = next-&gt;next;</div><div class='add'>+		    break;</div><div class='add'>+		  case BIN(jump):</div><div class='add'>+		    /* if cond</div><div class='add'>+		     *   return tailcall</div><div class='add'>+		     * end</div><div class='add'>+		     */</div><div class='add'>+		    next = get_destination_insn((INSN *)next);</div><div class='add'>+		    break;</div><div class='add'>+		  case BIN(leave):</div><div class='add'>+		    piobj = iobj;</div><div class='add'>+		  default:</div><div class='add'>+		    next = NULL;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	    } while (next);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (piobj) {</div><div class='add'>+	    struct rb_call_info *ci = (struct rb_call_info *)piobj-&gt;operands[0];</div><div class='add'>+	    if (IS_INSN_ID(piobj, send) || IS_INSN_ID(piobj, invokesuper)) {</div><div class='add'>+		if (piobj-&gt;operands[2] == 0) { /* no blockiseq */</div><div class='add'>+		    ci-&gt;flag |= VM_CALL_TAILCALL;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ci-&gt;flag |= VM_CALL_TAILCALL;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, dup)) {</div><div class='add'>+	if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, setlocal)) {</div><div class='add'>+	    LINK_ELEMENT *set1 = iobj-&gt;link.next, *set2 = NULL;</div><div class='add'>+	    if (IS_NEXT_INSN_ID(set1, setlocal)) {</div><div class='add'>+		set2 = set1-&gt;next;</div><div class='add'>+		if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='add'>+		    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='add'>+		    ELEM_REMOVE(set1);</div><div class='add'>+		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else if (IS_NEXT_INSN_ID(set1, dup) &amp;&amp;</div><div class='add'>+		     IS_NEXT_INSN_ID(set1-&gt;next, setlocal)) {</div><div class='add'>+		set2 = set1-&gt;next-&gt;next;</div><div class='add'>+		if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='add'>+		    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='add'>+		    ELEM_REMOVE(set1-&gt;next);</div><div class='add'>+		    ELEM_REMOVE(set2);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, getlocal)) {</div><div class='add'>+	LINK_ELEMENT *niobj = &amp;iobj-&gt;link;</div><div class='add'>+	if (IS_NEXT_INSN_ID(niobj, dup)) {</div><div class='add'>+	    niobj = niobj-&gt;next;</div><div class='add'>+	}</div><div class='add'>+	if (IS_NEXT_INSN_ID(niobj, setlocal)) {</div><div class='add'>+	    LINK_ELEMENT *set1 = niobj-&gt;next;</div><div class='add'>+	    if (OPERAND_AT(iobj, 0) == OPERAND_AT(set1, 0) &amp;&amp;</div><div class='add'>+		OPERAND_AT(iobj, 1) == OPERAND_AT(set1, 1)) {</div><div class='add'>+		ELEM_REMOVE(set1);</div><div class='add'>+		ELEM_REMOVE(niobj);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+insn_set_specialized_instruction(rb_iseq_t *iseq, INSN *iobj, int insn_id)</div><div class='add'>+{</div><div class='add'>+    iobj-&gt;insn_id = insn_id;</div><div class='add'>+    iobj-&gt;operand_size = insn_len(insn_id) - 1;</div><div class='add'>+</div><div class='add'>+    if (insn_id == BIN(opt_neq)) {</div><div class='add'>+	VALUE *old_operands = iobj-&gt;operands;</div><div class='add'>+	iobj-&gt;operand_size = 4;</div><div class='add'>+	iobj-&gt;operands = (VALUE *)compile_data_alloc(iseq, iobj-&gt;operand_size * sizeof(VALUE));</div><div class='add'>+	iobj-&gt;operands[0] = old_operands[0];</div><div class='add'>+	iobj-&gt;operands[1] = Qfalse; /* CALL_CACHE */</div><div class='add'>+	iobj-&gt;operands[2] = (VALUE)new_callinfo(iseq, idEq, 1, 0, NULL, FALSE);</div><div class='add'>+	iobj-&gt;operands[3] = Qfalse; /* CALL_CACHE */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    if (IS_INSN_ID(iobj, newarray) &amp;&amp; iobj-&gt;link.next &amp;&amp;</div><div class='add'>+	IS_INSN(iobj-&gt;link.next)) {</div><div class='add'>+	/*</div><div class='add'>+	 *   [a, b, ...].max/min -&gt; a, b, c, opt_newarray_max/min</div><div class='add'>+	 */</div><div class='add'>+	INSN *niobj = (INSN *)iobj-&gt;link.next;</div><div class='add'>+	if (IS_INSN_ID(niobj, send)) {</div><div class='add'>+	    struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(niobj, 0);</div><div class='add'>+	    if ((ci-&gt;flag &amp; VM_CALL_ARGS_SIMPLE) &amp;&amp; ci-&gt;orig_argc == 0) {</div><div class='add'>+		switch (ci-&gt;mid) {</div><div class='add'>+		  case idMax:</div><div class='add'>+		    iobj-&gt;insn_id = BIN(opt_newarray_max);</div><div class='add'>+		    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='add'>+		    return COMPILE_OK;</div><div class='add'>+		  case idMin:</div><div class='add'>+		    iobj-&gt;insn_id = BIN(opt_newarray_min);</div><div class='add'>+		    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='add'>+		    return COMPILE_OK;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, send)) {</div><div class='add'>+	struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, 0);</div><div class='add'>+	const rb_iseq_t *blockiseq = (rb_iseq_t *)OPERAND_AT(iobj, 2);</div><div class='add'>+</div><div class='add'>+#define SP_INSN(opt) insn_set_specialized_instruction(iseq, iobj, BIN(opt_##opt))</div><div class='add'>+	if (ci-&gt;flag &amp; VM_CALL_ARGS_SIMPLE) {</div><div class='add'>+	    switch (ci-&gt;orig_argc) {</div><div class='add'>+	      case 0:</div><div class='add'>+		switch (ci-&gt;mid) {</div><div class='add'>+		  case idLength: SP_INSN(length); return COMPILE_OK;</div><div class='add'>+		  case idSize:	 SP_INSN(size);	  return COMPILE_OK;</div><div class='add'>+		  case idEmptyP: SP_INSN(empty_p);return COMPILE_OK;</div><div class='add'>+		  case idSucc:	 SP_INSN(succ);	  return COMPILE_OK;</div><div class='add'>+		  case idNot:	 SP_INSN(not);	  return COMPILE_OK;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case 1:</div><div class='add'>+		switch (ci-&gt;mid) {</div><div class='add'>+		  case idPLUS:	 SP_INSN(plus);	  return COMPILE_OK;</div><div class='add'>+		  case idMINUS:	 SP_INSN(minus);  return COMPILE_OK;</div><div class='add'>+		  case idMULT:	 SP_INSN(mult);	  return COMPILE_OK;</div><div class='add'>+		  case idDIV:	 SP_INSN(div);	  return COMPILE_OK;</div><div class='add'>+		  case idMOD:	 SP_INSN(mod);	  return COMPILE_OK;</div><div class='add'>+		  case idEq:	 SP_INSN(eq);	  return COMPILE_OK;</div><div class='add'>+		  case idNeq:	 SP_INSN(neq);	  return COMPILE_OK;</div><div class='add'>+		  case idLT:	 SP_INSN(lt);	  return COMPILE_OK;</div><div class='add'>+		  case idLE:	 SP_INSN(le);	  return COMPILE_OK;</div><div class='add'>+		  case idGT:	 SP_INSN(gt);	  return COMPILE_OK;</div><div class='add'>+		  case idGE:	 SP_INSN(ge);	  return COMPILE_OK;</div><div class='add'>+		  case idLTLT:	 SP_INSN(ltlt);	  return COMPILE_OK;</div><div class='add'>+		  case idAREF:	 SP_INSN(aref);	  return COMPILE_OK;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case 2:</div><div class='add'>+		switch (ci-&gt;mid) {</div><div class='add'>+		  case idASET:	 SP_INSN(aset);	  return COMPILE_OK;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if ((ci-&gt;flag &amp; VM_CALL_ARGS_BLOCKARG) == 0 &amp;&amp; blockiseq == NULL) {</div><div class='add'>+	    iobj-&gt;insn_id = BIN(opt_send_without_block);</div><div class='add'>+	    iobj-&gt;operand_size = insn_len(iobj-&gt;insn_id) - 1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#undef SP_INSN</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+tailcallable_p(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    switch (iseq-&gt;body-&gt;type) {</div><div class='add'>+      case ISEQ_TYPE_TOP:</div><div class='add'>+      case ISEQ_TYPE_EVAL:</div><div class='add'>+      case ISEQ_TYPE_MAIN:</div><div class='add'>+	/* not tail callable because cfp will be over popped */</div><div class='add'>+      case ISEQ_TYPE_RESCUE:</div><div class='add'>+      case ISEQ_TYPE_ENSURE:</div><div class='add'>+	/* rescue block can't tail call because of errinfo */</div><div class='add'>+	return FALSE;</div><div class='add'>+      default:</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    const int do_peepholeopt = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;peephole_optimization;</div><div class='add'>+    const int do_tailcallopt = tailcallable_p(iseq) &amp;&amp;</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization;</div><div class='add'>+    const int do_si = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction;</div><div class='add'>+    const int do_ou = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;operands_unification;</div><div class='add'>+    int rescue_level = 0;</div><div class='add'>+    int tailcallopt = do_tailcallopt;</div><div class='add'>+</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	if (IS_INSN(list)) {</div><div class='add'>+	    if (do_peepholeopt) {</div><div class='add'>+		iseq_peephole_optimize(iseq, list, tailcallopt);</div><div class='add'>+	    }</div><div class='add'>+	    if (do_si) {</div><div class='add'>+		iseq_specialized_instruction(iseq, (INSN *)list);</div><div class='add'>+	    }</div><div class='add'>+	    if (do_ou) {</div><div class='add'>+		insn_operands_unification((INSN *)list);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (IS_LABEL(list)) {</div><div class='add'>+	    switch (((LABEL *)list)-&gt;rescued) {</div><div class='add'>+	      case LABEL_RESCUE_BEG:</div><div class='add'>+		rescue_level++;</div><div class='add'>+		tailcallopt = FALSE;</div><div class='add'>+		break;</div><div class='add'>+	      case LABEL_RESCUE_END:</div><div class='add'>+		if (!--rescue_level) tailcallopt = do_tailcallopt;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if OPT_INSTRUCTIONS_UNIFICATION</div><div class='add'>+static INSN *</div><div class='add'>+new_unified_insn(rb_iseq_t *iseq,</div><div class='add'>+		 int insn_id, int size, LINK_ELEMENT *seq_list)</div><div class='add'>+{</div><div class='add'>+    INSN *iobj = 0;</div><div class='add'>+    LINK_ELEMENT *list = seq_list;</div><div class='add'>+    int i, argc = 0;</div><div class='add'>+    VALUE *operands = 0, *ptr = 0;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    /* count argc */</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+	iobj = (INSN *)list;</div><div class='add'>+	argc += iobj-&gt;operand_size;</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+	ptr = operands =</div><div class='add'>+	    (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* copy operands */</div><div class='add'>+    list = seq_list;</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+	iobj = (INSN *)list;</div><div class='add'>+	MEMCPY(ptr, iobj-&gt;operands, VALUE, iobj-&gt;operand_size);</div><div class='add'>+	ptr += iobj-&gt;operand_size;</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return new_insn_core(iseq, iobj-&gt;insn_info.line_no, insn_id, argc, operands);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * This scheme can get more performance if do this optimize with</div><div class='add'>+ * label address resolving.</div><div class='add'>+ * It's future work (if compile time was bottle neck).</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+iseq_insns_unification(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+#if OPT_INSTRUCTIONS_UNIFICATION</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    INSN *iobj, *niobj;</div><div class='add'>+    int id, k;</div><div class='add'>+    intptr_t j;</div><div class='add'>+</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    while (list) {</div><div class='add'>+	if (IS_INSN(list)) {</div><div class='add'>+	    iobj = (INSN *)list;</div><div class='add'>+	    id = iobj-&gt;insn_id;</div><div class='add'>+	    if (unified_insns_data[id] != 0) {</div><div class='add'>+		const int *const *entry = unified_insns_data[id];</div><div class='add'>+		for (j = 1; j &lt; (intptr_t)entry[0]; j++) {</div><div class='add'>+		    const int *unified = entry[j];</div><div class='add'>+		    LINK_ELEMENT *li = list-&gt;next;</div><div class='add'>+		    for (k = 2; k &lt; unified[1]; k++) {</div><div class='add'>+			if (!IS_INSN(li) ||</div><div class='add'>+			    ((INSN *)li)-&gt;insn_id != unified[k]) {</div><div class='add'>+			    goto miss;</div><div class='add'>+			}</div><div class='add'>+			li = li-&gt;next;</div><div class='add'>+		    }</div><div class='add'>+		    /* matched */</div><div class='add'>+		    niobj =</div><div class='add'>+			new_unified_insn(iseq, unified[0], unified[1] - 1,</div><div class='add'>+					 list);</div><div class='add'>+</div><div class='add'>+		    /* insert to list */</div><div class='add'>+		    niobj-&gt;link.prev = (LINK_ELEMENT *)iobj-&gt;link.prev;</div><div class='add'>+		    niobj-&gt;link.next = li;</div><div class='add'>+		    if (li) {</div><div class='add'>+			li-&gt;prev = (LINK_ELEMENT *)niobj;</div><div class='add'>+		    }</div><div class='add'>+</div><div class='add'>+		    list-&gt;prev-&gt;next = (LINK_ELEMENT *)niobj;</div><div class='add'>+		    list = (LINK_ELEMENT *)niobj;</div><div class='add'>+		    break;</div><div class='add'>+		  miss:;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if OPT_STACK_CACHING</div><div class='add'>+</div><div class='add'>+#define SC_INSN(insn, stat) sc_insn_info[(insn)][(stat)]</div><div class='add'>+#define SC_NEXT(insn)       sc_insn_next[(insn)]</div><div class='add'>+</div><div class='add'>+#include "opt_sc.inc"</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+insn_set_sc_state(rb_iseq_t *iseq, const LINK_ELEMENT *anchor, INSN *iobj, int state)</div><div class='add'>+{</div><div class='add'>+    int nstate;</div><div class='add'>+    int insn_id;</div><div class='add'>+</div><div class='add'>+    insn_id = iobj-&gt;insn_id;</div><div class='add'>+    iobj-&gt;insn_id = SC_INSN(insn_id, state);</div><div class='add'>+    nstate = SC_NEXT(iobj-&gt;insn_id);</div><div class='add'>+</div><div class='add'>+    if (insn_id == BIN(jump) ||</div><div class='add'>+	insn_id == BIN(branchif) || insn_id == BIN(branchunless)) {</div><div class='add'>+	LABEL *lobj = (LABEL *)OPERAND_AT(iobj, 0);</div><div class='add'>+</div><div class='add'>+	if (lobj-&gt;sc_state != 0) {</div><div class='add'>+	    if (lobj-&gt;sc_state != nstate) {</div><div class='add'>+		BADINSN_DUMP(anchor, iobj, lobj);</div><div class='add'>+		COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+			      "insn_set_sc_state error: %d at "LABEL_FORMAT</div><div class='add'>+			      ", %d expected\n",</div><div class='add'>+			      lobj-&gt;sc_state, lobj-&gt;label_no, nstate);</div><div class='add'>+		return COMPILE_NG;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    lobj-&gt;sc_state = nstate;</div><div class='add'>+	}</div><div class='add'>+	if (insn_id == BIN(jump)) {</div><div class='add'>+	    nstate = SCS_XX;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (insn_id == BIN(leave)) {</div><div class='add'>+	nstate = SCS_XX;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return nstate;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+label_set_sc_state(LABEL *lobj, int state)</div><div class='add'>+{</div><div class='add'>+    if (lobj-&gt;sc_state != 0) {</div><div class='add'>+	if (lobj-&gt;sc_state != state) {</div><div class='add'>+	    state = lobj-&gt;sc_state;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	lobj-&gt;sc_state = state;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return state;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_set_sequence_stackcaching(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='add'>+{</div><div class='add'>+#if OPT_STACK_CACHING</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    int state, insn_id;</div><div class='add'>+</div><div class='add'>+    /* initialize */</div><div class='add'>+    state = SCS_XX;</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    /* dump_disasm_list(list); */</div><div class='add'>+</div><div class='add'>+    /* for each list element */</div><div class='add'>+    while (list) {</div><div class='add'>+      redo_point:</div><div class='add'>+	switch (list-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	    {</div><div class='add'>+		INSN *iobj = (INSN *)list;</div><div class='add'>+		insn_id = iobj-&gt;insn_id;</div><div class='add'>+</div><div class='add'>+		/* dump_disasm_list(list); */</div><div class='add'>+</div><div class='add'>+		switch (insn_id) {</div><div class='add'>+		  case BIN(nop):</div><div class='add'>+		    {</div><div class='add'>+			/* exception merge point */</div><div class='add'>+			if (state != SCS_AX) {</div><div class='add'>+			    INSN *rpobj =</div><div class='add'>+				new_insn_body(iseq, 0, BIN(reput), 0);</div><div class='add'>+</div><div class='add'>+			    /* replace this insn */</div><div class='add'>+			    ELEM_REPLACE(list, (LINK_ELEMENT *)rpobj);</div><div class='add'>+			    list = (LINK_ELEMENT *)rpobj;</div><div class='add'>+			    goto redo_point;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		  case BIN(swap):</div><div class='add'>+		    {</div><div class='add'>+			if (state == SCS_AB || state == SCS_BA) {</div><div class='add'>+			    state = (state == SCS_AB ? SCS_BA : SCS_AB);</div><div class='add'>+</div><div class='add'>+			    ELEM_REMOVE(list);</div><div class='add'>+			    list = list-&gt;next;</div><div class='add'>+			    goto redo_point;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		  case BIN(pop):</div><div class='add'>+		    {</div><div class='add'>+			switch (state) {</div><div class='add'>+			  case SCS_AX:</div><div class='add'>+			  case SCS_BX:</div><div class='add'>+			    state = SCS_XX;</div><div class='add'>+			    break;</div><div class='add'>+			  case SCS_AB:</div><div class='add'>+			    state = SCS_AX;</div><div class='add'>+			    break;</div><div class='add'>+			  case SCS_BA:</div><div class='add'>+			    state = SCS_BX;</div><div class='add'>+			    break;</div><div class='add'>+			  case SCS_XX:</div><div class='add'>+			    goto normal_insn;</div><div class='add'>+			  default:</div><div class='add'>+			    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+					  "unreachable");</div><div class='add'>+			    return COMPILE_NG;</div><div class='add'>+			}</div><div class='add'>+			/* remove useless pop */</div><div class='add'>+			ELEM_REMOVE(list);</div><div class='add'>+			list = list-&gt;next;</div><div class='add'>+			goto redo_point;</div><div class='add'>+		    }</div><div class='add'>+		  default:;</div><div class='add'>+		    /* none */</div><div class='add'>+		}		/* end of switch */</div><div class='add'>+	      normal_insn:</div><div class='add'>+		state = insn_set_sc_state(iseq, anchor, iobj, state);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    {</div><div class='add'>+		LABEL *lobj;</div><div class='add'>+		lobj = (LABEL *)list;</div><div class='add'>+</div><div class='add'>+		state = label_set_sc_state(lobj, state);</div><div class='add'>+	    }</div><div class='add'>+	  default:</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+all_string_result_p(const NODE *node)</div><div class='add'>+{</div><div class='add'>+    if (!node) return FALSE;</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_STR: case NODE_DSTR:</div><div class='add'>+	return TRUE;</div><div class='add'>+      case NODE_IF: case NODE_UNLESS:</div><div class='add'>+	if (!node-&gt;nd_body || !node-&gt;nd_else) return FALSE;</div><div class='add'>+	if (all_string_result_p(node-&gt;nd_body))</div><div class='add'>+	    return all_string_result_p(node-&gt;nd_else);</div><div class='add'>+	return FALSE;</div><div class='add'>+      case NODE_AND: case NODE_OR:</div><div class='add'>+	if (!node-&gt;nd_2nd)</div><div class='add'>+	    return all_string_result_p(node-&gt;nd_1st);</div><div class='add'>+	if (!all_string_result_p(node-&gt;nd_1st))</div><div class='add'>+	    return FALSE;</div><div class='add'>+	return all_string_result_p(node-&gt;nd_2nd);</div><div class='add'>+      default:</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_dstr_fragments(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int *cntp)</div><div class='add'>+{</div><div class='add'>+    const NODE *list = node-&gt;nd_next;</div><div class='add'>+    VALUE lit = node-&gt;nd_lit;</div><div class='add'>+    LINK_ELEMENT *first_lit = 0;</div><div class='add'>+    int cnt = 0;</div><div class='add'>+</div><div class='add'>+    debugp_param("nd_lit", lit);</div><div class='add'>+    if (!NIL_P(lit)) {</div><div class='add'>+	cnt++;</div><div class='add'>+	if (!RB_TYPE_P(lit, T_STRING)) {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "dstr: must be string: %s",</div><div class='add'>+			  rb_builtin_type_name(TYPE(lit)));</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	}</div><div class='add'>+	lit = freeze_literal(iseq, lit);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, lit);</div><div class='add'>+	if (RSTRING_LEN(lit) == 0) first_lit = LAST_ELEMENT(ret);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	const NODE *const head = list-&gt;nd_head;</div><div class='add'>+	if (nd_type(head) == NODE_STR) {</div><div class='add'>+	    lit = freeze_literal(iseq, head-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(head), putobject, lit);</div><div class='add'>+	    lit = Qnil;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "each string", head));</div><div class='add'>+	}</div><div class='add'>+	cnt++;</div><div class='add'>+	list = list-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+    if (NIL_P(lit) &amp;&amp; first_lit) {</div><div class='add'>+	ELEM_REMOVE(first_lit);</div><div class='add'>+	--cnt;</div><div class='add'>+    }</div><div class='add'>+    *cntp = cnt;</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_dstr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    int cnt;</div><div class='add'>+    CHECK(compile_dstr_fragments(iseq, ret, node, &amp;cnt));</div><div class='add'>+    ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_dregx(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    int cnt;</div><div class='add'>+    CHECK(compile_dstr_fragments(iseq, ret, node, &amp;cnt));</div><div class='add'>+    ADD_INSN2(ret, nd_line(node), toregexp, INT2FIX(node-&gt;nd_cflag), INT2FIX(cnt));</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_flip_flop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int again,</div><div class='add'>+		  LABEL *then_label, LABEL *else_label)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    LABEL *lend = NEW_LABEL(line);</div><div class='add'>+    rb_num_t cnt = ISEQ_FLIP_CNT_INCREMENT(iseq-&gt;body-&gt;local_iseq)</div><div class='add'>+	+ VM_SVAR_FLIPFLOP_START;</div><div class='add'>+    VALUE key = INT2FIX(cnt);</div><div class='add'>+</div><div class='add'>+    ADD_INSN2(ret, line, getspecial, key, INT2FIX(0));</div><div class='add'>+    ADD_INSNL(ret, line, branchif, lend);</div><div class='add'>+</div><div class='add'>+    /* *flip == 0 */</div><div class='add'>+    CHECK(COMPILE(ret, "flip2 beg", node-&gt;nd_beg));</div><div class='add'>+    ADD_INSNL(ret, line, branchunless, else_label);</div><div class='add'>+    ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='add'>+    ADD_INSN1(ret, line, setspecial, key);</div><div class='add'>+    if (!again) {</div><div class='add'>+	ADD_INSNL(ret, line, jump, then_label);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* *flip == 1 */</div><div class='add'>+    ADD_LABEL(ret, lend);</div><div class='add'>+    CHECK(COMPILE(ret, "flip2 end", node-&gt;nd_end));</div><div class='add'>+    ADD_INSNL(ret, line, branchunless, then_label);</div><div class='add'>+    ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='add'>+    ADD_INSN1(ret, line, setspecial, key);</div><div class='add'>+    ADD_INSNL(ret, line, jump, then_label);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *cond,</div><div class='add'>+			 LABEL *then_label, LABEL *else_label)</div><div class='add'>+{</div><div class='add'>+  again:</div><div class='add'>+    switch (nd_type(cond)) {</div><div class='add'>+      case NODE_AND:</div><div class='add'>+	{</div><div class='add'>+	    LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='add'>+	    CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, label,</div><div class='add'>+					   else_label));</div><div class='add'>+	    if (!label-&gt;refcnt) break;</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    cond = cond-&gt;nd_2nd;</div><div class='add'>+	    goto again;</div><div class='add'>+	}</div><div class='add'>+      case NODE_OR:</div><div class='add'>+	{</div><div class='add'>+	    LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='add'>+	    CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, then_label,</div><div class='add'>+					   label));</div><div class='add'>+	    if (!label-&gt;refcnt) break;</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    cond = cond-&gt;nd_2nd;</div><div class='add'>+	    goto again;</div><div class='add'>+	}</div><div class='add'>+      case NODE_LIT:		/* NODE_LIT is always true */</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+      case NODE_STR:</div><div class='add'>+      case NODE_ZARRAY:</div><div class='add'>+      case NODE_LAMBDA:</div><div class='add'>+	/* printf("useless condition eliminate (%s)\n",  ruby_node_name(nd_type(cond))); */</div><div class='add'>+	ADD_INSNL(ret, nd_line(cond), jump, then_label);</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+	/* printf("useless condition eliminate (%s)\n", ruby_node_name(nd_type(cond))); */</div><div class='add'>+	ADD_INSNL(ret, nd_line(cond), jump, else_label);</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FLIP2:</div><div class='add'>+	CHECK(compile_flip_flop(iseq, ret, cond, TRUE, then_label, else_label));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FLIP3:</div><div class='add'>+	CHECK(compile_flip_flop(iseq, ret, cond, FALSE, then_label, else_label));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_DEFINED:</div><div class='add'>+	CHECK(compile_defined_expr(iseq, ret, cond, Qfalse));</div><div class='add'>+	goto branch;</div><div class='add'>+      default:</div><div class='add'>+	CHECK(COMPILE(ret, "branch condition", cond));</div><div class='add'>+      branch:</div><div class='add'>+	ADD_INSNL(ret, nd_line(cond), branchunless, else_label);</div><div class='add'>+	ADD_INSNL(ret, nd_line(cond), jump, then_label);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_array_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+			  const NODE *const root_node,</div><div class='add'>+			  struct rb_call_info_kw_arg **const kw_arg_ptr,</div><div class='add'>+			  unsigned int *flag)</div><div class='add'>+{</div><div class='add'>+    if (kw_arg_ptr == NULL) return FALSE;</div><div class='add'>+</div><div class='add'>+    if (nd_type(root_node) == NODE_HASH &amp;&amp; root_node-&gt;nd_head &amp;&amp; nd_type(root_node-&gt;nd_head) == NODE_ARRAY) {</div><div class='add'>+	const NODE *node = root_node-&gt;nd_head;</div><div class='add'>+</div><div class='add'>+	while (node) {</div><div class='add'>+	    const NODE *key_node = node-&gt;nd_head;</div><div class='add'>+</div><div class='add'>+	    assert(nd_type(node) == NODE_ARRAY);</div><div class='add'>+	    if (!key_node) {</div><div class='add'>+		if (flag &amp;&amp; !root_node-&gt;nd_alen) *flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+		return FALSE;</div><div class='add'>+	    }</div><div class='add'>+	    else if (nd_type(key_node) == NODE_LIT &amp;&amp; RB_TYPE_P(key_node-&gt;nd_lit, T_SYMBOL)) {</div><div class='add'>+		/* can be keywords */</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		return FALSE;</div><div class='add'>+	    }</div><div class='add'>+	    node = node-&gt;nd_next; /* skip value node */</div><div class='add'>+	    node = node-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* may be keywords */</div><div class='add'>+	node = root_node-&gt;nd_head;</div><div class='add'>+	{</div><div class='add'>+	    int len = (int)node-&gt;nd_alen / 2;</div><div class='add'>+	    struct rb_call_info_kw_arg *kw_arg  = (struct rb_call_info_kw_arg *)ruby_xmalloc(sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (len - 1));</div><div class='add'>+	    VALUE *keywords = kw_arg-&gt;keywords;</div><div class='add'>+	    int i = 0;</div><div class='add'>+	    kw_arg-&gt;keyword_len = len;</div><div class='add'>+</div><div class='add'>+	    *kw_arg_ptr = kw_arg;</div><div class='add'>+</div><div class='add'>+	    for (i=0; node != NULL; i++, node = node-&gt;nd_next-&gt;nd_next) {</div><div class='add'>+		const NODE *key_node = node-&gt;nd_head;</div><div class='add'>+		const NODE *val_node = node-&gt;nd_next-&gt;nd_head;</div><div class='add'>+		keywords[i] = key_node-&gt;nd_lit;</div><div class='add'>+		COMPILE(ret, "keyword values", val_node);</div><div class='add'>+	    }</div><div class='add'>+	    assert(i == len);</div><div class='add'>+	    return TRUE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+enum compile_array_type_t {</div><div class='add'>+    COMPILE_ARRAY_TYPE_ARRAY,</div><div class='add'>+    COMPILE_ARRAY_TYPE_HASH,</div><div class='add'>+    COMPILE_ARRAY_TYPE_ARGS</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+static_literal_node_p(const NODE *node)</div><div class='add'>+{</div><div class='add'>+    node = node-&gt;nd_head;</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_LIT:</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+	return TRUE;</div><div class='add'>+      default:</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+static_literal_value(const NODE *node)</div><div class='add'>+{</div><div class='add'>+    node = node-&gt;nd_head;</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+	return Qnil;</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+	return Qtrue;</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+	return Qfalse;</div><div class='add'>+      default:</div><div class='add'>+	return node-&gt;nd_lit;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_array(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node_root,</div><div class='add'>+	      enum compile_array_type_t type, struct rb_call_info_kw_arg **keywords_ptr,</div><div class='add'>+	      unsigned int *flag, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *node = node_root;</div><div class='add'>+    int line = (int)nd_line(node);</div><div class='add'>+    int len = 0;</div><div class='add'>+</div><div class='add'>+    if (nd_type(node) == NODE_ZARRAY) {</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    switch (type) {</div><div class='add'>+	      case COMPILE_ARRAY_TYPE_ARRAY: ADD_INSN1(ret, line, newarray, INT2FIX(0)); break;</div><div class='add'>+	      case COMPILE_ARRAY_TYPE_HASH: ADD_INSN1(ret, line, newhash, INT2FIX(0)); break;</div><div class='add'>+	      case COMPILE_ARRAY_TYPE_ARGS: /* do nothing */ break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	int opt_p = 1;</div><div class='add'>+	int first = 1, i;</div><div class='add'>+</div><div class='add'>+	while (node) {</div><div class='add'>+	    const NODE *start_node = node, *end_node;</div><div class='add'>+	    const NODE *kw = 0;</div><div class='add'>+	    const int max = 0x100;</div><div class='add'>+	    DECL_ANCHOR(anchor);</div><div class='add'>+	    INIT_ANCHOR(anchor);</div><div class='add'>+</div><div class='add'>+	    for (i=0; i&lt;max &amp;&amp; node; i++, len++, node = node-&gt;nd_next) {</div><div class='add'>+		if (CPDEBUG &gt; 0) {</div><div class='add'>+		    EXPECT_NODE("compile_array", node, NODE_ARRAY, -1);</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (type != COMPILE_ARRAY_TYPE_ARRAY &amp;&amp; !node-&gt;nd_head) {</div><div class='add'>+		    kw = node-&gt;nd_next;</div><div class='add'>+		    node = 0;</div><div class='add'>+		    if (kw) {</div><div class='add'>+			opt_p = 0;</div><div class='add'>+			node = kw-&gt;nd_next;</div><div class='add'>+			kw = kw-&gt;nd_head;</div><div class='add'>+		    }</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		if (opt_p &amp;&amp; !static_literal_node_p(node)) {</div><div class='add'>+		    opt_p = 0;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (type == COMPILE_ARRAY_TYPE_ARGS &amp;&amp;</div><div class='add'>+		    node-&gt;nd_next == NULL /* last node */ &amp;&amp;</div><div class='add'>+		    compile_array_keyword_arg(iseq, anchor, node-&gt;nd_head, keywords_ptr, flag)) {</div><div class='add'>+		    len--;</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    COMPILE_(anchor, "array element", node-&gt;nd_head, popped);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (opt_p &amp;&amp; type != COMPILE_ARRAY_TYPE_ARGS) {</div><div class='add'>+		if (!popped) {</div><div class='add'>+		    VALUE ary = rb_ary_tmp_new(i);</div><div class='add'>+</div><div class='add'>+		    end_node = node;</div><div class='add'>+		    node = start_node;</div><div class='add'>+</div><div class='add'>+		    while (node != end_node) {</div><div class='add'>+			rb_ary_push(ary, static_literal_value(node));</div><div class='add'>+			node = node-&gt;nd_next;</div><div class='add'>+		    }</div><div class='add'>+		    while (node &amp;&amp; node-&gt;nd_next &amp;&amp;</div><div class='add'>+			   static_literal_node_p(node) &amp;&amp;</div><div class='add'>+			   static_literal_node_p(node-&gt;nd_next)) {</div><div class='add'>+			VALUE elem[2];</div><div class='add'>+			elem[0] = static_literal_value(node);</div><div class='add'>+			elem[1] = static_literal_value(node-&gt;nd_next);</div><div class='add'>+			rb_ary_cat(ary, elem, 2);</div><div class='add'>+			node = node-&gt;nd_next-&gt;nd_next;</div><div class='add'>+			len++;</div><div class='add'>+		    }</div><div class='add'>+</div><div class='add'>+		    OBJ_FREEZE(ary);</div><div class='add'>+</div><div class='add'>+		    iseq_add_mark_object_compile_time(iseq, ary);</div><div class='add'>+</div><div class='add'>+		    if (first) {</div><div class='add'>+			first = 0;</div><div class='add'>+			if (type == COMPILE_ARRAY_TYPE_ARRAY) {</div><div class='add'>+			    ADD_INSN1(ret, line, duparray, ary);</div><div class='add'>+			}</div><div class='add'>+			else { /* COMPILE_ARRAY_TYPE_HASH */</div><div class='add'>+			    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+			    ADD_INSN1(ret, line, putobject, ary);</div><div class='add'>+			    ADD_SEND(ret, line, id_core_hash_from_ary, INT2FIX(1));</div><div class='add'>+			}</div><div class='add'>+		    }</div><div class='add'>+		    else {</div><div class='add'>+			if (type == COMPILE_ARRAY_TYPE_ARRAY) {</div><div class='add'>+			    ADD_INSN1(ret, line, putobject, ary);</div><div class='add'>+			    ADD_INSN(ret, line, concatarray);</div><div class='add'>+			}</div><div class='add'>+			else {</div><div class='add'>+#if 0</div><div class='add'>+			    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+			    ADD_INSN1(ret, line, putobject, ary);</div><div class='add'>+			    ADD_SEND(ret, line, id_core_hash_merge_ary, INT2FIX(1));</div><div class='add'>+			    /* wrong number of arguments -----------------------^ */</div><div class='add'>+#else</div><div class='add'>+			    COMPILE_ERROR(ERROR_ARGS "core#hash_merge_ary");</div><div class='add'>+			    return -1;</div><div class='add'>+#endif</div><div class='add'>+			}</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (!popped || kw) {</div><div class='add'>+		    switch (type) {</div><div class='add'>+		      case COMPILE_ARRAY_TYPE_ARRAY:</div><div class='add'>+			ADD_INSN1(anchor, line, newarray, INT2FIX(i));</div><div class='add'>+</div><div class='add'>+			if (first) {</div><div class='add'>+			    first = 0;</div><div class='add'>+			}</div><div class='add'>+			else {</div><div class='add'>+			    ADD_INSN(anchor, line, concatarray);</div><div class='add'>+			}</div><div class='add'>+</div><div class='add'>+			APPEND_LIST(ret, anchor);</div><div class='add'>+			break;</div><div class='add'>+		      case COMPILE_ARRAY_TYPE_HASH:</div><div class='add'>+			if (i &gt; 0) {</div><div class='add'>+			    if (first) {</div><div class='add'>+				if (!popped) {</div><div class='add'>+				    ADD_INSN1(anchor, line, newhash, INT2FIX(i));</div><div class='add'>+				}</div><div class='add'>+				APPEND_LIST(ret, anchor);</div><div class='add'>+			    }</div><div class='add'>+			    else {</div><div class='add'>+				if (!popped) {</div><div class='add'>+				    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+				    ADD_INSN(ret, line, swap);</div><div class='add'>+				}</div><div class='add'>+				APPEND_LIST(ret, anchor);</div><div class='add'>+				if (!popped) {</div><div class='add'>+				    ADD_SEND(ret, line, id_core_hash_merge_ptr, INT2FIX(i + 1));</div><div class='add'>+				}</div><div class='add'>+			    }</div><div class='add'>+			}</div><div class='add'>+			if (kw) {</div><div class='add'>+			    VALUE nhash = (i &gt; 0 || !first) ? INT2FIX(2) : INT2FIX(1);</div><div class='add'>+			    if (!popped) {</div><div class='add'>+				ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+				if (i &gt; 0 || !first) ADD_INSN(ret, line, swap);</div><div class='add'>+			    }</div><div class='add'>+			    COMPILE(ret, "keyword splat", kw);</div><div class='add'>+			    if (popped) {</div><div class='add'>+				ADD_INSN(ret, line, pop);</div><div class='add'>+			    }</div><div class='add'>+			    else {</div><div class='add'>+				ADD_SEND(ret, line, id_core_hash_merge_kwd, nhash);</div><div class='add'>+				if (nhash == INT2FIX(1)) ADD_SEND(ret, line, rb_intern("dup"), INT2FIX(0));</div><div class='add'>+			    }</div><div class='add'>+			}</div><div class='add'>+			first = 0;</div><div class='add'>+			break;</div><div class='add'>+		      case COMPILE_ARRAY_TYPE_ARGS:</div><div class='add'>+			APPEND_LIST(ret, anchor);</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    /* popped */</div><div class='add'>+		    APPEND_LIST(ret, anchor);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+case_when_optimizable_literal(const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_LIT: {</div><div class='add'>+	VALUE v = node-&gt;nd_lit;</div><div class='add'>+	double ival;</div><div class='add'>+	if (RB_TYPE_P(v, T_FLOAT) &amp;&amp;</div><div class='add'>+	    modf(RFLOAT_VALUE(v), &amp;ival) == 0.0) {</div><div class='add'>+	    return FIXABLE(ival) ? LONG2FIX((long)ival) : rb_dbl2big(ival);</div><div class='add'>+	}</div><div class='add'>+	if (SYMBOL_P(v) || rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='add'>+	    return v;</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+	return Qnil;</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+	return Qtrue;</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+	return Qfalse;</div><div class='add'>+      case NODE_STR:</div><div class='add'>+	return rb_fstring(node-&gt;nd_lit);</div><div class='add'>+    }</div><div class='add'>+    return Qundef;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+when_vals(rb_iseq_t *iseq, LINK_ANCHOR *const cond_seq, const NODE *vals,</div><div class='add'>+	  LABEL *l1, int only_special_literals, VALUE literals)</div><div class='add'>+{</div><div class='add'>+    while (vals) {</div><div class='add'>+	const NODE *val = vals-&gt;nd_head;</div><div class='add'>+	VALUE lit = case_when_optimizable_literal(val);</div><div class='add'>+</div><div class='add'>+	if (lit == Qundef) {</div><div class='add'>+	    only_special_literals = 0;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (rb_hash_lookup(literals, lit) != Qnil) {</div><div class='add'>+		VALUE file = rb_iseq_path(iseq);</div><div class='add'>+		rb_compile_warning(RSTRING_PTR(file), nd_line(val),</div><div class='add'>+				   "duplicated when clause is ignored");</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		rb_hash_aset(literals, lit, (VALUE)(l1) | 1);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN(cond_seq, nd_line(val), dup); /* dup target */</div><div class='add'>+</div><div class='add'>+	if (nd_type(val) == NODE_STR) {</div><div class='add'>+	    debugp_param("nd_lit", val-&gt;nd_lit);</div><div class='add'>+	    lit = freeze_literal(iseq, val-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN1(cond_seq, nd_line(val), putobject, lit);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(cond_seq, "when cond", val);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(cond_seq, nd_line(vals), checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));</div><div class='add'>+	ADD_INSNL(cond_seq, nd_line(val), branchif, l1);</div><div class='add'>+	vals = vals-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+    return only_special_literals;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_massign_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_ATTRASGN: {</div><div class='add'>+	INSN *iobj;</div><div class='add'>+	struct rb_call_info *ci;</div><div class='add'>+	VALUE dupidx;</div><div class='add'>+	int line = nd_line(node);</div><div class='add'>+</div><div class='add'>+	CHECK(COMPILE_POPPED(ret, "masgn lhs (NODE_ATTRASGN)", node));</div><div class='add'>+</div><div class='add'>+	iobj = (INSN *)get_prev_insn((INSN *)LAST_ELEMENT(ret)); /* send insn */</div><div class='add'>+	ci = (struct rb_call_info *)iobj-&gt;operands[0];</div><div class='add'>+	ci-&gt;orig_argc += 1;</div><div class='add'>+	dupidx = INT2FIX(ci-&gt;orig_argc);</div><div class='add'>+</div><div class='add'>+	INSERT_BEFORE_INSN1(iobj, line, topn, dupidx);</div><div class='add'>+	if (ci-&gt;flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+	    --ci-&gt;orig_argc;</div><div class='add'>+	    INSERT_BEFORE_INSN1(iobj, line, newarray, INT2FIX(1));</div><div class='add'>+	    INSERT_BEFORE_INSN(iobj, line, concatarray);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, line, pop);	/* result */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_MASGN: {</div><div class='add'>+	DECL_ANCHOR(anchor);</div><div class='add'>+	INIT_ANCHOR(anchor);</div><div class='add'>+	CHECK(COMPILE_POPPED(anchor, "nest masgn lhs", node));</div><div class='add'>+	ELEM_REMOVE(FIRST_ELEMENT(anchor));</div><div class='add'>+	ADD_SEQ(ret, anchor);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      default: {</div><div class='add'>+	DECL_ANCHOR(anchor);</div><div class='add'>+	INIT_ANCHOR(anchor);</div><div class='add'>+	CHECK(COMPILE_POPPED(anchor, "masgn lhs", node));</div><div class='add'>+	ELEM_REMOVE(FIRST_ELEMENT(anchor));</div><div class='add'>+	ADD_SEQ(ret, anchor);</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_massign_opt_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *lhsn)</div><div class='add'>+{</div><div class='add'>+    if (lhsn) {</div><div class='add'>+	CHECK(compile_massign_opt_lhs(iseq, ret, lhsn-&gt;nd_next));</div><div class='add'>+	CHECK(compile_massign_lhs(iseq, ret, lhsn-&gt;nd_head));</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_massign_opt(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+		    const NODE *rhsn, const NODE *orig_lhsn)</div><div class='add'>+{</div><div class='add'>+    VALUE mem[64];</div><div class='add'>+    const int memsize = numberof(mem);</div><div class='add'>+    int memindex = 0;</div><div class='add'>+    int llen = 0, rlen = 0;</div><div class='add'>+    int i;</div><div class='add'>+    const NODE *lhsn = orig_lhsn;</div><div class='add'>+</div><div class='add'>+#define MEMORY(v) { \</div><div class='add'>+    int i; \</div><div class='add'>+    if (memindex == memsize) return 0; \</div><div class='add'>+    for (i=0; i&lt;memindex; i++) { \</div><div class='add'>+	if (mem[i] == (v)) return 0; \</div><div class='add'>+    } \</div><div class='add'>+    mem[memindex++] = (v); \</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+    if (rhsn == 0 || nd_type(rhsn) != NODE_ARRAY) {</div><div class='add'>+	return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (lhsn) {</div><div class='add'>+	const NODE *ln = lhsn-&gt;nd_head;</div><div class='add'>+	switch (nd_type(ln)) {</div><div class='add'>+	  case NODE_LASGN:</div><div class='add'>+	    MEMORY(ln-&gt;nd_vid);</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_DASGN:</div><div class='add'>+	  case NODE_DASGN_CURR:</div><div class='add'>+	  case NODE_IASGN:</div><div class='add'>+	  case NODE_CVASGN:</div><div class='add'>+	    MEMORY(ln-&gt;nd_vid);</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    return 0;</div><div class='add'>+	}</div><div class='add'>+	lhsn = lhsn-&gt;nd_next;</div><div class='add'>+	llen++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (rhsn) {</div><div class='add'>+	if (llen &lt;= rlen) {</div><div class='add'>+	    COMPILE_POPPED(ret, "masgn val (popped)", rhsn-&gt;nd_head);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(ret, "masgn val", rhsn-&gt;nd_head);</div><div class='add'>+	}</div><div class='add'>+	rhsn = rhsn-&gt;nd_next;</div><div class='add'>+	rlen++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (llen &gt; rlen) {</div><div class='add'>+	for (i=0; i&lt;llen-rlen; i++) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(orig_lhsn), putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    compile_massign_opt_lhs(iseq, ret, orig_lhsn);</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+adjust_stack(rb_iseq_t *iseq, LINK_ANCHOR *const ret, int line, int rlen, int llen)</div><div class='add'>+{</div><div class='add'>+    if (rlen &lt; llen) {</div><div class='add'>+	do {ADD_INSN(ret, line, putnil);} while (++rlen &lt; llen);</div><div class='add'>+    }</div><div class='add'>+    else if (rlen &gt; llen) {</div><div class='add'>+	do {ADD_INSN(ret, line, pop);} while (--rlen &gt; llen);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_massign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *rhsn = node-&gt;nd_value;</div><div class='add'>+    const NODE *splatn = node-&gt;nd_args;</div><div class='add'>+    const NODE *lhsn = node-&gt;nd_head;</div><div class='add'>+    int lhs_splat = (splatn &amp;&amp; splatn != NODE_SPECIAL_NO_NAME_REST) ? 1 : 0;</div><div class='add'>+</div><div class='add'>+    if (!popped || splatn || !compile_massign_opt(iseq, ret, rhsn, lhsn)) {</div><div class='add'>+	int llen = 0;</div><div class='add'>+	int expand = 1;</div><div class='add'>+	DECL_ANCHOR(lhsseq);</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(lhsseq);</div><div class='add'>+</div><div class='add'>+	while (lhsn) {</div><div class='add'>+	    CHECK(compile_massign_lhs(iseq, lhsseq, lhsn-&gt;nd_head));</div><div class='add'>+	    llen += 1;</div><div class='add'>+	    lhsn = lhsn-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	COMPILE(ret, "normal masgn rhs", rhsn);</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	else if (!lhs_splat) {</div><div class='add'>+	    INSN *last = (INSN*)ret-&gt;last;</div><div class='add'>+	    if (IS_INSN(&amp;last-&gt;link) &amp;&amp;</div><div class='add'>+		IS_INSN_ID(last, newarray) &amp;&amp;</div><div class='add'>+		last-&gt;operand_size == 1) {</div><div class='add'>+		int rlen = FIX2INT(OPERAND_AT(last, 0));</div><div class='add'>+		/* special case: assign to aset or attrset */</div><div class='add'>+		if (llen == 2) {</div><div class='add'>+		    POP_ELEMENT(ret);</div><div class='add'>+		    adjust_stack(iseq, ret, nd_line(node), rlen, llen);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+		    expand = 0;</div><div class='add'>+		}</div><div class='add'>+		else if (llen &gt; 2 &amp;&amp; llen != rlen) {</div><div class='add'>+		    POP_ELEMENT(ret);</div><div class='add'>+		    adjust_stack(iseq, ret, nd_line(node), rlen, llen);</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), reverse, INT2FIX(llen));</div><div class='add'>+		    expand = 0;</div><div class='add'>+		}</div><div class='add'>+		else if (llen &gt; 2) {</div><div class='add'>+		    last-&gt;insn_id = BIN(reverse);</div><div class='add'>+		    expand = 0;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (expand) {</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), expandarray,</div><div class='add'>+		      INT2FIX(llen), INT2FIX(lhs_splat));</div><div class='add'>+	}</div><div class='add'>+	ADD_SEQ(ret, lhsseq);</div><div class='add'>+</div><div class='add'>+	if (lhs_splat) {</div><div class='add'>+	    if (nd_type(splatn) == NODE_POSTARG) {</div><div class='add'>+		/*a, b, *r, p1, p2 */</div><div class='add'>+		const NODE *postn = splatn-&gt;nd_2nd;</div><div class='add'>+		const NODE *restn = splatn-&gt;nd_1st;</div><div class='add'>+		int num = (int)postn-&gt;nd_alen;</div><div class='add'>+		int flag = 0x02 | ((restn == NODE_SPECIAL_NO_NAME_REST) ? 0x00 : 0x01);</div><div class='add'>+</div><div class='add'>+		ADD_INSN2(ret, nd_line(splatn), expandarray,</div><div class='add'>+			  INT2FIX(num), INT2FIX(flag));</div><div class='add'>+</div><div class='add'>+		if (restn != NODE_SPECIAL_NO_NAME_REST) {</div><div class='add'>+		    CHECK(compile_massign_lhs(iseq, ret, restn));</div><div class='add'>+		}</div><div class='add'>+		while (postn) {</div><div class='add'>+		    CHECK(compile_massign_lhs(iseq, ret, postn-&gt;nd_head));</div><div class='add'>+		    postn = postn-&gt;nd_next;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* a, b, *r */</div><div class='add'>+		CHECK(compile_massign_lhs(iseq, ret, splatn));</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_const_prefix(rb_iseq_t *iseq, const NODE *const node,</div><div class='add'>+		     LINK_ANCHOR *const pref, LINK_ANCHOR *const body)</div><div class='add'>+{</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_CONST:</div><div class='add'>+	debugi("compile_const_prefix - colon", node-&gt;nd_vid);</div><div class='add'>+	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_COLON3:</div><div class='add'>+	debugi("compile_const_prefix - colon3", node-&gt;nd_mid);</div><div class='add'>+	ADD_INSN(body, nd_line(node), pop);</div><div class='add'>+	ADD_INSN1(body, nd_line(node), putobject, rb_cObject);</div><div class='add'>+	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_COLON2:</div><div class='add'>+	CHECK(compile_const_prefix(iseq, node-&gt;nd_head, pref, body));</div><div class='add'>+	debugi("compile_const_prefix - colon2", node-&gt;nd_mid);</div><div class='add'>+	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	CHECK(COMPILE(pref, "const colon2 prefix", node));</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_cpath(LINK_ANCHOR *const ret, rb_iseq_t *iseq, const NODE *cpath)</div><div class='add'>+{</div><div class='add'>+    if (nd_type(cpath) == NODE_COLON3) {</div><div class='add'>+	/* toplevel class ::Foo */</div><div class='add'>+	ADD_INSN1(ret, nd_line(cpath), putobject, rb_cObject);</div><div class='add'>+	return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='add'>+    }</div><div class='add'>+    else if (cpath-&gt;nd_head) {</div><div class='add'>+	/* Bar::Foo */</div><div class='add'>+	COMPILE(ret, "nd_else-&gt;nd_head", cpath-&gt;nd_head);</div><div class='add'>+	return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* class at cbase Foo */</div><div class='add'>+	ADD_INSN1(ret, nd_line(cpath), putspecialobject,</div><div class='add'>+		  INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='add'>+	return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define private_recv_p(node) (nd_type((node)-&gt;nd_recv) == NODE_SELF)</div><div class='add'>+static int</div><div class='add'>+defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+	     const NODE *const node, LABEL **lfinish, VALUE needstr);</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+defined_expr0(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+	      const NODE *const node, LABEL **lfinish, VALUE needstr)</div><div class='add'>+{</div><div class='add'>+    enum defined_type expr_type = 0;</div><div class='add'>+    enum node_type type;</div><div class='add'>+</div><div class='add'>+    switch (type = nd_type(node)) {</div><div class='add'>+</div><div class='add'>+	/* easy literals */</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+	expr_type = DEFINED_NIL;</div><div class='add'>+	break;</div><div class='add'>+      case NODE_SELF:</div><div class='add'>+	expr_type = DEFINED_SELF;</div><div class='add'>+	break;</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+	expr_type = DEFINED_TRUE;</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+	expr_type = DEFINED_FALSE;</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case NODE_ARRAY:{</div><div class='add'>+	const NODE *vals = node;</div><div class='add'>+</div><div class='add'>+	do {</div><div class='add'>+	    defined_expr0(iseq, ret, vals-&gt;nd_head, lfinish, Qfalse);</div><div class='add'>+</div><div class='add'>+	    if (!lfinish[1]) {</div><div class='add'>+		lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='add'>+	} while ((vals = vals-&gt;nd_next) != NULL);</div><div class='add'>+      }</div><div class='add'>+      case NODE_STR:</div><div class='add'>+      case NODE_LIT:</div><div class='add'>+      case NODE_ZARRAY:</div><div class='add'>+      case NODE_AND:</div><div class='add'>+      case NODE_OR:</div><div class='add'>+      default:</div><div class='add'>+	expr_type = DEFINED_EXPR;</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+	/* variables */</div><div class='add'>+      case NODE_LVAR:</div><div class='add'>+      case NODE_DVAR:</div><div class='add'>+	expr_type = DEFINED_LVAR;</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case NODE_IVAR:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_IVAR),</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_GVAR:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_GVAR),</div><div class='add'>+		  ID2SYM(node-&gt;nd_entry-&gt;id), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_CVAR:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_CVAR),</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_CONST:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_CONST),</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+      case NODE_COLON2:</div><div class='add'>+	if (!lfinish[1]) {</div><div class='add'>+	    lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='add'>+	}</div><div class='add'>+	defined_expr0(iseq, ret, node-&gt;nd_head, lfinish, Qfalse);</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='add'>+	COMPILE(ret, "defined/colon2#nd_head", node-&gt;nd_head);</div><div class='add'>+</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined,</div><div class='add'>+		  (rb_is_const_id(node-&gt;nd_mid) ?</div><div class='add'>+		   INT2FIX(DEFINED_CONST) : INT2FIX(DEFINED_METHOD)),</div><div class='add'>+		  ID2SYM(node-&gt;nd_mid), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+      case NODE_COLON3:</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, rb_cObject);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined,</div><div class='add'>+		  INT2FIX(DEFINED_CONST), ID2SYM(node-&gt;nd_mid), needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+	/* method dispatch */</div><div class='add'>+      case NODE_CALL:</div><div class='add'>+      case NODE_OPCALL:</div><div class='add'>+      case NODE_VCALL:</div><div class='add'>+      case NODE_FCALL:</div><div class='add'>+      case NODE_ATTRASGN:{</div><div class='add'>+	const int explicit_receiver =</div><div class='add'>+	    (type == NODE_CALL || type == NODE_OPCALL ||</div><div class='add'>+	     (type == NODE_ATTRASGN &amp;&amp; !private_recv_p(node)));</div><div class='add'>+</div><div class='add'>+	if (!lfinish[1] &amp;&amp; (node-&gt;nd_args || explicit_receiver)) {</div><div class='add'>+	    lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='add'>+	}</div><div class='add'>+	if (node-&gt;nd_args) {</div><div class='add'>+	    defined_expr0(iseq, ret, node-&gt;nd_args, lfinish, Qfalse);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='add'>+	}</div><div class='add'>+	if (explicit_receiver) {</div><div class='add'>+	    defined_expr0(iseq, ret, node-&gt;nd_recv, lfinish, Qfalse);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='add'>+	    COMPILE(ret, "defined/recv", node-&gt;nd_recv);</div><div class='add'>+	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_METHOD),</div><div class='add'>+		      ID2SYM(node-&gt;nd_mid), needstr);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), putself);</div><div class='add'>+	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_FUNC),</div><div class='add'>+		      ID2SYM(node-&gt;nd_mid), needstr);</div><div class='add'>+	}</div><div class='add'>+	return 1;</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      case NODE_YIELD:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_YIELD), 0,</div><div class='add'>+		  needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_BACK_REF:</div><div class='add'>+      case NODE_NTH_REF:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_REF),</div><div class='add'>+		  INT2FIX((node-&gt;nd_nth &lt;&lt; 1) | (type == NODE_BACK_REF)),</div><div class='add'>+		  needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_SUPER:</div><div class='add'>+      case NODE_ZSUPER:</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_ZSUPER), 0,</div><div class='add'>+		  needstr);</div><div class='add'>+	return 1;</div><div class='add'>+</div><div class='add'>+      case NODE_OP_ASGN1:</div><div class='add'>+      case NODE_OP_ASGN2:</div><div class='add'>+      case NODE_OP_ASGN_OR:</div><div class='add'>+      case NODE_OP_ASGN_AND:</div><div class='add'>+      case NODE_MASGN:</div><div class='add'>+      case NODE_LASGN:</div><div class='add'>+      case NODE_DASGN:</div><div class='add'>+      case NODE_DASGN_CURR:</div><div class='add'>+      case NODE_GASGN:</div><div class='add'>+      case NODE_IASGN:</div><div class='add'>+      case NODE_CDECL:</div><div class='add'>+      case NODE_CVASGN:</div><div class='add'>+	expr_type = DEFINED_ASGN;</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (expr_type) {</div><div class='add'>+	if (needstr != Qfalse) {</div><div class='add'>+	    VALUE str = rb_iseq_defined_string(expr_type);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), putobject, str);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), putobject, Qtrue);</div><div class='add'>+	}</div><div class='add'>+	return 1;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+	     const NODE *const node, LABEL **lfinish, VALUE needstr)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *lcur = ret-&gt;last;</div><div class='add'>+    int done = defined_expr0(iseq, ret, node, lfinish, needstr);</div><div class='add'>+    if (lfinish[1]) {</div><div class='add'>+	int line = nd_line(node);</div><div class='add'>+	LABEL *lstart = NEW_LABEL(line);</div><div class='add'>+	LABEL *lend = NEW_LABEL(line);</div><div class='add'>+	const rb_iseq_t *rescue;</div><div class='add'>+	NODE tmp_node, *node = &amp;tmp_node;</div><div class='add'>+	rb_node_init(node, NODE_NIL, 0, 0, 0);</div><div class='add'>+	rescue = NEW_CHILD_ISEQ(node,</div><div class='add'>+				rb_str_concat(rb_str_new2</div><div class='add'>+					      ("defined guard in "),</div><div class='add'>+					      iseq-&gt;body-&gt;location.label),</div><div class='add'>+				ISEQ_TYPE_DEFINED_GUARD, 0);</div><div class='add'>+	lstart-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='add'>+	lend-&gt;rescued = LABEL_RESCUE_END;</div><div class='add'>+	APPEND_LABEL(ret, lcur, lstart);</div><div class='add'>+	ADD_LABEL(ret, lend);</div><div class='add'>+	ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, rescue, lfinish[1]);</div><div class='add'>+    }</div><div class='add'>+    return done;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE needstr)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    if (!node-&gt;nd_head) {</div><div class='add'>+	VALUE str = rb_iseq_defined_string(DEFINED_NIL);</div><div class='add'>+	ADD_INSN1(ret, line, putobject, str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	LABEL *lfinish[2];</div><div class='add'>+	LINK_ELEMENT *last = ret-&gt;last;</div><div class='add'>+	lfinish[0] = NEW_LABEL(line);</div><div class='add'>+	lfinish[1] = 0;</div><div class='add'>+	defined_expr(iseq, ret, node-&gt;nd_head, lfinish, needstr);</div><div class='add'>+	if (lfinish[1]) {</div><div class='add'>+	    ELEM_INSERT_NEXT(last, &amp;new_insn_body(iseq, line, BIN(putnil), 0)-&gt;link);</div><div class='add'>+	    ADD_INSN(ret, line, swap);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    ADD_LABEL(ret, lfinish[1]);</div><div class='add'>+	}</div><div class='add'>+	ADD_LABEL(ret, lfinish[0]);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+make_name_for_block(const rb_iseq_t *orig_iseq)</div><div class='add'>+{</div><div class='add'>+    int level = 1;</div><div class='add'>+    const rb_iseq_t *iseq = orig_iseq;</div><div class='add'>+</div><div class='add'>+    if (orig_iseq-&gt;body-&gt;parent_iseq != 0) {</div><div class='add'>+	while (orig_iseq-&gt;body-&gt;local_iseq != iseq) {</div><div class='add'>+	    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		level++;</div><div class='add'>+	    }</div><div class='add'>+	    iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (level == 1) {</div><div class='add'>+	return rb_sprintf("block in %"PRIsVALUE, iseq-&gt;body-&gt;location.label);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_sprintf("block (%d levels) in %"PRIsVALUE, level, iseq-&gt;body-&gt;location.label);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+push_ensure_entry(rb_iseq_t *iseq,</div><div class='add'>+		  struct iseq_compile_data_ensure_node_stack *enl,</div><div class='add'>+		  struct ensure_range *er, const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    enl-&gt;ensure_node = node;</div><div class='add'>+    enl-&gt;prev = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack;	/* prev */</div><div class='add'>+    enl-&gt;erange = er;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enl;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+add_ensure_range(rb_iseq_t *iseq, struct ensure_range *erange,</div><div class='add'>+		 LABEL *lstart, LABEL *lend)</div><div class='add'>+{</div><div class='add'>+    struct ensure_range *ne =</div><div class='add'>+	compile_data_alloc(iseq, sizeof(struct ensure_range));</div><div class='add'>+</div><div class='add'>+    while (erange-&gt;next != 0) {</div><div class='add'>+	erange = erange-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    ne-&gt;next = 0;</div><div class='add'>+    ne-&gt;begin = lend;</div><div class='add'>+    ne-&gt;end = erange-&gt;end;</div><div class='add'>+    erange-&gt;end = lstart;</div><div class='add'>+</div><div class='add'>+    erange-&gt;next = ne;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+add_ensure_iseq(LINK_ANCHOR *const ret, rb_iseq_t *iseq, int is_return)</div><div class='add'>+{</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack *enlp =</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack;</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack *prev_enlp = enlp;</div><div class='add'>+    DECL_ANCHOR(ensure);</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(ensure);</div><div class='add'>+    while (enlp) {</div><div class='add'>+	if (enlp-&gt;erange != NULL) {</div><div class='add'>+	    DECL_ANCHOR(ensure_part);</div><div class='add'>+	    LABEL *lstart = NEW_LABEL(0);</div><div class='add'>+	    LABEL *lend = NEW_LABEL(0);</div><div class='add'>+	    INIT_ANCHOR(ensure_part);</div><div class='add'>+</div><div class='add'>+	    add_ensure_range(iseq, enlp-&gt;erange, lstart, lend);</div><div class='add'>+</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enlp-&gt;prev;</div><div class='add'>+	    ADD_LABEL(ensure_part, lstart);</div><div class='add'>+	    COMPILE_POPPED(ensure_part, "ensure part", enlp-&gt;ensure_node);</div><div class='add'>+	    ADD_LABEL(ensure_part, lend);</div><div class='add'>+	    ADD_SEQ(ensure, ensure_part);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (!is_return) {</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	enlp = enlp-&gt;prev;</div><div class='add'>+    }</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = prev_enlp;</div><div class='add'>+    ADD_SEQ(ret, ensure);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,</div><div class='add'>+	   unsigned int *flag, struct rb_call_info_kw_arg **keywords)</div><div class='add'>+{</div><div class='add'>+    VALUE argc = INT2FIX(0);</div><div class='add'>+    int nsplat = 0;</div><div class='add'>+    DECL_ANCHOR(arg_block);</div><div class='add'>+    DECL_ANCHOR(args_splat);</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(arg_block);</div><div class='add'>+    INIT_ANCHOR(args_splat);</div><div class='add'>+    if (argn &amp;&amp; nd_type(argn) == NODE_BLOCK_PASS) {</div><div class='add'>+	COMPILE(arg_block, "block", argn-&gt;nd_body);</div><div class='add'>+	*flag |= VM_CALL_ARGS_BLOCKARG;</div><div class='add'>+	argn = argn-&gt;nd_head;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  setup_argn:</div><div class='add'>+    if (argn) {</div><div class='add'>+	switch (nd_type(argn)) {</div><div class='add'>+	  case NODE_SPLAT: {</div><div class='add'>+	    COMPILE(args, "args (splat)", argn-&gt;nd_head);</div><div class='add'>+	    ADD_INSN1(args, nd_line(argn), splatarray, nsplat ? Qtrue : Qfalse);</div><div class='add'>+	    argc = INT2FIX(1);</div><div class='add'>+	    nsplat++;</div><div class='add'>+	    *flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  case NODE_ARGSCAT:</div><div class='add'>+	  case NODE_ARGSPUSH: {</div><div class='add'>+	    int next_is_array = (nd_type(argn-&gt;nd_head) == NODE_ARRAY);</div><div class='add'>+	    DECL_ANCHOR(tmp);</div><div class='add'>+</div><div class='add'>+	    INIT_ANCHOR(tmp);</div><div class='add'>+	    COMPILE(tmp, "args (cat: splat)", argn-&gt;nd_body);</div><div class='add'>+	    if (nd_type(argn) == NODE_ARGSCAT) {</div><div class='add'>+		ADD_INSN1(tmp, nd_line(argn), splatarray, nsplat ? Qtrue : Qfalse);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(tmp, nd_line(argn), newarray, INT2FIX(1));</div><div class='add'>+	    }</div><div class='add'>+	    INSERT_LIST(args_splat, tmp);</div><div class='add'>+	    nsplat++;</div><div class='add'>+	    *flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+	    if (nd_type(argn-&gt;nd_body) == NODE_HASH)</div><div class='add'>+		*flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+</div><div class='add'>+	    if (next_is_array) {</div><div class='add'>+		int len = compile_array(iseq, args, argn-&gt;nd_head, COMPILE_ARRAY_TYPE_ARGS, NULL, flag, FALSE);</div><div class='add'>+		if (len &lt; 0) return Qnil;</div><div class='add'>+		argc = INT2FIX(len + 1);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		argn = argn-&gt;nd_head;</div><div class='add'>+		goto setup_argn;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  case NODE_ARRAY:</div><div class='add'>+	    {</div><div class='add'>+		int len = compile_array(iseq, args, argn, COMPILE_ARRAY_TYPE_ARGS, keywords, flag, FALSE);</div><div class='add'>+		if (len &lt; 0) return Qnil;</div><div class='add'>+		argc = INT2FIX(len);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default: {</div><div class='add'>+	    UNKNOWN_NODE("setup_arg", argn, Qnil);</div><div class='add'>+	  }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (nsplat &gt; 1) {</div><div class='add'>+	int i;</div><div class='add'>+	for (i=1; i&lt;nsplat; i++) {</div><div class='add'>+	    ADD_INSN(args_splat, nd_line(argn), concatarray);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!LIST_INSN_SIZE_ZERO(args_splat)) {</div><div class='add'>+	ADD_SEQ(args, args_splat);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (*flag &amp; VM_CALL_ARGS_BLOCKARG) {</div><div class='add'>+	if (LIST_INSN_SIZE_ONE(arg_block)) {</div><div class='add'>+	    LINK_ELEMENT *elem = FIRST_ELEMENT(arg_block);</div><div class='add'>+	    if (elem-&gt;type == ISEQ_ELEMENT_INSN) {</div><div class='add'>+		INSN *iobj = (INSN *)elem;</div><div class='add'>+		if (iobj-&gt;insn_id == BIN(getblockparam)) {</div><div class='add'>+		    iobj-&gt;insn_id = BIN(getlocal);</div><div class='add'>+		    *flag |= VM_CALL_ARGS_BLOCKARG_BLOCKPARAM;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	ADD_SEQ(args, arg_block);</div><div class='add'>+    }</div><div class='add'>+    return argc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+build_postexe_iseq(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *body)</div><div class='add'>+{</div><div class='add'>+    int line = nd_line(body);</div><div class='add'>+    VALUE argc = INT2FIX(0);</div><div class='add'>+    const rb_iseq_t *block = NEW_CHILD_ISEQ(body, make_name_for_block(iseq-&gt;body-&gt;parent_iseq), ISEQ_TYPE_BLOCK, line);</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+    ADD_CALL_WITH_BLOCK(ret, line, id_core_set_postexe, argc, block);</div><div class='add'>+    iseq_set_local_table(iseq, 0);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+compile_named_capture_assign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    const NODE *vars;</div><div class='add'>+    LINK_ELEMENT *last;</div><div class='add'>+    int line = nd_line(node);</div><div class='add'>+    LABEL *fail_label = NEW_LABEL(line), *end_label = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+#if !(defined(NAMED_CAPTURE_BY_SVAR) &amp;&amp; NAMED_CAPTURE_BY_SVAR-0)</div><div class='add'>+    ADD_INSN1(ret, line, getglobal, ((VALUE)rb_global_entry(idBACKREF) | 1));</div><div class='add'>+#else</div><div class='add'>+    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */, INT2FIX(0));</div><div class='add'>+#endif</div><div class='add'>+    ADD_INSN(ret, line, dup);</div><div class='add'>+    ADD_INSNL(ret, line, branchunless, fail_label);</div><div class='add'>+</div><div class='add'>+    for (vars = node; vars; vars = vars-&gt;nd_next) {</div><div class='add'>+	INSN *cap;</div><div class='add'>+	if (vars-&gt;nd_next) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	last = ret-&gt;last;</div><div class='add'>+	COMPILE_POPPED(ret, "capture", vars-&gt;nd_head);</div><div class='add'>+	last = last-&gt;next; /* putobject :var */</div><div class='add'>+	cap = new_insn_send(iseq, line, idAREF, INT2FIX(1),</div><div class='add'>+			    NULL, INT2FIX(0), NULL);</div><div class='add'>+	ELEM_INSERT_PREV(last-&gt;next, (LINK_ELEMENT *)cap);</div><div class='add'>+#if !defined(NAMED_CAPTURE_SINGLE_OPT) || NAMED_CAPTURE_SINGLE_OPT-0</div><div class='add'>+	if (!vars-&gt;nd_next &amp;&amp; vars == node) {</div><div class='add'>+	    /* only one name */</div><div class='add'>+	    DECL_ANCHOR(nom);</div><div class='add'>+</div><div class='add'>+	    INIT_ANCHOR(nom);</div><div class='add'>+	    ADD_INSNL(nom, line, jump, end_label);</div><div class='add'>+	    ADD_LABEL(nom, fail_label);</div><div class='add'>+# if 0				/* $~ must be MatchData or nil */</div><div class='add'>+	    ADD_INSN(nom, line, pop);</div><div class='add'>+	    ADD_INSN(nom, line, putnil);</div><div class='add'>+# endif</div><div class='add'>+	    ADD_LABEL(nom, end_label);</div><div class='add'>+	    (nom-&gt;last-&gt;next = cap-&gt;link.next)-&gt;prev = nom-&gt;last;</div><div class='add'>+	    (cap-&gt;link.next = nom-&gt;anchor.next)-&gt;prev = &amp;cap-&gt;link;</div><div class='add'>+	    return;</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    ADD_INSNL(ret, line, jump, end_label);</div><div class='add'>+    ADD_LABEL(ret, fail_label);</div><div class='add'>+    ADD_INSN(ret, line, pop);</div><div class='add'>+    for (vars = node; vars; vars = vars-&gt;nd_next) {</div><div class='add'>+	last = ret-&gt;last;</div><div class='add'>+	COMPILE_POPPED(ret, "capture", vars-&gt;nd_head);</div><div class='add'>+	last = last-&gt;next; /* putobject :var */</div><div class='add'>+	((INSN*)last)-&gt;insn_id = BIN(putnil);</div><div class='add'>+	((INSN*)last)-&gt;operand_size = 0;</div><div class='add'>+    }</div><div class='add'>+    ADD_LABEL(ret, end_label);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+number_literal_p(const NODE *n)</div><div class='add'>+{</div><div class='add'>+    return (n &amp;&amp; nd_type(n) == NODE_LIT &amp;&amp; RB_INTEGER_TYPE_P(n-&gt;nd_lit));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='add'>+{</div><div class='add'>+    const NODE *const node_body = type == NODE_IF ? node-&gt;nd_body : node-&gt;nd_else;</div><div class='add'>+    const NODE *const node_else = type == NODE_IF ? node-&gt;nd_else : node-&gt;nd_body;</div><div class='add'>+</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const int lineno = nd_first_lineno(node);</div><div class='add'>+    const int column = nd_first_column(node);</div><div class='add'>+    const int last_lineno = nd_last_lineno(node);</div><div class='add'>+    const int last_column = nd_last_column(node);</div><div class='add'>+    DECL_ANCHOR(cond_seq);</div><div class='add'>+    DECL_ANCHOR(then_seq);</div><div class='add'>+    DECL_ANCHOR(else_seq);</div><div class='add'>+    LABEL *then_label, *else_label, *end_label;</div><div class='add'>+    VALUE branches = 0;</div><div class='add'>+    int ci_size, ci_kw_size;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(cond_seq);</div><div class='add'>+    INIT_ANCHOR(then_seq);</div><div class='add'>+    INIT_ANCHOR(else_seq);</div><div class='add'>+    then_label = NEW_LABEL(line);</div><div class='add'>+    else_label = NEW_LABEL(line);</div><div class='add'>+    end_label = 0;</div><div class='add'>+</div><div class='add'>+    compile_branch_condition(iseq, cond_seq, node-&gt;nd_cond,</div><div class='add'>+			     then_label, else_label);</div><div class='add'>+</div><div class='add'>+    ci_size = iseq-&gt;body-&gt;ci_size;</div><div class='add'>+    ci_kw_size = iseq-&gt;body-&gt;ci_kw_size;</div><div class='add'>+    CHECK(COMPILE_(then_seq, "then", node_body, popped));</div><div class='add'>+    if (!then_label-&gt;refcnt) {</div><div class='add'>+        iseq-&gt;body-&gt;ci_size = ci_size;</div><div class='add'>+        iseq-&gt;body-&gt;ci_kw_size = ci_kw_size;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ci_size = iseq-&gt;body-&gt;ci_size;</div><div class='add'>+    ci_kw_size = iseq-&gt;body-&gt;ci_kw_size;</div><div class='add'>+    CHECK(COMPILE_(else_seq, "else", node_else, popped));</div><div class='add'>+    if (!else_label-&gt;refcnt) {</div><div class='add'>+        iseq-&gt;body-&gt;ci_size = ci_size;</div><div class='add'>+        iseq-&gt;body-&gt;ci_kw_size = ci_kw_size;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, cond_seq);</div><div class='add'>+</div><div class='add'>+    if (then_label-&gt;refcnt &amp;&amp; else_label-&gt;refcnt) {</div><div class='add'>+	DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_IF ? "if" : "unless");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (then_label-&gt;refcnt) {</div><div class='add'>+	ADD_LABEL(ret, then_label);</div><div class='add'>+	if (else_label-&gt;refcnt) {</div><div class='add'>+	    ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+		ret,</div><div class='add'>+		node_body ? nd_first_lineno(node_body) : lineno,</div><div class='add'>+		node_body ? nd_first_column(node_body) : column,</div><div class='add'>+		node_body ? nd_last_lineno(node_body) : last_lineno,</div><div class='add'>+		node_body ? nd_last_column(node_body) : last_column,</div><div class='add'>+		type == NODE_IF ? "then" : "else",</div><div class='add'>+		branches);</div><div class='add'>+	}</div><div class='add'>+	ADD_SEQ(ret, then_seq);</div><div class='add'>+	end_label = NEW_LABEL(line);</div><div class='add'>+	ADD_INSNL(ret, line, jump, end_label);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (else_label-&gt;refcnt) {</div><div class='add'>+	ADD_LABEL(ret, else_label);</div><div class='add'>+	if (then_label-&gt;refcnt) {</div><div class='add'>+	    ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+		ret,</div><div class='add'>+		node_else ? nd_first_lineno(node_else) : lineno,</div><div class='add'>+		node_else ? nd_first_column(node_else) : column,</div><div class='add'>+		node_else ? nd_last_lineno(node_else) : last_lineno,</div><div class='add'>+		node_else ? nd_last_column(node_else) : last_column,</div><div class='add'>+		type == NODE_IF ? "else" : "then",</div><div class='add'>+		branches);</div><div class='add'>+	}</div><div class='add'>+	ADD_SEQ(ret, else_seq);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (end_label) {</div><div class='add'>+	ADD_LABEL(ret, end_label);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_node, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *vals;</div><div class='add'>+    const NODE *node = orig_node;</div><div class='add'>+    LABEL *endlabel, *elselabel;</div><div class='add'>+    DECL_ANCHOR(head);</div><div class='add'>+    DECL_ANCHOR(body_seq);</div><div class='add'>+    DECL_ANCHOR(cond_seq);</div><div class='add'>+    int only_special_literals = 1;</div><div class='add'>+    VALUE literals = rb_hash_new();</div><div class='add'>+    int line, lineno, column, last_lineno, last_column;</div><div class='add'>+    enum node_type type;</div><div class='add'>+    VALUE branches = 0;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(head);</div><div class='add'>+    INIT_ANCHOR(body_seq);</div><div class='add'>+    INIT_ANCHOR(cond_seq);</div><div class='add'>+</div><div class='add'>+    rb_hash_tbl_raw(literals)-&gt;type = &amp;cdhash_type;</div><div class='add'>+</div><div class='add'>+    CHECK(COMPILE(head, "case base", node-&gt;nd_head));</div><div class='add'>+</div><div class='add'>+    DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "case");</div><div class='add'>+</div><div class='add'>+    node = node-&gt;nd_body;</div><div class='add'>+    type = nd_type(node);</div><div class='add'>+    line = nd_line(node);</div><div class='add'>+    lineno = nd_first_lineno(node);</div><div class='add'>+    column = nd_first_column(node);</div><div class='add'>+    last_lineno = nd_last_lineno(node);</div><div class='add'>+    last_column = nd_last_column(node);</div><div class='add'>+</div><div class='add'>+    if (type != NODE_WHEN) {</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "NODE_CASE: unexpected node. must be NODE_WHEN, but %s", ruby_node_name(type));</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    endlabel = NEW_LABEL(line);</div><div class='add'>+    elselabel = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, head);	/* case VAL */</div><div class='add'>+</div><div class='add'>+    while (type == NODE_WHEN) {</div><div class='add'>+	LABEL *l1;</div><div class='add'>+</div><div class='add'>+	l1 = NEW_LABEL(line);</div><div class='add'>+	ADD_LABEL(body_seq, l1);</div><div class='add'>+	ADD_INSN(body_seq, line, pop);</div><div class='add'>+	ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+		body_seq,</div><div class='add'>+		node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='add'>+		node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='add'>+		node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='add'>+		node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='add'>+		"when",</div><div class='add'>+		branches);</div><div class='add'>+	CHECK(COMPILE_(body_seq, "when body", node-&gt;nd_body, popped));</div><div class='add'>+	ADD_INSNL(body_seq, line, jump, endlabel);</div><div class='add'>+</div><div class='add'>+	vals = node-&gt;nd_head;</div><div class='add'>+	if (vals) {</div><div class='add'>+	    switch (nd_type(vals)) {</div><div class='add'>+	      case NODE_ARRAY:</div><div class='add'>+		only_special_literals = when_vals(iseq, cond_seq, vals, l1, only_special_literals, literals);</div><div class='add'>+		break;</div><div class='add'>+	      case NODE_SPLAT:</div><div class='add'>+	      case NODE_ARGSCAT:</div><div class='add'>+	      case NODE_ARGSPUSH:</div><div class='add'>+		only_special_literals = 0;</div><div class='add'>+		ADD_INSN (cond_seq, nd_line(vals), dup);</div><div class='add'>+		CHECK(COMPILE(cond_seq, "when/cond splat", vals));</div><div class='add'>+		ADD_INSN1(cond_seq, nd_line(vals), checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE | VM_CHECKMATCH_ARRAY));</div><div class='add'>+		ADD_INSNL(cond_seq, nd_line(vals), branchif, l1);</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='add'>+		UNKNOWN_NODE("NODE_CASE", vals, COMPILE_NG);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    EXPECT_NODE_NONULL("NODE_CASE", node, NODE_ARRAY, COMPILE_NG);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	node = node-&gt;nd_next;</div><div class='add'>+	if (!node) {</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	type = nd_type(node);</div><div class='add'>+	line = nd_line(node);</div><div class='add'>+	lineno = nd_first_lineno(node);</div><div class='add'>+	column = nd_first_column(node);</div><div class='add'>+	last_lineno = nd_last_lineno(node);</div><div class='add'>+	last_column = nd_last_column(node);</div><div class='add'>+    }</div><div class='add'>+    /* else */</div><div class='add'>+    if (node) {</div><div class='add'>+	ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+	ADD_INSN(cond_seq, line, pop);</div><div class='add'>+	ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);</div><div class='add'>+	CHECK(COMPILE_(cond_seq, "else", node, popped));</div><div class='add'>+	ADD_INSNL(cond_seq, line, jump, endlabel);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	debugs("== else (implicit)\n");</div><div class='add'>+	ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+	ADD_INSN(cond_seq, nd_line(orig_node), pop);</div><div class='add'>+	ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "else", branches);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(cond_seq, nd_line(orig_node), putnil);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSNL(cond_seq, nd_line(orig_node), jump, endlabel);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (only_special_literals) {</div><div class='add'>+	iseq_add_mark_object(iseq, literals);</div><div class='add'>+</div><div class='add'>+	ADD_INSN(ret, nd_line(orig_node), dup);</div><div class='add'>+	ADD_INSN2(ret, nd_line(orig_node), opt_case_dispatch, literals, elselabel);</div><div class='add'>+	LABEL_REF(elselabel);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, cond_seq);</div><div class='add'>+    ADD_SEQ(ret, body_seq);</div><div class='add'>+    ADD_LABEL(ret, endlabel);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_case2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_node, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *vals;</div><div class='add'>+    const NODE *val;</div><div class='add'>+    const NODE *node = orig_node-&gt;nd_body;</div><div class='add'>+    LABEL *endlabel;</div><div class='add'>+    DECL_ANCHOR(body_seq);</div><div class='add'>+    VALUE branches = 0;</div><div class='add'>+</div><div class='add'>+    DECL_BRANCH_BASE(branches, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "case");</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(body_seq);</div><div class='add'>+    endlabel = NEW_LABEL(nd_line(node));</div><div class='add'>+</div><div class='add'>+    while (node &amp;&amp; nd_type(node) == NODE_WHEN) {</div><div class='add'>+	const int line = nd_line(node);</div><div class='add'>+	const int lineno = nd_first_lineno(node);</div><div class='add'>+	const int column = nd_first_column(node);</div><div class='add'>+	const int last_lineno = nd_last_lineno(node);</div><div class='add'>+	const int last_column = nd_last_column(node);</div><div class='add'>+	LABEL *l1 = NEW_LABEL(line);</div><div class='add'>+	ADD_LABEL(body_seq, l1);</div><div class='add'>+	ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+		body_seq,</div><div class='add'>+		node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='add'>+		node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='add'>+		node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='add'>+		node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='add'>+		"when",</div><div class='add'>+		branches);</div><div class='add'>+	CHECK(COMPILE_(body_seq, "when", node-&gt;nd_body, popped));</div><div class='add'>+	ADD_INSNL(body_seq, line, jump, endlabel);</div><div class='add'>+</div><div class='add'>+	vals = node-&gt;nd_head;</div><div class='add'>+	if (!vals) {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "NODE_WHEN: must be NODE_ARRAY, but 0");</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	}</div><div class='add'>+	switch (nd_type(vals)) {</div><div class='add'>+	  case NODE_ARRAY:</div><div class='add'>+	    while (vals) {</div><div class='add'>+		val = vals-&gt;nd_head;</div><div class='add'>+		CHECK(COMPILE(ret, "when2", val));</div><div class='add'>+		ADD_INSNL(ret, nd_line(val), branchif, l1);</div><div class='add'>+		vals = vals-&gt;nd_next;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_SPLAT:</div><div class='add'>+	  case NODE_ARGSCAT:</div><div class='add'>+	  case NODE_ARGSPUSH:</div><div class='add'>+	    ADD_INSN(ret, nd_line(vals), putnil);</div><div class='add'>+	    CHECK(COMPILE(ret, "when2/cond splat", vals));</div><div class='add'>+	    ADD_INSN1(ret, nd_line(vals), checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_WHEN | VM_CHECKMATCH_ARRAY));</div><div class='add'>+	    ADD_INSNL(ret, nd_line(vals), branchif, l1);</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    UNKNOWN_NODE("NODE_WHEN", vals, COMPILE_NG);</div><div class='add'>+	}</div><div class='add'>+	node = node-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+    /* else */</div><div class='add'>+    ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+	ret,</div><div class='add'>+	node ? nd_first_lineno(node) : nd_first_lineno(orig_node),</div><div class='add'>+	node ? nd_first_column(node) : nd_first_column(orig_node),</div><div class='add'>+	node ? nd_last_lineno(node) : nd_last_lineno(orig_node),</div><div class='add'>+	node ? nd_last_column(node) : nd_last_column(orig_node),</div><div class='add'>+	"else",</div><div class='add'>+	branches);</div><div class='add'>+    CHECK(COMPILE_(ret, "else", node, popped));</div><div class='add'>+    ADD_INSNL(ret, nd_line(orig_node), jump, endlabel);</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, body_seq);</div><div class='add'>+    ADD_LABEL(ret, endlabel);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='add'>+{</div><div class='add'>+    const int line = (int)nd_line(node);</div><div class='add'>+    const int lineno = nd_first_lineno(node);</div><div class='add'>+    const int column = nd_first_column(node);</div><div class='add'>+    const int last_lineno = nd_last_lineno(node);</div><div class='add'>+    const int last_column = nd_last_column(node);</div><div class='add'>+    LABEL *prev_start_label = ISEQ_COMPILE_DATA(iseq)-&gt;start_label;</div><div class='add'>+    LABEL *prev_end_label = ISEQ_COMPILE_DATA(iseq)-&gt;end_label;</div><div class='add'>+    LABEL *prev_redo_label = ISEQ_COMPILE_DATA(iseq)-&gt;redo_label;</div><div class='add'>+    int prev_loopval_popped = ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped;</div><div class='add'>+    VALUE branches = 0;</div><div class='add'>+</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack enl;</div><div class='add'>+</div><div class='add'>+    LABEL *next_label = ISEQ_COMPILE_DATA(iseq)-&gt;start_label = NEW_LABEL(line);	/* next  */</div><div class='add'>+    LABEL *redo_label = ISEQ_COMPILE_DATA(iseq)-&gt;redo_label = NEW_LABEL(line);	/* redo  */</div><div class='add'>+    LABEL *break_label = ISEQ_COMPILE_DATA(iseq)-&gt;end_label = NEW_LABEL(line);	/* break */</div><div class='add'>+    LABEL *end_label = NEW_LABEL(line);</div><div class='add'>+    LABEL *adjust_label = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    LABEL *next_catch_label = NEW_LABEL(line);</div><div class='add'>+    LABEL *tmp_label = NULL;</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped = 0;</div><div class='add'>+    push_ensure_entry(iseq, &amp;enl, NULL, NULL);</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_state == 1) {</div><div class='add'>+	ADD_INSNL(ret, line, jump, next_label);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	tmp_label = NEW_LABEL(line);</div><div class='add'>+	ADD_INSNL(ret, line, jump, tmp_label);</div><div class='add'>+    }</div><div class='add'>+    ADD_LABEL(ret, adjust_label);</div><div class='add'>+    ADD_INSN(ret, line, putnil);</div><div class='add'>+    ADD_LABEL(ret, next_catch_label);</div><div class='add'>+    ADD_INSN(ret, line, pop);</div><div class='add'>+    ADD_INSNL(ret, line, jump, next_label);</div><div class='add'>+    if (tmp_label) ADD_LABEL(ret, tmp_label);</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, redo_label);</div><div class='add'>+    DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_WHILE ? "while" : "until");</div><div class='add'>+    ADD_TRACE_BRANCH_COVERAGE(</div><div class='add'>+	ret,</div><div class='add'>+	node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='add'>+	node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='add'>+	node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='add'>+	node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='add'>+	"body",</div><div class='add'>+	branches);</div><div class='add'>+    CHECK(COMPILE_POPPED(ret, "while body", node-&gt;nd_body));</div><div class='add'>+    ADD_LABEL(ret, next_label);	/* next */</div><div class='add'>+</div><div class='add'>+    if (type == NODE_WHILE) {</div><div class='add'>+	compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='add'>+				 redo_label, end_label);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* until */</div><div class='add'>+	compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='add'>+				 end_label, redo_label);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, end_label);</div><div class='add'>+    ADD_ADJUST_RESTORE(ret, adjust_label);</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_state == Qundef) {</div><div class='add'>+	/* ADD_INSN(ret, line, putundef); */</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "unsupported: putundef");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ADD_INSN(ret, line, putnil);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, break_label);	/* break */</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_BREAK, redo_label, break_label, NULL,</div><div class='add'>+		    break_label);</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, redo_label, break_label, NULL,</div><div class='add'>+		    next_catch_label);</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_REDO, redo_label, break_label, NULL,</div><div class='add'>+		    ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;start_label = prev_start_label;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;end_label = prev_end_label;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;redo_label = prev_redo_label;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped = prev_loopval_popped;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack-&gt;prev;</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_iter(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const rb_iseq_t *prevblock = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='add'>+    LABEL *retry_label = NEW_LABEL(line);</div><div class='add'>+    LABEL *retry_end_l = NEW_LABEL(line);</div><div class='add'>+    const rb_iseq_t *child_iseq;</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, retry_label);</div><div class='add'>+    if (nd_type(node) == NODE_FOR) {</div><div class='add'>+	CHECK(COMPILE(ret, "iter caller (for)", node-&gt;nd_iter));</div><div class='add'>+</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='add'>+	    NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+			   ISEQ_TYPE_BLOCK, line);</div><div class='add'>+	ADD_SEND_WITH_BLOCK(ret, line, idEach, INT2FIX(0), child_iseq);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='add'>+	    NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+			   ISEQ_TYPE_BLOCK, line);</div><div class='add'>+	CHECK(COMPILE(ret, "iter caller", node-&gt;nd_iter));</div><div class='add'>+    }</div><div class='add'>+    ADD_LABEL(ret, retry_end_l);</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;current_block = prevblock;</div><div class='add'>+</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_BREAK, retry_label, retry_end_l, child_iseq, retry_end_l);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_for(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    if (node-&gt;nd_var) {</div><div class='add'>+	/* massign to var in "for"</div><div class='add'>+	 * args.length == 1 &amp;&amp; Array === (tmp = args[0]) ? tmp : args</div><div class='add'>+	 */</div><div class='add'>+	const NODE *var = node-&gt;nd_var;</div><div class='add'>+	LABEL *not_single = NEW_LABEL(nd_line(var));</div><div class='add'>+	LABEL *not_ary = NEW_LABEL(nd_line(var));</div><div class='add'>+	CHECK(COMPILE(ret, "for var", var));</div><div class='add'>+	ADD_INSN(ret, line, dup);</div><div class='add'>+	ADD_CALL(ret, line, idLength, INT2FIX(0));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, INT2FIX(1));</div><div class='add'>+	ADD_CALL(ret, line, idEq, INT2FIX(1));</div><div class='add'>+	ADD_INSNL(ret, line, branchunless, not_single);</div><div class='add'>+	ADD_INSN(ret, line, dup);</div><div class='add'>+	ADD_INSN1(ret, line, putobject, INT2FIX(0));</div><div class='add'>+	ADD_CALL(ret, line, idAREF, INT2FIX(1));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, rb_cArray);</div><div class='add'>+	ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='add'>+	ADD_CALL(ret, line, idEqq, INT2FIX(1));</div><div class='add'>+	ADD_INSNL(ret, line, branchunless, not_ary);</div><div class='add'>+	ADD_INSN(ret, line, swap);</div><div class='add'>+	ADD_LABEL(ret, not_ary);</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+	ADD_LABEL(ret, not_single);</div><div class='add'>+	return COMPILE_OK;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return compile_iter(iseq, ret, node, popped);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_break(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    unsigned long level = 0;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0) {</div><div class='add'>+	/* while/until */</div><div class='add'>+	LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+	ADD_LABEL(ret, splabel);</div><div class='add'>+	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+	CHECK(COMPILE_(ret, "break val (while/until)", node-&gt;nd_stts,</div><div class='add'>+		       ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped));</div><div class='add'>+	add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='add'>+	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+      break_by_insn:</div><div class='add'>+	/* escape from block */</div><div class='add'>+	CHECK(COMPILE(ret, "break val (block)", node-&gt;nd_stts));</div><div class='add'>+	ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_BREAK));</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+      break_in_eval:</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with break");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	const rb_iseq_t *ip = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+</div><div class='add'>+	while (ip) {</div><div class='add'>+	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+		ip = 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    level++;</div><div class='add'>+	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+		level = VM_THROW_NO_ESCAPE_FLAG;</div><div class='add'>+		goto break_by_insn;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		level &lt;&lt;= VM_THROW_LEVEL_SHIFT;</div><div class='add'>+		goto break_by_insn;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+		goto break_in_eval;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='add'>+	}</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "Invalid break");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_next(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    unsigned long level = 0;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0) {</div><div class='add'>+	LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+	debugs("next in while loop\n");</div><div class='add'>+	ADD_LABEL(ret, splabel);</div><div class='add'>+	CHECK(COMPILE(ret, "next val/valid syntax?", node-&gt;nd_stts));</div><div class='add'>+	add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (ISEQ_COMPILE_DATA(iseq)-&gt;end_label) {</div><div class='add'>+	LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+	debugs("next in block\n");</div><div class='add'>+	ADD_LABEL(ret, splabel);</div><div class='add'>+	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+	CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='add'>+	add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='add'>+	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+	splabel-&gt;unremovable = FALSE;</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+      next_in_eval:</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with next");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	const rb_iseq_t *ip = iseq;</div><div class='add'>+</div><div class='add'>+	while (ip) {</div><div class='add'>+	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+		ip = 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    level = VM_THROW_NO_ESCAPE_FLAG;</div><div class='add'>+	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+		/* while loop */</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+		goto next_in_eval;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='add'>+	}</div><div class='add'>+	if (ip != 0) {</div><div class='add'>+	    CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='add'>+	    ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_NEXT));</div><div class='add'>+</div><div class='add'>+	    if (popped) {</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "Invalid next");</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_redo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label) {</div><div class='add'>+	LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+	debugs("redo in while");</div><div class='add'>+	ADD_LABEL(ret, splabel);</div><div class='add'>+	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+	add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+      redo_in_eval:</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with redo");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else if (ISEQ_COMPILE_DATA(iseq)-&gt;start_label) {</div><div class='add'>+	LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+</div><div class='add'>+	debugs("redo in block");</div><div class='add'>+	ADD_LABEL(ret, splabel);</div><div class='add'>+	add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	const rb_iseq_t *ip = iseq;</div><div class='add'>+	const unsigned long level = VM_THROW_NO_ESCAPE_FLAG;</div><div class='add'>+</div><div class='add'>+	while (ip) {</div><div class='add'>+	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+		ip = 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+		goto redo_in_eval;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='add'>+	}</div><div class='add'>+	if (ip != 0) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	    ADD_INSN1(ret, line, throw, INT2FIX(level | TAG_REDO));</div><div class='add'>+</div><div class='add'>+	    if (popped) {</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "Invalid redo");</div><div class='add'>+	    return COMPILE_NG;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_retry(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+	ADD_INSN(ret, line, putnil);</div><div class='add'>+	ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETRY));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	COMPILE_ERROR(ERROR_ARGS "Invalid retry");</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_rescue(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    LABEL *lstart = NEW_LABEL(line);</div><div class='add'>+    LABEL *lend = NEW_LABEL(line);</div><div class='add'>+    LABEL *lcont = NEW_LABEL(line);</div><div class='add'>+    const rb_iseq_t *rescue = NEW_CHILD_ISEQ(node-&gt;nd_resq,</div><div class='add'>+					     rb_str_concat(rb_str_new2("rescue in "), iseq-&gt;body-&gt;location.label),</div><div class='add'>+					     ISEQ_TYPE_RESCUE, line);</div><div class='add'>+</div><div class='add'>+    lstart-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='add'>+    lend-&gt;rescued = LABEL_RESCUE_END;</div><div class='add'>+    ADD_LABEL(ret, lstart);</div><div class='add'>+    CHECK(COMPILE(ret, "rescue head", node-&gt;nd_head));</div><div class='add'>+    ADD_LABEL(ret, lend);</div><div class='add'>+    if (node-&gt;nd_else) {</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+	CHECK(COMPILE(ret, "rescue else", node-&gt;nd_else));</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN(ret, line, nop);</div><div class='add'>+    ADD_LABEL(ret, lcont);</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* register catch entry */</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, rescue, lcont);</div><div class='add'>+    ADD_CATCH_ENTRY(CATCH_TYPE_RETRY, lend, lcont, NULL, lstart);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_resbody(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *resq = node;</div><div class='add'>+    const NODE *narg;</div><div class='add'>+    LABEL *label_miss, *label_hit;</div><div class='add'>+</div><div class='add'>+    while (resq) {</div><div class='add'>+	label_miss = NEW_LABEL(line);</div><div class='add'>+	label_hit = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+	narg = resq-&gt;nd_args;</div><div class='add'>+	if (narg) {</div><div class='add'>+	    switch (nd_type(narg)) {</div><div class='add'>+	      case NODE_ARRAY:</div><div class='add'>+		while (narg) {</div><div class='add'>+		    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='add'>+		    CHECK(COMPILE(ret, "rescue arg", narg-&gt;nd_head));</div><div class='add'>+		    ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='add'>+		    ADD_INSNL(ret, line, branchif, label_hit);</div><div class='add'>+		    narg = narg-&gt;nd_next;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case NODE_SPLAT:</div><div class='add'>+	      case NODE_ARGSCAT:</div><div class='add'>+	      case NODE_ARGSPUSH:</div><div class='add'>+		ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='add'>+		CHECK(COMPILE(ret, "rescue/cond splat", narg));</div><div class='add'>+		ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE | VM_CHECKMATCH_ARRAY));</div><div class='add'>+		ADD_INSNL(ret, line, branchif, label_hit);</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='add'>+		UNKNOWN_NODE("NODE_RESBODY", narg, COMPILE_NG);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='add'>+	    ADD_INSN1(ret, line, putobject, rb_eStandardError);</div><div class='add'>+	    ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='add'>+	    ADD_INSNL(ret, line, branchif, label_hit);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSNL(ret, line, jump, label_miss);</div><div class='add'>+	ADD_LABEL(ret, label_hit);</div><div class='add'>+	CHECK(COMPILE(ret, "resbody body", resq-&gt;nd_body));</div><div class='add'>+	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization) {</div><div class='add'>+	    ADD_INSN(ret, line, nop);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, line, leave);</div><div class='add'>+	ADD_LABEL(ret, label_miss);</div><div class='add'>+	resq = resq-&gt;nd_head;</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_ensure(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    DECL_ANCHOR(ensr);</div><div class='add'>+    const rb_iseq_t *ensure = NEW_CHILD_ISEQ(node-&gt;nd_ensr,</div><div class='add'>+					     rb_str_concat(rb_str_new2 ("ensure in "), iseq-&gt;body-&gt;location.label),</div><div class='add'>+					     ISEQ_TYPE_ENSURE, line);</div><div class='add'>+    LABEL *lstart = NEW_LABEL(line);</div><div class='add'>+    LABEL *lend = NEW_LABEL(line);</div><div class='add'>+    LABEL *lcont = NEW_LABEL(line);</div><div class='add'>+    LINK_ELEMENT *last;</div><div class='add'>+    int last_leave = 0;</div><div class='add'>+    struct ensure_range er;</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack enl;</div><div class='add'>+    struct ensure_range *erange;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(ensr);</div><div class='add'>+    CHECK(COMPILE_POPPED(ensr, "ensure ensr", node-&gt;nd_ensr));</div><div class='add'>+    last = ensr-&gt;last;</div><div class='add'>+    last_leave = last &amp;&amp; IS_INSN(last) &amp;&amp; IS_INSN_ID(last, leave);</div><div class='add'>+</div><div class='add'>+    er.begin = lstart;</div><div class='add'>+    er.end = lend;</div><div class='add'>+    er.next = 0;</div><div class='add'>+    push_ensure_entry(iseq, &amp;enl, &amp;er, node-&gt;nd_ensr);</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, lstart);</div><div class='add'>+    CHECK(COMPILE_(ret, "ensure head", node-&gt;nd_head, (popped | last_leave)));</div><div class='add'>+    ADD_LABEL(ret, lend);</div><div class='add'>+    ADD_SEQ(ret, ensr);</div><div class='add'>+    if (!popped &amp;&amp; last_leave) ADD_INSN(ret, line, putnil);</div><div class='add'>+    ADD_LABEL(ret, lcont);</div><div class='add'>+    if (last_leave) ADD_INSN(ret, line, pop);</div><div class='add'>+</div><div class='add'>+    erange = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack-&gt;erange;</div><div class='add'>+    if (lstart-&gt;link.next != &amp;lend-&gt;link) {</div><div class='add'>+	while (erange) {</div><div class='add'>+	    ADD_CATCH_ENTRY(CATCH_TYPE_ENSURE, erange-&gt;begin, erange-&gt;end,</div><div class='add'>+			    ensure, lcont);</div><div class='add'>+	    erange = erange-&gt;next;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enl.prev;</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_return(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+</div><div class='add'>+    if (iseq) {</div><div class='add'>+	enum iseq_type type = iseq-&gt;body-&gt;type;</div><div class='add'>+	const rb_iseq_t *is = iseq;</div><div class='add'>+	enum iseq_type t = type;</div><div class='add'>+	const NODE *retval = node-&gt;nd_stts;</div><div class='add'>+	LABEL *splabel = 0;</div><div class='add'>+</div><div class='add'>+	while (t == ISEQ_TYPE_RESCUE || t == ISEQ_TYPE_ENSURE) {</div><div class='add'>+	    if (!(is = is-&gt;body-&gt;parent_iseq)) break;</div><div class='add'>+	    t = is-&gt;body-&gt;type;</div><div class='add'>+	}</div><div class='add'>+	switch (t) {</div><div class='add'>+	  case ISEQ_TYPE_TOP:</div><div class='add'>+	  case ISEQ_TYPE_MAIN:</div><div class='add'>+	    if (is == iseq) {</div><div class='add'>+		/* plain top-level, leave directly */</div><div class='add'>+		type = ISEQ_TYPE_METHOD;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (type == ISEQ_TYPE_METHOD) {</div><div class='add'>+	    splabel = NEW_LABEL(0);</div><div class='add'>+	    ADD_LABEL(ret, splabel);</div><div class='add'>+	    ADD_ADJUST(ret, line, 0);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	CHECK(COMPILE(ret, "return nd_stts (return val)", retval));</div><div class='add'>+</div><div class='add'>+	if (type == ISEQ_TYPE_METHOD) {</div><div class='add'>+	    add_ensure_iseq(ret, iseq, 1);</div><div class='add'>+	    ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='add'>+	    ADD_INSN(ret, line, leave);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN(ret, line, putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETURN));</div><div class='add'>+	    if (popped) {</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped);</div><div class='add'>+/**</div><div class='add'>+  compile each node</div><div class='add'>+</div><div class='add'>+  self:  InstructionSequence</div><div class='add'>+  node:  Ruby compiled node</div><div class='add'>+  popped: This node will be popped</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, const NODE *node, int popped)</div><div class='add'>+{</div><div class='add'>+    if (node == 0) {</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    int lineno = ISEQ_COMPILE_DATA(iseq)-&gt;last_line;</div><div class='add'>+	    if (lineno == 0) lineno = FIX2INT(rb_iseq_first_lineno(iseq));</div><div class='add'>+	    debugs("node: NODE_NIL(implicit)\n");</div><div class='add'>+	    ADD_INSN(ret, lineno, putnil);</div><div class='add'>+	}</div><div class='add'>+	return COMPILE_OK;</div><div class='add'>+    }</div><div class='add'>+    return iseq_compile_each0(iseq, ret, node, popped);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = (int)nd_line(node);</div><div class='add'>+    const enum node_type type = nd_type(node);</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;last_line == line) {</div><div class='add'>+	/* ignore */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (node-&gt;flags &amp; NODE_FL_NEWLINE) {</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;last_line = line;</div><div class='add'>+	    ADD_TRACE_LINE_COVERAGE(ret, line);</div><div class='add'>+	    ADD_TRACE(ret, RUBY_EVENT_LINE);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    debug_node_start(node);</div><div class='add'>+#undef BEFORE_RETURN</div><div class='add'>+#define BEFORE_RETURN debug_node_end()</div><div class='add'>+</div><div class='add'>+    switch (type) {</div><div class='add'>+      case NODE_BLOCK:{</div><div class='add'>+	while (node &amp;&amp; nd_type(node) == NODE_BLOCK) {</div><div class='add'>+	    CHECK(COMPILE_(ret, "BLOCK body", node-&gt;nd_head,</div><div class='add'>+			   (node-&gt;nd_next ? 1 : popped)));</div><div class='add'>+	    node = node-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+	if (node) {</div><div class='add'>+	    CHECK(COMPILE_(ret, "BLOCK next", node-&gt;nd_next, popped));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_IF:</div><div class='add'>+      case NODE_UNLESS:</div><div class='add'>+	CHECK(compile_if(iseq, ret, node, popped, type));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_CASE:</div><div class='add'>+	CHECK(compile_case(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_CASE2:</div><div class='add'>+	CHECK(compile_case2(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_WHILE:</div><div class='add'>+      case NODE_UNTIL:</div><div class='add'>+	CHECK(compile_loop(iseq, ret, node, popped, type));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FOR:</div><div class='add'>+	CHECK(compile_for(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_ITER:</div><div class='add'>+	CHECK(compile_iter(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_BREAK:</div><div class='add'>+	CHECK(compile_break(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_NEXT:</div><div class='add'>+	CHECK(compile_next(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_REDO:</div><div class='add'>+	CHECK(compile_redo(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_RETRY:</div><div class='add'>+	CHECK(compile_retry(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_BEGIN:{</div><div class='add'>+	CHECK(COMPILE_(ret, "NODE_BEGIN", node-&gt;nd_body, popped));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RESCUE:</div><div class='add'>+	CHECK(compile_rescue(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_RESBODY:</div><div class='add'>+	CHECK(compile_resbody(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_ENSURE:</div><div class='add'>+	CHECK(compile_ensure(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case NODE_AND:</div><div class='add'>+      case NODE_OR:{</div><div class='add'>+	LABEL *end_label = NEW_LABEL(line);</div><div class='add'>+	CHECK(COMPILE(ret, "nd_1st", node-&gt;nd_1st));</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	if (type == NODE_AND) {</div><div class='add'>+	    ADD_INSNL(ret, line, branchunless, end_label);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSNL(ret, line, branchif, end_label);</div><div class='add'>+	}</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	CHECK(COMPILE_(ret, "nd_2nd", node-&gt;nd_2nd, popped));</div><div class='add'>+	ADD_LABEL(ret, end_label);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      case NODE_MASGN:{</div><div class='add'>+	compile_massign(iseq, ret, node, popped);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      case NODE_LASGN:{</div><div class='add'>+	ID id = node-&gt;nd_vid;</div><div class='add'>+	int idx = iseq-&gt;body-&gt;local_iseq-&gt;body-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='add'>+</div><div class='add'>+	debugs("lvar: %s idx: %d\n", rb_id2name(id), idx);</div><div class='add'>+	CHECK(COMPILE(ret, "rvalue", node-&gt;nd_value));</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_SETLOCAL(ret, line, idx, get_lvar_level(iseq));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DASGN:</div><div class='add'>+      case NODE_DASGN_CURR:{</div><div class='add'>+	int idx, lv, ls;</div><div class='add'>+	ID id = node-&gt;nd_vid;</div><div class='add'>+	CHECK(COMPILE(ret, "dvalue", node-&gt;nd_value));</div><div class='add'>+	debugi("dassn id", rb_id2str(id) ? id : '*');</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	idx = get_dyna_var_idx(iseq, id, &amp;lv, &amp;ls);</div><div class='add'>+</div><div class='add'>+	if (idx &lt; 0) {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "NODE_DASGN(_CURR): unknown id (%"PRIsVALUE")",</div><div class='add'>+			  rb_id2str(id));</div><div class='add'>+	    goto ng;</div><div class='add'>+	}</div><div class='add'>+	ADD_SETLOCAL(ret, line, ls - idx, lv);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_GASGN:{</div><div class='add'>+	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, line, setglobal,</div><div class='add'>+		  ((VALUE)node-&gt;nd_entry | 1));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_IASGN:{</div><div class='add'>+	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN2(ret, line, setinstancevariable,</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid),</div><div class='add'>+		  get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CDECL:{</div><div class='add'>+	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_vid) {</div><div class='add'>+	    ADD_INSN1(ret, line, putspecialobject,</div><div class='add'>+		      INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='add'>+	    ADD_INSN1(ret, line, setconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    compile_cpath(ret, iseq, node-&gt;nd_else);</div><div class='add'>+	    ADD_INSN1(ret, line, setconstant, ID2SYM(node-&gt;nd_else-&gt;nd_mid));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CVASGN:{</div><div class='add'>+	CHECK(COMPILE(ret, "cvasgn val", node-&gt;nd_value));</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, line, setclassvariable,</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OP_ASGN1: {</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	VALUE argc;</div><div class='add'>+	unsigned int flag = 0;</div><div class='add'>+	unsigned int asgnflag = 0;</div><div class='add'>+	ID id = node-&gt;nd_mid;</div><div class='add'>+	int boff = 0;</div><div class='add'>+</div><div class='add'>+	/*</div><div class='add'>+	 * a[x] (op)= y</div><div class='add'>+	 *</div><div class='add'>+	 * nil       # nil</div><div class='add'>+	 * eval a    # nil a</div><div class='add'>+	 * eval x    # nil a x</div><div class='add'>+	 * dupn 2    # nil a x a x</div><div class='add'>+	 * send :[]  # nil a x a[x]</div><div class='add'>+	 * eval y    # nil a x a[x] y</div><div class='add'>+	 * send op   # nil a x ret</div><div class='add'>+	 * setn 3    # ret a x ret</div><div class='add'>+	 * send []=  # ret ?</div><div class='add'>+	 * pop       # ret</div><div class='add'>+	 */</div><div class='add'>+</div><div class='add'>+	/*</div><div class='add'>+	 * nd_recv[nd_args-&gt;nd_body] (nd_mid)= nd_args-&gt;nd_head;</div><div class='add'>+	 * NODE_OP_ASGN nd_recv</div><div class='add'>+	 *              nd_args-&gt;nd_head</div><div class='add'>+	 *              nd_args-&gt;nd_body</div><div class='add'>+	 *              nd_mid</div><div class='add'>+	 */</div><div class='add'>+</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+	asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN1 recv", node);</div><div class='add'>+	switch (nd_type(node-&gt;nd_args-&gt;nd_head)) {</div><div class='add'>+	  case NODE_ZARRAY:</div><div class='add'>+	    argc = INT2FIX(0);</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_BLOCK_PASS:</div><div class='add'>+	    boff = 1;</div><div class='add'>+	  default:</div><div class='add'>+	    INIT_ANCHOR(args);</div><div class='add'>+	    argc = setup_args(iseq, args, node-&gt;nd_args-&gt;nd_head, &amp;flag, NULL);</div><div class='add'>+	    CHECK(!NIL_P(argc));</div><div class='add'>+	    ADD_SEQ(ret, args);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, line, dupn, FIXNUM_INC(argc, 1 + boff));</div><div class='add'>+	ADD_SEND_WITH_FLAG(ret, line, idAREF, argc, INT2FIX(flag));</div><div class='add'>+	flag |= asgnflag;</div><div class='add'>+</div><div class='add'>+	if (id == 0 || id == 1) {</div><div class='add'>+	    /* 0: or, 1: and</div><div class='add'>+	       a[x] ||= y</div><div class='add'>+</div><div class='add'>+	       unless/if a[x]</div><div class='add'>+	       a[x]= y</div><div class='add'>+	       else</div><div class='add'>+	       nil</div><div class='add'>+	       end</div><div class='add'>+	    */</div><div class='add'>+	    LABEL *label = NEW_LABEL(line);</div><div class='add'>+	    LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	    if (id == 0) {</div><div class='add'>+		/* or */</div><div class='add'>+		ADD_INSNL(ret, line, branchif, label);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* and */</div><div class='add'>+		ADD_INSNL(ret, line, branchunless, label);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+		ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, line, dupn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, line, swap);</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN(ret, line, concatarray);</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, line, setn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_SEND_WITH_FLAG(ret, line, idASET, argc, INT2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (boff &gt; 0)</div><div class='add'>+		    ADD_INSN(ret, line, swap);</div><div class='add'>+		ADD_SEND_WITH_FLAG(ret, line, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    ADD_INSNL(ret, line, jump, lfin);</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN1(ret, line, adjuststack, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    ADD_LABEL(ret, lfin);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='add'>+	    ADD_SEND(ret, line, id, INT2FIX(1));</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+		ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, line, dupn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, line, swap);</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN(ret, line, concatarray);</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, line, setn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		    ADD_INSN(ret, line, pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_SEND_WITH_FLAG(ret, line, idASET, argc, INT2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (boff &gt; 0)</div><div class='add'>+		    ADD_INSN(ret, line, swap);</div><div class='add'>+		ADD_SEND_WITH_FLAG(ret, line, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OP_ASGN2:{</div><div class='add'>+	ID atype = node-&gt;nd_next-&gt;nd_mid;</div><div class='add'>+	ID vid = node-&gt;nd_next-&gt;nd_vid, aid = rb_id_attrset(vid);</div><div class='add'>+	VALUE asgnflag;</div><div class='add'>+	LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+	LABEL *lcfin = NEW_LABEL(line);</div><div class='add'>+	LABEL *lskip = 0;</div><div class='add'>+	/*</div><div class='add'>+	  class C; attr_accessor :c; end</div><div class='add'>+	  r = C.new</div><div class='add'>+	  r.a &amp;&amp;= v # asgn2</div><div class='add'>+</div><div class='add'>+	  eval r    # r</div><div class='add'>+	  dup       # r r</div><div class='add'>+	  eval r.a  # r o</div><div class='add'>+</div><div class='add'>+	  # or</div><div class='add'>+	  dup       # r o o</div><div class='add'>+	  if lcfin  # r o</div><div class='add'>+	  pop       # r</div><div class='add'>+	  eval v    # r v</div><div class='add'>+	  swap      # v r</div><div class='add'>+	  topn 1    # v r v</div><div class='add'>+	  send a=   # v ?</div><div class='add'>+	  jump lfin # v ?</div><div class='add'>+</div><div class='add'>+	  lcfin:      # r o</div><div class='add'>+	  swap      # o r</div><div class='add'>+</div><div class='add'>+	  lfin:       # o ?</div><div class='add'>+	  pop       # o</div><div class='add'>+</div><div class='add'>+	  # and</div><div class='add'>+	  dup       # r o o</div><div class='add'>+	  unless lcfin</div><div class='add'>+	  pop       # r</div><div class='add'>+	  eval v    # r v</div><div class='add'>+	  swap      # v r</div><div class='add'>+	  topn 1    # v r v</div><div class='add'>+	  send a=   # v ?</div><div class='add'>+	  jump lfin # v ?</div><div class='add'>+</div><div class='add'>+	  # others</div><div class='add'>+	  eval v    # r o v</div><div class='add'>+	  send ??   # r w</div><div class='add'>+	  send a=   # w</div><div class='add'>+</div><div class='add'>+	*/</div><div class='add'>+</div><div class='add'>+	asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN2#recv", node);</div><div class='add'>+	if (node-&gt;nd_next-&gt;nd_aid) {</div><div class='add'>+	    lskip = NEW_LABEL(line);</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	    ADD_INSNL(ret, line, branchnil, lskip);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, line, dup);</div><div class='add'>+	ADD_SEND(ret, line, vid, INT2FIX(0));</div><div class='add'>+</div><div class='add'>+	if (atype == 0 || atype == 1) {	/* 0: OR or 1: AND */</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	    if (atype == 0) {</div><div class='add'>+		ADD_INSNL(ret, line, branchif, lcfin);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSNL(ret, line, branchunless, lcfin);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='add'>+	    ADD_INSN(ret, line, swap);</div><div class='add'>+	    ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='add'>+	    ADD_SEND_WITH_FLAG(ret, line, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+	    ADD_INSNL(ret, line, jump, lfin);</div><div class='add'>+</div><div class='add'>+	    ADD_LABEL(ret, lcfin);</div><div class='add'>+	    ADD_INSN(ret, line, swap);</div><div class='add'>+</div><div class='add'>+	    ADD_LABEL(ret, lfin);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    if (lskip) {</div><div class='add'>+		ADD_LABEL(ret, lskip);</div><div class='add'>+	    }</div><div class='add'>+	    if (popped) {</div><div class='add'>+		/* we can apply more optimize */</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='add'>+	    ADD_SEND(ret, line, atype, INT2FIX(1));</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN(ret, line, swap);</div><div class='add'>+		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_SEND_WITH_FLAG(ret, line, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+	    if (lskip &amp;&amp; popped) {</div><div class='add'>+		ADD_LABEL(ret, lskip);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    if (lskip &amp;&amp; !popped) {</div><div class='add'>+		ADD_LABEL(ret, lskip);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OP_CDECL: {</div><div class='add'>+	LABEL *lfin = 0;</div><div class='add'>+	LABEL *lassign = 0;</div><div class='add'>+	ID mid;</div><div class='add'>+</div><div class='add'>+	switch (nd_type(node-&gt;nd_head)) {</div><div class='add'>+	  case NODE_COLON3:</div><div class='add'>+	    ADD_INSN1(ret, line, putobject, rb_cObject);</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_COLON2:</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_CDECL/colon2#nd_head", node-&gt;nd_head-&gt;nd_head));</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "%s: invalid node in NODE_OP_CDECL",</div><div class='add'>+			  ruby_node_name(nd_type(node-&gt;nd_head)));</div><div class='add'>+	    goto ng;</div><div class='add'>+	}</div><div class='add'>+	mid = node-&gt;nd_head-&gt;nd_mid;</div><div class='add'>+	/* cref */</div><div class='add'>+	if (node-&gt;nd_aid == 0) {</div><div class='add'>+	    lassign = NEW_LABEL(line);</div><div class='add'>+	    ADD_INSN(ret, line, dup); /* cref cref */</div><div class='add'>+	    ADD_INSN3(ret, line, defined, INT2FIX(DEFINED_CONST),</div><div class='add'>+		      ID2SYM(mid), Qfalse); /* cref bool */</div><div class='add'>+	    ADD_INSNL(ret, line, branchunless, lassign); /* cref */</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, line, dup); /* cref cref */</div><div class='add'>+	ADD_INSN1(ret, line, getconstant, ID2SYM(mid)); /* cref obj */</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_aid == 0 || node-&gt;nd_aid == 1) {</div><div class='add'>+	    lfin = NEW_LABEL(line);</div><div class='add'>+	    if (!popped) ADD_INSN(ret, line, dup); /* cref [obj] obj */</div><div class='add'>+	    if (node-&gt;nd_aid == 0)</div><div class='add'>+		ADD_INSNL(ret, line, branchif, lfin);</div><div class='add'>+	    else</div><div class='add'>+		ADD_INSNL(ret, line, branchunless, lfin);</div><div class='add'>+	    /* cref [obj] */</div><div class='add'>+	    if (!popped) ADD_INSN(ret, line, pop); /* cref */</div><div class='add'>+	    if (lassign) ADD_LABEL(ret, lassign);</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='add'>+	    /* cref value */</div><div class='add'>+	    if (popped)</div><div class='add'>+		ADD_INSN1(ret, line, topn, INT2FIX(1)); /* cref value cref */</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(ret, line, dupn, INT2FIX(2)); /* cref value cref value */</div><div class='add'>+		ADD_INSN(ret, line, swap); /* cref value value cref */</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN1(ret, line, setconstant, ID2SYM(mid)); /* cref [value] */</div><div class='add'>+	    ADD_LABEL(ret, lfin);			    /* cref [value] */</div><div class='add'>+	    if (!popped) ADD_INSN(ret, line, swap); /* [value] cref */</div><div class='add'>+	    ADD_INSN(ret, line, pop); /* [value] */</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='add'>+	    /* cref obj value */</div><div class='add'>+	    ADD_CALL(ret, line, node-&gt;nd_aid, INT2FIX(1));</div><div class='add'>+	    /* cref value */</div><div class='add'>+	    ADD_INSN(ret, line, swap); /* value cref */</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN1(ret, line, topn, INT2FIX(1)); /* value cref value */</div><div class='add'>+		ADD_INSN(ret, line, swap); /* value value cref */</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN1(ret, line, setconstant, ID2SYM(mid));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OP_ASGN_AND:</div><div class='add'>+      case NODE_OP_ASGN_OR:{</div><div class='add'>+	LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+	LABEL *lassign;</div><div class='add'>+</div><div class='add'>+	if (nd_type(node) == NODE_OP_ASGN_OR) {</div><div class='add'>+	    LABEL *lfinish[2];</div><div class='add'>+	    lfinish[0] = lfin;</div><div class='add'>+	    lfinish[1] = 0;</div><div class='add'>+	    defined_expr(iseq, ret, node-&gt;nd_head, lfinish, Qfalse);</div><div class='add'>+	    lassign = lfinish[1];</div><div class='add'>+	    if (!lassign) {</div><div class='add'>+		lassign = NEW_LABEL(line);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSNL(ret, line, branchunless, lassign);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    lassign = NEW_LABEL(line);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	CHECK(COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_head", node-&gt;nd_head));</div><div class='add'>+	ADD_INSN(ret, line, dup);</div><div class='add'>+</div><div class='add'>+	if (nd_type(node) == NODE_OP_ASGN_AND) {</div><div class='add'>+	    ADD_INSNL(ret, line, branchunless, lfin);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSNL(ret, line, branchif, lfin);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+	ADD_LABEL(ret, lassign);</div><div class='add'>+	CHECK(COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_value", node-&gt;nd_value));</div><div class='add'>+	ADD_LABEL(ret, lfin);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    /* we can apply more optimize */</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CALL:</div><div class='add'>+      case NODE_OPCALL:</div><div class='add'>+	/* optimization shortcut</div><div class='add'>+	 *   "literal".freeze -&gt; opt_str_freeze("literal")</div><div class='add'>+	 */</div><div class='add'>+	if (node-&gt;nd_recv &amp;&amp; nd_type(node-&gt;nd_recv) == NODE_STR &amp;&amp;</div><div class='add'>+	    (node-&gt;nd_mid == idFreeze || node-&gt;nd_mid == idUMinus) &amp;&amp;</div><div class='add'>+	    node-&gt;nd_args == NULL &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='add'>+	    VALUE str = freeze_literal(iseq, node-&gt;nd_recv-&gt;nd_lit);</div><div class='add'>+	    if (node-&gt;nd_mid == idUMinus) {</div><div class='add'>+		ADD_INSN1(ret, line, opt_str_uminus, str);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(ret, line, opt_str_freeze, str);</div><div class='add'>+	    }</div><div class='add'>+	    if (popped) {</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	/* optimization shortcut</div><div class='add'>+	 *   obj["literal"] -&gt; opt_aref_with(obj, "literal")</div><div class='add'>+	 */</div><div class='add'>+	if (node-&gt;nd_mid == idAREF &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='add'>+	    nd_type(node-&gt;nd_args) == NODE_ARRAY &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 1 &amp;&amp;</div><div class='add'>+	    nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_STR &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+            !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='add'>+	    VALUE str = freeze_literal(iseq, node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+	    CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='add'>+	    ADD_INSN3(ret, line, opt_aref_with,</div><div class='add'>+		      new_callinfo(iseq, idAREF, 1, 0, NULL, FALSE),</div><div class='add'>+		      NULL/* CALL_CACHE */, str);</div><div class='add'>+	    if (popped) {</div><div class='add'>+		ADD_INSN(ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+      case NODE_QCALL:</div><div class='add'>+      case NODE_FCALL:</div><div class='add'>+      case NODE_VCALL:{		/* VCALL: variable or call */</div><div class='add'>+	/*</div><div class='add'>+	  call:  obj.method(...)</div><div class='add'>+	  fcall: func(...)</div><div class='add'>+	  vcall: func</div><div class='add'>+	*/</div><div class='add'>+	DECL_ANCHOR(recv);</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	LABEL *else_label = 0;</div><div class='add'>+	LABEL *end_label = 0;</div><div class='add'>+	VALUE branches = 0;</div><div class='add'>+	ID mid = node-&gt;nd_mid;</div><div class='add'>+	VALUE argc;</div><div class='add'>+	unsigned int flag = 0;</div><div class='add'>+	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='add'>+	const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(recv);</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+#if SUPPORT_JOKE</div><div class='add'>+	if (nd_type(node) == NODE_VCALL) {</div><div class='add'>+	    ID id_bitblt;</div><div class='add'>+	    ID id_answer;</div><div class='add'>+</div><div class='add'>+	    CONST_ID(id_bitblt, "bitblt");</div><div class='add'>+	    CONST_ID(id_answer, "the_answer_to_life_the_universe_and_everything");</div><div class='add'>+</div><div class='add'>+	    if (mid == id_bitblt) {</div><div class='add'>+		ADD_INSN(ret, line, bitblt);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (mid == id_answer) {</div><div class='add'>+		ADD_INSN(ret, line, answer);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	/* only joke */</div><div class='add'>+	{</div><div class='add'>+	    ID goto_id;</div><div class='add'>+	    ID label_id;</div><div class='add'>+</div><div class='add'>+	    CONST_ID(goto_id, "__goto__");</div><div class='add'>+	    CONST_ID(label_id, "__label__");</div><div class='add'>+</div><div class='add'>+	    if (nd_type(node) == NODE_FCALL &amp;&amp;</div><div class='add'>+		(mid == goto_id || mid == label_id)) {</div><div class='add'>+		LABEL *label;</div><div class='add'>+		st_data_t data;</div><div class='add'>+		st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='add'>+		VALUE label_name;</div><div class='add'>+</div><div class='add'>+		if (!labels_table) {</div><div class='add'>+		    labels_table = st_init_numtable();</div><div class='add'>+		    ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = labels_table;</div><div class='add'>+		}</div><div class='add'>+		if (nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_LIT &amp;&amp;</div><div class='add'>+		    SYMBOL_P(node-&gt;nd_args-&gt;nd_head-&gt;nd_lit)) {</div><div class='add'>+</div><div class='add'>+		    label_name = node-&gt;nd_args-&gt;nd_head-&gt;nd_lit;</div><div class='add'>+		    if (!st_lookup(labels_table, (st_data_t)label_name, &amp;data)) {</div><div class='add'>+			label = NEW_LABEL(line);</div><div class='add'>+			label-&gt;position = line;</div><div class='add'>+			st_insert(labels_table, (st_data_t)label_name, (st_data_t)label);</div><div class='add'>+		    }</div><div class='add'>+		    else {</div><div class='add'>+			label = (LABEL *)data;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    COMPILE_ERROR(ERROR_ARGS "invalid goto/label format");</div><div class='add'>+		    goto ng;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+		if (mid == goto_id) {</div><div class='add'>+		    ADD_INSNL(ret, line, jump, label);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_LABEL(ret, label);</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+	/* receiver */</div><div class='add'>+	if (type == NODE_CALL || type == NODE_OPCALL || type == NODE_QCALL) {</div><div class='add'>+	    CHECK(COMPILE(recv, "recv", node-&gt;nd_recv));</div><div class='add'>+	    if (type == NODE_QCALL) {</div><div class='add'>+		else_label = NEW_LABEL(line);</div><div class='add'>+		end_label = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+		DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "&amp;.");</div><div class='add'>+		ADD_INSN(recv, line, dup);</div><div class='add'>+		ADD_INSNL(recv, line, branchnil, else_label);</div><div class='add'>+		ADD_TRACE_BRANCH_COVERAGE(recv, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "then", branches);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (type == NODE_FCALL || type == NODE_VCALL) {</div><div class='add'>+	    ADD_CALL_RECEIVER(recv, line);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* args */</div><div class='add'>+	if (type != NODE_VCALL) {</div><div class='add'>+	    argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='add'>+	    CHECK(!NIL_P(argc));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    argc = INT2FIX(0);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_SEQ(ret, recv);</div><div class='add'>+	ADD_SEQ(ret, args);</div><div class='add'>+</div><div class='add'>+	debugp_param("call args argc", argc);</div><div class='add'>+	debugp_param("call method", ID2SYM(mid));</div><div class='add'>+</div><div class='add'>+	switch ((int)type) {</div><div class='add'>+	  case NODE_VCALL:</div><div class='add'>+	    flag |= VM_CALL_VCALL;</div><div class='add'>+	    /* VCALL is funcall, so fall through */</div><div class='add'>+	  case NODE_FCALL:</div><div class='add'>+	    flag |= VM_CALL_FCALL;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_SEND_R(ret, line, mid, argc, parent_block, INT2FIX(flag), keywords);</div><div class='add'>+</div><div class='add'>+	if (else_label &amp;&amp; end_label) {</div><div class='add'>+	    ADD_INSNL(ret, line, jump, end_label);</div><div class='add'>+	    ADD_LABEL(ret, else_label);</div><div class='add'>+	    ADD_TRACE_BRANCH_COVERAGE(ret, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);</div><div class='add'>+	    ADD_LABEL(ret, end_label);</div><div class='add'>+	}</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SUPER:</div><div class='add'>+      case NODE_ZSUPER:{</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	int argc;</div><div class='add'>+	unsigned int flag = 0;</div><div class='add'>+	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='add'>+	const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='add'>+	if (type == NODE_SUPER) {</div><div class='add'>+	    VALUE vargc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='add'>+	    CHECK(!NIL_P(vargc));</div><div class='add'>+	    argc = FIX2INT(vargc);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* NODE_ZSUPER */</div><div class='add'>+	    int i;</div><div class='add'>+	    const rb_iseq_t *liseq = iseq-&gt;body-&gt;local_iseq;</div><div class='add'>+	    int lvar_level = get_lvar_level(iseq);</div><div class='add'>+</div><div class='add'>+	    argc = liseq-&gt;body-&gt;param.lead_num;</div><div class='add'>+</div><div class='add'>+	    /* normal arguments */</div><div class='add'>+	    for (i = 0; i &lt; liseq-&gt;body-&gt;param.lead_num; i++) {</div><div class='add'>+		int idx = liseq-&gt;body-&gt;local_table_size - i;</div><div class='add'>+		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (liseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='add'>+		/* optional arguments */</div><div class='add'>+		int j;</div><div class='add'>+		for (j = 0; j &lt; liseq-&gt;body-&gt;param.opt_num; j++) {</div><div class='add'>+		    int idx = liseq-&gt;body-&gt;local_table_size - (i + j);</div><div class='add'>+		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		}</div><div class='add'>+		i += j;</div><div class='add'>+		argc = i;</div><div class='add'>+	    }</div><div class='add'>+	    if (liseq-&gt;body-&gt;param.flags.has_rest) {</div><div class='add'>+		/* rest argument */</div><div class='add'>+		int idx = liseq-&gt;body-&gt;local_table_size - liseq-&gt;body-&gt;param.rest_start;</div><div class='add'>+</div><div class='add'>+		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		ADD_INSN1(args, line, splatarray, Qfalse);</div><div class='add'>+</div><div class='add'>+		argc = liseq-&gt;body-&gt;param.rest_start + 1;</div><div class='add'>+		flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+	    }</div><div class='add'>+	    if (liseq-&gt;body-&gt;param.flags.has_post) {</div><div class='add'>+		/* post arguments */</div><div class='add'>+		int post_len = liseq-&gt;body-&gt;param.post_num;</div><div class='add'>+		int post_start = liseq-&gt;body-&gt;param.post_start;</div><div class='add'>+</div><div class='add'>+		if (liseq-&gt;body-&gt;param.flags.has_rest) {</div><div class='add'>+		    int j;</div><div class='add'>+		    for (j=0; j&lt;post_len; j++) {</div><div class='add'>+			int idx = liseq-&gt;body-&gt;local_table_size - (post_start + j);</div><div class='add'>+			ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		    }</div><div class='add'>+		    ADD_INSN1(args, line, newarray, INT2FIX(j));</div><div class='add'>+		    ADD_INSN (args, line, concatarray);</div><div class='add'>+		    /* argc is settled at above */</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    int j;</div><div class='add'>+		    for (j=0; j&lt;post_len; j++) {</div><div class='add'>+			int idx = liseq-&gt;body-&gt;local_table_size - (post_start + j);</div><div class='add'>+			ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		    }</div><div class='add'>+		    argc = post_len + post_start;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (liseq-&gt;body-&gt;param.flags.has_kw) { /* TODO: support keywords */</div><div class='add'>+		int local_size = liseq-&gt;body-&gt;local_table_size;</div><div class='add'>+		argc++;</div><div class='add'>+</div><div class='add'>+		ADD_INSN1(args, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+</div><div class='add'>+		if (liseq-&gt;body-&gt;param.flags.has_kwrest) {</div><div class='add'>+		    int idx = liseq-&gt;body-&gt;local_table_size - liseq-&gt;body-&gt;param.keyword-&gt;rest_start;</div><div class='add'>+		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		    ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN1(args, line, newhash, INT2FIX(0));</div><div class='add'>+		}</div><div class='add'>+		for (i = 0; i &lt; liseq-&gt;body-&gt;param.keyword-&gt;num; ++i) {</div><div class='add'>+		    ID id = liseq-&gt;body-&gt;param.keyword-&gt;table[i];</div><div class='add'>+		    int idx = local_size - get_local_var_idx(liseq, id);</div><div class='add'>+		    ADD_INSN1(args, line, putobject, ID2SYM(id));</div><div class='add'>+		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+		}</div><div class='add'>+		ADD_SEND(args, line, id_core_hash_merge_ptr, INT2FIX(i * 2 + 1));</div><div class='add'>+		if (liseq-&gt;body-&gt;param.flags.has_rest) {</div><div class='add'>+		    ADD_INSN1(args, line, newarray, INT2FIX(1));</div><div class='add'>+		    ADD_INSN (args, line, concatarray);</div><div class='add'>+		    --argc;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else if (liseq-&gt;body-&gt;param.flags.has_kwrest) {</div><div class='add'>+		int idx = liseq-&gt;body-&gt;local_table_size - liseq-&gt;body-&gt;param.keyword-&gt;rest_start;</div><div class='add'>+		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='add'>+</div><div class='add'>+		ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));</div><div class='add'>+		if (liseq-&gt;body-&gt;param.flags.has_rest) {</div><div class='add'>+		    ADD_INSN1(args, line, newarray, INT2FIX(1));</div><div class='add'>+		    ADD_INSN (args, line, concatarray);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    argc++;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* dummy receiver */</div><div class='add'>+	ADD_INSN1(ret, line, putobject, type == NODE_ZSUPER ? Qfalse : Qtrue);</div><div class='add'>+	ADD_SEQ(ret, args);</div><div class='add'>+	ADD_INSN3(ret, line, invokesuper,</div><div class='add'>+		  new_callinfo(iseq, 0, argc, flag | VM_CALL_SUPER | VM_CALL_FCALL, keywords, parent_block != NULL),</div><div class='add'>+		  Qnil, /* CALL_CACHE */</div><div class='add'>+		  parent_block);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ARRAY:{</div><div class='add'>+	CHECK(compile_array(iseq, ret, node, COMPILE_ARRAY_TYPE_ARRAY, NULL, NULL, popped) &gt;= 0);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ZARRAY:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN1(ret, line, newarray, INT2FIX(0));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_VALUES:{</div><div class='add'>+	const NODE *n = node;</div><div class='add'>+	if (popped) {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "NODE_VALUES: must not be popped");</div><div class='add'>+	}</div><div class='add'>+	while (n) {</div><div class='add'>+	    CHECK(COMPILE(ret, "values item", n-&gt;nd_head));</div><div class='add'>+	    n = n-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, line, newarray, INT2FIX(node-&gt;nd_alen));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_HASH:{</div><div class='add'>+	DECL_ANCHOR(list);</div><div class='add'>+	enum node_type type = node-&gt;nd_head ? nd_type(node-&gt;nd_head) : NODE_ZARRAY;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(list);</div><div class='add'>+	switch (type) {</div><div class='add'>+	  case NODE_ARRAY:</div><div class='add'>+	    CHECK(compile_array(iseq, list, node-&gt;nd_head, COMPILE_ARRAY_TYPE_HASH, NULL, NULL, popped) &gt;= 0);</div><div class='add'>+	    ADD_SEQ(ret, list);</div><div class='add'>+	    break;</div><div class='add'>+</div><div class='add'>+	  case NODE_ZARRAY:</div><div class='add'>+	    if (popped) break;</div><div class='add'>+	    ADD_INSN1(ret, line, newhash, INT2FIX(0));</div><div class='add'>+	    break;</div><div class='add'>+</div><div class='add'>+	  default:</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS_AT(node-&gt;nd_head) "can't make hash with this node: %s",</div><div class='add'>+			  ruby_node_name(type));</div><div class='add'>+	    goto ng;</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RETURN:</div><div class='add'>+	CHECK(compile_return(iseq, ret, node, popped));</div><div class='add'>+	break;</div><div class='add'>+      case NODE_YIELD:{</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	VALUE argc;</div><div class='add'>+	unsigned int flag = 0;</div><div class='add'>+	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+	if (iseq-&gt;body-&gt;type == ISEQ_TYPE_TOP ||</div><div class='add'>+	    iseq-&gt;body-&gt;type == ISEQ_TYPE_MAIN) {</div><div class='add'>+	    COMPILE_ERROR(ERROR_ARGS "Invalid yield");</div><div class='add'>+	    goto ng;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_head) {</div><div class='add'>+	    argc = setup_args(iseq, args, node-&gt;nd_head, &amp;flag, &amp;keywords);</div><div class='add'>+	    CHECK(!NIL_P(argc));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    argc = INT2FIX(0);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_SEQ(ret, args);</div><div class='add'>+	ADD_INSN1(ret, line, invokeblock, new_callinfo(iseq, 0, FIX2INT(argc), flag, keywords, FALSE));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_LVAR:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ID id = node-&gt;nd_vid;</div><div class='add'>+	    int idx = iseq-&gt;body-&gt;local_iseq-&gt;body-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='add'>+</div><div class='add'>+	    debugs("id: %s idx: %d\n", rb_id2name(id), idx);</div><div class='add'>+	    ADD_GETLOCAL(ret, line, idx, get_lvar_level(iseq));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DVAR:{</div><div class='add'>+	int lv, idx, ls;</div><div class='add'>+	debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    idx = get_dyna_var_idx(iseq, node-&gt;nd_vid, &amp;lv, &amp;ls);</div><div class='add'>+	    if (idx &lt; 0) {</div><div class='add'>+		COMPILE_ERROR(ERROR_ARGS "unknown dvar (%"PRIsVALUE")",</div><div class='add'>+			      rb_id2str(node-&gt;nd_vid));</div><div class='add'>+		goto ng;</div><div class='add'>+	    }</div><div class='add'>+	    ADD_GETLOCAL(ret, line, ls - idx, lv);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_GVAR:{</div><div class='add'>+	ADD_INSN1(ret, line, getglobal,</div><div class='add'>+		  ((VALUE)node-&gt;nd_entry | 1));</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_IVAR:{</div><div class='add'>+	debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN2(ret, line, getinstancevariable,</div><div class='add'>+		      ID2SYM(node-&gt;nd_vid),</div><div class='add'>+		      get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CONST:{</div><div class='add'>+	debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+</div><div class='add'>+	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    LABEL *lend = NEW_LABEL(line);</div><div class='add'>+	    int ic_index = iseq-&gt;body-&gt;is_size++;</div><div class='add'>+</div><div class='add'>+	    ADD_INSN2(ret, line, getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	    ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	    ADD_INSN1(ret, line, setinlinecache, INT2FIX(ic_index));</div><div class='add'>+	    ADD_LABEL(ret, lend);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	    ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CVAR:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN1(ret, line, getclassvariable,</div><div class='add'>+		      ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_NTH_REF:{</div><div class='add'>+        if (!popped) {</div><div class='add'>+	    if (!node-&gt;nd_nth) {</div><div class='add'>+		ADD_INSN(ret, line, putnil);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~'  */,</div><div class='add'>+		      INT2FIX(node-&gt;nd_nth &lt;&lt; 1));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_BACK_REF:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */,</div><div class='add'>+		      INT2FIX(0x01 | (node-&gt;nd_nth &lt;&lt; 1)));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_MATCH:</div><div class='add'>+      case NODE_MATCH2:</div><div class='add'>+      case NODE_MATCH3:{</div><div class='add'>+	DECL_ANCHOR(recv);</div><div class='add'>+	DECL_ANCHOR(val);</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(recv);</div><div class='add'>+	INIT_ANCHOR(val);</div><div class='add'>+	switch (nd_type(node)) {</div><div class='add'>+	  case NODE_MATCH:</div><div class='add'>+	    ADD_INSN1(recv, line, putobject, node-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN2(val, line, getspecial, INT2FIX(0),</div><div class='add'>+		      INT2FIX(0));</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_MATCH2:</div><div class='add'>+	    CHECK(COMPILE(recv, "receiver", node-&gt;nd_recv));</div><div class='add'>+	    CHECK(COMPILE(val, "value", node-&gt;nd_value));</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_MATCH3:</div><div class='add'>+	    CHECK(COMPILE(recv, "receiver", node-&gt;nd_value));</div><div class='add'>+	    CHECK(COMPILE(val, "value", node-&gt;nd_recv));</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='add'>+	    /* TODO: detect by node */</div><div class='add'>+	    if (recv-&gt;last == recv-&gt;anchor.next &amp;&amp;</div><div class='add'>+		INSN_OF(recv-&gt;last) == BIN(putobject) &amp;&amp;</div><div class='add'>+		nd_type(node) == NODE_MATCH2) {</div><div class='add'>+		ADD_SEQ(ret, val);</div><div class='add'>+		ADD_INSN1(ret, line, opt_regexpmatch1,</div><div class='add'>+			  OPERAND_AT(recv-&gt;last, 0));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_SEQ(ret, recv);</div><div class='add'>+		ADD_SEQ(ret, val);</div><div class='add'>+		ADD_INSN2(ret, line, opt_regexpmatch2, new_callinfo(iseq, idEqTilde, 1, 0, NULL, FALSE), Qnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_SEQ(ret, recv);</div><div class='add'>+	    ADD_SEQ(ret, val);</div><div class='add'>+	    ADD_SEND(ret, line, idEqTilde, INT2FIX(1));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_args) {</div><div class='add'>+	    compile_named_capture_assign(iseq, ret, node-&gt;nd_args);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_LIT:{</div><div class='add'>+	debugp_param("lit", node-&gt;nd_lit);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN1(ret, line, putobject, node-&gt;nd_lit);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_STR:{</div><div class='add'>+	debugp_param("nd_lit", node-&gt;nd_lit);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    VALUE lit = node-&gt;nd_lit;</div><div class='add'>+	    if (!ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='add'>+		lit = freeze_literal(iseq, lit);</div><div class='add'>+		ADD_INSN1(ret, line, putstring, lit);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='add'>+		    VALUE debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));</div><div class='add'>+		    lit = rb_str_dup(lit);</div><div class='add'>+		    rb_ivar_set(lit, id_debug_created_info, rb_obj_freeze(debug_info));</div><div class='add'>+		    lit = rb_str_freeze(lit);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    lit = rb_fstring(lit);</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN1(ret, line, putobject, lit);</div><div class='add'>+		iseq_add_mark_object_compile_time(iseq, lit);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DSTR:{</div><div class='add'>+	compile_dstr(iseq, ret, node);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='add'>+		VALUE debug_info = Qnil;</div><div class='add'>+		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='add'>+		    debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));</div><div class='add'>+		    iseq_add_mark_object_compile_time(iseq, rb_obj_freeze(debug_info));</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN1(ret, line, freezestring, debug_info);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_XSTR:{</div><div class='add'>+	ADD_CALL_RECEIVER(ret, line);</div><div class='add'>+	ADD_INSN1(ret, line, putobject, freeze_literal(iseq, node-&gt;nd_lit));</div><div class='add'>+	ADD_CALL(ret, line, idBackquote, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DXSTR:{</div><div class='add'>+	ADD_CALL_RECEIVER(ret, line);</div><div class='add'>+	compile_dstr(iseq, ret, node);</div><div class='add'>+	ADD_CALL(ret, line, idBackquote, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_EVSTR:{</div><div class='add'>+	CHECK(COMPILE(ret, "nd_body", node-&gt;nd_body));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	else if (!all_string_result_p(node-&gt;nd_body)) {</div><div class='add'>+	    const unsigned int flag = VM_CALL_FCALL;</div><div class='add'>+	    LABEL *isstr = NEW_LABEL(line);</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	    ADD_INSN2(ret, line, branchiftype, INT2FIX(T_STRING), isstr);</div><div class='add'>+	    LABEL_REF(isstr);</div><div class='add'>+	    ADD_INSN(ret, line, dup);</div><div class='add'>+	    ADD_SEND_R(ret, line, idTo_s, INT2FIX(0), NULL, INT2FIX(flag), NULL);</div><div class='add'>+	    ADD_INSN(ret, line, tostring);</div><div class='add'>+	    ADD_LABEL(ret, isstr);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DREGX:{</div><div class='add'>+	compile_dregx(iseq, ret, node);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SCOPE:{</div><div class='add'>+	int ic_index = iseq-&gt;body-&gt;is_size++;</div><div class='add'>+	const rb_iseq_t *block_iseq = NEW_CHILD_ISEQ(node, make_name_for_block(iseq),</div><div class='add'>+						     ISEQ_TYPE_ONCE_GUARD, line);</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, line, once, block_iseq, INT2FIX(ic_index));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ARGSCAT:{</div><div class='add'>+	if (popped) {</div><div class='add'>+	    CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='add'>+	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='add'>+	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='add'>+	    CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='add'>+	    ADD_INSN(ret, line, concatarray);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ARGSPUSH:{</div><div class='add'>+	if (popped) {</div><div class='add'>+	    CHECK(COMPILE(ret, "arsgpush head", node-&gt;nd_head));</div><div class='add'>+	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    CHECK(COMPILE_(ret, "argspush body", node-&gt;nd_body, popped));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE(ret, "arsgpush head", node-&gt;nd_head));</div><div class='add'>+	    CHECK(COMPILE_(ret, "argspush body", node-&gt;nd_body, popped));</div><div class='add'>+	    ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='add'>+	    ADD_INSN(ret, line, concatarray);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SPLAT:{</div><div class='add'>+	CHECK(COMPILE(ret, "splat", node-&gt;nd_head));</div><div class='add'>+	ADD_INSN1(ret, line, splatarray, Qtrue);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DEFN:{</div><div class='add'>+	const rb_iseq_t *method_iseq = NEW_ISEQ(node-&gt;nd_defn,</div><div class='add'>+						rb_id2str(node-&gt;nd_mid),</div><div class='add'>+						ISEQ_TYPE_METHOD, line);</div><div class='add'>+</div><div class='add'>+	debugp_param("defn/iseq", rb_iseqw_new(method_iseq));</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	ADD_INSN1(ret, line, putiseq, method_iseq);</div><div class='add'>+	ADD_SEND (ret, line, id_core_define_method, INT2FIX(2));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DEFS:{</div><div class='add'>+	const rb_iseq_t * singleton_method = NEW_ISEQ(node-&gt;nd_defn,</div><div class='add'>+						      rb_id2str(node-&gt;nd_mid),</div><div class='add'>+						      ISEQ_TYPE_METHOD, line);</div><div class='add'>+</div><div class='add'>+	debugp_param("defs/iseq", rb_iseqw_new(singleton_method));</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	CHECK(COMPILE(ret, "defs: recv", node-&gt;nd_recv));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	ADD_INSN1(ret, line, putiseq, singleton_method);</div><div class='add'>+	ADD_SEND (ret, line, id_core_define_singleton_method, INT2FIX(3));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ALIAS:{</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+	CHECK(COMPILE(ret, "alias arg1", node-&gt;nd_1st));</div><div class='add'>+	CHECK(COMPILE(ret, "alias arg2", node-&gt;nd_2nd));</div><div class='add'>+	ADD_SEND(ret, line, id_core_set_method_alias, INT2FIX(3));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_VALIAS:{</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_alias));</div><div class='add'>+	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_orig));</div><div class='add'>+	ADD_SEND(ret, line, id_core_set_variable_alias, INT2FIX(2));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_UNDEF:{</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+	CHECK(COMPILE(ret, "undef arg", node-&gt;nd_undef));</div><div class='add'>+	ADD_SEND(ret, line, id_core_undef_method, INT2FIX(2));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CLASS:{</div><div class='add'>+	const rb_iseq_t *class_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body,</div><div class='add'>+						     rb_sprintf("&lt;class:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='add'>+						     ISEQ_TYPE_CLASS, line);</div><div class='add'>+	const int flags = VM_DEFINECLASS_TYPE_CLASS |</div><div class='add'>+	    (node-&gt;nd_super ? VM_DEFINECLASS_FLAG_HAS_SUPERCLASS : 0) |</div><div class='add'>+	    compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+</div><div class='add'>+	CHECK(COMPILE(ret, "super", node-&gt;nd_super));</div><div class='add'>+	ADD_INSN3(ret, line, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), class_iseq, INT2FIX(flags));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_MODULE:{</div><div class='add'>+        const rb_iseq_t *module_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body,</div><div class='add'>+						      rb_sprintf("&lt;module:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='add'>+						      ISEQ_TYPE_CLASS, line);</div><div class='add'>+	const int flags = VM_DEFINECLASS_TYPE_MODULE |</div><div class='add'>+	    compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+</div><div class='add'>+	ADD_INSN (ret, line, putnil); /* dummy */</div><div class='add'>+	ADD_INSN3(ret, line, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), module_iseq, INT2FIX(flags));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SCLASS:{</div><div class='add'>+	ID singletonclass;</div><div class='add'>+	const rb_iseq_t *singleton_class = NEW_ISEQ(node-&gt;nd_body, rb_fstring_cstr("singleton class"),</div><div class='add'>+						    ISEQ_TYPE_CLASS, line);</div><div class='add'>+</div><div class='add'>+	CHECK(COMPILE(ret, "sclass#recv", node-&gt;nd_recv));</div><div class='add'>+	ADD_INSN (ret, line, putnil);</div><div class='add'>+	CONST_ID(singletonclass, "singletonclass");</div><div class='add'>+	ADD_INSN3(ret, line, defineclass,</div><div class='add'>+		  ID2SYM(singletonclass), singleton_class,</div><div class='add'>+		  INT2FIX(VM_DEFINECLASS_TYPE_SINGLETON_CLASS));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_COLON2:{</div><div class='add'>+	if (rb_is_const_id(node-&gt;nd_mid)) {</div><div class='add'>+	    /* constant */</div><div class='add'>+	    LABEL *lend = NEW_LABEL(line);</div><div class='add'>+	    int ic_index = iseq-&gt;body-&gt;is_size++;</div><div class='add'>+</div><div class='add'>+	    DECL_ANCHOR(pref);</div><div class='add'>+	    DECL_ANCHOR(body);</div><div class='add'>+</div><div class='add'>+	    INIT_ANCHOR(pref);</div><div class='add'>+	    INIT_ANCHOR(body);</div><div class='add'>+	    CHECK(compile_const_prefix(iseq, node, pref, body));</div><div class='add'>+	    if (LIST_INSN_SIZE_ZERO(pref)) {</div><div class='add'>+		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+		    ADD_INSN2(ret, line, getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN(ret, line, putnil);</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		ADD_SEQ(ret, body);</div><div class='add'>+</div><div class='add'>+		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+		    ADD_INSN1(ret, line, setinlinecache, INT2FIX(ic_index));</div><div class='add'>+		    ADD_LABEL(ret, lend);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_SEQ(ret, pref);</div><div class='add'>+		ADD_SEQ(ret, body);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* function call */</div><div class='add'>+	    ADD_CALL_RECEIVER(ret, line);</div><div class='add'>+	    CHECK(COMPILE(ret, "colon2#nd_head", node-&gt;nd_head));</div><div class='add'>+	    ADD_CALL(ret, line, node-&gt;nd_mid, INT2FIX(1));</div><div class='add'>+	}</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_COLON3:{</div><div class='add'>+	LABEL *lend = NEW_LABEL(line);</div><div class='add'>+	int ic_index = iseq-&gt;body-&gt;is_size++;</div><div class='add'>+</div><div class='add'>+	debugi("colon3#nd_mid", node-&gt;nd_mid);</div><div class='add'>+</div><div class='add'>+	/* add cache insn */</div><div class='add'>+	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    ADD_INSN2(ret, line, getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, line, putobject, rb_cObject);</div><div class='add'>+	ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+</div><div class='add'>+	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    ADD_INSN1(ret, line, setinlinecache, INT2FIX(ic_index));</div><div class='add'>+	    ADD_LABEL(ret, lend);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DOT2:</div><div class='add'>+      case NODE_DOT3:{</div><div class='add'>+	int excl = type == NODE_DOT3;</div><div class='add'>+	VALUE flag = INT2FIX(excl);</div><div class='add'>+	const NODE *b = node-&gt;nd_beg;</div><div class='add'>+	const NODE *e = node-&gt;nd_end;</div><div class='add'>+	if (number_literal_p(b) &amp;&amp; number_literal_p(e)) {</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		VALUE val = rb_range_new(b-&gt;nd_lit, e-&gt;nd_lit, excl);</div><div class='add'>+		iseq_add_mark_object_compile_time(iseq, val);</div><div class='add'>+		ADD_INSN1(ret, line, putobject, val);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    CHECK(COMPILE_(ret, "min", b, popped));</div><div class='add'>+	    CHECK(COMPILE_(ret, "max", e, popped));</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN1(ret, line, newrange, flag);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_FLIP2:</div><div class='add'>+      case NODE_FLIP3:{</div><div class='add'>+	LABEL *lend = NEW_LABEL(line);</div><div class='add'>+	LABEL *ltrue = NEW_LABEL(line);</div><div class='add'>+	LABEL *lfalse = NEW_LABEL(line);</div><div class='add'>+	CHECK(compile_flip_flop(iseq, ret, node, type == NODE_FLIP2,</div><div class='add'>+				ltrue, lfalse));</div><div class='add'>+	ADD_LABEL(ret, ltrue);</div><div class='add'>+	ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='add'>+	ADD_INSNL(ret, line, jump, lend);</div><div class='add'>+	ADD_LABEL(ret, lfalse);</div><div class='add'>+	ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='add'>+	ADD_LABEL(ret, lend);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SELF:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putself);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_NIL:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_TRUE:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_FALSE:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ERRINFO:{</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+		ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		const rb_iseq_t *ip = iseq;</div><div class='add'>+		int level = 0;</div><div class='add'>+		while (ip) {</div><div class='add'>+		    if (ip-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='add'>+		    level++;</div><div class='add'>+		}</div><div class='add'>+		if (ip) {</div><div class='add'>+		    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, level);</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN(ret, line, putnil);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DEFINED:</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    CHECK(compile_defined_expr(iseq, ret, node, Qtrue));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      case NODE_POSTEXE:{</div><div class='add'>+	/* compiled to:</div><div class='add'>+	 *   ONCE{ rb_mRubyVMFrozenCore::core#set_postexe{ ... } }</div><div class='add'>+	 */</div><div class='add'>+	int is_index = iseq-&gt;body-&gt;is_size++;</div><div class='add'>+	const rb_iseq_t *once_iseq = NEW_CHILD_ISEQ((const NODE *)IFUNC_NEW(build_postexe_iseq, node-&gt;nd_body, 0),</div><div class='add'>+						    make_name_for_block(iseq), ISEQ_TYPE_BLOCK, line);</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, line, once, once_iseq, INT2FIX(is_index));</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_KW_ARG:</div><div class='add'>+	{</div><div class='add'>+	    LABEL *end_label = NEW_LABEL(nd_line(node));</div><div class='add'>+	    const NODE *default_value = node-&gt;nd_body-&gt;nd_value;</div><div class='add'>+</div><div class='add'>+	    if (default_value == (const NODE *)-1) {</div><div class='add'>+		/* required argument. do nothing */</div><div class='add'>+		COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='add'>+		goto ng;</div><div class='add'>+	    }</div><div class='add'>+	    else if (nd_type(default_value) == NODE_LIT ||</div><div class='add'>+		     nd_type(default_value) == NODE_NIL ||</div><div class='add'>+		     nd_type(default_value) == NODE_TRUE ||</div><div class='add'>+		     nd_type(default_value) == NODE_FALSE) {</div><div class='add'>+		COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='add'>+		goto ng;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* if keywordcheck(_kw_bits, nth_keyword)</div><div class='add'>+		 *   kw = default_value</div><div class='add'>+		 * end</div><div class='add'>+		 */</div><div class='add'>+		int kw_bits_idx = iseq-&gt;body-&gt;local_table_size - iseq-&gt;body-&gt;param.keyword-&gt;bits_start;</div><div class='add'>+		int keyword_idx = iseq-&gt;body-&gt;param.keyword-&gt;num;</div><div class='add'>+</div><div class='add'>+		ADD_INSN2(ret, line, checkkeyword, INT2FIX(kw_bits_idx + VM_ENV_DATA_SIZE - 1), INT2FIX(keyword_idx));</div><div class='add'>+		ADD_INSNL(ret, line, branchif, end_label);</div><div class='add'>+		CHECK(COMPILE_POPPED(ret, "keyword default argument", node-&gt;nd_body));</div><div class='add'>+		ADD_LABEL(ret, end_label);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+      case NODE_DSYM:{</div><div class='add'>+	compile_dstr(iseq, ret, node);</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, intern);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ATTRASGN:{</div><div class='add'>+	DECL_ANCHOR(recv);</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	unsigned int flag = 0;</div><div class='add'>+	ID mid = node-&gt;nd_mid;</div><div class='add'>+	LABEL *lskip = 0;</div><div class='add'>+	VALUE argc;</div><div class='add'>+</div><div class='add'>+	/* optimization shortcut</div><div class='add'>+	 *   obj["literal"] = value -&gt; opt_aset_with(obj, "literal", value)</div><div class='add'>+	 */</div><div class='add'>+	if (mid == idASET &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='add'>+	    nd_type(node-&gt;nd_args) == NODE_ARRAY &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 2 &amp;&amp;</div><div class='add'>+	    nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_STR &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+            !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction)</div><div class='add'>+	{</div><div class='add'>+	    VALUE str = freeze_literal(iseq, node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+	    CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='add'>+	    CHECK(COMPILE(ret, "value", node-&gt;nd_args-&gt;nd_next-&gt;nd_head));</div><div class='add'>+	    if (!popped) {</div><div class='add'>+		ADD_INSN(ret, line, swap);</div><div class='add'>+		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN3(ret, line, opt_aset_with,</div><div class='add'>+		      new_callinfo(iseq, idASET, 2, 0, NULL, FALSE),</div><div class='add'>+		      NULL/* CALL_CACHE */, str);</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(recv);</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+	argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, NULL);</div><div class='add'>+	CHECK(!NIL_P(argc));</div><div class='add'>+</div><div class='add'>+	flag |= COMPILE_RECV(recv, "recv", node);</div><div class='add'>+</div><div class='add'>+	debugp_param("argc", argc);</div><div class='add'>+	debugp_param("nd_mid", ID2SYM(mid));</div><div class='add'>+</div><div class='add'>+	if (!rb_is_attrset_id(mid)) {</div><div class='add'>+	    /* safe nav attr */</div><div class='add'>+	    mid = rb_id_attrset(mid);</div><div class='add'>+	    ADD_INSN(recv, line, dup);</div><div class='add'>+	    lskip = NEW_LABEL(line);</div><div class='add'>+	    ADD_INSNL(recv, line, branchnil, lskip);</div><div class='add'>+	}</div><div class='add'>+	if (!popped) {</div><div class='add'>+	    ADD_INSN(ret, line, putnil);</div><div class='add'>+	    ADD_SEQ(ret, recv);</div><div class='add'>+	    ADD_SEQ(ret, args);</div><div class='add'>+</div><div class='add'>+	    if (flag &amp; VM_CALL_ARGS_BLOCKARG) {</div><div class='add'>+		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='add'>+		if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+		    ADD_INSN1(ret, line, putobject, INT2FIX(-1));</div><div class='add'>+		    ADD_SEND(ret, line, idAREF, INT2FIX(1));</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 3));</div><div class='add'>+		ADD_INSN (ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	    else if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+		ADD_INSN(ret, line, dup);</div><div class='add'>+		ADD_INSN1(ret, line, putobject, INT2FIX(-1));</div><div class='add'>+		ADD_SEND(ret, line, idAREF, INT2FIX(1));</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2));</div><div class='add'>+		ADD_INSN (ret, line, pop);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 1));</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_SEQ(ret, recv);</div><div class='add'>+	    ADD_SEQ(ret, args);</div><div class='add'>+	}</div><div class='add'>+	ADD_SEND_WITH_FLAG(ret, line, mid, argc, INT2FIX(flag));</div><div class='add'>+	if (lskip) ADD_LABEL(ret, lskip);</div><div class='add'>+	ADD_INSN(ret, line, pop);</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_PRELUDE:{</div><div class='add'>+	const rb_compile_option_t *orig_opt = ISEQ_COMPILE_DATA(iseq)-&gt;option;</div><div class='add'>+	rb_compile_option_t new_opt = *orig_opt;</div><div class='add'>+	if (node-&gt;nd_compile_option) {</div><div class='add'>+	    rb_iseq_make_compile_option(&amp;new_opt, node-&gt;nd_compile_option);</div><div class='add'>+	    ISEQ_COMPILE_DATA(iseq)-&gt;option = &amp;new_opt;</div><div class='add'>+	}</div><div class='add'>+	if (!new_opt.coverage_enabled) ISEQ_COVERAGE_SET(iseq, Qfalse);</div><div class='add'>+	CHECK(COMPILE_POPPED(ret, "prelude", node-&gt;nd_head));</div><div class='add'>+	CHECK(COMPILE_(ret, "body", node-&gt;nd_body, popped));</div><div class='add'>+	ISEQ_COMPILE_DATA(iseq)-&gt;option = orig_opt;</div><div class='add'>+	/* Do NOT restore ISEQ_COVERAGE!</div><div class='add'>+	 * If ISEQ_COVERAGE is not false, finish_iseq_build function in iseq.c</div><div class='add'>+	 * will initialize the counter array of line coverage.</div><div class='add'>+	 * We keep ISEQ_COVERAGE as nil to disable this initialization.</div><div class='add'>+	 * This is not harmful assuming that NODE_PRELUDE pragma does not occur</div><div class='add'>+	 * in NODE tree except the root.</div><div class='add'>+	 */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_LAMBDA:{</div><div class='add'>+	/* compile same as lambda{...} */</div><div class='add'>+	const rb_iseq_t *block = NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, line);</div><div class='add'>+	VALUE argc = INT2FIX(0);</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_CALL_WITH_BLOCK(ret, line, idLambda, argc, block);</div><div class='add'>+</div><div class='add'>+	if (popped) {</div><div class='add'>+	    ADD_INSN(ret, line, pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      default:</div><div class='add'>+	UNKNOWN_NODE("iseq_compile_each", node, COMPILE_NG);</div><div class='add'>+      ng:</div><div class='add'>+	debug_node_end();</div><div class='add'>+	return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* remove tracecoverage instruction if there is no relevant instruction */</div><div class='add'>+    if (IS_TRACE(ret-&gt;last) &amp;&amp; ((TRACE*) ret-&gt;last)-&gt;event == RUBY_EVENT_LINE) {</div><div class='add'>+	LINK_ELEMENT *insn = ret-&gt;last-&gt;prev;</div><div class='add'>+	if (IS_INSN(insn) &amp;&amp;</div><div class='add'>+	    IS_INSN_ID(insn, tracecoverage) &amp;&amp;</div><div class='add'>+	    FIX2LONG(OPERAND_AT(insn, 0)) == RUBY_EVENT_COVERAGE_LINE</div><div class='add'>+	) {</div><div class='add'>+	    ELEM_REMOVE(insn); /* remove tracecovearge */</div><div class='add'>+	    RARRAY_ASET(ISEQ_LINE_COVERAGE(iseq), line - 1, Qnil);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    debug_node_end();</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/***************************/</div><div class='add'>+/* instruction information */</div><div class='add'>+/***************************/</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+insn_data_length(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    return insn_len(iobj-&gt;insn_id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+calc_sp_depth(int depth, INSN *insn)</div><div class='add'>+{</div><div class='add'>+    return insn_stack_increase(depth, insn-&gt;insn_id, insn-&gt;operands);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+opobj_inspect(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct RBasic *r = (struct RBasic *) obj;</div><div class='add'>+    if (!SPECIAL_CONST_P(r)  &amp;&amp; r-&gt;klass == 0) {</div><div class='add'>+	switch (BUILTIN_TYPE(r)) {</div><div class='add'>+	  case T_STRING:</div><div class='add'>+	    obj = rb_str_new_cstr(RSTRING_PTR(obj));</div><div class='add'>+	    break;</div><div class='add'>+	  case T_ARRAY:</div><div class='add'>+	    obj = rb_ary_dup(obj);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return rb_inspect(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+insn_data_to_s_detail(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_sprintf("%-20s ", insn_name(iobj-&gt;insn_id));</div><div class='add'>+</div><div class='add'>+    if (iobj-&gt;operands) {</div><div class='add'>+	const char *types = insn_op_types(iobj-&gt;insn_id);</div><div class='add'>+	int j;</div><div class='add'>+</div><div class='add'>+	for (j = 0; types[j]; j++) {</div><div class='add'>+	    char type = types[j];</div><div class='add'>+</div><div class='add'>+	    switch (type) {</div><div class='add'>+	      case TS_OFFSET:	/* label(destination position) */</div><div class='add'>+		{</div><div class='add'>+		    LABEL *lobj = (LABEL *)OPERAND_AT(iobj, j);</div><div class='add'>+		    rb_str_catf(str, LABEL_FORMAT, lobj-&gt;label_no);</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ISEQ:	/* iseq */</div><div class='add'>+		{</div><div class='add'>+		    rb_iseq_t *iseq = (rb_iseq_t *)OPERAND_AT(iobj, j);</div><div class='add'>+		    VALUE val = Qnil;</div><div class='add'>+		    if (0 &amp;&amp; iseq) { /* TODO: invalidate now */</div><div class='add'>+			val = (VALUE)iseq;</div><div class='add'>+		    }</div><div class='add'>+		    rb_str_concat(str, opobj_inspect(val));</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case TS_LINDEX:</div><div class='add'>+	      case TS_NUM:	/* ulong */</div><div class='add'>+	      case TS_VALUE:	/* VALUE */</div><div class='add'>+		{</div><div class='add'>+		    VALUE v = OPERAND_AT(iobj, j);</div><div class='add'>+		    rb_str_concat(str, opobj_inspect(v));</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	      case TS_ID:	/* ID */</div><div class='add'>+		rb_str_concat(str, opobj_inspect(OPERAND_AT(iobj, j)));</div><div class='add'>+		break;</div><div class='add'>+	      case TS_GENTRY:</div><div class='add'>+		{</div><div class='add'>+		    struct rb_global_entry *entry = (struct rb_global_entry *)</div><div class='add'>+		      (OPERAND_AT(iobj, j) &amp; (~1));</div><div class='add'>+		    rb_str_append(str, rb_id2str(entry-&gt;id));</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	      case TS_IC:	/* inline cache */</div><div class='add'>+		rb_str_catf(str, "&lt;ic:%d&gt;", FIX2INT(OPERAND_AT(iobj, j)));</div><div class='add'>+		break;</div><div class='add'>+	      case TS_CALLINFO: /* call info */</div><div class='add'>+		{</div><div class='add'>+		    struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, j);</div><div class='add'>+		    rb_str_cat2(str, "&lt;callinfo:");</div><div class='add'>+		    if (ci-&gt;mid) rb_str_catf(str, "%"PRIsVALUE, rb_id2str(ci-&gt;mid));</div><div class='add'>+		    rb_str_catf(str, ", %d&gt;", ci-&gt;orig_argc);</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	      case TS_CALLCACHE: /* call cache */</div><div class='add'>+		{</div><div class='add'>+		    rb_str_catf(str, "&lt;call cache&gt;");</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+	      case TS_CDHASH:	/* case/when condition cache */</div><div class='add'>+		rb_str_cat2(str, "&lt;ch&gt;");</div><div class='add'>+		break;</div><div class='add'>+	      case TS_FUNCPTR:</div><div class='add'>+		{</div><div class='add'>+		    rb_insn_func_t func = (rb_insn_func_t)OPERAND_AT(iobj, j);</div><div class='add'>+#ifdef HAVE_DLADDR</div><div class='add'>+		    Dl_info info;</div><div class='add'>+		    if (dladdr(func, &amp;info) &amp;&amp; info.dli_sname) {</div><div class='add'>+			rb_str_cat2(str, info.dli_sname);</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+#endif</div><div class='add'>+		    rb_str_catf(str, "&lt;%p&gt;", func);</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      default:{</div><div class='add'>+		rb_raise(rb_eSyntaxError, "unknown operand type: %c", type);</div><div class='add'>+	      }</div><div class='add'>+	    }</div><div class='add'>+	    if (types[j + 1]) {</div><div class='add'>+		rb_str_cat2(str, ", ");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_disasm_list(const LINK_ELEMENT *link)</div><div class='add'>+{</div><div class='add'>+    dump_disasm_list_with_cursor(link, NULL, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_disasm_list_with_cursor(const LINK_ELEMENT *link, const LINK_ELEMENT *curr, const LABEL *dest)</div><div class='add'>+{</div><div class='add'>+    int pos = 0;</div><div class='add'>+    INSN *iobj;</div><div class='add'>+    LABEL *lobj;</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    printf("-- raw disasm--------\n");</div><div class='add'>+</div><div class='add'>+    while (link) {</div><div class='add'>+	if (curr) printf(curr == link ? "*" : " ");</div><div class='add'>+	switch (link-&gt;type) {</div><div class='add'>+	  case ISEQ_ELEMENT_INSN:</div><div class='add'>+	    {</div><div class='add'>+		iobj = (INSN *)link;</div><div class='add'>+		str = insn_data_to_s_detail(iobj);</div><div class='add'>+		printf("%04d %-65s(%4u)\n", pos, StringValueCStr(str), iobj-&gt;insn_info.line_no);</div><div class='add'>+		pos += insn_data_length(iobj);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_LABEL:</div><div class='add'>+	    {</div><div class='add'>+		lobj = (LABEL *)link;</div><div class='add'>+		printf(LABEL_FORMAT"%s\n", lobj-&gt;label_no, dest == lobj ? " &lt;---" : "");</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_TRACE:</div><div class='add'>+	    {</div><div class='add'>+		TRACE *trace = (TRACE *)link;</div><div class='add'>+		printf("trace: %0x\n", trace-&gt;event);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+	    {</div><div class='add'>+		ADJUST *adjust = (ADJUST *)link;</div><div class='add'>+		printf("adjust: [label: %d]\n", adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default:</div><div class='add'>+	    /* ignore */</div><div class='add'>+	    rb_raise(rb_eSyntaxError, "dump_disasm_list error: %ld\n", FIX2LONG(link-&gt;type));</div><div class='add'>+	}</div><div class='add'>+	link = link-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    printf("---------------------\n");</div><div class='add'>+    fflush(stdout);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+const char *</div><div class='add'>+rb_insns_name(int i)</div><div class='add'>+{</div><div class='add'>+    return insn_name_info[i];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_insns_name_array(void)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+    int i;</div><div class='add'>+    for (i = 0; i &lt; VM_INSTRUCTION_SIZE; i++) {</div><div class='add'>+	rb_ary_push(ary, rb_fstring_cstr(insn_name_info[i]));</div><div class='add'>+    }</div><div class='add'>+    return rb_obj_freeze(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LABEL *</div><div class='add'>+register_label(rb_iseq_t *iseq, struct st_table *labels_table, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    LABEL *label = 0;</div><div class='add'>+    st_data_t tmp;</div><div class='add'>+    obj = rb_to_symbol_type(obj);</div><div class='add'>+</div><div class='add'>+    if (st_lookup(labels_table, obj, &amp;tmp) == 0) {</div><div class='add'>+	label = NEW_LABEL(0);</div><div class='add'>+	st_insert(labels_table, obj, (st_data_t)label);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	label = (LABEL *)tmp;</div><div class='add'>+    }</div><div class='add'>+    LABEL_REF(label);</div><div class='add'>+    return label;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+get_exception_sym2type(VALUE sym)</div><div class='add'>+{</div><div class='add'>+#undef rb_intern</div><div class='add'>+#define rb_intern(str) rb_intern_const(str)</div><div class='add'>+    static VALUE symRescue, symEnsure, symRetry;</div><div class='add'>+    static VALUE symBreak, symRedo, symNext;</div><div class='add'>+</div><div class='add'>+    if (symRescue == 0) {</div><div class='add'>+	symRescue = ID2SYM(rb_intern("rescue"));</div><div class='add'>+	symEnsure = ID2SYM(rb_intern("ensure"));</div><div class='add'>+	symRetry  = ID2SYM(rb_intern("retry"));</div><div class='add'>+	symBreak  = ID2SYM(rb_intern("break"));</div><div class='add'>+	symRedo   = ID2SYM(rb_intern("redo"));</div><div class='add'>+	symNext   = ID2SYM(rb_intern("next"));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (sym == symRescue) return CATCH_TYPE_RESCUE;</div><div class='add'>+    if (sym == symEnsure) return CATCH_TYPE_ENSURE;</div><div class='add'>+    if (sym == symRetry)  return CATCH_TYPE_RETRY;</div><div class='add'>+    if (sym == symBreak)  return CATCH_TYPE_BREAK;</div><div class='add'>+    if (sym == symRedo)   return CATCH_TYPE_REDO;</div><div class='add'>+    if (sym == symNext)   return CATCH_TYPE_NEXT;</div><div class='add'>+    rb_raise(rb_eSyntaxError, "invalid exception symbol: %+"PRIsVALUE, sym);</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_build_from_ary_exception(rb_iseq_t *iseq, struct st_table *labels_table,</div><div class='add'>+		     VALUE exception)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(exception); i++) {</div><div class='add'>+	const rb_iseq_t *eiseq;</div><div class='add'>+	VALUE v, type;</div><div class='add'>+	const VALUE *ptr;</div><div class='add'>+	LABEL *lstart, *lend, *lcont;</div><div class='add'>+	unsigned int sp;</div><div class='add'>+</div><div class='add'>+	v = rb_to_array_type(RARRAY_AREF(exception, i));</div><div class='add'>+	if (RARRAY_LEN(v) != 6) {</div><div class='add'>+	    rb_raise(rb_eSyntaxError, "wrong exception entry");</div><div class='add'>+	}</div><div class='add'>+	ptr  = RARRAY_CONST_PTR(v);</div><div class='add'>+	type = get_exception_sym2type(ptr[0]);</div><div class='add'>+	if (ptr[1] == Qnil) {</div><div class='add'>+	    eiseq = NULL;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    eiseq = rb_iseqw_to_iseq(rb_iseq_load(ptr[1], (VALUE)iseq, Qnil));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	lstart = register_label(iseq, labels_table, ptr[2]);</div><div class='add'>+	lend   = register_label(iseq, labels_table, ptr[3]);</div><div class='add'>+	lcont  = register_label(iseq, labels_table, ptr[4]);</div><div class='add'>+	sp     = NUM2UINT(ptr[5]);</div><div class='add'>+</div><div class='add'>+	/* TODO: Dirty Hack!  Fix me */</div><div class='add'>+	if (type == CATCH_TYPE_RESCUE ||</div><div class='add'>+	    type == CATCH_TYPE_BREAK ||</div><div class='add'>+	    type == CATCH_TYPE_NEXT) {</div><div class='add'>+	    ++sp;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	lcont-&gt;sp = sp;</div><div class='add'>+</div><div class='add'>+	ADD_CATCH_ENTRY(type, lstart, lend, eiseq, lcont);</div><div class='add'>+</div><div class='add'>+	RB_GC_GUARD(v);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct st_table *</div><div class='add'>+insn_make_insn_table(void)</div><div class='add'>+{</div><div class='add'>+    struct st_table *table;</div><div class='add'>+    int i;</div><div class='add'>+    table = st_init_numtable();</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;VM_INSTRUCTION_SIZE; i++) {</div><div class='add'>+	st_insert(table, ID2SYM(rb_intern(insn_name(i))), i);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return table;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_iseq_t *</div><div class='add'>+iseq_build_load_iseq(const rb_iseq_t *iseq, VALUE op)</div><div class='add'>+{</div><div class='add'>+    VALUE iseqw;</div><div class='add'>+    const rb_iseq_t *loaded_iseq;</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(op, T_ARRAY)) {</div><div class='add'>+	iseqw = rb_iseq_load(op, (VALUE)iseq, Qnil);</div><div class='add'>+    }</div><div class='add'>+    else if (CLASS_OF(op) == rb_cISeq) {</div><div class='add'>+	iseqw = op;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_raise(rb_eSyntaxError, "ISEQ is required");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    loaded_iseq = rb_iseqw_to_iseq(iseqw);</div><div class='add'>+    iseq_add_mark_object(iseq, (VALUE)loaded_iseq);</div><div class='add'>+    return loaded_iseq;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)</div><div class='add'>+{</div><div class='add'>+    ID mid = 0;</div><div class='add'>+    int orig_argc = 0;</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    struct rb_call_info_kw_arg *kw_arg = 0;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(op)) {</div><div class='add'>+	VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern("mid")));</div><div class='add'>+	VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern("flag")));</div><div class='add'>+	VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern("orig_argc")));</div><div class='add'>+	VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern("kw_arg")));</div><div class='add'>+</div><div class='add'>+	if (!NIL_P(vmid)) mid = SYM2ID(vmid);</div><div class='add'>+	if (!NIL_P(vflag)) flag = NUM2UINT(vflag);</div><div class='add'>+	if (!NIL_P(vorig_argc)) orig_argc = FIX2INT(vorig_argc);</div><div class='add'>+</div><div class='add'>+	if (!NIL_P(vkw_arg)) {</div><div class='add'>+	    int i;</div><div class='add'>+	    int len = RARRAY_LENINT(vkw_arg);</div><div class='add'>+	    size_t n = rb_call_info_kw_arg_bytes(len);</div><div class='add'>+</div><div class='add'>+	    kw_arg = xmalloc(n);</div><div class='add'>+	    kw_arg-&gt;keyword_len = len;</div><div class='add'>+	    for (i = 0; i &lt; len; i++) {</div><div class='add'>+		VALUE kw = RARRAY_AREF(vkw_arg, i);</div><div class='add'>+		SYM2ID(kw);	/* make immortal */</div><div class='add'>+		kw_arg-&gt;keywords[i] = kw;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return (VALUE)new_callinfo(iseq, mid, orig_argc, flag, kw_arg, (flag &amp; VM_CALL_ARGS_SIMPLE) == 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_event_flag_t</div><div class='add'>+event_name_to_flag(VALUE sym)</div><div class='add'>+{</div><div class='add'>+#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern(#ev))) return ev;</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_LINE);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_CLASS);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_END);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_CALL);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_RETURN);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_B_CALL);</div><div class='add'>+		CHECK_EVENT(RUBY_EVENT_B_RETURN);</div><div class='add'>+#undef CHECK_EVENT</div><div class='add'>+    return RUBY_EVENT_NONE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,</div><div class='add'>+			 VALUE body, VALUE labels_wrapper)</div><div class='add'>+{</div><div class='add'>+    /* TODO: body should be frozen */</div><div class='add'>+    const VALUE *ptr = RARRAY_CONST_PTR(body);</div><div class='add'>+    long i, len = RARRAY_LEN(body);</div><div class='add'>+    struct st_table *labels_table = DATA_PTR(labels_wrapper);</div><div class='add'>+    int j;</div><div class='add'>+    int line_no = 0;</div><div class='add'>+    int ret = COMPILE_OK;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * index -&gt; LABEL *label</div><div class='add'>+     */</div><div class='add'>+    static struct st_table *insn_table;</div><div class='add'>+</div><div class='add'>+    if (insn_table == 0) {</div><div class='add'>+	insn_table = insn_make_insn_table();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;len; i++) {</div><div class='add'>+	VALUE obj = ptr[i];</div><div class='add'>+</div><div class='add'>+	if (SYMBOL_P(obj)) {</div><div class='add'>+	    rb_event_flag_t event;</div><div class='add'>+	    if ((event = event_name_to_flag(obj)) != RUBY_EVENT_NONE) {</div><div class='add'>+		ADD_TRACE(anchor, event);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		LABEL *label = register_label(iseq, labels_table, obj);</div><div class='add'>+		ADD_LABEL(anchor, label);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (FIXNUM_P(obj)) {</div><div class='add'>+	    line_no = NUM2INT(obj);</div><div class='add'>+	}</div><div class='add'>+	else if (RB_TYPE_P(obj, T_ARRAY)) {</div><div class='add'>+	    VALUE *argv = 0;</div><div class='add'>+	    int argc = RARRAY_LENINT(obj) - 1;</div><div class='add'>+	    st_data_t insn_id;</div><div class='add'>+	    VALUE insn;</div><div class='add'>+</div><div class='add'>+	    insn = (argc &lt; 0) ? Qnil : RARRAY_AREF(obj, 0);</div><div class='add'>+	    if (st_lookup(insn_table, (st_data_t)insn, &amp;insn_id) == 0) {</div><div class='add'>+		/* TODO: exception */</div><div class='add'>+		COMPILE_ERROR(iseq, line_no,</div><div class='add'>+			      "unknown instruction: %+"PRIsVALUE, insn);</div><div class='add'>+		ret = COMPILE_NG;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (argc != insn_len((VALUE)insn_id)-1) {</div><div class='add'>+		COMPILE_ERROR(iseq, line_no,</div><div class='add'>+			      "operand size mismatch");</div><div class='add'>+		ret = COMPILE_NG;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (argc &gt; 0) {</div><div class='add'>+		argv = compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='add'>+		for (j=0; j&lt;argc; j++) {</div><div class='add'>+		    VALUE op = rb_ary_entry(obj, j+1);</div><div class='add'>+		    switch (insn_op_type((VALUE)insn_id, j)) {</div><div class='add'>+		      case TS_OFFSET: {</div><div class='add'>+			LABEL *label = register_label(iseq, labels_table, op);</div><div class='add'>+			argv[j] = (VALUE)label;</div><div class='add'>+			break;</div><div class='add'>+		      }</div><div class='add'>+		      case TS_LINDEX:</div><div class='add'>+		      case TS_NUM:</div><div class='add'>+			(void)NUM2INT(op);</div><div class='add'>+			argv[j] = op;</div><div class='add'>+			break;</div><div class='add'>+		      case TS_VALUE:</div><div class='add'>+			argv[j] = op;</div><div class='add'>+			iseq_add_mark_object(iseq, op);</div><div class='add'>+			break;</div><div class='add'>+		      case TS_ISEQ:</div><div class='add'>+			{</div><div class='add'>+			    if (op != Qnil) {</div><div class='add'>+				argv[j] = (VALUE)iseq_build_load_iseq(iseq, op);</div><div class='add'>+			    }</div><div class='add'>+			    else {</div><div class='add'>+				argv[j] = 0;</div><div class='add'>+			    }</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      case TS_GENTRY:</div><div class='add'>+			op = rb_to_symbol_type(op);</div><div class='add'>+			argv[j] = (VALUE)rb_global_entry(SYM2ID(op));</div><div class='add'>+			break;</div><div class='add'>+		      case TS_IC:</div><div class='add'>+			argv[j] = op;</div><div class='add'>+			if (NUM2UINT(op) &gt;= iseq-&gt;body-&gt;is_size) {</div><div class='add'>+			    iseq-&gt;body-&gt;is_size = NUM2INT(op) + 1;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      case TS_CALLINFO:</div><div class='add'>+			argv[j] = iseq_build_callinfo_from_hash(iseq, op);</div><div class='add'>+			break;</div><div class='add'>+		      case TS_CALLCACHE:</div><div class='add'>+			argv[j] = Qfalse;</div><div class='add'>+			break;</div><div class='add'>+		      case TS_ID:</div><div class='add'>+			argv[j] = rb_to_symbol_type(op);</div><div class='add'>+			break;</div><div class='add'>+		      case TS_CDHASH:</div><div class='add'>+			{</div><div class='add'>+			    int i;</div><div class='add'>+			    VALUE map = rb_hash_new_with_size(RARRAY_LEN(op)/2);</div><div class='add'>+</div><div class='add'>+			    rb_hash_tbl_raw(map)-&gt;type = &amp;cdhash_type;</div><div class='add'>+			    op = rb_to_array_type(op);</div><div class='add'>+			    for (i=0; i&lt;RARRAY_LEN(op); i+=2) {</div><div class='add'>+				VALUE key = RARRAY_AREF(op, i);</div><div class='add'>+				VALUE sym = RARRAY_AREF(op, i+1);</div><div class='add'>+				LABEL *label =</div><div class='add'>+				  register_label(iseq, labels_table, sym);</div><div class='add'>+				rb_hash_aset(map, key, (VALUE)label | 1);</div><div class='add'>+			    }</div><div class='add'>+			    RB_GC_GUARD(op);</div><div class='add'>+			    argv[j] = map;</div><div class='add'>+			    rb_iseq_add_mark_object(iseq, map);</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      case TS_FUNCPTR:</div><div class='add'>+			{</div><div class='add'>+#if SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='add'>+			    long funcptr = NUM2LONG(op);</div><div class='add'>+#else</div><div class='add'>+			    LONG_LONG funcptr = NUM2LL(op);</div><div class='add'>+#endif</div><div class='add'>+			    argv[j] = (VALUE)funcptr;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      default:</div><div class='add'>+			rb_raise(rb_eSyntaxError, "unknown operand: %c", insn_op_type((VALUE)insn_id, j));</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    ADD_ELEM(anchor,</div><div class='add'>+		     (LINK_ELEMENT*)new_insn_core(iseq, line_no,</div><div class='add'>+						  (enum ruby_vminsn_type)insn_id, argc, argv));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_raise(rb_eTypeError, "unexpected object for instruction");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    DATA_PTR(labels_wrapper) = 0;</div><div class='add'>+    validate_labels(iseq, labels_table);</div><div class='add'>+    if (!ret) return ret;</div><div class='add'>+    return iseq_setup(iseq, anchor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define CHECK_ARRAY(v)   rb_to_array_type(v)</div><div class='add'>+#define CHECK_SYMBOL(v)  rb_to_symbol_type(v)</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+int_param(int *dst, VALUE param, VALUE sym)</div><div class='add'>+{</div><div class='add'>+    VALUE val = rb_hash_aref(param, sym);</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+	*dst = FIX2INT(val);</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else if (!NIL_P(val)) {</div><div class='add'>+	rb_raise(rb_eTypeError, "invalid %+"PRIsVALUE" Fixnum: %+"PRIsVALUE,</div><div class='add'>+		 sym, val);</div><div class='add'>+    }</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct rb_iseq_param_keyword *</div><div class='add'>+iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)</div><div class='add'>+{</div><div class='add'>+    int i, j;</div><div class='add'>+    int len = RARRAY_LENINT(keywords);</div><div class='add'>+    int default_len;</div><div class='add'>+    VALUE key, sym, default_val;</div><div class='add'>+    VALUE *dvs;</div><div class='add'>+    ID *ids;</div><div class='add'>+    struct rb_iseq_param_keyword *keyword = ZALLOC(struct rb_iseq_param_keyword);</div><div class='add'>+</div><div class='add'>+    iseq-&gt;body-&gt;param.flags.has_kw = TRUE;</div><div class='add'>+</div><div class='add'>+    keyword-&gt;num = len;</div><div class='add'>+#define SYM(s) ID2SYM(rb_intern(#s))</div><div class='add'>+    (void)int_param(&amp;keyword-&gt;bits_start, params, SYM(kwbits));</div><div class='add'>+    i = keyword-&gt;bits_start - keyword-&gt;num;</div><div class='add'>+    ids = (ID *)&amp;iseq-&gt;body-&gt;local_table[i];</div><div class='add'>+#undef SYM</div><div class='add'>+</div><div class='add'>+    /* required args */</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+	VALUE val = RARRAY_AREF(keywords, i);</div><div class='add'>+</div><div class='add'>+	if (!SYMBOL_P(val)) {</div><div class='add'>+	    goto default_values;</div><div class='add'>+	}</div><div class='add'>+	ids[i] = SYM2ID(val);</div><div class='add'>+	keyword-&gt;required_num++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  default_values: /* note: we intentionally preserve `i' from previous loop */</div><div class='add'>+    default_len = len - i;</div><div class='add'>+    if (default_len == 0) {</div><div class='add'>+	keyword-&gt;table = ids;</div><div class='add'>+	return keyword;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dvs = ALLOC_N(VALUE, (unsigned int)default_len);</div><div class='add'>+</div><div class='add'>+    for (j = 0; i &lt; len; i++, j++) {</div><div class='add'>+	key = RARRAY_AREF(keywords, i);</div><div class='add'>+	CHECK_ARRAY(key);</div><div class='add'>+</div><div class='add'>+	switch (RARRAY_LEN(key)) {</div><div class='add'>+	  case 1:</div><div class='add'>+	    sym = RARRAY_AREF(key, 0);</div><div class='add'>+	    default_val = Qundef;</div><div class='add'>+	    break;</div><div class='add'>+	  case 2:</div><div class='add'>+	    sym = RARRAY_AREF(key, 0);</div><div class='add'>+	    default_val = RARRAY_AREF(key, 1);</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    rb_raise(rb_eTypeError, "keyword default has unsupported len %+"PRIsVALUE, key);</div><div class='add'>+	}</div><div class='add'>+	ids[i] = SYM2ID(sym);</div><div class='add'>+	dvs[j] = default_val;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    keyword-&gt;table = ids;</div><div class='add'>+    keyword-&gt;default_values = dvs;</div><div class='add'>+</div><div class='add'>+    return keyword;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,</div><div class='add'>+			 VALUE exception, VALUE body)</div><div class='add'>+{</div><div class='add'>+#define SYM(s) ID2SYM(rb_intern(#s))</div><div class='add'>+    int i, len;</div><div class='add'>+    unsigned int arg_size, local_size, stack_max;</div><div class='add'>+    ID *tbl;</div><div class='add'>+    struct st_table *labels_table = st_init_numtable();</div><div class='add'>+    VALUE labels_wrapper = Data_Wrap_Struct(0, 0, st_free_table, labels_table);</div><div class='add'>+    VALUE arg_opt_labels = rb_hash_aref(params, SYM(opt));</div><div class='add'>+    VALUE keywords = rb_hash_aref(params, SYM(keyword));</div><div class='add'>+    VALUE sym_arg_rest = ID2SYM(rb_intern("#arg_rest"));</div><div class='add'>+    DECL_ANCHOR(anchor);</div><div class='add'>+    INIT_ANCHOR(anchor);</div><div class='add'>+</div><div class='add'>+    len = RARRAY_LENINT(locals);</div><div class='add'>+    iseq-&gt;body-&gt;local_table_size = len;</div><div class='add'>+    iseq-&gt;body-&gt;local_table = tbl = len &gt; 0 ? (ID *)ALLOC_N(ID, iseq-&gt;body-&gt;local_table_size) : NULL;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+	VALUE lv = RARRAY_AREF(locals, i);</div><div class='add'>+</div><div class='add'>+	if (sym_arg_rest == lv) {</div><div class='add'>+	    tbl[i] = 0;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    tbl[i] = FIXNUM_P(lv) ? (ID)FIX2LONG(lv) : SYM2ID(CHECK_SYMBOL(lv));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#define INT_PARAM(F) int_param(&amp;iseq-&gt;body-&gt;param.F, params, SYM(F))</div><div class='add'>+    if (INT_PARAM(lead_num)) {</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_lead = TRUE;</div><div class='add'>+    }</div><div class='add'>+    if (INT_PARAM(post_num)) iseq-&gt;body-&gt;param.flags.has_post = TRUE;</div><div class='add'>+    if (INT_PARAM(post_start)) iseq-&gt;body-&gt;param.flags.has_post = TRUE;</div><div class='add'>+    if (INT_PARAM(rest_start)) iseq-&gt;body-&gt;param.flags.has_rest = TRUE;</div><div class='add'>+    if (INT_PARAM(block_start)) iseq-&gt;body-&gt;param.flags.has_block = TRUE;</div><div class='add'>+#undef INT_PARAM</div><div class='add'>+    {</div><div class='add'>+#define INT_PARAM(F) F = (int_param(&amp;x, misc, SYM(F)) ? (unsigned int)x : 0)</div><div class='add'>+	int x;</div><div class='add'>+	INT_PARAM(arg_size);</div><div class='add'>+	INT_PARAM(local_size);</div><div class='add'>+	INT_PARAM(stack_max);</div><div class='add'>+#undef INT_PARAM</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(arg_opt_labels, T_ARRAY)) {</div><div class='add'>+	len = RARRAY_LENINT(arg_opt_labels);</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_opt = !!(len - 1 &gt;= 0);</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='add'>+	    VALUE *opt_table = ALLOC_N(VALUE, len);</div><div class='add'>+</div><div class='add'>+	    for (i = 0; i &lt; len; i++) {</div><div class='add'>+		VALUE ent = RARRAY_AREF(arg_opt_labels, i);</div><div class='add'>+		LABEL *label = register_label(iseq, labels_table, ent);</div><div class='add'>+		opt_table[i] = (VALUE)label;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    iseq-&gt;body-&gt;param.opt_num = len - 1;</div><div class='add'>+	    iseq-&gt;body-&gt;param.opt_table = opt_table;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else if (!NIL_P(arg_opt_labels)) {</div><div class='add'>+	rb_raise(rb_eTypeError, ":opt param is not an array: %+"PRIsVALUE,</div><div class='add'>+		 arg_opt_labels);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(keywords, T_ARRAY)) {</div><div class='add'>+	iseq-&gt;body-&gt;param.keyword = iseq_build_kw(iseq, params, keywords);</div><div class='add'>+    }</div><div class='add'>+    else if (!NIL_P(keywords)) {</div><div class='add'>+	rb_raise(rb_eTypeError, ":keywords param is not an array: %+"PRIsVALUE,</div><div class='add'>+		 keywords);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (Qtrue == rb_hash_aref(params, SYM(ambiguous_param0))) {</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (int_param(&amp;i, params, SYM(kwrest))) {</div><div class='add'>+	struct rb_iseq_param_keyword *keyword = (struct rb_iseq_param_keyword *)iseq-&gt;body-&gt;param.keyword;</div><div class='add'>+	if (keyword == NULL) {</div><div class='add'>+	    iseq-&gt;body-&gt;param.keyword = keyword = ZALLOC(struct rb_iseq_param_keyword);</div><div class='add'>+	}</div><div class='add'>+	keyword-&gt;rest_start = i;</div><div class='add'>+	iseq-&gt;body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+    }</div><div class='add'>+#undef SYM</div><div class='add'>+    iseq_calc_param_size(iseq);</div><div class='add'>+</div><div class='add'>+    /* exception */</div><div class='add'>+    iseq_build_from_ary_exception(iseq, labels_table, exception);</div><div class='add'>+</div><div class='add'>+    /* body */</div><div class='add'>+    iseq_build_from_ary_body(iseq, anchor, body, labels_wrapper);</div><div class='add'>+</div><div class='add'>+    iseq-&gt;body-&gt;param.size = arg_size;</div><div class='add'>+    iseq-&gt;body-&gt;local_table_size = local_size;</div><div class='add'>+    iseq-&gt;body-&gt;stack_max = stack_max;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* for parser */</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_dvar_defined(ID id, const struct rb_block *base_block)</div><div class='add'>+{</div><div class='add'>+    const rb_iseq_t *iseq;</div><div class='add'>+</div><div class='add'>+    if (base_block &amp;&amp; (iseq = vm_block_iseq(base_block)) != NULL) {</div><div class='add'>+	while (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK ||</div><div class='add'>+	       iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE ||</div><div class='add'>+	       iseq-&gt;body-&gt;type == ISEQ_TYPE_ENSURE ||</div><div class='add'>+	       iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL ||</div><div class='add'>+	       iseq-&gt;body-&gt;type == ISEQ_TYPE_MAIN</div><div class='add'>+	       ) {</div><div class='add'>+	    unsigned int i;</div><div class='add'>+</div><div class='add'>+	    for (i = 0; i &lt; iseq-&gt;body-&gt;local_table_size; i++) {</div><div class='add'>+		if (iseq-&gt;body-&gt;local_table[i] == id) {</div><div class='add'>+		    return 1;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_local_defined(ID id, const struct rb_block *base_block)</div><div class='add'>+{</div><div class='add'>+    const rb_iseq_t *iseq;</div><div class='add'>+</div><div class='add'>+    if (base_block &amp;&amp; (iseq = vm_block_iseq(base_block)) != NULL) {</div><div class='add'>+	unsigned int i;</div><div class='add'>+	iseq = iseq-&gt;body-&gt;local_iseq;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;iseq-&gt;body-&gt;local_table_size; i++) {</div><div class='add'>+	    if (iseq-&gt;body-&gt;local_table[i] == id) {</div><div class='add'>+		return 1;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+caller_location(VALUE *path, VALUE *realpath)</div><div class='add'>+{</div><div class='add'>+    const rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    const rb_control_frame_t *const cfp =</div><div class='add'>+        rb_vm_get_ruby_level_next_cfp(ec, ec-&gt;cfp);</div><div class='add'>+</div><div class='add'>+    if (cfp) {</div><div class='add'>+	int line = rb_vm_get_sourceline(cfp);</div><div class='add'>+	*path = rb_iseq_path(cfp-&gt;iseq);</div><div class='add'>+	*realpath = rb_iseq_realpath(cfp-&gt;iseq);</div><div class='add'>+	return line;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	*path = rb_fstring_cstr("&lt;compiled&gt;");</div><div class='add'>+	*realpath = *path;</div><div class='add'>+	return 1;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    VALUE arg;</div><div class='add'>+    rb_insn_func_t func;</div><div class='add'>+    int line;</div><div class='add'>+} accessor_args;</div><div class='add'>+</div><div class='add'>+static const rb_iseq_t *</div><div class='add'>+method_for_self(VALUE name, VALUE arg, rb_insn_func_t func,</div><div class='add'>+		VALUE (*build)(rb_iseq_t *, LINK_ANCHOR *const, VALUE))</div><div class='add'>+{</div><div class='add'>+    VALUE path, realpath;</div><div class='add'>+    accessor_args acc;</div><div class='add'>+</div><div class='add'>+    acc.arg = arg;</div><div class='add'>+    acc.func = func;</div><div class='add'>+    acc.line = caller_location(&amp;path, &amp;realpath);</div><div class='add'>+    return rb_iseq_new_with_opt((const NODE *)IFUNC_NEW(build, (VALUE)&amp;acc, 0),</div><div class='add'>+				rb_sym2str(name), path, realpath,</div><div class='add'>+				INT2FIX(acc.line), 0, ISEQ_TYPE_METHOD, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+for_self_aref(rb_iseq_t *iseq, LINK_ANCHOR *const ret, VALUE a)</div><div class='add'>+{</div><div class='add'>+    const accessor_args *const args = (void *)a;</div><div class='add'>+    const int line = args-&gt;line;</div><div class='add'>+</div><div class='add'>+    iseq_set_local_table(iseq, 0);</div><div class='add'>+    iseq-&gt;body-&gt;param.lead_num = 0;</div><div class='add'>+    iseq-&gt;body-&gt;param.size = 0;</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line, putobject, args-&gt;arg);</div><div class='add'>+    ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args-&gt;func);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+for_self_aset(rb_iseq_t *iseq, LINK_ANCHOR *const ret, VALUE a)</div><div class='add'>+{</div><div class='add'>+    const accessor_args *const args = (void *)a;</div><div class='add'>+    const int line = args-&gt;line;</div><div class='add'>+    static const ID vars[] = {1, idUScore};</div><div class='add'>+</div><div class='add'>+    iseq_set_local_table(iseq, vars);</div><div class='add'>+    iseq-&gt;body-&gt;param.lead_num = 1;</div><div class='add'>+    iseq-&gt;body-&gt;param.size = 1;</div><div class='add'>+</div><div class='add'>+    ADD_GETLOCAL(ret, line, numberof(vars)-1, 0);</div><div class='add'>+    ADD_INSN1(ret, line, putobject, args-&gt;arg);</div><div class='add'>+    ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args-&gt;func);</div><div class='add'>+    ADD_INSN(ret, line, pop);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * func (index) -&gt; (value)</div><div class='add'>+ */</div><div class='add'>+const rb_iseq_t *</div><div class='add'>+rb_method_for_self_aref(VALUE name, VALUE arg, rb_insn_func_t func)</div><div class='add'>+{</div><div class='add'>+    return method_for_self(name, arg, func, for_self_aref);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * func (index, value) -&gt; (index, value)</div><div class='add'>+ */</div><div class='add'>+const rb_iseq_t *</div><div class='add'>+rb_method_for_self_aset(VALUE name, VALUE arg, rb_insn_func_t func)</div><div class='add'>+{</div><div class='add'>+    return method_for_self(name, arg, func, for_self_aset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* ISeq binary format */</div><div class='add'>+</div><div class='add'>+typedef unsigned int ibf_offset_t;</div><div class='add'>+#define IBF_OFFSET(ptr) ((ibf_offset_t)(VALUE)(ptr))</div><div class='add'>+</div><div class='add'>+struct ibf_header {</div><div class='add'>+    char magic[4]; /* YARB */</div><div class='add'>+    unsigned int major_version;</div><div class='add'>+    unsigned int minor_version;</div><div class='add'>+    unsigned int size;</div><div class='add'>+    unsigned int extra_size;</div><div class='add'>+</div><div class='add'>+    unsigned int iseq_list_size;</div><div class='add'>+    unsigned int id_list_size;</div><div class='add'>+    unsigned int object_list_size;</div><div class='add'>+</div><div class='add'>+    ibf_offset_t iseq_list_offset;</div><div class='add'>+    ibf_offset_t id_list_offset;</div><div class='add'>+    ibf_offset_t object_list_offset;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_id_entry {</div><div class='add'>+    enum {</div><div class='add'>+	ibf_id_enc_ascii,</div><div class='add'>+	ibf_id_enc_utf8,</div><div class='add'>+	ibf_id_enc_other</div><div class='add'>+    } enc : 2;</div><div class='add'>+    char body[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_dump {</div><div class='add'>+    VALUE str;</div><div class='add'>+    VALUE iseq_list;      /* [iseq0 offset, ...] */</div><div class='add'>+    VALUE obj_list;       /* [objs] */</div><div class='add'>+    st_table *iseq_table; /* iseq -&gt; iseq number */</div><div class='add'>+    st_table *id_table;   /* id -&gt; id number */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+rb_iseq_t * iseq_alloc(void);</div><div class='add'>+</div><div class='add'>+struct ibf_load {</div><div class='add'>+    const char *buff;</div><div class='add'>+    const struct ibf_header *header;</div><div class='add'>+    ID *id_list;     /* [id0, ...] */</div><div class='add'>+    VALUE iseq_list; /* [iseq0, ...] */</div><div class='add'>+    VALUE obj_list;  /* [obj0, ...] */</div><div class='add'>+    VALUE loader_obj;</div><div class='add'>+    VALUE str;</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_pos(struct ibf_dump *dump)</div><div class='add'>+{</div><div class='add'>+    return (unsigned int)rb_str_strlen(dump-&gt;str);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_write(struct ibf_dump *dump, const void *buff, unsigned long size)</div><div class='add'>+{</div><div class='add'>+    ibf_offset_t pos = ibf_dump_pos(dump);</div><div class='add'>+    rb_str_cat(dump-&gt;str, (const char *)buff, size);</div><div class='add'>+    /* TODO: overflow check */</div><div class='add'>+    return pos;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_overwrite(struct ibf_dump *dump, void *buff, unsigned int size, long offset)</div><div class='add'>+{</div><div class='add'>+    VALUE str = dump-&gt;str;</div><div class='add'>+    char *ptr = RSTRING_PTR(str);</div><div class='add'>+    if ((unsigned long)(size + offset) &gt; (unsigned long)RSTRING_LEN(str))</div><div class='add'>+	rb_bug("ibf_dump_overwrite: overflow");</div><div class='add'>+    memcpy(ptr + offset, buff, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+ibf_load_alloc(const struct ibf_load *load, ibf_offset_t offset, int size)</div><div class='add'>+{</div><div class='add'>+    void *buff = ruby_xmalloc(size);</div><div class='add'>+    memcpy(buff, load-&gt;buff + offset, size);</div><div class='add'>+    return buff;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define IBF_W(b, type, n) (type *)(VALUE)ibf_dump_write(dump, (b), sizeof(type) * (n))</div><div class='add'>+#define IBF_WV(variable)   ibf_dump_write(dump, &amp;(variable), sizeof(variable))</div><div class='add'>+#define IBF_WP(b, type, n) ibf_dump_write(dump, (b), sizeof(type) * (n))</div><div class='add'>+#define IBF_R(val, type, n) (type *)ibf_load_alloc(load, IBF_OFFSET(val), sizeof(type) * (n))</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ibf_table_lookup(struct st_table *table, st_data_t key)</div><div class='add'>+{</div><div class='add'>+    st_data_t val;</div><div class='add'>+</div><div class='add'>+    if (st_lookup(table, key, &amp;val)) {</div><div class='add'>+	return (int)val;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ibf_table_index(struct st_table *table, st_data_t key)</div><div class='add'>+{</div><div class='add'>+    int index = ibf_table_lookup(table, key);</div><div class='add'>+</div><div class='add'>+    if (index &lt; 0) { /* not found */</div><div class='add'>+	index = (int)table-&gt;num_entries;</div><div class='add'>+	st_insert(table, key, (st_data_t)index);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return index;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* dump/load generic */</div><div class='add'>+</div><div class='add'>+static VALUE ibf_load_object(const struct ibf_load *load, VALUE object_index);</div><div class='add'>+static rb_iseq_t *ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_dump_object(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    long index = RARRAY_LEN(dump-&gt;obj_list);</div><div class='add'>+    long i;</div><div class='add'>+    for (i=0; i&lt;index; i++) {</div><div class='add'>+	if (RARRAY_AREF(dump-&gt;obj_list, i) == obj) return (VALUE)i; /* dedup */</div><div class='add'>+    }</div><div class='add'>+    rb_ary_push(dump-&gt;obj_list, obj);</div><div class='add'>+    return (VALUE)index;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_dump_id(struct ibf_dump *dump, ID id)</div><div class='add'>+{</div><div class='add'>+    return (VALUE)ibf_table_index(dump-&gt;id_table, (st_data_t)id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ID</div><div class='add'>+ibf_load_id(const struct ibf_load *load, const ID id_index)</div><div class='add'>+{</div><div class='add'>+    ID id;</div><div class='add'>+</div><div class='add'>+    if (id_index == 0) {</div><div class='add'>+	id = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	id = load-&gt;id_list[(long)id_index];</div><div class='add'>+</div><div class='add'>+	if (id == 0) {</div><div class='add'>+	    long *indices = (long *)(load-&gt;buff + load-&gt;header-&gt;id_list_offset);</div><div class='add'>+	    VALUE str = ibf_load_object(load, indices[id_index]);</div><div class='add'>+	    id = NIL_P(str) ? 0 : rb_intern_str(str); /* str == nil -&gt; internal junk id */</div><div class='add'>+	    load-&gt;id_list[(long)id_index] = id;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return id;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* dump/load: code */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_dump_callinfo(struct ibf_dump *dump, const struct rb_call_info *ci)</div><div class='add'>+{</div><div class='add'>+    return (ci-&gt;flag &amp; VM_CALL_KWARG) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ibf_offset_t ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq);</div><div class='add'>+</div><div class='add'>+static rb_iseq_t *</div><div class='add'>+ibf_dump_iseq(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    if (iseq == NULL) {</div><div class='add'>+	return (rb_iseq_t *)-1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	int iseq_index = ibf_table_lookup(dump-&gt;iseq_table, (st_data_t)iseq);</div><div class='add'>+	if (iseq_index &lt; 0) {</div><div class='add'>+	    iseq_index = ibf_table_index(dump-&gt;iseq_table, (st_data_t)iseq);</div><div class='add'>+	    rb_ary_store(dump-&gt;iseq_list, iseq_index, LONG2NUM(ibf_dump_iseq_each(dump, rb_iseq_check(iseq))));</div><div class='add'>+	}</div><div class='add'>+	return (rb_iseq_t *)(VALUE)iseq_index;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_dump_gentry(struct ibf_dump *dump, const struct rb_global_entry *entry)</div><div class='add'>+{</div><div class='add'>+    return (VALUE)ibf_dump_id(dump, entry-&gt;id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_gentry(const struct ibf_load *load, const struct rb_global_entry *entry)</div><div class='add'>+{</div><div class='add'>+    ID gid = ibf_load_id(load, (ID)(VALUE)entry);</div><div class='add'>+    return (VALUE)rb_global_entry(gid);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE *</div><div class='add'>+ibf_dump_code(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const int iseq_size = iseq-&gt;body-&gt;iseq_size;</div><div class='add'>+    int code_index;</div><div class='add'>+    VALUE *code;</div><div class='add'>+    const VALUE *orig_code = rb_iseq_original_iseq(iseq);</div><div class='add'>+</div><div class='add'>+    code = ALLOCA_N(VALUE, iseq_size);</div><div class='add'>+</div><div class='add'>+    for (code_index=0; code_index&lt;iseq_size;) {</div><div class='add'>+	const VALUE insn = orig_code[code_index];</div><div class='add'>+	const char *types = insn_op_types(insn);</div><div class='add'>+	int op_index;</div><div class='add'>+</div><div class='add'>+	code[code_index++] = (VALUE)insn;</div><div class='add'>+</div><div class='add'>+	for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='add'>+	    VALUE op = orig_code[code_index];</div><div class='add'>+	    switch (types[op_index]) {</div><div class='add'>+	      case TS_CDHASH:</div><div class='add'>+	      case TS_VALUE:</div><div class='add'>+		code[code_index] = ibf_dump_object(dump, op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ISEQ:</div><div class='add'>+		code[code_index] = (VALUE)ibf_dump_iseq(dump, (const rb_iseq_t *)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_IC:</div><div class='add'>+		{</div><div class='add'>+		    unsigned int i;</div><div class='add'>+		    for (i=0; i&lt;iseq-&gt;body-&gt;is_size; i++) {</div><div class='add'>+			if (op == (VALUE)&amp;iseq-&gt;body-&gt;is_entries[i]) {</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		    }</div><div class='add'>+		    code[code_index] = i;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case TS_CALLINFO:</div><div class='add'>+		code[code_index] = ibf_dump_callinfo(dump, (const struct rb_call_info *)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_CALLCACHE:</div><div class='add'>+		code[code_index] = 0;</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ID:</div><div class='add'>+		code[code_index] = ibf_dump_id(dump, (ID)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_GENTRY:</div><div class='add'>+		code[code_index] = ibf_dump_gentry(dump, (const struct rb_global_entry *)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_FUNCPTR:</div><div class='add'>+		rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='add'>+		code[code_index] = op;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	assert(insn_len(insn) == op_index+1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return IBF_W(code, VALUE, iseq_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE *</div><div class='add'>+ibf_load_code(const struct ibf_load *load, const rb_iseq_t *iseq, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    const int iseq_size = body-&gt;iseq_size;</div><div class='add'>+    int code_index;</div><div class='add'>+    VALUE *code = IBF_R(body-&gt;iseq_encoded, VALUE, iseq_size);</div><div class='add'>+</div><div class='add'>+    struct rb_call_info *ci_entries = iseq-&gt;body-&gt;ci_entries;</div><div class='add'>+    struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;iseq-&gt;body-&gt;ci_entries[iseq-&gt;body-&gt;ci_size];</div><div class='add'>+    struct rb_call_cache *cc_entries = iseq-&gt;body-&gt;cc_entries;</div><div class='add'>+    union iseq_inline_storage_entry *is_entries = iseq-&gt;body-&gt;is_entries;</div><div class='add'>+</div><div class='add'>+    for (code_index=0; code_index&lt;iseq_size;) {</div><div class='add'>+	const VALUE insn = code[code_index++];</div><div class='add'>+	const char *types = insn_op_types(insn);</div><div class='add'>+	int op_index;</div><div class='add'>+</div><div class='add'>+	for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='add'>+	    VALUE op = code[code_index];</div><div class='add'>+</div><div class='add'>+	    switch (types[op_index]) {</div><div class='add'>+	      case TS_CDHASH:</div><div class='add'>+	      case TS_VALUE:</div><div class='add'>+		code[code_index] = ibf_load_object(load, op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ISEQ:</div><div class='add'>+		code[code_index] = (VALUE)ibf_load_iseq(load, (const rb_iseq_t *)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_IC:</div><div class='add'>+		code[code_index] = (VALUE)&amp;is_entries[(int)op];</div><div class='add'>+		break;</div><div class='add'>+	      case TS_CALLINFO:</div><div class='add'>+		code[code_index] = op ? (VALUE)ci_kw_entries++ : (VALUE)ci_entries++; /* op is Qtrue (kw) or Qfalse (!kw) */</div><div class='add'>+		break;</div><div class='add'>+	      case TS_CALLCACHE:</div><div class='add'>+		code[code_index] = (VALUE)cc_entries++;</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ID:</div><div class='add'>+		code[code_index] = ibf_load_id(load, (ID)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_GENTRY:</div><div class='add'>+		code[code_index] = ibf_load_gentry(load, (const struct rb_global_entry *)op);</div><div class='add'>+		break;</div><div class='add'>+	      case TS_FUNCPTR:</div><div class='add'>+		rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='add'>+		/* code[code_index] = op; */</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (insn_len(insn) != op_index+1) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "operand size mismatch");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    return code;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE *</div><div class='add'>+ibf_dump_param_opt_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    int opt_num = iseq-&gt;body-&gt;param.opt_num;</div><div class='add'>+</div><div class='add'>+    if (opt_num &gt; 0) {</div><div class='add'>+	return IBF_W(iseq-&gt;body-&gt;param.opt_table, VALUE, opt_num + 1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE *</div><div class='add'>+ibf_load_param_opt_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    int opt_num = body-&gt;param.opt_num;</div><div class='add'>+</div><div class='add'>+    if (opt_num &gt; 0) {</div><div class='add'>+	ibf_offset_t offset = IBF_OFFSET(body-&gt;param.opt_table);</div><div class='add'>+	VALUE *table = ALLOC_N(VALUE, opt_num+1);</div><div class='add'>+	MEMCPY(table, load-&gt;buff + offset, VALUE, opt_num+1);</div><div class='add'>+	return table;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_iseq_param_keyword *</div><div class='add'>+ibf_dump_param_keyword(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const struct rb_iseq_param_keyword *kw = iseq-&gt;body-&gt;param.keyword;</div><div class='add'>+</div><div class='add'>+    if (kw) {</div><div class='add'>+	struct rb_iseq_param_keyword dump_kw = *kw;</div><div class='add'>+	int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='add'>+	ID *ids = kw-&gt;num &gt; 0 ? ALLOCA_N(ID, kw-&gt;num) : NULL;</div><div class='add'>+	VALUE *dvs = dv_num &gt; 0 ? ALLOCA_N(VALUE, dv_num) : NULL;</div><div class='add'>+	int i;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;kw-&gt;num; i++) ids[i] = (ID)ibf_dump_id(dump, kw-&gt;table[i]);</div><div class='add'>+	for (i=0; i&lt;dv_num; i++) dvs[i] = (VALUE)ibf_dump_object(dump, kw-&gt;default_values[i]);</div><div class='add'>+</div><div class='add'>+	dump_kw.table = IBF_W(ids, ID, kw-&gt;num);</div><div class='add'>+	dump_kw.default_values = IBF_W(dvs, VALUE, dv_num);</div><div class='add'>+	return IBF_W(&amp;dump_kw, struct rb_iseq_param_keyword, 1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct rb_iseq_param_keyword *</div><div class='add'>+ibf_load_param_keyword(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    if (body-&gt;param.keyword) {</div><div class='add'>+	struct rb_iseq_param_keyword *kw = IBF_R(body-&gt;param.keyword, struct rb_iseq_param_keyword, 1);</div><div class='add'>+	ID *ids = IBF_R(kw-&gt;table, ID, kw-&gt;num);</div><div class='add'>+	int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='add'>+	VALUE *dvs = IBF_R(kw-&gt;default_values, VALUE, dv_num);</div><div class='add'>+	int i;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;kw-&gt;num; i++) {</div><div class='add'>+	    ids[i] = ibf_load_id(load, ids[i]);</div><div class='add'>+	}</div><div class='add'>+	for (i=0; i&lt;dv_num; i++) {</div><div class='add'>+	    dvs[i] = ibf_load_object(load, dvs[i]);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	kw-&gt;table = ids;</div><div class='add'>+	kw-&gt;default_values = dvs;</div><div class='add'>+	return kw;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct iseq_insn_info_entry *</div><div class='add'>+ibf_dump_insns_info(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return IBF_W(iseq-&gt;body-&gt;insns_info, struct iseq_insn_info_entry, iseq-&gt;body-&gt;insns_info_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct iseq_insn_info_entry *</div><div class='add'>+ibf_load_insns_info(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    return IBF_R(body-&gt;insns_info, struct iseq_insn_info_entry, body-&gt;insns_info_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ID *</div><div class='add'>+ibf_dump_local_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const int size = iseq-&gt;body-&gt;local_table_size;</div><div class='add'>+    ID *table = ALLOCA_N(ID, size);</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;size; i++) {</div><div class='add'>+	table[i] = ibf_dump_id(dump, iseq-&gt;body-&gt;local_table[i]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return IBF_W(table, ID, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ID *</div><div class='add'>+ibf_load_local_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    const int size = body-&gt;local_table_size;</div><div class='add'>+</div><div class='add'>+    if (size &gt; 0) {</div><div class='add'>+	ID *table = IBF_R(body-&gt;local_table, ID, size);</div><div class='add'>+	int i;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;size; i++) {</div><div class='add'>+	    table[i] = ibf_load_id(load, table[i]);</div><div class='add'>+	}</div><div class='add'>+	return table;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct iseq_catch_table *</div><div class='add'>+ibf_dump_catch_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const struct iseq_catch_table *table = iseq-&gt;body-&gt;catch_table;</div><div class='add'>+</div><div class='add'>+    if (table) {</div><div class='add'>+	int byte_size = iseq_catch_table_bytes(iseq-&gt;body-&gt;catch_table-&gt;size);</div><div class='add'>+	struct iseq_catch_table *dump_table = (struct iseq_catch_table *)ALLOCA_N(char, byte_size);</div><div class='add'>+	unsigned int i;</div><div class='add'>+	dump_table-&gt;size = table-&gt;size;</div><div class='add'>+	for (i=0; i&lt;table-&gt;size; i++) {</div><div class='add'>+	    dump_table-&gt;entries[i] = table-&gt;entries[i];</div><div class='add'>+	    dump_table-&gt;entries[i].iseq = ibf_dump_iseq(dump, table-&gt;entries[i].iseq);</div><div class='add'>+	}</div><div class='add'>+	return (struct iseq_catch_table *)(VALUE)ibf_dump_write(dump, dump_table, byte_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct iseq_catch_table *</div><div class='add'>+ibf_load_catch_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    if (body-&gt;catch_table) {</div><div class='add'>+	struct iseq_catch_table *table;</div><div class='add'>+	unsigned int i;</div><div class='add'>+	unsigned int size;</div><div class='add'>+	size = *(unsigned int *)(load-&gt;buff + IBF_OFFSET(body-&gt;catch_table));</div><div class='add'>+	table = ibf_load_alloc(load, IBF_OFFSET(body-&gt;catch_table), iseq_catch_table_bytes(size));</div><div class='add'>+	for (i=0; i&lt;size; i++) {</div><div class='add'>+	    table-&gt;entries[i].iseq = ibf_load_iseq(load, table-&gt;entries[i].iseq);</div><div class='add'>+	}</div><div class='add'>+	return table;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_call_info *</div><div class='add'>+ibf_dump_ci_entries(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    const unsigned int ci_size = iseq-&gt;body-&gt;ci_size;</div><div class='add'>+    const unsigned int ci_kw_size = iseq-&gt;body-&gt;ci_kw_size;</div><div class='add'>+    const struct rb_call_info *ci_entries = iseq-&gt;body-&gt;ci_entries;</div><div class='add'>+    struct rb_call_info *dump_ci_entries;</div><div class='add'>+    struct rb_call_info_with_kwarg *dump_ci_kw_entries;</div><div class='add'>+    int byte_size = ci_size * sizeof(struct rb_call_info) +</div><div class='add'>+                    ci_kw_size * sizeof(struct rb_call_info_with_kwarg);</div><div class='add'>+    unsigned int i;</div><div class='add'>+</div><div class='add'>+    dump_ci_entries = (struct rb_call_info *)ALLOCA_N(char, byte_size);</div><div class='add'>+    dump_ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;dump_ci_entries[ci_size];</div><div class='add'>+    memcpy(dump_ci_entries, ci_entries, byte_size);</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;ci_size; i++) { /* conver ID for each ci */</div><div class='add'>+	dump_ci_entries[i].mid = ibf_dump_id(dump, dump_ci_entries[i].mid);</div><div class='add'>+    }</div><div class='add'>+    for (i=0; i&lt;ci_kw_size; i++) {</div><div class='add'>+	const struct rb_call_info_kw_arg *kw_arg = dump_ci_kw_entries[i].kw_arg;</div><div class='add'>+	int j;</div><div class='add'>+	VALUE *keywords = ALLOCA_N(VALUE, kw_arg-&gt;keyword_len);</div><div class='add'>+	for (j=0; j&lt;kw_arg-&gt;keyword_len; j++) {</div><div class='add'>+	    keywords[j] = (VALUE)ibf_dump_object(dump, kw_arg-&gt;keywords[j]); /* kw_arg-&gt;keywords[n] is Symbol */</div><div class='add'>+	}</div><div class='add'>+	dump_ci_kw_entries[i].kw_arg = (struct rb_call_info_kw_arg *)(VALUE)ibf_dump_write(dump, &amp;kw_arg-&gt;keyword_len, sizeof(int));</div><div class='add'>+	ibf_dump_write(dump, keywords, sizeof(VALUE) * kw_arg-&gt;keyword_len);</div><div class='add'>+</div><div class='add'>+	dump_ci_kw_entries[i].ci.mid = ibf_dump_id(dump, dump_ci_kw_entries[i].ci.mid);</div><div class='add'>+    }</div><div class='add'>+    return (struct rb_call_info *)(VALUE)ibf_dump_write(dump, dump_ci_entries, byte_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_call_info *</div><div class='add'>+ibf_load_ci_entries(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+{</div><div class='add'>+    unsigned int i;</div><div class='add'>+    const unsigned int ci_size = body-&gt;ci_size;</div><div class='add'>+    const unsigned int ci_kw_size = body-&gt;ci_kw_size;</div><div class='add'>+    struct rb_call_info *ci_entries = ibf_load_alloc(load, IBF_OFFSET(body-&gt;ci_entries),</div><div class='add'>+						     sizeof(struct rb_call_info) * body-&gt;ci_size +</div><div class='add'>+						     sizeof(struct rb_call_info_with_kwarg) * body-&gt;ci_kw_size);</div><div class='add'>+    struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;ci_entries[ci_size];</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;ci_size; i++) {</div><div class='add'>+	ci_entries[i].mid = ibf_load_id(load, ci_entries[i].mid);</div><div class='add'>+    }</div><div class='add'>+    for (i=0; i&lt;ci_kw_size; i++) {</div><div class='add'>+	int j;</div><div class='add'>+	ibf_offset_t kw_arg_offset = IBF_OFFSET(ci_kw_entries[i].kw_arg);</div><div class='add'>+	const int keyword_len = *(int *)(load-&gt;buff + kw_arg_offset);</div><div class='add'>+	const VALUE *keywords = (VALUE *)(load-&gt;buff + kw_arg_offset + sizeof(int));</div><div class='add'>+	struct rb_call_info_kw_arg *kw_arg = ruby_xmalloc(sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (keyword_len - 1));</div><div class='add'>+	kw_arg-&gt;keyword_len = keyword_len;</div><div class='add'>+	for (j=0; j&lt;kw_arg-&gt;keyword_len; j++) {</div><div class='add'>+	    kw_arg-&gt;keywords[j] = (VALUE)ibf_load_object(load, keywords[j]);</div><div class='add'>+	}</div><div class='add'>+	ci_kw_entries[i].kw_arg = kw_arg;</div><div class='add'>+	ci_kw_entries[i].ci.mid = ibf_load_id(load, ci_kw_entries[i].ci.mid);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ci_entries;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    struct rb_iseq_constant_body dump_body;</div><div class='add'>+    dump_body = *iseq-&gt;body;</div><div class='add'>+</div><div class='add'>+    dump_body.location.pathobj = ibf_dump_object(dump, dump_body.location.pathobj); /* TODO: freeze */</div><div class='add'>+    dump_body.location.base_label = ibf_dump_object(dump, dump_body.location.base_label);</div><div class='add'>+    dump_body.location.label = ibf_dump_object(dump, dump_body.location.label);</div><div class='add'>+</div><div class='add'>+    dump_body.iseq_encoded =    ibf_dump_code(dump, iseq);</div><div class='add'>+    dump_body.param.opt_table = ibf_dump_param_opt_table(dump, iseq);</div><div class='add'>+    dump_body.param.keyword =   ibf_dump_param_keyword(dump, iseq);</div><div class='add'>+    dump_body.insns_info =      ibf_dump_insns_info(dump, iseq);</div><div class='add'>+    dump_body.local_table =     ibf_dump_local_table(dump, iseq);</div><div class='add'>+    dump_body.catch_table =     ibf_dump_catch_table(dump, iseq);</div><div class='add'>+    dump_body.parent_iseq =     ibf_dump_iseq(dump, iseq-&gt;body-&gt;parent_iseq);</div><div class='add'>+    dump_body.local_iseq =      ibf_dump_iseq(dump, iseq-&gt;body-&gt;local_iseq);</div><div class='add'>+    dump_body.is_entries =      NULL;</div><div class='add'>+    dump_body.ci_entries =      ibf_dump_ci_entries(dump, iseq);</div><div class='add'>+    dump_body.cc_entries =      NULL;</div><div class='add'>+    dump_body.mark_ary =        ISEQ_FLIP_CNT(iseq);</div><div class='add'>+</div><div class='add'>+    return ibf_dump_write(dump, &amp;dump_body, sizeof(dump_body));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_location_str(const struct ibf_load *load, VALUE str_index)</div><div class='add'>+{</div><div class='add'>+    VALUE str = ibf_load_object(load, str_index);</div><div class='add'>+    if (str != Qnil) {</div><div class='add'>+	str = rb_fstring(str);</div><div class='add'>+    }</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_load_iseq_each(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    struct rb_iseq_constant_body *load_body = iseq-&gt;body = ZALLOC(struct rb_iseq_constant_body);</div><div class='add'>+    const struct rb_iseq_constant_body *body = (struct rb_iseq_constant_body *)(load-&gt;buff + offset);</div><div class='add'>+</div><div class='add'>+    /* memcpy(load_body, load-&gt;buff + offset, sizeof(*load_body)); */</div><div class='add'>+    load_body-&gt;type = body-&gt;type;</div><div class='add'>+    load_body-&gt;stack_max = body-&gt;stack_max;</div><div class='add'>+    load_body-&gt;iseq_size = body-&gt;iseq_size;</div><div class='add'>+    load_body-&gt;param = body-&gt;param;</div><div class='add'>+    load_body-&gt;local_table_size = body-&gt;local_table_size;</div><div class='add'>+    load_body-&gt;is_size = body-&gt;is_size;</div><div class='add'>+    load_body-&gt;ci_size = body-&gt;ci_size;</div><div class='add'>+    load_body-&gt;ci_kw_size = body-&gt;ci_kw_size;</div><div class='add'>+    load_body-&gt;insns_info_size = body-&gt;insns_info_size;</div><div class='add'>+</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;mark_ary, iseq_mark_ary_create((int)body-&gt;mark_ary));</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+	VALUE realpath = Qnil, path = ibf_load_object(load, body-&gt;location.pathobj);</div><div class='add'>+	if (RB_TYPE_P(path, T_STRING)) {</div><div class='add'>+	    realpath = path = rb_fstring(path);</div><div class='add'>+	}</div><div class='add'>+	else if (RB_TYPE_P(path, T_ARRAY)) {</div><div class='add'>+	    VALUE pathobj = path;</div><div class='add'>+	    if (RARRAY_LEN(pathobj) != 2) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "path object size mismatch");</div><div class='add'>+	    }</div><div class='add'>+	    path = rb_fstring(RARRAY_AREF(pathobj, 0));</div><div class='add'>+	    realpath = RARRAY_AREF(pathobj, 1);</div><div class='add'>+	    if (!NIL_P(realpath)) {</div><div class='add'>+		if (!RB_TYPE_P(realpath, T_STRING)) {</div><div class='add'>+		    rb_raise(rb_eArgError, "unexpected realpath %"PRIxVALUE</div><div class='add'>+			     "(%x), path=%+"PRIsVALUE,</div><div class='add'>+			     realpath, TYPE(realpath), path);</div><div class='add'>+		}</div><div class='add'>+		realpath = rb_fstring(realpath);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "unexpected path object");</div><div class='add'>+	}</div><div class='add'>+	rb_iseq_pathobj_set(iseq, path, realpath);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.base_label,    ibf_load_location_str(load, body-&gt;location.base_label));</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.label,         ibf_load_location_str(load, body-&gt;location.label));</div><div class='add'>+    load_body-&gt;location.first_lineno = body-&gt;location.first_lineno;</div><div class='add'>+    load_body-&gt;location.code_range = body-&gt;location.code_range;</div><div class='add'>+</div><div class='add'>+    load_body-&gt;is_entries      = ZALLOC_N(union iseq_inline_storage_entry, body-&gt;is_size);</div><div class='add'>+    load_body-&gt;ci_entries      = ibf_load_ci_entries(load, body);</div><div class='add'>+    load_body-&gt;cc_entries      = ZALLOC_N(struct rb_call_cache, body-&gt;ci_size + body-&gt;ci_kw_size);</div><div class='add'>+    load_body-&gt;param.opt_table = ibf_load_param_opt_table(load, body);</div><div class='add'>+    load_body-&gt;param.keyword   = ibf_load_param_keyword(load, body);</div><div class='add'>+    load_body-&gt;insns_info      = ibf_load_insns_info(load, body);</div><div class='add'>+    load_body-&gt;local_table     = ibf_load_local_table(load, body);</div><div class='add'>+    load_body-&gt;catch_table     = ibf_load_catch_table(load, body);</div><div class='add'>+    load_body-&gt;parent_iseq     = ibf_load_iseq(load, body-&gt;parent_iseq);</div><div class='add'>+    load_body-&gt;local_iseq      = ibf_load_iseq(load, body-&gt;local_iseq);</div><div class='add'>+</div><div class='add'>+    load_body-&gt;iseq_encoded    = ibf_load_code(load, iseq, body);</div><div class='add'>+</div><div class='add'>+    rb_iseq_translate_threaded_code(iseq);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_iseq_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='add'>+{</div><div class='add'>+    const long size = RARRAY_LEN(dump-&gt;iseq_list);</div><div class='add'>+    ibf_offset_t *list = ALLOCA_N(ibf_offset_t, size);</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;size; i++) {</div><div class='add'>+	list[i] = (ibf_offset_t)NUM2LONG(rb_ary_entry(dump-&gt;iseq_list, i));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    header-&gt;iseq_list_offset = ibf_dump_write(dump, list, sizeof(ibf_offset_t) * size);</div><div class='add'>+    header-&gt;iseq_list_size = (unsigned int)size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct ibf_dump_id_list_i_arg {</div><div class='add'>+    struct ibf_dump *dump;</div><div class='add'>+    long *list;</div><div class='add'>+    int current_i;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ibf_dump_id_list_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump_id_list_i_arg *arg = (struct ibf_dump_id_list_i_arg *)ptr;</div><div class='add'>+    int i = (int)val;</div><div class='add'>+    ID id = (ID)key;</div><div class='add'>+    assert(arg-&gt;current_i == i);</div><div class='add'>+    arg-&gt;current_i++;</div><div class='add'>+</div><div class='add'>+    if (rb_id2name(id)) {</div><div class='add'>+	arg-&gt;list[i] = (long)ibf_dump_object(arg-&gt;dump, rb_id2str(id));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	arg-&gt;list[i] = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_id_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='add'>+{</div><div class='add'>+    const long size = dump-&gt;id_table-&gt;num_entries;</div><div class='add'>+    struct ibf_dump_id_list_i_arg arg;</div><div class='add'>+    arg.list = ALLOCA_N(long, size);</div><div class='add'>+    arg.dump = dump;</div><div class='add'>+    arg.current_i = 0;</div><div class='add'>+</div><div class='add'>+    st_foreach(dump-&gt;id_table, ibf_dump_id_list_i, (st_data_t)&amp;arg);</div><div class='add'>+</div><div class='add'>+    header-&gt;id_list_offset = ibf_dump_write(dump, arg.list, sizeof(long) * size);</div><div class='add'>+    header-&gt;id_list_size = (unsigned int)size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define IBF_OBJECT_INTERNAL FL_PROMOTED0</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Binary format</div><div class='add'>+ * - ibf_object_header</div><div class='add'>+ * - ibf_object_xxx (xxx is type)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+struct ibf_object_header {</div><div class='add'>+    unsigned int type: 5;</div><div class='add'>+    unsigned int special_const: 1;</div><div class='add'>+    unsigned int frozen: 1;</div><div class='add'>+    unsigned int internal: 1;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+enum ibf_object_class_index {</div><div class='add'>+    IBF_OBJECT_CLASS_OBJECT,</div><div class='add'>+    IBF_OBJECT_CLASS_ARRAY,</div><div class='add'>+    IBF_OBJECT_CLASS_STANDARD_ERROR</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_string {</div><div class='add'>+    long encindex;</div><div class='add'>+    long len;</div><div class='add'>+    char ptr[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_regexp {</div><div class='add'>+    long srcstr;</div><div class='add'>+    char option;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_array {</div><div class='add'>+    long len;</div><div class='add'>+    long ary[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_hash {</div><div class='add'>+    long len;</div><div class='add'>+    long keyval[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_struct_range {</div><div class='add'>+    long class_index;</div><div class='add'>+    long len;</div><div class='add'>+    long beg;</div><div class='add'>+    long end;</div><div class='add'>+    int excl;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_bignum {</div><div class='add'>+    ssize_t slen;</div><div class='add'>+    BDIGIT digits[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+enum ibf_object_data_type {</div><div class='add'>+    IBF_OBJECT_DATA_ENCODING</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_complex_rational {</div><div class='add'>+    long a, b;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_object_symbol {</div><div class='add'>+    long str;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define IBF_OBJHEADER(offset)     (struct ibf_object_header *)(load-&gt;buff + (offset))</div><div class='add'>+#define IBF_OBJBODY(type, offset) (type *)(load-&gt;buff + sizeof(struct ibf_object_header) + (offset))</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_unsupported(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_obj_info_dump(obj);</div><div class='add'>+    rb_bug("ibf_dump_object_unsupported: unsupported");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_unsupported(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    rb_bug("unsupported");</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_class(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    enum ibf_object_class_index cindex;</div><div class='add'>+    if (obj == rb_cObject) {</div><div class='add'>+	cindex = IBF_OBJECT_CLASS_OBJECT;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == rb_cArray) {</div><div class='add'>+	cindex = IBF_OBJECT_CLASS_ARRAY;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == rb_eStandardError) {</div><div class='add'>+	cindex = IBF_OBJECT_CLASS_STANDARD_ERROR;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_obj_info_dump(obj);</div><div class='add'>+	rb_p(obj);</div><div class='add'>+	rb_bug("unsupported class");</div><div class='add'>+    }</div><div class='add'>+    ibf_dump_write(dump, &amp;cindex, sizeof(cindex));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_class(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    enum ibf_object_class_index *cindexp = IBF_OBJBODY(enum ibf_object_class_index, offset);</div><div class='add'>+    enum ibf_object_class_index cindex = *cindexp;</div><div class='add'>+</div><div class='add'>+    switch (cindex) {</div><div class='add'>+      case IBF_OBJECT_CLASS_OBJECT:</div><div class='add'>+	return rb_cObject;</div><div class='add'>+      case IBF_OBJECT_CLASS_ARRAY:</div><div class='add'>+	return rb_cArray;</div><div class='add'>+      case IBF_OBJECT_CLASS_STANDARD_ERROR:</div><div class='add'>+	return rb_eStandardError;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_bug("ibf_load_object_class: unknown class (%d)", (int)cindex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_float(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    double dbl = RFLOAT_VALUE(obj);</div><div class='add'>+    ibf_dump_write(dump, &amp;dbl, sizeof(dbl));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_float(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    double *dblp = IBF_OBJBODY(double, offset);</div><div class='add'>+    return DBL2NUM(*dblp);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_string(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    long encindex = (long)rb_enc_get_index(obj);</div><div class='add'>+    long len = RSTRING_LEN(obj);</div><div class='add'>+    const char *ptr = RSTRING_PTR(obj);</div><div class='add'>+</div><div class='add'>+    if (encindex &gt; RUBY_ENCINDEX_BUILTIN_MAX) {</div><div class='add'>+	rb_encoding *enc = rb_enc_from_index((int)encindex);</div><div class='add'>+	const char *enc_name = rb_enc_name(enc);</div><div class='add'>+	encindex = RUBY_ENCINDEX_BUILTIN_MAX + ibf_dump_object(dump, rb_str_new2(enc_name));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    IBF_WV(encindex);</div><div class='add'>+    IBF_WV(len);</div><div class='add'>+    IBF_WP(ptr, char, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_string(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_string *string = IBF_OBJBODY(struct ibf_object_string, offset);</div><div class='add'>+    VALUE str = rb_str_new(string-&gt;ptr, string-&gt;len);</div><div class='add'>+    int encindex = (int)string-&gt;encindex;</div><div class='add'>+</div><div class='add'>+    if (encindex &gt; RUBY_ENCINDEX_BUILTIN_MAX) {</div><div class='add'>+	VALUE enc_name_str = ibf_load_object(load, encindex - RUBY_ENCINDEX_BUILTIN_MAX);</div><div class='add'>+	encindex = rb_enc_find_index(RSTRING_PTR(enc_name_str));</div><div class='add'>+    }</div><div class='add'>+    rb_enc_associate_index(str, encindex);</div><div class='add'>+</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(str);</div><div class='add'>+    if (header-&gt;frozen)   str = rb_fstring(str);</div><div class='add'>+</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_regexp(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct ibf_object_regexp regexp;</div><div class='add'>+    VALUE srcstr = RREGEXP_SRC(obj);</div><div class='add'>+    regexp.option = (char)rb_reg_options(obj);</div><div class='add'>+    regexp.srcstr = (long)ibf_dump_object(dump, srcstr);</div><div class='add'>+    IBF_WV(regexp);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_regexp(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_regexp *regexp = IBF_OBJBODY(struct ibf_object_regexp, offset);</div><div class='add'>+    VALUE srcstr = ibf_load_object(load, regexp-&gt;srcstr);</div><div class='add'>+    VALUE reg = rb_reg_compile(srcstr, (int)regexp-&gt;option, NULL, 0);</div><div class='add'>+</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(reg);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(reg);</div><div class='add'>+</div><div class='add'>+    return reg;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_array(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    long i, len = (int)RARRAY_LEN(obj);</div><div class='add'>+    IBF_WV(len);</div><div class='add'>+    for (i=0; i&lt;len; i++) {</div><div class='add'>+	long index = (long)ibf_dump_object(dump, RARRAY_AREF(obj, i));</div><div class='add'>+	IBF_WV(index);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_array(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_array *array = IBF_OBJBODY(struct ibf_object_array, offset);</div><div class='add'>+    VALUE ary = rb_ary_new_capa(array-&gt;len);</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;array-&gt;len; i++) {</div><div class='add'>+	rb_ary_push(ary, ibf_load_object(load, array-&gt;ary[i]));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(ary);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(ary);</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ibf_dump_object_hash_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='add'>+    long key_index = (long)ibf_dump_object(dump, (VALUE)key);</div><div class='add'>+    long val_index = (long)ibf_dump_object(dump, (VALUE)val);</div><div class='add'>+    IBF_WV(key_index);</div><div class='add'>+    IBF_WV(val_index);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_hash(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    long len = RHASH_SIZE(obj);</div><div class='add'>+    IBF_WV(len);</div><div class='add'>+    if (len &gt; 0) st_foreach(RHASH(obj)-&gt;ntbl, ibf_dump_object_hash_i, (st_data_t)dump);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_hash(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_hash *hash = IBF_OBJBODY(struct ibf_object_hash, offset);</div><div class='add'>+    VALUE obj = rb_hash_new_with_size(hash-&gt;len);</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;hash-&gt;len; i++) {</div><div class='add'>+	VALUE key = ibf_load_object(load, hash-&gt;keyval[i*2  ]);</div><div class='add'>+	VALUE val = ibf_load_object(load, hash-&gt;keyval[i*2+1]);</div><div class='add'>+	rb_hash_aset(obj, key, val);</div><div class='add'>+    }</div><div class='add'>+    rb_hash_rehash(obj);</div><div class='add'>+</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(obj);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(obj);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_struct(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (rb_obj_is_kind_of(obj, rb_cRange)) {</div><div class='add'>+	struct ibf_object_struct_range range;</div><div class='add'>+	VALUE beg, end;</div><div class='add'>+	range.len = 3;</div><div class='add'>+	range.class_index = 0;</div><div class='add'>+</div><div class='add'>+	rb_range_values(obj, &amp;beg, &amp;end, &amp;range.excl);</div><div class='add'>+	range.beg = (long)ibf_dump_object(dump, beg);</div><div class='add'>+	range.end = (long)ibf_dump_object(dump, end);</div><div class='add'>+</div><div class='add'>+	IBF_WV(range);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_bug("ibf_dump_object_struct: unsupported class");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_struct(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_struct_range *range = IBF_OBJBODY(struct ibf_object_struct_range, offset);</div><div class='add'>+    VALUE beg = ibf_load_object(load, range-&gt;beg);</div><div class='add'>+    VALUE end = ibf_load_object(load, range-&gt;end);</div><div class='add'>+    VALUE obj = rb_range_new(beg, end, range-&gt;excl);</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(obj);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_bignum(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    ssize_t len = BIGNUM_LEN(obj);</div><div class='add'>+    ssize_t slen = BIGNUM_SIGN(obj) &gt; 0 ? len : len * -1;</div><div class='add'>+    BDIGIT *d = BIGNUM_DIGITS(obj);</div><div class='add'>+</div><div class='add'>+    IBF_WV(slen);</div><div class='add'>+    IBF_WP(d, BDIGIT, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_bignum(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_bignum *bignum = IBF_OBJBODY(struct ibf_object_bignum, offset);</div><div class='add'>+    int sign = bignum-&gt;slen &gt; 0;</div><div class='add'>+    ssize_t len = sign &gt; 0 ? bignum-&gt;slen : -1 * bignum-&gt;slen;</div><div class='add'>+    VALUE obj = rb_integer_unpack(bignum-&gt;digits, len * 2, 2, 0,</div><div class='add'>+				  INTEGER_PACK_LITTLE_ENDIAN | (sign == 0 ? INTEGER_PACK_NEGATIVE : 0));</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(obj);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_data(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (rb_data_is_encoding(obj)) {</div><div class='add'>+	rb_encoding *enc = rb_to_encoding(obj);</div><div class='add'>+	const char *name = rb_enc_name(enc);</div><div class='add'>+	enum ibf_object_data_type type = IBF_OBJECT_DATA_ENCODING;</div><div class='add'>+	long len = strlen(name) + 1;</div><div class='add'>+	IBF_WV(type);</div><div class='add'>+	IBF_WV(len);</div><div class='add'>+	IBF_WP(name, char, strlen(name) + 1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ibf_dump_object_unsupported(dump, obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_data(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const enum ibf_object_data_type *typep = IBF_OBJBODY(enum ibf_object_data_type, offset);</div><div class='add'>+    /* const long *lenp = IBF_OBJBODY(long, offset + sizeof(enum ibf_object_data_type)); */</div><div class='add'>+    const char *data = IBF_OBJBODY(char, offset + sizeof(enum ibf_object_data_type) + sizeof(long));</div><div class='add'>+</div><div class='add'>+    switch (*typep) {</div><div class='add'>+      case IBF_OBJECT_DATA_ENCODING:</div><div class='add'>+	{</div><div class='add'>+	    VALUE encobj = rb_enc_from_encoding(rb_enc_find(data));</div><div class='add'>+	    return encobj;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ibf_load_object_unsupported(load, header, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_complex_rational(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    long real = (long)ibf_dump_object(dump, RCOMPLEX(obj)-&gt;real);</div><div class='add'>+    long imag = (long)ibf_dump_object(dump, RCOMPLEX(obj)-&gt;imag);</div><div class='add'>+</div><div class='add'>+    IBF_WV(real);</div><div class='add'>+    IBF_WV(imag);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_complex_rational(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    const struct ibf_object_complex_rational *nums = IBF_OBJBODY(struct ibf_object_complex_rational, offset);</div><div class='add'>+    VALUE a = ibf_load_object(load, nums-&gt;a);</div><div class='add'>+    VALUE b = ibf_load_object(load, nums-&gt;b);</div><div class='add'>+    VALUE obj = header-&gt;type == T_COMPLEX ?</div><div class='add'>+      rb_complex_new(a, b) : rb_rational_new(a, b);</div><div class='add'>+</div><div class='add'>+    if (header-&gt;internal) rb_obj_hide(obj);</div><div class='add'>+    if (header-&gt;frozen)   rb_obj_freeze(obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_symbol(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_sym2str(obj);</div><div class='add'>+    long str_index = (long)ibf_dump_object(dump, str);</div><div class='add'>+    IBF_WV(str_index);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object_symbol(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='add'>+{</div><div class='add'>+    /* const struct ibf_object_header *header = IBF_OBJHEADER(offset); */</div><div class='add'>+    const struct ibf_object_symbol *symbol = IBF_OBJBODY(struct ibf_object_symbol, offset);</div><div class='add'>+    VALUE str = ibf_load_object(load, symbol-&gt;str);</div><div class='add'>+    ID id = rb_intern_str(str);</div><div class='add'>+    return ID2SYM(id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef void (*ibf_dump_object_function)(struct ibf_dump *dump, VALUE obj);</div><div class='add'>+static ibf_dump_object_function dump_object_functions[RUBY_T_MASK+1] = {</div><div class='add'>+    ibf_dump_object_unsupported, /* T_NONE */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_OBJECT */</div><div class='add'>+    ibf_dump_object_class,       /* T_CLASS */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_MODULE */</div><div class='add'>+    ibf_dump_object_float,       /* T_FLOAT */</div><div class='add'>+    ibf_dump_object_string,      /* T_STRING */</div><div class='add'>+    ibf_dump_object_regexp,      /* T_REGEXP */</div><div class='add'>+    ibf_dump_object_array,       /* T_ARRAY */</div><div class='add'>+    ibf_dump_object_hash,        /* T_HASH */</div><div class='add'>+    ibf_dump_object_struct,      /* T_STRUCT */</div><div class='add'>+    ibf_dump_object_bignum,      /* T_BIGNUM */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_FILE */</div><div class='add'>+    ibf_dump_object_data,        /* T_DATA */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_MATCH */</div><div class='add'>+    ibf_dump_object_complex_rational, /* T_COMPLEX */</div><div class='add'>+    ibf_dump_object_complex_rational, /* T_RATIONAL */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x10 */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x11 T_NIL */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x12 T_TRUE */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x13 T_FALSE */</div><div class='add'>+    ibf_dump_object_symbol,      /* 0x14 T_SYMBOL */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_FIXNUM */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_UNDEF */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x17 */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x18 */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x19 */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_IMEMO 0x1a */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_NODE 0x1b */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_ICLASS 0x1c */</div><div class='add'>+    ibf_dump_object_unsupported, /* T_ZOMBIE 0x1d */</div><div class='add'>+    ibf_dump_object_unsupported, /* 0x1e */</div><div class='add'>+    ibf_dump_object_unsupported  /* 0x1f */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='add'>+lbf_dump_object_object(struct ibf_dump *dump, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct ibf_object_header obj_header;</div><div class='add'>+    ibf_offset_t current_offset = ibf_dump_pos(dump);</div><div class='add'>+    obj_header.type = TYPE(obj);</div><div class='add'>+</div><div class='add'>+    if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+	if (RB_TYPE_P(obj, T_SYMBOL) ||</div><div class='add'>+	    RB_TYPE_P(obj, T_FLOAT)) {</div><div class='add'>+	    obj_header.internal = FALSE;</div><div class='add'>+	    goto dump_object;</div><div class='add'>+	}</div><div class='add'>+	obj_header.special_const = TRUE;</div><div class='add'>+	obj_header.frozen = TRUE;</div><div class='add'>+	obj_header.internal = TRUE;</div><div class='add'>+	IBF_WV(obj_header);</div><div class='add'>+	IBF_WV(obj);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	obj_header.internal = (RBASIC_CLASS(obj) == 0) ? TRUE : FALSE;</div><div class='add'>+      dump_object:</div><div class='add'>+	obj_header.special_const = FALSE;</div><div class='add'>+	obj_header.frozen = FL_TEST(obj, FL_FREEZE) ? TRUE : FALSE;</div><div class='add'>+	IBF_WV(obj_header);</div><div class='add'>+	(*dump_object_functions[obj_header.type])(dump, obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return current_offset;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef VALUE (*ibf_load_object_function)(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t);</div><div class='add'>+static ibf_load_object_function load_object_functions[RUBY_T_MASK+1] = {</div><div class='add'>+    ibf_load_object_unsupported, /* T_NONE */</div><div class='add'>+    ibf_load_object_unsupported, /* T_OBJECT */</div><div class='add'>+    ibf_load_object_class,       /* T_CLASS */</div><div class='add'>+    ibf_load_object_unsupported, /* T_MODULE */</div><div class='add'>+    ibf_load_object_float,       /* T_FLOAT */</div><div class='add'>+    ibf_load_object_string,      /* T_STRING */</div><div class='add'>+    ibf_load_object_regexp,      /* T_REGEXP */</div><div class='add'>+    ibf_load_object_array,       /* T_ARRAY */</div><div class='add'>+    ibf_load_object_hash,        /* T_HASH */</div><div class='add'>+    ibf_load_object_struct,      /* T_STRUCT */</div><div class='add'>+    ibf_load_object_bignum,      /* T_BIGNUM */</div><div class='add'>+    ibf_load_object_unsupported, /* T_FILE */</div><div class='add'>+    ibf_load_object_data,        /* T_DATA */</div><div class='add'>+    ibf_load_object_unsupported, /* T_MATCH */</div><div class='add'>+    ibf_load_object_complex_rational, /* T_COMPLEX */</div><div class='add'>+    ibf_load_object_complex_rational, /* T_RATIONAL */</div><div class='add'>+    ibf_load_object_unsupported, /* 0x10 */</div><div class='add'>+    ibf_load_object_unsupported, /* T_NIL */</div><div class='add'>+    ibf_load_object_unsupported, /* T_TRUE */</div><div class='add'>+    ibf_load_object_unsupported, /* T_FALSE */</div><div class='add'>+    ibf_load_object_symbol,</div><div class='add'>+    ibf_load_object_unsupported, /* T_FIXNUM */</div><div class='add'>+    ibf_load_object_unsupported, /* T_UNDEF */</div><div class='add'>+    ibf_load_object_unsupported, /* 0x17 */</div><div class='add'>+    ibf_load_object_unsupported, /* 0x18 */</div><div class='add'>+    ibf_load_object_unsupported, /* 0x19 */</div><div class='add'>+    ibf_load_object_unsupported, /* T_IMEMO 0x1a */</div><div class='add'>+    ibf_load_object_unsupported, /* T_NODE 0x1b */</div><div class='add'>+    ibf_load_object_unsupported, /* T_ICLASS 0x1c */</div><div class='add'>+    ibf_load_object_unsupported, /* T_ZOMBIE 0x1d */</div><div class='add'>+    ibf_load_object_unsupported, /* 0x1e */</div><div class='add'>+    ibf_load_object_unsupported  /* 0x1f */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ibf_load_object(const struct ibf_load *load, VALUE object_index)</div><div class='add'>+{</div><div class='add'>+    if (object_index == 0) {</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (object_index &gt;= load-&gt;header-&gt;object_list_size) {</div><div class='add'>+	rb_raise(rb_eIndexError, "object index out of range: %"PRIdVALUE, object_index);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE obj = rb_ary_entry(load-&gt;obj_list, (long)object_index);</div><div class='add'>+	if (obj == Qnil) { /* TODO: avoid multiple Qnil load */</div><div class='add'>+	    ibf_offset_t *offsets = (ibf_offset_t *)(load-&gt;header-&gt;object_list_offset + load-&gt;buff);</div><div class='add'>+	    ibf_offset_t offset = offsets[object_index];</div><div class='add'>+	    const struct ibf_object_header *header = IBF_OBJHEADER(offset);</div><div class='add'>+</div><div class='add'>+	    if (header-&gt;special_const) {</div><div class='add'>+		VALUE *vp = IBF_OBJBODY(VALUE, offset);</div><div class='add'>+		obj = *vp;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		obj = (*load_object_functions[header-&gt;type])(load, header, offset);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    rb_ary_store(load-&gt;obj_list, (long)object_index, obj);</div><div class='add'>+	}</div><div class='add'>+	iseq_add_mark_object(load-&gt;iseq, obj);</div><div class='add'>+	return obj;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='add'>+{</div><div class='add'>+    VALUE list = rb_ary_tmp_new(RARRAY_LEN(dump-&gt;obj_list));</div><div class='add'>+    int i, size;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(dump-&gt;obj_list); i++) {</div><div class='add'>+	VALUE obj = RARRAY_AREF(dump-&gt;obj_list, i);</div><div class='add'>+	ibf_offset_t offset = lbf_dump_object_object(dump, obj);</div><div class='add'>+	rb_ary_push(list, UINT2NUM(offset));</div><div class='add'>+    }</div><div class='add'>+    size = i;</div><div class='add'>+    header-&gt;object_list_offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;size; i++) {</div><div class='add'>+	ibf_offset_t offset = NUM2UINT(RARRAY_AREF(list, i));</div><div class='add'>+	IBF_WV(offset);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    header-&gt;object_list_size = size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='add'>+    rb_gc_mark(dump-&gt;str);</div><div class='add'>+    rb_gc_mark(dump-&gt;iseq_list);</div><div class='add'>+    rb_gc_mark(dump-&gt;obj_list);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='add'>+    if (dump-&gt;iseq_table) {</div><div class='add'>+	st_free_table(dump-&gt;iseq_table);</div><div class='add'>+	dump-&gt;iseq_table = 0;</div><div class='add'>+    }</div><div class='add'>+    if (dump-&gt;id_table) {</div><div class='add'>+	st_free_table(dump-&gt;id_table);</div><div class='add'>+	dump-&gt;id_table = 0;</div><div class='add'>+    }</div><div class='add'>+    ruby_xfree(dump);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+ibf_dump_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='add'>+    size_t size = sizeof(*dump);</div><div class='add'>+    if (dump-&gt;iseq_table) size += st_memsize(dump-&gt;iseq_table);</div><div class='add'>+    if (dump-&gt;id_table) size += st_memsize(dump-&gt;id_table);</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t ibf_dump_type = {</div><div class='add'>+    "ibf_dump",</div><div class='add'>+    {ibf_dump_mark, ibf_dump_free, ibf_dump_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_dump_setup(struct ibf_dump *dump, VALUE dumper_obj)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;str, rb_str_new(0, 0));</div><div class='add'>+    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;iseq_list, rb_ary_tmp_new(0));</div><div class='add'>+    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;obj_list, rb_ary_tmp_new(1));</div><div class='add'>+    rb_ary_push(dump-&gt;obj_list, Qnil); /* 0th is nil */</div><div class='add'>+    dump-&gt;iseq_table = st_init_numtable(); /* need free */</div><div class='add'>+    dump-&gt;id_table = st_init_numtable();   /* need free */</div><div class='add'>+</div><div class='add'>+    ibf_table_index(dump-&gt;id_table, 0); /* id_index:0 is 0 */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt)</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump;</div><div class='add'>+    struct ibf_header header = {{0}};</div><div class='add'>+    VALUE dump_obj;</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;body-&gt;parent_iseq != NULL ||</div><div class='add'>+	iseq-&gt;body-&gt;local_iseq != iseq) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "should be top of iseq");</div><div class='add'>+    }</div><div class='add'>+    if (RTEST(ISEQ_COVERAGE(iseq))) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "should not compile with coverage");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dump_obj = TypedData_Make_Struct(0, struct ibf_dump, &amp;ibf_dump_type, dump);</div><div class='add'>+    ibf_dump_setup(dump, dump_obj);</div><div class='add'>+</div><div class='add'>+    ibf_dump_write(dump, &amp;header, sizeof(header));</div><div class='add'>+    ibf_dump_write(dump, RUBY_PLATFORM, strlen(RUBY_PLATFORM) + 1);</div><div class='add'>+    ibf_dump_iseq(dump, iseq);</div><div class='add'>+</div><div class='add'>+    header.magic[0] = 'Y'; /* YARB */</div><div class='add'>+    header.magic[1] = 'A';</div><div class='add'>+    header.magic[2] = 'R';</div><div class='add'>+    header.magic[3] = 'B';</div><div class='add'>+    header.major_version = ISEQ_MAJOR_VERSION;</div><div class='add'>+    header.minor_version = ISEQ_MINOR_VERSION;</div><div class='add'>+    ibf_dump_iseq_list(dump, &amp;header);</div><div class='add'>+    ibf_dump_id_list(dump, &amp;header);</div><div class='add'>+    ibf_dump_object_list(dump, &amp;header);</div><div class='add'>+    header.size = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    if (RTEST(opt)) {</div><div class='add'>+	VALUE opt_str = opt;</div><div class='add'>+	const char *ptr = StringValuePtr(opt_str);</div><div class='add'>+	header.extra_size = RSTRING_LENINT(opt_str);</div><div class='add'>+	ibf_dump_write(dump, ptr, header.extra_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	header.extra_size = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ibf_dump_overwrite(dump, &amp;header, sizeof(header), 0);</div><div class='add'>+</div><div class='add'>+    str = dump-&gt;str;</div><div class='add'>+    ibf_dump_free(dump);</div><div class='add'>+    DATA_PTR(dump_obj) = NULL;</div><div class='add'>+    RB_GC_GUARD(dump_obj);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const ibf_offset_t *</div><div class='add'>+ibf_iseq_list(const struct ibf_load *load)</div><div class='add'>+{</div><div class='add'>+    return (ibf_offset_t *)(load-&gt;buff + load-&gt;header-&gt;iseq_list_offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_ibf_load_iseq_complete(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load = RTYPEDDATA_DATA(iseq-&gt;aux.loader.obj);</div><div class='add'>+    rb_iseq_t *prev_src_iseq = load-&gt;iseq;</div><div class='add'>+    load-&gt;iseq = iseq;</div><div class='add'>+    ibf_load_iseq_each(load, iseq, ibf_iseq_list(load)[iseq-&gt;aux.loader.index]);</div><div class='add'>+    ISEQ_COMPILE_DATA_CLEAR(iseq);</div><div class='add'>+    FL_UNSET(iseq, ISEQ_NOT_LOADED_YET);</div><div class='add'>+    load-&gt;iseq = prev_src_iseq;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if USE_LAZY_LOAD</div><div class='add'>+const rb_iseq_t *</div><div class='add'>+rb_iseq_complete(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    rb_ibf_load_iseq_complete((rb_iseq_t *)iseq);</div><div class='add'>+    return iseq;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static rb_iseq_t *</div><div class='add'>+ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq)</div><div class='add'>+{</div><div class='add'>+    int iseq_index = (int)(VALUE)index_iseq;</div><div class='add'>+</div><div class='add'>+    if (iseq_index == -1) {</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE iseqv = rb_ary_entry(load-&gt;iseq_list, iseq_index);</div><div class='add'>+</div><div class='add'>+	if (iseqv != Qnil) {</div><div class='add'>+	    return (rb_iseq_t *)iseqv;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_iseq_t *iseq = iseq_imemo_alloc();</div><div class='add'>+	    FL_SET(iseq, ISEQ_NOT_LOADED_YET);</div><div class='add'>+	    iseq-&gt;aux.loader.obj = load-&gt;loader_obj;</div><div class='add'>+	    iseq-&gt;aux.loader.index = iseq_index;</div><div class='add'>+	    rb_ary_store(load-&gt;iseq_list, iseq_index, (VALUE)iseq);</div><div class='add'>+</div><div class='add'>+#if !USE_LAZY_LOAD</div><div class='add'>+	    rb_ibf_load_iseq_complete(iseq);</div><div class='add'>+#endif /* !USE_LAZY_LOAD */</div><div class='add'>+</div><div class='add'>+	    if (load-&gt;iseq) {</div><div class='add'>+		iseq_add_mark_object(load-&gt;iseq, (VALUE)iseq);</div><div class='add'>+	    }</div><div class='add'>+	    return iseq;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_load_setup(struct ibf_load *load, VALUE loader_obj, VALUE str)</div><div class='add'>+{</div><div class='add'>+    rb_check_safe_obj(str);</div><div class='add'>+</div><div class='add'>+    if (RSTRING_LENINT(str) &lt; (int)sizeof(struct ibf_header)) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='add'>+    }</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;str, str);</div><div class='add'>+    load-&gt;loader_obj = loader_obj;</div><div class='add'>+    load-&gt;buff = StringValuePtr(str);</div><div class='add'>+    load-&gt;header = (struct ibf_header *)load-&gt;buff;</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;iseq_list, rb_ary_tmp_new(0));</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;obj_list, rb_ary_tmp_new(0));</div><div class='add'>+    load-&gt;id_list = ZALLOC_N(ID, load-&gt;header-&gt;id_list_size);</div><div class='add'>+    load-&gt;iseq = NULL;</div><div class='add'>+</div><div class='add'>+    if (RSTRING_LENINT(str) &lt; (int)load-&gt;header-&gt;size) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='add'>+    }</div><div class='add'>+    if (strncmp(load-&gt;header-&gt;magic, "YARB", 4) != 0) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "unknown binary format");</div><div class='add'>+    }</div><div class='add'>+    if (load-&gt;header-&gt;major_version != ISEQ_MAJOR_VERSION ||</div><div class='add'>+	load-&gt;header-&gt;minor_version != ISEQ_MINOR_VERSION) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "unmatched version file (%u.%u for %u.%u)",</div><div class='add'>+		 load-&gt;header-&gt;major_version, load-&gt;header-&gt;minor_version, ISEQ_MAJOR_VERSION, ISEQ_MINOR_VERSION);</div><div class='add'>+    }</div><div class='add'>+    if (strcmp(load-&gt;buff + sizeof(struct ibf_header), RUBY_PLATFORM) != 0) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "unmatched platform");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_loader_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='add'>+    rb_gc_mark(load-&gt;str);</div><div class='add'>+    rb_gc_mark(load-&gt;iseq_list);</div><div class='add'>+    rb_gc_mark(load-&gt;obj_list);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_loader_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='add'>+    ruby_xfree(load-&gt;id_list);</div><div class='add'>+    ruby_xfree(load);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+ibf_loader_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='add'>+    return sizeof(struct ibf_load) + load-&gt;header-&gt;id_list_size * sizeof(ID);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t ibf_load_type = {</div><div class='add'>+    "ibf_loader",</div><div class='add'>+    {ibf_loader_mark, ibf_loader_free, ibf_loader_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+const rb_iseq_t *</div><div class='add'>+rb_iseq_ibf_load(VALUE str)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load;</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+    VALUE loader_obj = TypedData_Make_Struct(0, struct ibf_load, &amp;ibf_load_type, load);</div><div class='add'>+</div><div class='add'>+    ibf_load_setup(load, loader_obj, str);</div><div class='add'>+    iseq = ibf_load_iseq(load, 0);</div><div class='add'>+</div><div class='add'>+    rb_iseq_init_trace(iseq);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(loader_obj);</div><div class='add'>+    return iseq;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_ibf_load_extra_data(VALUE str)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load;</div><div class='add'>+    VALUE loader_obj = TypedData_Make_Struct(0, struct ibf_load, &amp;ibf_load_type, load);</div><div class='add'>+    VALUE extra_str;</div><div class='add'>+</div><div class='add'>+    ibf_load_setup(load, loader_obj, str);</div><div class='add'>+    extra_str = rb_str_new(load-&gt;buff + load-&gt;header-&gt;size, load-&gt;header-&gt;extra_size);</div><div class='add'>+    RB_GC_GUARD(loader_obj);</div><div class='add'>+    return extra_str;</div><div class='add'>+}</div><div class='head'>diff --git a/complex.c b/complex.c<br/>new file mode 100644<br/>index 0000000000..e06faa813b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/complex.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>complex.c</a></div><div class='hunk'>@@ -0,0 +1,2352 @@</div><div class='add'>+/*</div><div class='add'>+  complex.c: Coded by Tadayoshi Funaba 2008-2012</div><div class='add'>+</div><div class='add'>+  This implementation is based on Keiju Ishitsuka's Complex library</div><div class='add'>+  which is written in ruby.</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+#include "ruby/config.h"</div><div class='add'>+#if defined _MSC_VER</div><div class='add'>+/* Microsoft Visual C does not define M_PI and others by default */</div><div class='add'>+# define _USE_MATH_DEFINES 1</div><div class='add'>+#endif</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+#include "internal.h"</div><div class='add'>+</div><div class='add'>+#define NDEBUG</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+</div><div class='add'>+#define ZERO INT2FIX(0)</div><div class='add'>+#define ONE INT2FIX(1)</div><div class='add'>+#define TWO INT2FIX(2)</div><div class='add'>+#define RFLOAT_0 DBL2NUM(0)</div><div class='add'>+#if defined(HAVE_SIGNBIT) &amp;&amp; defined(__GNUC__) &amp;&amp; defined(__sun) &amp;&amp; \</div><div class='add'>+    !defined(signbit)</div><div class='add'>+extern int signbit(double);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+VALUE rb_cComplex;</div><div class='add'>+</div><div class='add'>+static VALUE nucomp_abs(VALUE self);</div><div class='add'>+static VALUE nucomp_arg(VALUE self);</div><div class='add'>+</div><div class='add'>+static ID id_abs, id_arg,</div><div class='add'>+    id_denominator, id_expt, id_fdiv,</div><div class='add'>+    id_negate, id_numerator, id_quo,</div><div class='add'>+    id_real_p, id_to_f, id_to_i, id_to_r,</div><div class='add'>+    id_i_real, id_i_imag,</div><div class='add'>+    id_finite_p, id_infinite_p, id_rationalize,</div><div class='add'>+    id_PI;</div><div class='add'>+</div><div class='add'>+#define f_boolcast(x) ((x) ? Qtrue : Qfalse)</div><div class='add'>+</div><div class='add'>+#define binop(n,op) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+f_##n(VALUE x, VALUE y)\</div><div class='add'>+{\</div><div class='add'>+    return rb_funcall(x, (op), 1, y);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define fun1(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+f_##n(VALUE x)\</div><div class='add'>+{\</div><div class='add'>+    return rb_funcall(x, id_##n, 0);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define fun2(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+f_##n(VALUE x, VALUE y)\</div><div class='add'>+{\</div><div class='add'>+    return rb_funcall(x, id_##n, 1, y);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define math1(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+m_##n(VALUE x)\</div><div class='add'>+{\</div><div class='add'>+    return rb_funcall(rb_mMath, id_##n, 1, x);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define math2(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+m_##n(VALUE x, VALUE y)\</div><div class='add'>+{\</div><div class='add'>+    return rb_funcall(rb_mMath, id_##n, 2, x, y);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define PRESERVE_SIGNEDZERO</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_add(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+#ifndef PRESERVE_SIGNEDZERO</div><div class='add'>+    if (FIXNUM_P(y) &amp;&amp; FIXNUM_ZERO_P(y))</div><div class='add'>+	return x;</div><div class='add'>+    else if (FIXNUM_P(x) &amp;&amp; FIXNUM_ZERO_P(x))</div><div class='add'>+	return y;</div><div class='add'>+#endif</div><div class='add'>+    return rb_funcall(x, '+', 1, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_div(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(y) &amp;&amp; FIX2LONG(y) == 1)</div><div class='add'>+	return x;</div><div class='add'>+    return rb_funcall(x, '/', 1, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_gt_p(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        if (FIXNUM_P(x) &amp;&amp; FIXNUM_P(y))</div><div class='add'>+            return (SIGNED_VALUE)x &gt; (SIGNED_VALUE)y;</div><div class='add'>+        return RTEST(rb_int_gt(x, y));</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x))</div><div class='add'>+        return RTEST(rb_float_gt(x, y));</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        int const cmp = rb_cmpint(rb_rational_cmp(x, y), x, y);</div><div class='add'>+        return cmp &gt; 0;</div><div class='add'>+    }</div><div class='add'>+    return RTEST(rb_funcall(x, '&gt;', 1, y));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_mul(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+#ifndef PRESERVE_SIGNEDZERO</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	long iy = FIX2LONG(y);</div><div class='add'>+	if (iy == 0) {</div><div class='add'>+	    if (RB_INTEGER_TYPE_P(x))</div><div class='add'>+		return ZERO;</div><div class='add'>+	}</div><div class='add'>+	else if (iy == 1)</div><div class='add'>+	    return x;</div><div class='add'>+    }</div><div class='add'>+    else if (FIXNUM_P(x)) {</div><div class='add'>+	long ix = FIX2LONG(x);</div><div class='add'>+	if (ix == 0) {</div><div class='add'>+	    if (RB_INTEGER_TYPE_P(y))</div><div class='add'>+		return ZERO;</div><div class='add'>+	}</div><div class='add'>+	else if (ix == 1)</div><div class='add'>+	    return y;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return rb_funcall(x, '*', 1, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_sub(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+#ifndef PRESERVE_SIGNEDZERO</div><div class='add'>+    if (FIXNUM_P(y) &amp;&amp; FIXNUM_ZERO_P(y))</div><div class='add'>+	return x;</div><div class='add'>+#endif</div><div class='add'>+    return rb_funcall(x, '-', 1, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+fun1(abs)</div><div class='add'>+fun1(arg)</div><div class='add'>+fun1(denominator)</div><div class='add'>+</div><div class='add'>+static VALUE nucomp_negate(VALUE self);</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_negate(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return rb_int_uminus(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return rb_float_uminus(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_uminus(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_COMPLEX)) {</div><div class='add'>+        return nucomp_negate(x);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_negate, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+fun1(numerator)</div><div class='add'>+fun1(real_p)</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_to_i(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(x, T_STRING))</div><div class='add'>+	return rb_str_to_inum(x, 10, 0);</div><div class='add'>+    return rb_funcall(x, id_to_i, 0);</div><div class='add'>+}</div><div class='add'>+inline static VALUE</div><div class='add'>+f_to_f(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(x, T_STRING))</div><div class='add'>+	return DBL2NUM(rb_str_to_dbl(x, 0));</div><div class='add'>+    return rb_funcall(x, id_to_f, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+fun1(to_r)</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_eqeq_p(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(x) &amp;&amp; FIXNUM_P(y))</div><div class='add'>+	return x == y;</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x) || RB_FLOAT_TYPE_P(y))</div><div class='add'>+	return NUM2DBL(x) == NUM2DBL(y);</div><div class='add'>+    return (int)rb_equal(x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+fun2(expt)</div><div class='add'>+fun2(fdiv)</div><div class='add'>+fun2(quo)</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_negative_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x))</div><div class='add'>+        return INT_NEGATIVE_P(x);</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x))</div><div class='add'>+        return RFLOAT_VALUE(x) &lt; 0.0;</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL))</div><div class='add'>+        return INT_NEGATIVE_P(RRATIONAL(x)-&gt;num);</div><div class='add'>+    return rb_num_negative_p(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define f_positive_p(x) (!f_negative_p(x))</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_zero_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return FIXNUM_ZERO_P(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        const VALUE num = RRATIONAL(x)-&gt;num;</div><div class='add'>+        return FIXNUM_ZERO_P(num);</div><div class='add'>+    }</div><div class='add'>+    return (int)rb_equal(x, ZERO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define f_nonzero_p(x) (!f_zero_p(x))</div><div class='add'>+</div><div class='add'>+VALUE rb_flo_is_finite_p(VALUE num);</div><div class='add'>+inline static int</div><div class='add'>+f_finite_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+	return (int)rb_flo_is_finite_p(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    return RTEST(rb_funcallv(x, id_finite_p, 0, 0));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE rb_flo_is_infinite_p(VALUE num);</div><div class='add'>+inline static VALUE</div><div class='add'>+f_infinite_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+	return rb_flo_is_infinite_p(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return rb_funcallv(x, id_infinite_p, 0, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_kind_of_p(VALUE x, VALUE c)</div><div class='add'>+{</div><div class='add'>+    return (int)rb_obj_is_kind_of(x, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+k_numeric_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cNumeric);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define k_exact_p(x) (!RB_FLOAT_TYPE_P(x))</div><div class='add'>+</div><div class='add'>+#define k_exact_zero_p(x) (k_exact_p(x) &amp;&amp; f_zero_p(x))</div><div class='add'>+</div><div class='add'>+#define get_dat1(x) \</div><div class='add'>+    struct RComplex *dat = RCOMPLEX(x)</div><div class='add'>+</div><div class='add'>+#define get_dat2(x,y) \</div><div class='add'>+    struct RComplex *adat = RCOMPLEX(x), *bdat = RCOMPLEX(y)</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+nucomp_s_new_internal(VALUE klass, VALUE real, VALUE imag)</div><div class='add'>+{</div><div class='add'>+    NEWOBJ_OF(obj, struct RComplex, klass, T_COMPLEX | (RGENGC_WB_PROTECTED_COMPLEX ? FL_WB_PROTECTED : 0));</div><div class='add'>+</div><div class='add'>+    RCOMPLEX_SET_REAL(obj, real);</div><div class='add'>+    RCOMPLEX_SET_IMAG(obj, imag);</div><div class='add'>+    OBJ_FREEZE_RAW(obj);</div><div class='add'>+</div><div class='add'>+    return (VALUE)obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_s_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return nucomp_s_new_internal(klass, ZERO, ZERO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_s_new_bang(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE real, imag;</div><div class='add'>+</div><div class='add'>+    switch (rb_scan_args(argc, argv, "11", &amp;real, &amp;imag)) {</div><div class='add'>+      case 1:</div><div class='add'>+	if (!k_numeric_p(real))</div><div class='add'>+	    real = f_to_i(real);</div><div class='add'>+	imag = ZERO;</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	if (!k_numeric_p(real))</div><div class='add'>+	    real = f_to_i(real);</div><div class='add'>+	if (!k_numeric_p(imag))</div><div class='add'>+	    imag = f_to_i(imag);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return nucomp_s_new_internal(klass, real, imag);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_complex_new_bang1(VALUE klass, VALUE x)</div><div class='add'>+{</div><div class='add'>+    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='add'>+    return nucomp_s_new_internal(klass, x, ZERO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_complex_new_bang2(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='add'>+    assert(!RB_TYPE_P(y, T_COMPLEX));</div><div class='add'>+    return nucomp_s_new_internal(klass, x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef CANONICALIZATION_FOR_MATHN</div><div class='add'>+#define CANON</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef CANON</div><div class='add'>+static int canonicalization = 0;</div><div class='add'>+</div><div class='add'>+RUBY_FUNC_EXPORTED void</div><div class='add'>+nucomp_canonicalization(int f)</div><div class='add'>+{</div><div class='add'>+    canonicalization = f;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#define canonicalization 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+inline static void</div><div class='add'>+nucomp_real_check(VALUE num)</div><div class='add'>+{</div><div class='add'>+    if (!RB_INTEGER_TYPE_P(num) &amp;&amp;</div><div class='add'>+	!RB_FLOAT_TYPE_P(num) &amp;&amp;</div><div class='add'>+	!RB_TYPE_P(num, T_RATIONAL)) {</div><div class='add'>+	if (!k_numeric_p(num) || !f_real_p(num))</div><div class='add'>+	    rb_raise(rb_eTypeError, "not a real");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+nucomp_s_canonicalize_internal(VALUE klass, VALUE real, VALUE imag)</div><div class='add'>+{</div><div class='add'>+#ifdef CANON</div><div class='add'>+#define CL_CANON</div><div class='add'>+#ifdef CL_CANON</div><div class='add'>+    if (k_exact_zero_p(imag) &amp;&amp; canonicalization)</div><div class='add'>+	return real;</div><div class='add'>+#else</div><div class='add'>+    if (f_zero_p(imag) &amp;&amp; canonicalization)</div><div class='add'>+	return real;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    if (f_real_p(real) &amp;&amp; f_real_p(imag))</div><div class='add'>+	return nucomp_s_new_internal(klass, real, imag);</div><div class='add'>+    else if (f_real_p(real)) {</div><div class='add'>+	get_dat1(imag);</div><div class='add'>+</div><div class='add'>+	return nucomp_s_new_internal(klass,</div><div class='add'>+				     f_sub(real, dat-&gt;imag),</div><div class='add'>+				     f_add(ZERO, dat-&gt;real));</div><div class='add'>+    }</div><div class='add'>+    else if (f_real_p(imag)) {</div><div class='add'>+	get_dat1(real);</div><div class='add'>+</div><div class='add'>+	return nucomp_s_new_internal(klass,</div><div class='add'>+				     dat-&gt;real,</div><div class='add'>+				     f_add(dat-&gt;imag, imag));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	get_dat2(real, imag);</div><div class='add'>+</div><div class='add'>+	return nucomp_s_new_internal(klass,</div><div class='add'>+				     f_sub(adat-&gt;real, bdat-&gt;imag),</div><div class='add'>+				     f_add(adat-&gt;imag, bdat-&gt;real));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Complex.rect(real[, imag])         -&gt;  complex</div><div class='add'>+ *    Complex.rectangular(real[, imag])  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns a complex object which denotes the given rectangular form.</div><div class='add'>+ *</div><div class='add'>+ *    Complex.rectangular(1, 2)  #=&gt; (1+2i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_s_new(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE real, imag;</div><div class='add'>+</div><div class='add'>+    switch (rb_scan_args(argc, argv, "11", &amp;real, &amp;imag)) {</div><div class='add'>+      case 1:</div><div class='add'>+	nucomp_real_check(real);</div><div class='add'>+	imag = ZERO;</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	nucomp_real_check(real);</div><div class='add'>+	nucomp_real_check(imag);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return nucomp_s_canonicalize_internal(klass, real, imag);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_complex_new2(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='add'>+    return nucomp_s_canonicalize_internal(klass, x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Complex(x[, y])  -&gt;  numeric</div><div class='add'>+ *</div><div class='add'>+ * Returns x+i*y;</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 2)    #=&gt; (1+2i)</div><div class='add'>+ *    Complex('1+2i')  #=&gt; (1+2i)</div><div class='add'>+ *    Complex(nil)     #=&gt; TypeError</div><div class='add'>+ *    Complex(1, nil)  #=&gt; TypeError</div><div class='add'>+ *</div><div class='add'>+ * Syntax of string form:</div><div class='add'>+ *</div><div class='add'>+ *   string form = extra spaces , complex , extra spaces ;</div><div class='add'>+ *   complex = real part | [ sign ] , imaginary part</div><div class='add'>+ *           | real part , sign , imaginary part</div><div class='add'>+ *           | rational , "@" , rational ;</div><div class='add'>+ *   real part = rational ;</div><div class='add'>+ *   imaginary part = imaginary unit | unsigned rational , imaginary unit ;</div><div class='add'>+ *   rational = [ sign ] , unsigned rational ;</div><div class='add'>+ *   unsigned rational = numerator | numerator , "/" , denominator ;</div><div class='add'>+ *   numerator = integer part | fractional part | integer part , fractional part ;</div><div class='add'>+ *   denominator = digits ;</div><div class='add'>+ *   integer part = digits ;</div><div class='add'>+ *   fractional part = "." , digits , [ ( "e" | "E" ) , [ sign ] , digits ] ;</div><div class='add'>+ *   imaginary unit = "i" | "I" | "j" | "J" ;</div><div class='add'>+ *   sign = "-" | "+" ;</div><div class='add'>+ *   digits = digit , { digit | "_" , digit };</div><div class='add'>+ *   digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;</div><div class='add'>+ *   extra spaces = ? \s* ? ;</div><div class='add'>+ *</div><div class='add'>+ * See String#to_c.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_f_complex(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return nucomp_s_convert(argc, argv, rb_cComplex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define imp1(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+m_##n##_bang(VALUE x)\</div><div class='add'>+{\</div><div class='add'>+    return rb_math_##n(x);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+imp1(cos)</div><div class='add'>+imp1(cosh)</div><div class='add'>+imp1(exp)</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+m_log_bang(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return rb_math_log(1, &amp;x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+imp1(sin)</div><div class='add'>+imp1(sinh)</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+m_cos(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (f_real_p(x))</div><div class='add'>+	return m_cos_bang(x);</div><div class='add'>+    {</div><div class='add'>+	get_dat1(x);</div><div class='add'>+	return f_complex_new2(rb_cComplex,</div><div class='add'>+			      f_mul(m_cos_bang(dat-&gt;real),</div><div class='add'>+				    m_cosh_bang(dat-&gt;imag)),</div><div class='add'>+			      f_mul(f_negate(m_sin_bang(dat-&gt;real)),</div><div class='add'>+				    m_sinh_bang(dat-&gt;imag)));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+m_sin(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (f_real_p(x))</div><div class='add'>+	return m_sin_bang(x);</div><div class='add'>+    {</div><div class='add'>+	get_dat1(x);</div><div class='add'>+	return f_complex_new2(rb_cComplex,</div><div class='add'>+			      f_mul(m_sin_bang(dat-&gt;real),</div><div class='add'>+				    m_cosh_bang(dat-&gt;imag)),</div><div class='add'>+			      f_mul(m_cos_bang(dat-&gt;real),</div><div class='add'>+				    m_sinh_bang(dat-&gt;imag)));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+imp1(sqrt)</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_sqrt(VALUE x)</div><div class='add'>+{</div><div class='add'>+    int pos;</div><div class='add'>+    VALUE a, re, im;</div><div class='add'>+    get_dat1(x);</div><div class='add'>+</div><div class='add'>+    pos = f_positive_p(dat-&gt;imag);</div><div class='add'>+    a = f_abs(x);</div><div class='add'>+    re = m_sqrt_bang(f_div(f_add(a, dat-&gt;real), TWO));</div><div class='add'>+    im = m_sqrt_bang(f_div(f_sub(a, dat-&gt;real), TWO));</div><div class='add'>+    if (!pos) im = f_negate(im);</div><div class='add'>+    return f_complex_new2(rb_cComplex, re, im);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+m_sqrt(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (f_real_p(x)) {</div><div class='add'>+	if (f_positive_p(x))</div><div class='add'>+	    return m_sqrt_bang(x);</div><div class='add'>+	return f_complex_new2(rb_cComplex, ZERO, m_sqrt_bang(f_negate(x)));</div><div class='add'>+    }</div><div class='add'>+    return rb_complex_sqrt(x);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_complex_polar(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='add'>+    assert(!RB_TYPE_P(y, T_COMPLEX));</div><div class='add'>+    if (f_zero_p(x) || f_zero_p(y)) {</div><div class='add'>+	if (canonicalization) return x;</div><div class='add'>+	return nucomp_s_new_internal(klass, x, RFLOAT_0);</div><div class='add'>+    }</div><div class='add'>+    if (RB_FLOAT_TYPE_P(y)) {</div><div class='add'>+	const double arg = RFLOAT_VALUE(y);</div><div class='add'>+	if (arg == M_PI) {</div><div class='add'>+	    x = f_negate(x);</div><div class='add'>+	    if (canonicalization) return x;</div><div class='add'>+	    y = RFLOAT_0;</div><div class='add'>+	}</div><div class='add'>+	else if (arg == M_PI_2) {</div><div class='add'>+	    y = x;</div><div class='add'>+	    x = RFLOAT_0;</div><div class='add'>+	}</div><div class='add'>+	else if (arg == M_PI_2+M_PI) {</div><div class='add'>+	    y = f_negate(x);</div><div class='add'>+	    x = RFLOAT_0;</div><div class='add'>+	}</div><div class='add'>+	else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+	    const double abs = RFLOAT_VALUE(x);</div><div class='add'>+	    const double real = abs * cos(arg), imag = abs * sin(arg);</div><div class='add'>+	    x = DBL2NUM(real);</div><div class='add'>+	    if (canonicalization &amp;&amp; imag == 0.0) return x;</div><div class='add'>+	    y = DBL2NUM(imag);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    y = f_mul(x, DBL2NUM(sin(arg)));</div><div class='add'>+	    x = f_mul(x, DBL2NUM(cos(arg)));</div><div class='add'>+	    if (canonicalization &amp;&amp; f_zero_p(y)) return x;</div><div class='add'>+	}</div><div class='add'>+	return nucomp_s_new_internal(klass, x, y);</div><div class='add'>+    }</div><div class='add'>+    return nucomp_s_canonicalize_internal(klass,</div><div class='add'>+					  f_mul(x, m_cos(y)),</div><div class='add'>+					  f_mul(x, m_sin(y)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Complex.polar(abs[, arg])  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns a complex object which denotes the given polar form.</div><div class='add'>+ *</div><div class='add'>+ *    Complex.polar(3, 0)            #=&gt; (3.0+0.0i)</div><div class='add'>+ *    Complex.polar(3, Math::PI/2)   #=&gt; (1.836909530733566e-16+3.0i)</div><div class='add'>+ *    Complex.polar(3, Math::PI)     #=&gt; (-3.0+3.673819061467132e-16i)</div><div class='add'>+ *    Complex.polar(3, -Math::PI/2)  #=&gt; (1.836909530733566e-16-3.0i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_s_polar(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE abs, arg;</div><div class='add'>+</div><div class='add'>+    switch (rb_scan_args(argc, argv, "11", &amp;abs, &amp;arg)) {</div><div class='add'>+      case 1:</div><div class='add'>+	nucomp_real_check(abs);</div><div class='add'>+	if (canonicalization) return abs;</div><div class='add'>+	return nucomp_s_new_internal(klass, abs, ZERO);</div><div class='add'>+      default:</div><div class='add'>+	nucomp_real_check(abs);</div><div class='add'>+	nucomp_real_check(arg);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    return f_complex_polar(klass, abs, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.real  -&gt;  real</div><div class='add'>+ *</div><div class='add'>+ * Returns the real part.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(7).real      #=&gt; 7</div><div class='add'>+ *    Complex(9, -4).real  #=&gt; 9</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_real(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return dat-&gt;real;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.imag       -&gt;  real</div><div class='add'>+ *    cmp.imaginary  -&gt;  real</div><div class='add'>+ *</div><div class='add'>+ * Returns the imaginary part.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(7).imaginary      #=&gt; 0</div><div class='add'>+ *    Complex(9, -4).imaginary  #=&gt; -4</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_imag(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return dat-&gt;imag;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    -cmp  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns negation of the value.</div><div class='add'>+ *</div><div class='add'>+ *    -Complex(1, 2)  #=&gt; (-1-2i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_negate(VALUE self)</div><div class='add'>+{</div><div class='add'>+  get_dat1(self);</div><div class='add'>+  return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			f_negate(dat-&gt;real), f_negate(dat-&gt;imag));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp + numeric  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs addition.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  + Complex(2, 3)   #=&gt; (4+6i)</div><div class='add'>+ *    Complex(900)   + Complex(1)      #=&gt; (901+0i)</div><div class='add'>+ *    Complex(-2, 9) + Complex(-9, 2)  #=&gt; (-11+11i)</div><div class='add'>+ *    Complex(9, 8)  + 4               #=&gt; (13+8i)</div><div class='add'>+ *    Complex(20, 9) + 9.8             #=&gt; (29.8+9i)</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_plus(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	VALUE real, imag;</div><div class='add'>+</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	real = f_add(adat-&gt;real, bdat-&gt;real);</div><div class='add'>+	imag = f_add(adat-&gt;imag, bdat-&gt;imag);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	get_dat1(self);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			      f_add(dat-&gt;real, other), dat-&gt;imag);</div><div class='add'>+    }</div><div class='add'>+    return rb_num_coerce_bin(self, other, '+');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp - numeric  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs subtraction.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  - Complex(2, 3)   #=&gt; (0+0i)</div><div class='add'>+ *    Complex(900)   - Complex(1)      #=&gt; (899+0i)</div><div class='add'>+ *    Complex(-2, 9) - Complex(-9, 2)  #=&gt; (7+7i)</div><div class='add'>+ *    Complex(9, 8)  - 4               #=&gt; (5+8i)</div><div class='add'>+ *    Complex(20, 9) - 9.8             #=&gt; (10.2+9i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_sub(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	VALUE real, imag;</div><div class='add'>+</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	real = f_sub(adat-&gt;real, bdat-&gt;real);</div><div class='add'>+	imag = f_sub(adat-&gt;imag, bdat-&gt;imag);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	get_dat1(self);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			      f_sub(dat-&gt;real, other), dat-&gt;imag);</div><div class='add'>+    }</div><div class='add'>+    return rb_num_coerce_bin(self, other, '-');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+safe_mul(VALUE a, VALUE b, int az, int bz)</div><div class='add'>+{</div><div class='add'>+    double v;</div><div class='add'>+    if (!az &amp;&amp; bz &amp;&amp; RB_FLOAT_TYPE_P(a) &amp;&amp; (v = RFLOAT_VALUE(a), !isnan(v))) {</div><div class='add'>+	a = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='add'>+    }</div><div class='add'>+    if (!bz &amp;&amp; az &amp;&amp; RB_FLOAT_TYPE_P(b) &amp;&amp; (v = RFLOAT_VALUE(b), !isnan(v))) {</div><div class='add'>+	b = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='add'>+    }</div><div class='add'>+    return f_mul(a, b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp * numeric  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs multiplication.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  * Complex(2, 3)   #=&gt; (-5+12i)</div><div class='add'>+ *    Complex(900)   * Complex(1)      #=&gt; (900+0i)</div><div class='add'>+ *    Complex(-2, 9) * Complex(-9, 2)  #=&gt; (0-85i)</div><div class='add'>+ *    Complex(9, 8)  * 4               #=&gt; (36+32i)</div><div class='add'>+ *    Complex(20, 9) * 9.8             #=&gt; (196.0+88.2i)</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_mul(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	VALUE real, imag;</div><div class='add'>+	VALUE areal, aimag, breal, bimag;</div><div class='add'>+	int arzero, aizero, brzero, bizero;</div><div class='add'>+</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	arzero = f_zero_p(areal = adat-&gt;real);</div><div class='add'>+	aizero = f_zero_p(aimag = adat-&gt;imag);</div><div class='add'>+	brzero = f_zero_p(breal = bdat-&gt;real);</div><div class='add'>+	bizero = f_zero_p(bimag = bdat-&gt;imag);</div><div class='add'>+	real = f_sub(safe_mul(areal, breal, arzero, brzero),</div><div class='add'>+		     safe_mul(aimag, bimag, aizero, bizero));</div><div class='add'>+	imag = f_add(safe_mul(areal, bimag, arzero, bizero),</div><div class='add'>+		     safe_mul(aimag, breal, aizero, brzero));</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	get_dat1(self);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			      f_mul(dat-&gt;real, other),</div><div class='add'>+			      f_mul(dat-&gt;imag, other));</div><div class='add'>+    }</div><div class='add'>+    return rb_num_coerce_bin(self, other, '*');</div><div class='add'>+}</div><div class='add'>+#define nucomp_mul rb_complex_mul</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_divide(VALUE self, VALUE other,</div><div class='add'>+	 VALUE (*func)(VALUE, VALUE), ID id)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	int flo;</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	flo = (RB_FLOAT_TYPE_P(adat-&gt;real) || RB_FLOAT_TYPE_P(adat-&gt;imag) ||</div><div class='add'>+	       RB_FLOAT_TYPE_P(bdat-&gt;real) || RB_FLOAT_TYPE_P(bdat-&gt;imag));</div><div class='add'>+</div><div class='add'>+	if (f_gt_p(f_abs(bdat-&gt;real), f_abs(bdat-&gt;imag))) {</div><div class='add'>+	    VALUE r, n;</div><div class='add'>+</div><div class='add'>+	    r = (*func)(bdat-&gt;imag, bdat-&gt;real);</div><div class='add'>+	    n = f_mul(bdat-&gt;real, f_add(ONE, f_mul(r, r)));</div><div class='add'>+	    if (flo)</div><div class='add'>+		return f_complex_new2(CLASS_OF(self),</div><div class='add'>+				      (*func)(self, n),</div><div class='add'>+				      (*func)(f_negate(f_mul(self, r)), n));</div><div class='add'>+	    return f_complex_new2(CLASS_OF(self),</div><div class='add'>+				  (*func)(f_add(adat-&gt;real,</div><div class='add'>+						f_mul(adat-&gt;imag, r)), n),</div><div class='add'>+				  (*func)(f_sub(adat-&gt;imag,</div><div class='add'>+						f_mul(adat-&gt;real, r)), n));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    VALUE r, n;</div><div class='add'>+</div><div class='add'>+	    r = (*func)(bdat-&gt;real, bdat-&gt;imag);</div><div class='add'>+	    n = f_mul(bdat-&gt;imag, f_add(ONE, f_mul(r, r)));</div><div class='add'>+	    if (flo)</div><div class='add'>+		return f_complex_new2(CLASS_OF(self),</div><div class='add'>+				      (*func)(f_mul(self, r), n),</div><div class='add'>+				      (*func)(f_negate(self), n));</div><div class='add'>+	    return f_complex_new2(CLASS_OF(self),</div><div class='add'>+				  (*func)(f_add(f_mul(adat-&gt;real, r),</div><div class='add'>+						adat-&gt;imag), n),</div><div class='add'>+				  (*func)(f_sub(f_mul(adat-&gt;imag, r),</div><div class='add'>+						adat-&gt;real), n));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	get_dat1(self);</div><div class='add'>+</div><div class='add'>+	return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			      (*func)(dat-&gt;real, other),</div><div class='add'>+			      (*func)(dat-&gt;imag, other));</div><div class='add'>+    }</div><div class='add'>+    return rb_num_coerce_bin(self, other, id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define rb_raise_zerodiv() rb_raise(rb_eZeroDivError, "divided by 0")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp / numeric     -&gt;  complex</div><div class='add'>+ *    cmp.quo(numeric)  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs division.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  / Complex(2, 3)   #=&gt; ((1/1)+(0/1)*i)</div><div class='add'>+ *    Complex(900)   / Complex(1)      #=&gt; ((900/1)+(0/1)*i)</div><div class='add'>+ *    Complex(-2, 9) / Complex(-9, 2)  #=&gt; ((36/85)-(77/85)*i)</div><div class='add'>+ *    Complex(9, 8)  / 4               #=&gt; ((9/4)+(2/1)*i)</div><div class='add'>+ *    Complex(20, 9) / 9.8             #=&gt; (2.0408163265306123+0.9183673469387754i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_div(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    return f_divide(self, other, f_quo, id_quo);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define nucomp_quo nucomp_div</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.fdiv(numeric)  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs division as each part is a float, never returns a float.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(11, 22).fdiv(3)  #=&gt; (3.6666666666666665+7.333333333333333i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_fdiv(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    return f_divide(self, other, f_fdiv, id_fdiv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_reciprocal(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_quo(ONE, x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp ** numeric  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Performs exponentiation.</div><div class='add'>+ *</div><div class='add'>+ *    Complex('i') ** 2              #=&gt; (-1+0i)</div><div class='add'>+ *    Complex(-8) ** Rational(1, 3)  #=&gt; (1.0000000000000002+1.7320508075688772i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_expt(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; k_exact_zero_p(other))</div><div class='add'>+	return f_complex_new_bang1(CLASS_OF(self), ONE);</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(other, T_RATIONAL) &amp;&amp; RRATIONAL(other)-&gt;den == LONG2FIX(1))</div><div class='add'>+	other = RRATIONAL(other)-&gt;num; /* c14n */</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	get_dat1(other);</div><div class='add'>+</div><div class='add'>+	if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+	    other = dat-&gt;real; /* c14n */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	VALUE r, theta, nr, ntheta;</div><div class='add'>+</div><div class='add'>+	get_dat1(other);</div><div class='add'>+</div><div class='add'>+	r = f_abs(self);</div><div class='add'>+	theta = f_arg(self);</div><div class='add'>+</div><div class='add'>+	nr = m_exp_bang(f_sub(f_mul(dat-&gt;real, m_log_bang(r)),</div><div class='add'>+			      f_mul(dat-&gt;imag, theta)));</div><div class='add'>+	ntheta = f_add(f_mul(theta, dat-&gt;real),</div><div class='add'>+		       f_mul(dat-&gt;imag, m_log_bang(r)));</div><div class='add'>+	return f_complex_polar(CLASS_OF(self), nr, ntheta);</div><div class='add'>+    }</div><div class='add'>+    if (FIXNUM_P(other)) {</div><div class='add'>+	if (f_gt_p(other, ZERO)) {</div><div class='add'>+	    VALUE x, z;</div><div class='add'>+	    long n;</div><div class='add'>+</div><div class='add'>+	    x = self;</div><div class='add'>+	    z = x;</div><div class='add'>+	    n = FIX2LONG(other) - 1;</div><div class='add'>+</div><div class='add'>+	    while (n) {</div><div class='add'>+		long q, r;</div><div class='add'>+</div><div class='add'>+		while (1) {</div><div class='add'>+		    get_dat1(x);</div><div class='add'>+</div><div class='add'>+		    q = n / 2;</div><div class='add'>+		    r = n % 2;</div><div class='add'>+</div><div class='add'>+		    if (r)</div><div class='add'>+			break;</div><div class='add'>+</div><div class='add'>+		    x = nucomp_s_new_internal(CLASS_OF(self),</div><div class='add'>+				       f_sub(f_mul(dat-&gt;real, dat-&gt;real),</div><div class='add'>+					     f_mul(dat-&gt;imag, dat-&gt;imag)),</div><div class='add'>+				       f_mul(f_mul(TWO, dat-&gt;real), dat-&gt;imag));</div><div class='add'>+		    n = q;</div><div class='add'>+		}</div><div class='add'>+		z = f_mul(z, x);</div><div class='add'>+		n--;</div><div class='add'>+	    }</div><div class='add'>+	    return z;</div><div class='add'>+	}</div><div class='add'>+	return f_expt(f_reciprocal(self), rb_int_uminus(other));</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	VALUE r, theta;</div><div class='add'>+</div><div class='add'>+	if (RB_TYPE_P(other, T_BIGNUM))</div><div class='add'>+	    rb_warn("in a**b, b may be too big");</div><div class='add'>+</div><div class='add'>+	r = f_abs(self);</div><div class='add'>+	theta = f_arg(self);</div><div class='add'>+</div><div class='add'>+	return f_complex_polar(CLASS_OF(self), f_expt(r, other),</div><div class='add'>+			       f_mul(theta, other));</div><div class='add'>+    }</div><div class='add'>+    return rb_num_coerce_bin(self, other, id_expt);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp == object  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns true if cmp equals object numerically.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  == Complex(2, 3)   #=&gt; true</div><div class='add'>+ *    Complex(5)     == 5               #=&gt; true</div><div class='add'>+ *    Complex(0)     == 0.0             #=&gt; true</div><div class='add'>+ *    Complex('1/3') == 0.33            #=&gt; false</div><div class='add'>+ *    Complex('1/2') == '1/2'           #=&gt; false</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_eqeq_p(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	return f_boolcast(f_eqeq_p(adat-&gt;real, bdat-&gt;real) &amp;&amp;</div><div class='add'>+			  f_eqeq_p(adat-&gt;imag, bdat-&gt;imag));</div><div class='add'>+    }</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='add'>+	get_dat1(self);</div><div class='add'>+</div><div class='add'>+	return f_boolcast(f_eqeq_p(dat-&gt;real, other) &amp;&amp; f_zero_p(dat-&gt;imag));</div><div class='add'>+    }</div><div class='add'>+    return f_boolcast(f_eqeq_p(other, self));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_coerce(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other))</div><div class='add'>+	return rb_assoc_new(f_complex_new_bang1(CLASS_OF(self), other), self);</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX))</div><div class='add'>+	return rb_assoc_new(other, self);</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eTypeError, "%"PRIsVALUE" can't be coerced into %"PRIsVALUE,</div><div class='add'>+	     rb_obj_class(other), rb_obj_class(self));</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.abs        -&gt;  real</div><div class='add'>+ *    cmp.magnitude  -&gt;  real</div><div class='add'>+ *</div><div class='add'>+ * Returns the absolute part of its polar form.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(-1).abs         #=&gt; 1</div><div class='add'>+ *    Complex(3.0, -4.0).abs  #=&gt; 5.0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_abs(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (f_zero_p(dat-&gt;real)) {</div><div class='add'>+	VALUE a = f_abs(dat-&gt;imag);</div><div class='add'>+	if (RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; !RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='add'>+	    a = f_to_f(a);</div><div class='add'>+	return a;</div><div class='add'>+    }</div><div class='add'>+    if (f_zero_p(dat-&gt;imag)) {</div><div class='add'>+	VALUE a = f_abs(dat-&gt;real);</div><div class='add'>+	if (!RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='add'>+	    a = f_to_f(a);</div><div class='add'>+	return a;</div><div class='add'>+    }</div><div class='add'>+    return rb_math_hypot(dat-&gt;real, dat-&gt;imag);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.abs2  -&gt;  real</div><div class='add'>+ *</div><div class='add'>+ * Returns square of the absolute value.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(-1).abs2         #=&gt; 1</div><div class='add'>+ *    Complex(3.0, -4.0).abs2  #=&gt; 25.0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_abs2(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return f_add(f_mul(dat-&gt;real, dat-&gt;real),</div><div class='add'>+		 f_mul(dat-&gt;imag, dat-&gt;imag));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.arg    -&gt;  float</div><div class='add'>+ *    cmp.angle  -&gt;  float</div><div class='add'>+ *    cmp.phase  -&gt;  float</div><div class='add'>+ *</div><div class='add'>+ * Returns the angle part of its polar form.</div><div class='add'>+ *</div><div class='add'>+ *    Complex.polar(3, Math::PI/2).arg  #=&gt; 1.5707963267948966</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_arg(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return rb_math_atan2(dat-&gt;imag, dat-&gt;real);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.rect         -&gt;  array</div><div class='add'>+ *    cmp.rectangular  -&gt;  array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array; [cmp.real, cmp.imag].</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 2).rectangular  #=&gt; [1, 2]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_rect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return rb_assoc_new(dat-&gt;real, dat-&gt;imag);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.polar  -&gt;  array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array; [cmp.abs, cmp.arg].</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 2).polar  #=&gt; [2.23606797749979, 1.1071487177940904]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_polar(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_assoc_new(f_abs(self), f_arg(self));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.conj       -&gt;  complex</div><div class='add'>+ *    cmp.conjugate  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns the complex conjugate.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 2).conjugate  #=&gt; (1-2i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_conj(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return f_complex_new2(CLASS_OF(self), dat-&gt;real, f_negate(dat-&gt;imag));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_true(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.real?  -&gt;  false</div><div class='add'>+ *</div><div class='add'>+ * Returns false.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_false(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_exact_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return f_boolcast(k_exact_p(dat-&gt;real) &amp;&amp; k_exact_p(dat-&gt;imag));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_inexact_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return f_boolcast(!nucomp_exact_p(self));</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.denominator  -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the denominator (lcm of both denominator - real and imag).</div><div class='add'>+ *</div><div class='add'>+ * See numerator.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_denominator(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return rb_lcm(f_denominator(dat-&gt;real), f_denominator(dat-&gt;imag));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.numerator  -&gt;  numeric</div><div class='add'>+ *</div><div class='add'>+ * Returns the numerator.</div><div class='add'>+ *</div><div class='add'>+ *        1   2       3+4i  &lt;-  numerator</div><div class='add'>+ *        - + -i  -&gt;  ----</div><div class='add'>+ *        2   3        6    &lt;-  denominator</div><div class='add'>+ *</div><div class='add'>+ *    c = Complex('1/2+2/3i')  #=&gt; ((1/2)+(2/3)*i)</div><div class='add'>+ *    n = c.numerator          #=&gt; (3+4i)</div><div class='add'>+ *    d = c.denominator        #=&gt; 6</div><div class='add'>+ *    n / d                    #=&gt; ((1/2)+(2/3)*i)</div><div class='add'>+ *    Complex(Rational(n.real, d), Rational(n.imag, d))</div><div class='add'>+ *                             #=&gt; ((1/2)+(2/3)*i)</div><div class='add'>+ * See denominator.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_numerator(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE cd;</div><div class='add'>+</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    cd = f_denominator(self);</div><div class='add'>+    return f_complex_new2(CLASS_OF(self),</div><div class='add'>+			  f_mul(f_numerator(dat-&gt;real),</div><div class='add'>+				f_div(cd, f_denominator(dat-&gt;real))),</div><div class='add'>+			  f_mul(f_numerator(dat-&gt;imag),</div><div class='add'>+				f_div(cd, f_denominator(dat-&gt;imag))));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_hash(VALUE self)</div><div class='add'>+{</div><div class='add'>+    st_index_t v, h[2];</div><div class='add'>+    VALUE n;</div><div class='add'>+</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    n = rb_hash(dat-&gt;real);</div><div class='add'>+    h[0] = NUM2LONG(n);</div><div class='add'>+    n = rb_hash(dat-&gt;imag);</div><div class='add'>+    h[1] = NUM2LONG(n);</div><div class='add'>+    v = rb_memhash(h, sizeof(h));</div><div class='add'>+    return ST2FIX(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_eql_p(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	return f_boolcast((CLASS_OF(adat-&gt;real) == CLASS_OF(bdat-&gt;real)) &amp;&amp;</div><div class='add'>+			  (CLASS_OF(adat-&gt;imag) == CLASS_OF(bdat-&gt;imag)) &amp;&amp;</div><div class='add'>+			  f_eqeq_p(self, other));</div><div class='add'>+</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_signbit(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+	double f = RFLOAT_VALUE(x);</div><div class='add'>+	return !isnan(f) &amp;&amp; signbit(f);</div><div class='add'>+    }</div><div class='add'>+    return f_negative_p(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+f_tpositive_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return !f_signbit(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_format(VALUE self, VALUE (*func)(VALUE))</div><div class='add'>+{</div><div class='add'>+    VALUE s;</div><div class='add'>+    int impos;</div><div class='add'>+</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    impos = f_tpositive_p(dat-&gt;imag);</div><div class='add'>+</div><div class='add'>+    s = (*func)(dat-&gt;real);</div><div class='add'>+    rb_str_cat2(s, !impos ? "-" : "+");</div><div class='add'>+</div><div class='add'>+    rb_str_concat(s, (*func)(f_abs(dat-&gt;imag)));</div><div class='add'>+    if (!rb_isdigit(RSTRING_PTR(s)[RSTRING_LEN(s) - 1]))</div><div class='add'>+	rb_str_cat2(s, "*");</div><div class='add'>+    rb_str_cat2(s, "i");</div><div class='add'>+</div><div class='add'>+    return s;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.to_s  -&gt;  string</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a string.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2).to_s                       #=&gt; "2+0i"</div><div class='add'>+ *    Complex('-8/6').to_s                  #=&gt; "-4/3+0i"</div><div class='add'>+ *    Complex('1/2i').to_s                  #=&gt; "0+1/2i"</div><div class='add'>+ *    Complex(0, Float::INFINITY).to_s      #=&gt; "0+Infinity*i"</div><div class='add'>+ *    Complex(Float::NAN, Float::NAN).to_s  #=&gt; "NaN+NaN*i"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_to_s(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return f_format(self, rb_String);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.inspect  -&gt;  string</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a string for inspection.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2).inspect                       #=&gt; "(2+0i)"</div><div class='add'>+ *    Complex('-8/6').inspect                  #=&gt; "((-4/3)+0i)"</div><div class='add'>+ *    Complex('1/2i').inspect                  #=&gt; "(0+(1/2)*i)"</div><div class='add'>+ *    Complex(0, Float::INFINITY).inspect      #=&gt; "(0+Infinity*i)"</div><div class='add'>+ *    Complex(Float::NAN, Float::NAN).inspect  #=&gt; "(NaN+NaN*i)"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_inspect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE s;</div><div class='add'>+</div><div class='add'>+    s = rb_usascii_str_new2("(");</div><div class='add'>+    rb_str_concat(s, f_format(self, rb_inspect));</div><div class='add'>+    rb_str_cat2(s, ")");</div><div class='add'>+</div><div class='add'>+    return s;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define FINITE_TYPE_P(v) (RB_INTEGER_TYPE_P(v) || RB_TYPE_P(v, T_RATIONAL))</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.finite?  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if +cmp+'s magnitude is a finite number,</div><div class='add'>+ * otherwise returns +false+.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_complex_finite_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (f_finite_p(dat-&gt;real) &amp;&amp; f_finite_p(dat-&gt;imag)) {</div><div class='add'>+	return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.infinite?  -&gt;  nil or 1</div><div class='add'>+ *</div><div class='add'>+ * Returns values corresponding to the value of +cmp+'s magnitude:</div><div class='add'>+ *</div><div class='add'>+ * +finite+::    +nil+</div><div class='add'>+ * ++Infinity+:: ++1+</div><div class='add'>+ *</div><div class='add'>+ *  For example:</div><div class='add'>+ *</div><div class='add'>+ *     (1+1i).infinite?                   #=&gt; nil</div><div class='add'>+ *     (Float::INFINITY + 1i).infinite?   #=&gt; 1</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_complex_infinite_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(f_infinite_p(dat-&gt;real)) &amp;&amp; NIL_P(f_infinite_p(dat-&gt;imag))) {</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return ONE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_dumper(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_loader(VALUE self, VALUE a)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    RCOMPLEX_SET_REAL(dat, rb_ivar_get(a, id_i_real));</div><div class='add'>+    RCOMPLEX_SET_IMAG(dat, rb_ivar_get(a, id_i_imag));</div><div class='add'>+    OBJ_FREEZE_RAW(self);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_marshal_dump(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE a;</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    a = rb_assoc_new(dat-&gt;real, dat-&gt;imag);</div><div class='add'>+    rb_copy_generic_ivar(a, self);</div><div class='add'>+    return a;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_marshal_load(VALUE self, VALUE a)</div><div class='add'>+{</div><div class='add'>+    Check_Type(a, T_ARRAY);</div><div class='add'>+    if (RARRAY_LEN(a) != 2)</div><div class='add'>+	rb_raise(rb_eArgError, "marshaled complex must have an array whose length is 2 but %ld", RARRAY_LEN(a));</div><div class='add'>+    rb_ivar_set(self, id_i_real, RARRAY_AREF(a, 0));</div><div class='add'>+    rb_ivar_set(self, id_i_imag, RARRAY_AREF(a, 1));</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* --- */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_raw(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return nucomp_s_new_internal(rb_cComplex, x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_new(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return nucomp_s_canonicalize_internal(rb_cComplex, x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_polar(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return f_complex_polar(rb_cComplex, x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_Complex(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE a[2];</div><div class='add'>+    a[0] = x;</div><div class='add'>+    a[1] = y;</div><div class='add'>+    return nucomp_s_convert(2, a, rb_cComplex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_complex_abs(VALUE cmp)</div><div class='add'>+{</div><div class='add'>+    return nucomp_abs(cmp);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.to_i  -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as an integer if possible (the imaginary part</div><div class='add'>+ * should be exactly zero).</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 0).to_i    #=&gt; 1</div><div class='add'>+ *    Complex(1, 0.0).to_i  # RangeError</div><div class='add'>+ *    Complex(1, 2).to_i    # RangeError</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_to_i(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Integer",</div><div class='add'>+		 self);</div><div class='add'>+    }</div><div class='add'>+    return f_to_i(dat-&gt;real);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.to_f  -&gt;  float</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a float if possible (the imaginary part should</div><div class='add'>+ * be exactly zero).</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 0).to_f    #=&gt; 1.0</div><div class='add'>+ *    Complex(1, 0.0).to_f  # RangeError</div><div class='add'>+ *    Complex(1, 2).to_f    # RangeError</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_to_f(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Float",</div><div class='add'>+		 self);</div><div class='add'>+    }</div><div class='add'>+    return f_to_f(dat-&gt;real);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.to_r  -&gt;  rational</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a rational if possible (the imaginary part</div><div class='add'>+ * should be exactly zero).</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 0).to_r    #=&gt; (1/1)</div><div class='add'>+ *    Complex(1, 0.0).to_r  # RangeError</div><div class='add'>+ *    Complex(1, 2).to_r    # RangeError</div><div class='add'>+ *</div><div class='add'>+ * See rationalize.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_to_r(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",</div><div class='add'>+		 self);</div><div class='add'>+    }</div><div class='add'>+    return f_to_r(dat-&gt;real);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp.rationalize([eps])  -&gt;  rational</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a rational if possible (the imaginary part</div><div class='add'>+ * should be exactly zero).</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1.0/3, 0).rationalize  #=&gt; (1/3)</div><div class='add'>+ *    Complex(1, 0.0).rationalize    # RangeError</div><div class='add'>+ *    Complex(1, 2).rationalize      # RangeError</div><div class='add'>+ *</div><div class='add'>+ * See to_r.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_rationalize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", NULL);</div><div class='add'>+</div><div class='add'>+    if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='add'>+       rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",</div><div class='add'>+                self);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcallv(dat-&gt;real, id_rationalize, argc, argv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    complex.to_c  -&gt;  self</div><div class='add'>+ *</div><div class='add'>+ * Returns self.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2).to_c      #=&gt; (2+0i)</div><div class='add'>+ *    Complex(-8, 6).to_c  #=&gt; (-8+6i)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_to_c(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    nil.to_c  -&gt;  (0+0i)</div><div class='add'>+ *</div><div class='add'>+ * Returns zero as a complex.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nilclass_to_c(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_complex_new1(INT2FIX(0));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.to_c  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns the value as a complex.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_to_c(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_complex_new1(self);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+issign(int c)</div><div class='add'>+{</div><div class='add'>+    return (c == '-' || c == '+');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_sign(const char **s,</div><div class='add'>+	  char **b)</div><div class='add'>+{</div><div class='add'>+    int sign = '?';</div><div class='add'>+</div><div class='add'>+    if (issign(**s)) {</div><div class='add'>+	sign = **b = **s;</div><div class='add'>+	(*s)++;</div><div class='add'>+	(*b)++;</div><div class='add'>+    }</div><div class='add'>+    return sign;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+isdecimal(int c)</div><div class='add'>+{</div><div class='add'>+    return isdigit((unsigned char)c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_digits(const char **s, int strict,</div><div class='add'>+	    char **b)</div><div class='add'>+{</div><div class='add'>+    int us = 1;</div><div class='add'>+</div><div class='add'>+    if (!isdecimal(**s))</div><div class='add'>+	return 0;</div><div class='add'>+</div><div class='add'>+    while (isdecimal(**s) || **s == '_') {</div><div class='add'>+	if (**s == '_') {</div><div class='add'>+	    if (strict) {</div><div class='add'>+		if (us)</div><div class='add'>+		    return 0;</div><div class='add'>+	    }</div><div class='add'>+	    us = 1;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    **b = **s;</div><div class='add'>+	    (*b)++;</div><div class='add'>+	    us = 0;</div><div class='add'>+	}</div><div class='add'>+	(*s)++;</div><div class='add'>+    }</div><div class='add'>+    if (us)</div><div class='add'>+	do {</div><div class='add'>+	    (*s)--;</div><div class='add'>+	} while (**s == '_');</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+islettere(int c)</div><div class='add'>+{</div><div class='add'>+    return (c == 'e' || c == 'E');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_num(const char **s, int strict,</div><div class='add'>+	 char **b)</div><div class='add'>+{</div><div class='add'>+    if (**s != '.') {</div><div class='add'>+	if (!read_digits(s, strict, b))</div><div class='add'>+	    return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (**s == '.') {</div><div class='add'>+	**b = **s;</div><div class='add'>+	(*s)++;</div><div class='add'>+	(*b)++;</div><div class='add'>+	if (!read_digits(s, strict, b)) {</div><div class='add'>+	    (*b)--;</div><div class='add'>+	    return 0;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (islettere(**s)) {</div><div class='add'>+	**b = **s;</div><div class='add'>+	(*s)++;</div><div class='add'>+	(*b)++;</div><div class='add'>+	read_sign(s, b);</div><div class='add'>+	if (!read_digits(s, strict, b)) {</div><div class='add'>+	    (*b)--;</div><div class='add'>+	    return 0;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+read_den(const char **s, int strict,</div><div class='add'>+	 char **b)</div><div class='add'>+{</div><div class='add'>+    if (!read_digits(s, strict, b))</div><div class='add'>+	return 0;</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_rat_nos(const char **s, int strict,</div><div class='add'>+	     char **b)</div><div class='add'>+{</div><div class='add'>+    if (!read_num(s, strict, b))</div><div class='add'>+	return 0;</div><div class='add'>+    if (**s == '/') {</div><div class='add'>+	**b = **s;</div><div class='add'>+	(*s)++;</div><div class='add'>+	(*b)++;</div><div class='add'>+	if (!read_den(s, strict, b)) {</div><div class='add'>+	    (*b)--;</div><div class='add'>+	    return 0;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_rat(const char **s, int strict,</div><div class='add'>+	 char **b)</div><div class='add'>+{</div><div class='add'>+    read_sign(s, b);</div><div class='add'>+    if (!read_rat_nos(s, strict, b))</div><div class='add'>+	return 0;</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+isimagunit(int c)</div><div class='add'>+{</div><div class='add'>+    return (c == 'i' || c == 'I' ||</div><div class='add'>+	    c == 'j' || c == 'J');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+str2num(char *s)</div><div class='add'>+{</div><div class='add'>+    if (strchr(s, '/'))</div><div class='add'>+	return rb_cstr_to_rat(s, 0);</div><div class='add'>+    if (strpbrk(s, ".eE"))</div><div class='add'>+	return DBL2NUM(rb_cstr_to_dbl(s, 0));</div><div class='add'>+    return rb_cstr_to_inum(s, 10, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+read_comp(const char **s, int strict,</div><div class='add'>+	  VALUE *ret, char **b)</div><div class='add'>+{</div><div class='add'>+    char *bb;</div><div class='add'>+    int sign;</div><div class='add'>+    VALUE num, num2;</div><div class='add'>+</div><div class='add'>+    bb = *b;</div><div class='add'>+</div><div class='add'>+    sign = read_sign(s, b);</div><div class='add'>+</div><div class='add'>+    if (isimagunit(**s)) {</div><div class='add'>+	(*s)++;</div><div class='add'>+	num = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='add'>+	*ret = rb_complex_new2(ZERO, num);</div><div class='add'>+	return 1; /* e.g. "i" */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!read_rat_nos(s, strict, b)) {</div><div class='add'>+	**b = '\0';</div><div class='add'>+	num = str2num(bb);</div><div class='add'>+	*ret = rb_complex_new2(num, ZERO);</div><div class='add'>+	return 0; /* e.g. "-" */</div><div class='add'>+    }</div><div class='add'>+    **b = '\0';</div><div class='add'>+    num = str2num(bb);</div><div class='add'>+</div><div class='add'>+    if (isimagunit(**s)) {</div><div class='add'>+	(*s)++;</div><div class='add'>+	*ret = rb_complex_new2(ZERO, num);</div><div class='add'>+	return 1; /* e.g. "3i" */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (**s == '@') {</div><div class='add'>+	int st;</div><div class='add'>+</div><div class='add'>+	(*s)++;</div><div class='add'>+	bb = *b;</div><div class='add'>+	st = read_rat(s, strict, b);</div><div class='add'>+	**b = '\0';</div><div class='add'>+	if (strlen(bb) &lt; 1 ||</div><div class='add'>+	    !isdecimal(*(bb + strlen(bb) - 1))) {</div><div class='add'>+	    *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+	    return 0; /* e.g. "1@-" */</div><div class='add'>+	}</div><div class='add'>+	num2 = str2num(bb);</div><div class='add'>+	*ret = rb_complex_polar(num, num2);</div><div class='add'>+	if (!st)</div><div class='add'>+	    return 0; /* e.g. "1@2." */</div><div class='add'>+	else</div><div class='add'>+	    return 1; /* e.g. "1@2" */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (issign(**s)) {</div><div class='add'>+	bb = *b;</div><div class='add'>+	sign = read_sign(s, b);</div><div class='add'>+	if (isimagunit(**s))</div><div class='add'>+	    num2 = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='add'>+	else {</div><div class='add'>+	    if (!read_rat_nos(s, strict, b)) {</div><div class='add'>+		*ret = rb_complex_new2(num, ZERO);</div><div class='add'>+		return 0; /* e.g. "1+xi" */</div><div class='add'>+	    }</div><div class='add'>+	    **b = '\0';</div><div class='add'>+	    num2 = str2num(bb);</div><div class='add'>+	}</div><div class='add'>+	if (!isimagunit(**s)) {</div><div class='add'>+	    *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+	    return 0; /* e.g. "1+3x" */</div><div class='add'>+	}</div><div class='add'>+	(*s)++;</div><div class='add'>+	*ret = rb_complex_new2(num, num2);</div><div class='add'>+	return 1; /* e.g. "1+2i" */</div><div class='add'>+    }</div><div class='add'>+    /* !(@, - or +) */</div><div class='add'>+    {</div><div class='add'>+	*ret = rb_complex_new2(num, ZERO);</div><div class='add'>+	return 1; /* e.g. "3" */</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static void</div><div class='add'>+skip_ws(const char **s)</div><div class='add'>+{</div><div class='add'>+    while (isspace((unsigned char)**s))</div><div class='add'>+	(*s)++;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+parse_comp(const char *s, int strict,</div><div class='add'>+	   VALUE *num)</div><div class='add'>+{</div><div class='add'>+    char *buf, *b;</div><div class='add'>+    VALUE tmp;</div><div class='add'>+    int ret = 1;</div><div class='add'>+</div><div class='add'>+    buf = ALLOCV_N(char, tmp, strlen(s) + 1);</div><div class='add'>+    b = buf;</div><div class='add'>+</div><div class='add'>+    skip_ws(&amp;s);</div><div class='add'>+    if (!read_comp(&amp;s, strict, num, &amp;b)) {</div><div class='add'>+	ret = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	skip_ws(&amp;s);</div><div class='add'>+</div><div class='add'>+	if (strict)</div><div class='add'>+	    if (*s != '\0')</div><div class='add'>+		ret = 0;</div><div class='add'>+    }</div><div class='add'>+    ALLOCV_END(tmp);</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+string_to_c_strict(VALUE self)</div><div class='add'>+{</div><div class='add'>+    char *s;</div><div class='add'>+    VALUE num;</div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(self);</div><div class='add'>+</div><div class='add'>+    s = RSTRING_PTR(self);</div><div class='add'>+</div><div class='add'>+    if (!s || memchr(s, '\0', RSTRING_LEN(self)))</div><div class='add'>+	rb_raise(rb_eArgError, "string contains null byte");</div><div class='add'>+</div><div class='add'>+    if (s &amp;&amp; s[RSTRING_LEN(self)]) {</div><div class='add'>+	rb_str_modify(self);</div><div class='add'>+	s = RSTRING_PTR(self);</div><div class='add'>+	s[RSTRING_LEN(self)] = '\0';</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!s)</div><div class='add'>+	s = (char *)"";</div><div class='add'>+</div><div class='add'>+    if (!parse_comp(s, 1, &amp;num)) {</div><div class='add'>+	rb_raise(rb_eArgError, "invalid value for convert(): %+"PRIsVALUE,</div><div class='add'>+		 self);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    str.to_c  -&gt;  complex</div><div class='add'>+ *</div><div class='add'>+ * Returns a complex which denotes the string form.  The parser</div><div class='add'>+ * ignores leading whitespaces and trailing garbage.  Any digit</div><div class='add'>+ * sequences can be separated by an underscore.  Returns zero for null</div><div class='add'>+ * or garbage string.</div><div class='add'>+ *</div><div class='add'>+ *    '9'.to_c           #=&gt; (9+0i)</div><div class='add'>+ *    '2.5'.to_c         #=&gt; (2.5+0i)</div><div class='add'>+ *    '2.5/1'.to_c       #=&gt; ((5/2)+0i)</div><div class='add'>+ *    '-3/2'.to_c        #=&gt; ((-3/2)+0i)</div><div class='add'>+ *    '-i'.to_c          #=&gt; (0-1i)</div><div class='add'>+ *    '45i'.to_c         #=&gt; (0+45i)</div><div class='add'>+ *    '3-4i'.to_c        #=&gt; (3-4i)</div><div class='add'>+ *    '-4e2-4e-2i'.to_c  #=&gt; (-400.0-0.04i)</div><div class='add'>+ *    '-0.0-0.0i'.to_c   #=&gt; (-0.0-0.0i)</div><div class='add'>+ *    '1/2+3/4i'.to_c    #=&gt; ((1/2)+(3/4)*i)</div><div class='add'>+ *    'ruby'.to_c        #=&gt; (0+0i)</div><div class='add'>+ *</div><div class='add'>+ * See Kernel.Complex.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+string_to_c(VALUE self)</div><div class='add'>+{</div><div class='add'>+    char *s;</div><div class='add'>+    VALUE num;</div><div class='add'>+</div><div class='add'>+    rb_must_asciicompat(self);</div><div class='add'>+</div><div class='add'>+    s = RSTRING_PTR(self);</div><div class='add'>+</div><div class='add'>+    if (s &amp;&amp; s[RSTRING_LEN(self)]) {</div><div class='add'>+	rb_str_modify(self);</div><div class='add'>+	s = RSTRING_PTR(self);</div><div class='add'>+	s[RSTRING_LEN(self)] = '\0';</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!s)</div><div class='add'>+	s = (char *)"";</div><div class='add'>+</div><div class='add'>+    (void)parse_comp(s, 0, &amp;num);</div><div class='add'>+</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_s_convert(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE a1, a2, backref;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;a1, &amp;a2);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(a1) || (argc == 2 &amp;&amp; NIL_P(a2)))</div><div class='add'>+	rb_raise(rb_eTypeError, "can't convert nil into Complex");</div><div class='add'>+</div><div class='add'>+    backref = rb_backref_get();</div><div class='add'>+    rb_match_busy(backref);</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(a1, T_STRING)) {</div><div class='add'>+	a1 = string_to_c_strict(a1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(a2, T_STRING)) {</div><div class='add'>+	a2 = string_to_c_strict(a2);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_backref_set(backref);</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(a1, T_COMPLEX)) {</div><div class='add'>+	{</div><div class='add'>+	    get_dat1(a1);</div><div class='add'>+</div><div class='add'>+	    if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+		a1 = dat-&gt;real;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(a2, T_COMPLEX)) {</div><div class='add'>+	{</div><div class='add'>+	    get_dat1(a2);</div><div class='add'>+</div><div class='add'>+	    if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+		a2 = dat-&gt;real;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(a1, T_COMPLEX)) {</div><div class='add'>+	if (argc == 1 || (k_exact_zero_p(a2)))</div><div class='add'>+	    return a1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc == 1) {</div><div class='add'>+	if (k_numeric_p(a1) &amp;&amp; !f_real_p(a1))</div><div class='add'>+	    return a1;</div><div class='add'>+	/* should raise exception for consistency */</div><div class='add'>+	if (!k_numeric_p(a1))</div><div class='add'>+	    return rb_convert_type(a1, T_COMPLEX, "Complex", "to_c");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if ((k_numeric_p(a1) &amp;&amp; k_numeric_p(a2)) &amp;&amp;</div><div class='add'>+	    (!f_real_p(a1) || !f_real_p(a2)))</div><div class='add'>+	    return f_add(a1,</div><div class='add'>+			 f_mul(a2,</div><div class='add'>+			       f_complex_new_bang2(rb_cComplex, ZERO, ONE)));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+	VALUE argv2[2];</div><div class='add'>+	argv2[0] = a1;</div><div class='add'>+	argv2[1] = a2;</div><div class='add'>+	return nucomp_s_new(argc, argv2, klass);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* --- */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.real  -&gt;  self</div><div class='add'>+ *</div><div class='add'>+ * Returns self.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_real(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.imag       -&gt;  0</div><div class='add'>+ *    num.imaginary  -&gt;  0</div><div class='add'>+ *</div><div class='add'>+ * Returns zero.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_imag(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return INT2FIX(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.abs2  -&gt;  real</div><div class='add'>+ *</div><div class='add'>+ * Returns square of self.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_abs2(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return f_mul(self, self);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.arg    -&gt;  0 or float</div><div class='add'>+ *    num.angle  -&gt;  0 or float</div><div class='add'>+ *    num.phase  -&gt;  0 or float</div><div class='add'>+ *</div><div class='add'>+ * Returns 0 if the value is positive, pi otherwise.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_arg(VALUE self)</div><div class='add'>+{</div><div class='add'>+    if (f_positive_p(self))</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+    return DBL2NUM(M_PI);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.rect  -&gt;  array</div><div class='add'>+ *    num.rectangular  -&gt;  array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array; [num, 0].</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_rect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_assoc_new(self, INT2FIX(0));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE float_arg(VALUE self);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.polar  -&gt;  array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array; [num.abs, num.arg].</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_polar(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE abs, arg;</div><div class='add'>+</div><div class='add'>+    if (RB_INTEGER_TYPE_P(self)) {</div><div class='add'>+        abs = rb_int_abs(self);</div><div class='add'>+        arg = numeric_arg(self);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(self)) {</div><div class='add'>+        abs = rb_float_abs(self);</div><div class='add'>+        arg = float_arg(self);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(self, T_RATIONAL)) {</div><div class='add'>+        abs = rb_rational_abs(self);</div><div class='add'>+        arg = numeric_arg(self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        abs = f_abs(self);</div><div class='add'>+        arg = f_arg(self);</div><div class='add'>+    }</div><div class='add'>+    return rb_assoc_new(abs, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    num.conj       -&gt;  self</div><div class='add'>+ *    num.conjugate  -&gt;  self</div><div class='add'>+ *</div><div class='add'>+ * Returns self.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+numeric_conj(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    flo.arg    -&gt;  0 or float</div><div class='add'>+ *    flo.angle  -&gt;  0 or float</div><div class='add'>+ *    flo.phase  -&gt;  0 or float</div><div class='add'>+ *</div><div class='add'>+ * Returns 0 if the value is positive, pi otherwise.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+float_arg(VALUE self)</div><div class='add'>+{</div><div class='add'>+    if (isnan(RFLOAT_VALUE(self)))</div><div class='add'>+	return self;</div><div class='add'>+    if (f_tpositive_p(self))</div><div class='add'>+	return INT2FIX(0);</div><div class='add'>+    return rb_const_get(rb_mMath, id_PI);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * A complex number can be represented as a paired real number with</div><div class='add'>+ * imaginary unit; a+bi.  Where a is real part, b is imaginary part</div><div class='add'>+ * and i is imaginary unit.  Real a equals complex a+0i</div><div class='add'>+ * mathematically.</div><div class='add'>+ *</div><div class='add'>+ * Complex object can be created as literal, and also by using</div><div class='add'>+ * Kernel#Complex, Complex::rect, Complex::polar or to_c method.</div><div class='add'>+ *</div><div class='add'>+ *    2+1i                 #=&gt; (2+1i)</div><div class='add'>+ *    Complex(1)           #=&gt; (1+0i)</div><div class='add'>+ *    Complex(2, 3)        #=&gt; (2+3i)</div><div class='add'>+ *    Complex.polar(2, 3)  #=&gt; (-1.9799849932008908+0.2822400161197344i)</div><div class='add'>+ *    3.to_c               #=&gt; (3+0i)</div><div class='add'>+ *</div><div class='add'>+ * You can also create complex object from floating-point numbers or</div><div class='add'>+ * strings.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(0.3)         #=&gt; (0.3+0i)</div><div class='add'>+ *    Complex('0.3-0.5i')  #=&gt; (0.3-0.5i)</div><div class='add'>+ *    Complex('2/3+3/4i')  #=&gt; ((2/3)+(3/4)*i)</div><div class='add'>+ *    Complex('1@2')       #=&gt; (-0.4161468365471424+0.9092974268256817i)</div><div class='add'>+ *</div><div class='add'>+ *    0.3.to_c             #=&gt; (0.3+0i)</div><div class='add'>+ *    '0.3-0.5i'.to_c      #=&gt; (0.3-0.5i)</div><div class='add'>+ *    '2/3+3/4i'.to_c      #=&gt; ((2/3)+(3/4)*i)</div><div class='add'>+ *    '1@2'.to_c           #=&gt; (-0.4161468365471424+0.9092974268256817i)</div><div class='add'>+ *</div><div class='add'>+ * A complex object is either an exact or an inexact number.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(1, 1) / 2    #=&gt; ((1/2)+(1/2)*i)</div><div class='add'>+ *    Complex(1, 1) / 2.0  #=&gt; (0.5+0.5i)</div><div class='add'>+ */</div><div class='add'>+void</div><div class='add'>+Init_Complex(void)</div><div class='add'>+{</div><div class='add'>+    VALUE compat;</div><div class='add'>+#undef rb_intern</div><div class='add'>+#define rb_intern(str) rb_intern_const(str)</div><div class='add'>+</div><div class='add'>+    assert(fprintf(stderr, "assert() is now active\n"));</div><div class='add'>+</div><div class='add'>+    id_abs = rb_intern("abs");</div><div class='add'>+    id_arg = rb_intern("arg");</div><div class='add'>+    id_denominator = rb_intern("denominator");</div><div class='add'>+    id_expt = rb_intern("**");</div><div class='add'>+    id_fdiv = rb_intern("fdiv");</div><div class='add'>+    id_negate = rb_intern("-@");</div><div class='add'>+    id_numerator = rb_intern("numerator");</div><div class='add'>+    id_quo = rb_intern("quo");</div><div class='add'>+    id_real_p = rb_intern("real?");</div><div class='add'>+    id_to_f = rb_intern("to_f");</div><div class='add'>+    id_to_i = rb_intern("to_i");</div><div class='add'>+    id_to_r = rb_intern("to_r");</div><div class='add'>+    id_i_real = rb_intern("@real");</div><div class='add'>+    id_i_imag = rb_intern("@image"); /* @image, not @imag */</div><div class='add'>+    id_finite_p = rb_intern("finite?");</div><div class='add'>+    id_infinite_p = rb_intern("infinite?");</div><div class='add'>+    id_rationalize = rb_intern("rationalize");</div><div class='add'>+    id_PI = rb_intern("PI");</div><div class='add'>+</div><div class='add'>+    rb_cComplex = rb_define_class("Complex", rb_cNumeric);</div><div class='add'>+</div><div class='add'>+    rb_define_alloc_func(rb_cComplex, nucomp_s_alloc);</div><div class='add'>+    rb_undef_method(CLASS_OF(rb_cComplex), "allocate");</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+    rb_define_private_method(CLASS_OF(rb_cComplex), "new!", nucomp_s_new_bang, -1);</div><div class='add'>+    rb_define_private_method(CLASS_OF(rb_cComplex), "new", nucomp_s_new, -1);</div><div class='add'>+#else</div><div class='add'>+    rb_undef_method(CLASS_OF(rb_cComplex), "new");</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cComplex, "rectangular", nucomp_s_new, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cComplex, "rect", nucomp_s_new, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cComplex, "polar", nucomp_s_polar, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_global_function("Complex", nucomp_f_complex, -1);</div><div class='add'>+</div><div class='add'>+    rb_undef_methods_from(rb_cComplex, rb_mComparable);</div><div class='add'>+    rb_undef_method(rb_cComplex, "%");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&lt;=&gt;");</div><div class='add'>+    rb_undef_method(rb_cComplex, "div");</div><div class='add'>+    rb_undef_method(rb_cComplex, "divmod");</div><div class='add'>+    rb_undef_method(rb_cComplex, "floor");</div><div class='add'>+    rb_undef_method(rb_cComplex, "ceil");</div><div class='add'>+    rb_undef_method(rb_cComplex, "modulo");</div><div class='add'>+    rb_undef_method(rb_cComplex, "remainder");</div><div class='add'>+    rb_undef_method(rb_cComplex, "round");</div><div class='add'>+    rb_undef_method(rb_cComplex, "step");</div><div class='add'>+    rb_undef_method(rb_cComplex, "truncate");</div><div class='add'>+    rb_undef_method(rb_cComplex, "i");</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "real", nucomp_real, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "imaginary", nucomp_imag, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "imag", nucomp_imag, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "-@", nucomp_negate, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "+", rb_complex_plus, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "-", nucomp_sub, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "*", nucomp_mul, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "/", nucomp_div, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "quo", nucomp_quo, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "fdiv", nucomp_fdiv, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "**", nucomp_expt, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "==", nucomp_eqeq_p, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "coerce", nucomp_coerce, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "abs", nucomp_abs, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "magnitude", nucomp_abs, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "abs2", nucomp_abs2, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "arg", nucomp_arg, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "angle", nucomp_arg, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "phase", nucomp_arg, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "rectangular", nucomp_rect, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "rect", nucomp_rect, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "polar", nucomp_polar, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "conjugate", nucomp_conj, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "conj", nucomp_conj, 0);</div><div class='add'>+#if 0</div><div class='add'>+    rb_define_method(rb_cComplex, "~", nucomp_conj, 0); /* gcc */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "real?", nucomp_false, 0);</div><div class='add'>+#if 0</div><div class='add'>+    rb_define_method(rb_cComplex, "complex?", nucomp_true, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "exact?", nucomp_exact_p, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "inexact?", nucomp_inexact_p, 0);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "numerator", nucomp_numerator, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "denominator", nucomp_denominator, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "hash", nucomp_hash, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "eql?", nucomp_eql_p, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "to_s", nucomp_to_s, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "inspect", nucomp_inspect, 0);</div><div class='add'>+</div><div class='add'>+    rb_undef_method(rb_cComplex, "positive?");</div><div class='add'>+    rb_undef_method(rb_cComplex, "negative?");</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "finite?", rb_complex_finite_p, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "infinite?", rb_complex_infinite_p, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_private_method(rb_cComplex, "marshal_dump", nucomp_marshal_dump, 0);</div><div class='add'>+    compat = rb_define_class_under(rb_cComplex, "compatible", rb_cObject); /* :nodoc: */</div><div class='add'>+    rb_define_private_method(compat, "marshal_load", nucomp_marshal_load, 1);</div><div class='add'>+    rb_marshal_define_compat(rb_cComplex, compat, nucomp_dumper, nucomp_loader);</div><div class='add'>+</div><div class='add'>+    /* --- */</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cComplex, "to_i", nucomp_to_i, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "to_f", nucomp_to_f, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "to_r", nucomp_to_r, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "rationalize", nucomp_rationalize, -1);</div><div class='add'>+    rb_define_method(rb_cComplex, "to_c", nucomp_to_c, 0);</div><div class='add'>+    rb_define_method(rb_cNilClass, "to_c", nilclass_to_c, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "to_c", numeric_to_c, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cString, "to_c", string_to_c, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_private_method(CLASS_OF(rb_cComplex), "convert", nucomp_s_convert, -1);</div><div class='add'>+</div><div class='add'>+    /* --- */</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cNumeric, "real", numeric_real, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "imaginary", numeric_imag, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "imag", numeric_imag, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "abs2", numeric_abs2, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "arg", numeric_arg, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "angle", numeric_arg, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "phase", numeric_arg, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "rectangular", numeric_rect, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "rect", numeric_rect, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "polar", numeric_polar, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "conjugate", numeric_conj, 0);</div><div class='add'>+    rb_define_method(rb_cNumeric, "conj", numeric_conj, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cFloat, "arg", float_arg, 0);</div><div class='add'>+    rb_define_method(rb_cFloat, "angle", float_arg, 0);</div><div class='add'>+    rb_define_method(rb_cFloat, "phase", float_arg, 0);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * The imaginary unit.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(rb_cComplex, "I",</div><div class='add'>+		    f_complex_new_bang2(rb_cComplex, ZERO, ONE));</div><div class='add'>+</div><div class='add'>+    rb_provide("complex.so");	/* for backward compatibility */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+Local variables:</div><div class='add'>+c-file-style: "ruby"</div><div class='add'>+End:</div><div class='add'>+*/</div><div class='head'>diff --git a/config.guess b/config.guess<br/>deleted file mode 100644<br/>index dd1688b7b5..0000000000<br/>--- a/<a href='/ruby.git/tree/config.guess?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>config.guess</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1459 +0,0 @@</div><div class='del'>-#! /bin/sh</div><div class='del'>-# Attempt to guess a canonical system name.</div><div class='del'>-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,</div><div class='del'>-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-timestamp='2004-06-11'</div><div class='del'>-</div><div class='del'>-# This file is free software; you can redistribute it and/or modify it</div><div class='del'>-# under the terms of the GNU General Public License as published by</div><div class='del'>-# the Free Software Foundation; either version 2 of the License, or</div><div class='del'>-# (at your option) any later version.</div><div class='del'>-#</div><div class='del'>-# This program is distributed in the hope that it will be useful, but</div><div class='del'>-# WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='del'>-# General Public License for more details.</div><div class='del'>-#</div><div class='del'>-# You should have received a copy of the GNU General Public License</div><div class='del'>-# along with this program; if not, write to the Free Software</div><div class='del'>-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</div><div class='del'>-#</div><div class='del'>-# As a special exception to the GNU General Public License, if you</div><div class='del'>-# distribute this file as part of a program that contains a</div><div class='del'>-# configuration script generated by Autoconf, you may include it under</div><div class='del'>-# the same distribution terms that you use for the rest of that program.</div><div class='del'>-</div><div class='del'>-# Originally written by Per Bothner &lt;per@bothner.com&gt;.</div><div class='del'>-# Please send patches to &lt;config-patches@gnu.org&gt;.  Submit a context</div><div class='del'>-# diff and a properly formatted ChangeLog entry.</div><div class='del'>-#</div><div class='del'>-# This script attempts to guess a canonical system name similar to</div><div class='del'>-# config.sub.  If it succeeds, it prints the system name on stdout, and</div><div class='del'>-# exits with 0.  Otherwise, it exits with 1.</div><div class='del'>-#</div><div class='del'>-# The plan is that this can be called by configure scripts if you</div><div class='del'>-# don't specify an explicit build system type.</div><div class='del'>-</div><div class='del'>-me=`echo "$0" | sed -e 's,.*/,,'`</div><div class='del'>-</div><div class='del'>-usage="\</div><div class='del'>-Usage: $0 [OPTION]</div><div class='del'>-</div><div class='del'>-Output the configuration name of the system \`$me' is run on.</div><div class='del'>-</div><div class='del'>-Operation modes:</div><div class='del'>-  -h, --help         print this help, then exit</div><div class='del'>-  -t, --time-stamp   print date of last modification, then exit</div><div class='del'>-  -v, --version      print version number, then exit</div><div class='del'>-</div><div class='del'>-Report bugs and patches to &lt;config-patches@gnu.org&gt;."</div><div class='del'>-</div><div class='del'>-version="\</div><div class='del'>-GNU config.guess ($timestamp)</div><div class='del'>-</div><div class='del'>-Originally written by Per Bothner.</div><div class='del'>-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001</div><div class='del'>-Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-This is free software; see the source for copying conditions.  There is NO</div><div class='del'>-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."</div><div class='del'>-</div><div class='del'>-help="</div><div class='del'>-Try \`$me --help' for more information."</div><div class='del'>-</div><div class='del'>-# Parse command line</div><div class='del'>-while test $# -gt 0 ; do</div><div class='del'>-  case $1 in</div><div class='del'>-    --time-stamp | --time* | -t )</div><div class='del'>-       echo "$timestamp" ; exit 0 ;;</div><div class='del'>-    --version | -v )</div><div class='del'>-       echo "$version" ; exit 0 ;;</div><div class='del'>-    --help | --h* | -h )</div><div class='del'>-       echo "$usage"; exit 0 ;;</div><div class='del'>-    -- )     # Stop option processing</div><div class='del'>-       shift; break ;;</div><div class='del'>-    - )	# Use stdin as input.</div><div class='del'>-       break ;;</div><div class='del'>-    -* )</div><div class='del'>-       echo "$me: invalid option $1$help" &gt;&amp;2</div><div class='del'>-       exit 1 ;;</div><div class='del'>-    * )</div><div class='del'>-       break ;;</div><div class='del'>-  esac</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-if test $# != 0; then</div><div class='del'>-  echo "$me: too many arguments$help" &gt;&amp;2</div><div class='del'>-  exit 1</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-trap 'exit 1' 1 2 15</div><div class='del'>-</div><div class='del'>-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a</div><div class='del'>-# compiler to aid in system detection is discouraged as it requires</div><div class='del'>-# temporary files to be created and, as you can see below, it is a</div><div class='del'>-# headache to deal with in a portable fashion.</div><div class='del'>-</div><div class='del'>-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still</div><div class='del'>-# use `HOST_CC' if defined, but it is deprecated.</div><div class='del'>-</div><div class='del'>-# Portable tmp directory creation inspired by the Autoconf team.</div><div class='del'>-</div><div class='del'>-set_cc_for_build='</div><div class='del'>-trap "exitcode=\$?; (rm -f \$tmpfiles 2&gt;/dev/null; rmdir \$tmp 2&gt;/dev/null) &amp;&amp; exit \$exitcode" 0 ;</div><div class='del'>-trap "rm -f \$tmpfiles 2&gt;/dev/null; rmdir \$tmp 2&gt;/dev/null; exit 1" 1 2 13 15 ;</div><div class='del'>-: ${TMPDIR=/tmp} ;</div><div class='del'>- { tmp=`(umask 077 &amp;&amp; mktemp -d -q "$TMPDIR/cgXXXXXX") 2&gt;/dev/null` &amp;&amp; test -n "$tmp" &amp;&amp; test -d "$tmp" ; } ||</div><div class='del'>- { test -n "$RANDOM" &amp;&amp; tmp=$TMPDIR/cg$$-$RANDOM &amp;&amp; (umask 077 &amp;&amp; mkdir $tmp) ; } ||</div><div class='del'>- { tmp=$TMPDIR/cg-$$ &amp;&amp; (umask 077 &amp;&amp; mkdir $tmp) &amp;&amp; echo "Warning: creating insecure temp directory" &gt;&amp;2 ; } ||</div><div class='del'>- { echo "$me: cannot create a temporary directory in $TMPDIR" &gt;&amp;2 ; exit 1 ; } ;</div><div class='del'>-dummy=$tmp/dummy ;</div><div class='del'>-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;</div><div class='del'>-case $CC_FOR_BUILD,$HOST_CC,$CC in</div><div class='del'>- ,,)    echo "int x;" &gt; $dummy.c ;</div><div class='del'>-	for c in cc gcc c89 c99 ; do</div><div class='del'>-	  if ($c -c -o $dummy.o $dummy.c) &gt;/dev/null 2&gt;&amp;1 ; then</div><div class='del'>-	     CC_FOR_BUILD="$c"; break ;</div><div class='del'>-	  fi ;</div><div class='del'>-	done ;</div><div class='del'>-	if test x"$CC_FOR_BUILD" = x ; then</div><div class='del'>-	  CC_FOR_BUILD=no_compiler_found ;</div><div class='del'>-	fi</div><div class='del'>-	;;</div><div class='del'>- ,,*)   CC_FOR_BUILD=$CC ;;</div><div class='del'>- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;</div><div class='del'>-esac ;'</div><div class='del'>-</div><div class='del'>-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.</div><div class='del'>-# (ghazi@noc.rutgers.edu 1994-08-24)</div><div class='del'>-if (test -f /.attbin/uname) &gt;/dev/null 2&gt;&amp;1 ; then</div><div class='del'>-	PATH=$PATH:/.attbin ; export PATH</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-UNAME_MACHINE=`(uname -m) 2&gt;/dev/null` || UNAME_MACHINE=unknown</div><div class='del'>-UNAME_RELEASE=`(uname -r) 2&gt;/dev/null` || UNAME_RELEASE=unknown</div><div class='del'>-UNAME_SYSTEM=`(uname -s) 2&gt;/dev/null`  || UNAME_SYSTEM=unknown</div><div class='del'>-UNAME_VERSION=`(uname -v) 2&gt;/dev/null` || UNAME_VERSION=unknown</div><div class='del'>-</div><div class='del'>-# Note: order is significant - the case branches are not exclusive.</div><div class='del'>-</div><div class='del'>-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in</div><div class='del'>-    *:NetBSD:*:*)</div><div class='del'>-	# NetBSD (nbsd) targets should (where applicable) match one or</div><div class='del'>-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,</div><div class='del'>-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently</div><div class='del'>-	# switched to ELF, *-*-netbsd* would select the old</div><div class='del'>-	# object file format.  This provides both forward</div><div class='del'>-	# compatibility and a consistent mechanism for selecting the</div><div class='del'>-	# object file format.</div><div class='del'>-	#</div><div class='del'>-	# Note: NetBSD doesn't particularly care about the vendor</div><div class='del'>-	# portion of the name.  We always set it to "unknown".</div><div class='del'>-	sysctl="sysctl -n hw.machine_arch"</div><div class='del'>-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2&gt;/dev/null || \</div><div class='del'>-	    /usr/sbin/$sysctl 2&gt;/dev/null || echo unknown)`</div><div class='del'>-	case "${UNAME_MACHINE_ARCH}" in</div><div class='del'>-	    armeb) machine=armeb-unknown ;;</div><div class='del'>-	    arm*) machine=arm-unknown ;;</div><div class='del'>-	    sh3el) machine=shl-unknown ;;</div><div class='del'>-	    sh3eb) machine=sh-unknown ;;</div><div class='del'>-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;</div><div class='del'>-	esac</div><div class='del'>-	# The Operating System including object format, if it has switched</div><div class='del'>-	# to ELF recently, or will in the future.</div><div class='del'>-	case "${UNAME_MACHINE_ARCH}" in</div><div class='del'>-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)</div><div class='del'>-		eval $set_cc_for_build</div><div class='del'>-		if echo __ELF__ | $CC_FOR_BUILD -E - 2&gt;/dev/null \</div><div class='del'>-			| grep __ELF__ &gt;/dev/null</div><div class='del'>-		then</div><div class='del'>-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).</div><div class='del'>-		    # Return netbsd for either.  FIX?</div><div class='del'>-		    os=netbsd</div><div class='del'>-		else</div><div class='del'>-		    os=netbsdelf</div><div class='del'>-		fi</div><div class='del'>-		;;</div><div class='del'>-	    *)</div><div class='del'>-	        os=netbsd</div><div class='del'>-		;;</div><div class='del'>-	esac</div><div class='del'>-	# The OS release</div><div class='del'>-	# Debian GNU/NetBSD machines have a different userland, and</div><div class='del'>-	# thus, need a distinct triplet. However, they do not need</div><div class='del'>-	# kernel version information, so it can be replaced with a</div><div class='del'>-	# suitable tag, in the style of linux-gnu.</div><div class='del'>-	case "${UNAME_VERSION}" in</div><div class='del'>-	    Debian*)</div><div class='del'>-		release='-gnu'</div><div class='del'>-		;;</div><div class='del'>-	    *)</div><div class='del'>-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`</div><div class='del'>-		;;</div><div class='del'>-	esac</div><div class='del'>-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:</div><div class='del'>-	# contains redundant information, the shorter form:</div><div class='del'>-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.</div><div class='del'>-	echo "${machine}-${os}${release}"</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    amd64:OpenBSD:*:*)</div><div class='del'>-	echo x86_64-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    amiga:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    arc:OpenBSD:*:*)</div><div class='del'>-	echo mipsel-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    cats:OpenBSD:*:*)</div><div class='del'>-	echo arm-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    hp300:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    luna88k:OpenBSD:*:*)</div><div class='del'>-    	echo m88k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mac68k:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    macppc:OpenBSD:*:*)</div><div class='del'>-	echo powerpc-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mvme68k:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mvme88k:OpenBSD:*:*)</div><div class='del'>-	echo m88k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mvmeppc:OpenBSD:*:*)</div><div class='del'>-	echo powerpc-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    pmax:OpenBSD:*:*)</div><div class='del'>-	echo mipsel-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sgi:OpenBSD:*:*)</div><div class='del'>-	echo mipseb-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun3:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    wgrisc:OpenBSD:*:*)</div><div class='del'>-	echo mipsel-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:OpenBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:ekkoBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    macppc:MirBSD:*:*)</div><div class='del'>-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:MirBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    alpha:OSF1:*:*)</div><div class='del'>-	case $UNAME_RELEASE in</div><div class='del'>-	*4.0)</div><div class='del'>-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`</div><div class='del'>-		;;</div><div class='del'>-	*5.*)</div><div class='del'>-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`</div><div class='del'>-		;;</div><div class='del'>-	esac</div><div class='del'>-	# According to Compaq, /usr/sbin/psrinfo has been available on</div><div class='del'>-	# OSF/1 and Tru64 systems produced since 1995.  I hope that</div><div class='del'>-	# covers most systems running today.  This code pipes the CPU</div><div class='del'>-	# types through head -n 1, so we only detect the type of CPU 0.</div><div class='del'>-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`</div><div class='del'>-	case "$ALPHA_CPU_TYPE" in</div><div class='del'>-	    "EV4 (21064)")</div><div class='del'>-		UNAME_MACHINE="alpha" ;;</div><div class='del'>-	    "EV4.5 (21064)")</div><div class='del'>-		UNAME_MACHINE="alpha" ;;</div><div class='del'>-	    "LCA4 (21066/21068)")</div><div class='del'>-		UNAME_MACHINE="alpha" ;;</div><div class='del'>-	    "EV5 (21164)")</div><div class='del'>-		UNAME_MACHINE="alphaev5" ;;</div><div class='del'>-	    "EV5.6 (21164A)")</div><div class='del'>-		UNAME_MACHINE="alphaev56" ;;</div><div class='del'>-	    "EV5.6 (21164PC)")</div><div class='del'>-		UNAME_MACHINE="alphapca56" ;;</div><div class='del'>-	    "EV5.7 (21164PC)")</div><div class='del'>-		UNAME_MACHINE="alphapca57" ;;</div><div class='del'>-	    "EV6 (21264)")</div><div class='del'>-		UNAME_MACHINE="alphaev6" ;;</div><div class='del'>-	    "EV6.7 (21264A)")</div><div class='del'>-		UNAME_MACHINE="alphaev67" ;;</div><div class='del'>-	    "EV6.8CB (21264C)")</div><div class='del'>-		UNAME_MACHINE="alphaev68" ;;</div><div class='del'>-	    "EV6.8AL (21264B)")</div><div class='del'>-		UNAME_MACHINE="alphaev68" ;;</div><div class='del'>-	    "EV6.8CX (21264D)")</div><div class='del'>-		UNAME_MACHINE="alphaev68" ;;</div><div class='del'>-	    "EV6.9A (21264/EV69A)")</div><div class='del'>-		UNAME_MACHINE="alphaev69" ;;</div><div class='del'>-	    "EV7 (21364)")</div><div class='del'>-		UNAME_MACHINE="alphaev7" ;;</div><div class='del'>-	    "EV7.9 (21364A)")</div><div class='del'>-		UNAME_MACHINE="alphaev79" ;;</div><div class='del'>-	esac</div><div class='del'>-	# A Pn.n version is a patched version.</div><div class='del'>-	# A Vn.n version is a released version.</div><div class='del'>-	# A Tn.n version is a released field test version.</div><div class='del'>-	# A Xn.n version is an unreleased experimental baselevel.</div><div class='del'>-	# 1.2 uses "1.2" for uname -r.</div><div class='del'>-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Alpha*:OpenVMS:*:*)</div><div class='del'>-	echo alpha-hp-vms</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Alpha\ *:Windows_NT*:*)</div><div class='del'>-	# How do we know it's Interix rather than the generic POSIX subsystem?</div><div class='del'>-	# Should we change UNAME_MACHINE based on the output of uname instead</div><div class='del'>-	# of the specific Alpha model?</div><div class='del'>-	echo alpha-pc-interix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    21064:Windows_NT:50:3)</div><div class='del'>-	echo alpha-dec-winnt3.5</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Amiga*:UNIX_System_V:4.0:*)</div><div class='del'>-	echo m68k-unknown-sysv4</div><div class='del'>-	exit 0;;</div><div class='del'>-    *:[Aa]miga[Oo][Ss]:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-amigaos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:[Mm]orph[Oo][Ss]:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-morphos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:OS/390:*:*)</div><div class='del'>-	echo i370-ibm-openedition</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:OS400:*:*)</div><div class='del'>-        echo powerpc-ibm-os400</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)</div><div class='del'>-	echo arm-acorn-riscix${UNAME_RELEASE}</div><div class='del'>-	exit 0;;</div><div class='del'>-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)</div><div class='del'>-	echo hppa1.1-hitachi-hiuxmpp</div><div class='del'>-	exit 0;;</div><div class='del'>-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)</div><div class='del'>-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.</div><div class='del'>-	if test "`(/bin/universe) 2&gt;/dev/null`" = att ; then</div><div class='del'>-		echo pyramid-pyramid-sysv3</div><div class='del'>-	else</div><div class='del'>-		echo pyramid-pyramid-bsd</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    NILE*:*:*:dcosx)</div><div class='del'>-	echo pyramid-pyramid-svr4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    DRS?6000:unix:4.0:6*)</div><div class='del'>-	echo sparc-icl-nx6</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    DRS?6000:UNIX_SV:4.2*:7*)</div><div class='del'>-	case `/usr/bin/uname -p` in</div><div class='del'>-	    sparc) echo sparc-icl-nx7 &amp;&amp; exit 0 ;;</div><div class='del'>-	esac ;;</div><div class='del'>-    sun4H:SunOS:5.*:*)</div><div class='del'>-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)</div><div class='del'>-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i86pc:SunOS:5.*:*)</div><div class='del'>-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun4*:SunOS:6*:*)</div><div class='del'>-	# According to config.sub, this is the proper way to canonicalize</div><div class='del'>-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but</div><div class='del'>-	# it's likely to be more like Solaris than SunOS4.</div><div class='del'>-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun4*:SunOS:*:*)</div><div class='del'>-	case "`/usr/bin/arch -k`" in</div><div class='del'>-	    Series*|S4*)</div><div class='del'>-		UNAME_RELEASE=`uname -v`</div><div class='del'>-		;;</div><div class='del'>-	esac</div><div class='del'>-	# Japanese Language versions have a version number like `4.1.3-JL'.</div><div class='del'>-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun3*:SunOS:*:*)</div><div class='del'>-	echo m68k-sun-sunos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun*:*:4.2BSD:*)</div><div class='del'>-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2&gt;/dev/null`</div><div class='del'>-	test "x${UNAME_RELEASE}" = "x" &amp;&amp; UNAME_RELEASE=3</div><div class='del'>-	case "`/bin/arch`" in</div><div class='del'>-	    sun3)</div><div class='del'>-		echo m68k-sun-sunos${UNAME_RELEASE}</div><div class='del'>-		;;</div><div class='del'>-	    sun4)</div><div class='del'>-		echo sparc-sun-sunos${UNAME_RELEASE}</div><div class='del'>-		;;</div><div class='del'>-	esac</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    aushp:SunOS:*:*)</div><div class='del'>-	echo sparc-auspex-sunos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    # The situation for MiNT is a little confusing.  The machine name</div><div class='del'>-    # can be virtually everything (everything which is not</div><div class='del'>-    # "atarist" or "atariste" at least should have a processor</div><div class='del'>-    # &gt; m68000).  The system name ranges from "MiNT" over "FreeMiNT"</div><div class='del'>-    # to the lowercase version "mint" (or "freemint").  Finally</div><div class='del'>-    # the system name "TOS" denotes a system which is actually not</div><div class='del'>-    # MiNT.  But MiNT is downward compatible to TOS, so this should</div><div class='del'>-    # be no problem.</div><div class='del'>-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)</div><div class='del'>-        echo m68k-atari-mint${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)</div><div class='del'>-	echo m68k-atari-mint${UNAME_RELEASE}</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)</div><div class='del'>-        echo m68k-atari-mint${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)</div><div class='del'>-        echo m68k-milan-mint${UNAME_RELEASE}</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)</div><div class='del'>-        echo m68k-hades-mint${UNAME_RELEASE}</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)</div><div class='del'>-        echo m68k-unknown-mint${UNAME_RELEASE}</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    m68k:machten:*:*)</div><div class='del'>-	echo m68k-apple-machten${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    powerpc:machten:*:*)</div><div class='del'>-	echo powerpc-apple-machten${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    RISC*:Mach:*:*)</div><div class='del'>-	echo mips-dec-mach_bsd4.3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    RISC*:ULTRIX:*:*)</div><div class='del'>-	echo mips-dec-ultrix${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    VAX*:ULTRIX*:*:*)</div><div class='del'>-	echo vax-dec-ultrix${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    2020:CLIX:*:* | 2430:CLIX:*:*)</div><div class='del'>-	echo clipper-intergraph-clix${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mips:*:*:UMIPS | mips:*:*:RISCos)</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-#include &lt;stdio.h&gt;  /* for printf() prototype */</div><div class='del'>-	int main (int argc, char *argv[]) {</div><div class='del'>-#else</div><div class='del'>-	int main (argc, argv) int argc; char *argv[]; {</div><div class='del'>-#endif</div><div class='del'>-	#if defined (host_mips) &amp;&amp; defined (MIPSEB)</div><div class='del'>-	#if defined (SYSTYPE_SYSV)</div><div class='del'>-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);</div><div class='del'>-	#endif</div><div class='del'>-	#if defined (SYSTYPE_SVR4)</div><div class='del'>-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);</div><div class='del'>-	#endif</div><div class='del'>-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)</div><div class='del'>-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);</div><div class='del'>-	#endif</div><div class='del'>-	#endif</div><div class='del'>-	  exit (-1);</div><div class='del'>-	}</div><div class='del'>-EOF</div><div class='del'>-	$CC_FOR_BUILD -o $dummy $dummy.c \</div><div class='del'>-	  &amp;&amp; $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \</div><div class='del'>-	  &amp;&amp; exit 0</div><div class='del'>-	echo mips-mips-riscos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Motorola:PowerMAX_OS:*:*)</div><div class='del'>-	echo powerpc-motorola-powermax</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Motorola:*:4.3:PL8-*)</div><div class='del'>-	echo powerpc-harris-powermax</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)</div><div class='del'>-	echo powerpc-harris-powermax</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Night_Hawk:Power_UNIX:*:*)</div><div class='del'>-	echo powerpc-harris-powerunix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    m88k:CX/UX:7*:*)</div><div class='del'>-	echo m88k-harris-cxux7</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    m88k:*:4*:R4*)</div><div class='del'>-	echo m88k-motorola-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    m88k:*:3*:R3*)</div><div class='del'>-	echo m88k-motorola-sysv3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    AViiON:dgux:*:*)</div><div class='del'>-        # DG/UX returns AViiON for all architectures</div><div class='del'>-        UNAME_PROCESSOR=`/usr/bin/uname -p`</div><div class='del'>-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]</div><div class='del'>-	then</div><div class='del'>-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \</div><div class='del'>-	       [ ${TARGET_BINARY_INTERFACE}x = x ]</div><div class='del'>-	    then</div><div class='del'>-		echo m88k-dg-dgux${UNAME_RELEASE}</div><div class='del'>-	    else</div><div class='del'>-		echo m88k-dg-dguxbcs${UNAME_RELEASE}</div><div class='del'>-	    fi</div><div class='del'>-	else</div><div class='del'>-	    echo i586-dg-dgux${UNAME_RELEASE}</div><div class='del'>-	fi</div><div class='del'>- 	exit 0 ;;</div><div class='del'>-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)</div><div class='del'>-	echo m88k-dolphin-sysv3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    M88*:*:R3*:*)</div><div class='del'>-	# Delta 88k system running SVR3</div><div class='del'>-	echo m88k-motorola-sysv3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)</div><div class='del'>-	echo m88k-tektronix-sysv3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)</div><div class='del'>-	echo m68k-tektronix-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:IRIX*:*:*)</div><div class='del'>-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.</div><div class='del'>-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id</div><div class='del'>-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '</div><div class='del'>-    i*86:AIX:*:*)</div><div class='del'>-	echo i386-ibm-aix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ia64:AIX:*:*)</div><div class='del'>-	if [ -x /usr/bin/oslevel ] ; then</div><div class='del'>-		IBM_REV=`/usr/bin/oslevel`</div><div class='del'>-	else</div><div class='del'>-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}</div><div class='del'>-	fi</div><div class='del'>-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:AIX:2:3)</div><div class='del'>-	if grep bos325 /usr/include/stdio.h &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-		eval $set_cc_for_build</div><div class='del'>-		sed 's/^		//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-		#include &lt;sys/systemcfg.h&gt;</div><div class='del'>-</div><div class='del'>-		main()</div><div class='del'>-			{</div><div class='del'>-			if (!__power_pc())</div><div class='del'>-				exit(1);</div><div class='del'>-			puts("powerpc-ibm-aix3.2.5");</div><div class='del'>-			exit(0);</div><div class='del'>-			}</div><div class='del'>-EOF</div><div class='del'>-		$CC_FOR_BUILD -o $dummy $dummy.c &amp;&amp; $dummy &amp;&amp; exit 0</div><div class='del'>-		echo rs6000-ibm-aix3.2.5</div><div class='del'>-	elif grep bos324 /usr/include/stdio.h &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-		echo rs6000-ibm-aix3.2.4</div><div class='del'>-	else</div><div class='del'>-		echo rs6000-ibm-aix3.2</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:AIX:*:[45])</div><div class='del'>-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`</div><div class='del'>-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-		IBM_ARCH=rs6000</div><div class='del'>-	else</div><div class='del'>-		IBM_ARCH=powerpc</div><div class='del'>-	fi</div><div class='del'>-	if [ -x /usr/bin/oslevel ] ; then</div><div class='del'>-		IBM_REV=`/usr/bin/oslevel`</div><div class='del'>-	else</div><div class='del'>-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}</div><div class='del'>-	fi</div><div class='del'>-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:AIX:*:*)</div><div class='del'>-	echo rs6000-ibm-aix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)</div><div class='del'>-	echo romp-ibm-bsd4.4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and</div><div class='del'>-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to</div><div class='del'>-	exit 0 ;;                           # report: romp-ibm BSD 4.3</div><div class='del'>-    *:BOSX:*:*)</div><div class='del'>-	echo rs6000-bull-bosx</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    DPX/2?00:B.O.S.:*:*)</div><div class='del'>-	echo m68k-bull-sysv3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    9000/[34]??:4.3bsd:1.*:*)</div><div class='del'>-	echo m68k-hp-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)</div><div class='del'>-	echo m68k-hp-bsd4.4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    9000/[34678]??:HP-UX:*:*)</div><div class='del'>-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`</div><div class='del'>-	case "${UNAME_MACHINE}" in</div><div class='del'>-	    9000/31? )            HP_ARCH=m68000 ;;</div><div class='del'>-	    9000/[34]?? )         HP_ARCH=m68k ;;</div><div class='del'>-	    9000/[678][0-9][0-9])</div><div class='del'>-		if [ -x /usr/bin/getconf ]; then</div><div class='del'>-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2&gt;/dev/null`</div><div class='del'>-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2&gt;/dev/null`</div><div class='del'>-                    case "${sc_cpu_version}" in</div><div class='del'>-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0</div><div class='del'>-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1</div><div class='del'>-                      532)                      # CPU_PA_RISC2_0</div><div class='del'>-                        case "${sc_kernel_bits}" in</div><div class='del'>-                          32) HP_ARCH="hppa2.0n" ;;</div><div class='del'>-                          64) HP_ARCH="hppa2.0w" ;;</div><div class='del'>-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20</div><div class='del'>-                        esac ;;</div><div class='del'>-                    esac</div><div class='del'>-		fi</div><div class='del'>-		if [ "${HP_ARCH}" = "" ]; then</div><div class='del'>-		    eval $set_cc_for_build</div><div class='del'>-		    sed 's/^              //' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-</div><div class='del'>-              #define _HPUX_SOURCE</div><div class='del'>-              #include &lt;stdlib.h&gt;</div><div class='del'>-              #include &lt;unistd.h&gt;</div><div class='del'>-</div><div class='del'>-              int main ()</div><div class='del'>-              {</div><div class='del'>-              #if defined(_SC_KERNEL_BITS)</div><div class='del'>-                  long bits = sysconf(_SC_KERNEL_BITS);</div><div class='del'>-              #endif</div><div class='del'>-                  long cpu  = sysconf (_SC_CPU_VERSION);</div><div class='del'>-</div><div class='del'>-                  switch (cpu)</div><div class='del'>-              	{</div><div class='del'>-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;</div><div class='del'>-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;</div><div class='del'>-              	case CPU_PA_RISC2_0:</div><div class='del'>-              #if defined(_SC_KERNEL_BITS)</div><div class='del'>-              	    switch (bits)</div><div class='del'>-              		{</div><div class='del'>-              		case 64: puts ("hppa2.0w"); break;</div><div class='del'>-              		case 32: puts ("hppa2.0n"); break;</div><div class='del'>-              		default: puts ("hppa2.0"); break;</div><div class='del'>-              		} break;</div><div class='del'>-              #else  /* !defined(_SC_KERNEL_BITS) */</div><div class='del'>-              	    puts ("hppa2.0"); break;</div><div class='del'>-              #endif</div><div class='del'>-              	default: puts ("hppa1.0"); break;</div><div class='del'>-              	}</div><div class='del'>-                  exit (0);</div><div class='del'>-              }</div><div class='del'>-EOF</div><div class='del'>-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2&gt;/dev/null) &amp;&amp; HP_ARCH=`$dummy`</div><div class='del'>-		    test -z "$HP_ARCH" &amp;&amp; HP_ARCH=hppa</div><div class='del'>-		fi ;;</div><div class='del'>-	esac</div><div class='del'>-	if [ ${HP_ARCH} = "hppa2.0w" ]</div><div class='del'>-	then</div><div class='del'>-	    # avoid double evaluation of $set_cc_for_build</div><div class='del'>-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build</div><div class='del'>-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ &gt;/dev/null</div><div class='del'>-	    then</div><div class='del'>-		HP_ARCH="hppa2.0w"</div><div class='del'>-	    else</div><div class='del'>-		HP_ARCH="hppa64"</div><div class='del'>-	    fi</div><div class='del'>-	fi</div><div class='del'>-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ia64:HP-UX:*:*)</div><div class='del'>-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`</div><div class='del'>-	echo ia64-hp-hpux${HPUX_REV}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    3050*:HI-UX:*:*)</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-	#include &lt;unistd.h&gt;</div><div class='del'>-	int</div><div class='del'>-	main ()</div><div class='del'>-	{</div><div class='del'>-	  long cpu = sysconf (_SC_CPU_VERSION);</div><div class='del'>-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns</div><div class='del'>-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct</div><div class='del'>-	     results, however.  */</div><div class='del'>-	  if (CPU_IS_PA_RISC (cpu))</div><div class='del'>-	    {</div><div class='del'>-	      switch (cpu)</div><div class='del'>-		{</div><div class='del'>-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;</div><div class='del'>-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;</div><div class='del'>-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;</div><div class='del'>-		  default: puts ("hppa-hitachi-hiuxwe2"); break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	  else if (CPU_IS_HP_MC68K (cpu))</div><div class='del'>-	    puts ("m68k-hitachi-hiuxwe2");</div><div class='del'>-	  else puts ("unknown-hitachi-hiuxwe2");</div><div class='del'>-	  exit (0);</div><div class='del'>-	}</div><div class='del'>-EOF</div><div class='del'>-	$CC_FOR_BUILD -o $dummy $dummy.c &amp;&amp; $dummy &amp;&amp; exit 0</div><div class='del'>-	echo unknown-hitachi-hiuxwe2</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )</div><div class='del'>-	echo hppa1.1-hp-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    9000/8??:4.3bsd:*:*)</div><div class='del'>-	echo hppa1.0-hp-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)</div><div class='del'>-	echo hppa1.0-hp-mpeix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )</div><div class='del'>-	echo hppa1.1-hp-osf</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    hp8??:OSF1:*:*)</div><div class='del'>-	echo hppa1.0-hp-osf</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:OSF1:*:*)</div><div class='del'>-	if [ -x /usr/sbin/sysversion ] ; then</div><div class='del'>-	    echo ${UNAME_MACHINE}-unknown-osf1mk</div><div class='del'>-	else</div><div class='del'>-	    echo ${UNAME_MACHINE}-unknown-osf1</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    parisc*:Lites*:*:*)</div><div class='del'>-	echo hppa1.1-hp-lites</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)</div><div class='del'>-	echo c1-convex-bsd</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)</div><div class='del'>-	if getsysinfo -f scalar_acc</div><div class='del'>-	then echo c32-convex-bsd</div><div class='del'>-	else echo c2-convex-bsd</div><div class='del'>-	fi</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)</div><div class='del'>-	echo c34-convex-bsd</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)</div><div class='del'>-	echo c38-convex-bsd</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)</div><div class='del'>-	echo c4-convex-bsd</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    CRAY*Y-MP:*:*:*)</div><div class='del'>-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    CRAY*[A-Z]90:*:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \</div><div class='del'>-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \</div><div class='del'>-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \</div><div class='del'>-	      -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    CRAY*TS:*:*:*)</div><div class='del'>-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    CRAY*T3E:*:*:*)</div><div class='del'>-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    CRAY*SV1:*:*:*)</div><div class='del'>-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:UNICOS/mp:*:*)</div><div class='del'>-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)</div><div class='del'>-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`</div><div class='del'>-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`</div><div class='del'>-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`</div><div class='del'>-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    5000:UNIX_System_V:4.*:*)</div><div class='del'>-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`</div><div class='del'>-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`</div><div class='del'>-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sparc*:BSD/OS:*:*)</div><div class='del'>-	echo sparc-unknown-bsdi${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:BSD/OS:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:FreeBSD:*:*)</div><div class='del'>-	# Determine whether the default compiler uses glibc.</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-	#include &lt;features.h&gt;</div><div class='del'>-	#if __GLIBC__ &gt;= 2</div><div class='del'>-	LIBC=gnu</div><div class='del'>-	#else</div><div class='del'>-	LIBC=</div><div class='del'>-	#endif</div><div class='del'>-EOF</div><div class='del'>-	eval `$CC_FOR_BUILD -E $dummy.c 2&gt;/dev/null | grep ^LIBC=`</div><div class='del'>-	# GNU/KFreeBSD systems have a "k" prefix to indicate we are using</div><div class='del'>-	# FreeBSD's kernel, but not the complete OS.</div><div class='del'>-	case ${LIBC} in gnu) kernel_only='k' ;; esac</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:CYGWIN*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-cygwin</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:MINGW*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-mingw32</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:PW*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-pw32</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    x86:Interix*:[34]*)</div><div class='del'>-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)</div><div class='del'>-	echo i${UNAME_MACHINE}-pc-mks</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)</div><div class='del'>-	# How do we know it's Interix rather than the generic POSIX subsystem?</div><div class='del'>-	# It also conflicts with pre-2.0 versions of AT&amp;T UWIN. Should we</div><div class='del'>-	# UNAME_MACHINE based on the output of uname instead of i386?</div><div class='del'>-	echo i586-pc-interix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:UWIN*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-uwin</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    p*:CYGWIN*:*)</div><div class='del'>-	echo powerpcle-unknown-cygwin</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    prep*:SunOS:5.*:*)</div><div class='del'>-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:GNU:*:*)</div><div class='del'>-	# the GNU system</div><div class='del'>-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:GNU/*:*:*)</div><div class='del'>-	# other systems with GNU libc and userland</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:Minix:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-minix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    arm*:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    cris:Linux:*:*)</div><div class='del'>-	echo cris-axis-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ia64:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    m32r*:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    m68*:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mips:Linux:*:*)</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-	#undef CPU</div><div class='del'>-	#undef mips</div><div class='del'>-	#undef mipsel</div><div class='del'>-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)</div><div class='del'>-	CPU=mipsel</div><div class='del'>-	#else</div><div class='del'>-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)</div><div class='del'>-	CPU=mips</div><div class='del'>-	#else</div><div class='del'>-	CPU=</div><div class='del'>-	#endif</div><div class='del'>-	#endif</div><div class='del'>-EOF</div><div class='del'>-	eval `$CC_FOR_BUILD -E $dummy.c 2&gt;/dev/null | grep ^CPU=`</div><div class='del'>-	test x"${CPU}" != x &amp;&amp; echo "${CPU}-unknown-linux-gnu" &amp;&amp; exit 0</div><div class='del'>-	;;</div><div class='del'>-    mips64:Linux:*:*)</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-	#undef CPU</div><div class='del'>-	#undef mips64</div><div class='del'>-	#undef mips64el</div><div class='del'>-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)</div><div class='del'>-	CPU=mips64el</div><div class='del'>-	#else</div><div class='del'>-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)</div><div class='del'>-	CPU=mips64</div><div class='del'>-	#else</div><div class='del'>-	CPU=</div><div class='del'>-	#endif</div><div class='del'>-	#endif</div><div class='del'>-EOF</div><div class='del'>-	eval `$CC_FOR_BUILD -E $dummy.c 2&gt;/dev/null | grep ^CPU=`</div><div class='del'>-	test x"${CPU}" != x &amp;&amp; echo "${CPU}-unknown-linux-gnu" &amp;&amp; exit 0</div><div class='del'>-	;;</div><div class='del'>-    ppc:Linux:*:*)</div><div class='del'>-	echo powerpc-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    ppc64:Linux:*:*)</div><div class='del'>-	echo powerpc64-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    alpha:Linux:*:*)</div><div class='del'>-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' &lt; /proc/cpuinfo` in</div><div class='del'>-	  EV5)   UNAME_MACHINE=alphaev5 ;;</div><div class='del'>-	  EV56)  UNAME_MACHINE=alphaev56 ;;</div><div class='del'>-	  PCA56) UNAME_MACHINE=alphapca56 ;;</div><div class='del'>-	  PCA57) UNAME_MACHINE=alphapca56 ;;</div><div class='del'>-	  EV6)   UNAME_MACHINE=alphaev6 ;;</div><div class='del'>-	  EV67)  UNAME_MACHINE=alphaev67 ;;</div><div class='del'>-	  EV68*) UNAME_MACHINE=alphaev68 ;;</div><div class='del'>-        esac</div><div class='del'>-	objdump --private-headers /bin/sh | grep ld.so.1 &gt;/dev/null</div><div class='del'>-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    parisc:Linux:*:* | hppa:Linux:*:*)</div><div class='del'>-	# Look for CPU level</div><div class='del'>-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2&gt;/dev/null | cut -d' ' -f2` in</div><div class='del'>-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;</div><div class='del'>-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;</div><div class='del'>-	  *)    echo hppa-unknown-linux-gnu ;;</div><div class='del'>-	esac</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    parisc64:Linux:*:* | hppa64:Linux:*:*)</div><div class='del'>-	echo hppa64-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    s390:Linux:*:* | s390x:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-ibm-linux</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sh64*:Linux:*:*)</div><div class='del'>-    	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sh*:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sparc:Linux:*:* | sparc64:Linux:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    x86_64:Linux:*:*)</div><div class='del'>-	echo x86_64-unknown-linux-gnu</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:Linux:*:*)</div><div class='del'>-	# The BFD linker knows what the default object file format is, so</div><div class='del'>-	# first see if it will tell us. cd to the root directory to prevent</div><div class='del'>-	# problems with other programs or directories called `ld' in the path.</div><div class='del'>-	# Set LC_ALL=C to ensure ld outputs messages in English.</div><div class='del'>-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2&gt;&amp;1 \</div><div class='del'>-			 | sed -ne '/supported targets:/!d</div><div class='del'>-				    s/[ 	][ 	]*/ /g</div><div class='del'>-				    s/.*supported targets: *//</div><div class='del'>-				    s/ .*//</div><div class='del'>-				    p'`</div><div class='del'>-        case "$ld_supported_targets" in</div><div class='del'>-	  elf32-i386)</div><div class='del'>-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"</div><div class='del'>-		;;</div><div class='del'>-	  a.out-i386-linux)</div><div class='del'>-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"</div><div class='del'>-		exit 0 ;;</div><div class='del'>-	  coff-i386)</div><div class='del'>-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"</div><div class='del'>-		exit 0 ;;</div><div class='del'>-	  "")</div><div class='del'>-		# Either a pre-BFD a.out linker (linux-gnuoldld) or</div><div class='del'>-		# one that does not give us useful --help.</div><div class='del'>-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"</div><div class='del'>-		exit 0 ;;</div><div class='del'>-	esac</div><div class='del'>-	# Determine whether the default compiler is a.out or elf</div><div class='del'>-	eval $set_cc_for_build</div><div class='del'>-	sed 's/^	//' &lt;&lt; EOF &gt;$dummy.c</div><div class='del'>-	#include &lt;features.h&gt;</div><div class='del'>-	#ifdef __ELF__</div><div class='del'>-	# ifdef __GLIBC__</div><div class='del'>-	#  if __GLIBC__ &gt;= 2</div><div class='del'>-	LIBC=gnu</div><div class='del'>-	#  else</div><div class='del'>-	LIBC=gnulibc1</div><div class='del'>-	#  endif</div><div class='del'>-	# else</div><div class='del'>-	LIBC=gnulibc1</div><div class='del'>-	# endif</div><div class='del'>-	#else</div><div class='del'>-	#ifdef __INTEL_COMPILER</div><div class='del'>-	LIBC=gnu</div><div class='del'>-	#else</div><div class='del'>-	LIBC=gnuaout</div><div class='del'>-	#endif</div><div class='del'>-	#endif</div><div class='del'>-	#ifdef __dietlibc__</div><div class='del'>-	LIBC=dietlibc</div><div class='del'>-	#endif</div><div class='del'>-EOF</div><div class='del'>-	eval `$CC_FOR_BUILD -E $dummy.c 2&gt;/dev/null | grep ^LIBC=`</div><div class='del'>-	test x"${LIBC}" != x &amp;&amp; echo "${UNAME_MACHINE}-pc-linux-${LIBC}" &amp;&amp; exit 0</div><div class='del'>-	test x"${TENTATIVE}" != x &amp;&amp; echo "${TENTATIVE}" &amp;&amp; exit 0</div><div class='del'>-	;;</div><div class='del'>-    i*86:DYNIX/ptx:4*:*)</div><div class='del'>-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.</div><div class='del'>-	# earlier versions are messed up and put the nodename in both</div><div class='del'>-	# sysname and nodename.</div><div class='del'>-	echo i386-sequent-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:UNIX_SV:4.2MP:2.*)</div><div class='del'>-        # Unixware is an offshoot of SVR4, but it has its own version</div><div class='del'>-        # number series starting with 2...</div><div class='del'>-        # I am not positive that other SVR4 systems won't match this,</div><div class='del'>-	# I just have to hope.  -- rms.</div><div class='del'>-        # Use sysv4.2uw... so that sysv4* matches it.</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:OS/2:*:*)</div><div class='del'>-	# If we were able to find `uname', then EMX Unix compatibility</div><div class='del'>-	# is probably installed.</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-os2-emx</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:XTS-300:*:STOP)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-stop</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:atheos:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-atheos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-	i*86:syllable:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-syllable</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)</div><div class='del'>-	echo i386-unknown-lynxos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:*DOS:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-msdosdjgpp</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)</div><div class='del'>-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`</div><div class='del'>-	if grep Novell /usr/include/link.h &gt;/dev/null 2&gt;/dev/null; then</div><div class='del'>-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}</div><div class='del'>-	else</div><div class='del'>-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:*:5:[78]*)</div><div class='del'>-	case `/bin/uname -X | grep "^Machine"` in</div><div class='del'>-	    *486*)	     UNAME_MACHINE=i486 ;;</div><div class='del'>-	    *Pentium)	     UNAME_MACHINE=i586 ;;</div><div class='del'>-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;</div><div class='del'>-	esac</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*86:*:3.2:*)</div><div class='del'>-	if test -f /usr/options/cb.name; then</div><div class='del'>-		UNAME_REL=`sed -n 's/.*Version //p' &lt;/usr/options/cb.name`</div><div class='del'>-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL</div><div class='del'>-	elif /bin/uname -X 2&gt;/dev/null &gt;/dev/null ; then</div><div class='del'>-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`</div><div class='del'>-		(/bin/uname -X|grep i80486 &gt;/dev/null) &amp;&amp; UNAME_MACHINE=i486</div><div class='del'>-		(/bin/uname -X|grep '^Machine.*Pentium' &gt;/dev/null) \</div><div class='del'>-			&amp;&amp; UNAME_MACHINE=i586</div><div class='del'>-		(/bin/uname -X|grep '^Machine.*Pent *II' &gt;/dev/null) \</div><div class='del'>-			&amp;&amp; UNAME_MACHINE=i686</div><div class='del'>-		(/bin/uname -X|grep '^Machine.*Pentium Pro' &gt;/dev/null) \</div><div class='del'>-			&amp;&amp; UNAME_MACHINE=i686</div><div class='del'>-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL</div><div class='del'>-	else</div><div class='del'>-		echo ${UNAME_MACHINE}-pc-sysv32</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    pc:*:*:*)</div><div class='del'>-	# Left here for compatibility:</div><div class='del'>-        # uname -m prints for DJGPP always 'pc', but it prints nothing about</div><div class='del'>-        # the processor, so we play safe by assuming i386.</div><div class='del'>-	echo i386-pc-msdosdjgpp</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    Intel:Mach:3*:*)</div><div class='del'>-	echo i386-pc-mach3</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    paragon:*:*:*)</div><div class='del'>-	echo i860-intel-osf1</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i860:*:4.*:*) # i860-SVR4</div><div class='del'>-	if grep Stardent /usr/include/sys/uadmin.h &gt;/dev/null 2&gt;&amp;1 ; then</div><div class='del'>-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4</div><div class='del'>-	else # Add other i860-SVR4 vendors below as they are discovered.</div><div class='del'>-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mini*:CTIX:SYS*5:*)</div><div class='del'>-	# "miniframe"</div><div class='del'>-	echo m68010-convergent-sysv</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mc68k:UNIX:SYSTEM5:3.51m)</div><div class='del'>-	echo m68k-convergent-sysv</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    M680?0:D-NIX:5.3:*)</div><div class='del'>-	echo m68k-diab-dnix</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    M68*:*:R3V[5678]*:*)</div><div class='del'>-	test -r /sysV68 &amp;&amp; echo 'm68k-motorola-sysv' &amp;&amp; exit 0 ;;</div><div class='del'>-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)</div><div class='del'>-	OS_REL=''</div><div class='del'>-	test -r /etc/.relid \</div><div class='del'>-	&amp;&amp; OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' &lt; /etc/.relid`</div><div class='del'>-	/bin/uname -p 2&gt;/dev/null | grep 86 &gt;/dev/null \</div><div class='del'>-	  &amp;&amp; echo i486-ncr-sysv4.3${OS_REL} &amp;&amp; exit 0</div><div class='del'>-	/bin/uname -p 2&gt;/dev/null | /bin/grep entium &gt;/dev/null \</div><div class='del'>-	  &amp;&amp; echo i586-ncr-sysv4.3${OS_REL} &amp;&amp; exit 0 ;;</div><div class='del'>-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)</div><div class='del'>-        /bin/uname -p 2&gt;/dev/null | grep 86 &gt;/dev/null \</div><div class='del'>-          &amp;&amp; echo i486-ncr-sysv4 &amp;&amp; exit 0 ;;</div><div class='del'>-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)</div><div class='del'>-	echo m68k-unknown-lynxos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mc68030:UNIX_System_V:4.*:*)</div><div class='del'>-	echo m68k-atari-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    TSUNAMI:LynxOS:2.*:*)</div><div class='del'>-	echo sparc-unknown-lynxos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    rs6000:LynxOS:2.*:*)</div><div class='del'>-	echo rs6000-unknown-lynxos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)</div><div class='del'>-	echo powerpc-unknown-lynxos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SM[BE]S:UNIX_SV:*:*)</div><div class='del'>-	echo mips-dde-sysv${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    RM*:ReliantUNIX-*:*:*)</div><div class='del'>-	echo mips-sni-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    RM*:SINIX-*:*:*)</div><div class='del'>-	echo mips-sni-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:SINIX-*:*:*)</div><div class='del'>-	if uname -p 2&gt;/dev/null &gt;/dev/null ; then</div><div class='del'>-		UNAME_MACHINE=`(uname -p) 2&gt;/dev/null`</div><div class='del'>-		echo ${UNAME_MACHINE}-sni-sysv4</div><div class='del'>-	else</div><div class='del'>-		echo ns32k-sni-sysv</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort</div><div class='del'>-                      # says &lt;Richard.M.Bartel@ccMail.Census.GOV&gt;</div><div class='del'>-        echo i586-unisys-sysv4</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    *:UNIX_System_V:4*:FTX*)</div><div class='del'>-	# From Gerald Hewes &lt;hewes@openmarket.com&gt;.</div><div class='del'>-	# How about differentiating between stratus architectures? -djm</div><div class='del'>-	echo hppa1.1-stratus-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:*:*:FTX*)</div><div class='del'>-	# From seanf@swdc.stratus.com.</div><div class='del'>-	echo i860-stratus-sysv4</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:VOS:*:*)</div><div class='del'>-	# From Paul.Green@stratus.com.</div><div class='del'>-	echo hppa1.1-stratus-vos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    mc68*:A/UX:*:*)</div><div class='del'>-	echo m68k-apple-aux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    news*:NEWS-OS:6*:*)</div><div class='del'>-	echo mips-sony-newsos6</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)</div><div class='del'>-	if [ -d /usr/nec ]; then</div><div class='del'>-	        echo mips-nec-sysv${UNAME_RELEASE}</div><div class='del'>-	else</div><div class='del'>-	        echo mips-unknown-sysv${UNAME_RELEASE}</div><div class='del'>-	fi</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.</div><div class='del'>-	echo powerpc-be-beos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.</div><div class='del'>-	echo powerpc-apple-beos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.</div><div class='del'>-	echo i586-pc-beos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SX-4:SUPER-UX:*:*)</div><div class='del'>-	echo sx4-nec-superux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SX-5:SUPER-UX:*:*)</div><div class='del'>-	echo sx5-nec-superux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SX-6:SUPER-UX:*:*)</div><div class='del'>-	echo sx6-nec-superux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    Power*:Rhapsody:*:*)</div><div class='del'>-	echo powerpc-apple-rhapsody${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:Rhapsody:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:Darwin:*:*)</div><div class='del'>-	case `uname -p` in</div><div class='del'>-	    *86) UNAME_PROCESSOR=i686 ;;</div><div class='del'>-	    powerpc) UNAME_PROCESSOR=powerpc ;;</div><div class='del'>-	esac</div><div class='del'>-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:procnto*:*:* | *:QNX:[0123456789]*:*)</div><div class='del'>-	UNAME_PROCESSOR=`uname -p`</div><div class='del'>-	if test "$UNAME_PROCESSOR" = "x86"; then</div><div class='del'>-		UNAME_PROCESSOR=i386</div><div class='del'>-		UNAME_MACHINE=pc</div><div class='del'>-	fi</div><div class='del'>-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:QNX:*:4*)</div><div class='del'>-	echo i386-pc-qnx</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    NSR-?:NONSTOP_KERNEL:*:*)</div><div class='del'>-	echo nsr-tandem-nsk${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:NonStop-UX:*:*)</div><div class='del'>-	echo mips-compaq-nonstopux</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    BS2000:POSIX*:*:*)</div><div class='del'>-	echo bs2000-siemens-sysv</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    DS/*:UNIX_System_V:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:Plan9:*:*)</div><div class='del'>-	# "uname -m" is not consistent, so use $cputype instead. 386</div><div class='del'>-	# is converted to i386 for consistency with other x86</div><div class='del'>-	# operating systems.</div><div class='del'>-	if test "$cputype" = "386"; then</div><div class='del'>-	    UNAME_MACHINE=i386</div><div class='del'>-	else</div><div class='del'>-	    UNAME_MACHINE="$cputype"</div><div class='del'>-	fi</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-plan9</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:TOPS-10:*:*)</div><div class='del'>-	echo pdp10-unknown-tops10</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:TENEX:*:*)</div><div class='del'>-	echo pdp10-unknown-tenex</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)</div><div class='del'>-	echo pdp10-dec-tops20</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)</div><div class='del'>-	echo pdp10-xkl-tops20</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:TOPS-20:*:*)</div><div class='del'>-	echo pdp10-unknown-tops20</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:ITS:*:*)</div><div class='del'>-	echo pdp10-unknown-its</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SEI:*:*:SEIUX)</div><div class='del'>-        echo mips-sei-seiux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:DragonFly:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-#echo '(No uname command or uname output not recognized.)' 1&gt;&amp;2</div><div class='del'>-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1&gt;&amp;2</div><div class='del'>-</div><div class='del'>-eval $set_cc_for_build</div><div class='del'>-cat &gt;$dummy.c &lt;&lt;EOF</div><div class='del'>-#ifdef _SEQUENT_</div><div class='del'>-# include &lt;sys/types.h&gt;</div><div class='del'>-# include &lt;sys/utsname.h&gt;</div><div class='del'>-#endif</div><div class='del'>-main ()</div><div class='del'>-{</div><div class='del'>-#if defined (sony)</div><div class='del'>-#if defined (MIPSEB)</div><div class='del'>-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,</div><div class='del'>-     I don't know....  */</div><div class='del'>-  printf ("mips-sony-bsd\n"); exit (0);</div><div class='del'>-#else</div><div class='del'>-#include &lt;sys/param.h&gt;</div><div class='del'>-  printf ("m68k-sony-newsos%s\n",</div><div class='del'>-#ifdef NEWSOS4</div><div class='del'>-          "4"</div><div class='del'>-#else</div><div class='del'>-	  ""</div><div class='del'>-#endif</div><div class='del'>-         ); exit (0);</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (__arm) &amp;&amp; defined (__acorn) &amp;&amp; defined (__unix)</div><div class='del'>-  printf ("arm-acorn-riscix"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (hp300) &amp;&amp; !defined (hpux)</div><div class='del'>-  printf ("m68k-hp-bsd\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (NeXT)</div><div class='del'>-#if !defined (__ARCHITECTURE__)</div><div class='del'>-#define __ARCHITECTURE__ "m68k"</div><div class='del'>-#endif</div><div class='del'>-  int version;</div><div class='del'>-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2&gt;/dev/null`;</div><div class='del'>-  if (version &lt; 4)</div><div class='del'>-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);</div><div class='del'>-  else</div><div class='del'>-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);</div><div class='del'>-  exit (0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (MULTIMAX) || defined (n16)</div><div class='del'>-#if defined (UMAXV)</div><div class='del'>-  printf ("ns32k-encore-sysv\n"); exit (0);</div><div class='del'>-#else</div><div class='del'>-#if defined (CMU)</div><div class='del'>-  printf ("ns32k-encore-mach\n"); exit (0);</div><div class='del'>-#else</div><div class='del'>-  printf ("ns32k-encore-bsd\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (__386BSD__)</div><div class='del'>-  printf ("i386-pc-bsd\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (sequent)</div><div class='del'>-#if defined (i386)</div><div class='del'>-  printf ("i386-sequent-dynix\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-#if defined (ns32000)</div><div class='del'>-  printf ("ns32k-sequent-dynix\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (_SEQUENT_)</div><div class='del'>-    struct utsname un;</div><div class='del'>-</div><div class='del'>-    uname(&amp;un);</div><div class='del'>-</div><div class='del'>-    if (strncmp(un.version, "V2", 2) == 0) {</div><div class='del'>-	printf ("i386-sequent-ptx2\n"); exit (0);</div><div class='del'>-    }</div><div class='del'>-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */</div><div class='del'>-	printf ("i386-sequent-ptx1\n"); exit (0);</div><div class='del'>-    }</div><div class='del'>-    printf ("i386-sequent-ptx\n"); exit (0);</div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (vax)</div><div class='del'>-# if !defined (ultrix)</div><div class='del'>-#  include &lt;sys/param.h&gt;</div><div class='del'>-#  if defined (BSD)</div><div class='del'>-#   if BSD == 43</div><div class='del'>-      printf ("vax-dec-bsd4.3\n"); exit (0);</div><div class='del'>-#   else</div><div class='del'>-#    if BSD == 199006</div><div class='del'>-      printf ("vax-dec-bsd4.3reno\n"); exit (0);</div><div class='del'>-#    else</div><div class='del'>-      printf ("vax-dec-bsd\n"); exit (0);</div><div class='del'>-#    endif</div><div class='del'>-#   endif</div><div class='del'>-#  else</div><div class='del'>-    printf ("vax-dec-bsd\n"); exit (0);</div><div class='del'>-#  endif</div><div class='del'>-# else</div><div class='del'>-    printf ("vax-dec-ultrix\n"); exit (0);</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined (alliant) &amp;&amp; defined (i860)</div><div class='del'>-  printf ("i860-alliant-bsd\n"); exit (0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-  exit (1);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-$CC_FOR_BUILD -o $dummy $dummy.c 2&gt;/dev/null &amp;&amp; $dummy &amp;&amp; exit 0</div><div class='del'>-</div><div class='del'>-# Apollos put the system type in the environment.</div><div class='del'>-</div><div class='del'>-test -d /usr/apollo &amp;&amp; { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }</div><div class='del'>-</div><div class='del'>-# Convex versions that predate uname can use getsysinfo(1)</div><div class='del'>-</div><div class='del'>-if [ -x /usr/convex/getsysinfo ]</div><div class='del'>-then</div><div class='del'>-    case `getsysinfo -f cpu_type` in</div><div class='del'>-    c1*)</div><div class='del'>-	echo c1-convex-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    c2*)</div><div class='del'>-	if getsysinfo -f scalar_acc</div><div class='del'>-	then echo c32-convex-bsd</div><div class='del'>-	else echo c2-convex-bsd</div><div class='del'>-	fi</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    c34*)</div><div class='del'>-	echo c34-convex-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    c38*)</div><div class='del'>-	echo c38-convex-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    c4*)</div><div class='del'>-	echo c4-convex-bsd</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    esac</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-cat &gt;&amp;2 &lt;&lt;EOF</div><div class='del'>-$0: unable to guess system type</div><div class='del'>-</div><div class='del'>-This script, last modified $timestamp, has failed to recognize</div><div class='del'>-the operating system you are using. It is advised that you</div><div class='del'>-download the most up to date version of the config scripts from</div><div class='del'>-</div><div class='del'>-    ftp://ftp.gnu.org/pub/gnu/config/</div><div class='del'>-</div><div class='del'>-If the version you run ($0) is already up to date, please</div><div class='del'>-send the following data and any information you think might be</div><div class='del'>-pertinent to &lt;config-patches@gnu.org&gt; in order to provide the needed</div><div class='del'>-information to handle your system.</div><div class='del'>-</div><div class='del'>-config.guess timestamp = $timestamp</div><div class='del'>-</div><div class='del'>-uname -m = `(uname -m) 2&gt;/dev/null || echo unknown`</div><div class='del'>-uname -r = `(uname -r) 2&gt;/dev/null || echo unknown`</div><div class='del'>-uname -s = `(uname -s) 2&gt;/dev/null || echo unknown`</div><div class='del'>-uname -v = `(uname -v) 2&gt;/dev/null || echo unknown`</div><div class='del'>-</div><div class='del'>-/usr/bin/uname -p = `(/usr/bin/uname -p) 2&gt;/dev/null`</div><div class='del'>-/bin/uname -X     = `(/bin/uname -X) 2&gt;/dev/null`</div><div class='del'>-</div><div class='del'>-hostinfo               = `(hostinfo) 2&gt;/dev/null`</div><div class='del'>-/bin/universe          = `(/bin/universe) 2&gt;/dev/null`</div><div class='del'>-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2&gt;/dev/null`</div><div class='del'>-/bin/arch              = `(/bin/arch) 2&gt;/dev/null`</div><div class='del'>-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2&gt;/dev/null`</div><div class='del'>-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2&gt;/dev/null`</div><div class='del'>-</div><div class='del'>-UNAME_MACHINE = ${UNAME_MACHINE}</div><div class='del'>-UNAME_RELEASE = ${UNAME_RELEASE}</div><div class='del'>-UNAME_SYSTEM  = ${UNAME_SYSTEM}</div><div class='del'>-UNAME_VERSION = ${UNAME_VERSION}</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-exit 1</div><div class='del'>-</div><div class='del'>-# Local variables:</div><div class='del'>-# eval: (add-hook 'write-file-hooks 'time-stamp)</div><div class='del'>-# time-stamp-start: "timestamp='"</div><div class='del'>-# time-stamp-format: "%:y-%02m-%02d"</div><div class='del'>-# time-stamp-end: "'"</div><div class='del'>-# End:</div><div class='head'>diff --git a/config.sub b/config.sub<br/>deleted file mode 100644<br/>index 506d3ab77f..0000000000<br/>--- a/<a href='/ruby.git/tree/config.sub?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>config.sub</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1537 +0,0 @@</div><div class='del'>-#! /bin/sh</div><div class='del'>-# Configuration validation subroutine script.</div><div class='del'>-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,</div><div class='del'>-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-timestamp='2004-06-11'</div><div class='del'>-</div><div class='del'>-# This file is (in principle) common to ALL GNU software.</div><div class='del'>-# The presence of a machine in this file suggests that SOME GNU software</div><div class='del'>-# can handle that machine.  It does not imply ALL GNU software can.</div><div class='del'>-#</div><div class='del'>-# This file is free software; you can redistribute it and/or modify</div><div class='del'>-# it under the terms of the GNU General Public License as published by</div><div class='del'>-# the Free Software Foundation; either version 2 of the License, or</div><div class='del'>-# (at your option) any later version.</div><div class='del'>-#</div><div class='del'>-# This program is distributed in the hope that it will be useful,</div><div class='del'>-# but WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='del'>-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</div><div class='del'>-# GNU General Public License for more details.</div><div class='del'>-#</div><div class='del'>-# You should have received a copy of the GNU General Public License</div><div class='del'>-# along with this program; if not, write to the Free Software</div><div class='del'>-# Foundation, Inc., 59 Temple Place - Suite 330,</div><div class='del'>-# Boston, MA 02111-1307, USA.</div><div class='del'>-</div><div class='del'>-# As a special exception to the GNU General Public License, if you</div><div class='del'>-# distribute this file as part of a program that contains a</div><div class='del'>-# configuration script generated by Autoconf, you may include it under</div><div class='del'>-# the same distribution terms that you use for the rest of that program.</div><div class='del'>-</div><div class='del'>-# Please send patches to &lt;config-patches@gnu.org&gt;.  Submit a context</div><div class='del'>-# diff and a properly formatted ChangeLog entry.</div><div class='del'>-#</div><div class='del'>-# Configuration subroutine to validate and canonicalize a configuration type.</div><div class='del'>-# Supply the specified configuration type as an argument.</div><div class='del'>-# If it is invalid, we print an error message on stderr and exit with code 1.</div><div class='del'>-# Otherwise, we print the canonical config type on stdout and succeed.</div><div class='del'>-</div><div class='del'>-# This file is supposed to be the same for all GNU packages</div><div class='del'>-# and recognize all the CPU types, system types and aliases</div><div class='del'>-# that are meaningful with *any* GNU software.</div><div class='del'>-# Each package is responsible for reporting which valid configurations</div><div class='del'>-# it does not support.  The user should be able to distinguish</div><div class='del'>-# a failure to support a valid configuration from a meaningless</div><div class='del'>-# configuration.</div><div class='del'>-</div><div class='del'>-# The goal of this file is to map all the various variations of a given</div><div class='del'>-# machine specification into a single specification in the form:</div><div class='del'>-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM</div><div class='del'>-# or in some cases, the newer four-part form:</div><div class='del'>-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM</div><div class='del'>-# It is wrong to echo any other type of specification.</div><div class='del'>-</div><div class='del'>-me=`echo "$0" | sed -e 's,.*/,,'`</div><div class='del'>-</div><div class='del'>-usage="\</div><div class='del'>-Usage: $0 [OPTION] CPU-MFR-OPSYS</div><div class='del'>-       $0 [OPTION] ALIAS</div><div class='del'>-</div><div class='del'>-Canonicalize a configuration name.</div><div class='del'>-</div><div class='del'>-Operation modes:</div><div class='del'>-  -h, --help         print this help, then exit</div><div class='del'>-  -t, --time-stamp   print date of last modification, then exit</div><div class='del'>-  -v, --version      print version number, then exit</div><div class='del'>-</div><div class='del'>-Report bugs and patches to &lt;config-patches@gnu.org&gt;."</div><div class='del'>-</div><div class='del'>-version="\</div><div class='del'>-GNU config.sub ($timestamp)</div><div class='del'>-</div><div class='del'>-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001</div><div class='del'>-Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-This is free software; see the source for copying conditions.  There is NO</div><div class='del'>-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."</div><div class='del'>-</div><div class='del'>-help="</div><div class='del'>-Try \`$me --help' for more information."</div><div class='del'>-</div><div class='del'>-# Parse command line</div><div class='del'>-while test $# -gt 0 ; do</div><div class='del'>-  case $1 in</div><div class='del'>-    --time-stamp | --time* | -t )</div><div class='del'>-       echo "$timestamp" ; exit 0 ;;</div><div class='del'>-    --version | -v )</div><div class='del'>-       echo "$version" ; exit 0 ;;</div><div class='del'>-    --help | --h* | -h )</div><div class='del'>-       echo "$usage"; exit 0 ;;</div><div class='del'>-    -- )     # Stop option processing</div><div class='del'>-       shift; break ;;</div><div class='del'>-    - )	# Use stdin as input.</div><div class='del'>-       break ;;</div><div class='del'>-    -* )</div><div class='del'>-       echo "$me: invalid option $1$help"</div><div class='del'>-       exit 1 ;;</div><div class='del'>-</div><div class='del'>-    *local*)</div><div class='del'>-       # First pass through any local machine types.</div><div class='del'>-       echo $1</div><div class='del'>-       exit 0;;</div><div class='del'>-</div><div class='del'>-    * )</div><div class='del'>-       break ;;</div><div class='del'>-  esac</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-case $# in</div><div class='del'>- 0) echo "$me: missing argument$help" &gt;&amp;2</div><div class='del'>-    exit 1;;</div><div class='del'>- 1) ;;</div><div class='del'>- *) echo "$me: too many arguments$help" &gt;&amp;2</div><div class='del'>-    exit 1;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).</div><div class='del'>-# Here we must recognize all the valid KERNEL-OS combinations.</div><div class='del'>-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`</div><div class='del'>-case $maybe_os in</div><div class='del'>-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \</div><div class='del'>-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)</div><div class='del'>-    os=-$maybe_os</div><div class='del'>-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`</div><div class='del'>-    if [ $basic_machine != $1 ]</div><div class='del'>-    then os=`echo $1 | sed 's/.*-/-/'`</div><div class='del'>-    else os=; fi</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-### Let's recognize common machines as not being operating systems so</div><div class='del'>-### that things like config.sub decstation-3100 work.  We also</div><div class='del'>-### recognize some manufacturers as not being operating systems, so we</div><div class='del'>-### can provide default operating systems below.</div><div class='del'>-case $os in</div><div class='del'>-	-sun*os*)</div><div class='del'>-		# Prevent following clause from handling this invalid input.</div><div class='del'>-		;;</div><div class='del'>-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \</div><div class='del'>-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \</div><div class='del'>-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \</div><div class='del'>-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\</div><div class='del'>-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \</div><div class='del'>-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \</div><div class='del'>-	-apple | -axis)</div><div class='del'>-		os=</div><div class='del'>-		basic_machine=$1</div><div class='del'>-		;;</div><div class='del'>-	-sim | -cisco | -oki | -wec | -winbond)</div><div class='del'>-		os=</div><div class='del'>-		basic_machine=$1</div><div class='del'>-		;;</div><div class='del'>-	-scout)</div><div class='del'>-		;;</div><div class='del'>-	-wrs)</div><div class='del'>-		os=-vxworks</div><div class='del'>-		basic_machine=$1</div><div class='del'>-		;;</div><div class='del'>-	-chorusos*)</div><div class='del'>-		os=-chorusos</div><div class='del'>-		basic_machine=$1</div><div class='del'>-		;;</div><div class='del'>- 	-chorusrdb)</div><div class='del'>- 		os=-chorusrdb</div><div class='del'>-		basic_machine=$1</div><div class='del'>- 		;;</div><div class='del'>-	-hiux*)</div><div class='del'>-		os=-hiuxwe2</div><div class='del'>-		;;</div><div class='del'>-	-sco5)</div><div class='del'>-		os=-sco3.2v5</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-sco4)</div><div class='del'>-		os=-sco3.2v4</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-sco3.2.[4-9]*)</div><div class='del'>-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-sco3.2v[4-9]*)</div><div class='del'>-		# Don't forget version if it is 3.2v4 or newer.</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-sco*)</div><div class='del'>-		os=-sco3.2v2</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-udk*)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-isc)</div><div class='del'>-		os=-isc2.2</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-clix*)</div><div class='del'>-		basic_machine=clipper-intergraph</div><div class='del'>-		;;</div><div class='del'>-	-isc*)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`</div><div class='del'>-		;;</div><div class='del'>-	-lynx*)</div><div class='del'>-		os=-lynxos</div><div class='del'>-		;;</div><div class='del'>-	-ptx*)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`</div><div class='del'>-		;;</div><div class='del'>-	-windowsnt*)</div><div class='del'>-		os=`echo $os | sed -e 's/windowsnt/winnt/'`</div><div class='del'>-		;;</div><div class='del'>-	-psos*)</div><div class='del'>-		os=-psos</div><div class='del'>-		;;</div><div class='del'>-	-mint | -mint[0-9]*)</div><div class='del'>-		basic_machine=m68k-atari</div><div class='del'>-		os=-mint</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-# Decode aliases for certain CPU-COMPANY combinations.</div><div class='del'>-case $basic_machine in</div><div class='del'>-	# Recognize the basic CPU types without company name.</div><div class='del'>-	# Some are omitted here because they have special meanings below.</div><div class='del'>-	1750a | 580 \</div><div class='del'>-	| a29k \</div><div class='del'>-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \</div><div class='del'>-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \</div><div class='del'>-	| am33_2.0 \</div><div class='del'>-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \</div><div class='del'>-	| c4x | clipper \</div><div class='del'>-	| d10v | d30v | dlx | dsp16xx \</div><div class='del'>-	| fr30 | frv \</div><div class='del'>-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \</div><div class='del'>-	| i370 | i860 | i960 | ia64 \</div><div class='del'>-	| ip2k | iq2000 \</div><div class='del'>-	| m32r | m68000 | m68k | m88k | mcore \</div><div class='del'>-	| mips | mipsbe | mipseb | mipsel | mipsle \</div><div class='del'>-	| mips16 \</div><div class='del'>-	| mips64 | mips64el \</div><div class='del'>-	| mips64vr | mips64vrel \</div><div class='del'>-	| mips64orion | mips64orionel \</div><div class='del'>-	| mips64vr4100 | mips64vr4100el \</div><div class='del'>-	| mips64vr4300 | mips64vr4300el \</div><div class='del'>-	| mips64vr5000 | mips64vr5000el \</div><div class='del'>-	| mipsisa32 | mipsisa32el \</div><div class='del'>-	| mipsisa32r2 | mipsisa32r2el \</div><div class='del'>-	| mipsisa64 | mipsisa64el \</div><div class='del'>-	| mipsisa64r2 | mipsisa64r2el \</div><div class='del'>-	| mipsisa64sb1 | mipsisa64sb1el \</div><div class='del'>-	| mipsisa64sr71k | mipsisa64sr71kel \</div><div class='del'>-	| mipstx39 | mipstx39el \</div><div class='del'>-	| mn10200 | mn10300 \</div><div class='del'>-	| msp430 \</div><div class='del'>-	| ns16k | ns32k \</div><div class='del'>-	| openrisc | or32 \</div><div class='del'>-	| pdp10 | pdp11 | pj | pjl \</div><div class='del'>-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \</div><div class='del'>-	| pyramid \</div><div class='del'>-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \</div><div class='del'>-	| sh64 | sh64le \</div><div class='del'>-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \</div><div class='del'>-	| strongarm \</div><div class='del'>-	| tahoe | thumb | tic4x | tic80 | tron \</div><div class='del'>-	| v850 | v850e \</div><div class='del'>-	| we32k \</div><div class='del'>-	| x86 | xscale | xstormy16 | xtensa \</div><div class='del'>-	| z8k)</div><div class='del'>-		basic_machine=$basic_machine-unknown</div><div class='del'>-		;;</div><div class='del'>-	m6811 | m68hc11 | m6812 | m68hc12)</div><div class='del'>-		# Motorola 68HC11/12.</div><div class='del'>-		basic_machine=$basic_machine-unknown</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)</div><div class='del'>-		;;</div><div class='del'>-</div><div class='del'>-	# We use `pc' rather than `unknown'</div><div class='del'>-	# because (1) that's what they normally are, and</div><div class='del'>-	# (2) the word "unknown" tends to confuse beginning users.</div><div class='del'>-	i*86 | x86_64)</div><div class='del'>-	  basic_machine=$basic_machine-pc</div><div class='del'>-	  ;;</div><div class='del'>-	# Object if more than one company name word.</div><div class='del'>-	*-*-*)</div><div class='del'>-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1&gt;&amp;2</div><div class='del'>-		exit 1</div><div class='del'>-		;;</div><div class='del'>-	# Recognize the basic CPU types with company name.</div><div class='del'>-	580-* \</div><div class='del'>-	| a29k-* \</div><div class='del'>-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \</div><div class='del'>-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \</div><div class='del'>-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \</div><div class='del'>-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \</div><div class='del'>-	| avr-* \</div><div class='del'>-	| bs2000-* \</div><div class='del'>-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \</div><div class='del'>-	| clipper-* | cydra-* \</div><div class='del'>-	| d10v-* | d30v-* | dlx-* \</div><div class='del'>-	| elxsi-* \</div><div class='del'>-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \</div><div class='del'>-	| h8300-* | h8500-* \</div><div class='del'>-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \</div><div class='del'>-	| i*86-* | i860-* | i960-* | ia64-* \</div><div class='del'>-	| ip2k-* | iq2000-* \</div><div class='del'>-	| m32r-* \</div><div class='del'>-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \</div><div class='del'>-	| m88110-* | m88k-* | mcore-* \</div><div class='del'>-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \</div><div class='del'>-	| mips16-* \</div><div class='del'>-	| mips64-* | mips64el-* \</div><div class='del'>-	| mips64vr-* | mips64vrel-* \</div><div class='del'>-	| mips64orion-* | mips64orionel-* \</div><div class='del'>-	| mips64vr4100-* | mips64vr4100el-* \</div><div class='del'>-	| mips64vr4300-* | mips64vr4300el-* \</div><div class='del'>-	| mips64vr5000-* | mips64vr5000el-* \</div><div class='del'>-	| mipsisa32-* | mipsisa32el-* \</div><div class='del'>-	| mipsisa32r2-* | mipsisa32r2el-* \</div><div class='del'>-	| mipsisa64-* | mipsisa64el-* \</div><div class='del'>-	| mipsisa64r2-* | mipsisa64r2el-* \</div><div class='del'>-	| mipsisa64sb1-* | mipsisa64sb1el-* \</div><div class='del'>-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \</div><div class='del'>-	| mipstx39-* | mipstx39el-* \</div><div class='del'>-	| msp430-* \</div><div class='del'>-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \</div><div class='del'>-	| orion-* \</div><div class='del'>-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \</div><div class='del'>-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \</div><div class='del'>-	| pyramid-* \</div><div class='del'>-	| romp-* | rs6000-* \</div><div class='del'>-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \</div><div class='del'>-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \</div><div class='del'>-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \</div><div class='del'>-	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \</div><div class='del'>-	| tahoe-* | thumb-* \</div><div class='del'>-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \</div><div class='del'>-	| tron-* \</div><div class='del'>-	| v850-* | v850e-* | vax-* \</div><div class='del'>-	| we32k-* \</div><div class='del'>-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \</div><div class='del'>-	| xtensa-* \</div><div class='del'>-	| ymp-* \</div><div class='del'>-	| z8k-*)</div><div class='del'>-		;;</div><div class='del'>-	# Recognize the various machine names and aliases which stand</div><div class='del'>-	# for a CPU type and a company and sometimes even an OS.</div><div class='del'>-	386bsd)</div><div class='del'>-		basic_machine=i386-unknown</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)</div><div class='del'>-		basic_machine=m68000-att</div><div class='del'>-		;;</div><div class='del'>-	3b*)</div><div class='del'>-		basic_machine=we32k-att</div><div class='del'>-		;;</div><div class='del'>-	a29khif)</div><div class='del'>-		basic_machine=a29k-amd</div><div class='del'>-		os=-udi</div><div class='del'>-		;;</div><div class='del'>-	adobe68k)</div><div class='del'>-		basic_machine=m68010-adobe</div><div class='del'>-		os=-scout</div><div class='del'>-		;;</div><div class='del'>-	alliant | fx80)</div><div class='del'>-		basic_machine=fx80-alliant</div><div class='del'>-		;;</div><div class='del'>-	altos | altos3068)</div><div class='del'>-		basic_machine=m68k-altos</div><div class='del'>-		;;</div><div class='del'>-	am29k)</div><div class='del'>-		basic_machine=a29k-none</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	amd64)</div><div class='del'>-		basic_machine=x86_64-pc</div><div class='del'>-		;;</div><div class='del'>-	amd64-*)</div><div class='del'>-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	amdahl)</div><div class='del'>-		basic_machine=580-amdahl</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	amiga | amiga-*)</div><div class='del'>-		basic_machine=m68k-unknown</div><div class='del'>-		;;</div><div class='del'>-	amigaos | amigados)</div><div class='del'>-		basic_machine=m68k-unknown</div><div class='del'>-		os=-amigaos</div><div class='del'>-		;;</div><div class='del'>-	amigaunix | amix)</div><div class='del'>-		basic_machine=m68k-unknown</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	apollo68)</div><div class='del'>-		basic_machine=m68k-apollo</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	apollo68bsd)</div><div class='del'>-		basic_machine=m68k-apollo</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	aux)</div><div class='del'>-		basic_machine=m68k-apple</div><div class='del'>-		os=-aux</div><div class='del'>-		;;</div><div class='del'>-	balance)</div><div class='del'>-		basic_machine=ns32k-sequent</div><div class='del'>-		os=-dynix</div><div class='del'>-		;;</div><div class='del'>-	c90)</div><div class='del'>-		basic_machine=c90-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	convex-c1)</div><div class='del'>-		basic_machine=c1-convex</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	convex-c2)</div><div class='del'>-		basic_machine=c2-convex</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	convex-c32)</div><div class='del'>-		basic_machine=c32-convex</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	convex-c34)</div><div class='del'>-		basic_machine=c34-convex</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	convex-c38)</div><div class='del'>-		basic_machine=c38-convex</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	cray | j90)</div><div class='del'>-		basic_machine=j90-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	crds | unos)</div><div class='del'>-		basic_machine=m68k-crds</div><div class='del'>-		;;</div><div class='del'>-	cris | cris-* | etrax*)</div><div class='del'>-		basic_machine=cris-axis</div><div class='del'>-		;;</div><div class='del'>-	da30 | da30-*)</div><div class='del'>-		basic_machine=m68k-da30</div><div class='del'>-		;;</div><div class='del'>-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)</div><div class='del'>-		basic_machine=mips-dec</div><div class='del'>-		;;</div><div class='del'>-	decsystem10* | dec10*)</div><div class='del'>-		basic_machine=pdp10-dec</div><div class='del'>-		os=-tops10</div><div class='del'>-		;;</div><div class='del'>-	decsystem20* | dec20*)</div><div class='del'>-		basic_machine=pdp10-dec</div><div class='del'>-		os=-tops20</div><div class='del'>-		;;</div><div class='del'>-	delta | 3300 | motorola-3300 | motorola-delta \</div><div class='del'>-	      | 3300-motorola | delta-motorola)</div><div class='del'>-		basic_machine=m68k-motorola</div><div class='del'>-		;;</div><div class='del'>-	delta88)</div><div class='del'>-		basic_machine=m88k-motorola</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	dpx20 | dpx20-*)</div><div class='del'>-		basic_machine=rs6000-bull</div><div class='del'>-		os=-bosx</div><div class='del'>-		;;</div><div class='del'>-	dpx2* | dpx2*-bull)</div><div class='del'>-		basic_machine=m68k-bull</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	ebmon29k)</div><div class='del'>-		basic_machine=a29k-amd</div><div class='del'>-		os=-ebmon</div><div class='del'>-		;;</div><div class='del'>-	elxsi)</div><div class='del'>-		basic_machine=elxsi-elxsi</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	encore | umax | mmax)</div><div class='del'>-		basic_machine=ns32k-encore</div><div class='del'>-		;;</div><div class='del'>-	es1800 | OSE68k | ose68k | ose | OSE)</div><div class='del'>-		basic_machine=m68k-ericsson</div><div class='del'>-		os=-ose</div><div class='del'>-		;;</div><div class='del'>-	fx2800)</div><div class='del'>-		basic_machine=i860-alliant</div><div class='del'>-		;;</div><div class='del'>-	genix)</div><div class='del'>-		basic_machine=ns32k-ns</div><div class='del'>-		;;</div><div class='del'>-	gmicro)</div><div class='del'>-		basic_machine=tron-gmicro</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	go32)</div><div class='del'>-		basic_machine=i386-pc</div><div class='del'>-		os=-go32</div><div class='del'>-		;;</div><div class='del'>-	h3050r* | hiux*)</div><div class='del'>-		basic_machine=hppa1.1-hitachi</div><div class='del'>-		os=-hiuxwe2</div><div class='del'>-		;;</div><div class='del'>-	h8300hms)</div><div class='del'>-		basic_machine=h8300-hitachi</div><div class='del'>-		os=-hms</div><div class='del'>-		;;</div><div class='del'>-	h8300xray)</div><div class='del'>-		basic_machine=h8300-hitachi</div><div class='del'>-		os=-xray</div><div class='del'>-		;;</div><div class='del'>-	h8500hms)</div><div class='del'>-		basic_machine=h8500-hitachi</div><div class='del'>-		os=-hms</div><div class='del'>-		;;</div><div class='del'>-	harris)</div><div class='del'>-		basic_machine=m88k-harris</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	hp300-*)</div><div class='del'>-		basic_machine=m68k-hp</div><div class='del'>-		;;</div><div class='del'>-	hp300bsd)</div><div class='del'>-		basic_machine=m68k-hp</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	hp300hpux)</div><div class='del'>-		basic_machine=m68k-hp</div><div class='del'>-		os=-hpux</div><div class='del'>-		;;</div><div class='del'>-	hp3k9[0-9][0-9] | hp9[0-9][0-9])</div><div class='del'>-		basic_machine=hppa1.0-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k2[0-9][0-9] | hp9k31[0-9])</div><div class='del'>-		basic_machine=m68000-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k3[2-9][0-9])</div><div class='del'>-		basic_machine=m68k-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k6[0-9][0-9] | hp6[0-9][0-9])</div><div class='del'>-		basic_machine=hppa1.0-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k7[0-79][0-9] | hp7[0-79][0-9])</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k78[0-9] | hp78[0-9])</div><div class='del'>-		# FIXME: really hppa2.0-hp</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)</div><div class='del'>-		# FIXME: really hppa2.0-hp</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k8[0-9][13679] | hp8[0-9][13679])</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		;;</div><div class='del'>-	hp9k8[0-9][0-9] | hp8[0-9][0-9])</div><div class='del'>-		basic_machine=hppa1.0-hp</div><div class='del'>-		;;</div><div class='del'>-	hppa-next)</div><div class='del'>-		os=-nextstep3</div><div class='del'>-		;;</div><div class='del'>-	hppaosf)</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		os=-osf</div><div class='del'>-		;;</div><div class='del'>-	hppro)</div><div class='del'>-		basic_machine=hppa1.1-hp</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	i370-ibm* | ibm*)</div><div class='del'>-		basic_machine=i370-ibm</div><div class='del'>-		;;</div><div class='del'>-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?</div><div class='del'>-	i*86v32)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`</div><div class='del'>-		os=-sysv32</div><div class='del'>-		;;</div><div class='del'>-	i*86v4*)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	i*86v)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	i*86sol2)</div><div class='del'>-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`</div><div class='del'>-		os=-solaris2</div><div class='del'>-		;;</div><div class='del'>-	i386mach)</div><div class='del'>-		basic_machine=i386-mach</div><div class='del'>-		os=-mach</div><div class='del'>-		;;</div><div class='del'>-	i386-vsta | vsta)</div><div class='del'>-		basic_machine=i386-unknown</div><div class='del'>-		os=-vsta</div><div class='del'>-		;;</div><div class='del'>-	iris | iris4d)</div><div class='del'>-		basic_machine=mips-sgi</div><div class='del'>-		case $os in</div><div class='del'>-		    -irix*)</div><div class='del'>-			;;</div><div class='del'>-		    *)</div><div class='del'>-			os=-irix4</div><div class='del'>-			;;</div><div class='del'>-		esac</div><div class='del'>-		;;</div><div class='del'>-	isi68 | isi)</div><div class='del'>-		basic_machine=m68k-isi</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	m88k-omron*)</div><div class='del'>-		basic_machine=m88k-omron</div><div class='del'>-		;;</div><div class='del'>-	magnum | m3230)</div><div class='del'>-		basic_machine=mips-mips</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	merlin)</div><div class='del'>-		basic_machine=ns32k-utek</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	mingw32)</div><div class='del'>-		basic_machine=i386-pc</div><div class='del'>-		os=-mingw32</div><div class='del'>-		;;</div><div class='del'>-	miniframe)</div><div class='del'>-		basic_machine=m68000-convergent</div><div class='del'>-		;;</div><div class='del'>-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)</div><div class='del'>-		basic_machine=m68k-atari</div><div class='del'>-		os=-mint</div><div class='del'>-		;;</div><div class='del'>-	mips3*-*)</div><div class='del'>-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`</div><div class='del'>-		;;</div><div class='del'>-	mips3*)</div><div class='del'>-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown</div><div class='del'>-		;;</div><div class='del'>-	mmix*)</div><div class='del'>-		basic_machine=mmix-knuth</div><div class='del'>-		os=-mmixware</div><div class='del'>-		;;</div><div class='del'>-	monitor)</div><div class='del'>-		basic_machine=m68k-rom68k</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	morphos)</div><div class='del'>-		basic_machine=powerpc-unknown</div><div class='del'>-		os=-morphos</div><div class='del'>-		;;</div><div class='del'>-	msdos)</div><div class='del'>-		basic_machine=i386-pc</div><div class='del'>-		os=-msdos</div><div class='del'>-		;;</div><div class='del'>-	mvs)</div><div class='del'>-		basic_machine=i370-ibm</div><div class='del'>-		os=-mvs</div><div class='del'>-		;;</div><div class='del'>-	ncr3000)</div><div class='del'>-		basic_machine=i486-ncr</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	netbsd386)</div><div class='del'>-		basic_machine=i386-unknown</div><div class='del'>-		os=-netbsd</div><div class='del'>-		;;</div><div class='del'>-	netwinder)</div><div class='del'>-		basic_machine=armv4l-rebel</div><div class='del'>-		os=-linux</div><div class='del'>-		;;</div><div class='del'>-	news | news700 | news800 | news900)</div><div class='del'>-		basic_machine=m68k-sony</div><div class='del'>-		os=-newsos</div><div class='del'>-		;;</div><div class='del'>-	news1000)</div><div class='del'>-		basic_machine=m68030-sony</div><div class='del'>-		os=-newsos</div><div class='del'>-		;;</div><div class='del'>-	news-3600 | risc-news)</div><div class='del'>-		basic_machine=mips-sony</div><div class='del'>-		os=-newsos</div><div class='del'>-		;;</div><div class='del'>-	necv70)</div><div class='del'>-		basic_machine=v70-nec</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	next | m*-next )</div><div class='del'>-		basic_machine=m68k-next</div><div class='del'>-		case $os in</div><div class='del'>-		    -nextstep* )</div><div class='del'>-			;;</div><div class='del'>-		    -ns2*)</div><div class='del'>-		      os=-nextstep2</div><div class='del'>-			;;</div><div class='del'>-		    *)</div><div class='del'>-		      os=-nextstep3</div><div class='del'>-			;;</div><div class='del'>-		esac</div><div class='del'>-		;;</div><div class='del'>-	nh3000)</div><div class='del'>-		basic_machine=m68k-harris</div><div class='del'>-		os=-cxux</div><div class='del'>-		;;</div><div class='del'>-	nh[45]000)</div><div class='del'>-		basic_machine=m88k-harris</div><div class='del'>-		os=-cxux</div><div class='del'>-		;;</div><div class='del'>-	nindy960)</div><div class='del'>-		basic_machine=i960-intel</div><div class='del'>-		os=-nindy</div><div class='del'>-		;;</div><div class='del'>-	mon960)</div><div class='del'>-		basic_machine=i960-intel</div><div class='del'>-		os=-mon960</div><div class='del'>-		;;</div><div class='del'>-	nonstopux)</div><div class='del'>-		basic_machine=mips-compaq</div><div class='del'>-		os=-nonstopux</div><div class='del'>-		;;</div><div class='del'>-	np1)</div><div class='del'>-		basic_machine=np1-gould</div><div class='del'>-		;;</div><div class='del'>-	nv1)</div><div class='del'>-		basic_machine=nv1-cray</div><div class='del'>-		os=-unicosmp</div><div class='del'>-		;;</div><div class='del'>-	nsr-tandem)</div><div class='del'>-		basic_machine=nsr-tandem</div><div class='del'>-		;;</div><div class='del'>-	op50n-* | op60c-*)</div><div class='del'>-		basic_machine=hppa1.1-oki</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	or32 | or32-*)</div><div class='del'>-		basic_machine=or32-unknown</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	os400)</div><div class='del'>-		basic_machine=powerpc-ibm</div><div class='del'>-		os=-os400</div><div class='del'>-		;;</div><div class='del'>-	OSE68000 | ose68000)</div><div class='del'>-		basic_machine=m68000-ericsson</div><div class='del'>-		os=-ose</div><div class='del'>-		;;</div><div class='del'>-	os68k)</div><div class='del'>-		basic_machine=m68k-none</div><div class='del'>-		os=-os68k</div><div class='del'>-		;;</div><div class='del'>-	pa-hitachi)</div><div class='del'>-		basic_machine=hppa1.1-hitachi</div><div class='del'>-		os=-hiuxwe2</div><div class='del'>-		;;</div><div class='del'>-	paragon)</div><div class='del'>-		basic_machine=i860-intel</div><div class='del'>-		os=-osf</div><div class='del'>-		;;</div><div class='del'>-	pbd)</div><div class='del'>-		basic_machine=sparc-tti</div><div class='del'>-		;;</div><div class='del'>-	pbb)</div><div class='del'>-		basic_machine=m68k-tti</div><div class='del'>-		;;</div><div class='del'>-	pc532 | pc532-*)</div><div class='del'>-		basic_machine=ns32k-pc532</div><div class='del'>-		;;</div><div class='del'>-	pentium | p5 | k5 | k6 | nexgen | viac3)</div><div class='del'>-		basic_machine=i586-pc</div><div class='del'>-		;;</div><div class='del'>-	pentiumpro | p6 | 6x86 | athlon | athlon_*)</div><div class='del'>-		basic_machine=i686-pc</div><div class='del'>-		;;</div><div class='del'>-	pentiumii | pentium2 | pentiumiii | pentium3)</div><div class='del'>-		basic_machine=i686-pc</div><div class='del'>-		;;</div><div class='del'>-	pentium4)</div><div class='del'>-		basic_machine=i786-pc</div><div class='del'>-		;;</div><div class='del'>-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)</div><div class='del'>-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	pentiumpro-* | p6-* | 6x86-* | athlon-*)</div><div class='del'>-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)</div><div class='del'>-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	pentium4-*)</div><div class='del'>-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	pn)</div><div class='del'>-		basic_machine=pn-gould</div><div class='del'>-		;;</div><div class='del'>-	power)	basic_machine=power-ibm</div><div class='del'>-		;;</div><div class='del'>-	ppc)	basic_machine=powerpc-unknown</div><div class='del'>-		;;</div><div class='del'>-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	ppcle | powerpclittle | ppc-le | powerpc-little)</div><div class='del'>-		basic_machine=powerpcle-unknown</div><div class='del'>-		;;</div><div class='del'>-	ppcle-* | powerpclittle-*)</div><div class='del'>-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	ppc64)	basic_machine=powerpc64-unknown</div><div class='del'>-		;;</div><div class='del'>-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)</div><div class='del'>-		basic_machine=powerpc64le-unknown</div><div class='del'>-		;;</div><div class='del'>-	ppc64le-* | powerpc64little-*)</div><div class='del'>-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	ps2)</div><div class='del'>-		basic_machine=i386-ibm</div><div class='del'>-		;;</div><div class='del'>-	pw32)</div><div class='del'>-		basic_machine=i586-unknown</div><div class='del'>-		os=-pw32</div><div class='del'>-		;;</div><div class='del'>-	rom68k)</div><div class='del'>-		basic_machine=m68k-rom68k</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	rm[46]00)</div><div class='del'>-		basic_machine=mips-siemens</div><div class='del'>-		;;</div><div class='del'>-	rtpc | rtpc-*)</div><div class='del'>-		basic_machine=romp-ibm</div><div class='del'>-		;;</div><div class='del'>-	s390 | s390-*)</div><div class='del'>-		basic_machine=s390-ibm</div><div class='del'>-		;;</div><div class='del'>-	s390x | s390x-*)</div><div class='del'>-		basic_machine=s390x-ibm</div><div class='del'>-		;;</div><div class='del'>-	sa29200)</div><div class='del'>-		basic_machine=a29k-amd</div><div class='del'>-		os=-udi</div><div class='del'>-		;;</div><div class='del'>-	sb1)</div><div class='del'>-		basic_machine=mipsisa64sb1-unknown</div><div class='del'>-		;;</div><div class='del'>-	sb1el)</div><div class='del'>-		basic_machine=mipsisa64sb1el-unknown</div><div class='del'>-		;;</div><div class='del'>-	sei)</div><div class='del'>-		basic_machine=mips-sei</div><div class='del'>-		os=-seiux</div><div class='del'>-		;;</div><div class='del'>-	sequent)</div><div class='del'>-		basic_machine=i386-sequent</div><div class='del'>-		;;</div><div class='del'>-	sh)</div><div class='del'>-		basic_machine=sh-hitachi</div><div class='del'>-		os=-hms</div><div class='del'>-		;;</div><div class='del'>-	sh64)</div><div class='del'>-		basic_machine=sh64-unknown</div><div class='del'>-		;;</div><div class='del'>-	sparclite-wrs | simso-wrs)</div><div class='del'>-		basic_machine=sparclite-wrs</div><div class='del'>-		os=-vxworks</div><div class='del'>-		;;</div><div class='del'>-	sps7)</div><div class='del'>-		basic_machine=m68k-bull</div><div class='del'>-		os=-sysv2</div><div class='del'>-		;;</div><div class='del'>-	spur)</div><div class='del'>-		basic_machine=spur-unknown</div><div class='del'>-		;;</div><div class='del'>-	st2000)</div><div class='del'>-		basic_machine=m68k-tandem</div><div class='del'>-		;;</div><div class='del'>-	stratus)</div><div class='del'>-		basic_machine=i860-stratus</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	sun2)</div><div class='del'>-		basic_machine=m68000-sun</div><div class='del'>-		;;</div><div class='del'>-	sun2os3)</div><div class='del'>-		basic_machine=m68000-sun</div><div class='del'>-		os=-sunos3</div><div class='del'>-		;;</div><div class='del'>-	sun2os4)</div><div class='del'>-		basic_machine=m68000-sun</div><div class='del'>-		os=-sunos4</div><div class='del'>-		;;</div><div class='del'>-	sun3os3)</div><div class='del'>-		basic_machine=m68k-sun</div><div class='del'>-		os=-sunos3</div><div class='del'>-		;;</div><div class='del'>-	sun3os4)</div><div class='del'>-		basic_machine=m68k-sun</div><div class='del'>-		os=-sunos4</div><div class='del'>-		;;</div><div class='del'>-	sun4os3)</div><div class='del'>-		basic_machine=sparc-sun</div><div class='del'>-		os=-sunos3</div><div class='del'>-		;;</div><div class='del'>-	sun4os4)</div><div class='del'>-		basic_machine=sparc-sun</div><div class='del'>-		os=-sunos4</div><div class='del'>-		;;</div><div class='del'>-	sun4sol2)</div><div class='del'>-		basic_machine=sparc-sun</div><div class='del'>-		os=-solaris2</div><div class='del'>-		;;</div><div class='del'>-	sun3 | sun3-*)</div><div class='del'>-		basic_machine=m68k-sun</div><div class='del'>-		;;</div><div class='del'>-	sun4)</div><div class='del'>-		basic_machine=sparc-sun</div><div class='del'>-		;;</div><div class='del'>-	sun386 | sun386i | roadrunner)</div><div class='del'>-		basic_machine=i386-sun</div><div class='del'>-		;;</div><div class='del'>-	sv1)</div><div class='del'>-		basic_machine=sv1-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	symmetry)</div><div class='del'>-		basic_machine=i386-sequent</div><div class='del'>-		os=-dynix</div><div class='del'>-		;;</div><div class='del'>-	t3e)</div><div class='del'>-		basic_machine=alphaev5-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	t90)</div><div class='del'>-		basic_machine=t90-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	tic54x | c54x*)</div><div class='del'>-		basic_machine=tic54x-unknown</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	tic55x | c55x*)</div><div class='del'>-		basic_machine=tic55x-unknown</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	tic6x | c6x*)</div><div class='del'>-		basic_machine=tic6x-unknown</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	tx39)</div><div class='del'>-		basic_machine=mipstx39-unknown</div><div class='del'>-		;;</div><div class='del'>-	tx39el)</div><div class='del'>-		basic_machine=mipstx39el-unknown</div><div class='del'>-		;;</div><div class='del'>-	toad1)</div><div class='del'>-		basic_machine=pdp10-xkl</div><div class='del'>-		os=-tops20</div><div class='del'>-		;;</div><div class='del'>-	tower | tower-32)</div><div class='del'>-		basic_machine=m68k-ncr</div><div class='del'>-		;;</div><div class='del'>-	tpf)</div><div class='del'>-		basic_machine=s390x-ibm</div><div class='del'>-		os=-tpf</div><div class='del'>-		;;</div><div class='del'>-	udi29k)</div><div class='del'>-		basic_machine=a29k-amd</div><div class='del'>-		os=-udi</div><div class='del'>-		;;</div><div class='del'>-	ultra3)</div><div class='del'>-		basic_machine=a29k-nyu</div><div class='del'>-		os=-sym1</div><div class='del'>-		;;</div><div class='del'>-	v810 | necv810)</div><div class='del'>-		basic_machine=v810-nec</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-	vaxv)</div><div class='del'>-		basic_machine=vax-dec</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	vms)</div><div class='del'>-		basic_machine=vax-dec</div><div class='del'>-		os=-vms</div><div class='del'>-		;;</div><div class='del'>-	vpp*|vx|vx-*)</div><div class='del'>-		basic_machine=f301-fujitsu</div><div class='del'>-		;;</div><div class='del'>-	vxworks960)</div><div class='del'>-		basic_machine=i960-wrs</div><div class='del'>-		os=-vxworks</div><div class='del'>-		;;</div><div class='del'>-	vxworks68)</div><div class='del'>-		basic_machine=m68k-wrs</div><div class='del'>-		os=-vxworks</div><div class='del'>-		;;</div><div class='del'>-	vxworks29k)</div><div class='del'>-		basic_machine=a29k-wrs</div><div class='del'>-		os=-vxworks</div><div class='del'>-		;;</div><div class='del'>-	w65*)</div><div class='del'>-		basic_machine=w65-wdc</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-	w89k-*)</div><div class='del'>-		basic_machine=hppa1.1-winbond</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	xps | xps100)</div><div class='del'>-		basic_machine=xps100-honeywell</div><div class='del'>-		;;</div><div class='del'>-	ymp)</div><div class='del'>-		basic_machine=ymp-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	z8k-*-coff)</div><div class='del'>-		basic_machine=z8k-unknown</div><div class='del'>-		os=-sim</div><div class='del'>-		;;</div><div class='del'>-	none)</div><div class='del'>-		basic_machine=none-none</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-</div><div class='del'>-# Here we handle the default manufacturer of certain CPU types.  It is in</div><div class='del'>-# some cases the only manufacturer, in others, it is the most popular.</div><div class='del'>-	w89k)</div><div class='del'>-		basic_machine=hppa1.1-winbond</div><div class='del'>-		;;</div><div class='del'>-	op50n)</div><div class='del'>-		basic_machine=hppa1.1-oki</div><div class='del'>-		;;</div><div class='del'>-	op60c)</div><div class='del'>-		basic_machine=hppa1.1-oki</div><div class='del'>-		;;</div><div class='del'>-	romp)</div><div class='del'>-		basic_machine=romp-ibm</div><div class='del'>-		;;</div><div class='del'>-	rs6000)</div><div class='del'>-		basic_machine=rs6000-ibm</div><div class='del'>-		;;</div><div class='del'>-	vax)</div><div class='del'>-		basic_machine=vax-dec</div><div class='del'>-		;;</div><div class='del'>-	pdp10)</div><div class='del'>-		# there are many clones, so DEC is not a safe bet</div><div class='del'>-		basic_machine=pdp10-unknown</div><div class='del'>-		;;</div><div class='del'>-	pdp11)</div><div class='del'>-		basic_machine=pdp11-dec</div><div class='del'>-		;;</div><div class='del'>-	we32k)</div><div class='del'>-		basic_machine=we32k-att</div><div class='del'>-		;;</div><div class='del'>-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)</div><div class='del'>-		basic_machine=sh-unknown</div><div class='del'>-		;;</div><div class='del'>-	sh64)</div><div class='del'>-		basic_machine=sh64-unknown</div><div class='del'>-		;;</div><div class='del'>-	sparc | sparcv9 | sparcv9b)</div><div class='del'>-		basic_machine=sparc-sun</div><div class='del'>-		;;</div><div class='del'>-	cydra)</div><div class='del'>-		basic_machine=cydra-cydrome</div><div class='del'>-		;;</div><div class='del'>-	orion)</div><div class='del'>-		basic_machine=orion-highlevel</div><div class='del'>-		;;</div><div class='del'>-	orion105)</div><div class='del'>-		basic_machine=clipper-highlevel</div><div class='del'>-		;;</div><div class='del'>-	mac | mpw | mac-mpw)</div><div class='del'>-		basic_machine=m68k-apple</div><div class='del'>-		;;</div><div class='del'>-	pmac | pmac-mpw)</div><div class='del'>-		basic_machine=powerpc-apple</div><div class='del'>-		;;</div><div class='del'>-	*-unknown)</div><div class='del'>-		# Make sure to match an already-canonicalized machine name.</div><div class='del'>-		;;</div><div class='del'>-	*)</div><div class='del'>-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1&gt;&amp;2</div><div class='del'>-		exit 1</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-# Here we canonicalize certain aliases for manufacturers.</div><div class='del'>-case $basic_machine in</div><div class='del'>-	*-digital*)</div><div class='del'>-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`</div><div class='del'>-		;;</div><div class='del'>-	*-commodore*)</div><div class='del'>-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`</div><div class='del'>-		;;</div><div class='del'>-	*)</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-# Decode manufacturer-specific aliases for certain operating systems.</div><div class='del'>-</div><div class='del'>-if [ x"$os" != x"" ]</div><div class='del'>-then</div><div class='del'>-case $os in</div><div class='del'>-        # First match some system type aliases</div><div class='del'>-        # that might get confused with valid system types.</div><div class='del'>-	# -solaris* is a basic system type, with this one exception.</div><div class='del'>-	-solaris1 | -solaris1.*)</div><div class='del'>-		os=`echo $os | sed -e 's|solaris1|sunos4|'`</div><div class='del'>-		;;</div><div class='del'>-	-solaris)</div><div class='del'>-		os=-solaris2</div><div class='del'>-		;;</div><div class='del'>-	-svr4*)</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	-unixware*)</div><div class='del'>-		os=-sysv4.2uw</div><div class='del'>-		;;</div><div class='del'>-	-gnu/linux*)</div><div class='del'>-		os=`echo $os | sed -e 's|gnu/linux|linux|'`</div><div class='del'>-		;;</div><div class='del'>-	# First accept the basic system types.</div><div class='del'>-	# The portable systems comes first.</div><div class='del'>-	# Each alternative MUST END IN A *, to match a version number.</div><div class='del'>-	# -sysv* is not here because it comes later, after sysvr4.</div><div class='del'>-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \</div><div class='del'>-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\</div><div class='del'>-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \</div><div class='del'>-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \</div><div class='del'>-	      | -aos* \</div><div class='del'>-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \</div><div class='del'>-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \</div><div class='del'>-	      | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \</div><div class='del'>-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \</div><div class='del'>-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \</div><div class='del'>-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \</div><div class='del'>-	      | -chorusos* | -chorusrdb* \</div><div class='del'>-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \</div><div class='del'>-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \</div><div class='del'>-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \</div><div class='del'>-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \</div><div class='del'>-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \</div><div class='del'>-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \</div><div class='del'>-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \</div><div class='del'>-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)</div><div class='del'>-	# Remember, each alternative MUST END IN *, to match a version number.</div><div class='del'>-		;;</div><div class='del'>-	-qnx*)</div><div class='del'>-		case $basic_machine in</div><div class='del'>-		    x86-* | i*86-*)</div><div class='del'>-			;;</div><div class='del'>-		    *)</div><div class='del'>-			os=-nto$os</div><div class='del'>-			;;</div><div class='del'>-		esac</div><div class='del'>-		;;</div><div class='del'>-	-nto-qnx*)</div><div class='del'>-		;;</div><div class='del'>-	-nto*)</div><div class='del'>-		os=`echo $os | sed -e 's|nto|nto-qnx|'`</div><div class='del'>-		;;</div><div class='del'>-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \</div><div class='del'>-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \</div><div class='del'>-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)</div><div class='del'>-		;;</div><div class='del'>-	-mac*)</div><div class='del'>-		os=`echo $os | sed -e 's|mac|macos|'`</div><div class='del'>-		;;</div><div class='del'>-	-linux-dietlibc)</div><div class='del'>-		os=-linux-dietlibc</div><div class='del'>-		;;</div><div class='del'>-	-linux*)</div><div class='del'>-		os=-linux</div><div class='del'>-		;;</div><div class='del'>-	-sunos5*)</div><div class='del'>-		os=`echo $os | sed -e 's|sunos5|solaris2|'`</div><div class='del'>-		;;</div><div class='del'>-	-sunos6*)</div><div class='del'>-		os=`echo $os | sed -e 's|sunos6|solaris3|'`</div><div class='del'>-		;;</div><div class='del'>-	-opened*)</div><div class='del'>-		os=-openedition</div><div class='del'>-		;;</div><div class='del'>-        -os400*)</div><div class='del'>-		os=-os400</div><div class='del'>-		;;</div><div class='del'>-	-wince*)</div><div class='del'>-		os=-wince</div><div class='del'>-		;;</div><div class='del'>-	-osfrose*)</div><div class='del'>-		os=-osfrose</div><div class='del'>-		;;</div><div class='del'>-	-osf*)</div><div class='del'>-		os=-osf</div><div class='del'>-		;;</div><div class='del'>-	-utek*)</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	-dynix*)</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	-acis*)</div><div class='del'>-		os=-aos</div><div class='del'>-		;;</div><div class='del'>-	-atheos*)</div><div class='del'>-		os=-atheos</div><div class='del'>-		;;</div><div class='del'>-	-syllable*)</div><div class='del'>-		os=-syllable</div><div class='del'>-		;;</div><div class='del'>-	-386bsd)</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	-ctix* | -uts*)</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	-nova*)</div><div class='del'>-		os=-rtmk-nova</div><div class='del'>-		;;</div><div class='del'>-	-ns2 )</div><div class='del'>-		os=-nextstep2</div><div class='del'>-		;;</div><div class='del'>-	-nsk*)</div><div class='del'>-		os=-nsk</div><div class='del'>-		;;</div><div class='del'>-	# Preserve the version number of sinix5.</div><div class='del'>-	-sinix5.*)</div><div class='del'>-		os=`echo $os | sed -e 's|sinix|sysv|'`</div><div class='del'>-		;;</div><div class='del'>-	-sinix*)</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-        -tpf*)</div><div class='del'>-		os=-tpf</div><div class='del'>-		;;</div><div class='del'>-	-triton*)</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	-oss*)</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	-svr4)</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	-svr3)</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	-sysvr4)</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	# This must come after -sysvr4.</div><div class='del'>-	-sysv*)</div><div class='del'>-		;;</div><div class='del'>-	-ose*)</div><div class='del'>-		os=-ose</div><div class='del'>-		;;</div><div class='del'>-	-es1800*)</div><div class='del'>-		os=-ose</div><div class='del'>-		;;</div><div class='del'>-	-xenix)</div><div class='del'>-		os=-xenix</div><div class='del'>-		;;</div><div class='del'>-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)</div><div class='del'>-		os=-mint</div><div class='del'>-		;;</div><div class='del'>-	-aros*)</div><div class='del'>-		os=-aros</div><div class='del'>-		;;</div><div class='del'>-	-kaos*)</div><div class='del'>-		os=-kaos</div><div class='del'>-		;;</div><div class='del'>-	-none)</div><div class='del'>-		;;</div><div class='del'>-	*)</div><div class='del'>-		# Get rid of the `-' at the beginning of $os.</div><div class='del'>-		os=`echo $os | sed 's/[^-]*-//'`</div><div class='del'>-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1&gt;&amp;2</div><div class='del'>-		exit 1</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-else</div><div class='del'>-</div><div class='del'>-# Here we handle the default operating systems that come with various machines.</div><div class='del'>-# The value should be what the vendor currently ships out the door with their</div><div class='del'>-# machine or put another way, the most popular os provided with the machine.</div><div class='del'>-</div><div class='del'>-# Note that if you're going to try to match "-MANUFACTURER" here (say,</div><div class='del'>-# "-sun"), then you have to tell the case statement up towards the top</div><div class='del'>-# that MANUFACTURER isn't an operating system.  Otherwise, code above</div><div class='del'>-# will signal an error saying that MANUFACTURER isn't an operating</div><div class='del'>-# system, and we'll never get to this point.</div><div class='del'>-</div><div class='del'>-case $basic_machine in</div><div class='del'>-	*-acorn)</div><div class='del'>-		os=-riscix1.2</div><div class='del'>-		;;</div><div class='del'>-	arm*-rebel)</div><div class='del'>-		os=-linux</div><div class='del'>-		;;</div><div class='del'>-	arm*-semi)</div><div class='del'>-		os=-aout</div><div class='del'>-		;;</div><div class='del'>-    c4x-* | tic4x-*)</div><div class='del'>-        os=-coff</div><div class='del'>-        ;;</div><div class='del'>-	# This must come before the *-dec entry.</div><div class='del'>-	pdp10-*)</div><div class='del'>-		os=-tops20</div><div class='del'>-		;;</div><div class='del'>-	pdp11-*)</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-	*-dec | vax-*)</div><div class='del'>-		os=-ultrix4.2</div><div class='del'>-		;;</div><div class='del'>-	m68*-apollo)</div><div class='del'>-		os=-domain</div><div class='del'>-		;;</div><div class='del'>-	i386-sun)</div><div class='del'>-		os=-sunos4.0.2</div><div class='del'>-		;;</div><div class='del'>-	m68000-sun)</div><div class='del'>-		os=-sunos3</div><div class='del'>-		# This also exists in the configure program, but was not the</div><div class='del'>-		# default.</div><div class='del'>-		# os=-sunos4</div><div class='del'>-		;;</div><div class='del'>-	m68*-cisco)</div><div class='del'>-		os=-aout</div><div class='del'>-		;;</div><div class='del'>-	mips*-cisco)</div><div class='del'>-		os=-elf</div><div class='del'>-		;;</div><div class='del'>-	mips*-*)</div><div class='del'>-		os=-elf</div><div class='del'>-		;;</div><div class='del'>-	or32-*)</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	*-tti)	# must be before sparc entry or we get the wrong os.</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	sparc-* | *-sun)</div><div class='del'>-		os=-sunos4.1.1</div><div class='del'>-		;;</div><div class='del'>-	*-be)</div><div class='del'>-		os=-beos</div><div class='del'>-		;;</div><div class='del'>-	*-ibm)</div><div class='del'>-		os=-aix</div><div class='del'>-		;;</div><div class='del'>-	*-wec)</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	*-winbond)</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	*-oki)</div><div class='del'>-		os=-proelf</div><div class='del'>-		;;</div><div class='del'>-	*-hp)</div><div class='del'>-		os=-hpux</div><div class='del'>-		;;</div><div class='del'>-	*-hitachi)</div><div class='del'>-		os=-hiux</div><div class='del'>-		;;</div><div class='del'>-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	*-cbm)</div><div class='del'>-		os=-amigaos</div><div class='del'>-		;;</div><div class='del'>-	*-dg)</div><div class='del'>-		os=-dgux</div><div class='del'>-		;;</div><div class='del'>-	*-dolphin)</div><div class='del'>-		os=-sysv3</div><div class='del'>-		;;</div><div class='del'>-	m68k-ccur)</div><div class='del'>-		os=-rtu</div><div class='del'>-		;;</div><div class='del'>-	m88k-omron*)</div><div class='del'>-		os=-luna</div><div class='del'>-		;;</div><div class='del'>-	*-next )</div><div class='del'>-		os=-nextstep</div><div class='del'>-		;;</div><div class='del'>-	*-sequent)</div><div class='del'>-		os=-ptx</div><div class='del'>-		;;</div><div class='del'>-	*-crds)</div><div class='del'>-		os=-unos</div><div class='del'>-		;;</div><div class='del'>-	*-ns)</div><div class='del'>-		os=-genix</div><div class='del'>-		;;</div><div class='del'>-	i370-*)</div><div class='del'>-		os=-mvs</div><div class='del'>-		;;</div><div class='del'>-	*-next)</div><div class='del'>-		os=-nextstep3</div><div class='del'>-		;;</div><div class='del'>-	*-gould)</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	*-highlevel)</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	*-encore)</div><div class='del'>-		os=-bsd</div><div class='del'>-		;;</div><div class='del'>-	*-sgi)</div><div class='del'>-		os=-irix</div><div class='del'>-		;;</div><div class='del'>-	*-siemens)</div><div class='del'>-		os=-sysv4</div><div class='del'>-		;;</div><div class='del'>-	*-masscomp)</div><div class='del'>-		os=-rtu</div><div class='del'>-		;;</div><div class='del'>-	f30[01]-fujitsu | f700-fujitsu)</div><div class='del'>-		os=-uxpv</div><div class='del'>-		;;</div><div class='del'>-	*-rom68k)</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	*-*bug)</div><div class='del'>-		os=-coff</div><div class='del'>-		;;</div><div class='del'>-	*-apple)</div><div class='del'>-		os=-macos</div><div class='del'>-		;;</div><div class='del'>-	*-atari*)</div><div class='del'>-		os=-mint</div><div class='del'>-		;;</div><div class='del'>-	*)</div><div class='del'>-		os=-none</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-# Here we handle the case where we know the os, and the CPU type, but not the</div><div class='del'>-# manufacturer.  We pick the logical manufacturer.</div><div class='del'>-vendor=unknown</div><div class='del'>-case $basic_machine in</div><div class='del'>-	*-unknown)</div><div class='del'>-		case $os in</div><div class='del'>-			-riscix*)</div><div class='del'>-				vendor=acorn</div><div class='del'>-				;;</div><div class='del'>-			-sunos*)</div><div class='del'>-				vendor=sun</div><div class='del'>-				;;</div><div class='del'>-			-aix*)</div><div class='del'>-				vendor=ibm</div><div class='del'>-				;;</div><div class='del'>-			-beos*)</div><div class='del'>-				vendor=be</div><div class='del'>-				;;</div><div class='del'>-			-hpux*)</div><div class='del'>-				vendor=hp</div><div class='del'>-				;;</div><div class='del'>-			-mpeix*)</div><div class='del'>-				vendor=hp</div><div class='del'>-				;;</div><div class='del'>-			-hiux*)</div><div class='del'>-				vendor=hitachi</div><div class='del'>-				;;</div><div class='del'>-			-unos*)</div><div class='del'>-				vendor=crds</div><div class='del'>-				;;</div><div class='del'>-			-dgux*)</div><div class='del'>-				vendor=dg</div><div class='del'>-				;;</div><div class='del'>-			-luna*)</div><div class='del'>-				vendor=omron</div><div class='del'>-				;;</div><div class='del'>-			-genix*)</div><div class='del'>-				vendor=ns</div><div class='del'>-				;;</div><div class='del'>-			-mvs* | -opened*)</div><div class='del'>-				vendor=ibm</div><div class='del'>-				;;</div><div class='del'>-			-os400*)</div><div class='del'>-				vendor=ibm</div><div class='del'>-				;;</div><div class='del'>-			-ptx*)</div><div class='del'>-				vendor=sequent</div><div class='del'>-				;;</div><div class='del'>-			-tpf*)</div><div class='del'>-				vendor=ibm</div><div class='del'>-				;;</div><div class='del'>-			-vxsim* | -vxworks* | -windiss*)</div><div class='del'>-				vendor=wrs</div><div class='del'>-				;;</div><div class='del'>-			-aux*)</div><div class='del'>-				vendor=apple</div><div class='del'>-				;;</div><div class='del'>-			-hms*)</div><div class='del'>-				vendor=hitachi</div><div class='del'>-				;;</div><div class='del'>-			-mpw* | -macos*)</div><div class='del'>-				vendor=apple</div><div class='del'>-				;;</div><div class='del'>-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)</div><div class='del'>-				vendor=atari</div><div class='del'>-				;;</div><div class='del'>-			-vos*)</div><div class='del'>-				vendor=stratus</div><div class='del'>-				;;</div><div class='del'>-		esac</div><div class='del'>-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`</div><div class='del'>-		;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-echo $basic_machine$os</div><div class='del'>-exit 0</div><div class='del'>-</div><div class='del'>-# Local variables:</div><div class='del'>-# eval: (add-hook 'write-file-hooks 'time-stamp)</div><div class='del'>-# time-stamp-start: "timestamp='"</div><div class='del'>-# time-stamp-format: "%:y-%02m-%02d"</div><div class='del'>-# time-stamp-end: "'"</div><div class='del'>-# End:</div><div class='head'>diff --git a/configure.ac b/configure.ac<br/>new file mode 100644<br/>index 0000000000..8a7cee55b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/configure.ac?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>configure.ac</a></div><div class='hunk'>@@ -0,0 +1,4591 @@</div><div class='add'>+dnl Process this file with autoconf to produce a configure script.</div><div class='add'>+AC_INIT()</div><div class='add'>+{</div><div class='add'>+AC_CONFIG_AUX_DIR(tool)</div><div class='add'>+</div><div class='add'>+AC_PREREQ(2.67)</div><div class='add'>+</div><div class='add'>+AC_DISABLE_OPTION_CHECKING</div><div class='add'>+</div><div class='add'>+AC_ARG_VAR([cflags], [additional CFLAGS])</div><div class='add'>+AC_ARG_VAR([cppflags], [additional CPPFLAGS])</div><div class='add'>+AC_ARG_VAR([cxxflags], [additional CXXFLAGS])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_RM_RECURSIVE], [</div><div class='add'>+m4_version_prereq([2.70], [-1], [</div><div class='add'>+# suppress error messages, rm: cannot remove 'conftest.dSYM', from</div><div class='add'>+# AC_EGREP_CPP with CFLAGS=-g on Darwin.</div><div class='add'>+AS_CASE([$build_os], [darwin*], [</div><div class='add'>+rm() {</div><div class='add'>+    rm_recursive=''</div><div class='add'>+    for arg do</div><div class='add'>+	AS_CASE("$arg",</div><div class='add'>+		[--*], [],</div><div class='add'>+		[-*r*], [break],</div><div class='add'>+		[conftest.*], [AS_IF([test -d "$arg"], [rm_recursive=-r; break])],</div><div class='add'>+		[])</div><div class='add'>+    done</div><div class='add'>+    command rm $rm_recursive "[$]@"</div><div class='add'>+}</div><div class='add'>+])])])</div><div class='add'>+</div><div class='add'>+{ # environment section</div><div class='add'>+</div><div class='add'>+HAVE_BASERUBY=yes</div><div class='add'>+AC_ARG_WITH(baseruby,</div><div class='add'>+	AS_HELP_STRING([--with-baseruby=RUBY], [use RUBY as baseruby; RUBY is the pathname of ruby]),</div><div class='add'>+	[AS_CASE(["$withval"],</div><div class='add'>+	    [*ruby*],[BASERUBY=$withval],</div><div class='add'>+	    [no],[HAVE_BASERUBY=no],</div><div class='add'>+	    [AC_MSG_ERROR(need ruby)])</div><div class='add'>+	],</div><div class='add'>+	[</div><div class='add'>+		AC_PATH_PROG([BASERUBY], [ruby], [false])</div><div class='add'>+	])</div><div class='add'>+AS_IF([test "$HAVE_BASERUBY" = yes -a "`RUBYOPT=- $BASERUBY -e 'print 42' 2&gt;/dev/null`" = 42], [</div><div class='add'>+    AS_IF([test "`RUBYOPT=- $BASERUBY --disable=gems -e 'print 42' 2&gt;/dev/null`" = 42], [</div><div class='add'>+	BASERUBY="$BASERUBY --disable=gems"</div><div class='add'>+    ])</div><div class='add'>+    $BASERUBY -C "$srcdir" tool/downloader.rb -d tool -e gnu config.guess config.sub</div><div class='add'>+], [</div><div class='add'>+    BASERUBY="echo executable host ruby is required.  use --with-baseruby option.; false"</div><div class='add'>+    HAVE_BASERUBY=no</div><div class='add'>+])</div><div class='add'>+AC_SUBST(BASERUBY)</div><div class='add'>+AC_SUBST(HAVE_BASERUBY)</div><div class='add'>+</div><div class='add'>+: ${GIT=git}</div><div class='add'>+HAVE_GIT=yes</div><div class='add'>+AC_ARG_WITH(git,</div><div class='add'>+	AS_HELP_STRING([--without-git], [never use git]),</div><div class='add'>+	[AS_CASE([$withval],</div><div class='add'>+	    [no],  [GIT=never-use HAVE_GIT=no],</div><div class='add'>+	    [yes], [],</div><div class='add'>+	    [GIT=$withval])])</div><div class='add'>+AS_IF([test x"$HAVE_GIT" = xyes], [command -v "$GIT" &gt; /dev/null || HAVE_GIT=no])</div><div class='add'>+AC_SUBST(GIT)</div><div class='add'>+AC_SUBST(HAVE_GIT)</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_MINGW32],</div><div class='add'>+[AS_CASE(["$host_os"],</div><div class='add'>+[cygwin*], [</div><div class='add'>+AC_CACHE_CHECK(for mingw32 environment, rb_cv_mingw32,</div><div class='add'>+[AC_TRY_CPP([</div><div class='add'>+#ifndef __MINGW32__</div><div class='add'>+# error</div><div class='add'>+#endif</div><div class='add'>+], rb_cv_mingw32=yes,rb_cv_mingw32=no)</div><div class='add'>+rm -f conftest*])</div><div class='add'>+AS_IF([test "$rb_cv_mingw32" = yes], [</div><div class='add'>+    target_os="mingw32"</div><div class='add'>+    : ${ac_tool_prefix:="`expr "$CC" : ['\(.*-\)g\?cc[^/]*$']`"}</div><div class='add'>+])</div><div class='add'>+])</div><div class='add'>+AS_CASE(["$target_os"], [mingw*msvc], [</div><div class='add'>+target_os="`echo ${target_os} | sed 's/msvc$//'`"</div><div class='add'>+])</div><div class='add'>+AS_CASE(["$target_cpu-$target_os"], [x86_64-mingw*], [</div><div class='add'>+target_cpu=x64</div><div class='add'>+])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_CPPOUTFILE],</div><div class='add'>+[AC_CACHE_CHECK(whether ${CPP} accepts -o, rb_cv_cppoutfile,</div><div class='add'>+[save_CPPFLAGS="$CPPFLAGS"</div><div class='add'>+CPPFLAGS='-o conftest-1.i'</div><div class='add'>+rb_cv_cppoutfile=no</div><div class='add'>+AC_TRY_CPP([test-for-cppout],</div><div class='add'>+	   [grep test-for-cppout conftest-1.i &gt; /dev/null &amp;&amp; rb_cv_cppoutfile=yes])</div><div class='add'>+CPPFLAGS="$save_CPPFLAGS"</div><div class='add'>+rm -f conftest*])</div><div class='add'>+AS_IF([test "$rb_cv_cppoutfile" = yes], [</div><div class='add'>+  CPPOUTFILE='-o conftest.i'</div><div class='add'>+], [test "$rb_cv_cppoutfile" = no], [</div><div class='add'>+  CPPOUTFILE='&gt; conftest.i'</div><div class='add'>+], [test -n "$rb_cv_cppoutfile"], [</div><div class='add'>+  CPPOUTFILE="$rb_cv_cppoutfile"</div><div class='add'>+])</div><div class='add'>+AC_SUBST(CPPOUTFILE)])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_PROG_GNU_LD],</div><div class='add'>+[AC_CACHE_CHECK(whether the linker is GNU ld, rb_cv_prog_gnu_ld,</div><div class='add'>+[AS_IF([`$CC $CFLAGS $CPPFLAGS $LDFLAGS --print-prog-name=ld 2&gt;&amp;1` -v 2&gt;&amp;1 | grep "GNU ld" &gt; /dev/null], [</div><div class='add'>+  rb_cv_prog_gnu_ld=yes</div><div class='add'>+], [</div><div class='add'>+  rb_cv_prog_gnu_ld=no</div><div class='add'>+])])</div><div class='add'>+GNU_LD=$rb_cv_prog_gnu_ld</div><div class='add'>+AC_SUBST(GNU_LD)])</div><div class='add'>+</div><div class='add'>+eval `sed -n ['s/^@%:@define RUBY_API_VERSION_\([A-Z][A-Z_0-9]*\) \([0-9][0-9]*\)/API_\1=\2/p'] $srcdir/include/ruby/version.h`</div><div class='add'>+RUBY_PROGRAM_VERSION=`sed -n 's/^@%:@define RUBY_VERSION "\(.*\)"/\1/p' $srcdir/version.h`</div><div class='add'>+MAJOR=`echo $RUBY_PROGRAM_VERSION | cut -d. -f1`</div><div class='add'>+MINOR=`echo $RUBY_PROGRAM_VERSION | cut -d. -f2`</div><div class='add'>+TEENY=`echo $RUBY_PROGRAM_VERSION | cut -d. -f3`</div><div class='add'>+for v in MAJOR MINOR TEENY; do</div><div class='add'>+    AS_IF([eval "test \"\$$v\" = ''"], [</div><div class='add'>+	AC_MSG_ERROR(could not determine $v number from version.h)</div><div class='add'>+    ])</div><div class='add'>+done</div><div class='add'>+AS_IF([test "$MAJOR.$MINOR" != "$API_MAJOR.$API_MINOR"], [</div><div class='add'>+    AC_MSG_ERROR([API version $API_MAJOR.$API_MINOR differs from program version $MAJOR.$MINOR])</div><div class='add'>+])</div><div class='add'>+AC_SUBST(MAJOR)</div><div class='add'>+AC_SUBST(MINOR)</div><div class='add'>+AC_SUBST(TEENY)</div><div class='add'>+AC_SUBST(RUBY_PROGRAM_VERSION)</div><div class='add'>+AC_SUBST(RUBY_API_VERSION, '$(MAJOR).$(MINOR)')</div><div class='add'>+RUBY_PATCHLEVEL=`sed -n 's/^#define RUBY_PATCHLEVEL //p' $srcdir/version.h`</div><div class='add'>+AC_DEFINE(CANONICALIZATION_FOR_MATHN)</div><div class='add'>+dnl checks for alternative programs</div><div class='add'>+AC_CANONICAL_BUILD</div><div class='add'>+RUBY_RM_RECURSIVE</div><div class='add'>+AC_ARG_WITH(gcc,</div><div class='add'>+	AS_HELP_STRING([--without-gcc], [never use gcc]),</div><div class='add'>+	[</div><div class='add'>+	AS_CASE([$withval],</div><div class='add'>+	    [no],  [: ${CC=cc}],</div><div class='add'>+	    [yes], [: ${CC=gcc}],</div><div class='add'>+	           [CC=$withval])])</div><div class='add'>+dnl If the user switches compilers, we can't believe the cache</div><div class='add'>+AS_IF([test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"], [</div><div class='add'>+  AC_MSG_ERROR(cached CC is different -- throw away $cache_file</div><div class='add'>+(it is also a good idea to do 'make clean' before compiling))</div><div class='add'>+])</div><div class='add'>+test -z "$CC" || ac_cv_prog_CC="$CC"</div><div class='add'>+</div><div class='add'>+AS_IF([test "$program_prefix" = NONE], [</div><div class='add'>+  program_prefix=</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$prefix" -ef .], [</div><div class='add'>+  AC_MSG_ERROR(--prefix cannot be the current working directory.)</div><div class='add'>+])</div><div class='add'>+RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`</div><div class='add'>+RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`</div><div class='add'>+AC_SUBST(RUBY_BASE_NAME)</div><div class='add'>+AC_SUBST(RUBYW_BASE_NAME)</div><div class='add'>+AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')</div><div class='add'>+</div><div class='add'>+AC_CANONICAL_TARGET</div><div class='add'>+test x"$target_alias" = x &amp;&amp;</div><div class='add'>+target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`</div><div class='add'>+ac_install_sh='' # unusable for extension libraries.</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(os-version-style,</div><div class='add'>+	AS_HELP_STRING([--with-os-version-style=TYPE],</div><div class='add'>+		       [OS version number for target and target_os [[full]]]</div><div class='add'>+		       [(full|teeny|minor+0|minor|major+0|major|none)]),</div><div class='add'>+	[os_version_style=$withval],</div><div class='add'>+	[os_version_style=full</div><div class='add'>+	    AS_CASE($target_os, [[*[0-9].*]],</div><div class='add'>+		[AS_CASE([`/usr/bin/ruby -e 'puts RUBY_PLATFORM' 2&gt;/dev/null`],</div><div class='add'>+		    [[*-*[0-9].*.0]], [os_version_style=minor+0],</div><div class='add'>+		    [[*-*[0-9].*.*]], [os_version_style=full],</div><div class='add'>+		    [[*-*[0-9].0]  ], [os_version_style=major+0],</div><div class='add'>+		    [[*-*[0-9].*]  ], [os_version_style=minor],</div><div class='add'>+		    [[*-*[0-9]]    ], [os_version_style=major],</div><div class='add'>+		)])</div><div class='add'>+	])</div><div class='add'>+os_version_style_transform=</div><div class='add'>+AS_CASE("${os_version_style}",</div><div class='add'>+	[full|teeny], [],</div><div class='add'>+	[minor+0], [os_version_style_transform=['s/\([0-9]\.[0-9][0-9]*\)\.[0-9][.0-9]*$/\1.0/']],</div><div class='add'>+	[minor],   [os_version_style_transform=['s/\([0-9]\.[0-9][0-9]*\)\.[0-9][.0-9]*$/\1/']],</div><div class='add'>+	[major+0], [os_version_style_transform=['s/\([0-9]\)\.[0-9][.0-9]*$/\1.0/']],</div><div class='add'>+	[major],   [os_version_style_transform=['s/\([0-9]\)\.[0-9][.0-9]*$/\1/']],</div><div class='add'>+	[none],    [os_version_style_transform=['s/[0-9]\.[0-9][.0-9]*$//']],</div><div class='add'>+	[AC_MSG_ERROR(unknown --with-os-version-style: $withval)])</div><div class='add'>+AS_IF([test -z "$target_alias" -a -n "$os_version_style_transform"],</div><div class='add'>+	[</div><div class='add'>+	target=`echo ${target} | sed "$os_version_style_transform"`</div><div class='add'>+	target_os=`echo ${target_os} | sed "$os_version_style_transform"`</div><div class='add'>+	])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_APPEND_OPTION],</div><div class='add'>+	[# RUBY_APPEND_OPTION($1)</div><div class='add'>+	AS_CASE([" [$]{$1-} "],</div><div class='add'>+	[*" $2 "*], [], ['  '], [ $1="$2"], [ $1="[$]$1 $2"])])</div><div class='add'>+AC_DEFUN([RUBY_APPEND_OPTIONS],</div><div class='add'>+	[# RUBY_APPEND_OPTIONS($1)</div><div class='add'>+	for rb_opt in $2; do</div><div class='add'>+	AS_CASE([" [$]{$1-} "],</div><div class='add'>+	[*" [$]{rb_opt} "*], [], ['  '], [ $1="[$]{rb_opt}"], [ $1="[$]$1 [$]{rb_opt}"])</div><div class='add'>+	done])</div><div class='add'>+AC_DEFUN([RUBY_PREPEND_OPTION],</div><div class='add'>+	[# RUBY_PREPEND_OPTION($1)</div><div class='add'>+	AS_CASE([" [$]{$1-} "],</div><div class='add'>+	[*" $2 "*], [], ['  '], [ $1="$2"], [ $1="$2 [$]$1"])])</div><div class='add'>+AC_DEFUN([RUBY_PREPEND_OPTIONS],</div><div class='add'>+	[# RUBY_PREPEND_OPTIONS($1)</div><div class='add'>+	unset rb_opts; for rb_opt in $2; do</div><div class='add'>+	AS_CASE([" [$]{rb_opts} [$]{$1-} "],</div><div class='add'>+	[*" [$]{rb_opt} "*], [], ['  '], [ $1="[$]{rb_opt}"], [ rb_opts="[$]{rb_opts}[$]{rb_opt} "])</div><div class='add'>+	done</div><div class='add'>+	$1="[$]{rb_opts}[$]$1"])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(arch,</div><div class='add'>+	AS_HELP_STRING([--with-arch=ARCHS],</div><div class='add'>+		       [build an Apple/NeXT Multi Architecture Binary (MAB);</div><div class='add'>+                          ARCHS is a comma-delimited list of architectures for</div><div class='add'>+                          which to build; if this option is disabled or omitted</div><div class='add'>+			  entirely, then the package will be built only for the</div><div class='add'>+			  target platform]),</div><div class='add'>+       [target_archs="$withval"], [unset target_archs])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_DEFAULT_ARCH], [</div><div class='add'>+AC_MSG_CHECKING([arch option])</div><div class='add'>+AS_CASE([$1],</div><div class='add'>+	[*64],        [ARCH_FLAG=-m64],</div><div class='add'>+	[[i[3-6]86]], [ARCH_FLAG=-m32],</div><div class='add'>+	[AC_MSG_ERROR(unknown target architecture: $target_archs)]</div><div class='add'>+	)</div><div class='add'>+AC_MSG_RESULT([$ARCH_FLAG])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_UNIVERSAL_ARCH], [</div><div class='add'>+# RUBY_UNIVERSAL_ARCH begin</div><div class='add'>+ARCH_FLAG=`expr " $CXXFLAGS " : ['.* \(-m[0-9][0-9]*\) ']`</div><div class='add'>+test ${CXXFLAGS+set} &amp;&amp; CXXFLAGS=`echo "$CXXFLAGS" | sed [-e 's/ *-arch  *[^ ]*//g' -e 's/ *-m32//g' -e 's/ *-m64//g']`</div><div class='add'>+ARCH_FLAG=`expr " $CFLAGS " : ['.* \(-m[0-9][0-9]*\) ']`</div><div class='add'>+test ${CFLAGS+set} &amp;&amp; CFLAGS=`echo "$CFLAGS" | sed [-e 's/ *-arch  *[^ ]*//g' -e 's/ *-m32//g' -e 's/ *-m64//g']`</div><div class='add'>+test ${LDFLAGS+set} &amp;&amp; LDFLAGS=`echo "$LDFLAGS" | sed [-e 's/ *-arch  *[^ ]*//g' -e 's/ *-m32//g' -e 's/ *-m64//g']`</div><div class='add'>+unset universal_binary universal_archnames</div><div class='add'>+AS_IF([test ${target_archs+set}], [</div><div class='add'>+    AC_MSG_CHECKING([target architectures])</div><div class='add'>+    target_archs=`echo $target_archs | tr , ' '`</div><div class='add'>+    # /usr/lib/arch_tool -archify_list $TARGET_ARCHS</div><div class='add'>+    for archs in $target_archs</div><div class='add'>+    do</div><div class='add'>+	AS_CASE([",$universal_binary,"],[*",$archs,"*], [],[</div><div class='add'>+	    cpu=`$SHELL "$ac_aux_dir/config.sub" "${archs}-${target_os}" 2&gt;&amp;1` || {</div><div class='add'>+	        AC_MSG_RESULT([failed])</div><div class='add'>+		AC_MSG_ERROR([$cpu])</div><div class='add'>+	    }</div><div class='add'>+	    cpu=`echo $cpu | sed 's/-.*-.*//'`</div><div class='add'>+	    universal_binary="${universal_binary+$universal_binary,}$cpu"</div><div class='add'>+	    universal_archnames="${universal_archnames} ${archs}=${cpu}"</div><div class='add'>+	    ARCH_FLAG="${ARCH_FLAG+$ARCH_FLAG }-arch $archs"</div><div class='add'>+	    ])</div><div class='add'>+    done</div><div class='add'>+    target_archs="$universal_binary"</div><div class='add'>+    unset universal_binary</div><div class='add'>+    AS_CASE(["$target_archs"],</div><div class='add'>+      [*,*], [universal_binary=yes],</div><div class='add'>+             [unset universal_archnames])</div><div class='add'>+    AC_MSG_RESULT([$target_archs])</div><div class='add'>+</div><div class='add'>+    target=`echo $target | sed "s/^$target_cpu-/-/"`</div><div class='add'>+    target_alias=`echo $target_alias | sed "s/^$target_cpu-/-/"`</div><div class='add'>+    AS_IF([test "${universal_binary-no}" = yes], [</div><div class='add'>+	AC_SUBST(try_header,try_compile)</div><div class='add'>+	target_cpu=universal</div><div class='add'>+	real_cross_compiling=$cross_compiling</div><div class='add'>+    ], [</div><div class='add'>+	AS_IF([test x"$target_cpu" != x"${target_archs}"], [</div><div class='add'>+	    echo 'int main(){return 0;}' &gt; conftest.c</div><div class='add'>+	    AS_IF([$CC $CFLAGS $ARCH_FLAG -o conftest conftest.c &gt; /dev/null 2&gt;&amp;1], [</div><div class='add'>+		rm -fr conftest.*</div><div class='add'>+	    ], [</div><div class='add'>+		RUBY_DEFAULT_ARCH("$target_archs")</div><div class='add'>+	    ])</div><div class='add'>+	])</div><div class='add'>+	target_cpu=${target_archs}</div><div class='add'>+    ])</div><div class='add'>+    AS_CASE(["$target"], [-*], [ target="$target_cpu${target}"])</div><div class='add'>+    AS_CASE(["$target_alias"], [-*], [ target_alias="$target_cpu${target_alias}"])</div><div class='add'>+], [</div><div class='add'>+    AS_IF([test x"$target_alias" = x], [</div><div class='add'>+	AS_CASE(["$target_os"],</div><div class='add'>+	  [darwin*], [</div><div class='add'>+	    AC_MSG_CHECKING([for real target cpu])</div><div class='add'>+	    target=`echo $target | sed "s/^$target_cpu-/-/"`</div><div class='add'>+	    target_cpu=`$CC -E - 2&gt;/dev/null &lt;&lt;EOF |</div><div class='add'>+#ifdef __x86_64__</div><div class='add'>+"processor-name=x86_64"</div><div class='add'>+#endif</div><div class='add'>+#ifdef __i386__</div><div class='add'>+"processor-name=i386"</div><div class='add'>+#endif</div><div class='add'>+#ifdef __ppc__</div><div class='add'>+"processor-name=powerpc"</div><div class='add'>+#endif</div><div class='add'>+#ifdef __ppc64__</div><div class='add'>+"processor-name=powerpc64"</div><div class='add'>+#endif</div><div class='add'>+EOF</div><div class='add'>+	    sed -n 's/^"processor-name=\(.*\)"/\1/p'`</div><div class='add'>+	    target="$target_cpu${target}"</div><div class='add'>+	    AC_MSG_RESULT([$target_cpu])</div><div class='add'>+	    ])</div><div class='add'>+    ])</div><div class='add'>+    target_archs="$target_cpu"</div><div class='add'>+])</div><div class='add'>+AS_IF([test "${target_archs}" != "${rb_cv_target_archs-${target_archs}}"], [</div><div class='add'>+    AC_MSG_ERROR([target arch(s) has changed from ${rb_cv_target_archs-nothing} to ${target_archs}])</div><div class='add'>+], [</div><div class='add'>+    rb_cv_target_archs=${target_archs}</div><div class='add'>+])</div><div class='add'>+AS_IF([test "x${ARCH_FLAG}" != x], [</div><div class='add'>+    CFLAGS="${CFLAGS:+$CFLAGS }${ARCH_FLAG}"</div><div class='add'>+    LDFLAGS="${LDFLAGS:+$LDFLAGS }${ARCH_FLAG}"</div><div class='add'>+])</div><div class='add'>+# RUBY_UNIVERSAL_ARCH end</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(load-relative,</div><div class='add'>+       AS_HELP_STRING([--enable-load-relative], [resolve load paths at run time]),</div><div class='add'>+       [load_relative=$enableval])</div><div class='add'>+</div><div class='add'>+AC_ARG_PROGRAM</div><div class='add'>+</div><div class='add'>+dnl Checks for programs.</div><div class='add'>+</div><div class='add'>+cflagspat=</div><div class='add'>+test -z "$optflags" ||</div><div class='add'>+    cflagspat="$cflagspat;s|"`eval echo '"'"${optflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='add'>+test -z "$debugflags" ||</div><div class='add'>+    cflagspat="$cflagspat;s|"`eval echo '"'"${debugflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='add'>+test -z "warnflags" ||</div><div class='add'>+    cflagspat="$cflagspat;s|"`eval echo '"'"${warnflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='add'>+AS_IF([test -z "${CFLAGS+set}"], [</div><div class='add'>+    cflags=`echo " $cflags " | sed "$cflagspat;s/^ *//;s/ *$//"`</div><div class='add'>+    orig_cflags="$cflags"</div><div class='add'>+    cflags="$cflags "'${optflags} ${debugflags} ${warnflags}'</div><div class='add'>+])</div><div class='add'>+AS_IF([test -z "${CXXFLAGS+set}"], [</div><div class='add'>+    cxxflags=`echo " $cxxflags " | sed "$cflagspat;s/^ *//;s/ *$//"`</div><div class='add'>+    orig_cxxflags="$cxxflags"</div><div class='add'>+    cxxflags="$cxxflags "'${optflags} ${debugflags} ${warnflags}'</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$host_os:$build_os"],</div><div class='add'>+[darwin*:darwin*], [</div><div class='add'>+    AC_CHECK_TOOLS(CC, [clang gcc cc])</div><div class='add'>+    # Following Apple deployed clang are broken</div><div class='add'>+    # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)</div><div class='add'>+    # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)</div><div class='add'>+    # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)</div><div class='add'>+    AS_IF([! $CC -E -xc - &lt;&lt;SRC &gt;/dev/null], [</div><div class='add'>+	@%:@if defined __APPLE_CC__ &amp;&amp; defined __clang_major__ &amp;&amp; __clang_major__ &lt; 3</div><div class='add'>+	@%:@error premature clang</div><div class='add'>+	@%:@endif</div><div class='add'>+SRC</div><div class='add'>+	AC_MSG_ERROR([clang version 3.0 or later is required])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test x"${build}" != x"${host}"], [</div><div class='add'>+  AC_CHECK_TOOL(CC, gcc)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_PROG_CC</div><div class='add'>+</div><div class='add'>+dnl Select the appropriate C++ compiler in OS X</div><div class='add'>+AS_CASE(["$build_os"],</div><div class='add'>+  [darwin1*.*], [</div><div class='add'>+    AS_CASE(["x$CC"],</div><div class='add'>+      [xgcc-4.2|x/usr/bin/gcc-4.2], [: ${CXX=g++-4.2}],</div><div class='add'>+      [xgcc|x/usr/bin/gcc],         [: ${CXX=g++}],</div><div class='add'>+      [xcc|x/usr/bin/cc],           [: ${CXX=c++}],</div><div class='add'>+      [xicc],                       [: ${CXX=icpc}],</div><div class='add'>+      [xclang|x/usr/bin/clang],     [: ${CXX=clang++}])</div><div class='add'>+  ])</div><div class='add'>+test -z "$CXX" || ac_cv_prog_CXX="$CXX"</div><div class='add'>+</div><div class='add'>+AC_PROG_CXX</div><div class='add'>+RUBY_MINGW32</div><div class='add'>+AC_PROG_GCC_TRADITIONAL</div><div class='add'>+AC_SUBST(GCC)</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[solaris*], [AC_PATH_TOOL([LD], [ld], [/usr/ccs/bin/ld], [/usr/ccs/bin:$PATH])],</div><div class='add'>+[AC_CHECK_TOOL([LD], [ld], [ld])])</div><div class='add'>+AC_SUBST(LD)</div><div class='add'>+AS_IF([test "$GCC" = yes], [</div><div class='add'>+    linker_flag=-Wl,</div><div class='add'>+    : ${optflags=-O3}</div><div class='add'>+    gcc_major=`echo =__GNUC__ | $CC -E -xc - | sed '/^=/!d;s///'`</div><div class='add'>+    gcc_minor=`echo =__GNUC_MINOR__ | $CC -E -xc - | sed '/^=/!d;s///'`</div><div class='add'>+    test -n "$gcc_major" || gcc_major=0</div><div class='add'>+    test -n "$gcc_minor" || gcc_minor=0</div><div class='add'>+    AS_CASE(["x$CC"], [xicc], [</div><div class='add'>+      icc_version=`echo =__ICC | $CC -E -xc - | sed '/^=/!d;s///'`</div><div class='add'>+    ])</div><div class='add'>+    test -n "$icc_version" || icc_version=0</div><div class='add'>+    # RUBY_APPEND_OPTIONS(XCFLAGS, ["-include ruby/config.h" "-include ruby/missing.h"])</div><div class='add'>+], [</div><div class='add'>+    linker_flag=</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_PROG_GNU_LD</div><div class='add'>+RUBY_CPPOUTFILE</div><div class='add'>+</div><div class='add'>+: ${OUTFLAG='-o '}</div><div class='add'>+: ${COUTFLAG=${OUTFLAG}}</div><div class='add'>+: ${CSRCFLAG=''}</div><div class='add'>+AC_SUBST(OUTFLAG)</div><div class='add'>+AC_SUBST(COUTFLAG)</div><div class='add'>+AC_SUBST(CSRCFLAG)</div><div class='add'>+</div><div class='add'>+cc_version=</div><div class='add'>+for option in --version -v -V -qversion; do</div><div class='add'>+    cc_version_message=`$CC $option 2&gt;&amp;1`</div><div class='add'>+    cc_version_status=$?</div><div class='add'>+    AS_CASE($cc_version_status, [0], [:], [continue])</div><div class='add'>+    AS_CASE($cc_version_message, [*Warning*], [continue])</div><div class='add'>+    cc_version='$(CC) '$option</div><div class='add'>+    break</div><div class='add'>+done</div><div class='add'>+AC_SUBST(CC_VERSION, $cc_version)</div><div class='add'>+AC_SUBST(CC_VERSION_MESSAGE, $cc_version_message)</div><div class='add'>+</div><div class='add'>+RUBY_UNIVERSAL_ARCH</div><div class='add'>+AS_IF([test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "$universal_binary" = no], [</div><div class='add'>+    RUBY_DEFAULT_ARCH("$target_cpu")</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_cpu-$target_os"], [[i[3-6]86*]], [</div><div class='add'>+	 AC_CACHE_CHECK([for __sync_val_compare_and_swap], [rb_cv_gcc_compiler_cas], [</div><div class='add'>+			 AC_TRY_LINK([unsigned long atomic_var;],</div><div class='add'>+				     [</div><div class='add'>+				      __sync_val_compare_and_swap(&amp;atomic_var, 0, 1);</div><div class='add'>+				      ],</div><div class='add'>+				      [rb_cv_gcc_compiler_cas=yes],</div><div class='add'>+				      [rb_cv_gcc_compiler_cas=no])])</div><div class='add'>+	 AS_IF([test "$rb_cv_gcc_compiler_cas" = no], [</div><div class='add'>+		 unset rb_cv_gcc_compiler_cas</div><div class='add'>+		 save_CFLAGS="$CFLAGS"</div><div class='add'>+		 CFLAGS="$CFLAGS -march=i486"</div><div class='add'>+		 AC_CACHE_CHECK([for __sync_val_compare_and_swap with -march=i486], [rb_cv_gcc_compiler_cas], [</div><div class='add'>+				 AC_TRY_LINK([unsigned long atomic_var;],</div><div class='add'>+					     [</div><div class='add'>+					      __sync_val_compare_and_swap(&amp;atomic_var, 0, 1);</div><div class='add'>+					      ],</div><div class='add'>+					      [rb_cv_gcc_compiler_cas=yes</div><div class='add'>+					       ARCH_FLAG="-march=i486"],</div><div class='add'>+					      [rb_cv_gcc_compiler_cas=no])])</div><div class='add'>+		 CFLAGS="$save_CFLAGS"</div><div class='add'>+	 ])])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"], [darwin*], [</div><div class='add'>+if libtool 2&gt;&amp;1 | grep no_warning_for_no_symbols &gt; /dev/null; then</div><div class='add'>+  ac_cv_prog_ac_ct_RANLIB=:</div><div class='add'>+  ac_cv_prog_ac_ct_AR='libtool -static'</div><div class='add'>+  rb_cv_arflags='-no_warning_for_no_symbols -o'</div><div class='add'>+fi</div><div class='add'>+])</div><div class='add'>+AC_CHECK_TOOL(RANLIB, ranlib, :)</div><div class='add'>+AC_CHECK_TOOL(AR, ar)</div><div class='add'>+AS_IF([test -z "$AR"], [</div><div class='add'>+  AC_CHECK_PROGS(AR, aal, ar)</div><div class='add'>+])</div><div class='add'>+AC_CACHE_CHECK([for $AR flags], [rb_cv_arflags], [</div><div class='add'>+    AS_IF([$AR rcD conftest.a &gt; /dev/null 2&gt;&amp;1 &amp;&amp; rm conftest.a],</div><div class='add'>+	[rb_cv_arflags=rcD], [rb_cv_arflags=rcu])</div><div class='add'>+])</div><div class='add'>+AC_SUBST(ARFLAGS, ["$rb_cv_arflags "])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TOOL(AS, as)</div><div class='add'>+ASFLAGS=$ASFLAGS</div><div class='add'>+AC_SUBST(ASFLAGS)</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],[cygwin*|mingw*], [ac_cv_prog_ac_ct_OBJCOPY=":"])</div><div class='add'>+</div><div class='add'>+# BSD's ports and MacPorts prefix GNU binutils with 'g'</div><div class='add'>+AC_CHECK_TOOLS(OBJDUMP, [objdump gobjdump])</div><div class='add'>+AC_CHECK_TOOLS(OBJCOPY, [objcopy gobjcopy])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[cygwin*|mingw*], [</div><div class='add'>+    AC_CHECK_TOOL(WINDRES, windres)</div><div class='add'>+    AC_CHECK_TOOL(DLLWRAP, dllwrap)</div><div class='add'>+    target=`echo $target | sed "s/^$target_cpu-/-/"`</div><div class='add'>+    target_alias=`echo $target_alias | sed "s/^$target_cpu-/-/"`</div><div class='add'>+    target_cpu=`echo $target_cpu | sed s/i.86/i386/`</div><div class='add'>+    AS_CASE(["$target"], [-*], [ target="$target_cpu${target}"])</div><div class='add'>+    AS_CASE(["$target_alias"], [-*], [ target_alias="$target_cpu${target_alias}"])</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+    [mingw*], [</div><div class='add'>+	test "$rb_cv_msvcrt" = "" &amp;&amp; unset rb_cv_msvcrt</div><div class='add'>+	AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [</div><div class='add'>+	AC_TRY_LINK([@%:@include &lt;stdio.h&gt;],</div><div class='add'>+		    [FILE* volatile f = stdin; return 0;],</div><div class='add'>+		    [rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |</div><div class='add'>+				   tr A-Z a-z |</div><div class='add'>+				   sed -n '/^[[ 	]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],</div><div class='add'>+		    [rb_cv_msvcrt=msvcrt])</div><div class='add'>+	test "$rb_cv_msvcrt" = "" &amp;&amp; rb_cv_msvcrt=msvcrt])</div><div class='add'>+	RT_VER=`echo "$rb_cv_msvcrt" | tr -cd [0-9]`</div><div class='add'>+	test "$RT_VER" = "" &amp;&amp; RT_VER=60</div><div class='add'>+	AC_DEFINE_UNQUOTED(RUBY_MSVCRT_VERSION, $RT_VER)</div><div class='add'>+	sysconfdir=</div><div class='add'>+    ])</div><div class='add'>+    : ${enable_shared=yes}</div><div class='add'>+    ],</div><div class='add'>+[aix*],     [AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)],</div><div class='add'>+[hiuxmpp*], [AC_DEFINE(__HIUX_MPP__)])    # by TOYODA Eizi &lt;toyoda@npd.kishou.go.jp&gt;</div><div class='add'>+AC_CHECK_TOOL(NM, nm)</div><div class='add'>+</div><div class='add'>+AC_PROG_LN_S</div><div class='add'>+AC_PROG_MAKE_SET</div><div class='add'>+AC_PROG_INSTALL</div><div class='add'>+AC_PROG_MKDIR_P</div><div class='add'>+AS_IF([test "x$MKDIR_P" = "x -d"], [</div><div class='add'>+  AS_IF([test x"$as_mkdir_p" != xfalse], [</div><div class='add'>+    MKDIR_P='mkdir -p'</div><div class='add'>+    echo "use 'mkdir -p' as MKDIR_P"</div><div class='add'>+  ], [</div><div class='add'>+    AC_MSG_ERROR([mkdir -p is required])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+MAKEDIRS="$MKDIR_P"</div><div class='add'>+AC_SUBST(MAKEDIRS)</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_DTRACE_AVAILABLE],</div><div class='add'>+[AC_CACHE_CHECK(whether dtrace USDT is available, rb_cv_dtrace_available,</div><div class='add'>+[</div><div class='add'>+    echo "provider conftest{ probe fire(); };" &gt; conftest_provider.d</div><div class='add'>+    rb_cv_dtrace_available=no</div><div class='add'>+    AS_FOR(opt, rb_dtrace_opt, ["-xnolibs" ""], [dnl</div><div class='add'>+	AS_IF([$DTRACE opt -h -o conftest_provider.h -s conftest_provider.d &gt;/dev/null 2&gt;/dev/null],</div><div class='add'>+	    [], [continue])</div><div class='add'>+	AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();],</div><div class='add'>+	    [], [continue])</div><div class='add'>+	# DTrace is available on the system</div><div class='add'>+	rb_cv_dtrace_available=yes${rb_dtrace_opt:+"(opt)"}</div><div class='add'>+	break</div><div class='add'>+    ])</div><div class='add'>+    rm -f conftest.[co] conftest_provider.[dho]</div><div class='add'>+])</div><div class='add'>+AS_CASE(["$rb_cv_dtrace_available"], ["yes("*")"],</div><div class='add'>+    [DTRACE_OPT=`expr "$rb_cv_dtrace_available" : "yes(\(.*\))"`])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_DTRACE_POSTPROCESS],</div><div class='add'>+[AC_CACHE_CHECK(whether $DTRACE needs post processing, rb_cv_prog_dtrace_g,</div><div class='add'>+[</div><div class='add'>+  rb_cv_prog_dtrace_g=no</div><div class='add'>+  AS_IF([{</div><div class='add'>+    cat &gt;conftest_provider.d &lt;&lt;_PROBES &amp;&amp;</div><div class='add'>+    provider conftest {</div><div class='add'>+      probe fire();</div><div class='add'>+    };</div><div class='add'>+_PROBES</div><div class='add'>+    $DTRACE ${DTRACE_OPT} -h -o conftest_provider.h -s conftest_provider.d &gt;/dev/null 2&gt;/dev/null &amp;&amp;</div><div class='add'>+    :</div><div class='add'>+  }], [</div><div class='add'>+    AC_TRY_COMPILE([@%:@include "conftest_provider.h"], [CONFTEST_FIRE();], [</div><div class='add'>+	AS_IF([{</div><div class='add'>+	    cp -p conftest.${ac_objext} conftest.${ac_objext}.save &amp;&amp;</div><div class='add'>+	    $DTRACE ${DTRACE_OPT} -G -s conftest_provider.d conftest.${ac_objext} 2&gt;/dev/null &amp;&amp;</div><div class='add'>+	    :</div><div class='add'>+	}], [</div><div class='add'>+	    AS_IF([cmp -s conftest.o conftest.${ac_objext}.save], [</div><div class='add'>+		rb_cv_prog_dtrace_g=yes</div><div class='add'>+	    ], [</div><div class='add'>+		rb_cv_prog_dtrace_g=rebuild</div><div class='add'>+	    ])</div><div class='add'>+	])])</div><div class='add'>+  ])</div><div class='add'>+  rm -f conftest.[co] conftest_provider.[dho]</div><div class='add'>+])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CHECK_PROG([DTRACE], [${ac_tool_prefix}dtrace], [${ac_tool_prefix}dtrace])</div><div class='add'>+AS_IF([test "$cross_compiling:$ac_cv_prog_DTRACE" = no: -a -n "$ac_tool_prefix"], [</div><div class='add'>+    AC_CHECK_PROG([DTRACE], [dtrace], [dtrace])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CHECK_PROGS(DOT, dot)</div><div class='add'>+AC_CHECK_PROGS(DOXYGEN, doxygen)</div><div class='add'>+</div><div class='add'>+AC_CHECK_PROG(PKG_CONFIG, pkg-config, [pkg-config], [], [],</div><div class='add'>+    [`"$as_dir/$ac_word$ac_exec_ext" --print-errors --version &gt; /dev/null 2&gt;&amp;1 || echo "$as_dir/$ac_word$ac_exec_ext"`])</div><div class='add'>+</div><div class='add'>+# checks for UNIX variants that set C preprocessor variables</div><div class='add'>+AC_USE_SYSTEM_EXTENSIONS</div><div class='add'>+</div><div class='add'>+AC_SUBST(RM, ['rm -f'])</div><div class='add'>+AC_SUBST(CP, ['cp'])</div><div class='add'>+RMDIRS='$(top_srcdir)/tool/rmdirs'</div><div class='add'>+RMDIR=rmdir</div><div class='add'>+mkdir "rmdirs_$$_test" "rmdirs_$$_test/a"</div><div class='add'>+rmdir --ignore-fail-on-non-empty "rmdirs_$$_test" 2&gt;/dev/null &amp;&amp;</div><div class='add'>+RMDIR='rmdir --ignore-fail-on-non-empty'</div><div class='add'>+$RMDIR -p "rmdirs_$$_test/a" 2&gt;/dev/null &amp;&amp;</div><div class='add'>+{ test -d "rmdirs_$$_test" || RMDIRS="$RMDIR -p"; }</div><div class='add'>+rmdir "rmdirs_$$_test/a" "rmdirs_$$_test" 2&gt;/dev/null</div><div class='add'>+AC_SUBST(RMDIR)</div><div class='add'>+AC_SUBST(RMDIRS)</div><div class='add'>+AC_SUBST(RMALL, ['rm -fr'])</div><div class='add'>+</div><div class='add'>+AC_MSG_CHECKING([for cd using physical directory])</div><div class='add'>+rm -fr conf$$.dir</div><div class='add'>+mkdir conf$$.dir &amp;&amp;</div><div class='add'>+(cd conf$$.dir &amp;&amp; mkdir src build &amp;&amp; cd src &amp;&amp;</div><div class='add'>+$as_ln_s ../build . &gt; /dev/null 2&gt;&amp;1 &amp;&amp; cd build &amp;&amp;</div><div class='add'>+for chdir in 'cd -P' 'PWD= cd'; do</div><div class='add'>+    /bin/sh -c "$chdir ../src &amp;&amp; echo '$chdir' &gt; cdcmd" 2&gt; /dev/null &amp;&amp; break</div><div class='add'>+done)</div><div class='add'>+AS_IF([test -f conf$$.dir/src/cdcmd], [</div><div class='add'>+    read CHDIR &lt; conf$$.dir/src/cdcmd 2&gt; /dev/null</div><div class='add'>+], [</div><div class='add'>+    CHDIR=cd</div><div class='add'>+])</div><div class='add'>+rm -fr conf$$.dir</div><div class='add'>+AC_MSG_RESULT([$CHDIR])</div><div class='add'>+AC_SUBST(CHDIR)</div><div class='add'>+</div><div class='add'>+}</div><div class='add'>+{ # compiler section</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_WERROR_FLAG], [dnl</div><div class='add'>+save_CFLAGS="$CFLAGS"</div><div class='add'>+CFLAGS="$CFLAGS $rb_cv_warnflags"</div><div class='add'>+AS_IF([test "${ac_c_werror_flag+set}"], [</div><div class='add'>+  rb_c_werror_flag="$ac_c_werror_flag"</div><div class='add'>+], [</div><div class='add'>+  unset rb_c_werror_flag</div><div class='add'>+])</div><div class='add'>+ac_c_werror_flag=yes</div><div class='add'>+$1</div><div class='add'>+CFLAGS="$save_CFLAGS"</div><div class='add'>+save_CFLAGS=</div><div class='add'>+AS_IF([test "${rb_c_werror_flag+set}"], [</div><div class='add'>+  ac_c_werror_flag="$rb_c_werror_flag"</div><div class='add'>+], [</div><div class='add'>+  unset ac_c_werror_flag</div><div class='add'>+])])</div><div class='add'>+</div><div class='add'>+RUBY_WERROR_FLAG([</div><div class='add'>+    AC_MSG_CHECKING([whether CFLAGS is valid])</div><div class='add'>+    AC_TRY_COMPILE([], [],</div><div class='add'>+	[AC_MSG_RESULT(yes)],</div><div class='add'>+	[</div><div class='add'>+	AC_MSG_RESULT(no)</div><div class='add'>+	AC_MSG_ERROR([something wrong with CFLAGS="$CFLAGS"])</div><div class='add'>+	]</div><div class='add'>+    )</div><div class='add'>+    AC_MSG_CHECKING([whether LDFLAGS is valid])</div><div class='add'>+    {</div><div class='add'>+	mkdir tmp.$$.try_link &amp;&amp;</div><div class='add'>+	cd tmp.$$.try_link &amp;&amp;</div><div class='add'>+	cp ../confdefs.h . &amp;&amp;</div><div class='add'>+	echo '&lt;?xml?&gt;&lt;plist&gt;&lt;dict&gt;&lt;key&gt;CFBundleIdentifier&lt;/key&gt;&lt;string&gt;&lt;/string&gt;&lt;/dict&gt;&lt;/plist&gt;' &gt; Info.plist &amp;&amp;</div><div class='add'>+	:</div><div class='add'>+    } || AC_MSG_ERROR([failed to make temporary directory])</div><div class='add'>+    AC_TRY_LINK([], [],</div><div class='add'>+	[AC_MSG_RESULT(yes)],</div><div class='add'>+	[</div><div class='add'>+	cd .. &amp;&amp; rm -fr tmp.$$.try_link</div><div class='add'>+	AC_MSG_RESULT(no)</div><div class='add'>+	AC_MSG_ERROR([something wrong with LDFLAGS="$LDFLAGS"])</div><div class='add'>+	]</div><div class='add'>+    )</div><div class='add'>+    cd .. &amp;&amp; rm -fr tmp.$$.try_link</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_TRY_CFLAGS], [</div><div class='add'>+    AC_MSG_CHECKING([whether ]$1[ is accepted as CFLAGS])</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+    CFLAGS="[$]CFLAGS $1"</div><div class='add'>+    AC_TRY_COMPILE([$4], [$5],</div><div class='add'>+	[$2</div><div class='add'>+	AC_MSG_RESULT(yes)],</div><div class='add'>+	[$3</div><div class='add'>+	AC_MSG_RESULT(no)])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_TRY_LDFLAGS], [</div><div class='add'>+    save_LDFLAGS="$LDFLAGS"</div><div class='add'>+    LDFLAGS="[$]LDFLAGS $1"</div><div class='add'>+    AC_MSG_CHECKING([whether $1 is accepted as LDFLAGS])</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+    AC_TRY_LINK([$4], [$5],</div><div class='add'>+	[$2</div><div class='add'>+	AC_MSG_RESULT(yes)],</div><div class='add'>+	[$3</div><div class='add'>+	AC_MSG_RESULT(no)])</div><div class='add'>+    ])</div><div class='add'>+    LDFLAGS="$save_LDFLAGS"</div><div class='add'>+    save_LDFLAGS=</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+: ${DLDFLAGS="$LDFLAGS"}</div><div class='add'>+: ${RPATHFLAG=''}</div><div class='add'>+rpathflag=''</div><div class='add'>+AS_IF([test x"${RPATHFLAG}" = x], [</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+	[hpux*], [AS_IF([test "$rb_cv_prog_gnu_ld" = no], [rpathflag='+b '])],</div><div class='add'>+	[aix*], [rpathflag='-blibpath:'],</div><div class='add'>+	[for rpathflag in -R "-rpath "; do</div><div class='add'>+	    AS_CASE("$rpathflag",</div><div class='add'>+		    [*" "], [AS_CASE(["${linker_flag}"],</div><div class='add'>+				     [*,], [rpathflag=`echo "$rpathflag" | tr ' ' ,`])])</div><div class='add'>+	    rpathflag="${linker_flag}${rpathflag}"</div><div class='add'>+	    RUBY_TRY_LDFLAGS([${rpathflag}.], [], [rpathflag=])</div><div class='add'>+	    AS_IF([test "x${rpathflag}" != x], [])</div><div class='add'>+        done])</div><div class='add'>+], [</div><div class='add'>+    rpathflag=`echo "$RPATHFLAG" | sed 's/%.*//'`</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE([$RUBY_PATCHLEVEL], [-*],</div><div class='add'>+	[RUBY_DEVEL=yes], [RUBY_DEVEL=no])</div><div class='add'>+particular_werror_flags=$RUBY_DEVEL</div><div class='add'>+AC_ARG_ENABLE(werror,</div><div class='add'>+	AS_HELP_STRING([--disable-werror],</div><div class='add'>+		       [don't make warnings into errors</div><div class='add'>+		       even if a compiler support -Werror feature</div><div class='add'>+		       [[disabled by default unless development version]]]),</div><div class='add'>+	[particular_werror_flags=$enableval])</div><div class='add'>+</div><div class='add'>+rb_cv_warnflags="$warnflags"</div><div class='add'>+AS_IF([test "$GCC:${warnflags+set}:no" = yes::no], [</div><div class='add'>+    AS_IF([test $gcc_major -ge 4], [</div><div class='add'>+	extra_warning=-Werror=extra-tokens</div><div class='add'>+    ], [</div><div class='add'>+	extra_warning=</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test $gcc_major -ge 5 -a $gcc_major -le 6], [</div><div class='add'>+	extra_warning="$extra_warning -Wno-maybe-uninitialized"</div><div class='add'>+    ])</div><div class='add'>+    # ICC doesn't support -Werror=</div><div class='add'>+    AS_IF([test $icc_version -gt 0], [</div><div class='add'>+	particular_werror_flags=no</div><div class='add'>+    ])</div><div class='add'>+    for wflag in -Wno-unused-parameter -Wno-parentheses -Wno-long-long \</div><div class='add'>+                 -diag-disable=175,188,2259 \</div><div class='add'>+		 -Wno-missing-field-initializers \</div><div class='add'>+		 -Wno-tautological-compare \</div><div class='add'>+		 -Wno-parentheses-equality \</div><div class='add'>+		 -Wno-constant-logical-operand \</div><div class='add'>+		 -Wno-self-assign \</div><div class='add'>+		 -Wunused-variable \</div><div class='add'>+		 -Werror=implicit-int \</div><div class='add'>+		 -Werror=pointer-arith \</div><div class='add'>+		 -Werror=write-strings \</div><div class='add'>+		 -Werror=declaration-after-statement \</div><div class='add'>+		 -Werror=shorten-64-to-32 \</div><div class='add'>+		 -Werror=implicit-function-declaration \</div><div class='add'>+		 -Werror=division-by-zero \</div><div class='add'>+		 -Werror=deprecated-declarations \</div><div class='add'>+		 -Werror=misleading-indentation \</div><div class='add'>+		 -Wno-packed-bitfield-compat \</div><div class='add'>+		 -Wsuggest-attribute=noreturn \</div><div class='add'>+		 -Wsuggest-attribute=format \</div><div class='add'>+		 -Wimplicit-fallthrough=0 \</div><div class='add'>+		 -Werror=duplicated-cond \</div><div class='add'>+		 -Werror=restrict \</div><div class='add'>+		 $extra_warning \</div><div class='add'>+		 ; do</div><div class='add'>+	AS_IF([test "$particular_werror_flags" != yes], [</div><div class='add'>+	    wflag=`echo x$wflag | sed 's/^x-Werror=/-W/;s/^x//'`</div><div class='add'>+	])</div><div class='add'>+	ok=no</div><div class='add'>+	RUBY_TRY_CFLAGS($wflag, [</div><div class='add'>+	    RUBY_APPEND_OPTIONS(warnflags, $wflag)</div><div class='add'>+	    ok=yes</div><div class='add'>+	])</div><div class='add'>+	AS_CASE([$ok:$wflag], [no:-Werror=*], [</div><div class='add'>+	    wflag=`echo x$wflag | sed 's/^x-Werror=/-W/'`</div><div class='add'>+	    RUBY_TRY_CFLAGS($wflag, [</div><div class='add'>+		RUBY_APPEND_OPTIONS(warnflags, $wflag)</div><div class='add'>+		particular_werror_flags=no</div><div class='add'>+	    ])</div><div class='add'>+	])</div><div class='add'>+    done</div><div class='add'>+    AS_CASE([" $warnflags "],[*" -Wno-missing-field-initializers "*], [wflag="-Wall -Wextra"],</div><div class='add'>+                             [wflag=-Wall])</div><div class='add'>+    RUBY_TRY_CFLAGS($wflag, [warnflags="$wflag${warnflags+ $warnflags}"])</div><div class='add'>+    # Disable warnflags while conftest. -Werror=* flags might make bad OS capability guess.</div><div class='add'>+    rb_cv_warnflags="$warnflags"</div><div class='add'>+    warnflags=</div><div class='add'>+])</div><div class='add'>+RUBY_TRY_CFLAGS(-Qunused-arguments, [RUBY_APPEND_OPTIONS(rb_cv_wsuppress_flags, -Qunused-arguments)])</div><div class='add'>+</div><div class='add'>+for n in infinity nan; do</div><div class='add'>+    m=AS_TR_CPP($n)</div><div class='add'>+    AC_CACHE_CHECK([whether $m is available without C99 option], rb_cv_$n,</div><div class='add'>+	[AC_COMPILE_IFELSE(</div><div class='add'>+	    [AC_LANG_BOOL_COMPILE_TRY(AC_INCLUDES_DEFAULT([@%:@include &lt;math.h&gt;</div><div class='add'>+@%:@ifndef $m</div><div class='add'>+@%:@error no $m</div><div class='add'>+@%:@endif</div><div class='add'>+]), [1])], [eval rb_cv_$n=yes], [eval rb_cv_$n=no])])</div><div class='add'>+    AS_IF([eval test '"$rb_cv_'$n'"' = yes], [</div><div class='add'>+	AC_DEFINE_UNQUOTED([HAVE_]$m)</div><div class='add'>+    ])</div><div class='add'>+done</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(compress-debug-sections,</div><div class='add'>+	AS_HELP_STRING([--with-compress-debug-sections=type],</div><div class='add'>+	    [enable debug section compression]),</div><div class='add'>+	[compress_debug_sections=$withval], [compress_debug_sections=])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$GCC" = yes], [</div><div class='add'>+    # -D_FORTIFY_SOURCE</div><div class='add'>+    # When defined _FORTIFY_SOURCE, glibc enables some additional sanity</div><div class='add'>+    # argument check. The performance drop is very little and Ubuntu enables</div><div class='add'>+    # _FORTIFY_SOURCE=2 by default. So, let's support it for protecting us from</div><div class='add'>+    # a mistake of silly C extensions.</div><div class='add'>+    RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=2, [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)])</div><div class='add'>+</div><div class='add'>+    # -fstack-protector</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+    [mingw*], [</div><div class='add'>+	stack_protector=no</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test -z "${stack_protector+set}"], [</div><div class='add'>+	RUBY_TRY_CFLAGS(-fstack-protector, [stack_protector=yes], [stack_protector=no])</div><div class='add'>+	AS_IF([test "x$stack_protector" = xyes], [</div><div class='add'>+	    RUBY_TRY_LDFLAGS(-fstack-protector, [], [stack_protector=broken])</div><div class='add'>+	])</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "x$stack_protector" = xyes], [</div><div class='add'>+	RUBY_APPEND_OPTION(XCFLAGS, -fstack-protector)</div><div class='add'>+	RUBY_APPEND_OPTION(XLDFLAGS, -fstack-protector)</div><div class='add'>+	RUBY_APPEND_OPTION(LDFLAGS, -fstack-protector)</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AS_CASE("${compress_debug_sections:-zlib}",</div><div class='add'>+    [none|no], [], [</div><div class='add'>+    RUBY_TRY_LDFLAGS(${linker_flag}--compress-debug-sections=${compress_debug_sections:-zlib},</div><div class='add'>+		     [compress_debug_sections=${compress_debug_sections:-zlib}],</div><div class='add'>+		     [compress_debug_sections=no])</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "x$compress_debug_sections" != xno], [</div><div class='add'>+	RUBY_APPEND_OPTION(DLDFLAGS, ${linker_flag}--compress-debug-sections=$compress_debug_sections)</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AS_CASE(["$target_os"],[mingw*], [</div><div class='add'>+      # On  Windows  platforms,   system  provided  headers  are  VC++</div><div class='add'>+      # optimized.  That  is, C++  habits are often  contaminated into</div><div class='add'>+      # various  headers.  Most frequent  situation is  the use  of //</div><div class='add'>+      # comments.   We  bypass  ANSI   C  mode  for  them.   Otherwise</div><div class='add'>+      # extension libs cannot include those headers.</div><div class='add'>+</div><div class='add'>+      # Since math.h in some mingw64 wrongly delcares frexp and modf</div><div class='add'>+      # to be pure, the variables pointed by the second arguments are</div><div class='add'>+      # considered uninitialized unexpectedly.</div><div class='add'>+      AC_CACHE_CHECK([whether frexp and modf are broken],</div><div class='add'>+	rb_cv_mingw64_broken_frexp_modf,</div><div class='add'>+	[</div><div class='add'>+	  save_CFLAGS="$CFLAGS"</div><div class='add'>+	  AS_IF([test "$particular_werror_flags" = "yes"], [</div><div class='add'>+	    CFLAGS="$CFLAGS -Werror=uninitialized"</div><div class='add'>+	  ], [</div><div class='add'>+	    CFLAGS="$CFLAGS -Werror -Wuninitialized"</div><div class='add'>+	  ])</div><div class='add'>+	  AC_TRY_COMPILE([@%:@include &lt;math.h&gt;</div><div class='add'>+	    int foo(double x)</div><div class='add'>+	    {</div><div class='add'>+	      int exp;</div><div class='add'>+	      frexp(x, &amp;exp);</div><div class='add'>+	      return exp;</div><div class='add'>+	    }], [if (foo(0.0)) return 1;],</div><div class='add'>+	    [rb_cv_mingw64_broken_frexp_modf=no],</div><div class='add'>+	    [rb_cv_mingw64_broken_frexp_modf=yes])</div><div class='add'>+	  CFLAGS="$save_CFLAGS"</div><div class='add'>+	])</div><div class='add'>+      AS_IF([test "$rb_cv_mingw64_broken_frexp_modf" = yes], [</div><div class='add'>+	AC_DEFINE(RUBY_MINGW64_BROKEN_FREXP_MODF)</div><div class='add'>+      ])</div><div class='add'>+    ],</div><div class='add'>+    [cygwin*|darwin*|netbsd*], [</div><div class='add'>+      # need lgamma_r(), finite()</div><div class='add'>+    ],</div><div class='add'>+    [</div><div class='add'>+      # ANSI (no XCFLAGS because this is C only)</div><div class='add'>+	for ansi_options in -std=gnu99; do</div><div class='add'>+	    RUBY_TRY_CFLAGS(${ansi_options}, [</div><div class='add'>+		RUBY_APPEND_OPTIONS(warnflags, ${ansi_options})</div><div class='add'>+		RUBY_APPEND_OPTIONS(strict_warnflags, ${ansi_options})</div><div class='add'>+	    ], [ansi_options=])</div><div class='add'>+	    test "x${ansi_options}" = x || break</div><div class='add'>+	done</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    # suppress annoying -Wstrict-overflow warnings</div><div class='add'>+    RUBY_TRY_CFLAGS(-fno-strict-overflow, [RUBY_APPEND_OPTION(XCFLAGS, -fno-strict-overflow)])</div><div class='add'>+</div><div class='add'>+    test "${debugflags+set}" || {RUBY_TRY_CFLAGS(-ggdb3, [debugflags=-ggdb3])}</div><div class='add'>+    test "${debugflags+set}" || {RUBY_TRY_CFLAGS(-ggdb, [debugflags=-ggdb])}</div><div class='add'>+    test "${debugflags+set}" || {RUBY_TRY_CFLAGS(-g3, [debugflags=-g3])}</div><div class='add'>+])</div><div class='add'>+test $ac_cv_prog_cc_g = yes &amp;&amp; : ${debugflags=-g}</div><div class='add'>+AS_IF([test "x$RUBY_DEVEL" = xyes], [RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_DEVEL=1)])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$GCC" = ""], [</div><div class='add'>+    AS_CASE(["$target_os"],[aix*],[warnflags="$warnflags -qinfo=por" rb_cv_warnflags="$rb_cv_warnflags -qinfo=por"])</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$GCC" = yes], [</div><div class='add'>+    AS_IF([test "$gcc_major" -ge 4], [</div><div class='add'>+	RUBY_TRY_CFLAGS(-fvisibility=hidden, [visibility_option=yes], [visibility_option=no])</div><div class='add'>+    ])</div><div class='add'>+    AC_SUBST(WERRORFLAG, "-Werror")</div><div class='add'>+    AS_IF([test "$visibility_option" = yes], [</div><div class='add'>+	RUBY_APPEND_OPTION(XCFLAGS, -fvisibility=hidden)</div><div class='add'>+	AC_DEFINE(RUBY_SYMBOL_EXPORT_BEGIN, [_Pragma("GCC visibility push(default)")])</div><div class='add'>+	AC_DEFINE(RUBY_SYMBOL_EXPORT_END,   [_Pragma("GCC visibility pop")])</div><div class='add'>+    ], [</div><div class='add'>+	RUBY_TRY_LDFLAGS([-Wl,-unexported_symbol,_Init_*], [visibility_option=ld], [visibility_option=no])</div><div class='add'>+    ])</div><div class='add'>+    test "$visibility_option" = no || OBJCOPY=:</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$GCC" = yes], [</div><div class='add'>+    # optflags</div><div class='add'>+</div><div class='add'>+    AS_CASE(["$target_os"], [mingw*], [</div><div class='add'>+	RUBY_TRY_CFLAGS(-fno-omit-frame-pointer, [optflags="${optflags+$optflags }-fno-omit-frame-pointer"])</div><div class='add'>+	RUBY_TRY_CFLAGS(-static-libgcc, [static_libgcc=yes], [static_libgcc=no])</div><div class='add'>+	AS_IF([test "$static_libgcc" = yes], [</div><div class='add'>+	    RUBY_APPEND_OPTION(EXTLDFLAGS, -static-libgcc)</div><div class='add'>+	])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    # disable fast-math</div><div class='add'>+    for oflag in -fno-fast-math; do</div><div class='add'>+	RUBY_TRY_CFLAGS($oflag, [RUBY_APPEND_OPTION(CFLAGS, $oflag)])</div><div class='add'>+    done</div><div class='add'>+    for oflag in -fexcess-precision=standard -fp-model\ precise; do</div><div class='add'>+	RUBY_TRY_CFLAGS($oflag, [RUBY_APPEND_OPTION(XCFLAGS, $oflag)])</div><div class='add'>+    done</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(opt-dir,</div><div class='add'>+	AS_HELP_STRING([--with-opt-dir=DIR-LIST],</div><div class='add'>+		       [add optional headers and libraries directories separated by $PATH_SEPARATOR]),</div><div class='add'>+	[</div><div class='add'>+		val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -I\1/include|g;s/^ //"`</div><div class='add'>+		CPPFLAGS="$CPPFLAGS $val"</div><div class='add'>+		val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -L\1/lib${rpathflag:+ $rpathflag\\\\1/lib}|g;s/^ //"`</div><div class='add'>+		LDFLAGS="$LDFLAGS $val"</div><div class='add'>+		LDFLAGS_OPTDIR="$val"</div><div class='add'>+		OPT_DIR="$withval"</div><div class='add'>+	], [OPT_DIR=])</div><div class='add'>+</div><div class='add'>+test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" &amp;&amp; eval CFLAGS="\"$cflags $ARCH_FLAG\""</div><div class='add'>+test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" &amp;&amp; eval CXXFLAGS="\"$cxxflags $ARCH_FLAG\""</div><div class='add'>+</div><div class='add'>+}</div><div class='add'>+{ # header and library section</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(winnt-ver,</div><div class='add'>+  AS_HELP_STRING([--with-winnt-ver=0xXXXX], [target Windows NT version (default to 0x0501)]),</div><div class='add'>+  [with_winnt_ver="$withval"], [with_winnt_ver="0x0501"])</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[mingw*], [</div><div class='add'>+  RUBY_APPEND_OPTION(CPPFLAGS, -D_WIN32_WINNT=$with_winnt_ver)</div><div class='add'>+  RUBY_APPEND_OPTION(CPPFLAGS, -D__MINGW_USE_VC2005_COMPAT)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[freebsd*], [</div><div class='add'>+  AC_CACHE_CHECK([whether pthread should be enabled by default],</div><div class='add'>+    rb_cv_enable_pthread_default,</div><div class='add'>+    [AC_TRY_CPP([</div><div class='add'>+#include &lt;osreldate.h&gt;</div><div class='add'>+#if __FreeBSD_version &lt; 502102</div><div class='add'>+#error pthread should be disabled on this platform</div><div class='add'>+#endif</div><div class='add'>+      ],</div><div class='add'>+      rb_cv_enable_pthread_default=yes,</div><div class='add'>+      rb_cv_enable_pthread_default=no)])</div><div class='add'>+  enable_pthread=$rb_cv_enable_pthread_default</div><div class='add'>+  ],</div><div class='add'>+[mingw*], [</div><div class='add'>+  enable_pthread=no</div><div class='add'>+  ],</div><div class='add'>+[</div><div class='add'>+  enable_pthread=yes</div><div class='add'>+  ])</div><div class='add'>+</div><div class='add'>+dnl Checks for libraries.</div><div class='add'>+AS_CASE(["$target_os"],[*bsd*|dragonfly*],[],[ac_cv_func_daemon=no])</div><div class='add'>+</div><div class='add'>+POSTLINK=:</div><div class='add'>+AC_SUBST(POSTLINK)</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[nextstep*], [	],</div><div class='add'>+[openstep*], [	],</div><div class='add'>+[rhapsody*], [	],</div><div class='add'>+[darwin*], [	RUBY_PREPEND_OPTION(LIBS, -lobjc)</div><div class='add'>+		RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT)</div><div class='add'>+		AC_MSG_CHECKING(whether Mac OS X 10.5 or later)</div><div class='add'>+		AC_TRY_CPP([#include &lt;AvailabilityMacros.h&gt;</div><div class='add'>+		    #if MAC_OS_X_VERSION_MAX_ALLOWED &lt;= 1040</div><div class='add'>+		    #error pre OS X 10.4</div><div class='add'>+		    [!&lt;===== pre OS X 10.4 =====&gt;]</div><div class='add'>+		    #endif</div><div class='add'>+		    ],</div><div class='add'>+		    [macosx_10_5=yes], [macosx_10_5=no])</div><div class='add'>+		AC_MSG_RESULT($macosx_10_5)</div><div class='add'>+		AS_IF([test "${target_os@%:@darwin}" -ge 16], [</div><div class='add'>+		    ac_cv_func___syscall=no</div><div class='add'>+		    ac_cv_func_syscall=no</div><div class='add'>+		    ac_cv_header_sys_syscall_h=no</div><div class='add'>+		    ac_cv_header_syscall_h=no</div><div class='add'>+		])</div><div class='add'>+		AS_IF([test $macosx_10_5 = yes], [</div><div class='add'>+		    ac_cv_func_getcontext=no</div><div class='add'>+		    ac_cv_func_setcontext=no</div><div class='add'>+		], [</div><div class='add'>+		    AC_DEFINE(BROKEN_SETREUID, 1)</div><div class='add'>+		    AC_DEFINE(BROKEN_SETREGID, 1)</div><div class='add'>+		])</div><div class='add'>+		incs=`$CC -v -E -xc - &lt; /dev/null 2&gt;&amp;1 | sed ['1,/^@%:@include &lt;/d;s/^ *//;s|[^./][^/]*/\.\./||g;/\/include$/!d;s||/lib|;/\/usr\/lib/d']`</div><div class='add'>+		for d in `$CC -print-search-dirs | sed -e '/^libraries: */!d;s///' | tr : '\012' | fgrep -v /../ | sed -n 's|^\(/.*/lib\)/$|\1|p'`; do</div><div class='add'>+		    incs=`echo "$incs" | fgrep -v "$d"`</div><div class='add'>+		done</div><div class='add'>+		for d in $incs; do</div><div class='add'>+		    test -d "$d" &amp;&amp; RUBY_APPEND_OPTIONS(LDFLAGS, "-L$d")</div><div class='add'>+		done</div><div class='add'>+		ac_cv_type_getgroups=gid_t # getgroups() on Rosetta fills garbage</div><div class='add'>+		ac_cv_lib_crypt_crypt=no</div><div class='add'>+		ac_cv_func_fdatasync=no # Mac OS X wrongly reports it has fdatasync()</div><div class='add'>+		ac_cv_func_vfork=no</div><div class='add'>+		AS_IF([test $gcc_major -lt 4 -o \( $gcc_major -eq 4 -a $gcc_minor -lt 3 \)], [</div><div class='add'>+		    ac_cv_func___builtin_setjmp=no</div><div class='add'>+		])</div><div class='add'>+		AC_CACHE_CHECK(for broken crypt with 8bit chars, rb_cv_broken_crypt,</div><div class='add'>+		    [AC_TRY_RUN([</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+broken_crypt(const char *salt, const char *buf1, const char *buf2)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+    printf("%.2x%.2x: %s -&gt; %s\n", (unsigned char)salt[0], (unsigned char)salt[1],</div><div class='add'>+	   buf1+2, buf2+2);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    char salt[2], buf[256], *s;</div><div class='add'>+    for (i = 0; i &lt; 128*128; i++) {</div><div class='add'>+	salt[0] = 0x80 | (i &amp; 0x7f);</div><div class='add'>+	salt[1] = 0x80 | (i &gt;&gt; 7);</div><div class='add'>+	strcpy(buf, crypt("", salt));</div><div class='add'>+	if (strcmp(buf, s = crypt("", salt))) {</div><div class='add'>+	    broken_crypt(salt, buf, s);</div><div class='add'>+	    return 1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    salt[0] = salt[1] = ' ';</div><div class='add'>+    strcpy(buf, crypt("", salt));</div><div class='add'>+    salt[0] = salt[1] = 0x80 | ' ';</div><div class='add'>+    if (strcmp(buf, s = crypt("", salt))) {</div><div class='add'>+	broken_crypt(salt, buf, s);</div><div class='add'>+	return 1;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+		    rb_cv_broken_crypt=no,</div><div class='add'>+		    rb_cv_broken_crypt=yes,</div><div class='add'>+		    rb_cv_broken_crypt=yes)])</div><div class='add'>+		AS_IF([test "$rb_cv_broken_crypt" = yes], [</div><div class='add'>+		   AC_DEFINE(BROKEN_CRYPT, 1)</div><div class='add'>+		])</div><div class='add'>+		POSTLINK=""</div><div class='add'>+		AC_CHECK_PROGS(codesign, codesign)</div><div class='add'>+		AC_CHECK_PROGS(dsymutil, dsymutil)</div><div class='add'>+		AS_IF([test -n "$codesign"], [</div><div class='add'>+		    POSTLINK="{ test -z '\$(RUBY_CODESIGN)' || $codesign -s '\$(RUBY_CODESIGN)' -f \$@; }${POSTLINK:+; $POSTLINK}"</div><div class='add'>+		])</div><div class='add'>+		AS_IF([test -n "$dsymutil"], [</div><div class='add'>+		    POSTLINK="$dsymutil \$@${POSTLINK:+; $POSTLINK}"</div><div class='add'>+		])</div><div class='add'>+		AS_IF([test -n "${POSTLINK}"], [</div><div class='add'>+		    LINK_SO="$LINK_SO</div><div class='add'>+\$(POSTLINK)"</div><div class='add'>+		])</div><div class='add'>+		AC_CHECK_HEADERS(crt_externs.h, [], [], [</div><div class='add'>+		    #include &lt;crt_externs.h&gt;</div><div class='add'>+		])</div><div class='add'>+		],</div><div class='add'>+[hpux*], [	LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_c_inline=no],</div><div class='add'>+[solaris*], [	LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_func_vfork=no</div><div class='add'>+		AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given)</div><div class='add'>+		AC_TRY_COMPILE([#include &lt;unistd.h&gt;</div><div class='add'>+		    #ifndef _XOPEN_SOURCE</div><div class='add'>+		    #error _XOPEN_SOURCE is not defined</div><div class='add'>+		    #endif</div><div class='add'>+		    ], [],</div><div class='add'>+		    [given_xopen_source=yes], [given_xopen_source=no])</div><div class='add'>+		AC_MSG_RESULT($given_xopen_source)</div><div class='add'>+		AS_IF([test $given_xopen_source = no], [</div><div class='add'>+		  # On Solaris, with gcc, -std=iso9899:1999 in $ansi_options</div><div class='add'>+		  # is often also needed in CPPFLAGS, because some feature</div><div class='add'>+		  # definitions vary depending on such standards options.</div><div class='add'>+		  AS_CASE(["${ansi_options}"],</div><div class='add'>+		  [*-std=iso9899:1999*], [</div><div class='add'>+		    RUBY_APPEND_OPTIONS(CPPFLAGS, ${ansi_options})</div><div class='add'>+		  ])</div><div class='add'>+		  AC_MSG_CHECKING(appropriate _XOPEN_SOURCE value to define)</div><div class='add'>+		  define_xopen_source=""</div><div class='add'>+		  for tmp_xpg in 7 6 5; do</div><div class='add'>+		    AS_IF([test x"$define_xopen_source" != x], [</div><div class='add'>+		        break</div><div class='add'>+		    ])</div><div class='add'>+		    # Both AC_TRY_CPP and AC_TRY_COMPILE should pass</div><div class='add'>+		    # because some options may not be set to CPPFLAGS.</div><div class='add'>+		    AC_TRY_CPP([</div><div class='add'>+			#define _XOPEN_SOURCE ${tmp_xpg}00</div><div class='add'>+			#include &lt;unistd.h&gt;</div><div class='add'>+			#ifndef _XPG${tmp_xpg}</div><div class='add'>+			#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00</div><div class='add'>+			#endif</div><div class='add'>+			], [</div><div class='add'>+			AC_TRY_COMPILE([</div><div class='add'>+			#define _XOPEN_SOURCE ${tmp_xpg}00</div><div class='add'>+			#include &lt;unistd.h&gt;</div><div class='add'>+			#ifndef _XPG${tmp_xpg}</div><div class='add'>+			#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00</div><div class='add'>+			#endif</div><div class='add'>+			], [],</div><div class='add'>+			[define_xopen_source=${tmp_xpg}00], [])</div><div class='add'>+			], [])</div><div class='add'>+		  done</div><div class='add'>+		  AS_IF([test x"$define_xopen_source" = x], [</div><div class='add'>+		    define_xopen_source=no</div><div class='add'>+		  ])</div><div class='add'>+		  AC_MSG_RESULT($define_xopen_source)</div><div class='add'>+		  AS_IF([test x"$define_xopen_source" != xno], [</div><div class='add'>+		    RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source)</div><div class='add'>+		  ])</div><div class='add'>+		])</div><div class='add'>+		],</div><div class='add'>+[haiku*], [</div><div class='add'>+		LIBS="$LIBS" # m lib is include in root</div><div class='add'>+		],</div><div class='add'>+[cygwin*], [	ac_cv_header_langinfo_h=yes</div><div class='add'>+		RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE -D_GNU_SOURCE)</div><div class='add'>+		AC_CHECK_FUNCS(cygwin_conv_path)</div><div class='add'>+		AC_LIBOBJ([langinfo])</div><div class='add'>+		],</div><div class='add'>+[mingw*], [	LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi $LIBS"</div><div class='add'>+		ac_cv_header_a_out_h=no</div><div class='add'>+		ac_cv_header_pwd_h=no</div><div class='add'>+		ac_cv_header_utime_h=no</div><div class='add'>+		ac_cv_header_sys_ioctl_h=no</div><div class='add'>+		ac_cv_header_sys_param_h=no</div><div class='add'>+		ac_cv_header_sys_resource_h=no</div><div class='add'>+		ac_cv_header_sys_select_h=no</div><div class='add'>+		ac_cv_header_sys_time_h=no</div><div class='add'>+		ac_cv_header_sys_times_h=no</div><div class='add'>+		ac_cv_header_sys_socket_h=no</div><div class='add'>+		ac_cv_func_lstat=yes</div><div class='add'>+		ac_cv_func_times=yes</div><div class='add'>+		ac_cv_func_waitpid=yes</div><div class='add'>+		ac_cv_func_fsync=yes</div><div class='add'>+		ac_cv_func_seekdir=yes</div><div class='add'>+		ac_cv_func_telldir=yes</div><div class='add'>+		ac_cv_func_isinf=yes</div><div class='add'>+		ac_cv_func_isnan=yes</div><div class='add'>+		ac_cv_func_finite=yes</div><div class='add'>+		ac_cv_func_lchown=yes</div><div class='add'>+		ac_cv_func_link=yes</div><div class='add'>+		ac_cv_func_readlink=yes</div><div class='add'>+		ac_cv_func_symlink=yes</div><div class='add'>+		ac_cv_lib_crypt_crypt=no</div><div class='add'>+		ac_cv_func_getpgrp_void=no</div><div class='add'>+		ac_cv_func_memcmp_working=yes</div><div class='add'>+		ac_cv_lib_dl_dlopen=no</div><div class='add'>+		rb_cv_binary_elf=no</div><div class='add'>+		rb_cv_negative_time_t=no</div><div class='add'>+		ac_cv_func_fcntl=yes</div><div class='add'>+		ac_cv_func_flock=yes</div><div class='add'>+		ac_cv_func_gmtime_r=yes</div><div class='add'>+		rb_cv_large_fd_select=yes</div><div class='add'>+		ac_cv_type_struct_timeval=yes</div><div class='add'>+                ac_cv_func_clock_gettime=yes</div><div class='add'>+                ac_cv_func_clock_getres=yes</div><div class='add'>+		ac_cv_func_malloc_usable_size=no</div><div class='add'>+		AS_IF([test "$target_cpu" = x64], [</div><div class='add'>+		    ac_cv_func___builtin_setjmp=no</div><div class='add'>+		    ac_cv_func_round=no</div><div class='add'>+		])</div><div class='add'>+		ac_cv_func_tgamma=no</div><div class='add'>+		rb_cv_negative_time_t=yes</div><div class='add'>+		AC_CHECK_TYPE([NET_LUID], [], [],</div><div class='add'>+			      [@%:@include &lt;winsock2.h&gt;</div><div class='add'>+			      @%:@include &lt;iphlpapi.h&gt;])</div><div class='add'>+		AS_IF([test x"$ac_cv_type_NET_LUID" = xyes], [</div><div class='add'>+		    AC_DEFINE(HAVE_TYPE_NET_LUID, 1)</div><div class='add'>+		])</div><div class='add'>+		AC_CHECK_FUNCS(_gmtime64_s)</div><div class='add'>+		AC_CHECK_FUNCS(_wfreopen_s)</div><div class='add'>+		AC_LIBOBJ([langinfo])</div><div class='add'>+		],</div><div class='add'>+[bsdi*], [	LIBS="-lm $LIBS"</div><div class='add'>+		AC_DEFINE(BROKEN_SETREUID, 1)</div><div class='add'>+		AC_DEFINE(BROKEN_SETREGID, 1)</div><div class='add'>+                ac_cv_sizeof_rlim_t=8],</div><div class='add'>+[freebsd*], [	LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_func_getpeername=no</div><div class='add'>+		ac_cv_func_getsockname=no</div><div class='add'>+		ac_cv_func_shutdown=no</div><div class='add'>+		ac_cv_func_close=no</div><div class='add'>+		],</div><div class='add'>+[netbsd*], [	LIBS="-lm $LIBS"</div><div class='add'>+		],</div><div class='add'>+[dragonfly*], [	LIBS="-lm $LIBS"</div><div class='add'>+		# isinf() and isnan() are macros on DragonFly.</div><div class='add'>+		ac_cv_func_isinf=yes</div><div class='add'>+		ac_cv_func_isnan=yes</div><div class='add'>+		],</div><div class='add'>+[aix*],[	LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_func_round=no</div><div class='add'>+		],</div><div class='add'>+[	LIBS="-lm $LIBS"])</div><div class='add'>+</div><div class='add'>+AC_CHECK_LIB(crypt, crypt)      # glibc (GNU/Linux, GNU/Hurd, GNU/kFreeBSD)</div><div class='add'>+AC_CHECK_LIB(dl, dlopen)	# Dynamic linking for SunOS/Solaris and SYSV</div><div class='add'>+AC_CHECK_LIB(dld, shl_load)	# Dynamic linking for HP-UX</div><div class='add'>+AC_CHECK_LIB(socket, shutdown)  # SunOS/Solaris</div><div class='add'>+</div><div class='add'>+dnl Checks for header files.</div><div class='add'>+AC_HEADER_DIRENT</div><div class='add'>+dnl AC_HEADER_STDC has been checked in AC_USE_SYSTEM_EXTENSIONS</div><div class='add'>+AC_HEADER_STDBOOL</div><div class='add'>+AC_HEADER_SYS_WAIT</div><div class='add'>+</div><div class='add'>+AC_CHECK_HEADERS(a.out.h)</div><div class='add'>+AC_CHECK_HEADERS(atomic.h)</div><div class='add'>+AC_CHECK_HEADERS(direct.h)</div><div class='add'>+AC_CHECK_HEADERS(grp.h)</div><div class='add'>+AC_CHECK_HEADERS(fcntl.h)</div><div class='add'>+AC_CHECK_HEADERS(float.h)</div><div class='add'>+AC_CHECK_HEADERS(ieeefp.h)</div><div class='add'>+AC_CHECK_HEADERS(intrinsics.h)</div><div class='add'>+AC_CHECK_HEADERS(langinfo.h)</div><div class='add'>+AC_CHECK_HEADERS(limits.h)</div><div class='add'>+AC_CHECK_HEADERS(locale.h)</div><div class='add'>+AC_CHECK_HEADERS(malloc.h)</div><div class='add'>+AC_CHECK_HEADERS(malloc/malloc.h)</div><div class='add'>+AC_CHECK_HEADERS(malloc_np.h)</div><div class='add'>+AC_CHECK_HEADERS(net/socket.h)</div><div class='add'>+AC_CHECK_HEADERS(process.h)</div><div class='add'>+AC_CHECK_HEADERS(pwd.h)</div><div class='add'>+AC_CHECK_HEADERS(setjmpex.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/attr.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/fcntl.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/file.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/id.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/ioctl.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/mkdev.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/param.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/prctl.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/resource.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/select.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/sendfile.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/socket.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/syscall.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/sysmacros.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/time.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/times.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/uio.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/utime.h)</div><div class='add'>+AC_CHECK_HEADERS(syscall.h)</div><div class='add'>+AC_CHECK_HEADERS(time.h)</div><div class='add'>+AC_CHECK_HEADERS(ucontext.h)</div><div class='add'>+AC_CHECK_HEADERS(utime.h)</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH([gmp],</div><div class='add'>+  [AS_HELP_STRING([--without-gmp],</div><div class='add'>+    [disable GNU GMP to accelerate Bignum operations])],</div><div class='add'>+  [],</div><div class='add'>+  [with_gmp=yes])</div><div class='add'>+AS_IF([test "x$with_gmp" != xno],</div><div class='add'>+  [AC_CHECK_HEADERS(gmp.h)</div><div class='add'>+   AS_IF([test "x$ac_cv_header_gmp_h" != xno],</div><div class='add'>+     AC_SEARCH_LIBS([__gmpz_init], [gmp],</div><div class='add'>+       [AC_DEFINE(HAVE_LIBGMP, 1)]))])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH([jemalloc],</div><div class='add'>+  [AS_HELP_STRING([--with-jemalloc],[use jemalloc allocator])],</div><div class='add'>+  [with_jemalloc=$withval], [with_jemalloc=no])</div><div class='add'>+AS_IF([test "x$with_jemalloc" = xyes],[</div><div class='add'>+  AC_SEARCH_LIBS([malloc_conf], [jemalloc],</div><div class='add'>+    [AC_DEFINE(HAVE_LIBJEMALLOC, 1)], [with_jemalloc=no])</div><div class='add'>+  AC_CHECK_HEADER(jemalloc/jemalloc.h, [</div><div class='add'>+    AC_DEFINE(RUBY_ALTERNATIVE_MALLOC_HEADER, [&lt;jemalloc/jemalloc.h&gt;])</div><div class='add'>+  ],</div><div class='add'>+  [test x$with_jemalloc = xyes &amp;&amp; with_jemalloc=no])</div><div class='add'>+  AS_IF([test "x$with_jemalloc" = xno], [</div><div class='add'>+    AC_CACHE_CHECK([for jemalloc with JEMALLOC_MANGLE], rb_cv_jemalloc_demangle,</div><div class='add'>+      [AC_LINK_IFELSE([AC_LANG_PROGRAM([@%:@define JEMALLOC_MANGLE 1</div><div class='add'>+      @%:@ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+      @%:@include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+      @%:@else</div><div class='add'>+      @%:@include &lt;jemalloc.h&gt;</div><div class='add'>+      @%:@endif], [return !&amp;malloc_conf])],</div><div class='add'>+      [rb_cv_jemalloc_demangle=yes],</div><div class='add'>+      [rb_cv_jemalloc_demangle=no])</div><div class='add'>+    ])</div><div class='add'>+  ])</div><div class='add'>+  AS_IF([test "x$rb_cv_jemalloc_demangle" = xyes], [</div><div class='add'>+    AC_DEFINE(JEMALLOC_MANGLE)</div><div class='add'>+    with_jemalloc=yes</div><div class='add'>+  ])</div><div class='add'>+  AS_IF([test "x$with_jemalloc" = xyes],</div><div class='add'>+    [</div><div class='add'>+      AC_DEFINE(HAVE_MALLOC_CONF)</div><div class='add'>+      ac_cv_func_malloc_usable_size=yes</div><div class='add'>+    ],</div><div class='add'>+    [AC_MSG_ERROR([jemalloc requested but not found])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl check for large file stuff</div><div class='add'>+mv confdefs.h confdefs1.h</div><div class='add'>+: &gt; confdefs.h</div><div class='add'>+AC_SYS_LARGEFILE</div><div class='add'>+# On 32-bit Solaris, it is safe to define _LARGEFILE_SOURCE</div><div class='add'>+# which is not added by AC_SYS_LARGEFILE.</div><div class='add'>+AS_IF([test x"$enable_largefile" != xno], [</div><div class='add'>+  AS_CASE(["$target_os"], [solaris*], [</div><div class='add'>+    AC_MSG_CHECKING([wheather _LARGEFILE_SOURCE should be defined])</div><div class='add'>+    AS_CASE(["${ac_cv_sys_file_offset_bits}:${ac_cv_sys_large_files}"],</div><div class='add'>+      ["64:"|"64:no"|"64:unknown"], [</div><div class='add'>+	# insert _LARGEFILE_SOURCE before _FILE_OFFSET_BITS line</div><div class='add'>+	# that is the same order as "getconf LFS_CFLAGS" output</div><div class='add'>+	mv confdefs.h largefile0.h</div><div class='add'>+	: &gt; confdefs.h</div><div class='add'>+	AC_DEFINE(_LARGEFILE_SOURCE)</div><div class='add'>+	cat largefile0.h &gt;&gt; confdefs.h</div><div class='add'>+	rm largefile0.h</div><div class='add'>+	AC_MSG_RESULT([yes])</div><div class='add'>+      ], [AC_MSG_RESULT([no])])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+mv confdefs.h largefile.h</div><div class='add'>+mv confdefs1.h confdefs.h</div><div class='add'>+cat largefile.h &gt;&gt; confdefs.h</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+    [mingw*], [ac_cv_type_off_t=yes;ac_cv_sizeof_off_t=8],</div><div class='add'>+    [aix*], [</div><div class='add'>+    AS_CASE(["$target_cpu:$ac_cv_sys_large_files"],</div><div class='add'>+	[ppc64:*|powerpc64:*], [],</div><div class='add'>+	[*:no|*:unknown], [],</div><div class='add'>+	[</div><div class='add'>+	    # AIX currently does not support a 32-bit call to posix_fadvise()</div><div class='add'>+	    # if _LARGE_FILES is defined.</div><div class='add'>+	    ac_cv_func_posix_fadvise=no</div><div class='add'>+	])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+AC_C_BIGENDIAN</div><div class='add'>+AC_C_CONST</div><div class='add'>+AC_C_CHAR_UNSIGNED</div><div class='add'>+AC_C_INLINE</div><div class='add'>+AC_C_VOLATILE</div><div class='add'>+AC_C_TYPEOF</div><div class='add'>+</div><div class='add'>+AS_CASE(":$ac_cv_c_const:$ac_cv_c_volatile:",</div><div class='add'>+    [*:no:*], [AC_MSG_ERROR(ANSI C-conforming const and volatile are mandatory)])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([long long, off_t])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK([char bit], [rb_cv_char_bit],</div><div class='add'>+    [test "$universal_binary" = yes &amp;&amp; cross_compiling=yes</div><div class='add'>+    AC_COMPUTE_INT([rb_cv_char_bit], [CHAR_BIT],</div><div class='add'>+	[AC_INCLUDES_DEFAULT([@%:@include &lt;limits.h&gt;])], [rb_cv_char_bit=8])</div><div class='add'>+    test "$universal_binary" = yes &amp;&amp; cross_compiling=$real_cross_compiling])</div><div class='add'>+</div><div class='add'>+dnl RUBY_CHECK_SIZEOF [typename], [maybe same size types], [macros], [include]</div><div class='add'>+AC_DEFUN([RUBY_CHECK_SIZEOF],</div><div class='add'>+[dnl</div><div class='add'>+AS_VAR_PUSHDEF([rbcv_var], [rbcv_sizeof_var])dnl</div><div class='add'>+AS_VAR_PUSHDEF([cond], [rbcv_sizeof_cond])dnl</div><div class='add'>+AS_VAR_PUSHDEF([t], [rbcv_sizeof_type])dnl</div><div class='add'>+AS_VAR_PUSHDEF([s], [rbcv_sizeof_size])dnl</div><div class='add'>+]</div><div class='add'>+[m4_bmatch([$1], [\.], [], [if test "$universal_binary" = yes; then])</div><div class='add'>+AC_CACHE_CHECK([size of $1], [AS_TR_SH([ac_cv_sizeof_$1])], [</div><div class='add'>+    unset AS_TR_SH(ac_cv_sizeof_$1)</div><div class='add'>+    rbcv_var="</div><div class='add'>+typedef m4_bpatsubst([$1], [\..*]) ac__type_sizeof_;</div><div class='add'>+static ac__type_sizeof_ *rbcv_ptr;</div><div class='add'>+@%:@define AS_TR_CPP(SIZEOF_$1) sizeof((*rbcv_ptr)[]m4_bmatch([$1], [\.], .m4_bpatsubst([$1], [^[^.]*\.])))</div><div class='add'>+"</div><div class='add'>+    m4_ifval([$2], [test -z "${AS_TR_SH(ac_cv_sizeof_$1)+set}" &amp;&amp; {</div><div class='add'>+    for t in $2; do</div><div class='add'>+	AC_COMPILE_IFELSE(</div><div class='add'>+	    [AC_LANG_BOOL_COMPILE_TRY(AC_INCLUDES_DEFAULT([$4]</div><div class='add'>+		[$rbcv_var]),</div><div class='add'>+		[AS_TR_CPP(SIZEOF_$1) == sizeof($t)])], [</div><div class='add'>+		AS_TR_SH(ac_cv_sizeof_$1)=AS_TR_CPP([SIZEOF_]$t)</div><div class='add'>+		break])</div><div class='add'>+    done</div><div class='add'>+    }], [</div><div class='add'>+	AC_COMPUTE_INT([AS_TR_SH(ac_cv_sizeof_$1)], [AS_TR_CPP(SIZEOF_$1)],</div><div class='add'>+	    [AC_INCLUDES_DEFAULT([$4])</div><div class='add'>+$rbcv_var],</div><div class='add'>+	    [AS_TR_SH(ac_cv_sizeof_$1)=])</div><div class='add'>+    ])</div><div class='add'>+    unset cond</div><div class='add'>+    m4_ifval([$3], [test -z "${AS_TR_SH(ac_cv_sizeof_$1)+set}" &amp;&amp; {</div><div class='add'>+    for s in 32 64 128; do</div><div class='add'>+	for t in $3; do</div><div class='add'>+	    cond="${cond}</div><div class='add'>+@%:@${cond+el}if defined(__${t}${s}__) || defined(__${t}${s}) || defined(_${t}${s}) || defined(${t}${s})"</div><div class='add'>+	    hdr="AC_INCLUDES_DEFAULT([$4</div><div class='add'>+@%:@if defined(__${t}${s}__) || defined(__${t}${s}) || defined(_${t}${s}) || defined(${t}${s})</div><div class='add'>+@%:@ define AS_TR_CPP(HAVE_$1) 1</div><div class='add'>+@%:@else</div><div class='add'>+@%:@ define AS_TR_CPP(HAVE_$1) 0</div><div class='add'>+@%:@endif])"</div><div class='add'>+	    AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([$hdr], [!AS_TR_CPP(HAVE_$1)])], [continue])</div><div class='add'>+	    AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([$hdr]</div><div class='add'>+				[$rbcv_var],</div><div class='add'>+				[AS_TR_CPP(HAVE_$1) == (AS_TR_CPP(SIZEOF_$1) == ($s / $rb_cv_char_bit))])],</div><div class='add'>+		[AS_TR_SH(ac_cv_sizeof_$1)="${AS_TR_SH(ac_cv_sizeof_$1)+${AS_TR_SH(ac_cv_sizeof_$1)-} }${t}${s}"; continue])</div><div class='add'>+	    AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([$hdr]</div><div class='add'>+[</div><div class='add'>+@%:@if AS_TR_CPP(HAVE_$1)</div><div class='add'>+$rbcv_var</div><div class='add'>+@%:@else</div><div class='add'>+@%:@define AS_TR_CPP(SIZEOF_$1) 0</div><div class='add'>+@%:@endif</div><div class='add'>+],</div><div class='add'>+		    [AS_TR_CPP(HAVE_$1) == (AS_TR_CPP(SIZEOF_$1) == (m4_bmatch([$2], [^[0-9][0-9]*$], [$2], [($s / $rb_cv_char_bit)])))])],</div><div class='add'>+		[AS_TR_SH(ac_cv_sizeof_$1)="${AS_TR_SH(ac_cv_sizeof_$1)+${AS_TR_SH(ac_cv_sizeof_$1)-} }${t}${s}m4_bmatch([$2], [^[0-9][0-9]*$], [:$2])"])</div><div class='add'>+	done</div><div class='add'>+    done</div><div class='add'>+    }])</div><div class='add'>+    test "${AS_TR_SH(ac_cv_sizeof_$1)@%:@@&lt;:@1-9@:&gt;@}" = "${AS_TR_SH(ac_cv_sizeof_$1)}" &amp;&amp;</div><div class='add'>+    m4_ifval([$2][$3],</div><div class='add'>+	[test "${AS_TR_SH(ac_cv_sizeof_$1)@%:@SIZEOF_}" = "${AS_TR_SH(ac_cv_sizeof_$1)}" &amp;&amp; ]){</div><div class='add'>+    test "$universal_binary" = yes &amp;&amp; cross_compiling=yes</div><div class='add'>+    AC_COMPUTE_INT([t], AS_TR_CPP(SIZEOF_$1), [AC_INCLUDES_DEFAULT([$4])]</div><div class='add'>+[${cond+$cond</div><div class='add'>+@%:@else}</div><div class='add'>+$rbcv_var</div><div class='add'>+${cond+@%:@endif}</div><div class='add'>+@%:@ifndef AS_TR_CPP(SIZEOF_$1)</div><div class='add'>+@%:@define AS_TR_CPP(SIZEOF_$1) 0</div><div class='add'>+@%:@endif], [t=0])</div><div class='add'>+    test "$universal_binary" = yes &amp;&amp; cross_compiling=$real_cross_compiling</div><div class='add'>+    AS_IF([test ${t-0} != 0], [</div><div class='add'>+	AS_TR_SH(ac_cv_sizeof_$1)="${AS_TR_SH(ac_cv_sizeof_$1)+${AS_TR_SH(ac_cv_sizeof_$1)-} }${t}"</div><div class='add'>+    ])</div><div class='add'>+    }</div><div class='add'>+    : ${AS_TR_SH(ac_cv_sizeof_$1)=0}</div><div class='add'>+])</div><div class='add'>+{</div><div class='add'>+    unset cond</div><div class='add'>+    for t in ${AS_TR_SH(ac_cv_sizeof_$1)-}; do</div><div class='add'>+	AS_CASE(["$t"],</div><div class='add'>+	[[[0-9]*|SIZEOF_*]], [</div><div class='add'>+	    ${cond+echo "@%:@else"}</div><div class='add'>+	    echo "[@%:@define ]AS_TR_CPP(SIZEOF_$1) $t"</div><div class='add'>+	    break</div><div class='add'>+	    ],</div><div class='add'>+	[</div><div class='add'>+	    s=`expr $t : ['.*[^0-9]\([0-9][0-9]*\)$']`</div><div class='add'>+	    AS_CASE([$t], [*:*], [t="${t%:*}"], [s=`expr $s / $rb_cv_char_bit`])</div><div class='add'>+	    echo "@%:@${cond+el}if defined(__${t}__) || defined(__${t}) || defined(_${t}) || defined($t)"</div><div class='add'>+	    echo "@%:@define AS_TR_CPP(SIZEOF_$1) $s"</div><div class='add'>+	    cond=1</div><div class='add'>+	    ])</div><div class='add'>+    done</div><div class='add'>+    ${cond+echo "@%:@endif"}</div><div class='add'>+} &gt;&gt; confdefs.h</div><div class='add'>+m4_bmatch([$1], [\.], [], [else</div><div class='add'>+AC_CHECK_SIZEOF([$1], 0, [$4])</div><div class='add'>+fi])</div><div class='add'>+AS_VAR_POPDEF([rbcv_var])dnl</div><div class='add'>+AS_VAR_POPDEF([cond])dnl</div><div class='add'>+AS_VAR_POPDEF([t])dnl</div><div class='add'>+AS_VAR_POPDEF([s])dnl</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_CHECK_SIZEOF(int, [], [ILP])</div><div class='add'>+RUBY_CHECK_SIZEOF(short)</div><div class='add'>+RUBY_CHECK_SIZEOF(long, [int], [ILP LP])</div><div class='add'>+RUBY_CHECK_SIZEOF(long long)</div><div class='add'>+RUBY_CHECK_SIZEOF(__int64, [8], [ILP LP])</div><div class='add'>+RUBY_CHECK_SIZEOF(__int128, [16], [ILP LP])</div><div class='add'>+RUBY_CHECK_SIZEOF(off_t)</div><div class='add'>+RUBY_CHECK_SIZEOF(void*, [int long "long long"], [ILP LP LLP])</div><div class='add'>+RUBY_CHECK_SIZEOF(float)</div><div class='add'>+RUBY_CHECK_SIZEOF(double)</div><div class='add'>+RUBY_CHECK_SIZEOF(time_t, [long "long long"], [], [@%:@include &lt;time.h&gt;])</div><div class='add'>+RUBY_CHECK_SIZEOF(clock_t, [], [], [@%:@include &lt;time.h&gt;])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(packed struct attribute, rb_cv_packed_struct,</div><div class='add'>+    [rb_cv_packed_struct=no</div><div class='add'>+    for mac in \</div><div class='add'>+	"__pragma(pack(push, 1)) x __pragma(pack(pop))" \</div><div class='add'>+	"x __attribute__((packed))" \</div><div class='add'>+	; do</div><div class='add'>+	AC_TRY_COMPILE([@%:@define PACKED_STRUCT(x) $mac</div><div class='add'>+			PACKED_STRUCT(struct { int a; });], [],</div><div class='add'>+		[rb_cv_packed_struct=$mac; break])</div><div class='add'>+    done])</div><div class='add'>+AS_IF([test "$rb_cv_packed_struct" != no], [</div><div class='add'>+    AC_DEFINE_UNQUOTED([PACKED_STRUCT(x)], [$rb_cv_packed_struct])</div><div class='add'>+    RUBY_TRY_CFLAGS(-Wno-address-of-packed-member, [AC_DEFINE(USE_UNALIGNED_MEMBER_ACCESS)])</div><div class='add'>+], [</div><div class='add'>+    AC_DEFINE_UNQUOTED([PACKED_STRUCT(x)], x)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_CHECK_PRINTF_PREFIX], [</div><div class='add'>+AC_CACHE_CHECK([for printf prefix for $1], [rb_cv_pri_prefix_]AS_TR_SH($1),[</div><div class='add'>+    [rb_cv_pri_prefix_]AS_TR_SH($1)=[NONE]</div><div class='add'>+    RUBY_WERROR_FLAG(RUBY_APPEND_OPTIONS(CFLAGS, $rb_cv_wsuppress_flags)</div><div class='add'>+    for pri in $2; do</div><div class='add'>+        AC_TRY_COMPILE(</div><div class='add'>+            [@%:@include &lt;stdio.h&gt;</div><div class='add'>+	    @%:@include &lt;stddef.h&gt;</div><div class='add'>+            @%:@ifdef __GNUC__</div><div class='add'>+            @%:@define PRINTF_ARGS(decl, string_index, first_to_check) \</div><div class='add'>+              decl __attribute__((format(printf, string_index, first_to_check)))</div><div class='add'>+            @%:@else</div><div class='add'>+            @%:@define PRINTF_ARGS(decl, string_index, first_to_check) decl</div><div class='add'>+            @%:@endif</div><div class='add'>+	    PRINTF_ARGS(void test_sprintf(const char*, ...), 1, 2);],</div><div class='add'>+            [printf("%]${pri}[d", (]$1[)42);</div><div class='add'>+            test_sprintf("%]${pri}[d", (]$1[)42);],</div><div class='add'>+            [rb_cv_pri_prefix_]AS_TR_SH($1)[=[$pri]; break])</div><div class='add'>+    done)])</div><div class='add'>+AS_IF([test "[$rb_cv_pri_prefix_]AS_TR_SH($1)" != NONE], [</div><div class='add'>+    AC_DEFINE_UNQUOTED([PRI_]m4_ifval($3,$3,AS_TR_CPP(m4_bpatsubst([$1],[_t$])))[_PREFIX],</div><div class='add'>+        "[$rb_cv_pri_prefix_]AS_TR_SH($1)")</div><div class='add'>+])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$ac_cv_type_long_long" = xyes], [</div><div class='add'>+    RUBY_CHECK_PRINTF_PREFIX(long long, ll I64, LL)</div><div class='add'>+], [test "x$ac_cv_type___int64" = xyes], [</div><div class='add'>+    RUBY_CHECK_PRINTF_PREFIX(__int64, ll I64, LL)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl RUBY_CHECK_SIGNEDNESS [typename] [if-signed] [if-unsigned] [included]</div><div class='add'>+AC_DEFUN([RUBY_CHECK_SIGNEDNESS], [dnl</div><div class='add'>+    AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT([$4])], [($1)-1 &gt; 0])],</div><div class='add'>+		      [$3], [$2])])</div><div class='add'>+</div><div class='add'>+dnl RUBY_REPLACE_TYPE [typename] [default type] [macro type] [included]</div><div class='add'>+AC_DEFUN([RUBY_REPLACE_TYPE], [dnl</div><div class='add'>+    AC_CHECK_TYPE([$1],</div><div class='add'>+		  [n="patsubst([$1],["],[\\"])"],</div><div class='add'>+		  [n="patsubst([$2],["],[\\"])"],</div><div class='add'>+		  [$4])</div><div class='add'>+    AC_CACHE_CHECK([for convertible type of [$1]], rb_cv_[$1]_convertible, [</div><div class='add'>+	u= t=</div><div class='add'>+	AS_CASE(["$n "],</div><div class='add'>+	  [*" signed "*], [ ],</div><div class='add'>+	  [*" unsigned "*], [</div><div class='add'>+	    u=U],</div><div class='add'>+	  [RUBY_CHECK_SIGNEDNESS($n, [], [u=U], [$4])])</div><div class='add'>+	AS_IF([test x"$t" = x], [</div><div class='add'>+	    for t in "long long" long int short; do</div><div class='add'>+		test -n "$u" &amp;&amp; t="unsigned $t"</div><div class='add'>+		AC_COMPILE_IFELSE(</div><div class='add'>+		    [AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT([$4])]</div><div class='add'>+			[typedef $n rbcv_conftest_target_type;</div><div class='add'>+			typedef $t rbcv_conftest_replace_type;</div><div class='add'>+			extern rbcv_conftest_target_type rbcv_conftest_var;</div><div class='add'>+			extern rbcv_conftest_replace_type rbcv_conftest_var;</div><div class='add'>+			extern rbcv_conftest_target_type rbcv_conftest_func(void);</div><div class='add'>+			extern rbcv_conftest_replace_type rbcv_conftest_func(void);</div><div class='add'>+			], [sizeof(rbcv_conftest_target_type) == sizeof(rbcv_conftest_replace_type)])],</div><div class='add'>+		    [n="$t"; break])</div><div class='add'>+	    done</div><div class='add'>+	])</div><div class='add'>+	AS_CASE([" $n "],</div><div class='add'>+	  [*" long long "*], [</div><div class='add'>+	    t=LL],</div><div class='add'>+	  [*" long "*], [</div><div class='add'>+	    t=LONG],</div><div class='add'>+	  [</div><div class='add'>+	    t=INT])</div><div class='add'>+	rb_cv_[$1]_convertible=${u}${t}])</div><div class='add'>+    AS_IF([test "${AS_TR_SH(ac_cv_type_[$1])}" = "yes"], [</div><div class='add'>+	n="$1"</div><div class='add'>+    ], [</div><div class='add'>+	AS_CASE(["${rb_cv_[$1]_convertible}"],</div><div class='add'>+		[*LL], [n="long long"],</div><div class='add'>+		[*LONG], [n="long"],</div><div class='add'>+		[n="int"])</div><div class='add'>+	AS_CASE(["${rb_cv_[$1]_convertible}"],</div><div class='add'>+		[U*], [n="unsigned $n"])</div><div class='add'>+    ])</div><div class='add'>+    AS_CASE("${rb_cv_[$1]_convertible}", [U*], [u=+1], [u=-1])</div><div class='add'>+    AC_DEFINE_UNQUOTED(rb_[$1], $n)</div><div class='add'>+    AC_DEFINE_UNQUOTED([SIGNEDNESS_OF_]AS_TR_CPP($1), $u)</div><div class='add'>+    AC_DEFINE_UNQUOTED([$3]2NUM[(v)], [${rb_cv_[$1]_convertible}2NUM(v)])</div><div class='add'>+    AC_DEFINE_UNQUOTED(NUM2[$3][(v)], [NUM2${rb_cv_[$1]_convertible}(v)])</div><div class='add'>+    AC_DEFINE_UNQUOTED(PRI_[$3]_PREFIX,</div><div class='add'>+	[PRI_`echo ${rb_cv_[$1]_convertible} | sed ['s/^U//']`_PREFIX])</div><div class='add'>+])</div><div class='add'>+RUBY_REPLACE_TYPE(pid_t, int, PIDT)</div><div class='add'>+RUBY_REPLACE_TYPE(uid_t, int, UIDT)</div><div class='add'>+RUBY_REPLACE_TYPE(gid_t, int, GIDT)</div><div class='add'>+RUBY_REPLACE_TYPE(time_t, [], TIMET, [@%:@include &lt;time.h&gt;])</div><div class='add'>+RUBY_REPLACE_TYPE(dev_t, [int long "long long"], DEVT)</div><div class='add'>+RUBY_REPLACE_TYPE(mode_t, ["unsigned int" long], MODET, [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+RUBY_REPLACE_TYPE(rlim_t, [int long "long long"], RLIM, [</div><div class='add'>+@%:@ifdef HAVE_SYS_TYPES_H</div><div class='add'>+@%:@include &lt;sys/types.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TYPES_H</div><div class='add'>+@%:@include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@include &lt;sys/resource.h&gt;</div><div class='add'>+])</div><div class='add'>+RUBY_REPLACE_TYPE(off_t, [], OFFT)</div><div class='add'>+RUBY_REPLACE_TYPE(clockid_t, [], CLOCKID)</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,</div><div class='add'>+  [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],</div><div class='add'>+	rb_cv_have_prototypes=yes,</div><div class='add'>+	rb_cv_have_prototypes=no)])</div><div class='add'>+AS_IF([test "$rb_cv_have_prototypes" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_PROTOTYPES)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste,</div><div class='add'>+  [AC_TRY_COMPILE([@%:@define paste(a,b) a@%:@@%:@b],</div><div class='add'>+		  [int xy = 1; return paste(x,y);],</div><div class='add'>+		  rb_cv_tokenpaste=ansi,</div><div class='add'>+		  rb_cv_tokenpaste=knr)])</div><div class='add'>+AS_IF([test "$rb_cv_tokenpaste" = ansi], [</div><div class='add'>+  AC_DEFINE(TOKEN_PASTE(x,y),[x@%:@@%:@y])</div><div class='add'>+], [</div><div class='add'>+  AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(stringization, rb_cv_stringization, [</div><div class='add'>+  rb_cv_stringization=no</div><div class='add'>+  for string in "#expr" '"expr"'; do</div><div class='add'>+    AC_COMPILE_IFELSE([</div><div class='add'>+      AC_LANG_BOOL_COMPILE_TRY([</div><div class='add'>+#define STRINGIZE0(expr) $string</div><div class='add'>+#define STRINGIZE(expr) STRINGIZE0(expr)</div><div class='add'>+#undef real_test_for_stringization</div><div class='add'>+#define test_for_stringization -.real_test_for_stringization.-</div><div class='add'>+const char stringized[[]] = STRINGIZE(test_for_stringization);</div><div class='add'>+], [sizeof(stringized) == 32])],</div><div class='add'>+      [rb_cv_stringization="$string"; break],</div><div class='add'>+      [rb_cv_stringization=no])</div><div class='add'>+  done]</div><div class='add'>+)</div><div class='add'>+AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))</div><div class='add'>+AS_IF([test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"], [</div><div class='add'>+  AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)</div><div class='add'>+  AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK([string literal concatenation],</div><div class='add'>+  rb_cv_string_literal_concatenation, [</div><div class='add'>+  AC_COMPILE_IFELSE([</div><div class='add'>+    AC_LANG_BOOL_COMPILE_TRY([</div><div class='add'>+const char concatenated_literal[[]] = "literals" "to"</div><div class='add'>+  "be" "concatenated.";</div><div class='add'>+], [sizeof(concatenated_literal) == 26])],</div><div class='add'>+    [rb_cv_string_literal_concatenation=yes],</div><div class='add'>+    [rb_cv_string_literal_concatenation=no])]</div><div class='add'>+)</div><div class='add'>+AS_IF([test "$rb_cv_string_literal_concatenation" = no], [</div><div class='add'>+  AC_DEFINE(NO_STRING_LITERAL_CONCATENATION,1)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,</div><div class='add'>+  [AC_TRY_COMPILE([</div><div class='add'>+#include &lt;stdarg.h&gt;</div><div class='add'>+int foo(int x, ...) {</div><div class='add'>+	va_list va;</div><div class='add'>+	va_start(va, x);</div><div class='add'>+	va_arg(va, int);</div><div class='add'>+	va_arg(va, char *);</div><div class='add'>+	va_arg(va, double);</div><div class='add'>+	return 0;</div><div class='add'>+}</div><div class='add'>+], [return foo(10, "", 3.14);],</div><div class='add'>+	rb_cv_stdarg=yes,</div><div class='add'>+	rb_cv_stdarg=no)])</div><div class='add'>+AS_IF([test "$rb_cv_stdarg" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_STDARG_PROTOTYPES)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for variable length macro, rb_cv_va_args_macro,</div><div class='add'>+  [AC_TRY_COMPILE([</div><div class='add'>+int foo(int x, ...);</div><div class='add'>+@%:@define FOO(a, ...) foo(a, @%:@@%:@__VA_ARGS__)</div><div class='add'>+], [FOO(1);FOO(1,2);FOO(1,2,3);],</div><div class='add'>+  rb_cv_va_args_macro=yes,</div><div class='add'>+  rb_cv_va_args_macro=no)])</div><div class='add'>+AS_IF([test "$rb_cv_va_args_macro" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_VA_ARGS_MACRO)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_DEFINE_IF], [dnl</div><div class='add'>+    m4_ifval([$1], [AS_LITERAL_IF([$1], [], [test "X$1" = X || ])cat &lt;&lt;EOH &gt;&gt; confdefs.h</div><div class='add'>+@%:@if $1</div><div class='add'>+EOH</div><div class='add'>+])dnl</div><div class='add'>+AC_DEFINE_UNQUOTED($2, $3)dnl</div><div class='add'>+    m4_ifval([$1], [AS_LITERAL_IF([$1], [], [test "X$1" = X || ])cat &lt;&lt;EOH &gt;&gt; confdefs.h</div><div class='add'>+@%:@endif /* $1 */</div><div class='add'>+EOH</div><div class='add'>+])dnl</div><div class='add'>+])dnl</div><div class='add'>+</div><div class='add'>+dnl RUBY_DECL_ATTRIBUTE(attrib, macroname, cachevar, condition, type, code)</div><div class='add'>+AC_DEFUN([RUBY_DECL_ATTRIBUTE], [dnl</div><div class='add'>+m4_ifval([$2], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([attrib], m4_bpatsubst([$2], [(.*)], []))], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([attrib], m4_toupper(m4_format(%.4s, [$5]))[_]AS_TR_CPP($1))] dnl</div><div class='add'>+)dnl</div><div class='add'>+m4_ifval([$3], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([rbcv],[$3])], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([rbcv],[rb_cv_]m4_format(%.4s, [$5])[_][$1])]dnl</div><div class='add'>+)dnl</div><div class='add'>+m4_pushdef([attrib_code],[m4_bpatsubst([$1],["],[\\"])])dnl</div><div class='add'>+m4_pushdef([attrib_params],[m4_bpatsubst([$2(x)],[^[^()]*(\([^()]*\)).*],[\1])])dnl</div><div class='add'>+m4_ifval([$4], [rbcv_cond=["$4"]; test "$rbcv_cond" || unset rbcv_cond])</div><div class='add'>+AC_CACHE_CHECK(for m4_ifval([$2],[m4_bpatsubst([$2], [(.*)], [])],[$1]) [$5] attribute, rbcv, dnl</div><div class='add'>+[rbcv=x</div><div class='add'>+RUBY_WERROR_FLAG([</div><div class='add'>+for mac in \</div><div class='add'>+    "__attribute__ ((attrib_code)) x" \</div><div class='add'>+    "x __attribute__ ((attrib_code))" \</div><div class='add'>+    "__declspec(attrib_code) x" \</div><div class='add'>+    x; do</div><div class='add'>+  m4_ifval([$4],mac="$mac"${rbcv_cond+" /* only if $rbcv_cond */"})</div><div class='add'>+  AC_TRY_COMPILE(</div><div class='add'>+    m4_ifval([$4],${rbcv_cond+[@%:@if ]$rbcv_cond})</div><div class='add'>+[@%:@define ]attrib[](attrib_params)[ $mac]</div><div class='add'>+m4_ifval([$4],${rbcv_cond+[@%:@else]}</div><div class='add'>+${rbcv_cond+[@%:@define ]attrib[](attrib_params)[ x]}</div><div class='add'>+${rbcv_cond+[@%:@endif]})</div><div class='add'>+$6</div><div class='add'>+@%:@define mesg ("")</div><div class='add'>+    attrib[](attrib_params)[;], [],</div><div class='add'>+    [rbcv="$mac"; break])</div><div class='add'>+done</div><div class='add'>+])])</div><div class='add'>+AS_IF([test "$rbcv" != x], [</div><div class='add'>+    RUBY_DEFINE_IF(m4_ifval([$4],[${rbcv_cond}]), attrib[](attrib_params)[], $rbcv)</div><div class='add'>+])</div><div class='add'>+m4_ifval([$4], [unset rbcv_cond]) dnl</div><div class='add'>+m4_popdef([attrib_params])dnl</div><div class='add'>+m4_popdef([attrib_code])dnl</div><div class='add'>+AS_VAR_POPDEF([attrib])dnl</div><div class='add'>+AS_VAR_POPDEF([rbcv])dnl</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl RUBY_FUNC_ATTRIBUTE(attrib, macroname, cachevar, condition)</div><div class='add'>+AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl</div><div class='add'>+    RUBY_DECL_ATTRIBUTE([$1], [$2], [$3], [$4],</div><div class='add'>+	[function], [@%:@define x int conftest_attribute_check(void)]</div><div class='add'>+    )</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl RUBY_TYPE_ATTRIBUTE(attrib, macroname, cachevar, condition)</div><div class='add'>+AC_DEFUN([RUBY_TYPE_ATTRIBUTE], [dnl</div><div class='add'>+    RUBY_DECL_ATTRIBUTE([$1], [$2], [$3], [$4],</div><div class='add'>+	[type], [</div><div class='add'>+@%:@define x struct conftest_attribute_check {int i;}</div><div class='add'>+])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__const__, CONSTFUNC)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__pure__, PUREFUNC)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__noreturn__, NORETURN)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__deprecated__, DEPRECATED)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__deprecated__("by "@%:@n), DEPRECATED_BY(n,x), rb_cv_func_deprecated_by)</div><div class='add'>+RUBY_TYPE_ATTRIBUTE(__deprecated__ mesg, DEPRECATED_TYPE(mesg,x), rb_cv_type_deprecated)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__noinline__, NOINLINE)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__always_inline__, ALWAYS_INLINE)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__warn_unused_result__, WARN_UNUSED_RESULT)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__unused__, MAYBE_UNUSED)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__error__ mesg, ERRORFUNC(mesg,x), rb_cv_func___error__)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__warning__ mesg, WARNINGFUNC(mesg,x), rb_cv_func___warning__)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__weak__, WEAK, rb_cv_func_weak)</div><div class='add'>+AS_IF([test "$rb_cv_func_weak" != x], [</div><div class='add'>+   AC_DEFINE(HAVE_FUNC_WEAK)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+if_i386=${universal_binary+[defined __i386__]}</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__stdcall__,  FUNC_STDCALL,  rb_cv_func_stdcall,  ${if_i386})</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__cdecl__,    FUNC_CDECL,    rb_cv_func_cdecl,    ${if_i386})</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__fastcall__, FUNC_FASTCALL, rb_cv_func_fastcall, ${if_i386})</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__optimize__("O0"), FUNC_UNOPTIMIZED, rb_cv_func_unoptimized)</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(__optimize__("-Os","-fomit-frame-pointer"), FUNC_MINIMIZED, rb_cv_func_minimized)</div><div class='add'>+</div><div class='add'>+AS_IF([test "$GCC" = yes], [</div><div class='add'>+    AC_CACHE_CHECK([for function alias], [rb_cv_gcc_function_alias],</div><div class='add'>+	[rb_cv_gcc_function_alias=no</div><div class='add'>+	for a in alias weak,alias; do</div><div class='add'>+	    AC_TRY_LINK([void foo(void) {}</div><div class='add'>+		void bar(void) __attribute__(($a("foo")));], [bar()],</div><div class='add'>+		[rb_cv_gcc_function_alias=$a; break])</div><div class='add'>+	done])</div><div class='add'>+    AS_IF([test "$rb_cv_gcc_function_alias" != no], [</div><div class='add'>+	AC_DEFINE(HAVE_ATTRIBUTE_FUNCTION_ALIAS)</div><div class='add'>+	AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args)],</div><div class='add'>+			   [type prot __attribute__(($rb_cv_gcc_function_alias(@%:@name)));])</div><div class='add'>+	AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION_VOID(prot, name, args)],</div><div class='add'>+			   [RUBY_ALIAS_FUNCTION_TYPE(void, prot, name, args)])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AC_CACHE_CHECK([for __atomic builtins], [rb_cv_gcc_atomic_builtins], [</div><div class='add'>+	AC_TRY_LINK([unsigned char atomic_var;],</div><div class='add'>+		    [</div><div class='add'>+			__atomic_exchange_n(&amp;atomic_var, 0, __ATOMIC_SEQ_CST);</div><div class='add'>+			__atomic_exchange_n(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='add'>+			__atomic_fetch_add(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='add'>+			__atomic_fetch_sub(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='add'>+			__atomic_or_fetch(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='add'>+		    ],</div><div class='add'>+		    [rb_cv_gcc_atomic_builtins=yes],</div><div class='add'>+		    [rb_cv_gcc_atomic_builtins=no])])</div><div class='add'>+    AS_IF([test "$rb_cv_gcc_atomic_builtins" = yes], [</div><div class='add'>+	AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AC_CACHE_CHECK([for __sync builtins], [rb_cv_gcc_sync_builtins], [</div><div class='add'>+	AC_TRY_LINK([unsigned char atomic_var;],</div><div class='add'>+		    [</div><div class='add'>+			__sync_lock_test_and_set(&amp;atomic_var, 0);</div><div class='add'>+			__sync_lock_test_and_set(&amp;atomic_var, 1);</div><div class='add'>+			__sync_fetch_and_add(&amp;atomic_var, 1);</div><div class='add'>+			__sync_fetch_and_sub(&amp;atomic_var, 1);</div><div class='add'>+			__sync_or_and_fetch(&amp;atomic_var, 1);</div><div class='add'>+			__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);</div><div class='add'>+		    ],</div><div class='add'>+		    [rb_cv_gcc_sync_builtins=yes],</div><div class='add'>+		    [rb_cv_gcc_sync_builtins=no])])</div><div class='add'>+    AS_IF([test "$rb_cv_gcc_sync_builtins" = yes], [</div><div class='add'>+	AC_DEFINE(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AC_CACHE_CHECK(for __builtin_unreachable, rb_cv_func___builtin_unreachable,</div><div class='add'>+    [RUBY_WERROR_FLAG(</div><div class='add'>+    [AC_TRY_LINK([volatile int zero;],</div><div class='add'>+	[if (zero) __builtin_unreachable();],</div><div class='add'>+	[rb_cv_func___builtin_unreachable=yes],</div><div class='add'>+	[rb_cv_func___builtin_unreachable=no])</div><div class='add'>+    ])</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "$rb_cv_func___builtin_unreachable" = yes], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(UNREACHABLE, [__builtin_unreachable()])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for exported function attribute, rb_cv_func_exported, [</div><div class='add'>+rb_cv_func_exported=no</div><div class='add'>+RUBY_WERROR_FLAG([</div><div class='add'>+for mac in '__attribute__ ((__visibility__("default")))' '__declspec(dllexport)'; do</div><div class='add'>+  AC_TRY_COMPILE([@%:@define RUBY_FUNC_EXPORTED $mac extern</div><div class='add'>+    RUBY_FUNC_EXPORTED void conftest_attribute_check(void);], [],</div><div class='add'>+    [rb_cv_func_exported="$mac"; break])</div><div class='add'>+done</div><div class='add'>+])])</div><div class='add'>+AS_IF([test "$rb_cv_func_exported" != no], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_FUNC_EXPORTED, [$rb_cv_func_exported extern])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_EXPORT)</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for function name string predefined identifier,</div><div class='add'>+    rb_cv_function_name_string,</div><div class='add'>+    [rb_cv_function_name_string=no</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+	for func in __func__ __FUNCTION__; do</div><div class='add'>+	    AC_TRY_LINK([@%:@include &lt;stdio.h&gt;],</div><div class='add'>+			[puts($func);],</div><div class='add'>+			[rb_cv_function_name_string=$func</div><div class='add'>+			break])</div><div class='add'>+	done</div><div class='add'>+    ])]</div><div class='add'>+)</div><div class='add'>+AS_IF([test "$rb_cv_function_name_string" != no], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_FUNCTION_NAME_STRING, [$rb_cv_function_name_string])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(if enum over int is allowed, rb_cv_enum_over_int, [</div><div class='add'>+    rb_cv_enum_over_int=no</div><div class='add'>+    AS_IF([test "x$ac_cv_type_long_long" = xyes], [</div><div class='add'>+	type="unsigned long long" max="ULLONG_MAX"</div><div class='add'>+    ], [</div><div class='add'>+	type="unsigned long" max="ULONG_MAX"</div><div class='add'>+    ])</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+        AC_COMPILE_IFELSE([</div><div class='add'>+            AC_LANG_BOOL_COMPILE_TRY([</div><div class='add'>+                    @%:@include &lt;limits.h&gt;</div><div class='add'>+                    enum {conftest_max = $max};</div><div class='add'>+                ], [</div><div class='add'>+                    (conftest_max == $max) &amp;&amp;</div><div class='add'>+                    (sizeof(conftest_max) == sizeof($type))</div><div class='add'>+                ]</div><div class='add'>+	    )],</div><div class='add'>+	    [rb_cv_enum_over_int=yes],</div><div class='add'>+	    [rb_cv_enum_over_int=no]</div><div class='add'>+	)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test $rb_cv_enum_over_int = yes], [</div><div class='add'>+    AC_DEFINE(ENUM_OVER_INT, 1)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl Check whether we need to define sys_nerr locally</div><div class='add'>+AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default</div><div class='add'>+@%:@include &lt;errno.h&gt;])</div><div class='add'>+</div><div class='add'>+AC_CHECK_DECLS([getenv])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_cpu"],</div><div class='add'>+[alpha*|sh4|sh4el|sh4eb], [AS_CASE(["$target_os"::"$GCC"],</div><div class='add'>+		[*::yes],  # gcc</div><div class='add'>+			[CFLAGS="-mieee $CFLAGS"],</div><div class='add'>+		[osf*],    # ccc</div><div class='add'>+			[CFLAGS="-ieee $CFLAGS"],</div><div class='add'>+		)],</div><div class='add'>+[sparc*], [AC_LIBOBJ([sparc])])</div><div class='add'>+</div><div class='add'>+ac_cv_header_net_socket_h=${ac_cv_header_net_socket_h=no}</div><div class='add'>+AS_IF([test "$ac_cv_header_net_socket_h" = yes], [</div><div class='add'>+    ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=no}</div><div class='add'>+], [</div><div class='add'>+    ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=yes}</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+AC_TYPE_SIZE_T</div><div class='add'>+RUBY_CHECK_SIGNEDNESS(size_t, [AC_MSG_ERROR(size_t is signed)], [],</div><div class='add'>+		      [@%:@include &lt;sys/types.h&gt;])</div><div class='add'>+RUBY_CHECK_SIZEOF(size_t, [int long void*], [], [@%:@include &lt;sys/types.h&gt;])</div><div class='add'>+RUBY_CHECK_SIZEOF(ptrdiff_t, size_t, [], [@%:@include &lt;stddef.h&gt;])</div><div class='add'>+RUBY_CHECK_PRINTF_PREFIX(size_t, z)</div><div class='add'>+RUBY_CHECK_PRINTF_PREFIX(ptrdiff_t, t)</div><div class='add'>+AC_STRUCT_ST_BLKSIZE</div><div class='add'>+AC_STRUCT_ST_BLOCKS</div><div class='add'>+AC_STRUCT_ST_RDEV</div><div class='add'>+RUBY_CHECK_SIZEOF([struct stat.st_size], [off_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+AS_IF([test "$ac_cv_member_struct_stat_st_blocks" = yes], [</div><div class='add'>+    RUBY_CHECK_SIZEOF([struct stat.st_blocks], [off_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+])</div><div class='add'>+RUBY_CHECK_SIZEOF([struct stat.st_ino], [long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_atim])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_atimespec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_atimensec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_mtim])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_mtimespec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_mtimensec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_ctim])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_ctimespec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_ctimensec])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_birthtimespec])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([struct timeval], [], [], [@%:@ifdef HAVE_TIME_H</div><div class='add'>+@%:@include &lt;time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TIME_H</div><div class='add'>+@%:@include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif])</div><div class='add'>+</div><div class='add'>+AS_IF([test "${ac_cv_type_struct_timeval}" = yes], [</div><div class='add'>+    RUBY_CHECK_SIZEOF([struct timeval.tv_sec], [time_t long "long long"], [],</div><div class='add'>+		      [@%:@ifdef HAVE_TIME_H</div><div class='add'>+@%:@include &lt;time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TIME_H</div><div class='add'>+@%:@include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif])</div><div class='add'>+    AS_CASE(${ac_cv_sizeof_struct_timeval_tv_sec},</div><div class='add'>+	    [SIZEOF_INT], [t=int],</div><div class='add'>+	    [SIZEOF_LONG], [t=long],</div><div class='add'>+	    [SIZEOF_LONG_LONG], [t=LONG_LONG],</div><div class='add'>+	    [t=])</div><div class='add'>+    AS_IF([test "${t}" != ""], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(TYPEOF_TIMEVAL_TV_SEC, [$t])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([struct timespec], [], [], [@%:@ifdef HAVE_TIME_H</div><div class='add'>+@%:@include &lt;time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TIME_H</div><div class='add'>+@%:@include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([struct timezone], [], [], [@%:@ifdef HAVE_TIME_H</div><div class='add'>+@%:@ include &lt;time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TIME_H</div><div class='add'>+@%:@ include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([clockid_t], [], [], [@%:@ifdef HAVE_TIME_H</div><div class='add'>+@%:@ include &lt;time.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifdef HAVE_SYS_TIME_H</div><div class='add'>+@%:@ include &lt;sys/time.h&gt;</div><div class='add'>+@%:@endif])</div><div class='add'>+</div><div class='add'>+AC_CACHE_VAL([rb_cv_large_fd_select],</div><div class='add'>+    [AC_CHECK_TYPE(fd_mask, [rb_cv_large_fd_select=yes], [rb_cv_large_fd_select=no], [AC_INCLUDES_DEFAULT([])</div><div class='add'>+@%:@ifdef HAVE_SYS_SELECT_H</div><div class='add'>+@%:@ include &lt;sys/select.h&gt;</div><div class='add'>+@%:@endif])])</div><div class='add'>+AS_IF([test "$rb_cv_large_fd_select" = yes], [</div><div class='add'>+    AC_DEFINE(HAVE_RB_FD_INIT, 1)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl RUBY_DEFINT TYPENAME, SIZE, [UNSIGNED], [INCLUDES = DEFAULT-INCLUDES]</div><div class='add'>+AC_DEFUN([RUBY_DEFINT], [dnl</div><div class='add'>+AS_VAR_PUSHDEF([cond], [rb_defint_cond])dnl</div><div class='add'>+AS_VAR_PUSHDEF([type], [rb_defint_type])dnl</div><div class='add'>+AC_CACHE_CHECK([for $1], [rb_cv_type_$1],</div><div class='add'>+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])</div><div class='add'>+typedef $1 t; int s = sizeof(t) == 42;])],</div><div class='add'>+   [rb_cv_type_$1=yes],</div><div class='add'>+   [AS_CASE([m4_bmatch([$2], [^[1-9][0-9]*$], $2, [$ac_cv_sizeof_]AS_TR_SH($2))],</div><div class='add'>+    ["1"], [ rb_cv_type_$1="m4_if([$3], [], [signed ], [$3 ])char"],</div><div class='add'>+    ["$ac_cv_sizeof_short"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])short"],</div><div class='add'>+    ["$ac_cv_sizeof_int"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])int"],</div><div class='add'>+    ["$ac_cv_sizeof_long"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long"],</div><div class='add'>+    ["$ac_cv_sizeof_long_long"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long long"],</div><div class='add'>+    ["${ac_cv_sizeof___int64@%:@*:}"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int64"],</div><div class='add'>+    ["${ac_cv_sizeof___int128@%:@*:}"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int128"],</div><div class='add'>+    [ rb_cv_type_$1=no])])])</div><div class='add'>+AS_IF([test "${rb_cv_type_$1}" != no], [</div><div class='add'>+    type="${rb_cv_type_$1@%:@@%:@unsigned }"</div><div class='add'>+    AS_IF([test "$type" != yes &amp;&amp; eval 'test -n "${ac_cv_sizeof_'$type'+set}"'], [</div><div class='add'>+	eval cond='"${ac_cv_sizeof_'$type'}"'</div><div class='add'>+	AS_CASE([$cond], [*:*], [</div><div class='add'>+	    cond=AS_TR_CPP($type)</div><div class='add'>+	    echo "@%:@if defined SIZEOF_"$cond" &amp;&amp; SIZEOF_"$cond" &gt; 0" &gt;&gt; confdefs.h</div><div class='add'>+	], [cond=])</div><div class='add'>+    ], [cond=])</div><div class='add'>+    AC_DEFINE([HAVE_]AS_TR_CPP($1), 1)</div><div class='add'>+    AS_IF([test "${rb_cv_type_$1}" = yes], [</div><div class='add'>+	m4_bmatch([$2], [^[1-9][0-9]*$], [AC_CHECK_SIZEOF([$1], 0, [AC_INCLUDES_DEFAULT([$4])])],</div><div class='add'>+			[RUBY_CHECK_SIZEOF([$1], [$2], [], [AC_INCLUDES_DEFAULT([$4])])])</div><div class='add'>+    ], [</div><div class='add'>+	AC_DEFINE_UNQUOTED($1, [$rb_cv_type_$1])</div><div class='add'>+	AC_DEFINE_UNQUOTED([SIZEOF_]AS_TR_CPP($1), [SIZEOF_]AS_TR_CPP([$type]))</div><div class='add'>+    ])</div><div class='add'>+    test -n "$cond" &amp;&amp; echo "@%:@endif /* $cond */" &gt;&gt; confdefs.h</div><div class='add'>+])</div><div class='add'>+AS_VAR_POPDEF([cond])dnl</div><div class='add'>+AS_VAR_POPDEF([type])dnl</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_DEFINT(int8_t, 1)</div><div class='add'>+RUBY_DEFINT(uint8_t, 1, unsigned)</div><div class='add'>+RUBY_DEFINT(int16_t, 2)</div><div class='add'>+RUBY_DEFINT(uint16_t, 2, unsigned)</div><div class='add'>+RUBY_DEFINT(int32_t, 4)</div><div class='add'>+RUBY_DEFINT(uint32_t, 4, unsigned)</div><div class='add'>+RUBY_DEFINT(int64_t, 8)</div><div class='add'>+RUBY_DEFINT(uint64_t, 8, unsigned)</div><div class='add'>+RUBY_DEFINT(int128_t, 16)</div><div class='add'>+RUBY_DEFINT(uint128_t, 16, unsigned)</div><div class='add'>+RUBY_DEFINT(intptr_t, void*)</div><div class='add'>+RUBY_DEFINT(uintptr_t, void*, unsigned)</div><div class='add'>+RUBY_DEFINT(ssize_t, size_t, [], [@%:@include &lt;sys/types.h&gt;])	dnl may differ from int, so not use AC_TYPE_SSIZE_T.</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,</div><div class='add'>+[rb_cv_stack_end_address=no</div><div class='add'>+  AC_TRY_LINK(</div><div class='add'>+    [extern void *__libc_stack_end;],</div><div class='add'>+    [if (!__libc_stack_end) return 1;],</div><div class='add'>+    [rb_cv_stack_end_address="__libc_stack_end"])</div><div class='add'>+])</div><div class='add'>+AS_IF([test $rb_cv_stack_end_address != no], [</div><div class='add'>+  AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+# posix_memalign(memptr, alignment, size) implemented for OpenBSD 4.8 doesn't work if alignment &gt; MALLOC_PAGESIZE.</div><div class='add'>+# [ruby-core:42158] https://bugs.ruby-lang.org/issues/5901</div><div class='add'>+# OpenBSD 5.2 fixed the problem. (src/lib/libc/stdlib/malloc.c:1.142)</div><div class='add'>+# MirOS #10semel has the problem but fixed in the repository.  (src/lib/libc/stdlib/malloc.c:1.9)</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[openbsd*|mirbsd*], [</div><div class='add'>+  AC_CACHE_CHECK(for heap align log on openbsd, rb_cv_page_size_log,</div><div class='add'>+    [rb_cv_page_size_log=no</div><div class='add'>+     for page_log in 12 13; do</div><div class='add'>+       AC_TRY_RUN([</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main() {</div><div class='add'>+  if ((int)log2((double)sysconf(_SC_PAGESIZE)) != $page_log) return 1;</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+       ],</div><div class='add'>+       rb_cv_page_size_log="$page_log"; break)</div><div class='add'>+     done])</div><div class='add'>+  AS_IF([test $rb_cv_page_size_log != no], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, $rb_cv_page_size_log)</div><div class='add'>+  ], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, 12)</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+dnl Checks for library functions.</div><div class='add'>+AC_TYPE_GETGROUPS</div><div class='add'>+AC_TYPE_SIGNAL</div><div class='add'>+AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],</div><div class='add'>+[powerpc-darwin*], [</div><div class='add'>+  AC_LIBSOURCES(alloca.c)</div><div class='add'>+  AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])</div><div class='add'>+  AC_DEFINE(C_ALLOCA)</div><div class='add'>+  AC_DEFINE_UNQUOTED(alloca, alloca)</div><div class='add'>+  ],</div><div class='add'>+[universal-darwin*:*ppc*], [</div><div class='add'>+  AC_LIBSOURCES(alloca.c)</div><div class='add'>+  AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])</div><div class='add'>+  RUBY_DEFINE_IF([defined __powerpc__], C_ALLOCA, 1)</div><div class='add'>+  RUBY_DEFINE_IF([defined __powerpc__], alloca, alloca)</div><div class='add'>+  ],</div><div class='add'>+[</div><div class='add'>+  AC_FUNC_ALLOCA</div><div class='add'>+  ])</div><div class='add'>+AS_IF([test "x$ALLOCA" = "x"], [</div><div class='add'>+    AC_CACHE_CHECK([for dynamic size alloca], rb_cv_dynamic_alloca, [</div><div class='add'>+    for chk in ok __chkstk; do</div><div class='add'>+	AC_TRY_LINK([</div><div class='add'>+	    @%:@ifdef HAVE_ALLOCA_H</div><div class='add'>+	    @%:@include &lt;alloca.h&gt;</div><div class='add'>+	    @%:@endif</div><div class='add'>+	    void $chk() {}</div><div class='add'>+	    int dynamic_alloca_test;</div><div class='add'>+	    int dynamic_alloca_result;],</div><div class='add'>+	    [dynamic_alloca_result = alloca(dynamic_alloca_test) != 0;],</div><div class='add'>+	    [rb_cv_dynamic_alloca=$chk; break])</div><div class='add'>+    done])</div><div class='add'>+    AS_IF([test "x$rb_cv_dynamic_alloca" = "x__chkstk"], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(RUBY_ALLOCA_CHKSTK, _$rb_cv_dynamic_alloca)</div><div class='add'>+	AS_CASE("$target_cpu",</div><div class='add'>+	[x64|x86_64], [</div><div class='add'>+	    AC_SUBST([ALLOCA], [\${LIBOBJDIR}x86_64-chkstk.${ac_objext}])</div><div class='add'>+	],)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AC_FUNC_MEMCMP</div><div class='add'>+</div><div class='add'>+# http://sources.redhat.com/ml/libc-hacker/2005-08/msg00008.html</div><div class='add'>+# Debian GNU/Linux Etch's libc6.1 2.3.6.ds1-13etch5 has this problem.</div><div class='add'>+# Debian GNU/Linux Lenny's libc6.1 2.7-10 has no problem.</div><div class='add'>+AC_CACHE_CHECK(for broken erfc of glibc-2.3.6 on IA64, rb_cv_broken_glibc_ia64_erfc,</div><div class='add'>+  [AC_TRY_RUN([</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+   erfc(10000.0);</div><div class='add'>+   return 0;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	rb_cv_broken_glibc_ia64_erfc=no,</div><div class='add'>+	rb_cv_broken_glibc_ia64_erfc=yes,</div><div class='add'>+	rb_cv_broken_glibc_ia64_erfc=no)])</div><div class='add'>+AS_CASE([$rb_cv_broken_glibc_ia64_erfc],[yes],[ac_cv_func_erf=no])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],[freebsd*],[</div><div class='add'>+	 AC_DEFINE(BROKEN_CLOSE)</div><div class='add'>+	 AC_REPLACE_FUNCS(close)</div><div class='add'>+	 ])</div><div class='add'>+</div><div class='add'>+AC_REPLACE_FUNCS(acosh)</div><div class='add'>+AC_REPLACE_FUNCS(cbrt)</div><div class='add'>+AC_REPLACE_FUNCS(crypt)</div><div class='add'>+AC_REPLACE_FUNCS(dup2)</div><div class='add'>+AC_REPLACE_FUNCS(erf)</div><div class='add'>+AC_REPLACE_FUNCS(explicit_bzero)</div><div class='add'>+AC_REPLACE_FUNCS(ffs)</div><div class='add'>+AC_REPLACE_FUNCS(finite)</div><div class='add'>+AC_REPLACE_FUNCS(flock)</div><div class='add'>+AC_REPLACE_FUNCS(hypot)</div><div class='add'>+AC_REPLACE_FUNCS(isinf)</div><div class='add'>+AC_REPLACE_FUNCS(isnan)</div><div class='add'>+AC_REPLACE_FUNCS(lgamma_r)</div><div class='add'>+AC_REPLACE_FUNCS(memmove)</div><div class='add'>+AC_REPLACE_FUNCS(nextafter)</div><div class='add'>+AC_REPLACE_FUNCS(setproctitle)</div><div class='add'>+AC_REPLACE_FUNCS(strchr)</div><div class='add'>+AC_REPLACE_FUNCS(strerror)</div><div class='add'>+AC_REPLACE_FUNCS(strlcat)</div><div class='add'>+AC_REPLACE_FUNCS(strlcpy)</div><div class='add'>+AC_REPLACE_FUNCS(strstr)</div><div class='add'>+AC_REPLACE_FUNCS(tgamma)</div><div class='add'>+</div><div class='add'>+# for missing/setproctitle.c</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[aix* | k*bsd*-gnu | kopensolaris*-gnu | linux* | darwin*], [AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)],</div><div class='add'>+[hpux*], [AC_DEFINE(SPT_TYPE,SPT_PSTAT) ],</div><div class='add'>+[])</div><div class='add'>+AC_CHECK_HEADERS(sys/pstat.h)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for signbit, rb_cv_have_signbit,</div><div class='add'>+  [AC_TRY_LINK([</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+], [int v = signbit(-0.0);],</div><div class='add'>+	rb_cv_have_signbit=yes,</div><div class='add'>+	rb_cv_have_signbit=no)])</div><div class='add'>+AS_IF([test "$rb_cv_have_signbit" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_SIGNBIT)</div><div class='add'>+], [</div><div class='add'>+  AC_LIBOBJ([signbit])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for broken memmem, rb_cv_broken_memmem, [</div><div class='add'>+    AC_TRY_RUN([</div><div class='add'>+@%:@include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main(int argc, char **argv)</div><div class='add'>+{</div><div class='add'>+    const char *str = "hogefugafoobar";</div><div class='add'>+    const char *rs = "foo";</div><div class='add'>+    const char *empty = "";</div><div class='add'>+    char *p;</div><div class='add'>+</div><div class='add'>+    p = memmem(str, strlen(str), rs, strlen(rs));</div><div class='add'>+    if (p == str+8) {</div><div class='add'>+	p = memmem(str, strlen(str), empty, strlen(empty));</div><div class='add'>+	if (p == str)</div><div class='add'>+	    return 0;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+    ],</div><div class='add'>+    rb_cv_broken_memmem=no,</div><div class='add'>+    rb_cv_broken_memmem=yes,</div><div class='add'>+    rb_cv_broken_memmem=yes)</div><div class='add'>+])</div><div class='add'>+test x"$rb_cv_broken_memmem" = xyes &amp;&amp; ac_cv_func_memmem=no</div><div class='add'>+</div><div class='add'>+AC_FUNC_FORK</div><div class='add'>+</div><div class='add'>+AC_CHECK_FUNCS(__syscall)</div><div class='add'>+AC_CHECK_FUNCS(_longjmp)		# used for AC_ARG_WITH(setjmp-type)</div><div class='add'>+# we don't use _setjmp if _longjmp doesn't exist.</div><div class='add'>+test x$ac_cv_func__longjmp = xno &amp;&amp; ac_cv_func__setjmp=no</div><div class='add'>+AC_CHECK_FUNCS(arc4random_buf)</div><div class='add'>+AC_CHECK_FUNCS(atan2l atan2f)</div><div class='add'>+AC_CHECK_FUNCS(chroot)</div><div class='add'>+AC_CHECK_FUNCS(chsize)</div><div class='add'>+AC_CHECK_FUNCS(clock_gettime)</div><div class='add'>+AC_CHECK_FUNCS(cosh)</div><div class='add'>+AC_CHECK_FUNCS(crypt_r)</div><div class='add'>+AC_CHECK_FUNCS(daemon)</div><div class='add'>+AC_CHECK_FUNCS(dirfd)</div><div class='add'>+AC_CHECK_FUNCS(dl_iterate_phdr)</div><div class='add'>+AC_CHECK_FUNCS(dlopen)</div><div class='add'>+AC_CHECK_FUNCS(dladdr)</div><div class='add'>+AC_CHECK_FUNCS(dup)</div><div class='add'>+AC_CHECK_FUNCS(dup3)</div><div class='add'>+AC_CHECK_FUNCS(eaccess)</div><div class='add'>+AC_CHECK_FUNCS(endgrent)</div><div class='add'>+AC_CHECK_FUNCS(fchmod)</div><div class='add'>+AC_CHECK_FUNCS(fchown)</div><div class='add'>+AC_CHECK_FUNCS(fcntl)</div><div class='add'>+AC_CHECK_FUNCS(fdatasync)</div><div class='add'>+AC_CHECK_FUNCS(fdopendir)</div><div class='add'>+AC_CHECK_FUNCS(fgetattrlist)</div><div class='add'>+AC_CHECK_FUNCS(fmod)</div><div class='add'>+AC_CHECK_FUNCS(fstatat)</div><div class='add'>+AC_CHECK_FUNCS(fsync)</div><div class='add'>+AC_CHECK_FUNCS(ftruncate)</div><div class='add'>+AC_CHECK_FUNCS(ftruncate64)		# used for Win32 platform</div><div class='add'>+AC_CHECK_FUNCS(getattrlist)</div><div class='add'>+AC_CHECK_FUNCS(getcwd)</div><div class='add'>+AC_CHECK_FUNCS(getgidx)</div><div class='add'>+AC_CHECK_FUNCS(getgrnam)</div><div class='add'>+AC_CHECK_FUNCS(getgrnam_r)</div><div class='add'>+AC_CHECK_FUNCS(getgroups)</div><div class='add'>+AC_CHECK_FUNCS(getpgid)</div><div class='add'>+AC_CHECK_FUNCS(getpgrp)</div><div class='add'>+AC_CHECK_FUNCS(getpriority)</div><div class='add'>+AC_CHECK_FUNCS(getpwnam_r)</div><div class='add'>+AC_CHECK_FUNCS(getresgid)</div><div class='add'>+AC_CHECK_FUNCS(getresuid)</div><div class='add'>+AC_CHECK_FUNCS(getrlimit)</div><div class='add'>+AC_CHECK_FUNCS(getsid)</div><div class='add'>+AC_CHECK_FUNCS(gettimeofday)		# for making ac_cv_func_gettimeofday</div><div class='add'>+AC_CHECK_FUNCS(getuidx)</div><div class='add'>+AC_CHECK_FUNCS(gmtime_r)</div><div class='add'>+AC_CHECK_FUNCS(initgroups)</div><div class='add'>+AC_CHECK_FUNCS(ioctl)</div><div class='add'>+AC_CHECK_FUNCS(isfinite)</div><div class='add'>+AC_CHECK_FUNCS(issetugid)</div><div class='add'>+AC_CHECK_FUNCS(killpg)</div><div class='add'>+AC_CHECK_FUNCS(lchmod)</div><div class='add'>+AC_CHECK_FUNCS(lchown)</div><div class='add'>+AC_CHECK_FUNCS(link)</div><div class='add'>+AC_CHECK_FUNCS(llabs)</div><div class='add'>+AC_CHECK_FUNCS(lockf)</div><div class='add'>+AC_CHECK_FUNCS(log2)</div><div class='add'>+AC_CHECK_FUNCS(lstat)</div><div class='add'>+AC_CHECK_FUNCS(lutimes)</div><div class='add'>+AC_CHECK_FUNCS(malloc_usable_size)</div><div class='add'>+AC_CHECK_FUNCS(malloc_size)</div><div class='add'>+AC_CHECK_FUNCS(mblen)</div><div class='add'>+AC_CHECK_FUNCS(memalign)</div><div class='add'>+AC_CHECK_FUNCS(memset_s)</div><div class='add'>+AC_CHECK_FUNCS(writev)</div><div class='add'>+AC_CHECK_FUNCS(memrchr)</div><div class='add'>+AC_CHECK_FUNCS(memmem)</div><div class='add'>+AC_CHECK_FUNCS(mkfifo)</div><div class='add'>+AC_CHECK_FUNCS(mknod)</div><div class='add'>+AC_CHECK_FUNCS(mktime)</div><div class='add'>+AC_CHECK_FUNCS(openat)</div><div class='add'>+AC_CHECK_FUNCS(pipe2)</div><div class='add'>+AC_CHECK_FUNCS(poll)</div><div class='add'>+AC_CHECK_FUNCS(posix_fadvise)</div><div class='add'>+AC_CHECK_FUNCS(posix_memalign)</div><div class='add'>+AC_CHECK_FUNCS(ppoll)</div><div class='add'>+AC_CHECK_FUNCS(pread)</div><div class='add'>+AC_CHECK_FUNCS(pwrite)</div><div class='add'>+AC_CHECK_FUNCS(qsort_r)</div><div class='add'>+AC_CHECK_FUNCS(qsort_s)</div><div class='add'>+AC_CHECK_FUNCS(readlink)</div><div class='add'>+AC_CHECK_FUNCS(round)</div><div class='add'>+AC_CHECK_FUNCS(sched_getaffinity)</div><div class='add'>+AC_CHECK_FUNCS(seekdir)</div><div class='add'>+AC_CHECK_FUNCS(select_large_fdset)</div><div class='add'>+AC_CHECK_FUNCS(sendfile)</div><div class='add'>+AC_CHECK_FUNCS(setegid)</div><div class='add'>+AC_CHECK_FUNCS(setenv)</div><div class='add'>+AC_CHECK_FUNCS(seteuid)</div><div class='add'>+AC_CHECK_FUNCS(setgid)</div><div class='add'>+AC_CHECK_FUNCS(setgroups)</div><div class='add'>+AC_CHECK_FUNCS(setpgid)</div><div class='add'>+AC_CHECK_FUNCS(setpgrp)</div><div class='add'>+AC_CHECK_FUNCS(setregid)</div><div class='add'>+AC_CHECK_FUNCS(setresgid)</div><div class='add'>+AC_CHECK_FUNCS(setresuid)</div><div class='add'>+AC_CHECK_FUNCS(setreuid)</div><div class='add'>+AC_CHECK_FUNCS(setrgid)</div><div class='add'>+AC_CHECK_FUNCS(setrlimit)</div><div class='add'>+AC_CHECK_FUNCS(setruid)</div><div class='add'>+AC_CHECK_FUNCS(setsid)</div><div class='add'>+AC_CHECK_FUNCS(setuid)</div><div class='add'>+AC_CHECK_FUNCS(shutdown)</div><div class='add'>+AC_CHECK_FUNCS(sigaction)</div><div class='add'>+AC_CHECK_FUNCS(sigaltstack)</div><div class='add'>+AC_CHECK_FUNCS(sigprocmask)</div><div class='add'>+AC_CHECK_FUNCS(sinh)</div><div class='add'>+AC_CHECK_FUNCS(spawnv)</div><div class='add'>+AC_CHECK_FUNCS(symlink)</div><div class='add'>+AC_CHECK_FUNCS(syscall)</div><div class='add'>+AC_CHECK_FUNCS(sysconf)</div><div class='add'>+AC_CHECK_FUNCS(tanh)</div><div class='add'>+AC_CHECK_FUNCS(telldir)</div><div class='add'>+AC_CHECK_FUNCS(timegm)</div><div class='add'>+AC_CHECK_FUNCS(times)</div><div class='add'>+AC_CHECK_FUNCS(truncate)</div><div class='add'>+AC_CHECK_FUNCS(truncate64)		# used for Win32</div><div class='add'>+AC_CHECK_FUNCS(unsetenv)</div><div class='add'>+AC_CHECK_FUNCS(utimensat)</div><div class='add'>+AC_CHECK_FUNCS(utimes)</div><div class='add'>+AC_CHECK_FUNCS(wait4)</div><div class='add'>+AC_CHECK_FUNCS(waitpid)</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_memset_s" = yes],</div><div class='add'>+    [RUBY_DEFINE_IF([!defined __STDC_WANT_LIB_EXT1__], [__STDC_WANT_LIB_EXT1__], 1)])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_getcwd" = yes], [</div><div class='add'>+    AC_CACHE_CHECK(if getcwd allocates buffer if NULL is given, [rb_cv_getcwd_malloc],</div><div class='add'>+	[AC_TRY_RUN([</div><div class='add'>+@%:@include &lt;stddef.h&gt;</div><div class='add'>+@%:@include &lt;stdio.h&gt;</div><div class='add'>+@%:@ifdef HAVE_UNISTD_H</div><div class='add'>+@%:@include &lt;unistd.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifndef EXIT_SUCCESS</div><div class='add'>+@%:@define EXIT_SUCCESS 0</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifndef EXIT_FAILURE</div><div class='add'>+@%:@define EXIT_FAILURE 1</div><div class='add'>+@%:@endif</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main(int argc, char **argv)</div><div class='add'>+{</div><div class='add'>+    if (!getcwd(NULL, 0)) return EXIT_FAILURE;</div><div class='add'>+    return EXIT_SUCCESS;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	    rb_cv_getcwd_malloc=yes,</div><div class='add'>+	    rb_cv_getcwd_malloc=no,</div><div class='add'>+	    AS_CASE($target_os,</div><div class='add'>+		[linux*|darwin*|*bsd|cygwin*|mingw*|mswin*],</div><div class='add'>+		[rb_cv_getcwd_malloc=yes],</div><div class='add'>+		[rb_cv_getcwd_malloc=no]))])</div><div class='add'>+    AS_IF([test "$rb_cv_getcwd_malloc" = no], [AC_DEFINE(NO_GETCWD_MALLOC, 1)])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_crypt_r" = yes],</div><div class='add'>+    [AC_CHECK_HEADERS(crypt.h)])</div><div class='add'>+AS_IF([test "$ac_cv_func_crypt_r:$ac_cv_header_crypt_h" = yes:yes],</div><div class='add'>+    [AC_CHECK_MEMBERS([struct crypt_data.initialized], [], [],</div><div class='add'>+		      [AC_INCLUDES_DEFAULT([@%:@include &lt;crypt.h&gt;])])])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_CHECK_BUILTIN_FUNC], [dnl</div><div class='add'>+AC_CACHE_CHECK([for $1], AS_TR_SH(rb_cv_builtin_$1),</div><div class='add'>+  [AC_LINK_IFELSE(</div><div class='add'>+    [AC_LANG_PROGRAM([int foo;], [$2;])],</div><div class='add'>+    [AS_TR_SH(rb_cv_builtin_$1)=yes],</div><div class='add'>+    [AS_TR_SH(rb_cv_builtin_$1)=no])])</div><div class='add'>+AS_IF([test "${AS_TR_SH(rb_cv_builtin_$1)}" != no], [</div><div class='add'>+  AC_DEFINE(AS_TR_CPP(HAVE_BUILTIN_$1))</div><div class='add'>+])])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_bswap16, [__builtin_bswap16(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_bswap32, [__builtin_bswap32(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_bswap64, [__builtin_bswap64(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_popcount, [__builtin_popcount(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_popcountll, [__builtin_popcountll(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_clz, [__builtin_clz(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_clzl, [__builtin_clzl(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_clzll, [__builtin_clzll(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_ctz, [__builtin_ctz(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_ctzll, [__builtin_ctzll(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_add_overflow, [int x;__builtin_add_overflow(0,0,&amp;x)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_sub_overflow, [int x;__builtin_sub_overflow(0,0,&amp;x)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_mul_overflow, [int x;__builtin_mul_overflow(0,0,&amp;x)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_mul_overflow_p, [__builtin_mul_overflow_p(0,0,(int)0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_constant_p, [__builtin_constant_p(0)])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_choose_expr, [</div><div class='add'>+    [int x[__extension__(__builtin_choose_expr(1, 1, -1))]];</div><div class='add'>+    [int y[__extension__(__builtin_choose_expr(0, -1, 1))]];</div><div class='add'>+    ])</div><div class='add'>+AS_IF([test x$rb_cv_builtin___builtin_choose_expr = xyes], [</div><div class='add'>+    RUBY_CHECK_BUILTIN_FUNC(__builtin_choose_expr_constant_p, [</div><div class='add'>+    [int x[__extension__(__builtin_choose_expr(__builtin_constant_p(1), 1, -1))]];</div><div class='add'>+    [int y[__extension__(__builtin_choose_expr(__builtin_constant_p(foo), -1, 1))]];</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_types_compatible_p, [__builtin_types_compatible_p(int, int)])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_qsort_r" != no], [</div><div class='add'>+  AC_CACHE_CHECK(whether qsort_r is GNU version, rb_cv_gnu_qsort_r,</div><div class='add'>+    [AC_TRY_COMPILE([</div><div class='add'>+@%:@include &lt;stdlib.h&gt;</div><div class='add'>+void qsort_r(void *base, size_t nmemb, size_t size,</div><div class='add'>+	    int (*compar)(const void *, const void *, void *),</div><div class='add'>+	    void *arg);</div><div class='add'>+],[ ],</div><div class='add'>+      [rb_cv_gnu_qsort_r=yes],</div><div class='add'>+      [rb_cv_gnu_qsort_r=no])</div><div class='add'>+  ])</div><div class='add'>+  AC_CACHE_CHECK(whether qsort_r is BSD version, rb_cv_bsd_qsort_r,</div><div class='add'>+    [AC_TRY_COMPILE([</div><div class='add'>+@%:@include &lt;stdlib.h&gt;</div><div class='add'>+void qsort_r(void *base, size_t nmemb, size_t size,</div><div class='add'>+	     void *arg, int (*compar)(void *, const void *, const void *));</div><div class='add'>+],[ ],</div><div class='add'>+      [rb_cv_bsd_qsort_r=yes],</div><div class='add'>+      [rb_cv_bsd_qsort_r=no])</div><div class='add'>+  ])</div><div class='add'>+  AS_CASE("$rb_cv_gnu_qsort_r:$rb_cv_bsd_qsort_r",</div><div class='add'>+  [yes:no], [</div><div class='add'>+    AC_DEFINE(HAVE_GNU_QSORT_R, 1)</div><div class='add'>+  ],</div><div class='add'>+  [no:yes], [</div><div class='add'>+    AC_DEFINE(HAVE_BSD_QSORT_R, 1)</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(whether atan2 handles Inf as C99, rb_cv_atan2_inf_c99, [</div><div class='add'>+    AS_IF([test $ac_cv_func_atan2f:$ac_cv_func_atan2l = yes:yes], [</div><div class='add'>+	AC_TRY_RUN([</div><div class='add'>+@%:@include &lt;math.h&gt;</div><div class='add'>+@%:@ifdef HAVE_UNISTD_H</div><div class='add'>+@%:@include &lt;unistd.h&gt;</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifndef EXIT_SUCCESS</div><div class='add'>+@%:@define EXIT_SUCCESS 0</div><div class='add'>+@%:@endif</div><div class='add'>+@%:@ifndef EXIT_FAILURE</div><div class='add'>+@%:@define EXIT_FAILURE 1</div><div class='add'>+@%:@endif</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main(int argc, char **argv)</div><div class='add'>+{</div><div class='add'>+    if (fabs(atan2(INFINITY, INFINITY) - M_PI_4) &lt;= 0.01) return EXIT_SUCCESS;</div><div class='add'>+    return EXIT_FAILURE;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	[rb_cv_atan2_inf_c99=yes],</div><div class='add'>+	[rb_cv_atan2_inf_c99=no],</div><div class='add'>+	[AS_CASE($target_os, [mingw*|mswin*], [rb_cv_atan2_inf_c99=no], [rb_cv_atan2_inf_c99=yes])]</div><div class='add'>+	)</div><div class='add'>+    ], [rb_cv_atan2_inf_c99=no])</div><div class='add'>+])</div><div class='add'>+AS_IF([test "x$rb_cv_atan2_inf_c99" = xyes], [AC_DEFINE(ATAN2_INF_C99)])</div><div class='add'>+</div><div class='add'>+# Some platform need -lrt for clock_gettime, but the other don't.</div><div class='add'>+AS_IF([test x"$ac_cv_func_clock_gettime" != xyes], [</div><div class='add'>+    # glibc 2.17 moves clock_* functions from librt to the main C library.</div><div class='add'>+    # http://sourceware.org/ml/libc-announce/2012/msg00001.html</div><div class='add'>+    AC_CHECK_LIB(rt, clock_gettime)</div><div class='add'>+    AS_IF([test x"$ac_cv_lib_rt_clock_gettime" = xyes], [</div><div class='add'>+	AC_DEFINE(HAVE_CLOCK_GETTIME, 1)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AC_CHECK_FUNCS(clock_getres) # clock_getres should be tested after clock_gettime test including librt test.</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for unsetenv returns a value, rb_cv_unsetenv_return_value,</div><div class='add'>+  [AC_TRY_COMPILE([</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+], [int v = unsetenv("foo");],</div><div class='add'>+	rb_cv_unsetenv_return_value=yes,</div><div class='add'>+	rb_cv_unsetenv_return_value=no)])</div><div class='add'>+AS_IF([test "$rb_cv_unsetenv_return_value" = no], [</div><div class='add'>+  AC_DEFINE(VOID_UNSETENV)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+# used for AC_ARG_WITH(setjmp-type)</div><div class='add'>+AC_DEFUN([RUBY_CHECK_SETJMP], [</div><div class='add'>+AC_CACHE_CHECK([for ]$1[ as a macro or function], ac_cv_func_$1,</div><div class='add'>+  [AC_TRY_COMPILE([</div><div class='add'>+@%:@include &lt;setjmp.h&gt;</div><div class='add'>+]AC_INCLUDES_DEFAULT([$3])[</div><div class='add'>+@%:@define JMPARGS_1 env</div><div class='add'>+@%:@define JMPARGS_2 env,1</div><div class='add'>+@%:@define JMPARGS JMPARGS_]m4_ifval($2,2,1)[</div><div class='add'>+],</div><div class='add'>+    m4_ifval($2,$2,jmp_buf)[ env; $1(JMPARGS);],</div><div class='add'>+    ac_cv_func_$1=yes,</div><div class='add'>+    ac_cv_func_$1=no)]</div><div class='add'>+)</div><div class='add'>+AS_IF([test "$ac_cv_func_]$1[" = yes], [AC_DEFINE([HAVE_]AS_TR_CPP($1), 1)])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_CHECK_BUILTIN_SETJMP], [</div><div class='add'>+AS_IF([test x"${ac_cv_func___builtin_setjmp}" = xyes], [</div><div class='add'>+   unset ac_cv_func___builtin_setjmp</div><div class='add'>+])</div><div class='add'>+AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp,</div><div class='add'>+    [</div><div class='add'>+    ac_cv_func___builtin_setjmp=no</div><div class='add'>+    for cast in "" "(void **)"; do</div><div class='add'>+	RUBY_WERROR_FLAG(</div><div class='add'>+	[AC_TRY_LINK([@%:@include &lt;setjmp.h&gt;</div><div class='add'>+	    @%:@include &lt;stdio.h&gt;</div><div class='add'>+	    jmp_buf jb;</div><div class='add'>+	    @%:@ifdef NORETURN</div><div class='add'>+	    NORETURN(void t(void));</div><div class='add'>+	    @%:@endif</div><div class='add'>+	    void t(void) {__builtin_longjmp($cast jb, 1);}</div><div class='add'>+	    int jump(void) {(void)(__builtin_setjmp($cast jb) ? 1 : 0); return 0;}],</div><div class='add'>+	    [</div><div class='add'>+	    void (*volatile f)(void) = t;</div><div class='add'>+	    if (!jump()) printf("%d\n", f != 0);</div><div class='add'>+	    ],</div><div class='add'>+	    [ac_cv_func___builtin_setjmp="yes with cast ($cast)"])</div><div class='add'>+	])</div><div class='add'>+	test "$ac_cv_func___builtin_setjmp" = no || break</div><div class='add'>+    done])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_SETJMP_TYPE], [</div><div class='add'>+RUBY_CHECK_BUILTIN_SETJMP</div><div class='add'>+RUBY_CHECK_SETJMP(_setjmpex, [], [@%:@include &lt;setjmpex.h&gt;])</div><div class='add'>+RUBY_CHECK_SETJMP(_setjmp)</div><div class='add'>+RUBY_CHECK_SETJMP(sigsetjmp, [sigjmp_buf])</div><div class='add'>+AC_MSG_CHECKING(for setjmp type)</div><div class='add'>+setjmp_suffix=</div><div class='add'>+unset setjmp_sigmask</div><div class='add'>+AC_ARG_WITH(setjmp-type,</div><div class='add'>+	AS_HELP_STRING([--with-setjmp-type], [select setjmp type]),</div><div class='add'>+	[</div><div class='add'>+	AS_CASE([$withval],</div><div class='add'>+	[__builtin_setjmp], [setjmp=__builtin_setjmp],</div><div class='add'>+	[_setjmp], [ setjmp_prefix=_],</div><div class='add'>+	[sigsetjmp,*], [ setjmp_prefix=sig setjmp_sigmask=`expr "$withval" : 'sigsetjmp\(,.*\)'`],</div><div class='add'>+	[sigsetjmp], [ setjmp_prefix=sig],</div><div class='add'>+	[setjmp], [ setjmp_prefix=],</div><div class='add'>+	[setjmpex], [ setjmp_prefix= setjmp_suffix=ex],</div><div class='add'>+	[''], [ unset setjmp_prefix],</div><div class='add'>+	[   AC_MSG_ERROR(invalid setjmp type: $withval)])], [unset setjmp_prefix])</div><div class='add'>+setjmp_cast=</div><div class='add'>+AS_IF([test ${setjmp_prefix+set}], [</div><div class='add'>+    AS_IF([test "${setjmp_prefix}" &amp;&amp; eval test '$ac_cv_func_'${setjmp_prefix}setjmp${setjmp_suffix} = no], [</div><div class='add'>+	AC_MSG_ERROR(${setjmp_prefix}setjmp${setjmp_suffix} is not available)</div><div class='add'>+    ])</div><div class='add'>+], [{ AS_CASE("$ac_cv_func___builtin_setjmp", [yes*], [true], [false]) }], [</div><div class='add'>+    setjmp_cast=`expr "$ac_cv_func___builtin_setjmp" : "yes with cast (\(.*\))"`</div><div class='add'>+    setjmp_prefix=__builtin_</div><div class='add'>+    setjmp_suffix=</div><div class='add'>+], [test "$ac_cv_header_setjmpex_h:$ac_cv_func__setjmpex" = yes:yes], [</div><div class='add'>+    setjmp_prefix=</div><div class='add'>+    setjmp_suffix=ex</div><div class='add'>+], [test "$ac_cv_func__setjmp" = yes], [</div><div class='add'>+    setjmp_prefix=_</div><div class='add'>+    setjmp_suffix=</div><div class='add'>+], [test "$ac_cv_func_sigsetjmp" = yes], [</div><div class='add'>+    AS_CASE([$target_os],[solaris*|cygwin*],[setjmp_prefix=],[setjmp_prefix=sig])</div><div class='add'>+    setjmp_suffix=</div><div class='add'>+], [</div><div class='add'>+    setjmp_prefix=</div><div class='add'>+    setjmp_suffix=</div><div class='add'>+])</div><div class='add'>+AS_IF([test x$setjmp_prefix:$setjmp_sigmask = xsig:], [</div><div class='add'>+    setjmp_sigmask=,0</div><div class='add'>+])</div><div class='add'>+AC_MSG_RESULT(${setjmp_prefix}setjmp${setjmp_suffix}${setjmp_cast:+\($setjmp_cast\)}${setjmp_sigmask})</div><div class='add'>+AC_DEFINE_UNQUOTED([RUBY_SETJMP(env)], [${setjmp_prefix}setjmp${setjmp_suffix}($setjmp_cast(env)${setjmp_sigmask})])</div><div class='add'>+AC_DEFINE_UNQUOTED([RUBY_LONGJMP(env,val)], [${setjmp_prefix}longjmp($setjmp_cast(env),val)])</div><div class='add'>+AC_DEFINE_UNQUOTED(RUBY_JMP_BUF, ${setjmp_sigmask+${setjmp_prefix}}jmp_buf)</div><div class='add'>+AS_IF([test x$setjmp_suffix = xex], [AC_DEFINE_UNQUOTED(RUBY_USE_SETJMPEX, 1)])</div><div class='add'>+])</div><div class='add'>+# End of setjmp check.</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(setreuid,</div><div class='add'>+       AS_HELP_STRING([--enable-setreuid], [use setreuid()/setregid() according to need even if obsolete]),</div><div class='add'>+       [use_setreuid=$enableval])</div><div class='add'>+AS_IF([test "$use_setreuid" = yes], [</div><div class='add'>+    AC_DEFINE(USE_SETREUID)</div><div class='add'>+    AC_DEFINE(USE_SETREGID)</div><div class='add'>+])</div><div class='add'>+AC_STRUCT_TIMEZONE</div><div class='add'>+AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,</div><div class='add'>+  [AC_TRY_COMPILE([</div><div class='add'>+@%:@define _BSD_SOURCE</div><div class='add'>+@%:@define _DEFAULT_SOURCE</div><div class='add'>+@%:@include &lt;time.h&gt;</div><div class='add'>+   ],</div><div class='add'>+    [struct tm t; t.tm_gmtoff = 3600;],</div><div class='add'>+  [rb_cv_member_struct_tm_tm_gmtoff=yes],</div><div class='add'>+  [rb_cv_member_struct_tm_tm_gmtoff=no])])</div><div class='add'>+AS_IF([test "$rb_cv_member_struct_tm_tm_gmtoff" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)</div><div class='add'>+])</div><div class='add'>+AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,</div><div class='add'>+  [AC_TRY_LINK([#include &lt;time.h&gt;</div><div class='add'>+  int i;],</div><div class='add'>+	[i = daylight;],</div><div class='add'>+	rb_cv_have_daylight=yes,</div><div class='add'>+	rb_cv_have_daylight=no)])</div><div class='add'>+AS_IF([test "$rb_cv_have_daylight" = yes], [</div><div class='add'>+  AC_DEFINE(HAVE_DAYLIGHT)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,</div><div class='add'>+  [AC_TRY_RUN([</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;time.h&gt;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+check(tm, y, m, d, h, s)</div><div class='add'>+    struct tm *tm;</div><div class='add'>+    int y, m, d, h, s;</div><div class='add'>+{</div><div class='add'>+    if (!tm ||</div><div class='add'>+	tm-&gt;tm_year != y ||</div><div class='add'>+	tm-&gt;tm_mon  != m-1 ||</div><div class='add'>+	tm-&gt;tm_mday != d ||</div><div class='add'>+	tm-&gt;tm_hour != h ||</div><div class='add'>+	tm-&gt;tm_sec  != s) {</div><div class='add'>+	exit(1);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+   time_t t = -1;</div><div class='add'>+   struct tm *tm;</div><div class='add'>+</div><div class='add'>+   check(gmtime(&amp;t), 69, 12, 31, 23, 59);</div><div class='add'>+   t = ~(time_t)0 &lt;&lt; 31;</div><div class='add'>+   check(gmtime(&amp;t), 1, 12, 13, 20, 52);</div><div class='add'>+   return 0;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	rb_cv_negative_time_t=yes,</div><div class='add'>+	rb_cv_negative_time_t=no,</div><div class='add'>+	rb_cv_negative_time_t=yes)])</div><div class='add'>+AS_IF([test "$rb_cv_negative_time_t" = yes], [</div><div class='add'>+  AC_DEFINE(NEGATIVE_TIME_T)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+# [ruby-dev:40910] overflow of time on FreeBSD</div><div class='add'>+# http://www.freebsd.org/cgi/query-pr.cgi?pr=145341</div><div class='add'>+AC_CACHE_CHECK(for localtime(3) overflow correctly, rb_cv_localtime_overflow,</div><div class='add'>+  [AC_TRY_RUN([</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;time.h&gt;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+check(time_t t1)</div><div class='add'>+{</div><div class='add'>+    struct tm *tm;</div><div class='add'>+    time_t t2;</div><div class='add'>+    tm = localtime(&amp;t1);</div><div class='add'>+    if (!tm)</div><div class='add'>+	return; /* overflow detected.  ok. */</div><div class='add'>+    t2 = mktime(tm);</div><div class='add'>+    if (t1 == t2)</div><div class='add'>+        return; /* round-trip.  ok. */</div><div class='add'>+    exit(1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+    time_t t;</div><div class='add'>+    if (~(time_t)0 &lt;= 0) {</div><div class='add'>+        t = (((time_t)1) &lt;&lt; (sizeof(time_t) * 8 - 2));</div><div class='add'>+        t |= t - 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        t = ~(time_t)0;</div><div class='add'>+    }</div><div class='add'>+    check(t);</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	rb_cv_localtime_overflow=yes,</div><div class='add'>+	rb_cv_localtime_overflow=no,</div><div class='add'>+	rb_cv_localtime_overflow=no)])</div><div class='add'>+AS_IF([test "$rb_cv_localtime_overflow" = no], [</div><div class='add'>+  AC_DEFINE(LOCALTIME_OVERFLOW_PROBLEM)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_sigprocmask" = yes &amp;&amp; test "$ac_cv_func_sigaction" = yes], [</div><div class='add'>+   AC_DEFINE(POSIX_SIGNAL)</div><div class='add'>+], [</div><div class='add'>+  AC_CHECK_FUNCS(sigsetmask)</div><div class='add'>+  AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,</div><div class='add'>+    [AC_TRY_RUN([</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;signal.h&gt;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+sig_handler(dummy)</div><div class='add'>+     int dummy;</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+  signal(SIGINT, sig_handler);</div><div class='add'>+  kill(getpid(), SIGINT);</div><div class='add'>+  kill(getpid(), SIGINT);</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	rb_cv_bsd_signal=yes,</div><div class='add'>+	rb_cv_bsd_signal=no,</div><div class='add'>+	rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])</div><div class='add'>+  AS_IF([test "$rb_cv_bsd_signal" = yes], [</div><div class='add'>+    AC_DEFINE(BSD_SIGNAL)</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CHECK_TYPES([sig_t],[],[],[@%:@include &lt;signal.h&gt;])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_getpgid" = no], [</div><div class='add'>+  # AC_FUNC_GETPGRP fails when cross-compiling with old autoconf.</div><div class='add'>+  # autoconf is changed between 2.52d and 2.52f?</div><div class='add'>+  # http://lists.gnu.org/archive/html/bug-gnu-utils/2001-09/msg00181.html</div><div class='add'>+  # "autoconf cleanup for AC_FUNC_GETPGRP and GETPGRP_VOID"</div><div class='add'>+AC_FUNC_GETPGRP</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$ac_cv_func_setpgid:$ac_cv_func_setpgrp" = no:yes], [</div><div class='add'>+  # AC_FUNC_SETPGRP fails when cross-compiling.  (until autoconf 2.69?)</div><div class='add'>+  # https://lists.gnu.org/archive/html/bug-autoconf/2013-02/msg00002.html</div><div class='add'>+  # "AC_FUNC_SETPGRP fails to work properly when cross-compiling"</div><div class='add'>+AC_FUNC_SETPGRP</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$ac_cv_func_dirfd" = xno], [</div><div class='add'>+  AS_CASE(["$target_os"],[solaris*],</div><div class='add'>+          [AC_CHECK_MEMBERS([DIR.d_fd, DIR.dd_fd],,,[</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;dirent.h&gt;</div><div class='add'>+])])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$target_cpu" = xia64], [</div><div class='add'>+    AC_LIBOBJ([ia64])</div><div class='add'>+    AC_CACHE_CHECK(for __libc_ia64_register_backing_store_base,</div><div class='add'>+                   rb_cv___libc_ia64_register_backing_store_base,</div><div class='add'>+    [rb_cv___libc_ia64_register_backing_store_base=no</div><div class='add'>+    AC_TRY_LINK(</div><div class='add'>+      [extern unsigned long __libc_ia64_register_backing_store_base;],</div><div class='add'>+      [unsigned long p = __libc_ia64_register_backing_store_base;</div><div class='add'>+       printf("%ld\n", p);],</div><div class='add'>+      [rb_cv___libc_ia64_register_backing_store_base=yes])])</div><div class='add'>+    AS_IF([test $rb_cv___libc_ia64_register_backing_store_base = yes], [</div><div class='add'>+      AC_DEFINE(HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign,</div><div class='add'>+    [AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([], [(-1==(-1&gt;&gt;1))])],</div><div class='add'>+	rb_cv_rshift_sign=yes,</div><div class='add'>+	rb_cv_rshift_sign=no)])</div><div class='add'>+AS_IF([test "$rb_cv_rshift_sign" = yes], [</div><div class='add'>+  AC_DEFINE(RSHIFT(x,y), ((x)&gt;&gt;(int)(y)))</div><div class='add'>+], [</div><div class='add'>+  AC_DEFINE(RSHIFT(x,y), (((x)&lt;0) ? ~((~(x))&gt;&gt;(int)(y)) : (x)&gt;&gt;(int)(y)))</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$ac_cv_func_gettimeofday" != xyes], [</div><div class='add'>+    AC_MSG_ERROR(gettimeofday() must exist)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_sysconf" = yes], [</div><div class='add'>+  AC_DEFUN([RUBY_CHECK_SYSCONF], [dnl</div><div class='add'>+  AC_CACHE_CHECK([whether _SC_$1 is supported], rb_cv_have_sc_[]m4_tolower($1),</div><div class='add'>+    [AC_TRY_COMPILE([#include &lt;unistd.h&gt;</div><div class='add'>+      ],</div><div class='add'>+      [_SC_$1 &gt;= 0],</div><div class='add'>+      rb_cv_have_sc_[]m4_tolower($1)=yes,</div><div class='add'>+      rb_cv_have_sc_[]m4_tolower($1)=no)</div><div class='add'>+    ])</div><div class='add'>+  AS_IF([test "$rb_cv_have_sc_[]m4_tolower($1)" = yes], [</div><div class='add'>+    AC_DEFINE(HAVE__SC_$1)</div><div class='add'>+  ])</div><div class='add'>+  ])</div><div class='add'>+  RUBY_CHECK_SYSCONF(CLK_TCK)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_STACK_GROW_DIRECTION], [</div><div class='add'>+    AS_VAR_PUSHDEF([stack_grow_dir], [rb_cv_stack_grow_dir_$1])</div><div class='add'>+    AC_CACHE_CHECK(stack growing direction on $1, stack_grow_dir, [</div><div class='add'>+AS_CASE(["$1"],</div><div class='add'>+[m68*|x86*|x64|i?86|ia64|ppc*|sparc*|alpha*], [ $2=-1],</div><div class='add'>+[hppa*], [ $2=+1],</div><div class='add'>+[</div><div class='add'>+  AC_TRY_RUN([</div><div class='add'>+/* recurse to get rid of inlining */</div><div class='add'>+static int</div><div class='add'>+stack_growup_p(addr, n)</div><div class='add'>+    volatile int *addr, n;</div><div class='add'>+{</div><div class='add'>+    volatile int end;</div><div class='add'>+    if (n &gt; 0)</div><div class='add'>+	return *addr = stack_growup_p(addr, n - 1);</div><div class='add'>+    else</div><div class='add'>+	return (&amp;end &gt; addr);</div><div class='add'>+}</div><div class='add'>+int main()</div><div class='add'>+{</div><div class='add'>+    int x;</div><div class='add'>+    return stack_growup_p(&amp;x, 10);</div><div class='add'>+}</div><div class='add'>+], $2=-1, $2=+1, $2=0)</div><div class='add'>+  ])</div><div class='add'>+eval stack_grow_dir=\$$2])</div><div class='add'>+eval $2=\$stack_grow_dir</div><div class='add'>+AS_VAR_POPDEF([stack_grow_dir])])</div><div class='add'>+AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='add'>+    archflagpat=`eval echo '"'"${ARCH_FLAG}"'"' | sed 's/[[][|.*]]/\\&amp;/g'`</div><div class='add'>+    save_CFLAGS="$CFLAGS" new_cflags=`echo "$CFLAGS" | sed "s|$archflagpat"'||'`</div><div class='add'>+    save_LDFLAGS="$LDFLAGS" new_ldflags=`echo "$LDFLAGS" | sed "s|$archflagpat"'||'`</div><div class='add'>+    stack_dir=</div><div class='add'>+    for archs in ${universal_archnames}; do</div><div class='add'>+	archs=`echo $archs | sed 's/=.*//'`</div><div class='add'>+	CFLAGS="$new_cflags -arch $archs"</div><div class='add'>+	LDFLAGS="$new_ldflags -arch $archs"</div><div class='add'>+	RUBY_STACK_GROW_DIRECTION($archs, dir)</div><div class='add'>+	AS_IF([test x$stack_dir = x], [</div><div class='add'>+	    stack_dir=$dir</div><div class='add'>+	], [test x$stack_dir != x$dir], [</div><div class='add'>+	    stack_dir=no</div><div class='add'>+	])</div><div class='add'>+    done</div><div class='add'>+    CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS"</div><div class='add'>+    AS_IF([test x$stack_dir = xno], [</div><div class='add'>+	for archs in ${universal_archnames}; do</div><div class='add'>+	    archs=`echo $archs | sed 's/=.*//'`</div><div class='add'>+	    eval dir=\$[rb_cv_stack_grow_dir_]AS_TR_SH([$archs])</div><div class='add'>+	    RUBY_DEFINE_IF([defined __${archs}__], STACK_GROW_DIRECTION, $dir)</div><div class='add'>+	done</div><div class='add'>+    ], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $stack_dir)</div><div class='add'>+    ])</div><div class='add'>+], [</div><div class='add'>+    RUBY_STACK_GROW_DIRECTION($target_cpu, dir)</div><div class='add'>+    AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $dir)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$enable_pthread" = xyes], [</div><div class='add'>+    for pthread_lib in thr pthread pthreads c c_r root; do</div><div class='add'>+	AC_CHECK_LIB($pthread_lib, pthread_kill,</div><div class='add'>+		     rb_with_pthread=yes, rb_with_pthread=no)</div><div class='add'>+	AS_IF([test "$rb_with_pthread" = "yes"], [ break; fi</div><div class='add'>+    done</div><div class='add'>+    AS_IF([test x"$rb_with_pthread" = xyes], [</div><div class='add'>+	AC_DEFINE(_REENTRANT)</div><div class='add'>+	AC_DEFINE(_THREAD_SAFE)</div><div class='add'>+	AC_DEFINE(HAVE_LIBPTHREAD)</div><div class='add'>+	AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include &lt;pthread.h&gt;])</div><div class='add'>+	AS_CASE([$pthread_lib],</div><div class='add'>+	[c],    [],</div><div class='add'>+	[root], [],</div><div class='add'>+	[c_r],  [MAINLIBS="-pthread $MAINLIBS"],</div><div class='add'>+	        [AS_CASE(["$target_os"],</div><div class='add'>+		    [openbsd*|mirbsd*], [LIBS="-pthread $LIBS"],</div><div class='add'>+		    [LIBS="-l$pthread_lib $LIBS"])])</div><div class='add'>+    ], [</div><div class='add'>+	AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")</div><div class='add'>+    ])</div><div class='add'>+    AC_CACHE_CHECK([whether pthread_t is scalar type], [rb_cv_scalar_pthread_t], [</div><div class='add'>+	AC_TRY_COMPILE([</div><div class='add'>+	    @%:@include &lt;pthread.h&gt;</div><div class='add'>+	    ], [</div><div class='add'>+	    pthread_t thread_id;</div><div class='add'>+	    thread_id = 0;</div><div class='add'>+	    if (!thread_id) return 0;</div><div class='add'>+	    ], [rb_cv_scalar_pthread_t=yes], [rb_cv_scalar_pthread_t=no])</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test x"$rb_cv_scalar_pthread_t" = xyes], [</div><div class='add'>+	: # RUBY_CHECK_SIZEOF(pthread_t, [void* int long], [], [@%:@include &lt;pthread.h&gt;])</div><div class='add'>+    ], [</div><div class='add'>+	AC_DEFINE(NON_SCALAR_THREAD_ID)</div><div class='add'>+    ])</div><div class='add'>+    AC_CHECK_FUNCS(sched_yield pthread_attr_setinheritsched \</div><div class='add'>+	pthread_attr_get_np pthread_attr_getstack pthread_attr_init \</div><div class='add'>+	pthread_get_stackaddr_np pthread_get_stacksize_np \</div><div class='add'>+	thr_stksegment pthread_stackseg_np pthread_getthrds_np \</div><div class='add'>+	pthread_cond_init pthread_condattr_setclock pthread_condattr_init \</div><div class='add'>+	pthread_sigmask pthread_setname_np pthread_set_name_np)</div><div class='add'>+    AS_CASE(["$target_os"],[aix*],[ac_cv_func_pthread_getattr_np=no],[AC_CHECK_FUNCS(pthread_getattr_np)])</div><div class='add'>+    set_current_thread_name=</div><div class='add'>+    AS_IF([test "$ac_cv_func_pthread_setname_np" = yes], [</div><div class='add'>+	AC_CACHE_CHECK([arguments of pthread_setname_np], [rb_cv_func_pthread_setname_np_arguments],</div><div class='add'>+	    [rb_cv_func_pthread_setname_np_arguments=</div><div class='add'>+	    # Linux,AIX,  (pthread_self(), name)</div><div class='add'>+	    # NetBSD (pthread_self(), name, \"%s\")</div><div class='add'>+	    # Darwin (name)</div><div class='add'>+	    for mac in \</div><div class='add'>+		"(pthread_self(), name)" \</div><div class='add'>+		"(pthread_self(), name, \"%s\")" \</div><div class='add'>+		"(name)" \</div><div class='add'>+		; do</div><div class='add'>+		AC_TRY_COMPILE([</div><div class='add'>+		    @%:@include &lt;pthread.h&gt;</div><div class='add'>+		    @%:@ifdef HAVE_PTHREAD_NP_H</div><div class='add'>+		    @%:@include &lt;pthread_np.h&gt;</div><div class='add'>+		    @%:@endif</div><div class='add'>+		    @%:@define SET_THREAD_NAME(name) pthread_setname_np${mac}</div><div class='add'>+		    ],</div><div class='add'>+		    [if (SET_THREAD_NAME("conftest")) return 1;],</div><div class='add'>+		    [rb_cv_func_pthread_setname_np_arguments="${mac}"</div><div class='add'>+		    break])</div><div class='add'>+	    done</div><div class='add'>+	    ]</div><div class='add'>+	)</div><div class='add'>+	AS_IF([test -n "${rb_cv_func_pthread_setname_np_arguments}"], [</div><div class='add'>+	    set_current_thread_name="pthread_setname_np${rb_cv_func_pthread_setname_np_arguments}"</div><div class='add'>+	])</div><div class='add'>+    ], [test "$ac_cv_func_pthread_set_name_np" = yes], [</div><div class='add'>+	set_current_thread_name="pthread_set_name_np(pthread_self(), name)"</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test -n "$set_current_thread_name"], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(SET_CURRENT_THREAD_NAME(name), $set_current_thread_name)</div><div class='add'>+	AS_CASE([$set_current_thread_name],</div><div class='add'>+	    [*'pthread_self()'*], [</div><div class='add'>+		set_another_thread_name=`echo "$set_current_thread_name" | sed 's/pthread_self()/thid/'`</div><div class='add'>+		AC_DEFINE_UNQUOTED(SET_ANOTHER_THREAD_NAME(thid,name), $set_another_thread_name)</div><div class='add'>+	    ])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$ac_cv_header_ucontext_h" = xno], [</div><div class='add'>+    AC_CACHE_CHECK([if signal.h defines ucontext_t], [rb_cv_ucontext_in_signal_h],</div><div class='add'>+	[AC_TRY_COMPILE([@%:@include &lt;signal.h&gt;],</div><div class='add'>+	[size_t size = sizeof(ucontext_t);],</div><div class='add'>+	[rb_cv_ucontext_in_signal_h=yes], [rb_cv_ucontext_in_signal_h=no])])</div><div class='add'>+    AS_IF([test x"$rb_cv_ucontext_in_signal_h" = xyes], [</div><div class='add'>+	    AC_DEFINE_UNQUOTED(UCONTEXT_IN_SIGNAL_H, 1)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test x"$ac_cv_header_ucontext_h" = xyes -o x"$rb_cv_ucontext_in_signal_h" = xyes], [</div><div class='add'>+    AC_CACHE_CHECK([if mcontext_t is a pointer], [rb_cv_mcontext_t_ptr],</div><div class='add'>+	[AC_TRY_COMPILE([</div><div class='add'>+	    @%:@include &lt;signal.h&gt;</div><div class='add'>+	    @%:@ifdef HAVE_UCONTEXT_H</div><div class='add'>+	    @%:@include &lt;ucontext.h&gt;</div><div class='add'>+	    @%:@endif</div><div class='add'>+        mcontext_t test(mcontext_t mc) {return mc+1;}</div><div class='add'>+	],</div><div class='add'>+	[test(0);],</div><div class='add'>+	[rb_cv_mcontext_t_ptr=yes], [rb_cv_mcontext_t_ptr=no])])</div><div class='add'>+    AS_IF([test x"$rb_cv_mcontext_t_ptr" = xyes], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(DEFINE_MCONTEXT_PTR(mc, uc), mcontext_t mc = (uc)-&gt;uc_mcontext)</div><div class='add'>+    ], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(DEFINE_MCONTEXT_PTR(mc, uc), mcontext_t *mc = &amp;(uc)-&gt;uc_mcontext)</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test x"$rb_with_pthread" = xyes], [</div><div class='add'>+	AC_CHECK_FUNCS(getcontext setcontext)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$ac_cv_func_fork_works" = "yes" -a "$rb_with_pthread" = "yes"], [</div><div class='add'>+    AC_CACHE_CHECK([if fork works with pthread], rb_cv_fork_with_pthread,</div><div class='add'>+	[AC_TRY_RUN([</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;pthread.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;sys/wait.h&gt;</div><div class='add'>+#include &lt;signal.h&gt;</div><div class='add'>+#ifndef EXIT_SUCCESS</div><div class='add'>+#define EXIT_SUCCESS 0</div><div class='add'>+#endif</div><div class='add'>+#ifndef EXIT_FAILURE</div><div class='add'>+#define EXIT_FAILURE 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+void *</div><div class='add'>+thread_func(void *dmy)</div><div class='add'>+{</div><div class='add'>+    return dmy;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+use_threads(void)</div><div class='add'>+{</div><div class='add'>+    pthread_t tid;</div><div class='add'>+    if (pthread_create(&amp;tid, 0, thread_func, 0) != 0) {</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    if (pthread_join(tid, 0) != 0) {</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main(int argc, char *argv[])</div><div class='add'>+{</div><div class='add'>+    pid_t pid;</div><div class='add'>+    if (use_threads()) return EXIT_FAILURE;</div><div class='add'>+    pid = fork();</div><div class='add'>+</div><div class='add'>+    if (pid) {</div><div class='add'>+	int loc;</div><div class='add'>+	sleep(1);</div><div class='add'>+	if (waitpid(pid, &amp;loc, WNOHANG) == 0) {</div><div class='add'>+	    kill(pid, SIGKILL);</div><div class='add'>+	    return EXIT_FAILURE;</div><div class='add'>+	}</div><div class='add'>+        if (!WIFEXITED(loc) || WEXITSTATUS(loc) != EXIT_SUCCESS)</div><div class='add'>+           return EXIT_FAILURE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (use_threads()) return EXIT_FAILURE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return EXIT_SUCCESS;</div><div class='add'>+}],</div><div class='add'>+	rb_cv_fork_with_pthread=yes,</div><div class='add'>+	rb_cv_fork_with_pthread=no,</div><div class='add'>+	rb_cv_fork_with_pthread=yes)])</div><div class='add'>+    test x$rb_cv_fork_with_pthread = xyes || AC_DEFINE(CANNOT_FORK_WITH_PTHREAD)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+}</div><div class='add'>+{ # runtime section</div><div class='add'>+</div><div class='add'>+dnl wheather use dln_a_out or not</div><div class='add'>+AC_ARG_WITH(dln-a-out,</div><div class='add'>+	AS_HELP_STRING([--with-dln-a-out], [use dln_a_out if possible]),</div><div class='add'>+	[</div><div class='add'>+	AS_CASE([$withval],</div><div class='add'>+	[yes], [</div><div class='add'>+	    AS_IF([test "$enable_shared" = yes], [</div><div class='add'>+		AC_MSG_ERROR(dln_a_out can not make shared library)</div><div class='add'>+	    ])</div><div class='add'>+	    with_dln_a_out=yes],</div><div class='add'>+	[</div><div class='add'>+	    with_dln_a_out=no])], [with_dln_a_out=no])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,</div><div class='add'>+[AC_TRY_LINK([],[], [</div><div class='add'>+AS_CASE(["`head -1 conftest$EXEEXT | tr -dc '\177ELF' | tr '\177' .`"],</div><div class='add'>+[.ELF*], [rb_cv_binary_elf=yes], [rb_cv_binary_elf=no])],</div><div class='add'>+rb_cv_binary_elf=no)])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='add'>+  AC_DEFINE(USE_ELF)</div><div class='add'>+  AS_IF([test "$with_dln_a_out" = yes], [</div><div class='add'>+    AC_MSG_ERROR(dln_a_out does not work with ELF)</div><div class='add'>+  ])</div><div class='add'>+  AC_CHECK_HEADERS([elf.h elf_abi.h])</div><div class='add'>+  AS_IF([test $ac_cv_header_elf_h = yes -o $ac_cv_header_elf_abi_h = yes], [</div><div class='add'>+    AC_LIBOBJ([addr2line])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[linux* | gnu* | k*bsd*-gnu | bsdi* | kopensolaris*-gnu], [</div><div class='add'>+    AS_IF([test "$rb_cv_binary_elf" = no], [</div><div class='add'>+	with_dln_a_out=yes</div><div class='add'>+    ], [</div><div class='add'>+	LDFLAGS="$LDFLAGS -rdynamic"</div><div class='add'>+    ])])</div><div class='add'>+LIBEXT=a</div><div class='add'>+</div><div class='add'>+AC_SUBST(DLDFLAGS)dnl</div><div class='add'>+AC_SUBST(ARCH_FLAG)dnl</div><div class='add'>+</div><div class='add'>+AC_SUBST(STATIC)dnl</div><div class='add'>+AC_SUBST(CCDLFLAGS)dnl</div><div class='add'>+AC_SUBST(LDSHARED)dnl</div><div class='add'>+AC_SUBST(LDSHAREDXX)dnl</div><div class='add'>+AC_SUBST(DLEXT)dnl</div><div class='add'>+AC_SUBST(DLEXT2)dnl</div><div class='add'>+AC_SUBST(LIBEXT)dnl</div><div class='add'>+AC_SUBST(ASMEXT, S)dnl</div><div class='add'>+</div><div class='add'>+STATIC=</div><div class='add'>+</div><div class='add'>+AS_IF([test "$with_dln_a_out" != yes], [</div><div class='add'>+  rb_cv_dlopen=unknown</div><div class='add'>+  AC_MSG_CHECKING(whether OS depend dynamic link works)</div><div class='add'>+  AS_IF([test "$GCC" = yes], [</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+    [darwin*], [</div><div class='add'>+      # The -fno-common is needed if we wish to embed the Ruby interpreter</div><div class='add'>+      # into a plugin module of some project (as opposed to embedding it</div><div class='add'>+      # within the project's application).  The -I/usr/local/include is</div><div class='add'>+      # needed because CPP as discovered by configure (cc -E -traditional)</div><div class='add'>+      # fails to consult /usr/local/include by default.  This causes</div><div class='add'>+      # mkmf.rb's have_header() to fail if the desired resource happens to be</div><div class='add'>+      # installed in the /usr/local tree.</div><div class='add'>+      RUBY_APPEND_OPTION(CCDLFLAGS, -fno-common)],</div><div class='add'>+    [bsdi*|cygwin*|mingw*|aix*|interix*], [ ],</div><div class='add'>+    [</div><div class='add'>+      RUBY_APPEND_OPTION(CCDLFLAGS, -fPIC)])</div><div class='add'>+  ], [</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+	[hpux*],          [CCDLFLAGS="$CCDLFLAGS +Z"],</div><div class='add'>+	[solaris*|irix*], [CCDLFLAGS="$CCDLFLAGS -KPIC"],</div><div class='add'>+	[sunos*],         [CCDLFLAGS="$CCDLFLAGS -PIC"],</div><div class='add'>+	[esix*|uxpds*],   [CCDLFLAGS="$CCDLFLAGS -KPIC"],</div><div class='add'>+	                  [: ${CCDLFLAGS=""}])</div><div class='add'>+  ])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  AC_ARG_ENABLE(rpath,</div><div class='add'>+       AS_HELP_STRING([--enable-rpath], [embed run path into extension libraries.</div><div class='add'>+       enabled by default on ELF platforms]),</div><div class='add'>+       [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])</div><div class='add'>+</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+	[hpux*], [	DLDFLAGS="$DLDFLAGS -E"</div><div class='add'>+			: ${LDSHARED='$(LD) -b'}</div><div class='add'>+			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='add'>+			: ${LIBPATHENV=SHLIB_PATH}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[solaris*], [	AS_IF([test "$GCC" = yes], [</div><div class='add'>+			    : ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			    AS_IF([test "$rb_cv_prog_gnu_ld" = yes], [</div><div class='add'>+				LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='add'>+			    ])</div><div class='add'>+			], [</div><div class='add'>+			    : ${LDSHARED='$(CC) -G'}</div><div class='add'>+			])</div><div class='add'>+			AS_IF([test "$ac_cv_sizeof_voidp" = 8], [</div><div class='add'>+			    : ${LIBPATHENV=LD_LIBRARY_PATH_64}</div><div class='add'>+			    : ${PRELOADENV=LD_PRELOAD_64}</div><div class='add'>+			], [</div><div class='add'>+			    : ${LIBPATHENV=LD_LIBRARY_PATH_32}</div><div class='add'>+			    : ${PRELOADENV=LD_PRELOAD_32}</div><div class='add'>+			])</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[sunos*], [	: ${LDSHARED='$(LD) -assert nodefinitions'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[irix*], [	: ${LDSHARED='$(LD) -shared'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[sysv4*], [	: ${LDSHARED='$(LD) -G'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[nto-qnx*], [	: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[esix*|uxpds*], [ : ${LDSHARED='$(LD) -G'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[osf*], [	: ${LDSHARED='$(LD) -shared -expect_unresolved "*"'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[bsdi3*], [	AS_CASE(["$CC"],</div><div class='add'>+			[*shlicc*], [	: ${LDSHARED='$(CC) -r'}</div><div class='add'>+					rb_cv_dlopen=yes])],</div><div class='add'>+	[linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu | haiku*], [</div><div class='add'>+			: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='add'>+			    LDFLAGS="$LDFLAGS -Wl,-export-dynamic"</div><div class='add'>+			])</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[interix*], [	: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='add'>+			LIBPATHFLAG=" -L%1\$-s"</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[freebsd*|dragonfly*], [</div><div class='add'>+			: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='add'>+			    LDFLAGS="$LDFLAGS -rdynamic"</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$@'</div><div class='add'>+			], [</div><div class='add'>+			  test "$GCC" = yes &amp;&amp; test "$rb_cv_prog_gnu_ld" = yes || LDSHARED='$(LD) -Bshareable'</div><div class='add'>+			])</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[openbsd*|mirbsd*], [	: ${LDSHARED='$(CC) -shared ${CCDLFLAGS}'}</div><div class='add'>+			AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='add'>+			    LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='add'>+			])</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[darwin*], [	: ${LDSHARED='$(CC) -dynamic -bundle'}</div><div class='add'>+			: ${LDFLAGS=""}</div><div class='add'>+			: ${LIBPATHENV=DYLD_LIBRARY_PATH}</div><div class='add'>+			: ${PRELOADENV=DYLD_INSERT_LIBRARIES}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+        [aix*], [	: ${LDSHARED='$(CC)'}</div><div class='add'>+			LDSHARED="$LDSHARED ${linker_flag}-G"</div><div class='add'>+			EXTDLDFLAGS='-e$(TARGET_ENTRY)'</div><div class='add'>+			XLDFLAGS="${linker_flag}"'-bE:$(ARCHFILE)'" ${linker_flag}-brtl"</div><div class='add'>+			XLDFLAGS="$XLDFLAGS ${linker_flag}-blibpath:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}"</div><div class='add'>+			: ${ARCHFILE="ruby.imp"}</div><div class='add'>+                        TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'</div><div class='add'>+                        TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'</div><div class='add'>+			: ${LIBPATHENV=LIBPATH}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[nto-qnx*], [	DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"</div><div class='add'>+			: ${LDSHARED='$(LD) -Bshareable -x'}</div><div class='add'>+			LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[cygwin*|mingw*], [</div><div class='add'>+			: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			XLDFLAGS="$XLDFLAGS -Wl,--stack,0x00200000,--enable-auto-import"</div><div class='add'>+			DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-image-base,--enable-auto-import"</div><div class='add'>+			: ${LIBPATHENV=PATH}</div><div class='add'>+			: ${PRELOADENV=""}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[hiuxmpp], [	: ${LDSHARED='$(LD) -r'}],</div><div class='add'>+	[atheos*], [	: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[	: ${LDSHARED='$(LD)'}])</div><div class='add'>+  AC_MSG_RESULT($rb_cv_dlopen)</div><div class='add'>+</div><div class='add'>+  AS_IF([test "$rb_cv_dlopen" = yes], [</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+      [darwin*], [</div><div class='add'>+	for flag in \</div><div class='add'>+	  "-undefined dynamic_lookup" \</div><div class='add'>+	  "-multiply_defined suppress" \</div><div class='add'>+	  ; do</div><div class='add'>+	  test "x${linker_flag}" = x || flag="${linker_flag}`echo ${flag} | tr ' ' ,`"</div><div class='add'>+	  RUBY_TRY_LDFLAGS([$flag], [], [flag=])</div><div class='add'>+	  AS_IF([test "x$flag" != x], [</div><div class='add'>+	    RUBY_APPEND_OPTIONS(DLDFLAGS, [$flag])</div><div class='add'>+	  ])</div><div class='add'>+	done</div><div class='add'>+      ])</div><div class='add'>+  ])</div><div class='add'>+</div><div class='add'>+  AS_IF([test "$enable_rpath:${RPATHFLAG}" = yes:], [</div><div class='add'>+      AS_IF([test "x$rpathflag" != x], [</div><div class='add'>+	  RPATHFLAG=" ${rpathflag}%1\$-s"</div><div class='add'>+      ])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test "${LDSHAREDXX}" = ""], [</div><div class='add'>+    AS_CASE(["${LDSHARED}"],</div><div class='add'>+	[*'$(CC)'*], [</div><div class='add'>+	    LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\$(CC)/$(CXX)/'`</div><div class='add'>+	    ],</div><div class='add'>+	[*'${CC}'*], [</div><div class='add'>+	    LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\${CC}/${CXX}/'`</div><div class='add'>+	    ],</div><div class='add'>+	[*$CC*], [</div><div class='add'>+	    LDSHAREDXX=`echo "${LDSHARED}" | sed "s|$CC|$CXX|"`</div><div class='add'>+	    ],</div><div class='add'>+	[ld" "*], [</div><div class='add'>+	    ])</div><div class='add'>+])</div><div class='add'>+AS_CASE([${RPATHFLAG}],[*'%1$'*],[: ${LIBPATHFLAG=' -L%1$-s'}],[: ${LIBPATHFLAG=' -L%s'}])</div><div class='add'>+</div><div class='add'>+AC_SUBST(LINK_SO)</div><div class='add'>+AC_SUBST(LIBPATHFLAG)</div><div class='add'>+AC_SUBST(RPATHFLAG)</div><div class='add'>+AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")</div><div class='add'>+AC_SUBST(PRELOADENV, "${PRELOADENV-LD_PRELOAD}")</div><div class='add'>+AC_SUBST(TRY_LINK)</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$OPT_DIR" != x], [</div><div class='add'>+    pat=`echo "${LDFLAGS_OPTDIR}" | sed ['s/[][\\.*|]/\\\\&amp;/']`</div><div class='add'>+    LDFLAGS=`echo "${LDFLAGS}" | sed "s| ${pat}||"`</div><div class='add'>+    val=`IFS="$PATH_SEPARATOR"</div><div class='add'>+        for dir in $OPT_DIR; do</div><div class='add'>+            echo x ${LIBPATHFLAG} ${RPATHFLAG} |</div><div class='add'>+            sed "s/^x *//;s${IFS}"'%1\\$-s'"${IFS}${dir}/lib${IFS}g;s${IFS}%s${IFS}${dir}/lib${IFS}g"</div><div class='add'>+        done | tr '\012' ' ' | sed 's/ *$//'`</div><div class='add'>+    AS_IF([test x"$val" != x], [</div><div class='add'>+	test x"${LDFLAGS}" = x || LDFLAGS="$LDFLAGS "</div><div class='add'>+	LDFLAGS="$LDFLAGS$val"</div><div class='add'>+	test x"${DLDFLAGS}" = x || DLDFLAGS="$DLDFLAGS "</div><div class='add'>+	DLDFLAGS="$DLDFLAGS$val"</div><div class='add'>+    ])</div><div class='add'>+    LDFLAGS_OPTDIR="$val"</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[freebsd*], [</div><div class='add'>+    AC_CHECK_LIB([procstat], [procstat_open_sysctl])</div><div class='add'>+    AS_IF([test "x$ac_cv_lib_procstat_procstat_open_sysctl" = xyes], [</div><div class='add'>+	AC_CHECK_FUNCS(procstat_getvmmap)</div><div class='add'>+    ])</div><div class='add'>+    ])</div><div class='add'>+AS_CASE(["$target_cpu-$target_os"],</div><div class='add'>+[*-darwin*], [</div><div class='add'>+    AC_CHECK_HEADERS([execinfo.h])</div><div class='add'>+    AS_IF([test "x$ac_cv_header_execinfo_h" = xyes], [</div><div class='add'>+	AC_CHECK_LIB([execinfo], [backtrace])</div><div class='add'>+	AC_CHECK_HEADERS([libunwind.h])</div><div class='add'>+    ])],</div><div class='add'>+[*-freebsd*|x86_64-netbsd*], [</div><div class='add'>+    AC_CHECK_HEADERS([execinfo.h])</div><div class='add'>+    AS_IF([test "x$ac_cv_header_execinfo_h" = xyes], [</div><div class='add'>+	AC_CHECK_LIB([execinfo], [backtrace])</div><div class='add'>+	AC_CHECK_LIB([unwind], [unw_backtrace])</div><div class='add'>+    ])])</div><div class='add'>+AC_CHECK_FUNCS(backtrace)</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$ac_cv_func_backtrace" = xyes], [</div><div class='add'>+  AC_CACHE_CHECK(for broken backtrace, rb_cv_broken_backtrace,</div><div class='add'>+    [AC_TRY_RUN([</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+#include &lt;signal.h&gt;</div><div class='add'>+#include &lt;execinfo.h&gt;</div><div class='add'>+</div><div class='add'>+#define TRACE_SIZE 256</div><div class='add'>+</div><div class='add'>+void sigsegv(int signum, siginfo_t *info, void *ctx){</div><div class='add'>+    void *trace[TRACE_SIZE];</div><div class='add'>+    int n = backtrace(trace, TRACE_SIZE);</div><div class='add'>+    if (n &gt; 0) {</div><div class='add'>+	/*fprintf(stdout, "backtrace:%d\n",n);*/</div><div class='add'>+    } else {</div><div class='add'>+	_exit(EXIT_FAILURE);</div><div class='add'>+    }</div><div class='add'>+    _exit(EXIT_SUCCESS);</div><div class='add'>+}</div><div class='add'>+int</div><div class='add'>+main(void)</div><div class='add'>+{</div><div class='add'>+    volatile int *a = NULL;</div><div class='add'>+    stack_t ss;</div><div class='add'>+    ss.ss_sp = malloc(SIGSTKSZ);</div><div class='add'>+    if (ss.ss_sp == NULL) {</div><div class='add'>+	fprintf(stderr, "cannot allocate memory for sigaltstack\n");</div><div class='add'>+	return EXIT_FAILURE;</div><div class='add'>+    }</div><div class='add'>+    ss.ss_size = SIGSTKSZ;</div><div class='add'>+    ss.ss_flags = 0;</div><div class='add'>+    if (sigaltstack(&amp;ss, NULL) == -1) {</div><div class='add'>+	fprintf(stderr, "sigaltstack failed\n");</div><div class='add'>+	return EXIT_FAILURE;</div><div class='add'>+    }</div><div class='add'>+    struct sigaction sa;</div><div class='add'>+    memset(&amp;sa, 0, sizeof(struct sigaction));</div><div class='add'>+    sigemptyset(&amp;sa.sa_mask);</div><div class='add'>+    sa.sa_sigaction = sigsegv;</div><div class='add'>+    sa.sa_flags |= SA_SIGINFO;</div><div class='add'>+    sa.sa_flags |= SA_ONSTACK;</div><div class='add'>+    sigaction(SIGSEGV, &amp;sa, NULL);</div><div class='add'>+    a[0] = 1;</div><div class='add'>+    return EXIT_SUCCESS;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+	rb_cv_broken_backtrace=no,</div><div class='add'>+	rb_cv_broken_backtrace=yes,</div><div class='add'>+	rb_cv_broken_backtrace=no)])</div><div class='add'>+  AS_IF([test "$rb_cv_broken_backtrace" = yes], [</div><div class='add'>+    AC_DEFINE(BROKEN_BACKTRACE, 1)</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(valgrind,</div><div class='add'>+        AS_HELP_STRING([--without-valgrind],[disable valgrind memcheck support]),</div><div class='add'>+        [], with_valgrind=yes)</div><div class='add'>+AS_IF([test x$with_valgrind != xno],</div><div class='add'>+        [AC_CHECK_HEADERS(valgrind/memcheck.h)])</div><div class='add'>+</div><div class='add'>+dln_a_out_works=no</div><div class='add'>+AS_IF([test "$ac_cv_header_a_out_h" = yes], [</div><div class='add'>+  AS_IF([test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown], [</div><div class='add'>+    cat confdefs.h &gt; config.h</div><div class='add'>+    AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,</div><div class='add'>+    [AC_TRY_COMPILE([</div><div class='add'>+#define USE_DLN_A_OUT</div><div class='add'>+#include "dln.c"</div><div class='add'>+],</div><div class='add'>+	[],</div><div class='add'>+	rb_cv_dln_a_out=yes,</div><div class='add'>+	rb_cv_dln_a_out=no)])</div><div class='add'>+    AS_IF([test "$rb_cv_dln_a_out" = yes], [</div><div class='add'>+      dln_a_out_works=yes</div><div class='add'>+      AC_DEFINE(USE_DLN_A_OUT)</div><div class='add'>+    ])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$dln_a_out_works" = yes], [</div><div class='add'>+  AS_IF([test "$GCC" = yes], [</div><div class='add'>+    STATIC=-static</div><div class='add'>+  ], [</div><div class='add'>+    STATIC=-Bstatic</div><div class='add'>+  ])</div><div class='add'>+  DLEXT=so</div><div class='add'>+  CCDLFLAGS=</div><div class='add'>+], [</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+    [hpux*], [</div><div class='add'>+	DLEXT=sl],</div><div class='add'>+    [darwin*], [</div><div class='add'>+	SOEXT=dylib</div><div class='add'>+	DLEXT=bundle],</div><div class='add'>+    [cygwin*|mingw*|*djgpp*], [</div><div class='add'>+	LOAD_RELATIVE=1</div><div class='add'>+	SOEXT=dll</div><div class='add'>+	DLEXT=so],</div><div class='add'>+    [</div><div class='add'>+	DLEXT=so])</div><div class='add'>+])</div><div class='add'>+: ${SOEXT="${DLEXT}"}</div><div class='add'>+AC_SUBST(SOEXT)</div><div class='add'>+AS_IF([test "$rb_cv_dlopen:$load_relative" = yes:yes], [</div><div class='add'>+    AS_IF([test "$ac_cv_func_dladdr" = yes], [</div><div class='add'>+	LOAD_RELATIVE=1</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test x"$LOAD_RELATIVE" = x1], [</div><div class='add'>+    load_relative=yes</div><div class='add'>+], [</div><div class='add'>+    unset load_relative</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+len=2 # .rb</div><div class='add'>+n=`expr "$DLEXT"  : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='add'>+n=`expr "$DLEXT2" : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='add'>+AC_DEFINE_UNQUOTED(DLEXT_MAXLEN, `expr $len + 1`)</div><div class='add'>+test ".$DLEXT"  = "." || AC_DEFINE_UNQUOTED(DLEXT,  ".$DLEXT")</div><div class='add'>+test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")</div><div class='add'>+AC_SUBST(DLEXT)</div><div class='add'>+</div><div class='add'>+AS_IF([test "$with_dln_a_out" = yes], [</div><div class='add'>+  STRIP=true</div><div class='add'>+], [</div><div class='add'>+  AC_CHECK_TOOL(STRIP, strip, :)dnl</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu], [</div><div class='add'>+	STRIP="$STRIP -S -x"],</div><div class='add'>+  [darwin*], [</div><div class='add'>+	STRIP="$STRIP -A -n"])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(ext,</div><div class='add'>+            AC_HELP_STRING([--with-ext=EXTS],</div><div class='add'>+                           [pass to --with-ext option of extmk.rb]))</div><div class='add'>+AC_ARG_WITH(out-ext,</div><div class='add'>+            AC_HELP_STRING([--with-out-ext=EXTS],</div><div class='add'>+                           [pass to --without-ext option of extmk.rb]))</div><div class='add'>+EXTSTATIC=</div><div class='add'>+AC_SUBST(EXTSTATIC)dnl</div><div class='add'>+AC_ARG_WITH(static-linked-ext,</div><div class='add'>+	    AS_HELP_STRING([--with-static-linked-ext], [link external modules statically]),</div><div class='add'>+            [AS_CASE([$withval],[yes],[STATIC=;EXTSTATIC=static],[no],[],[EXTSTATIC="$withval"])])</div><div class='add'>+AS_CASE([",$EXTSTATIC,"], [,static,|*,enc,*], [</div><div class='add'>+  ENCOBJS='enc/encinit.$(OBJEXT) enc/libenc.$(LIBEXT) enc/libtrans.$(LIBEXT)'</div><div class='add'>+  EXTOBJS='ext/extinit.$(OBJEXT)'</div><div class='add'>+  AC_DEFINE_UNQUOTED(EXTSTATIC, 1)</div><div class='add'>+  AC_SUBST(ENCSTATIC, static)</div><div class='add'>+], [</div><div class='add'>+  ENCOBJS='dmyenc.$(OBJEXT)'</div><div class='add'>+  EXTOBJS='dmyext.$(OBJEXT)'</div><div class='add'>+])</div><div class='add'>+AC_SUBST(ENCOBJS)</div><div class='add'>+AC_SUBST(EXTOBJS)</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(setup,</div><div class='add'>+	    AS_HELP_STRING([--with-setup=SETUP], [use extension libraries setup]),</div><div class='add'>+	    [setup=$withval])</div><div class='add'>+AS_IF([test -n "$setup"], [</div><div class='add'>+    AS_IF([! test -f "ext/$setup" -o -f "$srcdir/ext/$setup"], [</div><div class='add'>+	AC_MSG_ERROR(Setup file $setup not found under ext or $srcdir/ext)</div><div class='add'>+    ])</div><div class='add'>+], [test -f "$srcdir/ext/Setup.$target_os"], [</div><div class='add'>+    setup="Setup.$target_os"</div><div class='add'>+], [</div><div class='add'>+    setup=</div><div class='add'>+    for file in "$srcdir"/ext/Setup.*; do</div><div class='add'>+	AS_CASE(["$file"], [*~|*.bak|*.orig|*.rej|*.tmp], [continue])</div><div class='add'>+	setup=`basename "$file"`</div><div class='add'>+	AS_CASE(["$target_os"], [`expr "$setup" : 'Setup.\(.*\)'`*], [break])</div><div class='add'>+	platform=`sed '/^option  *platform  */!d;s///;s/|/*|/g;q' "$file"`</div><div class='add'>+	AS_IF([test "x$platform" != x], [</div><div class='add'>+	    eval "AS_CASE([\"\$target_os\"], [$platform*], [break])"</div><div class='add'>+	])</div><div class='add'>+	setup=</div><div class='add'>+    done</div><div class='add'>+    : ${setup:=Setup}</div><div class='add'>+])</div><div class='add'>+AC_SUBST(setup)</div><div class='add'>+</div><div class='add'>+rubylibprefix='${libdir}/${RUBY_BASE_NAME}'</div><div class='add'>+AC_ARG_WITH(rubylibprefix,</div><div class='add'>+	    AS_HELP_STRING([--with-rubylibprefix=DIR], [prefix for ruby libraries [[LIBDIR/RUBY_BASE_NAME]]]),</div><div class='add'>+	    [AS_IF([test "x$withval" = xno], [</div><div class='add'>+		AC_MSG_ERROR([No ruby, No libprefix])</div><div class='add'>+	    ])</div><div class='add'>+	    rubylibprefix="$withval"])</div><div class='add'>+AC_SUBST(rubylibprefix)</div><div class='add'>+</div><div class='add'>+AS_IF([test x"${exec_prefix}" != xNONE], [</div><div class='add'>+    RUBY_EXEC_PREFIX="$exec_prefix"</div><div class='add'>+], [test x"$prefix" != xNONE], [</div><div class='add'>+    RUBY_EXEC_PREFIX="$prefix"</div><div class='add'>+], [</div><div class='add'>+    RUBY_EXEC_PREFIX=$ac_default_prefix</div><div class='add'>+])</div><div class='add'>+pat=`echo "${RUBY_EXEC_PREFIX}" | tr -c '\012' .`'\(.*\)'</div><div class='add'>+for var in bindir libdir rubylibprefix; do</div><div class='add'>+    eval val='"$'$var'"'</div><div class='add'>+    AS_CASE(["$val"], ["${RUBY_EXEC_PREFIX}"*], [val='${exec_prefix}'"`expr \"$val\" : \"$pat\"`"])</div><div class='add'>+    eval $var='"$val"'</div><div class='add'>+done</div><div class='add'>+</div><div class='add'>+BTESTRUBY='$(MINIRUBY)'</div><div class='add'>+AS_IF([test x"$cross_compiling" = xyes], [</div><div class='add'>+  test x"$MINIRUBY" = x &amp;&amp; MINIRUBY="${RUBY-$BASERUBY} -I`$CHDIR .; pwd` "-r'$(arch)-fake'</div><div class='add'>+  XRUBY_LIBDIR=`${RUBY-$BASERUBY} -rrbconfig -e ['puts RbConfig::CONFIG["libdir"]']`</div><div class='add'>+  XRUBY_RUBYLIBDIR=`${RUBY-$BASERUBY} -rrbconfig -e ['puts RbConfig::CONFIG["rubylibdir"]']`</div><div class='add'>+  XRUBY_RUBYHDRDIR=`${RUBY-$BASERUBY} -rrbconfig -e ['puts RbConfig::CONFIG["rubyhdrdir"]']`</div><div class='add'>+  AC_SUBST(XRUBY_LIBDIR)</div><div class='add'>+  AC_SUBST(XRUBY_RUBYLIBDIR)</div><div class='add'>+  AC_SUBST(XRUBY_RUBYHDRDIR)</div><div class='add'>+  PREP='$(arch)-fake.rb'</div><div class='add'>+  RUNRUBY_COMMAND='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'</div><div class='add'>+  RUNRUBY='$(RUNRUBY_COMMAND)'</div><div class='add'>+  XRUBY='$(MINIRUBY)'</div><div class='add'>+  BOOTSTRAPRUBY='$(BASERUBY)'</div><div class='add'>+  TEST_RUNNABLE=no</div><div class='add'>+  CROSS_COMPILING=yes</div><div class='add'>+], [</div><div class='add'>+  MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib -I.'</div><div class='add'>+  MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common'</div><div class='add'>+  PREP='miniruby$(EXEEXT)'</div><div class='add'>+  RUNRUBY_COMMAND='$(MINIRUBY) $(srcdir)/tool/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'</div><div class='add'>+  RUNRUBY='$(RUNRUBY_COMMAND) --'</div><div class='add'>+  XRUBY='$(RUNRUBY)'</div><div class='add'>+  BOOTSTRAPRUBY='$(MINIRUBY)'</div><div class='add'>+  TEST_RUNNABLE=yes</div><div class='add'>+  CROSS_COMPILING=no</div><div class='add'>+])</div><div class='add'>+AC_SUBST(TEST_RUNNABLE)</div><div class='add'>+AC_SUBST(CROSS_COMPILING)</div><div class='add'>+AC_SUBST(MINIRUBY)</div><div class='add'>+AC_SUBST(BTESTRUBY)</div><div class='add'>+AC_SUBST(PREP)</div><div class='add'>+AC_SUBST(RUNRUBY_COMMAND)</div><div class='add'>+AC_SUBST(RUNRUBY)</div><div class='add'>+AC_SUBST(XRUBY)</div><div class='add'>+AC_SUBST(BOOTSTRAPRUBY)</div><div class='add'>+AC_SUBST(EXTOUT, [${EXTOUT=.ext}])</div><div class='add'>+</div><div class='add'>+])RSTMAKEFILE=""</div><div class='add'>+LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'</div><div class='add'>+LIBRUBY='$(LIBRUBY_A)'</div><div class='add'>+LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'</div><div class='add'>+LIBRUBYARG='$(LIBRUBYARG_STATIC)'</div><div class='add'>+SOLIBS=</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [cygwin*|mingw*|haiku*|darwin*], [</div><div class='add'>+    : ${DLDLIBS=""}</div><div class='add'>+    ],</div><div class='add'>+  [</div><div class='add'>+    DLDLIBS="$DLDLIBS -lc"</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(multiarch,</div><div class='add'>+	      AS_HELP_STRING([--enable-multiarch], [enable multiarch compatible directories]),</div><div class='add'>+	      [multiarch=], [unset multiarch])</div><div class='add'>+AS_IF([test ${multiarch+set}], [</div><div class='add'>+   AC_DEFINE(ENABLE_MULTIARCH)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+archlibdir='${libdir}/${arch}'</div><div class='add'>+sitearchlibdir='${libdir}/${sitearch}'</div><div class='add'>+archincludedir='${includedir}/${arch}'</div><div class='add'>+sitearchincludedir='${includedir}/${sitearch}'</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(soname,</div><div class='add'>+	AS_HELP_STRING([--with-soname=SONAME], [base name of shared library]),</div><div class='add'>+	[RUBY_SO_NAME=$withval],</div><div class='add'>+	[</div><div class='add'>+	    AS_CASE(["$target_os"],</div><div class='add'>+	    [darwin*], [</div><div class='add'>+	        RUBY_SO_NAME='$(RUBY_BASE_NAME).$(RUBY_PROGRAM_VERSION)'</div><div class='add'>+	    ],</div><div class='add'>+	    [cygwin*], [</div><div class='add'>+	        RUBY_SO_NAME='$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0'</div><div class='add'>+	    ],</div><div class='add'>+	    [mingw*], [</div><div class='add'>+		RUBY_SO_NAME="${rb_cv_msvcrt}"'-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0'</div><div class='add'>+		AS_IF([test x"${target_cpu}" != xi386], [</div><div class='add'>+		    RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}"</div><div class='add'>+		])</div><div class='add'>+	    ],</div><div class='add'>+	    [RUBY_SO_NAME='$(RUBY_BASE_NAME)'])</div><div class='add'>+	])</div><div class='add'>+</div><div class='add'>+LIBRUBY_LDSHARED=$LDSHARED</div><div class='add'>+LIBRUBY_DLDFLAGS=$DLDFLAGS</div><div class='add'>+LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_PROGRAM_VERSION)'</div><div class='add'>+LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_API_VERSION)'</div><div class='add'>+LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+ENABLE_SHARED=no</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(shared,</div><div class='add'>+       AS_HELP_STRING([--enable-shared], [build a shared library for Ruby]),</div><div class='add'>+       [enable_shared=$enableval])</div><div class='add'>+libprefix=${multiarch+'$(archlibdir)'}${multiarch-'$(libdir)'}</div><div class='add'>+LIBRUBY_RELATIVE=${load_relative-no}</div><div class='add'>+AS_CASE("$enable_shared", [yes], [</div><div class='add'>+  LIBRUBY='$(LIBRUBY_SO)'</div><div class='add'>+  LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'</div><div class='add'>+  LIBRUBYARG='$(LIBRUBYARG_SHARED)'</div><div class='add'>+  LIBRUBY_RELATIVE=no</div><div class='add'>+  test -z "$CCDLFLAGS" || CFLAGS="$CFLAGS $CCDLFLAGS"</div><div class='add'>+  ENABLE_SHARED=yes</div><div class='add'>+  AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='add'>+    SOLIBS='$(LIBS)'</div><div class='add'>+  ])</div><div class='add'>+</div><div class='add'>+  # libdir can be overridden in config.site file (on OpenSUSE at least).</div><div class='add'>+  libdir_basename=lib</div><div class='add'>+  AS_IF([test "$bindir" = '${exec_prefix}/bin'], [</div><div class='add'>+    AS_CASE(["$libdir"], ['${exec_prefix}/'*], [libdir_basename=`basename "$libdir"`])</div><div class='add'>+  ])</div><div class='add'>+  AC_DEFINE_UNQUOTED(LIBDIR_BASENAME, ["${libdir_basename}"])</div><div class='add'>+  libdir_basename="${libdir_basename}"${multiarch+'/${arch}'}</div><div class='add'>+</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+    [freebsd*|dragonfly*], [],</div><div class='add'>+    [</div><div class='add'>+     AS_IF([test "$GCC" = yes], [</div><div class='add'>+       RUBY_TRY_LDFLAGS([${linker_flag}--no-undefined], [no_undefined=yes], [no_undefined=no])</div><div class='add'>+       AS_IF([test "no_undefined" = yes], [</div><div class='add'>+	  RUBY_APPEND_OPTION(EXTLDFLAGS, [${linker_flag}--no-undefined])</div><div class='add'>+       ])</div><div class='add'>+     ])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+    [sunos4*], [</div><div class='add'>+	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	],</div><div class='add'>+    [linux* | gnu* | k*bsd*-gnu | atheos* | kopensolaris*-gnu | haiku*], [</div><div class='add'>+	RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,$(LIBRUBY_SONAME)' "$LDFLAGS_OPTDIR"])</div><div class='add'>+	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	AS_IF([test "$load_relative" = yes], [</div><div class='add'>+	    libprefix="'\$\${ORIGIN}/../${libdir_basename}'"</div><div class='add'>+	    LIBRUBY_RPATHFLAGS="-Wl,-rpath,${libprefix}"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='add'>+	])</div><div class='add'>+	],</div><div class='add'>+    [freebsd*|dragonfly*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)'</div><div class='add'>+	LIBRUBY_SONAME='$(LIBRUBY_SO)'</div><div class='add'>+	AS_IF([test "$rb_cv_binary_elf" != "yes" ], [</div><div class='add'>+	    LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"</div><div class='add'>+	    LIBRUBY_ALIASES=''</div><div class='add'>+	])</div><div class='add'>+	],</div><div class='add'>+    [netbsd*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)'</div><div class='add'>+	LIBRUBY_SO="${LIBRUBY_SONAME}"'.$(TEENY)'</div><div class='add'>+	RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,$(LIBRUBY_SONAME)' "$LDFLAGS_OPTDIR"])</div><div class='add'>+	AS_IF([test "$rb_cv_binary_elf" = yes], [ # ELF platforms</div><div class='add'>+	   LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	], [	# a.out platforms</div><div class='add'>+	   LIBRUBY_ALIASES=""</div><div class='add'>+	])</div><div class='add'>+	],</div><div class='add'>+    [openbsd*|mirbsd*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`</div><div class='add'>+	],</div><div class='add'>+    [solaris*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)'</div><div class='add'>+	LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_PROGRAM_VERSION)'</div><div class='add'>+	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	AS_IF([test "$GCC" = yes], [</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'</div><div class='add'>+	], [</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$DLDFLAGS "'-h $(@F)'</div><div class='add'>+	])</div><div class='add'>+	XLDFLAGS="$XLDFLAGS "'-R${libdir}'</div><div class='add'>+	],</div><div class='add'>+    [hpux*], [</div><div class='add'>+	XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'</div><div class='add'>+	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	],</div><div class='add'>+    [aix*], [</div><div class='add'>+	RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-bnoentry" "$XLDFLAGS" "$LDFLAGS_OPTDIR"])</div><div class='add'>+	LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'</div><div class='add'>+	SOLIBS='-lm -lc'</div><div class='add'>+	],</div><div class='add'>+    [darwin*], [</div><div class='add'>+	LIBRUBY_LDSHARED='$(CC) -dynamiclib'</div><div class='add'>+	AS_IF([test "$load_relative" = yes], [</div><div class='add'>+	    libprefix="@executable_path/../${libdir_basename}"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='add'>+	])</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS -install_name ${libprefix}"'/$(LIBRUBY_SONAME)'</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-compatibility_version $(RUBY_API_VERSION)'</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-current_version $(RUBY_PROGRAM_VERSION)'</div><div class='add'>+	AS_IF([test "$visibility_option" = ld], [</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_*'</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_ruby_static_id_*'</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,*_threadptr_*'</div><div class='add'>+	])</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "' $(XLDFLAGS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	LIBRUBY_SONAME='lib$(RUBY_BASE_NAME).$(RUBY_API_VERSION).$(SOEXT)'</div><div class='add'>+	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_INSTALL_NAME).$(SOEXT)'</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	],</div><div class='add'>+    [interix*], [</div><div class='add'>+	LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'</div><div class='add'>+	],</div><div class='add'>+    [mingw*|cygwin*|mswin*], [</div><div class='add'>+	LIBRUBY_RELATIVE=yes</div><div class='add'>+	])</div><div class='add'>+], [</div><div class='add'>+  LIBRUBYARG_SHARED=</div><div class='add'>+</div><div class='add'>+  # enable PIE if possible</div><div class='add'>+  AC_ARG_ENABLE(pie,</div><div class='add'>+          AS_HELP_STRING([--disable-pie], [disable PIE feature]),</div><div class='add'>+          [pie=$enableval], [pie=])</div><div class='add'>+  AS_IF([test "$GCC" = yes -a -z "$EXTSTATIC" -a "x$pie" != xno], [</div><div class='add'>+    RUBY_TRY_CFLAGS(-fPIE, [pie=yes], [pie=no])</div><div class='add'>+    AS_IF([test "$pie" = yes], [</div><div class='add'>+      # Use -fPIE when testing -pie.  RUBY_TRY_LDFLAGS sets</div><div class='add'>+      # $save_CFLAGS internally, so set other name here.</div><div class='add'>+      save_CFLAGS_before_pie="$CFLAGS"</div><div class='add'>+      CFLAGS="$CFLAGS -fPIE"</div><div class='add'>+</div><div class='add'>+      # gcc need -pie but clang need -Wl,-pie.</div><div class='add'>+      for pie in -pie -Wl,-pie; do</div><div class='add'>+	RUBY_TRY_LDFLAGS([$pie], [], [pie=])</div><div class='add'>+	AS_IF([test "x$pie" != x], [</div><div class='add'>+	  RUBY_APPEND_OPTION(XCFLAGS, -fPIE)</div><div class='add'>+	  RUBY_APPEND_OPTION(XLDFLAGS, $pie)</div><div class='add'>+	  break</div><div class='add'>+	])</div><div class='add'>+      done</div><div class='add'>+      CFLAGS="$save_CFLAGS_before_pie"</div><div class='add'>+    ])</div><div class='add'>+  ])</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$enable_rpath" = yes], [</div><div class='add'>+    test -z "$LIBRUBY_RPATHFLAGS" || LIBRUBY_RPATHFLAGS="$LIBRUBY_RPATHFLAGS "</div><div class='add'>+    rpathflag="${RPATHFLAG}"</div><div class='add'>+    AS_CASE(["${cross_compiling}${load_relative}"], [*yes*], [], [rpathflag="$RPATHFLAG$LIBPATHFLAG"])</div><div class='add'>+    rpathflag=`IFS="$PATH_SEPARATOR"</div><div class='add'>+        echo x "$rpathflag" |</div><div class='add'>+        sed "s/^x *//;s${IFS}"'%1\\$-s'"${IFS}${libprefix}${IFS}g;s${IFS}%s${IFS}${libprefix}${IFS}g"</div><div class='add'>+    `</div><div class='add'>+    LIBRUBY_RPATHFLAGS="$LIBRUBY_RPATHFLAGS${rpathflag}"</div><div class='add'>+    LIBRUBYARG_SHARED="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_SHARED"</div><div class='add'>+    LIBRUBYARG_STATIC="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_STATIC"</div><div class='add'>+])</div><div class='add'>+AC_SUBST(LIBRUBY_RELATIVE)</div><div class='add'>+</div><div class='add'>+LDFLAGS="-L. $LDFLAGS"</div><div class='add'>+AC_SUBST(ARCHFILE)</div><div class='add'>+</div><div class='add'>+AS_IF([test "$EXEEXT" = .exe], [</div><div class='add'>+    EXECUTABLE_EXTS='".exe",".com",".cmd",".bat"'</div><div class='add'>+    AC_DEFINE_UNQUOTED(EXECUTABLE_EXTS, $EXECUTABLE_EXTS)</div><div class='add'>+    EXECUTABLE_EXTS=`echo $EXECUTABLE_EXTS | tr -d '"' | tr , ' '`</div><div class='add'>+    AC_SUBST(EXECUTABLE_EXTS)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AS_CASE("$cross_compiling:${LIBPATHENV}", [yes:* | no:], [], [</div><div class='add'>+    AC_MSG_CHECKING(whether wrapper for $LIBPATHENV is needed)</div><div class='add'>+    AS_IF([env ${LIBPATHENV}=/lib /bin/sh -c ': ${'${LIBPATHENV}'?}' 2&gt;/dev/null],</div><div class='add'>+	[AC_MSG_RESULT(no)],</div><div class='add'>+	[PREP="$PREP"' exe/$(PROGRAM)'</div><div class='add'>+	AC_MSG_RESULT(yes)]</div><div class='add'>+    )</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(dtrace,</div><div class='add'>+        AS_HELP_STRING([--enable-dtrace],</div><div class='add'>+        [enable DTrace for tracing inside ruby. enabled by default on systems having dtrace]),</div><div class='add'>+        [enable_dtrace=$enableval], [enable_dtrace=auto])</div><div class='add'>+</div><div class='add'>+LIBRUBY_A_OBJS='$(OBJS)'</div><div class='add'>+DTRACE_REBUILD=</div><div class='add'>+AS_CASE(["${enable_dtrace}"],</div><div class='add'>+[yes|auto], [</div><div class='add'>+    RUBY_DTRACE_AVAILABLE()</div><div class='add'>+], [</div><div class='add'>+    rb_cv_dtrace_available=no</div><div class='add'>+])</div><div class='add'>+AS_IF([test "${enable_dtrace}" = yes], [dnl</div><div class='add'>+    AS_IF([test -z "$DTRACE"], [dnl</div><div class='add'>+	AC_MSG_ERROR([dtrace(1) is missing])</div><div class='add'>+    ], [test "$cross_compiling" = yes], [dnl</div><div class='add'>+	AC_MSG_ERROR([--enable-dtrace, however, cross compiling])</div><div class='add'>+    ], [test "${rb_cv_dtrace_available}" = "no"], [dnl</div><div class='add'>+       AC_MSG_ERROR([--enable-dtrace, however, USDT is not available])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+AS_CASE([$rb_cv_dtrace_available],</div><div class='add'>+[yes*], [dnl</div><div class='add'>+    RUBY_DTRACE_POSTPROCESS()</div><div class='add'>+    AS_IF([test "$rb_cv_prog_dtrace_g" != no], [dnl</div><div class='add'>+	DTRACE_OBJ='probes.$(OBJEXT)'</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "$rb_cv_prog_dtrace_g" = rebuild], [dnl</div><div class='add'>+	DTRACE_REBUILD=yes</div><div class='add'>+	LIBRUBY_A_OBJS='$(DTRACE_GLOMMED_OBJ)'</div><div class='add'>+    ])</div><div class='add'>+    AS_CASE("${target_os}", [freebsd*], [dnl</div><div class='add'>+        # FreeBSD's dtrace requires libelf</div><div class='add'>+        LIBS="-lelf $LIBS"</div><div class='add'>+    ])</div><div class='add'>+    DTRACE_EXT=d</div><div class='add'>+], [dnl</div><div class='add'>+    enable_dtrace=no</div><div class='add'>+    DTRACE_EXT=dmyh</div><div class='add'>+])</div><div class='add'>+AC_SUBST(DTRACE_EXT)</div><div class='add'>+AC_SUBST(DTRACE_OBJ)</div><div class='add'>+AC_SUBST(DTRACE_REBUILD)</div><div class='add'>+AC_SUBST(DTRACE_OPT)</div><div class='add'>+AC_SUBST(LIBRUBY_A_OBJS)</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(gcov,</div><div class='add'>+       AS_HELP_STRING([--enable-gcov], [enable coverage measurement by gcov]),</div><div class='add'>+       [gcov=yes])</div><div class='add'>+AS_IF([test x"$gcov" = xyes], [</div><div class='add'>+    CFLAGS="$CFLAGS -coverage"</div><div class='add'>+    LDFLAGS="$LDFLAGS -coverage"</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+RUBY_SETJMP_TYPE</div><div class='add'>+}</div><div class='add'>+{ # build section</div><div class='add'>+</div><div class='add'>+dnl build rdoc index if requested</div><div class='add'>+RDOCTARGET=""</div><div class='add'>+CAPITARGET=""</div><div class='add'>+AC_ARG_ENABLE(install-doc,</div><div class='add'>+       AS_HELP_STRING([--disable-install-doc], [do not install either rdoc indexes or C API documents during install]),</div><div class='add'>+       [install_doc=$enableval], [install_doc=yes])</div><div class='add'>+AC_ARG_ENABLE(install-rdoc,</div><div class='add'>+      AS_HELP_STRING([--disable-install-rdoc], [do not install rdoc indexes during install]),</div><div class='add'>+      [install_rdoc=$enableval], [install_rdoc=yes])</div><div class='add'>+AC_ARG_ENABLE(install-capi,</div><div class='add'>+      AS_HELP_STRING([--disable-install-capi], [do not install C API documents during install]),</div><div class='add'>+      [install_capi=$enableval], [install_capi=no])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$install_doc" != no], [</div><div class='add'>+    AS_IF([test "$install_rdoc" != no], [</div><div class='add'>+	RDOCTARGET="rdoc"</div><div class='add'>+    ], [</div><div class='add'>+	RDOCTARGET="nodoc"</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "$install_capi" != no -a -n "$DOXYGEN"], [</div><div class='add'>+	CAPITARGET="capi"</div><div class='add'>+    ], [</div><div class='add'>+	CAPITARGET="nodoc"</div><div class='add'>+    ])</div><div class='add'>+], [</div><div class='add'>+    RDOCTARGET="nodoc"</div><div class='add'>+    CAPITARGET="nodoc"</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_SUBST(RDOCTARGET)</div><div class='add'>+AC_SUBST(CAPITARGET)</div><div class='add'>+</div><div class='add'>+AS_CASE(["$RDOCTARGET:$CAPITARGET"],[nodoc:nodoc],[INSTALLDOC=nodoc],[INSTALLDOC=all])</div><div class='add'>+AC_SUBST(INSTALLDOC)</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(install-static-library,</div><div class='add'>+	AS_HELP_STRING([--disable-install-static-library], [do not install static ruby library]),</div><div class='add'>+	[INSTALL_STATIC_LIBRARY=$enableval],</div><div class='add'>+	AS_IF([test x"$enable_shared" = xyes],</div><div class='add'>+	    [INSTALL_STATIC_LIBRARY=no],</div><div class='add'>+	    [INSTALL_STATIC_LIBRARY=yes]))</div><div class='add'>+AC_SUBST(INSTALL_STATIC_LIBRARY)</div><div class='add'>+</div><div class='add'>+AS_IF([test "$rb_with_pthread" = "yes"], [</div><div class='add'>+    THREAD_MODEL=pthread</div><div class='add'>+])</div><div class='add'>+AC_CACHE_CHECK([for prefix of external symbols], rb_cv_symbol_prefix, [</div><div class='add'>+    AC_TRY_COMPILE([extern void conftest_external(void) {}], [], [</div><div class='add'>+	rb_cv_symbol_prefix=`$NM conftest.$ac_objext |</div><div class='add'>+			     sed -n ['/.*T[ 	]\([^ 	]*\)conftest_external.*/!d;s//\1/p;q']`</div><div class='add'>+	],</div><div class='add'>+	[rb_cv_symbol_prefix=''])</div><div class='add'>+    test -n "$rb_cv_symbol_prefix" || rb_cv_symbol_prefix=NONE</div><div class='add'>+])</div><div class='add'>+SYMBOL_PREFIX="$rb_cv_symbol_prefix"</div><div class='add'>+test "x$SYMBOL_PREFIX" = xNONE &amp;&amp; SYMBOL_PREFIX=''</div><div class='add'>+DLNOBJ=dln.o</div><div class='add'>+AC_ARG_ENABLE(dln,</div><div class='add'>+	      AC_HELP_STRING([--disable-dln], [disable dynamic link feature]),</div><div class='add'>+	      [test "$enableval" = yes || DLNOBJ=dmydln.o])</div><div class='add'>+AC_SUBST(DLNOBJ)</div><div class='add'>+MINIDLNOBJ=dmydln.o</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+    [linux*], [</div><div class='add'>+	],</div><div class='add'>+    [netbsd*], [</div><div class='add'>+	RUBY_APPEND_OPTION(CFLAGS, -pipe)</div><div class='add'>+	],</div><div class='add'>+    [darwin*], [</div><div class='add'>+	RUBY_APPEND_OPTION(CFLAGS, -pipe)</div><div class='add'>+	RUBY_APPEND_OPTION(XLDFLAGS, [-framework Foundation])</div><div class='add'>+	RUBY_APPEND_OPTION(LIBRUBYARG_STATIC, [-framework Foundation])</div><div class='add'>+	],</div><div class='add'>+    [osf*], [</div><div class='add'>+	AS_IF([test "$GCC" != "yes" ], [</div><div class='add'>+	  # compile something small: taint.c is fine for this.</div><div class='add'>+	  # the main point is the '-v' flag of 'cc'.</div><div class='add'>+	  AS_CASE(["`cc -v -I. -c main.c -o /tmp/main.o 2&gt;&amp;1`"],</div><div class='add'>+	  [*/gemc_cc*], [   # we have the new DEC GEM CC</div><div class='add'>+                        CFLAGS="$CFLAGS -oldc"</div><div class='add'>+                        ],</div><div class='add'>+          [            # we have the old MIPS CC</div><div class='add'>+                        ])</div><div class='add'>+	  # cleanup</div><div class='add'>+	  rm -f /tmp/main.o</div><div class='add'>+	  CFLAGS="$CFLAGS -std"</div><div class='add'>+	])</div><div class='add'>+	],</div><div class='add'>+    [cygwin*|mingw*], [</div><div class='add'>+	LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'</div><div class='add'>+	AS_CASE(["$target_os"],</div><div class='add'>+	[cygwin*], [</div><div class='add'>+	    AS_IF([test x"$enable_shared" = xyes], [</div><div class='add'>+		LIBRUBY_SO='cyg$(RUBY_SO_NAME)'.dll</div><div class='add'>+		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'</div><div class='add'>+	    ])</div><div class='add'>+	    ],</div><div class='add'>+	[mingw*], [</div><div class='add'>+	    AS_IF([test x"$enable_shared" = xyes], [</div><div class='add'>+		LIBRUBY_SO='$(RUBY_SO_NAME)'.dll</div><div class='add'>+		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'</div><div class='add'>+	    ])</div><div class='add'>+	    EXPORT_PREFIX=' '</div><div class='add'>+	    DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'</div><div class='add'>+	    AC_LIBOBJ([win32/win32])</div><div class='add'>+	    AC_LIBOBJ([win32/file])</div><div class='add'>+	    COMMON_LIBS=m</div><div class='add'>+#	    COMMON_MACROS="WIN32_LEAN_AND_MEAN="</div><div class='add'>+	    COMMON_HEADERS="winsock2.h windows.h"</div><div class='add'>+	    THREAD_MODEL=win32</div><div class='add'>+	    PLATFORM_DIR=win32</div><div class='add'>+	    ])</div><div class='add'>+	LIBRUBY_ALIASES=''</div><div class='add'>+	FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	AS_IF([test x"$enable_shared" = xyes], [</div><div class='add'>+	    LIBRUBY='lib$(RUBY_SO_NAME).dll.a'</div><div class='add'>+	], [</div><div class='add'>+	    LIBRUBY_SO=dummy</div><div class='add'>+	    LIBRUBY='lib$(RUBY_SO_NAME).a'</div><div class='add'>+	    LIBRUBYARG='-l$(RUBY_SO_NAME)'</div><div class='add'>+	])</div><div class='add'>+	],</div><div class='add'>+    [hpux*], [</div><div class='add'>+	AS_CASE(["$YACC"],[*yacc*], [</div><div class='add'>+	    XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"</div><div class='add'>+	    YACC="$YACC -Nl40000 -Nm40000"</div><div class='add'>+	])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+MINIOBJS="$MINIDLNOBJ"</div><div class='add'>+</div><div class='add'>+AS_CASE(["$THREAD_MODEL"],</div><div class='add'>+[pthread], [AC_CHECK_HEADERS(pthread.h)],</div><div class='add'>+[win32],   [],</div><div class='add'>+[""],      [AC_MSG_ERROR(thread model is missing)],</div><div class='add'>+           [AC_MSG_ERROR(unknown thread model $THREAD_MODEL)])</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(debug-env,</div><div class='add'>+       AS_HELP_STRING([--enable-debug-env], [enable RUBY_DEBUG environment variable]),</div><div class='add'>+       [AC_SUBST(ENABLE_DEBUG_ENV, yes)])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$FIRSTMAKEFILE"], [*GNUmakefile:*], [gnumake=yes], [</div><div class='add'>+    AC_MSG_CHECKING([if ${MAKE-make} is GNU make])</div><div class='add'>+    mkdir conftest.dir</div><div class='add'>+    echo "all:; @echo yes" &gt; conftest.dir/GNUmakefile</div><div class='add'>+    echo "all:; @echo no" &gt; conftest.dir/Makefile</div><div class='add'>+    gnumake=`(cd conftest.dir; ${MAKE-make})`</div><div class='add'>+    rm -fr conftest.dir</div><div class='add'>+    AS_CASE(["$gnumake"],</div><div class='add'>+    [*yes*], [</div><div class='add'>+	FIRSTMAKEFILE=GNUmakefile:template/GNUmakefile.in</div><div class='add'>+	gnumake=yes],</div><div class='add'>+    [</div><div class='add'>+	gnumake=no])</div><div class='add'>+    AC_MSG_RESULT($gnumake)</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$gnumake" = yes], [ NULLCMD=: ], [</div><div class='add'>+    AC_MSG_CHECKING([for safe null command for ${MAKE-make}])</div><div class='add'>+    mkdir conftest.dir</div><div class='add'>+    NULLCMD=</div><div class='add'>+    for cmd in : true; do</div><div class='add'>+	echo 'A=1' &gt; conftest.dir/Makefile</div><div class='add'>+	echo 'B=$(A:1=@'$cmd')' &gt;&gt; conftest.dir/Makefile</div><div class='add'>+	echo 'all:; $B 1 2 3 4 5 6 7 8 9' &gt;&gt; conftest.dir/Makefile</div><div class='add'>+	AS_IF([(cd conftest.dir; ${MAKE-make} &gt;/dev/null 2&gt;/dev/null)], [</div><div class='add'>+	    NULLCMD=$cmd</div><div class='add'>+	    break</div><div class='add'>+	])</div><div class='add'>+    done</div><div class='add'>+    rm -fr conftest.dir</div><div class='add'>+    AS_IF([test -z "$NULLCMD"], [</div><div class='add'>+	AC_MSG_ERROR(no candidate for safe null command)</div><div class='add'>+    ])</div><div class='add'>+    AC_MSG_RESULT($NULLCMD)</div><div class='add'>+])</div><div class='add'>+AC_SUBST(NULLCMD)</div><div class='add'>+</div><div class='add'>+AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='add'>+    AC_CACHE_CHECK([for architecture macros], rb_cv_architecture_macros, [</div><div class='add'>+    mv confdefs.h confdefs1.h</div><div class='add'>+    : &gt; confdefs.h</div><div class='add'>+    AC_TRY_COMPILE([@%:@if defined __`echo ${universal_archnames} |</div><div class='add'>+    sed 's/=[^ ]*//g;s/ /__ || defined __/g'`__</div><div class='add'>+@%:@else</div><div class='add'>+@%:@error</div><div class='add'>+&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;</div><div class='add'>+@%:@endif], [],</div><div class='add'>+[</div><div class='add'>+    rb_cv_architecture_macros=yes</div><div class='add'>+    mv -f confdefs1.h confdefs.h</div><div class='add'>+], [</div><div class='add'>+    rb_cv_architecture_macros=no</div><div class='add'>+    archflagpat=`eval echo '"'"${ARCH_FLAG}"'"' | sed 's/[[][|.*]]/\\&amp;/g'`</div><div class='add'>+    new_cflags=`echo "$CFLAGS" | sed "s|$archflagpat"'||'`</div><div class='add'>+    for archs in ${universal_archnames}; do</div><div class='add'>+	cpu=${archs@%:@*=}</div><div class='add'>+	archs=${archs%=*}</div><div class='add'>+	CFLAGS="$new_cflags -arch $archs"</div><div class='add'>+	archs="__${archs}__"</div><div class='add'>+	AC_MSG_CHECKING([for macro ${archs} on ${cpu}])</div><div class='add'>+	AC_TRY_COMPILE([@%:@ifndef ${archs}</div><div class='add'>+@%:@error</div><div class='add'>+@%:@endif], [], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])</div><div class='add'>+    done</div><div class='add'>+    mv -f confdefs1.h confdefs.h</div><div class='add'>+    AC_MSG_ERROR([failed])</div><div class='add'>+    ])])</div><div class='add'>+    AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,</div><div class='add'>+	AC_TRY_COMPILE([@%:@include &lt;stdio.h&gt;</div><div class='add'>+		const char arch[[]] = __ARCHITECTURE__;], [puts(arch);],</div><div class='add'>+		[rb_cv_architecture_available=yes], [rb_cv_architecture_available=no]))</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+CPPFLAGS="$CPPFLAGS "'$(DEFS)'</div><div class='add'>+test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}'</div><div class='add'>+AS_IF([test -n "${cflags+set}"], [</div><div class='add'>+    cflagspat=`eval echo '"'"${cflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^  */ /;s/^  *$/ /'`</div><div class='add'>+    CFLAGS=`echo " $CFLAGS " | sed "s|$cflagspat"'|${cflags}|;s/^ *//;s/ *$//'`</div><div class='add'>+])</div><div class='add'>+AS_IF([test -n "${cxxflags+set}"], [</div><div class='add'>+    cxxflagspat=`eval echo '"'"${cxxflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^  */ /;s/^  *$/ /'`</div><div class='add'>+    CXXFLAGS=`echo " $CXXFLAGS " | sed "s|$cxxflagspat"'|${cxxflags}|;s/^ *//;s/ *$//'`</div><div class='add'>+])</div><div class='add'>+AS_IF([test "${ARCH_FLAG}"], [</div><div class='add'>+    archflagpat=`eval echo '"'"${ARCH_FLAG}"'"' | sed 's/[[][|.*]]/\\&amp;/g'`</div><div class='add'>+    CFLAGS=`echo "$CFLAGS" | sed "s| *$archflagpat"'||'`</div><div class='add'>+    CXXFLAGS=`echo "$CXXFLAGS" | sed "s| *$archflagpat"'||'`</div><div class='add'>+    LDFLAGS=`echo "$LDFLAGS" | sed "s| *$archflagpat"'||'`</div><div class='add'>+])</div><div class='add'>+warnflags="$rb_cv_warnflags"</div><div class='add'>+AC_SUBST(cppflags)dnl</div><div class='add'>+AC_SUBST(cflags, ["${orig_cflags:+$orig_cflags }"'${optflags} ${debugflags} ${warnflags}'])dnl</div><div class='add'>+AC_SUBST(cxxflags, ["${orig_cxxflags:+$orig_cxxflags }"'${optflags} ${debugflags} ${warnflags}'])dnl</div><div class='add'>+AC_SUBST(optflags)dnl</div><div class='add'>+AC_SUBST(debugflags)dnl</div><div class='add'>+AC_SUBST(warnflags)dnl</div><div class='add'>+AC_SUBST(strict_warnflags)dnl</div><div class='add'>+AC_SUBST(XCFLAGS)dnl</div><div class='add'>+AC_SUBST(XLDFLAGS)dnl</div><div class='add'>+AC_SUBST(EXTLDFLAGS)dnl</div><div class='add'>+AC_SUBST(EXTDLDFLAGS)dnl</div><div class='add'>+AC_SUBST(LIBRUBY_LDSHARED)</div><div class='add'>+AC_SUBST(LIBRUBY_DLDFLAGS)</div><div class='add'>+AC_SUBST(RUBY_INSTALL_NAME)</div><div class='add'>+AC_SUBST(rubyw_install_name)</div><div class='add'>+AC_SUBST(RUBYW_INSTALL_NAME)</div><div class='add'>+AC_SUBST(RUBY_SO_NAME)</div><div class='add'>+AC_SUBST(LIBRUBY_A)</div><div class='add'>+AC_SUBST(LIBRUBY_SO)</div><div class='add'>+AC_SUBST(LIBRUBY_SONAME)</div><div class='add'>+AC_SUBST(LIBRUBY_ALIASES)</div><div class='add'>+AC_SUBST(LIBRUBY)</div><div class='add'>+AC_SUBST(LIBRUBYARG)</div><div class='add'>+AC_SUBST(LIBRUBYARG_STATIC)</div><div class='add'>+AC_SUBST(LIBRUBYARG_SHARED)</div><div class='add'>+AC_SUBST(SOLIBS)</div><div class='add'>+AC_SUBST(DLDLIBS)</div><div class='add'>+AC_SUBST(ENABLE_SHARED)</div><div class='add'>+AC_SUBST(MAINLIBS)</div><div class='add'>+AC_SUBST(COMMON_LIBS)</div><div class='add'>+AC_SUBST(COMMON_MACROS)</div><div class='add'>+AC_SUBST(COMMON_HEADERS)</div><div class='add'>+AC_SUBST(EXPORT_PREFIX)</div><div class='add'>+AC_SUBST(SYMBOL_PREFIX)</div><div class='add'>+AC_SUBST(MINIOBJS)</div><div class='add'>+AC_SUBST(THREAD_MODEL)</div><div class='add'>+AC_SUBST(PLATFORM_DIR)</div><div class='add'>+</div><div class='add'>+firstmf=`echo $FIRSTMAKEFILE | sed 's/:.*//'`</div><div class='add'>+firsttmpl=`echo $FIRSTMAKEFILE | sed 's/.*://'`</div><div class='add'>+MAKEFILES="Makefile $firstmf"</div><div class='add'>+MAKEFILES="`echo $MAKEFILES`"</div><div class='add'>+AC_SUBST(MAKEFILES)</div><div class='add'>+</div><div class='add'>+ri_prefix=</div><div class='add'>+test "$program_prefix" != NONE &amp;&amp;</div><div class='add'>+  ri_prefix=$program_prefix</div><div class='add'>+</div><div class='add'>+ri_suffix=</div><div class='add'>+test "$program_suffix" != NONE &amp;&amp;</div><div class='add'>+  ri_suffix=$program_suffix</div><div class='add'>+</div><div class='add'>+RUBY_INSTALL_NAME="${ri_prefix}"'$(RUBY_BASE_NAME)'"${ri_suffix}"</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [cygwin*|mingw*], [</div><div class='add'>+    RUBYW_INSTALL_NAME="${ri_prefix}"'$(RUBYW_BASE_NAME)'"${ri_suffix}"</div><div class='add'>+    rubyw_install_name='$(RUBYW_INSTALL_NAME)'</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+rubylibdir='${rubylibprefix}/${ruby_version}'</div><div class='add'>+rubyarchdir=${multiarch+'${rubyarchprefix}/${ruby_version}'}${multiarch-'${rubylibdir}/${arch}'}</div><div class='add'>+</div><div class='add'>+rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}</div><div class='add'>+AC_ARG_WITH(rubyarchprefix,</div><div class='add'>+	    AS_HELP_STRING([--with-rubyarchprefix=DIR],</div><div class='add'>+			   [prefix for architecture dependent ruby libraries [[RUBYLIBPREFIX/ARCH]]]),</div><div class='add'>+	    [rubyarchprefix="$withval"])</div><div class='add'>+AC_SUBST(rubyarchprefix)</div><div class='add'>+</div><div class='add'>+rubysitearchprefix=${multiarch+'${sitearchlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${sitearch}'}</div><div class='add'>+AC_ARG_WITH(rubysitearchprefix,</div><div class='add'>+	    AS_HELP_STRING([--with-rubysitearchprefix=DIR],</div><div class='add'>+			   [prefix for architecture dependent site libraries [[RUBYLIBPREFIX/SITEARCH]]]),</div><div class='add'>+	    [rubysitearchprefix="$withval"])</div><div class='add'>+AC_SUBST(rubysitearchprefix)</div><div class='add'>+</div><div class='add'>+RI_BASE_NAME=`echo ${RUBY_BASE_NAME} | sed 's/ruby/ri/'`</div><div class='add'>+ridir='${datarootdir}/${RI_BASE_NAME}'</div><div class='add'>+AC_ARG_WITH(ridir,</div><div class='add'>+	    AS_HELP_STRING([--with-ridir=DIR], [ri documentation [[DATAROOTDIR/ri]]]),</div><div class='add'>+	    [ridir=$withval])</div><div class='add'>+AC_SUBST(ridir)</div><div class='add'>+AC_SUBST(RI_BASE_NAME)</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(ruby-version,</div><div class='add'>+	    AS_HELP_STRING([--with-ruby-version=STR], [ruby version string for version specific directories [[full]] (full|minor|STR)]),</div><div class='add'>+            [ruby_version=$withval],</div><div class='add'>+            [ruby_version=full])</div><div class='add'>+unset RUBY_LIB_VERSION</div><div class='add'>+unset RUBY_LIB_VERSION_STYLE</div><div class='add'>+AS_CASE(["$ruby_version"],</div><div class='add'>+  [full],  [RUBY_LIB_VERSION_STYLE='3	/* full */'],</div><div class='add'>+  [minor], [RUBY_LIB_VERSION_STYLE='2	/* minor */'])</div><div class='add'>+AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [</div><div class='add'>+    {</div><div class='add'>+    echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"</div><div class='add'>+    echo '#define STRINGIZE(x) x'</div><div class='add'>+    test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'</div><div class='add'>+    echo '#include "version.h"'</div><div class='add'>+    echo 'ruby_version=RUBY_LIB_VERSION'</div><div class='add'>+    } &gt; conftest.c</div><div class='add'>+    ruby_version="`$CPP -I. -I"${srcdir}" -I"${srcdir}/include" conftest.c | sed '/^ruby_version=/!d;s/ //g'`"</div><div class='add'>+    eval $ruby_version</div><div class='add'>+], [test -z "${ruby_version}"], [</div><div class='add'>+    AC_MSG_ERROR([No ruby version, No place for bundled libraries])</div><div class='add'>+], [</div><div class='add'>+    RUBY_LIB_VERSION="${ruby_version}"</div><div class='add'>+])</div><div class='add'>+AC_SUBST(RUBY_LIB_VERSION_STYLE)</div><div class='add'>+AC_SUBST(RUBY_LIB_VERSION)</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(sitedir,</div><div class='add'>+	    AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]], "no" to disable site directory]),</div><div class='add'>+            [sitedir=$withval],</div><div class='add'>+            [sitedir='${rubylibprefix}/site_ruby'])</div><div class='add'>+sitelibdir='${sitedir}/${ruby_version}'</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(sitearchdir,</div><div class='add'>+	    AS_HELP_STRING([--with-sitearchdir=DIR],</div><div class='add'>+			   [architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory]),</div><div class='add'>+            [sitearchdir=$withval],</div><div class='add'>+            [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby/${ruby_version}'}${multiarch-'${sitelibdir}/${sitearch}'}])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(vendordir,</div><div class='add'>+	    AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory]),</div><div class='add'>+            [vendordir=$withval],</div><div class='add'>+            [vendordir='${rubylibprefix}/vendor_ruby'])</div><div class='add'>+vendorlibdir='${vendordir}/${ruby_version}'</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(vendorarchdir,</div><div class='add'>+	    AS_HELP_STRING([--with-vendorarchdir=DIR],</div><div class='add'>+			   [architecture dependent vendor libraries in DIR [[VENDORDIR/SITEARCH]], "no" to disable vendor directory]),</div><div class='add'>+            [vendorarchdir=$withval],</div><div class='add'>+            [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])</div><div class='add'>+</div><div class='add'>+AS_IF([test "${LOAD_RELATIVE+set}"], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)</div><div class='add'>+    RUBY_EXEC_PREFIX=''</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_SUBST(RUBY_EXEC_PREFIX)</div><div class='add'>+</div><div class='add'>+AC_SUBST(libdirname, ${multiarch+arch}libdir)</div><div class='add'>+AC_SUBST(archlibdir)dnl</div><div class='add'>+AC_SUBST(sitearchlibdir)dnl</div><div class='add'>+AC_SUBST(archincludedir)dnl</div><div class='add'>+AC_SUBST(sitearchincludedir)dnl</div><div class='add'>+AC_SUBST(arch)dnl</div><div class='add'>+AC_SUBST(sitearch)dnl</div><div class='add'>+AC_SUBST(ruby_version)dnl</div><div class='add'>+AC_SUBST(rubylibdir)dnl</div><div class='add'>+AC_SUBST(rubyarchdir)dnl</div><div class='add'>+AC_SUBST(sitedir)dnl</div><div class='add'>+AC_SUBST(sitelibdir)dnl</div><div class='add'>+AC_SUBST(sitearchdir)dnl</div><div class='add'>+AC_SUBST(vendordir)dnl</div><div class='add'>+AC_SUBST(vendorlibdir)dnl</div><div class='add'>+AC_SUBST(vendorarchdir)dnl</div><div class='add'>+</div><div class='add'>+AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl</div><div class='add'>+AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl</div><div class='add'>+</div><div class='add'>+AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='add'>+    arch="universal-${target_os}"</div><div class='add'>+    AS_IF([test "${rb_cv_architecture_available}" = yes], [</div><div class='add'>+	AC_DEFINE_UNQUOTED(RUBY_PLATFORM_CPU, __ARCHITECTURE__)</div><div class='add'>+    ], [</div><div class='add'>+	for archs in ${universal_archnames}; do</div><div class='add'>+	    cpu=`echo $archs | sed 's/.*=//'`</div><div class='add'>+	    archs=`echo $archs | sed 's/=.*//'`</div><div class='add'>+	    RUBY_DEFINE_IF([defined __${archs}__], RUBY_PLATFORM_CPU, ["${cpu}"])</div><div class='add'>+	done</div><div class='add'>+    ])</div><div class='add'>+    ints='long int short'</div><div class='add'>+    test "$ac_cv_type_long_long" = yes &amp;&amp; ints="'long long' $ints"</div><div class='add'>+    AC_SUBST(UNIVERSAL_ARCHNAMES, "${universal_archnames}")</div><div class='add'>+    AC_SUBST(UNIVERSAL_INTS, "${ints}")</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_PLATFORM_OS, "${target_os}")</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_ARCH, "universal-"RUBY_PLATFORM_OS)</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "universal."RUBY_PLATFORM_CPU"-"RUBY_PLATFORM_OS)</div><div class='add'>+], [</div><div class='add'>+    arch="${target_cpu}-${target_os}"</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "$arch")</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+unset sitearch</div><div class='add'>+AS_CASE(["$target_os"],[mingw*],[sitearch="$target_cpu-$rb_cv_msvcrt"])</div><div class='add'>+: ${sitearch='${arch}'}</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(search-path,</div><div class='add'>+		AS_HELP_STRING([--with-search-path=DIR], [specify the additional search path]),</div><div class='add'>+		[search_path=$withval])</div><div class='add'>+AS_IF([test "$search_path" != ""], [</div><div class='add'>+    AC_SUBST(RUBY_SEARCH_PATH, $search_path)</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(rubyhdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-rubyhdrdir=DIR], [core headers in DIR [[INCLUDEDIR/RUBY_BASE_NAME-RUBY_VERSION]]]),</div><div class='add'>+	    [rubyhdrdir=$withval],</div><div class='add'>+	    [rubyhdrdir='${includedir}/${RUBY_VERSION_NAME}'])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(rubyarchhdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-rubyarchhdrdir=DIR],</div><div class='add'>+			   [architecture dependent core headers in DIR [[$(rubyhdrdir)/$(arch)]]]),</div><div class='add'>+	    [rubyarchhdrdir=$withval],</div><div class='add'>+	    [rubyarchhdrdir=${multiarch+'${archincludedir}/${RUBY_VERSION_NAME}'}${multiarch-'${rubyhdrdir}/${arch}'}])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(sitehdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-sitehdrdir=DIR], [core site headers in DIR [[RUBYHDRDIR/site_ruby]]]),</div><div class='add'>+	    [sitehdrdir=$withval],</div><div class='add'>+	    [sitehdrdir='${rubyhdrdir}/site_ruby'])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(sitearchhdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-sitearchhdrdir=DIR],</div><div class='add'>+			   [architecture dependent core site headers in DIR [[RUBYHDRDIR/site_ruby]]]),</div><div class='add'>+	    [sitearchhdrdir=$withval],</div><div class='add'>+	    [sitearchhdrdir=${multiarch+'${sitearchincludedir}/${RUBY_VERSION_NAME}/site_ruby'}${multiarch-'${sitehdrdir}/${sitearch}'}])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(vendorhdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-vendorhdrdir=DIR], [core vendor headers in DIR [[RUBYHDRDIR/vendor_ruby]]]),</div><div class='add'>+	    [vendorhdrdir=$withval],</div><div class='add'>+	    [vendorhdrdir='${rubyhdrdir}/vendor_ruby'])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(vendorarchhdrdir,</div><div class='add'>+	    AS_HELP_STRING([--with-vendorarchhdrdir=DIR],</div><div class='add'>+			   [architecture dependent core vendor headers in DIR [[RUBYHDRDIR/vendor_ruby]]]),</div><div class='add'>+	    [vendorarchhdrdir=$withval],</div><div class='add'>+	    [vendorarchhdrdir=${multiarch+'${sitearchincludedir}/${RUBY_VERSION_NAME}/vendor_ruby'}${multiarch-'${vendorhdrdir}/${sitearch}'}])</div><div class='add'>+</div><div class='add'>+AC_SUBST(rubyhdrdir)dnl</div><div class='add'>+AC_SUBST(sitehdrdir)dnl</div><div class='add'>+AC_SUBST(vendorhdrdir)dnl</div><div class='add'>+AC_SUBST(rubyarchhdrdir)dnl</div><div class='add'>+AC_SUBST(sitearchhdrdir)dnl</div><div class='add'>+AC_SUBST(vendorarchhdrdir)dnl</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(mantype,</div><div class='add'>+	AS_HELP_STRING([--with-mantype=TYPE], [specify man page type; TYPE is one of man and doc]),</div><div class='add'>+		[</div><div class='add'>+			AS_CASE(["$withval"],</div><div class='add'>+			[man|man.gz|man.bz2|doc|doc.gz|doc.bz2], [MANTYPE=$withval],</div><div class='add'>+			[AC_MSG_ERROR(invalid man type: $withval)])</div><div class='add'>+		])</div><div class='add'>+AS_IF([test -z "$MANTYPE"], [</div><div class='add'>+	dnl Looks for nroff with -mdoc support.</div><div class='add'>+	AC_CACHE_VAL([ac_cv_path_NROFF], [</div><div class='add'>+		AC_PATH_PROGS_FEATURE_CHECK([NROFF],</div><div class='add'>+			[nroff awf mandoc],</div><div class='add'>+			[$ac_path_NROFF -mdoc ${srcdir}/man/ruby.1 \</div><div class='add'>+				&gt;/dev/null 2&gt;&amp;1 &amp;&amp;</div><div class='add'>+				ac_cv_path_NROFF=$ac_path_NROFF \</div><div class='add'>+				ac_path_NROFF_found=:],</div><div class='add'>+			[], ["/usr/bin:/usr/ucb"]</div><div class='add'>+		)</div><div class='add'>+	])</div><div class='add'>+	AS_IF([test -n "$ac_cv_path_NROFF"], [</div><div class='add'>+		MANTYPE=doc</div><div class='add'>+	], [</div><div class='add'>+		MANTYPE=man</div><div class='add'>+	])</div><div class='add'>+])</div><div class='add'>+AC_SUBST(MANTYPE)</div><div class='add'>+</div><div class='add'>+AC_ARG_ENABLE(rubygems,</div><div class='add'>+	AS_HELP_STRING([--disable-rubygems], [disable rubygems by default]),</div><div class='add'>+	[enable_rubygems="$enableval"], [enable_rubygems=yes])</div><div class='add'>+AS_IF([test x"$enable_rubygems" = xno], [</div><div class='add'>+    AC_DEFINE(DISABLE_RUBYGEMS, 1)</div><div class='add'>+    USE_RUBYGEMS=NO</div><div class='add'>+], [</div><div class='add'>+    USE_RUBYGEMS=YES</div><div class='add'>+])</div><div class='add'>+AC_SUBST(USE_RUBYGEMS)</div><div class='add'>+</div><div class='add'>+arch_hdrdir="${EXTOUT}/include/${arch}/ruby"</div><div class='add'>+AS_MKDIR_P("${arch_hdrdir}")</div><div class='add'>+config_h="${arch_hdrdir}/config.h"</div><div class='add'>+guard=INCLUDE_RUBY_CONFIG_H</div><div class='add'>+{</div><div class='add'>+  echo "#ifndef $guard"</div><div class='add'>+  echo "#define $guard 1"</div><div class='add'>+  grep -v "^#define PACKAGE_" confdefs.h</div><div class='add'>+  echo "#endif /* $guard */"</div><div class='add'>+} | tr -d '\015' |</div><div class='add'>+(</div><div class='add'>+  AS_IF([test "x$CONFIGURE_TTY" = xyes], [color=--color], [color=])</div><div class='add'>+  exec ${srcdir}/tool/ifchange $color "${config_h}" -</div><div class='add'>+) || AC_MSG_ERROR([failed to create ${config_h}])</div><div class='add'>+tr -d '\015' &lt; largefile.h &gt; confdefs.h</div><div class='add'>+rm largefile.h</div><div class='add'>+</div><div class='add'>+BUILTIN_ENCS=["`sed -n -e '/^BUILTIN_ENCS[ 	]*=/{' \</div><div class='add'>+	-e s/// -e :l -e '/\\\\$/N' -e 's/\\\\\\n/ /' -e 't l' -e p \</div><div class='add'>+	-e '}' "${srcdir}/enc/Makefile.in"`"]</div><div class='add'>+BUILTIN_ENCOBJS=</div><div class='add'>+for e in $BUILTIN_ENCS; do BUILTIN_ENCOBJS="$BUILTIN_ENCOBJS "`echo $e | sed 's/\.c$/.$(OBJEXT)/'`; done</div><div class='add'>+AC_SUBST(BUILTIN_ENCOBJS)</div><div class='add'>+</div><div class='add'>+BUILTIN_TRANSES=["`sed -n -e '/^BUILTIN_TRANSES[ 	]*=/{' \</div><div class='add'>+	-e s/// -e :l -e '/\\\\$/N' -e 's/\\\\\\n/ /' -e 't l' -e p \</div><div class='add'>+	-e '}' "${srcdir}/enc/Makefile.in"`"]</div><div class='add'>+BUILTIN_TRANSSRCS=</div><div class='add'>+BUILTIN_TRANSOBJS=</div><div class='add'>+for e in $BUILTIN_TRANSES; do</div><div class='add'>+  BUILTIN_TRANSSRCS="$BUILTIN_TRANSSRCS "`echo $e | sed 's/\.trans$/.c/'`</div><div class='add'>+  BUILTIN_TRANSOBJS="$BUILTIN_TRANSOBJS "`echo $e | sed 's/\.trans$/.$(OBJEXT)/'`</div><div class='add'>+done</div><div class='add'>+AC_SUBST(BUILTIN_TRANSSRCS)</div><div class='add'>+AC_SUBST(BUILTIN_TRANSOBJS)</div><div class='add'>+</div><div class='add'>+PACKAGE=$RUBY_BASE_NAME</div><div class='add'>+AC_SUBST(PACKAGE)</div><div class='add'>+AS_MESSAGE([$PACKAGE library version = $ruby_version])</div><div class='add'>+</div><div class='add'>+AS_CASE([" $CPP "], [*" $CC "*], [CPP=`echo " $CPP " | sed "s| $CC |"' $(CC) |;s/^ *//;s/  *$//'`])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$firstmf" != x], [</div><div class='add'>+    AC_CONFIG_FILES($firstmf:$firsttmpl, [], [firstmf="$firstmf" firsttmpl="$firsttmpl"])</div><div class='add'>+])</div><div class='add'>+AC_CONFIG_FILES(Makefile, [</div><div class='add'>+    tmpmk=confmk$$.tmp</div><div class='add'>+    {</div><div class='add'>+	AS_IF([test ${VCS+set}], [</div><div class='add'>+	    :</div><div class='add'>+	], [svn info "$srcdir" &gt; /dev/null 2&gt;&amp;1], [</div><div class='add'>+	    VCS='svn'</div><div class='add'>+	], [git_dir=`$GIT --work-tree="$srcdir" --git-dir="$srcdir/.git" rev-parse --git-dir 2&gt;/dev/null`], [</div><div class='add'>+	    AS_IF([test -d "$git_dir/svn"], [</div><div class='add'>+		VCS='$(GIT) svn'</div><div class='add'>+	    ], [</div><div class='add'>+		VCS='$(GIT)'</div><div class='add'>+	    ])</div><div class='add'>+	], [</div><div class='add'>+	    VCS='echo cannot'</div><div class='add'>+	])</div><div class='add'>+	AS_CASE("$VCS",</div><div class='add'>+		[svn],          [VCSUP='$(VCS) up $(SVNUPOPTIONS)'],</div><div class='add'>+		['$(GIT) svn'], [VCSUP='$(VCS) rebase $(GITSVNREBASEOPTIONS)'],</div><div class='add'>+		['$(GIT)'|git], [VCSUP='$(VCS) pull $(GITPULLOPTIONS)'],</div><div class='add'>+		[VCSUP='$(VCS)'])</div><div class='add'>+	sed -n \</div><div class='add'>+	    -e '[/^@%:@define \(RUBY_RELEASE_[A-Z]*\) \([0-9][0-9]*\)/]{' \</div><div class='add'>+	    -e   's//\1 = \2/' \</div><div class='add'>+	    -e   '[s/ \([0-9]\)$/ 0\1/]' \</div><div class='add'>+	    -e   p \</div><div class='add'>+	    -e '}' "$srcdir/version.h"</div><div class='add'>+	sed '/^MISSING/s/\$U\././g;/^VCS *=/s#@VCS@#'"$VCS"'#;/^VCSUP *=/s#@VCSUP@#'"$VCSUP"'#' Makefile</div><div class='add'>+	echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'</div><div class='add'>+	AS_IF([test "$gnumake" != yes], [</div><div class='add'>+	    echo ['$(MKFILES): $(srcdir)/common.mk']</div><div class='add'>+	    sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk</div><div class='add'>+	], [</div><div class='add'>+	    echo 'distclean-local::; @$(RM) GNUmakefile uncommon.mk'</div><div class='add'>+	])</div><div class='add'>+    } &gt; $tmpmk &amp;&amp; AS_IF([! grep '^ruby:' $tmpmk &gt; /dev/null], [</div><div class='add'>+	AS_IF([test "${gnumake}" = yes], [</div><div class='add'>+	    tmpgmk=confgmk$$.tmp</div><div class='add'>+	    {</div><div class='add'>+		echo "include $tmpmk"</div><div class='add'>+		echo "-include uncommon.mk"</div><div class='add'>+	    } &gt; $tmpgmk</div><div class='add'>+	], [</div><div class='add'>+	    tmpgmk=$tmpmk</div><div class='add'>+	]) &amp;&amp;</div><div class='add'>+	test -z "`${MAKE-make} -f $tmpgmk info-program | grep '^PROGRAM=ruby$'`" &amp;&amp;</div><div class='add'>+	echo 'ruby: $(PROGRAM);' &gt;&gt; $tmpmk</div><div class='add'>+	test "$tmpmk" = "$tmpgmk" || rm -f "$tmpgmk"</div><div class='add'>+    ]) &amp;&amp; mv -f $tmpmk Makefile],</div><div class='add'>+[EXEEXT='$EXEEXT' gnumake='$gnumake' GIT='$GIT'])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH([ruby-pc],</div><div class='add'>+	    AC_HELP_STRING([--with-ruby-pc=FILENAME], [pc file basename]),</div><div class='add'>+	    [ruby_pc="$withval"],</div><div class='add'>+	    [ruby_pc="${RUBY_BASE_NAME}-${MAJOR}.${MINOR}.pc"])</div><div class='add'>+AC_SUBST(ruby_pc)</div><div class='add'>+AC_SUBST(exec, [exec])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH(destdir,</div><div class='add'>+	    AS_HELP_STRING([--with-destdir=DESTDIR], [specify default directory to install]),</div><div class='add'>+	    [DESTDIR="$withval"])</div><div class='add'>+AC_SUBST(DESTDIR)</div><div class='add'>+</div><div class='add'>+AC_CONFIG_FILES($ruby_pc:template/ruby.pc.in,</div><div class='add'>+    [</div><div class='add'>+    AS_IF([sed ['s/\$(\([A-Za-z_][A-Za-z0-9_]*\))/${\1}/g;s/@[A-Za-z_][A-Za-z0-9_]*@//'] $ruby_pc &gt; ruby.tmp.pc &amp;&amp;</div><div class='add'>+	{</div><div class='add'>+	    test -z "$PKG_CONFIG" ||</div><div class='add'>+	    PKG_CONFIG_PATH=. $PKG_CONFIG --print-errors ruby.tmp</div><div class='add'>+	}],</div><div class='add'>+    [</div><div class='add'>+	mv -f ruby.tmp.pc $ruby_pc</div><div class='add'>+    ], [</div><div class='add'>+	exit 1</div><div class='add'>+    ])</div><div class='add'>+    ],</div><div class='add'>+    [ruby_pc='$ruby_pc' PKG_CONFIG='$PKG_CONFIG'])</div><div class='add'>+</div><div class='add'>+AC_OUTPUT</div><div class='add'>+}</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+AS_IF([${FOLD+:} false], [], [</div><div class='add'>+AS_IF([test "`echo abcdefg hijklmno | fold -s -w10 | sed 1d`" = hijklmno], [FOLD="fold"], [FOLD=])</div><div class='add'>+])</div><div class='add'>+AS_REQUIRE_SHELL_FN([config_summary],</div><div class='add'>+    [AS_FUNCTION_DESCRIBE([config_summary], [NAME, VAL], [configuration summary])],</div><div class='add'>+    [AS_IF([test -z "$2"], [], [</div><div class='add'>+	AS_ECHO_N(["   * $1:                     "]) | dd bs=1 count=26 2&gt;/dev/null</div><div class='add'>+	AS_IF([test "$FOLD"], [</div><div class='add'>+	    echo "$2" | fold -s -w50 |</div><div class='add'>+	    sed '1!s/^/                          /;$!s/$/\\/'</div><div class='add'>+	], [echo "$2"])</div><div class='add'>+    ])]</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+echo "---"</div><div class='add'>+echo "Configuration summary for $RUBY_BASE_NAME version $RUBY_PROGRAM_VERSION"</div><div class='add'>+echo ""</div><div class='add'>+config_summary "Installation prefix" "$prefix"</div><div class='add'>+config_summary "exec prefix"         "$exec_prefix"</div><div class='add'>+config_summary "arch"                "$arch"</div><div class='add'>+config_summary "site arch"           "$sitearch"</div><div class='add'>+config_summary "RUBY_BASE_NAME"      "$RUBY_BASE_NAME"</div><div class='add'>+config_summary "enable shared"       "$enable_shared"</div><div class='add'>+config_summary "ruby lib prefix"     "$rubylibprefix"</div><div class='add'>+config_summary "site libraries path" "$rubysitearchprefix"</div><div class='add'>+config_summary "vendor path"         "$vendordir"</div><div class='add'>+config_summary "target OS"           "$target_os"</div><div class='add'>+config_summary "compiler"            "$CC"</div><div class='add'>+config_summary "with pthread"        "$enable_pthread"</div><div class='add'>+config_summary "enable shared libs"  "$ENABLE_SHARED"</div><div class='add'>+config_summary "dynamic library ext" "$DLEXT"</div><div class='add'>+config_summary "CFLAGS"              "$cflags"</div><div class='add'>+config_summary "CPPFLAGS"            "$cppflags"</div><div class='add'>+config_summary "LDFLAGS"             "$LDFLAGS"</div><div class='add'>+config_summary "optflags"            "$optflags"</div><div class='add'>+config_summary "debugflags"          "$debugflags"</div><div class='add'>+config_summary "warnflags"           "$warnflags"</div><div class='add'>+config_summary "strip command"       "$STRIP"</div><div class='add'>+config_summary "install doc"         "$install_doc"</div><div class='add'>+config_summary "man page type"       "$MANTYPE"</div><div class='add'>+config_summary "search path"         "$search_path"</div><div class='add'>+config_summary "static-linked-ext"   ${EXTSTATIC:+"yes"}</div><div class='add'>+echo ""</div><div class='add'>+echo "---"</div><div class='head'>diff --git a/configure.in b/configure.in<br/>deleted file mode 100644<br/>index ee0e81c257..0000000000<br/>--- a/<a href='/ruby.git/tree/configure.in?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>configure.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1692 +0,0 @@</div><div class='del'>-dnl Process this file with autoconf to produce a configure script.</div><div class='del'>-AC_INIT()</div><div class='del'>-</div><div class='del'>-AC_PREREQ(2.58)</div><div class='del'>-</div><div class='del'>-AC_DEFUN([RUBY_MINGW32],</div><div class='del'>-[case "$host_os" in</div><div class='del'>-cygwin*)</div><div class='del'>-AC_CACHE_CHECK(for mingw32 environment, rb_cv_mingw32,</div><div class='del'>-[AC_TRY_CPP([</div><div class='del'>-#ifndef __MINGW32__</div><div class='del'>-# error</div><div class='del'>-#endif</div><div class='del'>-], rb_cv_mingw32=yes,rb_cv_mingw32=no)</div><div class='del'>-rm -f conftest*])</div><div class='del'>-test "$rb_cv_mingw32" = yes &amp;&amp; target_os="mingw32"</div><div class='del'>-  ;;</div><div class='del'>-esac])</div><div class='del'>-</div><div class='del'>-AC_DEFUN([RUBY_CPPOUTFILE],</div><div class='del'>-[AC_CACHE_CHECK(whether ${CPP} accepts -o, rb_cv_cppoutfile,</div><div class='del'>-[cppflags=$CPPFLAGS</div><div class='del'>-CPPFLAGS='-o conftest.i'</div><div class='del'>-AC_TRY_CPP([], rb_cv_cppoutfile=yes, rb_cv_cppoutfile=no)</div><div class='del'>-CPPFLAGS=$cppflags</div><div class='del'>-rm -f conftest*])</div><div class='del'>-if test "$rb_cv_cppoutfile" = yes; then</div><div class='del'>-  CPPOUTFILE='-o conftest.i'</div><div class='del'>-elif test "$rb_cv_cppoutfile" = no; then</div><div class='del'>-  CPPOUTFILE='&gt; conftest.i'</div><div class='del'>-elif test -n "$rb_cv_cppoutfile"; then</div><div class='del'>-  CPPOUTFILE="$rb_cv_cppoutfile"</div><div class='del'>-fi</div><div class='del'>-AC_SUBST(CPPOUTFILE)])</div><div class='del'>-</div><div class='del'>-AC_DEFUN([RUBY_PROG_GNU_LD],</div><div class='del'>-[AC_CACHE_CHECK(whether the linker is GNU ld, rb_cv_prog_gnu_ld,</div><div class='del'>-[if `$CC $CFLAGS $CPPFLAGS $LDFLAGS --print-prog-name=ld 2&gt;&amp;1` -v 2&gt;&amp;1 | grep "GNU ld" &gt; /dev/null; then</div><div class='del'>-  rb_cv_prog_gnu_ld=yes</div><div class='del'>-else</div><div class='del'>-  rb_cv_prog_gnu_ld=no</div><div class='del'>-fi</div><div class='del'>-])</div><div class='del'>-GNU_LD=$rb_cv_prog_gnu_ld</div><div class='del'>-AC_SUBST(GNU_LD)])</div><div class='del'>-</div><div class='del'>-rb_version=`grep RUBY_VERSION $srcdir/version.h`</div><div class='del'>-MAJOR=`expr "$rb_version" : '#define RUBY_VERSION "\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*"'`</div><div class='del'>-MINOR=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*"'`</div><div class='del'>-TEENY=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)"'`</div><div class='del'>-AC_SUBST(MAJOR)</div><div class='del'>-AC_SUBST(MINOR)</div><div class='del'>-AC_SUBST(TEENY)</div><div class='del'>-dnl checks for alternative programs</div><div class='del'>-AC_ARG_WITH(gcc, [  --without-gcc           never use gcc], [</div><div class='del'>-	case $withval in</div><div class='del'>-	no)	: ${CC=cc}</div><div class='del'>-		;;</div><div class='del'>-	yes)	: ${CC=gcc}</div><div class='del'>-		;;</div><div class='del'>-	*)	CC=$withval</div><div class='del'>-		;;</div><div class='del'>-	esac])</div><div class='del'>-dnl If the user switches compilers, we can't believe the cache</div><div class='del'>-if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"</div><div class='del'>-then</div><div class='del'>-  AC_MSG_ERROR(cached CC is different -- throw away $cache_file</div><div class='del'>-(it is also a good idea to do 'make clean' before compiling))</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$program_prefix" = NONE; then</div><div class='del'>-  program_prefix=</div><div class='del'>-fi</div><div class='del'>-AC_CANONICAL_TARGET</div><div class='del'>-target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`</div><div class='del'>-ac_install_sh='' # unusable for extension libraries.</div><div class='del'>-</div><div class='del'>-dnl checks for fat-binary</div><div class='del'>-AC_ARG_ENABLE(fat-binary,</div><div class='del'>-       [  --enable-fat-binary=ARCHS</div><div class='del'>-                          build an Apple/NeXT Multi Architecture Binary (MAB);</div><div class='del'>-                          ARCHS is a comma-delimited list of architectures for</div><div class='del'>-                          which to build; if ARCHS is omitted, then the package</div><div class='del'>-                          will be built for all architectures supported by the</div><div class='del'>-                          platform ("ppc" for MacOS/X and Darwin; "ppc,i386"</div><div class='del'>-                          for Rhapsody; "m68k,i386,sparc" for OpenStep;</div><div class='del'>-                          "m68k,i386,sparc,hppa" for NextStep); if this option</div><div class='del'>-                          is disabled or omitted entirely, then the package</div><div class='del'>-                          will be built only for the target platform],</div><div class='del'>-       [fat_binary=$enableval], [fat_binary=no])</div><div class='del'>-if test "$fat_binary" != no; then</div><div class='del'>-</div><div class='del'>-    AC_MSG_CHECKING([target architectures])</div><div class='del'>-</div><div class='del'>-    # Respect TARGET_ARCHS setting from environment if available.</div><div class='del'>-    if test -z "$TARGET_ARCHS"; then</div><div class='del'>-	# Respect ARCH given to --enable-fat-binary if present.</div><div class='del'>-	if test "$fat_binary" != yes; then</div><div class='del'>-	    TARGET_ARCHS=`echo "$fat_binary" | tr ',' ' '`</div><div class='del'>-	else</div><div class='del'>-	    # Choose a default set of architectures based upon platform.</div><div class='del'>-	    case "$target_os" in</div><div class='del'>-	    darwin*)</div><div class='del'>-		TARGET_ARCHS="ppc"</div><div class='del'>-		;;</div><div class='del'>-	    rhapsody*)</div><div class='del'>-		TARGET_ARCHS="ppc i386"</div><div class='del'>-		;;</div><div class='del'>-	    openstep*)</div><div class='del'>-		TARGET_ARCHS="m68k i386 sparc"</div><div class='del'>-		;;</div><div class='del'>-	    nextstep*)</div><div class='del'>-		TARGET_ARCHS="m68k i386 sparc hppa"</div><div class='del'>-		;;</div><div class='del'>-	    *)</div><div class='del'>-		TARGET_ARCHS=`arch`</div><div class='del'>-	    esac</div><div class='del'>-	fi</div><div class='del'>-    fi</div><div class='del'>-</div><div class='del'>-    AC_MSG_RESULT([$TARGET_ARCHS])</div><div class='del'>-</div><div class='del'>-    # /usr/lib/arch_tool -archify_list $TARGET_ARCHS</div><div class='del'>-    ARCH_FLAG=</div><div class='del'>-    for archs in $TARGET_ARCHS </div><div class='del'>-    do</div><div class='del'>-        ARCH_FLAG="$ARCH_FLAG -arch $archs"</div><div class='del'>-    done</div><div class='del'>-    AC_DEFINE(NEXT_FAT_BINARY)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case $target_cpu in</div><div class='del'>-  i?86) frame_address=yes;;</div><div class='del'>-  *)    frame_address=no;;</div><div class='del'>-esac</div><div class='del'>-AC_ARG_ENABLE(frame-address,</div><div class='del'>-       [  --enable-frame-address  use GCC __builtin_frame_address(). ],</div><div class='del'>-       [frame_address=$enableval])</div><div class='del'>-if test $frame_address = yes; then</div><div class='del'>-    AC_DEFINE(USE_BUILTIN_FRAME_ADDRESS)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_ARG_PROGRAM</div><div class='del'>-</div><div class='del'>-dnl Checks for programs.</div><div class='del'>-</div><div class='del'>-if test x"${build}" != x"${host}"; then</div><div class='del'>-  AC_CHECK_TOOL(CC, gcc)</div><div class='del'>-fi</div><div class='del'>-AC_PROG_CC</div><div class='del'>-AC_PROG_GCC_TRADITIONAL</div><div class='del'>-if test "$GCC" = yes; then</div><div class='del'>-    linker_flag=-Wl,</div><div class='del'>-else</div><div class='del'>-    linker_flag=</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-RUBY_PROG_GNU_LD</div><div class='del'>-RUBY_CPPOUTFILE</div><div class='del'>-</div><div class='del'>-: ${OUTFLAG='-o '}</div><div class='del'>-AC_SUBST(OUTFLAG)</div><div class='del'>-</div><div class='del'>-RUBY_MINGW32</div><div class='del'>-</div><div class='del'>-AC_PROG_YACC</div><div class='del'>-if test "$YACC" = "yacc"; then</div><div class='del'>-  AC_DEFINE([OLD_YACC])</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CHECK_TOOL(RANLIB, ranlib, :)</div><div class='del'>-AC_CHECK_TOOL(AR, ar)</div><div class='del'>-if test -z "$AR"; then</div><div class='del'>-  AC_CHECK_PROGS(AR, aal, ar)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CHECK_TOOL(AS, as)</div><div class='del'>-ASFLAGS=$ASFLAGS</div><div class='del'>-AC_SUBST(ASFLAGS)</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-cygwin*|mingw*)</div><div class='del'>-    AC_CHECK_TOOL(NM, nm)</div><div class='del'>-    AC_CHECK_TOOL(WINDRES, windres)</div><div class='del'>-    AC_CHECK_TOOL(DLLWRAP, dllwrap)</div><div class='del'>-    target_cpu=`echo $target_cpu | sed s/i.86/i386/`</div><div class='del'>-    case "$target_os" in</div><div class='del'>-    mingw*)</div><div class='del'>-	test "$rb_cv_msvcrt" = "" &amp;&amp; unset rb_cv_msvcrt</div><div class='del'>-	AC_CHECK_TOOL(OBJDUMP, objdump)</div><div class='del'>-	AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [</div><div class='del'>-	AC_TRY_LINK([#include &lt;stdio.h&gt;],</div><div class='del'>-		    [FILE* volatile f = stdin; return 0;],</div><div class='del'>-		    [rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |</div><div class='del'>-				   tr A-Z a-z |</div><div class='del'>-				   sed -n '/^[[ 	]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],</div><div class='del'>-		    [rb_cv_msvcrt=msvcrt])</div><div class='del'>-	test "$rb_cv_msvcrt" = "" &amp;&amp; rb_cv_msvcrt=msvcrt])</div><div class='del'>-	AC_ARG_WITH(winsock2,</div><div class='del'>-		[  --with-winsock2         link winsock2 (MinGW only)], [</div><div class='del'>-		case $withval in</div><div class='del'>-		yes) with_winsock2=yes;;</div><div class='del'>-		*)   with_winsock2=no;;</div><div class='del'>-		esac], [with_winsock2=no])</div><div class='del'>-	if test "$with_winsock2" = yes; then</div><div class='del'>-	  AC_DEFINE(USE_WINSOCK2)</div><div class='del'>-	fi</div><div class='del'>-    esac</div><div class='del'>-    : ${enable_shared=yes}</div><div class='del'>-    ;;</div><div class='del'>-aix*)</div><div class='del'>-    AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)</div><div class='del'>-    ;;</div><div class='del'>-hiuxmpp*)</div><div class='del'>-    # by TOYODA Eizi &lt;toyoda@npd.kishou.go.jp&gt;</div><div class='del'>-    AC_DEFINE(__HIUX_MPP__)</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-AC_PROG_LN_S</div><div class='del'>-AC_PROG_MAKE_SET</div><div class='del'>-AC_PROG_INSTALL</div><div class='del'>-</div><div class='del'>-# checks for UNIX variants that set C preprocessor variables</div><div class='del'>-AC_AIX</div><div class='del'>-AC_MINIX</div><div class='del'>-</div><div class='del'>-AC_SUBST(RM, ['rm -f'])</div><div class='del'>-AC_SUBST(CP, ['cp'])</div><div class='del'>-if $as_mkdir_p; then</div><div class='del'>-  AC_SUBST(MAKEDIRS, ['mkdir -p'])</div><div class='del'>-else</div><div class='del'>-  AC_SUBST(MAKEDIRS, ['install -d'])</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-dnl check for large file stuff</div><div class='del'>-mv confdefs.h confdefs1.h</div><div class='del'>-: &gt; confdefs.h</div><div class='del'>-AC_SYS_LARGEFILE</div><div class='del'>-mv confdefs.h largefile.h</div><div class='del'>-mv confdefs1.h confdefs.h</div><div class='del'>-cat largefile.h &gt;&gt; confdefs.h</div><div class='del'>-</div><div class='del'>-AC_CHECK_TYPES([long long, off_t])</div><div class='del'>-</div><div class='del'>-AC_CHECK_SIZEOF(int, 4)</div><div class='del'>-AC_CHECK_SIZEOF(short, 2)</div><div class='del'>-AC_CHECK_SIZEOF(long, 4)</div><div class='del'>-AC_CHECK_SIZEOF(long long, 0)</div><div class='del'>-AC_CHECK_SIZEOF(__int64, 0)</div><div class='del'>-AC_CHECK_SIZEOF(off_t, 0)</div><div class='del'>-AC_CHECK_SIZEOF(void*, 4)</div><div class='del'>-AC_CHECK_SIZEOF(float, 4)</div><div class='del'>-AC_CHECK_SIZEOF(double, 8)</div><div class='del'>-AC_CHECK_SIZEOF(time_t, 0)</div><div class='del'>-</div><div class='del'>-for id in pid_t gid_t uid_t; do</div><div class='del'>-    AC_CHECK_TYPE($id, [typ=$id], [typ=int])</div><div class='del'>-    AC_DEFINE_UNQUOTED(rb_$id, $typ)</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,</div><div class='del'>-  [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],</div><div class='del'>-	rb_cv_have_prototypes=yes,</div><div class='del'>-	rb_cv_have_prototypes=no)])</div><div class='del'>-if test "$rb_cv_have_prototypes" = yes; then</div><div class='del'>-  AC_DEFINE(HAVE_PROTOTYPES)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste,</div><div class='del'>-  [AC_TRY_COMPILE([#define paste(a,b) a##b],</div><div class='del'>-		  [int xy = 1; return paste(x,y);],</div><div class='del'>-		  rb_cv_tokenpaste=ansi,</div><div class='del'>-		  rb_cv_tokenpaste=knr)])</div><div class='del'>-if test "$rb_cv_tokenpaste" = ansi; then</div><div class='del'>-  AC_DEFINE(TOKEN_PASTE(x,y),[x##y])</div><div class='del'>-else</div><div class='del'>-  AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,</div><div class='del'>-  [AC_TRY_COMPILE([</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-int foo(int x, ...) {</div><div class='del'>-	va_list va;</div><div class='del'>-	va_start(va, x);</div><div class='del'>-	va_arg(va, int);</div><div class='del'>-	va_arg(va, char *);</div><div class='del'>-	va_arg(va, double);</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-], [return foo(10, "", 3.14);],</div><div class='del'>-	rb_cv_stdarg=yes,</div><div class='del'>-	rb_cv_stdarg=no)])</div><div class='del'>-if test "$rb_cv_stdarg" = yes; then</div><div class='del'>-  AC_DEFINE(HAVE_STDARG_PROTOTYPES)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl</div><div class='del'>-m4_ifval([$2], dnl</div><div class='del'>-  [AS_VAR_PUSHDEF([attrib],[$2])], dnl</div><div class='del'>-  [AS_VAR_PUSHDEF([attrib],[FUNC_]AS_TR_CPP($1))] dnl</div><div class='del'>-)dnl</div><div class='del'>-m4_ifval([$3], dnl</div><div class='del'>-  [AS_VAR_PUSHDEF([rbcv],[$3])], dnl</div><div class='del'>-  [AS_VAR_PUSHDEF([rbcv],[rb_cv_func_][$1])]dnl</div><div class='del'>-)dnl</div><div class='del'>-AC_CACHE_CHECK(for [$1] function attribute, rbcv,</div><div class='del'>-[rbcv=x</div><div class='del'>-if test "${ac_c_werror_flag+set}"; then</div><div class='del'>-  rb_c_werror_flag="$ac_c_werror_flag"</div><div class='del'>-else</div><div class='del'>-  unset rb_c_werror_flag</div><div class='del'>-fi</div><div class='del'>-ac_c_werror_flag=yes</div><div class='del'>-for mac in "__attribute__ (($1)) x" "x __attribute__ (($1))" "__declspec($1) x" x; do</div><div class='del'>-  AC_TRY_COMPILE(</div><div class='del'>-    [#define ]attrib[(x) $mac</div><div class='del'>-    ]attrib[(void conftest_attribute_check(void));], [],</div><div class='del'>-    [rbcv="$mac"; break])</div><div class='del'>-done</div><div class='del'>-if test "${rb_c_werror_flag+set}"; then</div><div class='del'>-  ac_c_werror_flag="$rb_c_werror_flag"</div><div class='del'>-else</div><div class='del'>-  unset ac_c_werror_flag</div><div class='del'>-fi</div><div class='del'>-])</div><div class='del'>-AC_DEFINE_UNQUOTED(attrib[(x)], $rbcv)</div><div class='del'>-AS_VAR_POPDEF([attrib])</div><div class='del'>-AS_VAR_POPDEF([rbcv])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-RUBY_FUNC_ATTRIBUTE(noreturn, NORETURN)</div><div class='del'>-RUBY_FUNC_ATTRIBUTE(noinline, NOINLINE)</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK([for RUBY_EXTERN], rb_cv_ruby_extern,</div><div class='del'>-[rb_cv_ruby_extern=no</div><div class='del'>-for mac in "__attribute__((dllimport))" "__declspec(dllimport)"; do</div><div class='del'>-  AC_TRY_COMPILE(</div><div class='del'>-    [extern $mac void conftest(void);],</div><div class='del'>-    [rb_cv_ruby_extern="extern $mac"; break])</div><div class='del'>-done])</div><div class='del'>-test "x$rb_cv_ruby_extern" = xno || AC_DEFINE_UNQUOTED(RUBY_EXTERN, $rb_cv_ruby_extern)</div><div class='del'>-</div><div class='del'>-XCFLAGS="$XCFLAGS -DRUBY_EXPORT"</div><div class='del'>-</div><div class='del'>-dnl Check whether we need to define sys_nerr locally</div><div class='del'>-AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default</div><div class='del'>-#include &lt;errno.h&gt;])</div><div class='del'>-</div><div class='del'>-dnl whether link libc_r or not</div><div class='del'>-AC_ARG_WITH(libc_r, </div><div class='del'>-	[  --with-libc_r           link libc_r if possible (FreeBSD only)], [</div><div class='del'>-	case $withval in</div><div class='del'>-	yes) with_libc_r=yes;;</div><div class='del'>-	*)   with_libc_r=no;;</div><div class='del'>-	esac], [with_libc_r=no])</div><div class='del'>-</div><div class='del'>-AC_ARG_ENABLE(pthread,</div><div class='del'>-       [  --enable-pthread        use pthread library.],</div><div class='del'>-       [enable_pthread=$enableval], [enable_pthread=no])</div><div class='del'>-</div><div class='del'>-AC_ARG_ENABLE(fastthread,</div><div class='del'>-       [  --disable-fastthread    do not use the fastthread mutex], [</div><div class='del'>-	: handled by ext/thread/extconf.rb</div><div class='del'>-        ])</div><div class='del'>-</div><div class='del'>-dnl Checks for libraries.</div><div class='del'>-case "$target_os" in</div><div class='del'>-nextstep*)	;;</div><div class='del'>-openstep*)	;;</div><div class='del'>-rhapsody*)	;;</div><div class='del'>-darwin*)	LIBS="-lobjc $LIBS";;</div><div class='del'>-hpux*)		LIBS="-lm $LIBS"</div><div class='del'>-		ac_cv_c_inline=no;;</div><div class='del'>-human*)		ac_cv_func_getpgrp_void=yes</div><div class='del'>-		ac_cv_func_setitimer=no</div><div class='del'>-		;;</div><div class='del'>-beos*)		ac_cv_func_link=no;;</div><div class='del'>-cygwin*)	;;</div><div class='del'>-mingw*)		if test "$with_winsock2" = yes; then</div><div class='del'>-		  LIBS="-lws2_32 $LIBS"</div><div class='del'>-		else</div><div class='del'>-		  LIBS="-lwsock32 $LIBS"</div><div class='del'>-		fi</div><div class='del'>-		LIBS="-lshell32 $LIBS"</div><div class='del'>-		ac_cv_header_a_out_h=no</div><div class='del'>-		ac_cv_header_pwd_h=no</div><div class='del'>-		ac_cv_header_utime_h=no</div><div class='del'>-		ac_cv_header_sys_ioctl_h=no</div><div class='del'>-		ac_cv_header_sys_param_h=no</div><div class='del'>-		ac_cv_header_sys_resource_h=no</div><div class='del'>-		ac_cv_header_sys_select_h=no</div><div class='del'>-		ac_cv_header_sys_time_h=no</div><div class='del'>-		ac_cv_header_sys_times_h=no</div><div class='del'>-		ac_cv_func_times=yes</div><div class='del'>-		ac_cv_func_waitpid=yes</div><div class='del'>-		ac_cv_func_fsync=yes</div><div class='del'>-		ac_cv_func_vsnprintf=yes</div><div class='del'>-		ac_cv_func_seekdir=yes</div><div class='del'>-		ac_cv_func_telldir=yes</div><div class='del'>-		ac_cv_func_isinf=yes</div><div class='del'>-		ac_cv_func_isnan=yes</div><div class='del'>-		ac_cv_func_finite=yes</div><div class='del'>-		ac_cv_func_link=yes</div><div class='del'>-		ac_cv_lib_crypt_crypt=no</div><div class='del'>-		ac_cv_func_getpgrp_void=no</div><div class='del'>-		ac_cv_func_setpgrp_void=yes</div><div class='del'>-		ac_cv_func_memcmp_working=yes</div><div class='del'>-		ac_cv_lib_dl_dlopen=no</div><div class='del'>-		rb_cv_binary_elf=no</div><div class='del'>-		rb_cv_negative_time_t=no</div><div class='del'>-		enable_pthread=no</div><div class='del'>-		ac_cv_func_fcntl=yes</div><div class='del'>-		;;</div><div class='del'>-os2-emx*)	LIBS="-lm $LIBS"</div><div class='del'>-		ac_cv_lib_dir_opendir=no;;</div><div class='del'>-msdosdjgpp*)	LIBS="-lm $LIBS"</div><div class='del'>-		ac_cv_func_getpgrp_void=yes</div><div class='del'>-		ac_cv_func_setitimer=no</div><div class='del'>-                ac_cv_sizeof_rlim_t=4</div><div class='del'>-		ac_cv_func_setrlimit=no</div><div class='del'>-		;;</div><div class='del'>-bsdi*)          LIBS="-lm $LIBS"</div><div class='del'>-                ac_cv_sizeof_rlim_t=8;;</div><div class='del'>-freebsd*)	LIBS="-lm $LIBS"</div><div class='del'>-		AC_CACHE_CHECK([whether -lxpg4 has to be linked],</div><div class='del'>-		  rb_cv_lib_xpg4_needed,</div><div class='del'>-		  [AC_TRY_CPP([</div><div class='del'>-#include &lt;osreldate.h&gt;</div><div class='del'>-#if __FreeBSD_version &lt; 400020 || \</div><div class='del'>-   (__FreeBSD_version &gt;= 500000 &amp;&amp; __FreeBSD_version &lt; 500005)</div><div class='del'>-#error needs libxpg4</div><div class='del'>-#endif</div><div class='del'>-		   ],</div><div class='del'>-		   rb_cv_lib_xpg4_needed=no,</div><div class='del'>-		   rb_cv_lib_xpg4_needed=yes,</div><div class='del'>-		   rb_cv_lib_xpg4_needed=yes)])</div><div class='del'>-		if test "$rb_cv_lib_xpg4_needed" = yes; then</div><div class='del'>-			AC_CHECK_LIB(xpg4, setlocale)</div><div class='del'>-		fi</div><div class='del'>-		if test "$with_libc_r" = yes; then</div><div class='del'>-			AC_CACHE_CHECK([whether libc_r is supplementary to libc],</div><div class='del'>-			  rb_cv_supplementary_lib_c_r,</div><div class='del'>-			  [AC_TRY_CPP([</div><div class='del'>-#include &lt;osreldate.h&gt;</div><div class='del'>-#if 500016 &lt;= __FreeBSD_version</div><div class='del'>-#error libc_r is supplementary to libc</div><div class='del'>-#endif</div><div class='del'>-			   ],</div><div class='del'>-			   rb_cv_supplementary_lib_c_r=no,</div><div class='del'>-			   rb_cv_supplementary_lib_c_r=yes,</div><div class='del'>-			   rb_cv_supplementary_lib_c_r=yes)])</div><div class='del'>-			if test "$rb_cv_supplementary_lib_c_r" = yes; then</div><div class='del'>-			   MAINLIBS="-lc_r $MAINLIBS"</div><div class='del'>-			fi</div><div class='del'>-		fi</div><div class='del'>-		;;</div><div class='del'>-dragonfly*)	LIBS="-lm $LIBS"</div><div class='del'>-		;;</div><div class='del'>-bow)		ac_cv_func_setitimer=no</div><div class='del'>-		;;</div><div class='del'>-superux*)     ac_cv_func_setitimer=no</div><div class='del'>-              ;;</div><div class='del'>-solaris*2.1*) if test -z "$GCC"; then</div><div class='del'>-	           ac_cv_func_isinf=yes</div><div class='del'>-              fi</div><div class='del'>-              LIBS="-lm $LIBS"</div><div class='del'>-              ;;</div><div class='del'>-*) LIBS="-lm $LIBS";;</div><div class='del'>-esac</div><div class='del'>-AC_CHECK_LIB(crypt, crypt)</div><div class='del'>-AC_CHECK_LIB(dl, dlopen)	# Dynamic linking for SunOS/Solaris and SYSV</div><div class='del'>-AC_CHECK_LIB(dld, shl_load)	# Dynamic linking for HP-UX</div><div class='del'>-</div><div class='del'>-case "$target_cpu" in</div><div class='del'>-alpha*)		case "$target_os"::"$GCC" in</div><div class='del'>-		*::yes)	CFLAGS="-mieee $CFLAGS" ;;   # gcc</div><div class='del'>-		osf*)   CFLAGS="-ieee $CFLAGS" ;;    # ccc</div><div class='del'>-		esac ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-dnl Checks for header files.</div><div class='del'>-AC_HEADER_DIRENT</div><div class='del'>-AC_HEADER_STDC</div><div class='del'>-AC_HEADER_SYS_WAIT</div><div class='del'>-AC_CHECK_HEADERS(stdlib.h string.h unistd.h limits.h sys/file.h sys/ioctl.h sys/syscall.h\</div><div class='del'>-		 fcntl.h sys/fcntl.h sys/select.h sys/time.h sys/times.h sys/param.h\</div><div class='del'>-		 syscall.h pwd.h grp.h a.out.h utime.h memory.h direct.h sys/resource.h \</div><div class='del'>-		 sys/mkdev.h sys/utime.h netinet/in_systm.h float.h ieeefp.h pthread.h \</div><div class='del'>-		 ucontext.h intrinsics.h)</div><div class='del'>-</div><div class='del'>-dnl Check additional types.</div><div class='del'>-AC_CHECK_SIZEOF(rlim_t, 0, [</div><div class='del'>-  #ifdef HAVE_SYS_TYPES_H</div><div class='del'>-  # include &lt;sys/types.h&gt;</div><div class='del'>-  #endif</div><div class='del'>-  #ifdef HAVE_SYS_TIME_H</div><div class='del'>-  # include &lt;sys/time.h&gt;</div><div class='del'>-  #endif</div><div class='del'>-  #ifdef HAVE_SYS_RESOURCE_H</div><div class='del'>-  # include &lt;sys/resource.h&gt;</div><div class='del'>-  #endif</div><div class='del'>-  #ifdef HAVE_UNISTD_H</div><div class='del'>-  # include &lt;unistd.h&gt;</div><div class='del'>-  #endif</div><div class='del'>-  #include &lt;stdio.h&gt;</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-dnl Checks for typedefs, structures, and compiler characteristics.</div><div class='del'>-AC_TYPE_SIZE_T</div><div class='del'>-AC_STRUCT_ST_BLKSIZE</div><div class='del'>-AC_STRUCT_ST_BLOCKS</div><div class='del'>-AC_STRUCT_ST_RDEV</div><div class='del'>-</div><div class='del'>-dnl Checks for library functions.</div><div class='del'>-AC_TYPE_GETGROUPS</div><div class='del'>-AC_TYPE_SIGNAL</div><div class='del'>-case "${target_cpu}-${target_os}" in</div><div class='del'>-powerpc-darwin*)</div><div class='del'>-  AC_LIBSOURCES(alloca.c)</div><div class='del'>-  AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])</div><div class='del'>-  AC_DEFINE(C_ALLOCA)</div><div class='del'>-  AC_DEFINE_UNQUOTED(alloca, alloca)</div><div class='del'>-  ;;</div><div class='del'>-*)</div><div class='del'>-  AC_FUNC_ALLOCA</div><div class='del'>-  ;;</div><div class='del'>-esac</div><div class='del'>-AC_FUNC_MEMCMP</div><div class='del'>-AC_FUNC_FSEEKO</div><div class='del'>-AC_CHECK_FUNCS(ftello)</div><div class='del'>-AC_REPLACE_FUNCS(dup2 memmove strcasecmp strncasecmp strerror strftime\</div><div class='del'>-		 strchr strstr strtoul crypt flock vsnprintf\</div><div class='del'>-		 isnan finite isinf hypot acosh erf)</div><div class='del'>-AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd eaccess\</div><div class='del'>-	      truncate ftruncate chsize times utimes fcntl lockf lstat symlink link\</div><div class='del'>-	      readlink setitimer setruid seteuid setreuid setresuid\</div><div class='del'>-	      setproctitle setrgid setegid setregid setresgid issetugid pause\</div><div class='del'>-	      lchown lchmod getpgrp setpgrp getpgid setpgid initgroups\</div><div class='del'>-	      getgroups setgroups getpriority getrlimit setrlimit sysconf\</div><div class='del'>-	      group_member dlopen sigprocmask\</div><div class='del'>-	      sigaction _setjmp setsid telldir seekdir fchmod\</div><div class='del'>-	      mktime timegm gettimeofday\</div><div class='del'>-	      cosh sinh tanh round setuid setgid setenv unsetenv)</div><div class='del'>-AC_ARG_ENABLE(setreuid,</div><div class='del'>-       [  --enable-setreuid       use setreuid()/setregid() according to need even if obsolete.],</div><div class='del'>-       [use_setreuid=$enableval])</div><div class='del'>-if test "$use_setreuid" = yes; then</div><div class='del'>-    AC_DEFINE(USE_SETREUID)</div><div class='del'>-    AC_DEFINE(USE_SETREGID)</div><div class='del'>-fi</div><div class='del'>-AC_STRUCT_TIMEZONE</div><div class='del'>-AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,</div><div class='del'>-  [AC_TRY_COMPILE([#include &lt;time.h&gt;],</div><div class='del'>-    [struct tm t; t.tm_gmtoff = 3600;],</div><div class='del'>-  [rb_cv_member_struct_tm_tm_gmtoff=yes],</div><div class='del'>-  [rb_cv_member_struct_tm_tm_gmtoff=no])])</div><div class='del'>-if test "$rb_cv_member_struct_tm_tm_gmtoff" = yes; then</div><div class='del'>-  AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)</div><div class='del'>-fi</div><div class='del'>-AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,</div><div class='del'>-  [AC_TRY_LINK([#include &lt;time.h&gt;</div><div class='del'>-  int i;],</div><div class='del'>-  	[i = daylight;],</div><div class='del'>-	rb_cv_have_daylight=yes,</div><div class='del'>-	rb_cv_have_daylight=no)])</div><div class='del'>-if test "$rb_cv_have_daylight" = yes; then</div><div class='del'>-  AC_DEFINE(HAVE_DAYLIGHT)</div><div class='del'>-fi</div><div class='del'>-AC_DEFUN([RUBY_CHECK_VARTYPE], [dnl</div><div class='del'>-AC_CACHE_CHECK([for external $1], rb_cv_var_$1,</div><div class='del'>-  [rb_cv_var_$1=no</div><div class='del'>-  AC_TRY_COMPILE([#define _XOPEN_SOURCE 1</div><div class='del'>-    $2</div><div class='del'>-    const volatile void *volatile t;],</div><div class='del'>-    [t = &amp;(&amp;$1)[0];],</div><div class='del'>-    [for t in $3; do</div><div class='del'>-      AC_TRY_COMPILE([#define _XOPEN_SOURCE 1</div><div class='del'>-        $2</div><div class='del'>-        extern $t $1;</div><div class='del'>-        const volatile void *volatile t;],</div><div class='del'>-        [t = &amp;(&amp;$1)[0];],</div><div class='del'>-        [rb_cv_var_$1=$t; break])</div><div class='del'>-    done])])</div><div class='del'>-if test "[$rb_cv_var_]$1" != no; then</div><div class='del'>-  AC_DEFINE([HAVE_VAR_]m4_toupper($1))</div><div class='del'>-  AC_DEFINE_UNQUOTED([TYPEOF_VAR_]m4_toupper($1), $rb_cv_var_$1)</div><div class='del'>-fi])</div><div class='del'>-RUBY_CHECK_VARTYPE(timezone, [#include &lt;time.h&gt;], [long int])</div><div class='del'>-RUBY_CHECK_VARTYPE(altzone, [#include &lt;time.h&gt;], [long int])</div><div class='del'>-if test "$rb_cv_var_timezone" = no; then</div><div class='del'>-  AC_CHECK_FUNCS(timezone)</div><div class='del'>-  if test "$ ac_cv_func_timezone" = yes; then</div><div class='del'>-    AC_CACHE_CHECK([whether timezone requires zero arguments], rb_cv_func_timezone_void,</div><div class='del'>-      [AC_TRY_COMPILE([#include &lt;time.h&gt;],</div><div class='del'>-	[(void)timezone(0, 0);],</div><div class='del'>-	[rb_cv_func_timezone_void=no],</div><div class='del'>-	[rb_cv_func_timezone_void=yes])]</div><div class='del'>-    )</div><div class='del'>-    if test $rb_cv_func_timezone_void = yes; then</div><div class='del'>-      AC_DEFINE(TIMEZONE_VOID)</div><div class='del'>-    fi</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,</div><div class='del'>-  [AC_TRY_RUN([</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-check(tm, y, m, d, h, s)</div><div class='del'>-    struct tm *tm;</div><div class='del'>-    int y, m, d, h, s;</div><div class='del'>-{</div><div class='del'>-    if (!tm ||</div><div class='del'>-	tm-&gt;tm_year != y ||</div><div class='del'>-	tm-&gt;tm_mon  != m-1 ||</div><div class='del'>-	tm-&gt;tm_mday != d ||</div><div class='del'>-	tm-&gt;tm_hour != h ||</div><div class='del'>-	tm-&gt;tm_sec  != s) {</div><div class='del'>-	exit(1);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-   time_t t = -1;</div><div class='del'>-   struct tm *tm;</div><div class='del'>-</div><div class='del'>-   check(gmtime(&amp;t), 69, 12, 31, 23, 59);</div><div class='del'>-   t = ~(time_t)0 &lt;&lt; 31;</div><div class='del'>-   check(gmtime(&amp;t), 1, 12, 13, 20, 52);</div><div class='del'>-   return 0;</div><div class='del'>-}</div><div class='del'>-],</div><div class='del'>-	rb_cv_negative_time_t=yes,</div><div class='del'>-	rb_cv_negative_time_t=no,</div><div class='del'>-	rb_cv_negative_time_t=yes)])</div><div class='del'>-if test "$rb_cv_negative_time_t" = yes; then</div><div class='del'>-  AC_DEFINE(NEGATIVE_TIME_T)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$ac_cv_func_sigprocmask" = yes &amp;&amp; test "$ac_cv_func_sigaction" = yes; then</div><div class='del'>-   AC_DEFINE(POSIX_SIGNAL)</div><div class='del'>-else</div><div class='del'>-  AC_CHECK_FUNCS(sigsetmask)</div><div class='del'>-  AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,</div><div class='del'>-    [AC_TRY_RUN([</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;signal.h&gt;</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-sig_handler(dummy)</div><div class='del'>-     int dummy;</div><div class='del'>-{</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  signal(SIGINT, sig_handler);</div><div class='del'>-  kill(getpid(), SIGINT);</div><div class='del'>-  kill(getpid(), SIGINT);</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-],</div><div class='del'>-	rb_cv_bsd_signal=yes,</div><div class='del'>-	rb_cv_bsd_signal=no,</div><div class='del'>-	rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])</div><div class='del'>-  if test "$rb_cv_bsd_signal" = yes; then</div><div class='del'>-    AC_DEFINE(BSD_SIGNAL)</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_FUNC_GETPGRP</div><div class='del'>-AC_FUNC_SETPGRP  </div><div class='del'>-</div><div class='del'>-AC_C_BIGENDIAN</div><div class='del'>-AC_C_CONST</div><div class='del'>-AC_C_CHAR_UNSIGNED</div><div class='del'>-AC_C_INLINE</div><div class='del'>-AC_C_VOLATILE</div><div class='del'>-</div><div class='del'>-if test x"$target_cpu" = xia64; then</div><div class='del'>-    AC_LIBOBJ([ia64])</div><div class='del'>-    AC_CACHE_CHECK(for __libc_ia64_register_backing_store_base,</div><div class='del'>-                   rb_cv___libc_ia64_register_backing_store_base,</div><div class='del'>-    [rb_cv___libc_ia64_register_backing_store_base=no</div><div class='del'>-    AC_TRY_LINK(</div><div class='del'>-      [extern unsigned long __libc_ia64_register_backing_store_base;],</div><div class='del'>-      [unsigned long p = __libc_ia64_register_backing_store_base;</div><div class='del'>-       printf("%ld\n", p);],</div><div class='del'>-      [rb_cv___libc_ia64_register_backing_store_base=yes])])</div><div class='del'>-    if test $rb_cv___libc_ia64_register_backing_store_base = yes; then</div><div class='del'>-      AC_DEFINE(HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE)</div><div class='del'>-    fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign,</div><div class='del'>-    [AC_TRY_RUN([</div><div class='del'>-int</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  if (-1==(-1&gt;&gt;1))</div><div class='del'>-    return 0;</div><div class='del'>-  return 1;</div><div class='del'>-}</div><div class='del'>-],</div><div class='del'>-	rb_cv_rshift_sign=yes,</div><div class='del'>-	rb_cv_rshift_sign=no,</div><div class='del'>-	rb_cv_rshift_sign=yes)])</div><div class='del'>-if test "$rb_cv_rshift_sign" = yes; then</div><div class='del'>-  AC_DEFINE(RSHIFT(x,y), ((x)&gt;&gt;(int)y))</div><div class='del'>-else</div><div class='del'>-  AC_DEFINE(RSHIFT(x,y), (((x)&lt;0) ? ~((~(x))&gt;&gt;y) : (x)&gt;&gt;y))</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_MSG_CHECKING(read count field in FILE structures)</div><div class='del'>-AC_CACHE_VAL(rb_cv_fcnt,</div><div class='del'>-[for fcnt in	dnl</div><div class='del'>-     _cnt	dnl</div><div class='del'>-     __cnt	dnl</div><div class='del'>-     _r		dnl</div><div class='del'>-     readCount	dnl</div><div class='del'>-     _rcount	dnl for emx0.9c</div><div class='del'>-; do</div><div class='del'>-    AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='del'>-],</div><div class='del'>-	[FILE *f = stdin; f-&gt;$fcnt = 0;],</div><div class='del'>-	rb_cv_fcnt="$fcnt"; break,</div><div class='del'>-	rb_cv_fcnt="not found")</div><div class='del'>-done])</div><div class='del'>-if test "$rb_cv_fcnt" = "not found"; then</div><div class='del'>-  AC_MSG_RESULT([not found(OK if using GNU libc)])</div><div class='del'>-else</div><div class='del'>-  AC_MSG_RESULT($rb_cv_fcnt)</div><div class='del'>-  AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_MSG_CHECKING(read buffer ptr field in FILE structures)</div><div class='del'>-AC_CACHE_VAL(rb_cv_frptr,</div><div class='del'>-[for frptr in	dnl</div><div class='del'>-     _IO_read_ptr dnl</div><div class='del'>-     _ptr	dnl</div><div class='del'>-     __ptr	dnl</div><div class='del'>-     bufpos	dnl</div><div class='del'>-     _p	dnl</div><div class='del'>-; do</div><div class='del'>-    AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='del'>-],</div><div class='del'>-	[FILE *f = stdin; char buf[256]; f-&gt;$frptr = buf;],</div><div class='del'>-	rb_cv_frptr="$frptr"; break,</div><div class='del'>-	rb_cv_frptr="not found")</div><div class='del'>-done])</div><div class='del'>-if test "$rb_cv_frptr" = "not found"; then</div><div class='del'>-  AC_MSG_RESULT([not found])</div><div class='del'>-else</div><div class='del'>-  AC_MSG_RESULT($rb_cv_frptr)</div><div class='del'>-  AC_DEFINE_UNQUOTED(FILE_READPTR, $rb_cv_frptr)</div><div class='del'>-</div><div class='del'>-  if test "$rb_cv_fcnt" = "not found"; then</div><div class='del'>-    AC_MSG_CHECKING(read buffer end field in FILE structures)</div><div class='del'>-    AC_CACHE_VAL(rb_cv_frend,</div><div class='del'>-    [for frend in	dnl</div><div class='del'>-         _IO_read_end	dnl</div><div class='del'>-         bufread 	dnl</div><div class='del'>-    ; do</div><div class='del'>-        AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='del'>-    ],</div><div class='del'>-  	[FILE *f = stdin; char buf[256]; f-&gt;$frend = buf;],</div><div class='del'>-  	rb_cv_frend="$frend"; break,</div><div class='del'>-  	rb_cv_frend="not found")</div><div class='del'>-    done])</div><div class='del'>-    if test "$rb_cv_frend" = "not found"; then</div><div class='del'>-      AC_MSG_RESULT([not found])</div><div class='del'>-    else</div><div class='del'>-      AC_MSG_RESULT($rb_cv_frend)</div><div class='del'>-      AC_DEFINE_UNQUOTED(FILE_READEND, $rb_cv_frend)</div><div class='del'>-    fi</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_DEFUN([RUBY_CHECK_IO_NEED],</div><div class='del'>-[AC_CACHE_CHECK(whether need to [$1], [$2],</div><div class='del'>-    [AC_TRY_RUN([</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#ifndef SEEK_SET</div><div class='del'>-#define SEEK_SET 0</div><div class='del'>-#endif</div><div class='del'>-#ifndef SEEK_CUR</div><div class='del'>-#define SEEK_CUR 1</div><div class='del'>-#endif</div><div class='del'>-#define before_seek(f) ]ifelse(index($2,flush_before_seek),-1,[fflush(f)],[(f,0)])[</div><div class='del'>-#define reset_rw(f) ]ifelse(index($2,seek_between_rw),-1,[do_seek(f,SEEK_CUR)],[(f,0)])[</div><div class='del'>-#define do_seek(f, w) (before_seek(f), fseek(f,0,w))</div><div class='del'>-</div><div class='del'>-char *fn = "conftest.dat";</div><div class='del'>-char *wombat = "wombat\n";</div><div class='del'>-char *koara = "koara\n";</div><div class='del'>-char *kangaroo = "kangaroo\n";</div><div class='del'>-</div><div class='del'>-int main()</div><div class='del'>-{</div><div class='del'>-    char buf[BUFSIZ];</div><div class='del'>-    FILE *f;</div><div class='del'>-    int r = 1;</div><div class='del'>-</div><div class='del'>-    if (!(f = fopen(fn, "w+"))) return 1;</div><div class='del'>-    fputs(wombat, f);</div><div class='del'>-    do_seek(f, SEEK_SET);</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;</div><div class='del'>-    reset_rw(f);</div><div class='del'>-    fputs(koara, f);</div><div class='del'>-    fputs(kangaroo, f);</div><div class='del'>-    do_seek(f, SEEK_SET);</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, koara)) goto fail;</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;</div><div class='del'>-    do_seek(f, SEEK_SET);</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;</div><div class='del'>-    reset_rw(f);</div><div class='del'>-    fputc('X', f);</div><div class='del'>-    reset_rw(f);</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, koara+1)) goto fail;</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;</div><div class='del'>-    do_seek(f, SEEK_SET);</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || buf[0] != 'X' || strcmp(buf+1, koara+1)) goto fail;</div><div class='del'>-    if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;</div><div class='del'>-    r = 0;</div><div class='del'>-  fail:</div><div class='del'>-    fclose(f);</div><div class='del'>-    unlink(fn);</div><div class='del'>-    return r;</div><div class='del'>-}</div><div class='del'>-], [$2]=no, [$2]=yes, [$2]=[$3])])])</div><div class='del'>-RUBY_CHECK_IO_NEED(seek between R/W, rb_cv_need_io_seek_between_rw, yes)</div><div class='del'>-if test "$rb_cv_need_io_seek_between_rw" = yes; then</div><div class='del'>-  AC_DEFINE(NEED_IO_SEEK_BETWEEN_RW, 1)</div><div class='del'>-fi</div><div class='del'>-dnl RUBY_CHECK_IO_NEED(flush before seek, rb_cv_need_io_flush_before_seek, no)</div><div class='del'>-dnl if test "$rb_cv_need_io_flush_before_seek" = yes; then</div><div class='del'>-dnl   AC_DEFINE(NEED_IO_FLUSH_BEFORE_SEEK, 1)</div><div class='del'>-dnl fi</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK([whether st_ino is huge], rb_cv_huge_st_ino,</div><div class='del'>-[AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-struct stat test_stat;</div><div class='del'>-], [sizeof(test_stat.st_ino)&gt;sizeof(long)])],</div><div class='del'>-rb_cv_huge_st_ino=yes,</div><div class='del'>-rb_cv_huge_st_ino=no)</div><div class='del'>-])</div><div class='del'>-if test $rb_cv_huge_st_ino = yes; then</div><div class='del'>-  AC_DEFINE(HUGE_ST_INO)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$ac_cv_func_sysconf" = yes; then</div><div class='del'>-  AC_DEFUN([RUBY_CHECK_SYSCONF], [dnl</div><div class='del'>-  AC_CACHE_CHECK([whether _SC_$1 is supported], rb_cv_have_sc_[]m4_tolower($1),</div><div class='del'>-    [AC_TRY_COMPILE([#include &lt;unistd.h&gt;</div><div class='del'>-      ],</div><div class='del'>-      [_SC_$1 &gt;= 0],</div><div class='del'>-      rb_cv_have_sc_[]m4_tolower($1)=yes,</div><div class='del'>-      rb_cv_have_sc_[]m4_tolower($1)=no)</div><div class='del'>-    ])</div><div class='del'>-  if test "$rb_cv_have_sc_[]m4_tolower($1)" = yes; then</div><div class='del'>-    AC_DEFINE(HAVE__SC_$1)</div><div class='del'>-  fi</div><div class='del'>-  ])</div><div class='del'>-  RUBY_CHECK_SYSCONF(CLK_TCK)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$target_cpu" in</div><div class='del'>-m68*|i?86|ia64|sparc*|alpha*) rb_cv_stack_grow_dir=-1;;</div><div class='del'>-hppa*) rb_cv_stack_grow_dir=+1;;</div><div class='del'>-esac</div><div class='del'>-AC_CACHE_CHECK(stack growing direction, rb_cv_stack_grow_dir,</div><div class='del'>-  [AC_TRY_RUN([</div><div class='del'>-/* recurse to get rid of inlining */</div><div class='del'>-static int</div><div class='del'>-stack_growup_p(addr, n)</div><div class='del'>-    volatile int *addr, n;</div><div class='del'>-{</div><div class='del'>-    volatile int end;</div><div class='del'>-    if (n &gt; 0)</div><div class='del'>-	return *addr = stack_growup_p(addr, n - 1);</div><div class='del'>-    else</div><div class='del'>-	return (&amp;end &gt; addr);</div><div class='del'>-}</div><div class='del'>-int main()</div><div class='del'>-{</div><div class='del'>-    int x;</div><div class='del'>-    return stack_growup_p(&amp;x, 10);</div><div class='del'>-}</div><div class='del'>-], rb_cv_stack_grow_dir=-1, rb_cv_stack_grow_dir=+1, rb_cv_stack_grow_dir=0)])</div><div class='del'>-AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir)</div><div class='del'>-</div><div class='del'>-if test x"$enable_pthread" = xyes; then</div><div class='del'>-    for pthread_lib in pthread pthreads c c_r; do</div><div class='del'>- 	AC_CHECK_LIB($pthread_lib, pthread_kill,</div><div class='del'>-		     rb_with_pthread=yes, rb_with_pthread=no)</div><div class='del'>-	if test "$rb_with_pthread" = "yes"; then break; fi</div><div class='del'>-    done</div><div class='del'>-    if test x"$rb_with_pthread" = xyes; then</div><div class='del'>-	AC_DEFINE(_REENTRANT)</div><div class='del'>-	AC_DEFINE(_THREAD_SAFE)</div><div class='del'>-	AC_DEFINE(HAVE_LIBPTHREAD)</div><div class='del'>-	case $pthread_lib in</div><div class='del'>-	c)</div><div class='del'>-	    ;;</div><div class='del'>-	c_r)</div><div class='del'>-	    MAINLIBS="-pthread $MAINLIBS"</div><div class='del'>-	    ;;</div><div class='del'>-	*)</div><div class='del'>-      	    LIBS="-l$pthread_lib $LIBS"</div><div class='del'>-	    ;;</div><div class='del'>-	esac</div><div class='del'>-    else</div><div class='del'>-	AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")</div><div class='del'>-    fi</div><div class='del'>-    AC_CHECK_FUNCS(nanosleep)</div><div class='del'>-    if test x"$ac_cv_func_nanosleep" = xno; then</div><div class='del'>-       AC_CHECK_LIB(rt, nanosleep)</div><div class='del'>-       if test x"$ac_cv_lib_rt_nanosleep" = xyes; then</div><div class='del'>-           AC_DEFINE(HAVE_NANOSLEEP)</div><div class='del'>-       fi</div><div class='del'>-    fi</div><div class='del'>-fi</div><div class='del'>-if test x"$ac_cv_header_ucontext_h" = xyes; then</div><div class='del'>-    if test x"$rb_with_pthread" = xyes; then</div><div class='del'>-	AC_CHECK_FUNCS(getcontext setcontext)</div><div class='del'>-    fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-dnl default value for $KANJI</div><div class='del'>-DEFAULT_KCODE="KCODE_NONE"</div><div class='del'>-</div><div class='del'>-AC_ARG_WITH(default-kcode, </div><div class='del'>-	[  --with-default-kcode=CODE specify default value for \$KCODE (utf8|euc|sjis|none)], </div><div class='del'>-	[case $withval in</div><div class='del'>-	utf8) DEFAULT_KCODE="KCODE_UTF8";;</div><div class='del'>-	euc)  DEFAULT_KCODE="KCODE_EUC";;</div><div class='del'>-	sjis) DEFAULT_KCODE="KCODE_SJIS";;</div><div class='del'>-	none) DEFAULT_KCODE="KCODE_NONE";;</div><div class='del'>-        *)    AC_MSG_WARN($withval is not valid kcode; ignored);;</div><div class='del'>-	esac])</div><div class='del'>-AC_DEFINE_UNQUOTED(DEFAULT_KCODE, $DEFAULT_KCODE)</div><div class='del'>-</div><div class='del'>-dnl wheather use dln_a_out or not</div><div class='del'>-AC_ARG_WITH(dln-a-out, </div><div class='del'>-	[  --with-dln-a-out        use dln_a_out if possible], [</div><div class='del'>-	case $withval in</div><div class='del'>-	yes) with_dln_a_out=yes;;</div><div class='del'>-	*)   with_dln_a_out=no;;</div><div class='del'>-	esac], [with_dln_a_out=no])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,</div><div class='del'>-[AC_TRY_RUN([</div><div class='del'>-/* Test for whether ELF binaries are produced */</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-main() {</div><div class='del'>-	char buffer[4];</div><div class='del'>-	int i=open("conftest",O_RDONLY);</div><div class='del'>-	if(i==-1)</div><div class='del'>-		exit(1); /* fail */</div><div class='del'>-	if(read(i,&amp;buffer[0],4)&lt;4)</div><div class='del'>-		exit(1); /* fail */</div><div class='del'>-	if(buffer[0] != 127 || buffer[1] != 'E' ||</div><div class='del'>-           buffer[2] != 'L' || buffer[3] != 'F')</div><div class='del'>-		exit(1); /* fail */</div><div class='del'>-	exit(0); /* succeed (yes, it's ELF) */</div><div class='del'>-}</div><div class='del'>-],</div><div class='del'>-rb_cv_binary_elf=yes,</div><div class='del'>-rb_cv_binary_elf=no,</div><div class='del'>-rb_cv_binary_elf=yes)])</div><div class='del'>-</div><div class='del'>-if test "$rb_cv_binary_elf" = yes; then</div><div class='del'>-  AC_DEFINE(USE_ELF)</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-linux* | gnu* | k*bsd*-gnu | bsdi*)</div><div class='del'>-    if test "$rb_cv_binary_elf" = no; then</div><div class='del'>-	with_dln_a_out=yes</div><div class='del'>-    else</div><div class='del'>-	LDFLAGS="$LDFLAGS -rdynamic"</div><div class='del'>-    fi;;</div><div class='del'>-esac</div><div class='del'>-LIBEXT=a</div><div class='del'>-</div><div class='del'>-AC_SUBST(DLDFLAGS)dnl</div><div class='del'>-AC_SUBST(ARCH_FLAG)dnl</div><div class='del'>-</div><div class='del'>-AC_SUBST(STATIC)dnl</div><div class='del'>-AC_SUBST(CCDLFLAGS)dnl</div><div class='del'>-AC_SUBST(LDSHARED)dnl</div><div class='del'>-AC_SUBST(DLEXT)dnl</div><div class='del'>-AC_SUBST(DLEXT2)dnl</div><div class='del'>-AC_SUBST(LIBEXT)dnl</div><div class='del'>-</div><div class='del'>-STATIC=</div><div class='del'>-: ${LIBPATHFLAG=' -L%s'}</div><div class='del'>-: ${PATHFLAG=''}</div><div class='del'>-</div><div class='del'>-if test "$with_dln_a_out" != yes; then</div><div class='del'>-  rb_cv_dlopen=unknown</div><div class='del'>-  AC_MSG_CHECKING(whether OS depend dynamic link works)</div><div class='del'>-  if test "$GCC" = yes; then</div><div class='del'>-    case "$target_os" in</div><div class='del'>-    nextstep*)	CCDLFLAGS="$CCDLFLAGS -fno-common";;</div><div class='del'>-    openstep*)	CCDLFLAGS="$CCDLFLAGS -fno-common";;</div><div class='del'>-    rhapsody*)	CCDLFLAGS="$CCDLFLAGS -fno-common";;</div><div class='del'>-    darwin*)	CCDLFLAGS="$CCDLFLAGS -fno-common";;</div><div class='del'>-    human*|bsdi*|beos*|cygwin*|mingw*|aix*|interix*) ;;</div><div class='del'>-    *) CCDLFLAGS="$CCDLFLAGS -fPIC";;</div><div class='del'>-    esac</div><div class='del'>-  else</div><div class='del'>-    case "$target_os" in</div><div class='del'>-	hpux*)		CCDLFLAGS="$CCDLFLAGS +Z";;</div><div class='del'>-	solaris*|irix*)	CCDLFLAGS="$CCDLFLAGS -KPIC" ;;</div><div class='del'>-	sunos*)		CCDLFLAGS="$CCDLFLAGS -PIC" ;;</div><div class='del'>-	esix*|uxpds*)   CCDLFLAGS="$CCDLFLAGS -KPIC" ;;</div><div class='del'>-	*)		: ${CCDLFLAGS=""} ;;</div><div class='del'>-    esac</div><div class='del'>-  fi</div><div class='del'>-</div><div class='del'>-  case "$target_os" in</div><div class='del'>-	hpux*)		DLDFLAGS="$DLDFLAGS -E"</div><div class='del'>-			: ${LDSHARED='ld -b'}</div><div class='del'>-			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='del'>-			: ${LIBPATHENV=SHLIB_PATH}</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	solaris*) 	if test "$GCC" = yes; then</div><div class='del'>-                          : ${LDSHARED='$(CC) -shared'}</div><div class='del'>-			   if test "$rb_cv_prog_gnu_ld" = yes; then</div><div class='del'>-	 		       LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='del'>-			   fi</div><div class='del'>-			else</div><div class='del'>-			   : ${LDSHARED='ld -G'}</div><div class='del'>-			fi</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	sunos*) 	: ${LDSHARED='ld -assert nodefinitions'}</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	irix*)		: ${LDSHARED='ld -shared'}</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	sysv4*) 	: ${LDSHARED='ld -G'}</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-        nto-qnx*)       : ${LDSHARED="qcc -shared"}</div><div class='del'>-                        rb_cv_dlopen=yes ;;</div><div class='del'>-	esix*|uxpds*) 	: ${LDSHARED="ld -G"}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	osf*) 		: ${LDSHARED="ld -shared -expect_unresolved \"*\""}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	bsdi3*) 	case "$CC" in</div><div class='del'>-			*shlicc*)	: ${LDSHARED="$CC -r"}</div><div class='del'>-					rb_cv_dlopen=yes ;;</div><div class='del'>-			esac ;;</div><div class='del'>-	linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi*)</div><div class='del'>-			: ${LDSHARED='${CC} -shared'}</div><div class='del'>-			if test "$rb_cv_binary_elf" = yes; then</div><div class='del'>-			    LDFLAGS="$LDFLAGS -Wl,-export-dynamic"</div><div class='del'>-			fi</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	interix*) 	: ${LDSHARED="$CC -shared"}</div><div class='del'>-			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='del'>-			LIBPATHFLAG=" -L%1\$-s"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	freebsd*|dragonfly*)       : ${LDSHARED="$CC -shared"}</div><div class='del'>-			if test "$rb_cv_binary_elf" = yes; then</div><div class='del'>-			    LDFLAGS="$LDFLAGS -rdynamic"</div><div class='del'>-			    DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)'</div><div class='del'>-			else</div><div class='del'>-			  test "$GCC" = yes &amp;&amp; test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable"</div><div class='del'>-			fi</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	openbsd*) 	: ${LDSHARED="\$(CC) -shared ${CCDLFLAGS}"}</div><div class='del'>-			if test "$rb_cv_binary_elf" = yes; then</div><div class='del'>-			    LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='del'>-			fi</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	nextstep*)	: ${LDSHARED='cc -r -nostdlib'}</div><div class='del'>-			LDFLAGS="$LDFLAGS -u libsys_s"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	openstep*)	: ${LDSHARED='cc -dynamic -bundle -undefined suppress'}</div><div class='del'>-			: ${LDFLAGS=""}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	rhapsody*)	: ${LDSHARED='cc -dynamic -bundle -undefined suppress'}</div><div class='del'>-			: ${LDFLAGS=""}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	darwin*)	: ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}</div><div class='del'>-			: ${LDFLAGS=""}</div><div class='del'>-			: ${LIBPATHENV=DYLD_LIBRARY_PATH}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-        aix*)           if test "$GCC" = yes; then</div><div class='del'>-			    : ${LDSHARED='$(CC) -shared'}</div><div class='del'>-			else</div><div class='del'>-			    : ${LDSHARED='/usr/ccs/bin/ld'}</div><div class='del'>-			fi</div><div class='del'>-			DLDFLAGS="${linker_flag}-G"' -eInit_$(TARGET)'</div><div class='del'>-			LDFLAGS="${LDFLAGS} ${linker_flag}-brtl"</div><div class='del'>-			XLDFLAGS="${linker_flag}-bE:ruby.imp"</div><div class='del'>-                        : ${ARCHFILE="ruby.imp"}</div><div class='del'>-                        TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'</div><div class='del'>-                        TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'</div><div class='del'>-                        : ${LIBPATHENV=SHLIB_PATH}</div><div class='del'>-                        rb_cv_dlopen=yes ;;</div><div class='del'>-	human*)		: ${DLDFLAGS=''}</div><div class='del'>-			: ${LDSHARED=''}</div><div class='del'>-			: ${LDFLAGS=''}</div><div class='del'>-			: ${LINK_SO='ar cru $@ $(OBJS)'}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	beos*) 		case "$target_cpu" in</div><div class='del'>-			  powerpc*)</div><div class='del'>-			    : ${LDSHARED="ld -xms"}</div><div class='del'>-			    DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'</div><div class='del'>-                            ;;</div><div class='del'>-			  i586*)</div><div class='del'>-			    : ${LDSHARED="ld -shared"}</div><div class='del'>-			    DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"</div><div class='del'>-			    ;;</div><div class='del'>-			esac</div><div class='del'>-			: ${LIBPATHENV=LIBRARY_PATH}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	nto-qnx*)	DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"</div><div class='del'>-			: ${LDSHARED='ld -Bshareable -x'}</div><div class='del'>-			LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	cygwin*|mingw*)	: ${LDSHARED="${CC} -shared -s"}</div><div class='del'>-			XLDFLAGS="$XLDFLAGS -Wl,--stack,0x02000000"</div><div class='del'>-			DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-image-base,--enable-auto-import,--export-all"</div><div class='del'>-			: ${LIBPATHENV=""}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	hiuxmpp)	: ${LDSHARED='ld -r'} ;;</div><div class='del'>-	atheos*) 	: ${LDSHARED="$CC -shared"}</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	os2-emx*)	LDFLAGS="$LDFLAGS -Zbsd-signals"</div><div class='del'>-			;;</div><div class='del'>-	*) 		: ${LDSHARED='ld'} ;;</div><div class='del'>-  esac</div><div class='del'>-  AC_MSG_RESULT($rb_cv_dlopen)</div><div class='del'>-</div><div class='del'>-  AC_ARG_ENABLE(rpath,</div><div class='del'>-       [  --disable-rpath         embed run path into extension libraries.],</div><div class='del'>-       [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])</div><div class='del'>-  if test "$enable_rpath" = yes; then</div><div class='del'>-    LIBPATHFLAG=" -L%1\$-s"</div><div class='del'>-    RPATHFLAG=" ${linker_flag}-R%1\$-s"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-AC_SUBST(LINK_SO)</div><div class='del'>-AC_SUBST(LIBPATHFLAG)</div><div class='del'>-AC_SUBST(RPATHFLAG)</div><div class='del'>-AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")</div><div class='del'>-AC_SUBST(TRY_LINK)</div><div class='del'>-</div><div class='del'>-dln_a_out_works=no</div><div class='del'>-if test "$ac_cv_header_a_out_h" = yes; then</div><div class='del'>-  if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then</div><div class='del'>-    cat confdefs.h &gt; config.h</div><div class='del'>-    AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,</div><div class='del'>-    [AC_TRY_COMPILE([</div><div class='del'>-#define USE_DLN_A_OUT</div><div class='del'>-#include "dln.c"</div><div class='del'>-],</div><div class='del'>-	[], </div><div class='del'>-	rb_cv_dln_a_out=yes,</div><div class='del'>-	rb_cv_dln_a_out=no)])</div><div class='del'>-    if test "$rb_cv_dln_a_out" = yes; then</div><div class='del'>-      dln_a_out_works=yes</div><div class='del'>-      AC_DEFINE(USE_DLN_A_OUT)</div><div class='del'>-    fi</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$dln_a_out_works" = yes; then</div><div class='del'>-  if test "$GCC" = yes; then</div><div class='del'>-    STATIC=-static</div><div class='del'>-  else</div><div class='del'>-    STATIC=-Bstatic</div><div class='del'>-  fi</div><div class='del'>-  DLEXT=so</div><div class='del'>-  CCDLFLAGS=</div><div class='del'>-else</div><div class='del'>-  case "$target_os" in</div><div class='del'>-    hpux*)	DLEXT=sl;;</div><div class='del'>-    nextstep*|openstep*|rhapsody*|darwin*)</div><div class='del'>-		DLEXT=bundle;;</div><div class='del'>-    os2-emx*)	DLEXT=dll;;</div><div class='del'>-    cygwin*|mingw*)</div><div class='del'>-		DLEXT=so DLEXT2=dll;;</div><div class='del'>-    *)		DLEXT=so;;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-len=2 # .rb</div><div class='del'>-n=`expr "$DLEXT"  : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='del'>-n=`expr "$DLEXT2" : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='del'>-AC_DEFINE_UNQUOTED(DLEXT_MAXLEN, `expr $len + 1`)</div><div class='del'>-test ".$DLEXT"  = "." || AC_DEFINE_UNQUOTED(DLEXT,  ".$DLEXT")</div><div class='del'>-test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")</div><div class='del'>-</div><div class='del'>-AC_SUBST(STRIP)dnl</div><div class='del'>-if test "$with_dln_a_out" = yes; then</div><div class='del'>-  STRIP=true</div><div class='del'>-else</div><div class='del'>-  STRIP=strip</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-  linux* | gnu* | k*bsd*-gnu)</div><div class='del'>-	STRIP='strip -S -x';;</div><div class='del'>-  nextstep*)</div><div class='del'>-	STRIP='strip -A -n';;</div><div class='del'>-  openstep*)</div><div class='del'>-	STRIP='strip -A -n';;</div><div class='del'>-  rhapsody*)</div><div class='del'>-	STRIP='strip -A -n';;</div><div class='del'>-  darwin*)</div><div class='del'>-	STRIP='strip -A -n';;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-EXTSTATIC=</div><div class='del'>-AC_SUBST(EXTSTATIC)dnl</div><div class='del'>-AC_ARG_WITH(static-linked-ext,</div><div class='del'>-	    [  --with-static-linked-ext link external modules statically],</div><div class='del'>-            [case $withval in</div><div class='del'>-	     yes) STATIC=</div><div class='del'>-		  EXTSTATIC=static;;</div><div class='del'>-	     *)	;;</div><div class='del'>-	     esac])</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-  human*)</div><div class='del'>-    AC_CHECK_LIB(signal, _harderr)</div><div class='del'>-    AC_CHECK_LIB(hmem, hmemset)</div><div class='del'>-    AC_CHECK_FUNCS(select)</div><div class='del'>-    AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number,</div><div class='del'>-		   rb_cv_missing__dtos18,</div><div class='del'>-    [AC_TRY_RUN(</div><div class='del'>-changequote(&lt;&lt;, &gt;&gt;)dnl</div><div class='del'>-&lt;&lt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-main ()</div><div class='del'>-{</div><div class='del'>-   char buf[256];</div><div class='del'>-   sprintf (buf, "%g", 1e+300);</div><div class='del'>-   exit (strcmp (buf, "1e+300") ? 0 : 1);</div><div class='del'>-}</div><div class='del'>-&gt;&gt;,</div><div class='del'>-changequote([, ])dnl</div><div class='del'>-rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)])</div><div class='del'>-    if test "$rb_cv_missing__dtos18" = yes; then</div><div class='del'>-      AC_DEFINE(MISSING__DTOS18)</div><div class='del'>-    fi</div><div class='del'>-    AC_CACHE_CHECK(whether PD libc fconvert fail to round,</div><div class='del'>-		   rb_cv_missing_fconvert,</div><div class='del'>-    [AC_TRY_RUN(</div><div class='del'>-changequote(&lt;&lt;, &gt;&gt;)dnl</div><div class='del'>-&lt;&lt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-main ()</div><div class='del'>-{</div><div class='del'>-  char buf[256];</div><div class='del'>-  sprintf (buf, "%f", log(exp(1.0)));</div><div class='del'>-  exit (strcmp (buf, "1.000000") ? 0 : 1);</div><div class='del'>-}</div><div class='del'>-&gt;&gt;,</div><div class='del'>-changequote([, ])dnl</div><div class='del'>-rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)])</div><div class='del'>-    if test "$rb_cv_missing_fconvert" = yes; then</div><div class='del'>-      AC_DEFINE(MISSING_FCONVERT)</div><div class='del'>-    fi</div><div class='del'>-    AC_LIBOBJ([x68.o])</div><div class='del'>-    CFLAGS="$CFLAGS -fansi-only"</div><div class='del'>-    XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144"</div><div class='del'>-    EXEEXT=.x</div><div class='del'>-    OBJEXT=o</div><div class='del'>-    setup=Setup.x68</div><div class='del'>-    ;;</div><div class='del'>-  dnl OS/2 environment w/ Autoconf 2.1x for EMX</div><div class='del'>-  os2-emx)</div><div class='del'>-    AC_LIBOBJ([os2])</div><div class='del'>-    setup=Setup.emx</div><div class='del'>-    ;;</div><div class='del'>-  *djgpp*)</div><div class='del'>-    setup=Setup.dj</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    setup=Setup</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-AC_SUBST(setup)</div><div class='del'>-</div><div class='del'>-if test "$prefix" = NONE; then</div><div class='del'>-  prefix=$ac_default_prefix</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-#if test "$fat_binary" != no ; then</div><div class='del'>-#  CFLAGS="$CFLAGS $ARCH_FLAG"</div><div class='del'>-#fi</div><div class='del'>-</div><div class='del'>-if test x"$cross_compiling" = xyes; then</div><div class='del'>-  test x"$MINIRUBY" = x &amp;&amp; MINIRUBY="${RUBY-ruby} -I`pwd` -rfake"</div><div class='del'>-  PREP=fake.rb</div><div class='del'>-  RUNRUBY='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'</div><div class='del'>-else</div><div class='del'>-  MINIRUBY='./miniruby$(EXEEXT)'</div><div class='del'>-  PREP='miniruby$(EXEEXT)'</div><div class='del'>-  RUNRUBY='$(MINIRUBY) $(srcdir)/runruby.rb --extout=$(EXTOUT) --'</div><div class='del'>-fi</div><div class='del'>-AC_SUBST(MINIRUBY)</div><div class='del'>-AC_SUBST(PREP)</div><div class='del'>-AC_SUBST(RUNRUBY)</div><div class='del'>-AC_SUBST(EXTOUT, [${EXTOUT-.ext}])</div><div class='del'>-</div><div class='del'>-FIRSTMAKEFILE=""</div><div class='del'>-LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'</div><div class='del'>-LIBRUBY='$(LIBRUBY_A)'</div><div class='del'>-LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'</div><div class='del'>-LIBRUBYARG='$(LIBRUBYARG_STATIC)'</div><div class='del'>-SOLIBS=</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-  cygwin*|mingw*|beos*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)</div><div class='del'>-    : ${DLDLIBS=""}</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    DLDLIBS="$DLDLIBS -lc"</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-RUBY_SO_NAME='$(RUBY_INSTALL_NAME)'</div><div class='del'>-LIBRUBY_LDSHARED=$LDSHARED</div><div class='del'>-LIBRUBY_DLDFLAGS=$DLDFLAGS</div><div class='del'>-LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'</div><div class='del'>-LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so'</div><div class='del'>-ENABLE_SHARED=no</div><div class='del'>-</div><div class='del'>-AC_ARG_ENABLE(shared,</div><div class='del'>-       [  --enable-shared         build a shared library for Ruby. ],</div><div class='del'>-       [enable_shared=$enableval])</div><div class='del'>-if test "$enable_shared" = 'yes'; then</div><div class='del'>-  LIBRUBY='$(LIBRUBY_SO)'</div><div class='del'>-  LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'</div><div class='del'>-  LIBRUBYARG='$(LIBRUBYARG_SHARED)'</div><div class='del'>-  CFLAGS="$CFLAGS $CCDLFLAGS"</div><div class='del'>-  ENABLE_SHARED=yes</div><div class='del'>-  if test "$rb_cv_binary_elf" = yes; then</div><div class='del'>-    SOLIBS='$(LIBS)'</div><div class='del'>-  fi</div><div class='del'>-  case "$target_os" in</div><div class='del'>-    sunos4*)</div><div class='del'>-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='del'>-	;;</div><div class='del'>-    linux* | gnu* | k*bsd*-gnu | atheos*)</div><div class='del'>-	LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'</div><div class='del'>-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='del'>-	;;</div><div class='del'>-    freebsd*|dragonfly*)</div><div class='del'>-	SOLIBS='$(LIBS)'</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'</div><div class='del'>-	if test "$rb_cv_binary_elf" != "yes" ; then</div><div class='del'>-	    LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"</div><div class='del'>-	    LIBRUBY_ALIASES=''</div><div class='del'>-	fi</div><div class='del'>-	;;</div><div class='del'>-    netbsd*)</div><div class='del'>-	SOLIBS='$(LIBS)'</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'</div><div class='del'>-	LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'</div><div class='del'>-	if test "$rb_cv_binary_elf" = yes; then # ELF platforms</div><div class='del'>-	   LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='del'>-	else	# a.out platforms</div><div class='del'>-	   LIBRUBY_ALIASES=""</div><div class='del'>-	fi</div><div class='del'>- 	;;</div><div class='del'>-    openbsd*)</div><div class='del'>-	SOLIBS='$(LIBS)'</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`</div><div class='del'>-	;;</div><div class='del'>-    solaris*)</div><div class='del'>-	SOLIBS='$(LIBS)'</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)'</div><div class='del'>-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) lib$(RUBY_SO_NAME).so'</div><div class='del'>-	if test "$GCC" = yes; then</div><div class='del'>-	    LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'</div><div class='del'>-	fi</div><div class='del'>-	XLDFLAGS="$XLDFLAGS "'-R${libdir}'</div><div class='del'>- 	;;</div><div class='del'>-    hpux*)</div><div class='del'>-	XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)'</div><div class='del'>-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'</div><div class='del'>-	;;</div><div class='del'>-    aix*)</div><div class='del'>-	LIBRUBY_DLDFLAGS="${linker_flag}-G ${linker_flag}-bnoentry $XLDFLAGS"</div><div class='del'>-	LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'</div><div class='del'>-	SOLIBS='-lm -lc'</div><div class='del'>-	;;</div><div class='del'>-    beos*)</div><div class='del'>-	case "$target_cpu" in</div><div class='del'>-	powerpc*)</div><div class='del'>-	    LIBRUBY_DLDFLAGS='-f ruby.exp -lnet -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'</div><div class='del'>-	    ;;</div><div class='del'>-	esac</div><div class='del'>-	;;</div><div class='del'>-    darwin*)</div><div class='del'>-	LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'</div><div class='del'>-	LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'</div><div class='del'>-	LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'</div><div class='del'>-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'</div><div class='del'>-	;;</div><div class='del'>-    interix*)</div><div class='del'>-	LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'</div><div class='del'>-	;;</div><div class='del'>-    *)</div><div class='del'>-	;;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-if test "$enable_rpath" = yes; then</div><div class='del'>-    LIBRUBYARG_SHARED="${linker_flag}-R ${linker_flag}\$(libdir) -L\$(libdir) $LIBRUBYARG_SHARED"</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-LDFLAGS="-L. $LDFLAGS"</div><div class='del'>-AC_SUBST(ARCHFILE)</div><div class='del'>-</div><div class='del'>-dnl build rdoc index if requested</div><div class='del'>-RDOCTARGET=""</div><div class='del'>-AC_ARG_ENABLE(install-doc,</div><div class='del'>-       [  --enable-install-doc    build and install rdoc indexes during install ],</div><div class='del'>-       [install_doc=$enableval], [install_doc=no])</div><div class='del'>-if test "$install_doc" != no; then</div><div class='del'>-   RDOCTARGET="install-doc"</div><div class='del'>-fi</div><div class='del'>-AC_SUBST(RDOCTARGET)</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-    linux*)</div><div class='del'>-	XCFLAGS="$XCFLAGS -D_GNU_SOURCE=1"</div><div class='del'>-	;;</div><div class='del'>-    netbsd*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe"</div><div class='del'>-	;;</div><div class='del'>-    nextstep*|openstep*)</div><div class='del'>-	# The -fno-common is needed if we wish to embed the Ruby interpreter</div><div class='del'>-	# into a plugin module of some project (as opposed to embedding it</div><div class='del'>-	# within the project's application).  The -I/usr/local/include is</div><div class='del'>-	# needed because CPP as discovered by configure (cc -E -traditional)</div><div class='del'>-	# fails to consult /usr/local/include by default.  This causes</div><div class='del'>-	# mkmf.rb's have_header() to fail if the desired resource happens to be</div><div class='del'>-	# installed in the /usr/local tree.</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe -fno-common"</div><div class='del'>-	CPPFLAGS="$CPPFLAGS -I/usr/local/include"</div><div class='del'>-	;;</div><div class='del'>-    rhapsody*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe -no-precomp -fno-common"</div><div class='del'>-	;;</div><div class='del'>-    darwin*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe -fno-common"</div><div class='del'>-	MINIOBJS=dmydln.o</div><div class='del'>-	;;</div><div class='del'>-    os2-emx)</div><div class='del'>-    	CFLAGS="$CFLAGS -DOS2 -Zmts"</div><div class='del'>-	LIBRUBY_A=`echo $LIBRUBY_A | sed 's/^lib//'`</div><div class='del'>-	LIBRUBY_SO=`echo $LIBRUBY_SO | sed 's/^lib//'`</div><div class='del'>-	LIBRUBY_ALIASES=`for i in $LIBRUBY_ALIASES; do echo "$i"; done | sed 's/^lib//'`</div><div class='del'>-	;;</div><div class='del'>-    osf*)</div><div class='del'>-	if test "$GCC" != "yes" ; then</div><div class='del'>-	  # compile something small: taint.c is fine for this.</div><div class='del'>-	  # the main point is the '-v' flag of 'cc'.</div><div class='del'>-	  case "`cc -v -I. -c main.c -o /tmp/main.o 2&gt;&amp;1`" in</div><div class='del'>-	  */gemc_cc*)   # we have the new DEC GEM CC</div><div class='del'>-                        CFLAGS="$CFLAGS -oldc"</div><div class='del'>-                        ;;</div><div class='del'>-          *)            # we have the old MIPS CC</div><div class='del'>-                        ;;</div><div class='del'>-          esac</div><div class='del'>-	  # cleanup</div><div class='del'>-	  rm -f /tmp/main.o</div><div class='del'>-	  CFLAGS="$CFLAGS -std"</div><div class='del'>-	fi</div><div class='del'>-	;;</div><div class='del'>-    beos*)</div><div class='del'>-	case "$target_cpu" in</div><div class='del'>-	powerpc*)</div><div class='del'>-	    CFLAGS="$CFLAGS -relax_pointers"</div><div class='del'>-	    ;;</div><div class='del'>-	esac</div><div class='del'>-	;;</div><div class='del'>-    cygwin*|mingw*)</div><div class='del'>-	case "$target_os" in</div><div class='del'>-	cygwin*)</div><div class='del'>-	    if test x"$enable_shared" = xyes; then</div><div class='del'>-		LIBRUBY_SO='cyg$(RUBY_SO_NAME)'${MAJOR}${MINOR}.dll</div><div class='del'>-		LIBRUBY='lib$(RUBY_SO_NAME).dll.a'</div><div class='del'>-	    fi</div><div class='del'>-	    ;;</div><div class='del'>-	mingw*)</div><div class='del'>-	    RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}</div><div class='del'>-	    if test x"$enable_shared" = xyes; then</div><div class='del'>-		LIBRUBY_SO='$(RUBY_SO_NAME)'.dll</div><div class='del'>-		LIBRUBY='lib$(LIBRUBY_SO).a'</div><div class='del'>-	    fi</div><div class='del'>-	    AC_LIBOBJ([win32])</div><div class='del'>-	    COMMON_LIBS=m</div><div class='del'>-#	    COMMON_MACROS="WIN32_LEAN_AND_MEAN="</div><div class='del'>-	    COMMON_HEADERS="windows.h winsock.h"</div><div class='del'>-	    ;;</div><div class='del'>-	esac</div><div class='del'>-	LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'</div><div class='del'>-	LIBRUBY_ALIASES=''</div><div class='del'>-	FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in</div><div class='del'>-	SOLIBS='$(LIBS)'</div><div class='del'>-	if test x"$enable_shared" = xno; then</div><div class='del'>-	    LIBRUBY_SO=dummy</div><div class='del'>-	    LIBRUBY='lib$(RUBY_SO_NAME).a'</div><div class='del'>-	    LIBRUBYARG='-l$(RUBY_SO_NAME)'</div><div class='del'>-	fi</div><div class='del'>-	MINIOBJS=dmydln.o</div><div class='del'>-	;;</div><div class='del'>-    hpux*)</div><div class='del'>-	case "$YACC" in</div><div class='del'>-	  *yacc*)</div><div class='del'>-	    XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"</div><div class='del'>-	    YACC="$YACC -Nl40000 -Nm40000"</div><div class='del'>-	    ;;</div><div class='del'>-	esac</div><div class='del'>-	MINIOBJS=dmydln.o</div><div class='del'>-	;;</div><div class='del'>-    *)</div><div class='del'>-	;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-case "$build_os" in</div><div class='del'>-  *msdosdjgpp*) FIRSTMAKEFILE=GNUmakefile:djgpp/GNUmakefile.in;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-CPPFLAGS="$CPPFLAGS "'$(DEFS)'</div><div class='del'>-AC_SUBST(XCFLAGS)dnl</div><div class='del'>-AC_SUBST(XLDFLAGS)dnl</div><div class='del'>-AC_SUBST(LIBRUBY_LDSHARED)</div><div class='del'>-AC_SUBST(LIBRUBY_DLDFLAGS)</div><div class='del'>-AC_SUBST(RUBY_INSTALL_NAME)</div><div class='del'>-AC_SUBST(rubyw_install_name)</div><div class='del'>-AC_SUBST(RUBYW_INSTALL_NAME)</div><div class='del'>-AC_SUBST(RUBY_SO_NAME)</div><div class='del'>-AC_SUBST(LIBRUBY_A)</div><div class='del'>-AC_SUBST(LIBRUBY_SO)</div><div class='del'>-AC_SUBST(LIBRUBY_ALIASES)</div><div class='del'>-AC_SUBST(LIBRUBY)</div><div class='del'>-AC_SUBST(LIBRUBYARG)</div><div class='del'>-AC_SUBST(LIBRUBYARG_STATIC)</div><div class='del'>-AC_SUBST(LIBRUBYARG_SHARED)</div><div class='del'>-AC_SUBST(SOLIBS)</div><div class='del'>-AC_SUBST(DLDLIBS)</div><div class='del'>-AC_SUBST(ENABLE_SHARED)</div><div class='del'>-AC_SUBST(MAINLIBS)</div><div class='del'>-AC_SUBST(COMMON_LIBS)</div><div class='del'>-AC_SUBST(COMMON_MACROS)</div><div class='del'>-AC_SUBST(COMMON_HEADERS)</div><div class='del'>-AC_SUBST(EXPORT_PREFIX)</div><div class='del'>-AC_SUBST(MINIOBJS)</div><div class='del'>-</div><div class='del'>-MAKEFILES="Makefile `echo $FIRSTMAKEFILE | sed 's/:.*//'`"</div><div class='del'>-MAKEFILES="`echo $MAKEFILES`"</div><div class='del'>-AC_SUBST(MAKEFILES)</div><div class='del'>-</div><div class='del'>-ri_prefix=</div><div class='del'>-test "$program_prefix" != NONE &amp;&amp;</div><div class='del'>-  ri_prefix=$program_prefix</div><div class='del'>-</div><div class='del'>-ri_suffix=</div><div class='del'>-test "$program_suffix" != NONE &amp;&amp;</div><div class='del'>-  ri_suffix=$program_suffix</div><div class='del'>-</div><div class='del'>-RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"</div><div class='del'>-case "$target_os" in</div><div class='del'>-  cygwin*|mingw*)</div><div class='del'>-    RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}"</div><div class='del'>-    rubyw_install_name="$RUBYW_INSTALL_NAME"</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-case "$target_os" in</div><div class='del'>-  cygwin*|mingw*|*djgpp*|os2-emx*)</div><div class='del'>-    RUBY_LIB_PREFIX="/lib/ruby"</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    RUBY_LIB_PREFIX="${prefix}/lib/ruby"</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='del'>-RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}"</div><div class='del'>-</div><div class='del'>-AC_ARG_WITH(sitedir,</div><div class='del'>-	    [  --with-sitedir=DIR      site libraries in DIR [PREFIX/lib/ruby/site_ruby]],</div><div class='del'>-            [sitedir=$withval],</div><div class='del'>-            [sitedir='${prefix}/lib/ruby/site_ruby'])</div><div class='del'>-SITE_DIR=`eval echo \\"${sitedir}\\"`</div><div class='del'>-case "$target_os" in</div><div class='del'>-  cygwin*|mingw*|*djgpp*|os2-emx*)</div><div class='del'>-    RUBY_SITE_LIB_PATH="`expr "$SITE_DIR" : "$prefix\(/.*\)"`" ||</div><div class='del'>-    RUBY_SITE_LIB_PATH="$SITE_DIR";;</div><div class='del'>-  *)</div><div class='del'>-    RUBY_SITE_LIB_PATH="$SITE_DIR";;</div><div class='del'>-esac</div><div class='del'>-RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${MAJOR}.${MINOR}"</div><div class='del'>-</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}")</div><div class='del'>-</div><div class='del'>-AC_SUBST(arch)dnl</div><div class='del'>-AC_SUBST(sitearch)dnl</div><div class='del'>-AC_SUBST(sitedir)dnl</div><div class='del'>-</div><div class='del'>-configure_args=$ac_configure_args</div><div class='del'>-AC_SUBST(configure_args)dnl</div><div class='del'>-</div><div class='del'>-if test "$fat_binary" != no ; then</div><div class='del'>-    arch="fat-${target_os}"</div><div class='del'>-</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,</div><div class='del'>-                 "${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")</div><div class='del'>-</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,</div><div class='del'>-                 "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")</div><div class='del'>-else</div><div class='del'>-    arch="${target_cpu}-${target_os}"</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$target_os" in</div><div class='del'>-  mingw*) sitearch="i386-$rb_cv_msvcrt" ;;</div><div class='del'>-  *) sitearch="${arch}" ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}")</div><div class='del'>-</div><div class='del'>-AC_ARG_WITH(search-path,</div><div class='del'>-		[  --with-search-path=DIR specify the additional search path],</div><div class='del'>-		[search_path=$withval])</div><div class='del'>-if test "$search_path" != ""; then</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_ARG_WITH(mantype,</div><div class='del'>-		[  --with-mantype=TYPE specify man page type; TYPE is one of man and doc],</div><div class='del'>-		[</div><div class='del'>-			case "$withval" in</div><div class='del'>-			man|doc)</div><div class='del'>-				MANTYPE=$withval</div><div class='del'>-				;;</div><div class='del'>-			*)</div><div class='del'>-				AC_MSG_ERROR(invalid man type: $withval)</div><div class='del'>-				;;</div><div class='del'>-			esac</div><div class='del'>-		])</div><div class='del'>-if test -z "$MANTYPE"; then</div><div class='del'>-	AC_PATH_PROGS(NROFF, nroff awf, /bin/false, "/usr/bin:/usr/ucb")</div><div class='del'>-	if ${NROFF} -mdoc ${srcdir}/ruby.1 &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-		MANTYPE=doc</div><div class='del'>-	else</div><div class='del'>-		MANTYPE=man</div><div class='del'>-	fi</div><div class='del'>-fi</div><div class='del'>-AC_SUBST(MANTYPE)</div><div class='del'>-</div><div class='del'>-if test -f config.h &amp;&amp; tr -d '\015' &lt; confdefs.h | cmp -s config.h -; then</div><div class='del'>-  echo "config.h unchanged"</div><div class='del'>-else</div><div class='del'>-  echo "creating config.h"</div><div class='del'>-  tr -d '\015' &lt; confdefs.h &gt; config.h</div><div class='del'>-fi</div><div class='del'>-tr -d '\015' &lt; largefile.h &gt; confdefs.h</div><div class='del'>-</div><div class='del'>-AC_CONFIG_FILES($FIRSTMAKEFILE)</div><div class='del'>-AC_CONFIG_FILES(Makefile, [{</div><div class='del'>-	sed '/^MISSING/s/\$U\././g' Makefile</div><div class='del'>-	echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'</div><div class='del'>-	test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);'</div><div class='del'>-	sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk</div><div class='del'>-      } &gt;&gt; confmk$$.tmp &amp;&amp; mv -f confmk$$.tmp Makefile],</div><div class='del'>-[RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT])</div><div class='del'>-AC_OUTPUT</div><div class='head'>diff --git a/constant.h b/constant.h<br/>new file mode 100644<br/>index 0000000000..fcccf07384<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/constant.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>constant.h</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  constant.h -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: Sun Nov 15 00:09:33 2009</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2009 Yusuke Endoh</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+#ifndef CONSTANT_H</div><div class='add'>+#define CONSTANT_H</div><div class='add'>+</div><div class='add'>+typedef enum {</div><div class='add'>+    CONST_DEPRECATED = 0x100,</div><div class='add'>+</div><div class='add'>+    CONST_VISIBILITY_MASK = 0xff,</div><div class='add'>+    CONST_PUBLIC    = 0x00,</div><div class='add'>+    CONST_PRIVATE,</div><div class='add'>+    CONST_VISIBILITY_MAX</div><div class='add'>+} rb_const_flag_t;</div><div class='add'>+</div><div class='add'>+#define RB_CONST_PRIVATE_P(ce) \</div><div class='add'>+    (((ce)-&gt;flag &amp; CONST_VISIBILITY_MASK) == CONST_PRIVATE)</div><div class='add'>+#define RB_CONST_PUBLIC_P(ce) \</div><div class='add'>+    (((ce)-&gt;flag &amp; CONST_VISIBILITY_MASK) == CONST_PUBLIC)</div><div class='add'>+</div><div class='add'>+#define RB_CONST_DEPRECATED_P(ce) \</div><div class='add'>+    ((ce)-&gt;flag &amp; CONST_DEPRECATED)</div><div class='add'>+</div><div class='add'>+typedef struct rb_const_entry_struct {</div><div class='add'>+    rb_const_flag_t flag;</div><div class='add'>+    int line;</div><div class='add'>+    const VALUE value;            /* should be mark */</div><div class='add'>+    const VALUE file;             /* should be mark */</div><div class='add'>+} rb_const_entry_t;</div><div class='add'>+</div><div class='add'>+VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+void rb_free_const_table(struct rb_id_table *tbl);</div><div class='add'>+VALUE rb_public_const_get(VALUE klass, ID id);</div><div class='add'>+VALUE rb_public_const_get_at(VALUE klass, ID id);</div><div class='add'>+VALUE rb_public_const_get_from(VALUE klass, ID id);</div><div class='add'>+int rb_public_const_defined(VALUE klass, ID id);</div><div class='add'>+int rb_public_const_defined_at(VALUE klass, ID id);</div><div class='add'>+int rb_public_const_defined_from(VALUE klass, ID id);</div><div class='add'>+rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);</div><div class='add'>+int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);</div><div class='add'>+</div><div class='add'>+#endif /* CONSTANT_H */</div><div class='head'>diff --git a/cont.c b/cont.c<br/>new file mode 100644<br/>index 0000000000..539d1f48cc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/cont.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>cont.c</a></div><div class='hunk'>@@ -0,0 +1,2009 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  cont.c -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: Thu May 23 09:03:43 2007</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2007 Koichi Sasada</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "gc.h"</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+</div><div class='add'>+/* FIBER_USE_NATIVE enables Fiber performance improvement using system</div><div class='add'>+ * dependent method such as make/setcontext on POSIX system or</div><div class='add'>+ * CreateFiber() API on Windows.</div><div class='add'>+ * This hack make Fiber context switch faster (x2 or more).</div><div class='add'>+ * However, it decrease maximum number of Fiber.  For example, on the</div><div class='add'>+ * 32bit POSIX OS, ten or twenty thousands Fiber can be created.</div><div class='add'>+ *</div><div class='add'>+ * Details is reported in the paper "A Fast Fiber Implementation for Ruby 1.9"</div><div class='add'>+ * in Proc. of 51th Programming Symposium, pp.21--28 (2010) (in Japanese).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#if !defined(FIBER_USE_NATIVE)</div><div class='add'>+# if defined(HAVE_GETCONTEXT) &amp;&amp; defined(HAVE_SETCONTEXT)</div><div class='add'>+#   if 0</div><div class='add'>+#   elif defined(__NetBSD__)</div><div class='add'>+/* On our experience, NetBSD doesn't support using setcontext() and pthread</div><div class='add'>+ * simultaneously.  This is because pthread_self(), TLS and other information</div><div class='add'>+ * are represented by stack pointer (higher bits of stack pointer).</div><div class='add'>+ * TODO: check such constraint on configure.</div><div class='add'>+ */</div><div class='add'>+#     define FIBER_USE_NATIVE 0</div><div class='add'>+#   elif defined(__sun)</div><div class='add'>+/* On Solaris because resuming any Fiber caused SEGV, for some reason.</div><div class='add'>+ */</div><div class='add'>+#     define FIBER_USE_NATIVE 0</div><div class='add'>+#   elif defined(__ia64)</div><div class='add'>+/* At least, Linux/ia64's getcontext(3) doesn't save register window.</div><div class='add'>+ */</div><div class='add'>+#     define FIBER_USE_NATIVE 0</div><div class='add'>+#   elif defined(__GNU__)</div><div class='add'>+/* GNU/Hurd doesn't fully support getcontext, setcontext, makecontext</div><div class='add'>+ * and swapcontext functions. Disabling their usage till support is</div><div class='add'>+ * implemented. More info at</div><div class='add'>+ * http://darnassus.sceen.net/~hurd-web/open_issues/glibc/#getcontext</div><div class='add'>+ */</div><div class='add'>+#     define FIBER_USE_NATIVE 0</div><div class='add'>+#   else</div><div class='add'>+#     define FIBER_USE_NATIVE 1</div><div class='add'>+#   endif</div><div class='add'>+# elif defined(_WIN32)</div><div class='add'>+#  define FIBER_USE_NATIVE 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#if !defined(FIBER_USE_NATIVE)</div><div class='add'>+#define FIBER_USE_NATIVE 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;sys/mman.h&gt;</div><div class='add'>+#include &lt;ucontext.h&gt;</div><div class='add'>+#endif</div><div class='add'>+#define RB_PAGE_SIZE (pagesize)</div><div class='add'>+#define RB_PAGE_MASK (~(RB_PAGE_SIZE - 1))</div><div class='add'>+static long pagesize;</div><div class='add'>+#endif /*FIBER_USE_NATIVE*/</div><div class='add'>+</div><div class='add'>+#define CAPTURE_JUST_VALID_VM_STACK 1</div><div class='add'>+</div><div class='add'>+enum context_type {</div><div class='add'>+    CONTINUATION_CONTEXT = 0,</div><div class='add'>+    FIBER_CONTEXT = 1,</div><div class='add'>+    ROOT_FIBER_CONTEXT = 2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct cont_saved_vm_stack {</div><div class='add'>+    VALUE *ptr;</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+    size_t slen;  /* length of stack (head of ec-&gt;vm_stack) */</div><div class='add'>+    size_t clen;  /* length of control frames (tail of ec-&gt;vm_stack) */</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef struct rb_context_struct {</div><div class='add'>+    enum context_type type;</div><div class='add'>+    int argc;</div><div class='add'>+    VALUE self;</div><div class='add'>+    VALUE value;</div><div class='add'>+</div><div class='add'>+    struct cont_saved_vm_stack saved_vm_stack;</div><div class='add'>+</div><div class='add'>+    struct {</div><div class='add'>+	VALUE *stack;</div><div class='add'>+	VALUE *stack_src;</div><div class='add'>+	size_t stack_size;</div><div class='add'>+#ifdef __ia64</div><div class='add'>+	VALUE *register_stack;</div><div class='add'>+	VALUE *register_stack_src;</div><div class='add'>+	int register_stack_size;</div><div class='add'>+#endif</div><div class='add'>+    } machine;</div><div class='add'>+    rb_execution_context_t saved_ec;</div><div class='add'>+    rb_jmpbuf_t jmpbuf;</div><div class='add'>+    rb_ensure_entry_t *ensure_array;</div><div class='add'>+    rb_ensure_list_t *ensure_list;</div><div class='add'>+} rb_context_t;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Fiber status:</div><div class='add'>+ *    [Fiber.new] ------&gt; FIBER_CREATED</div><div class='add'>+ *                        | [Fiber#resume]</div><div class='add'>+ *                        v</div><div class='add'>+ *                   +--&gt; FIBER_RESUMED ----+</div><div class='add'>+ *    [Fiber#resume] |    | [Fiber.yield]   |</div><div class='add'>+ *                   |    v                 |</div><div class='add'>+ *                   +-- FIBER_SUSPENDED    | [Terminate]</div><div class='add'>+ *                                          |</div><div class='add'>+ *                       FIBER_TERMINATED &lt;-+</div><div class='add'>+ */</div><div class='add'>+enum fiber_status {</div><div class='add'>+    FIBER_CREATED,</div><div class='add'>+    FIBER_RESUMED,</div><div class='add'>+    FIBER_SUSPENDED,</div><div class='add'>+    FIBER_TERMINATED</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define FIBER_CREATED_P(fib)    ((fib)-&gt;status == FIBER_CREATED)</div><div class='add'>+#define FIBER_RESUMED_P(fib)    ((fib)-&gt;status == FIBER_RESUMED)</div><div class='add'>+#define FIBER_SUSPENDED_P(fib)  ((fib)-&gt;status == FIBER_SUSPENDED)</div><div class='add'>+#define FIBER_TERMINATED_P(fib) ((fib)-&gt;status == FIBER_TERMINATED)</div><div class='add'>+#define FIBER_RUNNABLE_P(fib)   (FIBER_CREATED_P(fib) || FIBER_SUSPENDED_P(fib))</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE &amp;&amp; !defined(_WIN32)</div><div class='add'>+#define MAX_MACHINE_STACK_CACHE  10</div><div class='add'>+static int machine_stack_cache_index = 0;</div><div class='add'>+typedef struct machine_stack_cache_struct {</div><div class='add'>+    void *ptr;</div><div class='add'>+    size_t size;</div><div class='add'>+} machine_stack_cache_t;</div><div class='add'>+static machine_stack_cache_t machine_stack_cache[MAX_MACHINE_STACK_CACHE];</div><div class='add'>+static machine_stack_cache_t terminated_machine_stack;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct rb_fiber_struct {</div><div class='add'>+    rb_context_t cont;</div><div class='add'>+    VALUE first_proc;</div><div class='add'>+    struct rb_fiber_struct *prev;</div><div class='add'>+    const enum fiber_status status;</div><div class='add'>+    /* If a fiber invokes "transfer",</div><div class='add'>+     * then this fiber can't "resume" any more after that.</div><div class='add'>+     * You shouldn't mix "transfer" and "resume".</div><div class='add'>+     */</div><div class='add'>+    int transferred;</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    void *fib_handle;</div><div class='add'>+#else</div><div class='add'>+    ucontext_t context;</div><div class='add'>+    /* Because context.uc_stack.ss_sp and context.uc_stack.ss_size</div><div class='add'>+     * are not necessarily valid after makecontext() or swapcontext(),</div><div class='add'>+     * they are saved in these variables for later use.</div><div class='add'>+     */</div><div class='add'>+    void *ss_sp;</div><div class='add'>+    size_t ss_size;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+fiber_status_name(enum fiber_status s)</div><div class='add'>+{</div><div class='add'>+    switch (s) {</div><div class='add'>+      case FIBER_CREATED: return "created";</div><div class='add'>+      case FIBER_RESUMED: return "resumed";</div><div class='add'>+      case FIBER_SUSPENDED: return "suspended";</div><div class='add'>+      case FIBER_TERMINATED: return "terminated";</div><div class='add'>+    }</div><div class='add'>+    VM_UNREACHABLE(fiber_status_name);</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_verify(const rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+#if VM_CHECK_MODE &gt; 0</div><div class='add'>+    VM_ASSERT(fib-&gt;cont.saved_ec.fiber_ptr == fib);</div><div class='add'>+</div><div class='add'>+    switch (fib-&gt;status) {</div><div class='add'>+      case FIBER_RESUMED:</div><div class='add'>+	VM_ASSERT(fib-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='add'>+	break;</div><div class='add'>+      case FIBER_SUSPENDED:</div><div class='add'>+	VM_ASSERT(fib-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='add'>+	break;</div><div class='add'>+      case FIBER_CREATED:</div><div class='add'>+      case FIBER_TERMINATED:</div><div class='add'>+	/* TODO */</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	VM_UNREACHABLE(fiber_verify);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if VM_CHECK_MODE &gt; 0</div><div class='add'>+void</div><div class='add'>+rb_ec_verify(const rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    /* TODO */</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_status_set(const rb_fiber_t *fib, enum fiber_status s)</div><div class='add'>+{</div><div class='add'>+    if (0) fprintf(stderr, "fib: %p, status: %s -&gt; %s\n", fib, fiber_status_name(fib-&gt;status), fiber_status_name(s));</div><div class='add'>+    VM_ASSERT(!FIBER_TERMINATED_P(fib));</div><div class='add'>+    VM_ASSERT(fib-&gt;status != s);</div><div class='add'>+    fiber_verify(fib);</div><div class='add'>+    *((enum fiber_status *)&amp;fib-&gt;status) = s;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ec_set_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size)</div><div class='add'>+{</div><div class='add'>+    *(VALUE **)(&amp;ec-&gt;vm_stack) = stack;</div><div class='add'>+    *(size_t *)(&amp;ec-&gt;vm_stack_size) = size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ec_switch(rb_thread_t *th, rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = &amp;fib-&gt;cont.saved_ec;</div><div class='add'>+</div><div class='add'>+    ruby_current_execution_context_ptr = th-&gt;ec = ec;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * timer-thread may set trap interrupt on previous th-&gt;ec at any time;</div><div class='add'>+     * ensure we do not delay (or lose) the trap interrupt handling.</div><div class='add'>+     */</div><div class='add'>+    if (th-&gt;vm-&gt;main_thread == th &amp;&amp; rb_signal_buff_size() &gt; 0) {</div><div class='add'>+        RUBY_VM_SET_TRAP_INTERRUPT(ec);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(ec-&gt;fiber_ptr-&gt;cont.self == 0 || ec-&gt;vm_stack != NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t cont_data_type, fiber_data_type;</div><div class='add'>+static VALUE rb_cContinuation;</div><div class='add'>+static VALUE rb_cFiber;</div><div class='add'>+static VALUE rb_eFiberError;</div><div class='add'>+</div><div class='add'>+#define GetContPtr(obj, ptr)  \</div><div class='add'>+    TypedData_Get_Struct((obj), rb_context_t, &amp;cont_data_type, (ptr))</div><div class='add'>+</div><div class='add'>+#define GetFiberPtr(obj, ptr)  do {\</div><div class='add'>+    TypedData_Get_Struct((obj), rb_fiber_t, &amp;fiber_data_type, (ptr)); \</div><div class='add'>+    if (!(ptr)) rb_raise(rb_eFiberError, "uninitialized fiber"); \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+NOINLINE(static VALUE cont_capture(volatile int *volatile stat));</div><div class='add'>+</div><div class='add'>+#define THREAD_MUST_BE_RUNNING(th) do { \</div><div class='add'>+	if (!(th)-&gt;ec-&gt;tag) rb_raise(rb_eThreadError, "not running thread");	\</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+cont_thread_value(const rb_context_t *cont)</div><div class='add'>+{</div><div class='add'>+    return cont-&gt;saved_ec.thread_ptr-&gt;self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont = ptr;</div><div class='add'>+</div><div class='add'>+    RUBY_MARK_ENTER("cont");</div><div class='add'>+    rb_gc_mark(cont-&gt;value);</div><div class='add'>+</div><div class='add'>+    rb_execution_context_mark(&amp;cont-&gt;saved_ec);</div><div class='add'>+    rb_gc_mark(cont_thread_value(cont));</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;saved_vm_stack.ptr) {</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+			     cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='add'>+#else</div><div class='add'>+	rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+			     cont-&gt;saved_vm_stack.ptr, cont-&gt;saved_ec.stack_size);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;machine.stack) {</div><div class='add'>+	if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='add'>+	    /* cont */</div><div class='add'>+	    rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='add'>+				 cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* fiber */</div><div class='add'>+	    const rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='add'>+</div><div class='add'>+	    if (!FIBER_TERMINATED_P(fib)) {</div><div class='add'>+		rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='add'>+				     cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    if (cont-&gt;machine.register_stack) {</div><div class='add'>+	rb_gc_mark_locations(cont-&gt;machine.register_stack,</div><div class='add'>+			     cont-&gt;machine.register_stack + cont-&gt;machine.register_stack_size);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    RUBY_MARK_LEAVE("cont");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont = ptr;</div><div class='add'>+</div><div class='add'>+    RUBY_FREE_ENTER("cont");</div><div class='add'>+    ruby_xfree(cont-&gt;saved_ec.vm_stack);</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+    if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='add'>+	/* cont */</div><div class='add'>+	ruby_xfree(cont-&gt;ensure_array);</div><div class='add'>+	RUBY_FREE_UNLESS_NULL(cont-&gt;machine.stack);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* fiber */</div><div class='add'>+	const rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+	if (cont-&gt;type != ROOT_FIBER_CONTEXT) {</div><div class='add'>+	    /* don't delete root fiber handle */</div><div class='add'>+	    if (fib-&gt;fib_handle) {</div><div class='add'>+		DeleteFiber(fib-&gt;fib_handle);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+#else /* not WIN32 */</div><div class='add'>+	if (fib-&gt;ss_sp != NULL) {</div><div class='add'>+	    if (cont-&gt;type == ROOT_FIBER_CONTEXT) {</div><div class='add'>+		rb_bug("Illegal root fiber parameter");</div><div class='add'>+	    }</div><div class='add'>+	    munmap((void*)fib-&gt;ss_sp, fib-&gt;ss_size);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* It may reached here when finalize */</div><div class='add'>+	    /* TODO examine whether it is a bug */</div><div class='add'>+	    /* rb_bug("cont_free: release self"); */</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+#else /* not FIBER_USE_NATIVE */</div><div class='add'>+    ruby_xfree(cont-&gt;ensure_array);</div><div class='add'>+    RUBY_FREE_UNLESS_NULL(cont-&gt;machine.stack);</div><div class='add'>+#endif</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    RUBY_FREE_UNLESS_NULL(cont-&gt;machine.register_stack);</div><div class='add'>+#endif</div><div class='add'>+    RUBY_FREE_UNLESS_NULL(cont-&gt;saved_vm_stack.ptr);</div><div class='add'>+</div><div class='add'>+    /* free rb_cont_t or rb_fiber_t */</div><div class='add'>+    ruby_xfree(ptr);</div><div class='add'>+    RUBY_FREE_LEAVE("cont");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+cont_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    const rb_context_t *cont = ptr;</div><div class='add'>+    size_t size = 0;</div><div class='add'>+</div><div class='add'>+    size = sizeof(*cont);</div><div class='add'>+    if (cont-&gt;saved_vm_stack.ptr) {</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	size_t n = (cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='add'>+#else</div><div class='add'>+	size_t n = cont-&gt;saved_ec.vm_stack_size;</div><div class='add'>+#endif</div><div class='add'>+	size += n * sizeof(*cont-&gt;saved_vm_stack.ptr);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;machine.stack) {</div><div class='add'>+	size += cont-&gt;machine.stack_size * sizeof(*cont-&gt;machine.stack);</div><div class='add'>+    }</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    if (cont-&gt;machine.register_stack) {</div><div class='add'>+	size += cont-&gt;machine.register_stack_size * sizeof(*cont-&gt;machine.register_stack);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_mark_self(const rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    if (fib-&gt;cont.self) {</div><div class='add'>+	rb_gc_mark(fib-&gt;cont.self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_execution_context_mark(&amp;fib-&gt;cont.saved_ec);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib = ptr;</div><div class='add'>+    RUBY_MARK_ENTER("cont");</div><div class='add'>+    fiber_verify(fib);</div><div class='add'>+    rb_gc_mark(fib-&gt;first_proc);</div><div class='add'>+    if (fib-&gt;prev) rb_fiber_mark_self(fib-&gt;prev);</div><div class='add'>+</div><div class='add'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    if (fib-&gt;status == FIBER_TERMINATED) {</div><div class='add'>+	/* FIBER_TERMINATED fiber should not mark machine stack */</div><div class='add'>+	if (fib-&gt;cont.saved_ec.machine.stack_end != NULL) {</div><div class='add'>+	    fib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    cont_mark(&amp;fib-&gt;cont);</div><div class='add'>+    RUBY_MARK_LEAVE("cont");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib = ptr;</div><div class='add'>+    RUBY_FREE_ENTER("fiber");</div><div class='add'>+</div><div class='add'>+    if (fib-&gt;cont.saved_ec.local_storage) {</div><div class='add'>+	st_free_table(fib-&gt;cont.saved_ec.local_storage);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    cont_free(&amp;fib-&gt;cont);</div><div class='add'>+    RUBY_FREE_LEAVE("fiber");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+fiber_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    const rb_fiber_t *fib = ptr;</div><div class='add'>+    size_t size = 0;</div><div class='add'>+</div><div class='add'>+    size = sizeof(*fib);</div><div class='add'>+    if (fib-&gt;cont.type != ROOT_FIBER_CONTEXT &amp;&amp;</div><div class='add'>+	fib-&gt;cont.saved_ec.local_storage != NULL) {</div><div class='add'>+	size += st_memsize(fib-&gt;cont.saved_ec.local_storage);</div><div class='add'>+    }</div><div class='add'>+    size += cont_memsize(&amp;fib-&gt;cont);</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_obj_is_fiber(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (rb_typeddata_is_kind_of(obj, &amp;fiber_data_type)) {</div><div class='add'>+	return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_save_machine_stack(rb_thread_t *th, rb_context_t *cont)</div><div class='add'>+{</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    th-&gt;machine.register_stack_end = rb_ia64_bsp();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (th-&gt;ec-&gt;machine.stack_start &gt; th-&gt;ec-&gt;machine.stack_end) {</div><div class='add'>+	size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+	cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+	cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;machine.stack) {</div><div class='add'>+	REALLOC_N(cont-&gt;machine.stack, VALUE, size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	cont-&gt;machine.stack = ALLOC_N(VALUE, size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    FLUSH_REGISTER_WINDOWS;</div><div class='add'>+    MEMCPY(cont-&gt;machine.stack, cont-&gt;machine.stack_src, VALUE, size);</div><div class='add'>+</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    rb_ia64_flushrs();</div><div class='add'>+    size = cont-&gt;machine.register_stack_size = th-&gt;machine.register_stack_end - th-&gt;machine.register_stack_start;</div><div class='add'>+    cont-&gt;machine.register_stack_src = th-&gt;machine.register_stack_start;</div><div class='add'>+    if (cont-&gt;machine.register_stack) {</div><div class='add'>+	REALLOC_N(cont-&gt;machine.register_stack, VALUE, size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	cont-&gt;machine.register_stack = ALLOC_N(VALUE, size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    MEMCPY(cont-&gt;machine.register_stack, cont-&gt;machine.register_stack_src, VALUE, size);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t cont_data_type = {</div><div class='add'>+    "continuation",</div><div class='add'>+    {cont_mark, cont_free, cont_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+cont_save_thread(rb_context_t *cont, rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(th-&gt;status == THREAD_RUNNABLE);</div><div class='add'>+</div><div class='add'>+    /* save thread context */</div><div class='add'>+    *sec = *th-&gt;ec;</div><div class='add'>+</div><div class='add'>+    /* saved_thread-&gt;machine.stack_end should be NULL */</div><div class='add'>+    /* because it may happen GC afterward */</div><div class='add'>+    sec-&gt;machine.stack_end = NULL;</div><div class='add'>+</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    sec-&gt;machine.register_stack_start = NULL;</div><div class='add'>+    sec-&gt;machine.register_stack_end = NULL;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_init(rb_context_t *cont, rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    /* save thread context */</div><div class='add'>+    cont_save_thread(cont, th);</div><div class='add'>+    cont-&gt;saved_ec.thread_ptr = th;</div><div class='add'>+    cont-&gt;saved_ec.local_storage = NULL;</div><div class='add'>+    cont-&gt;saved_ec.local_storage_recursive_hash = Qnil;</div><div class='add'>+    cont-&gt;saved_ec.local_storage_recursive_hash_for_trace = Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_context_t *</div><div class='add'>+cont_new(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont;</div><div class='add'>+    volatile VALUE contval;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    THREAD_MUST_BE_RUNNING(th);</div><div class='add'>+    contval = TypedData_Make_Struct(klass, rb_context_t, &amp;cont_data_type, cont);</div><div class='add'>+    cont-&gt;self = contval;</div><div class='add'>+    cont_init(cont, th);</div><div class='add'>+    return cont;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+void</div><div class='add'>+show_vm_stack(const rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    VALUE *p = ec-&gt;vm_stack;</div><div class='add'>+    while (p &lt; ec-&gt;cfp-&gt;sp) {</div><div class='add'>+	fprintf(stderr, "%3d ", (int)(p - ec-&gt;vm_stack));</div><div class='add'>+	rb_obj_info_dump(*p);</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+show_vm_pcs(const rb_control_frame_t *cfp,</div><div class='add'>+	    const rb_control_frame_t *end_of_cfp)</div><div class='add'>+{</div><div class='add'>+    int i=0;</div><div class='add'>+    while (cfp != end_of_cfp) {</div><div class='add'>+	int pc = 0;</div><div class='add'>+	if (cfp-&gt;iseq) {</div><div class='add'>+	    pc = cfp-&gt;pc - cfp-&gt;iseq-&gt;body-&gt;iseq_encoded;</div><div class='add'>+	}</div><div class='add'>+	fprintf(stderr, "%2d pc: %d\n", i++, pc);</div><div class='add'>+	cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+static VALUE</div><div class='add'>+cont_capture(volatile int *volatile stat)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *volatile cont;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    volatile VALUE contval;</div><div class='add'>+    const rb_execution_context_t *ec = th-&gt;ec;</div><div class='add'>+</div><div class='add'>+    THREAD_MUST_BE_RUNNING(th);</div><div class='add'>+    rb_vm_stack_to_heap(th-&gt;ec);</div><div class='add'>+    cont = cont_new(rb_cContinuation);</div><div class='add'>+    contval = cont-&gt;self;</div><div class='add'>+</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+    cont-&gt;saved_vm_stack.slen = ec-&gt;cfp-&gt;sp - ec-&gt;vm_stack;</div><div class='add'>+    cont-&gt;saved_vm_stack.clen = ec-&gt;vm_stack + ec-&gt;vm_stack_size - (VALUE*)ec-&gt;cfp;</div><div class='add'>+    cont-&gt;saved_vm_stack.ptr = ALLOC_N(VALUE, cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='add'>+    MEMCPY(cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+	   ec-&gt;vm_stack,</div><div class='add'>+	   VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='add'>+    MEMCPY(cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen,</div><div class='add'>+	   (VALUE*)ec-&gt;cfp,</div><div class='add'>+	   VALUE,</div><div class='add'>+	   cont-&gt;saved_vm_stack.clen);</div><div class='add'>+#else</div><div class='add'>+    cont-&gt;saved_vm_stack.ptr = ALLOC_N(VALUE, ec-&gt;vm_stack_size);</div><div class='add'>+    MEMCPY(cont-&gt;saved_vm_stack.ptr, ec-&gt;vm_stack, VALUE, ec-&gt;vm_stack_size);</div><div class='add'>+#endif</div><div class='add'>+    ec_set_vm_stack(&amp;cont-&gt;saved_ec, NULL, 0);</div><div class='add'>+    cont_save_machine_stack(th, cont);</div><div class='add'>+</div><div class='add'>+    /* backup ensure_list to array for search in another context */</div><div class='add'>+    {</div><div class='add'>+	rb_ensure_list_t *p;</div><div class='add'>+	int size = 0;</div><div class='add'>+	rb_ensure_entry_t *entry;</div><div class='add'>+	for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next)</div><div class='add'>+	    size++;</div><div class='add'>+	entry = cont-&gt;ensure_array = ALLOC_N(rb_ensure_entry_t,size+1);</div><div class='add'>+	for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next) {</div><div class='add'>+	    if (!p-&gt;entry.marker)</div><div class='add'>+		p-&gt;entry.marker = rb_ary_tmp_new(0); /* dummy object */</div><div class='add'>+	    *entry++ = p-&gt;entry;</div><div class='add'>+	}</div><div class='add'>+	entry-&gt;marker = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (ruby_setjmp(cont-&gt;jmpbuf)) {</div><div class='add'>+	VALUE value;</div><div class='add'>+</div><div class='add'>+	VAR_INITIALIZED(cont);</div><div class='add'>+	value = cont-&gt;value;</div><div class='add'>+	if (cont-&gt;argc == -1) rb_exc_raise(value);</div><div class='add'>+	cont-&gt;value = Qnil;</div><div class='add'>+	*stat = 1;</div><div class='add'>+	return value;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	*stat = 0;</div><div class='add'>+	return contval;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+fiber_restore_thread(rb_thread_t *th, rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    ec_switch(th, fib);</div><div class='add'>+    VM_ASSERT(th-&gt;ec-&gt;fiber_ptr == fib);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+cont_restore_thread(rb_context_t *cont)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    /* restore thread context */</div><div class='add'>+    if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='add'>+	/* continuation */</div><div class='add'>+	rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='add'>+	rb_fiber_t *fib = NULL;</div><div class='add'>+</div><div class='add'>+	if (sec-&gt;fiber_ptr != NULL) {</div><div class='add'>+	    fib = sec-&gt;fiber_ptr;</div><div class='add'>+	}</div><div class='add'>+	else if (th-&gt;root_fiber) {</div><div class='add'>+	    fib = th-&gt;root_fiber;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (fib &amp;&amp; th-&gt;ec != &amp;fib-&gt;cont.saved_ec) {</div><div class='add'>+	    ec_switch(th, fib);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* copy vm stack */</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	MEMCPY(th-&gt;ec-&gt;vm_stack,</div><div class='add'>+	       cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+	       VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='add'>+	MEMCPY(th-&gt;ec-&gt;vm_stack + th-&gt;ec-&gt;vm_stack_size - cont-&gt;saved_vm_stack.clen,</div><div class='add'>+	       cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen,</div><div class='add'>+	       VALUE, cont-&gt;saved_vm_stack.clen);</div><div class='add'>+#else</div><div class='add'>+	MEMCPY(th-&gt;ec-&gt;vm_stack, cont-&gt;saved_vm_stack.ptr, VALUE, sec-&gt;vm_stack_size);</div><div class='add'>+#endif</div><div class='add'>+	/* other members of ec */</div><div class='add'>+</div><div class='add'>+	th-&gt;ec-&gt;cfp = sec-&gt;cfp;</div><div class='add'>+	th-&gt;ec-&gt;safe_level = sec-&gt;safe_level;</div><div class='add'>+	th-&gt;ec-&gt;raised_flag = sec-&gt;raised_flag;</div><div class='add'>+	th-&gt;ec-&gt;tag = sec-&gt;tag;</div><div class='add'>+	th-&gt;ec-&gt;protect_tag = sec-&gt;protect_tag;</div><div class='add'>+	th-&gt;ec-&gt;root_lep = sec-&gt;root_lep;</div><div class='add'>+	th-&gt;ec-&gt;root_svar = sec-&gt;root_svar;</div><div class='add'>+	th-&gt;ec-&gt;ensure_list = sec-&gt;ensure_list;</div><div class='add'>+	th-&gt;ec-&gt;errinfo = sec-&gt;errinfo;</div><div class='add'>+</div><div class='add'>+	/* trace on -&gt; trace off */</div><div class='add'>+	if (th-&gt;ec-&gt;trace_arg != NULL &amp;&amp; sec-&gt;trace_arg == NULL) {</div><div class='add'>+	    GET_VM()-&gt;trace_running--;</div><div class='add'>+	}</div><div class='add'>+	/* trace off -&gt; trace on */</div><div class='add'>+	else if (th-&gt;ec-&gt;trace_arg == NULL &amp;&amp; sec-&gt;trace_arg != NULL) {</div><div class='add'>+	    GET_VM()-&gt;trace_running++;</div><div class='add'>+	}</div><div class='add'>+	th-&gt;ec-&gt;trace_arg = sec-&gt;trace_arg;</div><div class='add'>+</div><div class='add'>+	VM_ASSERT(th-&gt;ec-&gt;vm_stack != NULL);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* fiber */</div><div class='add'>+	fiber_restore_thread(th, (rb_fiber_t*)cont);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+static void</div><div class='add'>+fiber_set_stack_location(void)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    VALUE *ptr;</div><div class='add'>+</div><div class='add'>+    SET_MACHINE_STACK_END(&amp;ptr);</div><div class='add'>+    th-&gt;ec-&gt;machine.stack_start = (void*)(((VALUE)ptr &amp; RB_PAGE_MASK) + STACK_UPPER((void *)&amp;ptr, 0, RB_PAGE_SIZE));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VOID CALLBACK</div><div class='add'>+fiber_entry(void *arg)</div><div class='add'>+{</div><div class='add'>+    fiber_set_stack_location();</div><div class='add'>+    rb_fiber_start();</div><div class='add'>+}</div><div class='add'>+#else /* _WIN32 */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * FreeBSD require a first (i.e. addr) argument of mmap(2) is not NULL</div><div class='add'>+ * if MAP_STACK is passed.</div><div class='add'>+ * http://www.FreeBSD.org/cgi/query-pr.cgi?pr=158755</div><div class='add'>+ */</div><div class='add'>+#if defined(MAP_STACK) &amp;&amp; !defined(__FreeBSD__) &amp;&amp; !defined(__FreeBSD_kernel__)</div><div class='add'>+#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON | MAP_STACK)</div><div class='add'>+#else</div><div class='add'>+#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static char*</div><div class='add'>+fiber_machine_stack_alloc(size_t size)</div><div class='add'>+{</div><div class='add'>+    char *ptr;</div><div class='add'>+</div><div class='add'>+    if (machine_stack_cache_index &gt; 0) {</div><div class='add'>+	if (machine_stack_cache[machine_stack_cache_index - 1].size == (size / sizeof(VALUE))) {</div><div class='add'>+	    ptr = machine_stack_cache[machine_stack_cache_index - 1].ptr;</div><div class='add'>+	    machine_stack_cache_index--;</div><div class='add'>+	    machine_stack_cache[machine_stack_cache_index].ptr = NULL;</div><div class='add'>+	    machine_stack_cache[machine_stack_cache_index].size = 0;</div><div class='add'>+	}</div><div class='add'>+	else{</div><div class='add'>+            /* TODO handle multiple machine stack size */</div><div class='add'>+	    rb_bug("machine_stack_cache size is not canonicalized");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	void *page;</div><div class='add'>+	STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+	errno = 0;</div><div class='add'>+	ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, FIBER_STACK_FLAGS, -1, 0);</div><div class='add'>+	if (ptr == MAP_FAILED) {</div><div class='add'>+	    rb_raise(rb_eFiberError, "can't alloc machine stack to fiber: %s", strerror(errno));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* guard page setup */</div><div class='add'>+	page = ptr + STACK_DIR_UPPER(size - RB_PAGE_SIZE, 0);</div><div class='add'>+	if (mprotect(page, RB_PAGE_SIZE, PROT_NONE) &lt; 0) {</div><div class='add'>+	    rb_raise(rb_eFiberError, "mprotect failed");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_initialize_machine_stack_context(rb_fiber_t *fib, size_t size)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *sec = &amp;fib-&gt;cont.saved_ec;</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+# if defined(_MSC_VER) &amp;&amp; _MSC_VER &lt;= 1200</div><div class='add'>+#   define CreateFiberEx(cs, stacksize, flags, entry, param) \</div><div class='add'>+    CreateFiber((stacksize), (entry), (param))</div><div class='add'>+# endif</div><div class='add'>+    fib-&gt;fib_handle = CreateFiberEx(size - 1, size, 0, fiber_entry, NULL);</div><div class='add'>+    if (!fib-&gt;fib_handle) {</div><div class='add'>+	/* try to release unnecessary fibers &amp; retry to create */</div><div class='add'>+	rb_gc();</div><div class='add'>+	fib-&gt;fib_handle = CreateFiberEx(size - 1, size, 0, fiber_entry, NULL);</div><div class='add'>+	if (!fib-&gt;fib_handle) {</div><div class='add'>+	    rb_raise(rb_eFiberError, "can't create fiber");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    sec-&gt;machine.stack_maxsize = size;</div><div class='add'>+#else /* not WIN32 */</div><div class='add'>+    ucontext_t *context = &amp;fib-&gt;context;</div><div class='add'>+    char *ptr;</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    getcontext(context);</div><div class='add'>+    ptr = fiber_machine_stack_alloc(size);</div><div class='add'>+    context-&gt;uc_link = NULL;</div><div class='add'>+    context-&gt;uc_stack.ss_sp = ptr;</div><div class='add'>+    context-&gt;uc_stack.ss_size = size;</div><div class='add'>+    fib-&gt;ss_sp = ptr;</div><div class='add'>+    fib-&gt;ss_size = size;</div><div class='add'>+    makecontext(context, rb_fiber_start, 0);</div><div class='add'>+    sec-&gt;machine.stack_start = (VALUE*)(ptr + STACK_DIR_UPPER(0, size));</div><div class='add'>+    sec-&gt;machine.stack_maxsize = size - RB_PAGE_SIZE;</div><div class='add'>+#endif</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    sth-&gt;machine.register_stack_maxsize = sth-&gt;machine.stack_maxsize;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NOINLINE(static void fiber_setcontext(rb_fiber_t *newfib, rb_fiber_t *oldfib));</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_setcontext(rb_fiber_t *newfib, rb_fiber_t *oldfib)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    /* save oldfib's machine stack / TODO: is it needed? */</div><div class='add'>+    if (!FIBER_TERMINATED_P(oldfib)) {</div><div class='add'>+	STACK_GROW_DIR_DETECTION;</div><div class='add'>+	SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='add'>+	if (STACK_DIR_UPPER(0, 1)) {</div><div class='add'>+	    oldfib-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+	    oldfib-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    oldfib-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+	    oldfib-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* exchange machine_stack_start between oldfib and newfib */</div><div class='add'>+    oldfib-&gt;cont.saved_ec.machine.stack_start = th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+</div><div class='add'>+    /* oldfib-&gt;machine.stack_end should be NULL */</div><div class='add'>+    oldfib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='add'>+</div><div class='add'>+    /* restore thread context */</div><div class='add'>+    fiber_restore_thread(th, newfib);</div><div class='add'>+</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+    if (!newfib-&gt;context.uc_stack.ss_sp &amp;&amp; th-&gt;root_fiber != newfib) {</div><div class='add'>+	rb_bug("non_root_fiber-&gt;context.uc_stac.ss_sp should not be NULL");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    /* swap machine context */</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    SwitchToFiber(newfib-&gt;fib_handle);</div><div class='add'>+#else</div><div class='add'>+    swapcontext(&amp;oldfib-&gt;context, &amp;newfib-&gt;context);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+NOINLINE(NORETURN(static void cont_restore_1(rb_context_t *)));</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_restore_1(rb_context_t *cont)</div><div class='add'>+{</div><div class='add'>+    cont_restore_thread(cont);</div><div class='add'>+</div><div class='add'>+    /* restore machine stack */</div><div class='add'>+#ifdef _M_AMD64</div><div class='add'>+    {</div><div class='add'>+	/* workaround for x64 SEH */</div><div class='add'>+	jmp_buf buf;</div><div class='add'>+	setjmp(buf);</div><div class='add'>+	((_JUMP_BUFFER*)(&amp;cont-&gt;jmpbuf))-&gt;Frame =</div><div class='add'>+	    ((_JUMP_BUFFER*)(&amp;buf))-&gt;Frame;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    if (cont-&gt;machine.stack_src) {</div><div class='add'>+	FLUSH_REGISTER_WINDOWS;</div><div class='add'>+	MEMCPY(cont-&gt;machine.stack_src, cont-&gt;machine.stack,</div><div class='add'>+		VALUE, cont-&gt;machine.stack_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    if (cont-&gt;machine.register_stack_src) {</div><div class='add'>+	MEMCPY(cont-&gt;machine.register_stack_src, cont-&gt;machine.register_stack,</div><div class='add'>+	       VALUE, cont-&gt;machine.register_stack_size);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    ruby_longjmp(cont-&gt;jmpbuf, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(NOINLINE(static void cont_restore_0(rb_context_t *, VALUE *)));</div><div class='add'>+</div><div class='add'>+#ifdef __ia64</div><div class='add'>+#define C(a) rse_##a##0, rse_##a##1, rse_##a##2, rse_##a##3, rse_##a##4</div><div class='add'>+#define E(a) rse_##a##0= rse_##a##1= rse_##a##2= rse_##a##3= rse_##a##4</div><div class='add'>+static volatile int C(a), C(b), C(c), C(d), C(e);</div><div class='add'>+static volatile int C(f), C(g), C(h), C(i), C(j);</div><div class='add'>+static volatile int C(k), C(l), C(m), C(n), C(o);</div><div class='add'>+static volatile int C(p), C(q), C(r), C(s), C(t);</div><div class='add'>+#if 0</div><div class='add'>+{/* the above lines make cc-mode.el confused so much */}</div><div class='add'>+#endif</div><div class='add'>+int rb_dummy_false = 0;</div><div class='add'>+NORETURN(NOINLINE(static void register_stack_extend(rb_context_t *, VALUE *, VALUE *)));</div><div class='add'>+static void</div><div class='add'>+register_stack_extend(rb_context_t *cont, VALUE *vp, VALUE *curr_bsp)</div><div class='add'>+{</div><div class='add'>+    if (rb_dummy_false) {</div><div class='add'>+        /* use registers as much as possible */</div><div class='add'>+        E(a) = E(b) = E(c) = E(d) = E(e) =</div><div class='add'>+        E(f) = E(g) = E(h) = E(i) = E(j) =</div><div class='add'>+        E(k) = E(l) = E(m) = E(n) = E(o) =</div><div class='add'>+        E(p) = E(q) = E(r) = E(s) = E(t) = 0;</div><div class='add'>+        E(a) = E(b) = E(c) = E(d) = E(e) =</div><div class='add'>+        E(f) = E(g) = E(h) = E(i) = E(j) =</div><div class='add'>+        E(k) = E(l) = E(m) = E(n) = E(o) =</div><div class='add'>+        E(p) = E(q) = E(r) = E(s) = E(t) = 0;</div><div class='add'>+    }</div><div class='add'>+    if (curr_bsp &lt; cont-&gt;machine.register_stack_src+cont-&gt;machine.register_stack_size) {</div><div class='add'>+        register_stack_extend(cont, vp, (VALUE*)rb_ia64_bsp());</div><div class='add'>+    }</div><div class='add'>+    cont_restore_0(cont, vp);</div><div class='add'>+}</div><div class='add'>+#undef C</div><div class='add'>+#undef E</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_restore_0(rb_context_t *cont, VALUE *addr_in_prev_frame)</div><div class='add'>+{</div><div class='add'>+    if (cont-&gt;machine.stack_src) {</div><div class='add'>+#ifdef HAVE_ALLOCA</div><div class='add'>+#define STACK_PAD_SIZE 1</div><div class='add'>+#else</div><div class='add'>+#define STACK_PAD_SIZE 1024</div><div class='add'>+#endif</div><div class='add'>+	VALUE space[STACK_PAD_SIZE];</div><div class='add'>+</div><div class='add'>+#if !STACK_GROW_DIRECTION</div><div class='add'>+	if (addr_in_prev_frame &gt; &amp;space[0]) {</div><div class='add'>+	    /* Stack grows downward */</div><div class='add'>+#endif</div><div class='add'>+#if STACK_GROW_DIRECTION &lt;= 0</div><div class='add'>+	    volatile VALUE *const end = cont-&gt;machine.stack_src;</div><div class='add'>+	    if (&amp;space[0] &gt; end) {</div><div class='add'>+# ifdef HAVE_ALLOCA</div><div class='add'>+		volatile VALUE *sp = ALLOCA_N(VALUE, &amp;space[0] - end);</div><div class='add'>+		space[0] = *sp;</div><div class='add'>+# else</div><div class='add'>+		cont_restore_0(cont, &amp;space[0]);</div><div class='add'>+# endif</div><div class='add'>+	    }</div><div class='add'>+#endif</div><div class='add'>+#if !STACK_GROW_DIRECTION</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* Stack grows upward */</div><div class='add'>+#endif</div><div class='add'>+#if STACK_GROW_DIRECTION &gt;= 0</div><div class='add'>+	    volatile VALUE *const end = cont-&gt;machine.stack_src + cont-&gt;machine.stack_size;</div><div class='add'>+	    if (&amp;space[STACK_PAD_SIZE] &lt; end) {</div><div class='add'>+# ifdef HAVE_ALLOCA</div><div class='add'>+		volatile VALUE *sp = ALLOCA_N(VALUE, end - &amp;space[STACK_PAD_SIZE]);</div><div class='add'>+		space[0] = *sp;</div><div class='add'>+# else</div><div class='add'>+		cont_restore_0(cont, &amp;space[STACK_PAD_SIZE-1]);</div><div class='add'>+# endif</div><div class='add'>+	    }</div><div class='add'>+#endif</div><div class='add'>+#if !STACK_GROW_DIRECTION</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    cont_restore_1(cont);</div><div class='add'>+}</div><div class='add'>+#ifdef __ia64</div><div class='add'>+#define cont_restore_0(cont, vp) register_stack_extend((cont), (vp), (VALUE*)rb_ia64_bsp())</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Document-class: Continuation</div><div class='add'>+ *</div><div class='add'>+ *  Continuation objects are generated by Kernel#callcc,</div><div class='add'>+ *  after having +require+d &lt;i&gt;continuation&lt;/i&gt;. They hold</div><div class='add'>+ *  a return address and execution context, allowing a nonlocal return</div><div class='add'>+ *  to the end of the &lt;code&gt;callcc&lt;/code&gt; block from anywhere within a</div><div class='add'>+ *  program. Continuations are somewhat analogous to a structured</div><div class='add'>+ *  version of C's &lt;code&gt;setjmp/longjmp&lt;/code&gt; (although they contain</div><div class='add'>+ *  more state, so you might consider them closer to threads).</div><div class='add'>+ *</div><div class='add'>+ *  For instance:</div><div class='add'>+ *</div><div class='add'>+ *     require "continuation"</div><div class='add'>+ *     arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ]</div><div class='add'>+ *     callcc{|cc| $cc = cc}</div><div class='add'>+ *     puts(message = arr.shift)</div><div class='add'>+ *     $cc.call unless message =~ /Max/</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     Freddie</div><div class='add'>+ *     Herbie</div><div class='add'>+ *     Ron</div><div class='add'>+ *     Max</div><div class='add'>+ *</div><div class='add'>+ *  Also you can call callcc in other methods:</div><div class='add'>+ *</div><div class='add'>+ *     require "continuation"</div><div class='add'>+ *</div><div class='add'>+ *     def g</div><div class='add'>+ *       arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ]</div><div class='add'>+ *       cc = callcc { |cc| cc }</div><div class='add'>+ *       puts arr.shift</div><div class='add'>+ *       return cc, arr.size</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     def f</div><div class='add'>+ *       c, size = g</div><div class='add'>+ *       c.call(c) if size &gt; 1</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     f</div><div class='add'>+ *</div><div class='add'>+ *  This (somewhat contrived) example allows the inner loop to abandon</div><div class='add'>+ *  processing early:</div><div class='add'>+ *</div><div class='add'>+ *     require "continuation"</div><div class='add'>+ *     callcc {|cont|</div><div class='add'>+ *       for i in 0..4</div><div class='add'>+ *         print "\n#{i}: "</div><div class='add'>+ *         for j in i*5...(i+1)*5</div><div class='add'>+ *           cont.call() if j == 17</div><div class='add'>+ *           printf "%3d", j</div><div class='add'>+ *         end</div><div class='add'>+ *       end</div><div class='add'>+ *     }</div><div class='add'>+ *     puts</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     0:   0  1  2  3  4</div><div class='add'>+ *     1:   5  6  7  8  9</div><div class='add'>+ *     2:  10 11 12 13 14</div><div class='add'>+ *     3:  15 16</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     callcc {|cont| block }   -&gt;  obj</div><div class='add'>+ *</div><div class='add'>+ *  Generates a Continuation object, which it passes to</div><div class='add'>+ *  the associated block. You need to &lt;code&gt;require</div><div class='add'>+ *  'continuation'&lt;/code&gt; before using this method. Performing a</div><div class='add'>+ *  &lt;em&gt;cont&lt;/em&gt;&lt;code&gt;.call&lt;/code&gt; will cause the #callcc</div><div class='add'>+ *  to return (as will falling through the end of the block). The</div><div class='add'>+ *  value returned by the #callcc is the value of the</div><div class='add'>+ *  block, or the value passed to &lt;em&gt;cont&lt;/em&gt;&lt;code&gt;.call&lt;/code&gt;. See</div><div class='add'>+ *  class Continuation for more details. Also see</div><div class='add'>+ *  Kernel#throw for an alternative mechanism for</div><div class='add'>+ *  unwinding a call stack.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_callcc(VALUE self)</div><div class='add'>+{</div><div class='add'>+    volatile int called;</div><div class='add'>+    volatile VALUE val = cont_capture(&amp;called);</div><div class='add'>+</div><div class='add'>+    if (called) {</div><div class='add'>+	return val;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_yield(val);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+make_passing_arg(int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    switch (argc) {</div><div class='add'>+      case 0:</div><div class='add'>+	return Qnil;</div><div class='add'>+      case 1:</div><div class='add'>+	return argv[0];</div><div class='add'>+      default:</div><div class='add'>+	return rb_ary_new4(argc, argv);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* CAUTION!! : Currently, error in rollback_func is not supported  */</div><div class='add'>+/* same as rb_protect if set rollback_func to NULL */</div><div class='add'>+void</div><div class='add'>+ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(ANYARGS), VALUE (*rollback_func)(ANYARGS))</div><div class='add'>+{</div><div class='add'>+    st_table **table_p = &amp;GET_VM()-&gt;ensure_rollback_table;</div><div class='add'>+    if (UNLIKELY(*table_p == NULL)) {</div><div class='add'>+	*table_p = st_init_numtable();</div><div class='add'>+    }</div><div class='add'>+    st_insert(*table_p, (st_data_t)ensure_func, (st_data_t)rollback_func);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+lookup_rollback_func(VALUE (*ensure_func)(ANYARGS))</div><div class='add'>+{</div><div class='add'>+    st_table *table = GET_VM()-&gt;ensure_rollback_table;</div><div class='add'>+    st_data_t val;</div><div class='add'>+    if (table &amp;&amp; st_lookup(table, (st_data_t)ensure_func, &amp;val))</div><div class='add'>+	return (VALUE) val;</div><div class='add'>+    return Qundef;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rollback_ensure_stack(VALUE self,rb_ensure_list_t *current,rb_ensure_entry_t *target)</div><div class='add'>+{</div><div class='add'>+    rb_ensure_list_t *p;</div><div class='add'>+    rb_ensure_entry_t *entry;</div><div class='add'>+    size_t i;</div><div class='add'>+    size_t cur_size;</div><div class='add'>+    size_t target_size;</div><div class='add'>+    size_t base_point;</div><div class='add'>+    VALUE (*func)(ANYARGS);</div><div class='add'>+</div><div class='add'>+    cur_size = 0;</div><div class='add'>+    for (p=current; p; p=p-&gt;next)</div><div class='add'>+	cur_size++;</div><div class='add'>+    target_size = 0;</div><div class='add'>+    for (entry=target; entry-&gt;marker; entry++)</div><div class='add'>+	target_size++;</div><div class='add'>+</div><div class='add'>+    /* search common stack point */</div><div class='add'>+    p = current;</div><div class='add'>+    base_point = cur_size;</div><div class='add'>+    while (base_point) {</div><div class='add'>+	if (target_size &gt;= base_point &amp;&amp;</div><div class='add'>+	    p-&gt;entry.marker == target[target_size - base_point].marker)</div><div class='add'>+	    break;</div><div class='add'>+	base_point --;</div><div class='add'>+	p = p-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* rollback function check */</div><div class='add'>+    for (i=0; i &lt; target_size - base_point; i++) {</div><div class='add'>+	if (!lookup_rollback_func(target[i].e_proc)) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "continuation called from out of critical rb_ensure scope");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    /* pop ensure stack */</div><div class='add'>+    while (cur_size &gt; base_point) {</div><div class='add'>+	/* escape from ensure block */</div><div class='add'>+	(*current-&gt;entry.e_proc)(current-&gt;entry.data2);</div><div class='add'>+	current = current-&gt;next;</div><div class='add'>+	cur_size--;</div><div class='add'>+    }</div><div class='add'>+    /* push ensure stack */</div><div class='add'>+    while (i--) {</div><div class='add'>+	func = (VALUE (*)(ANYARGS)) lookup_rollback_func(target[i].e_proc);</div><div class='add'>+	if ((VALUE)func != Qundef) {</div><div class='add'>+	    (*func)(target[i].data2);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     cont.call(args, ...)</div><div class='add'>+ *     cont[args, ...]</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the continuation. The program continues from the end of the</div><div class='add'>+ *  &lt;code&gt;callcc&lt;/code&gt; block. If no arguments are given, the original</div><div class='add'>+ *  &lt;code&gt;callcc&lt;/code&gt; returns &lt;code&gt;nil&lt;/code&gt;. If one argument is</div><div class='add'>+ *  given, &lt;code&gt;callcc&lt;/code&gt; returns it. Otherwise, an array</div><div class='add'>+ *  containing &lt;i&gt;args&lt;/i&gt; is returned.</div><div class='add'>+ *</div><div class='add'>+ *     callcc {|cont|  cont.call }           #=&gt; nil</div><div class='add'>+ *     callcc {|cont|  cont.call 1 }         #=&gt; 1</div><div class='add'>+ *     callcc {|cont|  cont.call 1, 2, 3 }   #=&gt; [1, 2, 3]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    GetContPtr(contval, cont);</div><div class='add'>+</div><div class='add'>+    if (cont_thread_value(cont) != th-&gt;self) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "continuation called across threads");</div><div class='add'>+    }</div><div class='add'>+    if (cont-&gt;saved_ec.protect_tag != th-&gt;ec-&gt;protect_tag) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "continuation called across stack rewinding barrier");</div><div class='add'>+    }</div><div class='add'>+    if (cont-&gt;saved_ec.fiber_ptr) {</div><div class='add'>+	if (th-&gt;ec-&gt;fiber_ptr != cont-&gt;saved_ec.fiber_ptr) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "continuation called across fiber");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    rollback_ensure_stack(contval, th-&gt;ec-&gt;ensure_list, cont-&gt;ensure_array);</div><div class='add'>+</div><div class='add'>+    cont-&gt;argc = argc;</div><div class='add'>+    cont-&gt;value = make_passing_arg(argc, argv);</div><div class='add'>+</div><div class='add'>+    cont_restore_0(cont, &amp;contval);</div><div class='add'>+    return Qnil; /* unreachable */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*********/</div><div class='add'>+/* fiber */</div><div class='add'>+/*********/</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Document-class: Fiber</div><div class='add'>+ *</div><div class='add'>+ *  Fibers are primitives for implementing light weight cooperative</div><div class='add'>+ *  concurrency in Ruby. Basically they are a means of creating code blocks</div><div class='add'>+ *  that can be paused and resumed, much like threads. The main difference</div><div class='add'>+ *  is that they are never preempted and that the scheduling must be done by</div><div class='add'>+ *  the programmer and not the VM.</div><div class='add'>+ *</div><div class='add'>+ *  As opposed to other stackless light weight concurrency models, each fiber</div><div class='add'>+ *  comes with a stack.  This enables the fiber to be paused from deeply</div><div class='add'>+ *  nested function calls within the fiber block.  See the ruby(1)</div><div class='add'>+ *  manpage to configure the size of the fiber stack(s).</div><div class='add'>+ *</div><div class='add'>+ *  When a fiber is created it will not run automatically. Rather it must</div><div class='add'>+ *  be explicitly asked to run using the &lt;code&gt;Fiber#resume&lt;/code&gt; method.</div><div class='add'>+ *  The code running inside the fiber can give up control by calling</div><div class='add'>+ *  &lt;code&gt;Fiber.yield&lt;/code&gt; in which case it yields control back to caller</div><div class='add'>+ *  (the caller of the &lt;code&gt;Fiber#resume&lt;/code&gt;).</div><div class='add'>+ *</div><div class='add'>+ *  Upon yielding or termination the Fiber returns the value of the last</div><div class='add'>+ *  executed expression</div><div class='add'>+ *</div><div class='add'>+ *  For instance:</div><div class='add'>+ *</div><div class='add'>+ *    fiber = Fiber.new do</div><div class='add'>+ *      Fiber.yield 1</div><div class='add'>+ *      2</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    puts fiber.resume</div><div class='add'>+ *    puts fiber.resume</div><div class='add'>+ *    puts fiber.resume</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *    1</div><div class='add'>+ *    2</div><div class='add'>+ *    FiberError: dead fiber called</div><div class='add'>+ *</div><div class='add'>+ *  The &lt;code&gt;Fiber#resume&lt;/code&gt; method accepts an arbitrary number of</div><div class='add'>+ *  parameters, if it is the first call to &lt;code&gt;resume&lt;/code&gt; then they</div><div class='add'>+ *  will be passed as block arguments. Otherwise they will be the return</div><div class='add'>+ *  value of the call to &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    fiber = Fiber.new do |first|</div><div class='add'>+ *      second = Fiber.yield first + 2</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    puts fiber.resume 10</div><div class='add'>+ *    puts fiber.resume 14</div><div class='add'>+ *    puts fiber.resume 18</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *    12</div><div class='add'>+ *    14</div><div class='add'>+ *    FiberError: dead fiber called</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t fiber_data_type = {</div><div class='add'>+    "fiber",</div><div class='add'>+    {fiber_mark, fiber_free, fiber_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return TypedData_Wrap_Struct(klass, &amp;fiber_data_type, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_fiber_t*</div><div class='add'>+fiber_t_alloc(VALUE fibval)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    if (DATA_PTR(fibval) != 0) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "cannot initialize twice");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    THREAD_MUST_BE_RUNNING(th);</div><div class='add'>+    fib = ZALLOC(rb_fiber_t);</div><div class='add'>+    fib-&gt;cont.self = fibval;</div><div class='add'>+    fib-&gt;cont.type = FIBER_CONTEXT;</div><div class='add'>+    cont_init(&amp;fib-&gt;cont, th);</div><div class='add'>+    fib-&gt;cont.saved_ec.fiber_ptr = fib;</div><div class='add'>+    fib-&gt;prev = NULL;</div><div class='add'>+</div><div class='add'>+    /* fib-&gt;status == 0 == CREATED</div><div class='add'>+     * So that we don't need to set status: fiber_status_set(fib, FIBER_CREATED); */</div><div class='add'>+    VM_ASSERT(FIBER_CREATED_P(fib));</div><div class='add'>+</div><div class='add'>+    DATA_PTR(fibval) = fib;</div><div class='add'>+</div><div class='add'>+    return fib;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+rb_control_frame_t *</div><div class='add'>+rb_vm_push_frame(rb_execution_context_t *sec,</div><div class='add'>+		 const rb_iseq_t *iseq,</div><div class='add'>+		 VALUE type,</div><div class='add'>+		 VALUE self,</div><div class='add'>+		 VALUE specval,</div><div class='add'>+		 VALUE cref_or_me,</div><div class='add'>+		 const VALUE *pc,</div><div class='add'>+		 VALUE *sp,</div><div class='add'>+		 int local_size,</div><div class='add'>+		 int stack_max);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_init(VALUE fibval, VALUE proc)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib = fiber_t_alloc(fibval);</div><div class='add'>+    rb_context_t *cont = &amp;fib-&gt;cont;</div><div class='add'>+    rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='add'>+    rb_thread_t *cth = GET_THREAD();</div><div class='add'>+    size_t fib_stack_size = cth-&gt;vm-&gt;default_params.fiber_vm_stack_size / sizeof(VALUE);</div><div class='add'>+</div><div class='add'>+    /* initialize cont */</div><div class='add'>+    cont-&gt;saved_vm_stack.ptr = NULL;</div><div class='add'>+    ec_set_vm_stack(sec, NULL, 0);</div><div class='add'>+</div><div class='add'>+    ec_set_vm_stack(sec, ALLOC_N(VALUE, fib_stack_size), fib_stack_size);</div><div class='add'>+    sec-&gt;cfp = (void *)(sec-&gt;vm_stack + sec-&gt;vm_stack_size);</div><div class='add'>+</div><div class='add'>+    rb_vm_push_frame(sec,</div><div class='add'>+		     NULL,</div><div class='add'>+		     VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL | VM_FRAME_FLAG_FINISH | VM_FRAME_FLAG_CFRAME,</div><div class='add'>+		     Qnil, /* self */</div><div class='add'>+		     VM_BLOCK_HANDLER_NONE,</div><div class='add'>+		     0, /* specval */</div><div class='add'>+		     NULL, /* pc */</div><div class='add'>+		     sec-&gt;vm_stack, /* sp */</div><div class='add'>+		     0, /* local_size */</div><div class='add'>+		     0);</div><div class='add'>+</div><div class='add'>+    sec-&gt;tag = NULL;</div><div class='add'>+    sec-&gt;local_storage = NULL;</div><div class='add'>+    sec-&gt;local_storage_recursive_hash = Qnil;</div><div class='add'>+    sec-&gt;local_storage_recursive_hash_for_trace = Qnil;</div><div class='add'>+</div><div class='add'>+    fib-&gt;first_proc = proc;</div><div class='add'>+</div><div class='add'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    MEMCPY(&amp;cont-&gt;jmpbuf, &amp;cth-&gt;root_jmpbuf, rb_jmpbuf_t, 1);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return fibval;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_init(VALUE fibval)</div><div class='add'>+{</div><div class='add'>+    return fiber_init(fibval, rb_block_proc());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_new(VALUE (*func)(ANYARGS), VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return fiber_init(fiber_alloc(rb_cFiber), rb_proc_new(func, obj));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void rb_fiber_terminate(rb_fiber_t *fib, int need_interrupt);</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_start(void)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t * volatile th = GET_THREAD();</div><div class='add'>+    rb_fiber_t *fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+    rb_proc_t *proc;</div><div class='add'>+    enum ruby_tag_type state;</div><div class='add'>+    int need_interrupt = TRUE;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(th-&gt;ec == ruby_current_execution_context_ptr);</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='add'>+</div><div class='add'>+    EC_PUSH_TAG(th-&gt;ec);</div><div class='add'>+    if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='add'>+	rb_context_t *cont = &amp;VAR_FROM_MEMORY(fib)-&gt;cont;</div><div class='add'>+	int argc;</div><div class='add'>+	const VALUE *argv, args = cont-&gt;value;</div><div class='add'>+	GetProcPtr(fib-&gt;first_proc, proc);</div><div class='add'>+	argv = (argc = cont-&gt;argc) &gt; 1 ? RARRAY_CONST_PTR(args) : &amp;args;</div><div class='add'>+	cont-&gt;value = Qnil;</div><div class='add'>+	th-&gt;ec-&gt;errinfo = Qnil;</div><div class='add'>+	th-&gt;ec-&gt;root_lep = rb_vm_proc_local_ep(fib-&gt;first_proc);</div><div class='add'>+	th-&gt;ec-&gt;root_svar = Qfalse;</div><div class='add'>+</div><div class='add'>+	EXEC_EVENT_HOOK(th-&gt;ec, RUBY_EVENT_FIBER_SWITCH, th-&gt;self, 0, 0, 0, Qnil);</div><div class='add'>+	cont-&gt;value = rb_vm_invoke_proc(th-&gt;ec, proc, argc, argv, VM_BLOCK_HANDLER_NONE);</div><div class='add'>+    }</div><div class='add'>+    EC_POP_TAG();</div><div class='add'>+</div><div class='add'>+    if (state) {</div><div class='add'>+	VALUE err = th-&gt;ec-&gt;errinfo;</div><div class='add'>+	VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='add'>+</div><div class='add'>+	if (state == TAG_RAISE || state == TAG_FATAL) {</div><div class='add'>+	    rb_threadptr_pending_interrupt_enque(th, err);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    err = rb_vm_make_jump_tag_but_local_jump(state, err);</div><div class='add'>+	    if (!NIL_P(err)) {</div><div class='add'>+		rb_threadptr_pending_interrupt_enque(th, err);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	need_interrupt = TRUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_fiber_terminate(fib, need_interrupt);</div><div class='add'>+    VM_UNREACHABLE(rb_fiber_start);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_fiber_t *</div><div class='add'>+root_fiber_alloc(rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    VALUE fibval = fiber_alloc(rb_cFiber);</div><div class='add'>+    rb_fiber_t *fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(DATA_PTR(fibval) == NULL);</div><div class='add'>+    VM_ASSERT(fib-&gt;cont.type == ROOT_FIBER_CONTEXT);</div><div class='add'>+    VM_ASSERT(fib-&gt;status == FIBER_RESUMED);</div><div class='add'>+</div><div class='add'>+    th-&gt;root_fiber = fib;</div><div class='add'>+    DATA_PTR(fibval) = fib;</div><div class='add'>+    fib-&gt;cont.self = fibval;</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    if (fib-&gt;fib_handle == 0) {</div><div class='add'>+	fib-&gt;fib_handle = ConvertThreadToFiber(0);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    return fib;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_threadptr_root_fiber_setup(rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib = ruby_mimmalloc(sizeof(rb_fiber_t));</div><div class='add'>+    MEMZERO(fib, rb_fiber_t, 1);</div><div class='add'>+    fib-&gt;cont.type = ROOT_FIBER_CONTEXT;</div><div class='add'>+    fib-&gt;cont.saved_ec.fiber_ptr = fib;</div><div class='add'>+    fib-&gt;cont.saved_ec.thread_ptr = th;</div><div class='add'>+    fiber_status_set(fib, FIBER_RESUMED); /* skip CREATED */</div><div class='add'>+    th-&gt;ec = &amp;fib-&gt;cont.saved_ec;</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    if (fib-&gt;fib_handle == 0) {</div><div class='add'>+	fib-&gt;fib_handle = ConvertThreadToFiber(0);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_threadptr_root_fiber_release(rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    if (th-&gt;root_fiber) {</div><div class='add'>+	/* ignore. A root fiber object will free th-&gt;ec */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.type == ROOT_FIBER_CONTEXT);</div><div class='add'>+	VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.self == 0);</div><div class='add'>+	fiber_free(th-&gt;ec-&gt;fiber_ptr);</div><div class='add'>+</div><div class='add'>+	if (th-&gt;ec == ruby_current_execution_context_ptr) {</div><div class='add'>+	    ruby_current_execution_context_ptr = NULL;</div><div class='add'>+	}</div><div class='add'>+	th-&gt;ec = NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline rb_fiber_t*</div><div class='add'>+fiber_current(void)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    if (ec-&gt;fiber_ptr-&gt;cont.self == 0) {</div><div class='add'>+	root_fiber_alloc(rb_ec_thread_ptr(ec));</div><div class='add'>+    }</div><div class='add'>+    return ec-&gt;fiber_ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline rb_fiber_t*</div><div class='add'>+return_fiber(void)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib = fiber_current();</div><div class='add'>+    rb_fiber_t *prev = fib-&gt;prev;</div><div class='add'>+</div><div class='add'>+    if (!prev) {</div><div class='add'>+	rb_thread_t *th = GET_THREAD();</div><div class='add'>+	rb_fiber_t *root_fiber = th-&gt;root_fiber;</div><div class='add'>+</div><div class='add'>+	VM_ASSERT(root_fiber != NULL);</div><div class='add'>+</div><div class='add'>+	if (root_fiber == fib) {</div><div class='add'>+	    rb_raise(rb_eFiberError, "can't yield from root fiber");</div><div class='add'>+	}</div><div class='add'>+	return root_fiber;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	fib-&gt;prev = NULL;</div><div class='add'>+	return prev;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_current(void)</div><div class='add'>+{</div><div class='add'>+    return fiber_current()-&gt;cont.self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+fiber_store(rb_fiber_t *next_fib, rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+</div><div class='add'>+    if (th-&gt;ec-&gt;fiber_ptr != NULL) {</div><div class='add'>+	fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* create root fiber */</div><div class='add'>+	fib = root_fiber_alloc(th);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fib) || FIBER_TERMINATED_P(fib));</div><div class='add'>+    VM_ASSERT(FIBER_RUNNABLE_P(next_fib));</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+    if (FIBER_CREATED_P(next_fib)) {</div><div class='add'>+	fiber_initialize_machine_stack_context(next_fib, th-&gt;vm-&gt;default_params.fiber_machine_stack_size);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (FIBER_RESUMED_P(fib)) fiber_status_set(fib, FIBER_SUSPENDED);</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE == 0</div><div class='add'>+    /* should (re-)allocate stack are before fib-&gt;status change to pass fiber_verify() */</div><div class='add'>+    cont_save_machine_stack(th, &amp;fib-&gt;cont);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    fiber_status_set(next_fib, FIBER_RESUMED);</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+    fiber_setcontext(next_fib, fib);</div><div class='add'>+    /* restored */</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+    if (terminated_machine_stack.ptr) {</div><div class='add'>+	if (machine_stack_cache_index &lt; MAX_MACHINE_STACK_CACHE) {</div><div class='add'>+	    machine_stack_cache[machine_stack_cache_index].ptr = terminated_machine_stack.ptr;</div><div class='add'>+	    machine_stack_cache[machine_stack_cache_index].size = terminated_machine_stack.size;</div><div class='add'>+	    machine_stack_cache_index++;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (terminated_machine_stack.ptr != fib-&gt;cont.machine.stack) {</div><div class='add'>+		munmap((void*)terminated_machine_stack.ptr, terminated_machine_stack.size * sizeof(VALUE));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		rb_bug("terminated fiber resumed");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	terminated_machine_stack.ptr = NULL;</div><div class='add'>+	terminated_machine_stack.size = 0;</div><div class='add'>+    }</div><div class='add'>+#endif /* not _WIN32 */</div><div class='add'>+    fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+    if (fib-&gt;cont.argc == -1) rb_exc_raise(fib-&gt;cont.value);</div><div class='add'>+    return fib-&gt;cont.value;</div><div class='add'>+</div><div class='add'>+#else /* FIBER_USE_NATIVE */</div><div class='add'>+    fib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='add'>+    if (ruby_setjmp(fib-&gt;cont.jmpbuf)) {</div><div class='add'>+	/* restored */</div><div class='add'>+	fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+	if (fib-&gt;cont.argc == -1) rb_exc_raise(fib-&gt;cont.value);</div><div class='add'>+	if (next_fib-&gt;cont.value == Qundef) {</div><div class='add'>+	    cont_restore_0(&amp;next_fib-&gt;cont, &amp;next_fib-&gt;cont.value);</div><div class='add'>+	    VM_UNREACHABLE(fiber_store);</div><div class='add'>+	}</div><div class='add'>+	return fib-&gt;cont.value;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE undef = Qundef;</div><div class='add'>+	cont_restore_0(&amp;next_fib-&gt;cont, &amp;undef);</div><div class='add'>+	VM_UNREACHABLE(fiber_store);</div><div class='add'>+    }</div><div class='add'>+#endif /* FIBER_USE_NATIVE */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+fiber_switch(rb_fiber_t *fib, int argc, const VALUE *argv, int is_resume)</div><div class='add'>+{</div><div class='add'>+    VALUE value;</div><div class='add'>+    rb_context_t *cont = &amp;fib-&gt;cont;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    /* make sure the root_fiber object is available */</div><div class='add'>+    if (th-&gt;root_fiber == NULL) root_fiber_alloc(th);</div><div class='add'>+</div><div class='add'>+    if (th-&gt;ec-&gt;fiber_ptr == fib) {</div><div class='add'>+	/* ignore fiber context switch</div><div class='add'>+         * because destination fiber is same as current fiber</div><div class='add'>+	 */</div><div class='add'>+	return make_passing_arg(argc, argv);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (cont_thread_value(cont) != th-&gt;self) {</div><div class='add'>+	rb_raise(rb_eFiberError, "fiber called across threads");</div><div class='add'>+    }</div><div class='add'>+    else if (cont-&gt;saved_ec.protect_tag != th-&gt;ec-&gt;protect_tag) {</div><div class='add'>+	rb_raise(rb_eFiberError, "fiber called across stack rewinding barrier");</div><div class='add'>+    }</div><div class='add'>+    else if (FIBER_TERMINATED_P(fib)) {</div><div class='add'>+	value = rb_exc_new2(rb_eFiberError, "dead fiber called");</div><div class='add'>+</div><div class='add'>+	if (!FIBER_TERMINATED_P(th-&gt;ec-&gt;fiber_ptr)) {</div><div class='add'>+	    rb_exc_raise(value);</div><div class='add'>+	    VM_UNREACHABLE(fiber_switch);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* th-&gt;ec-&gt;fiber_ptr is also dead =&gt; switch to root fiber */</div><div class='add'>+	    /* (this means we're being called from rb_fiber_terminate, */</div><div class='add'>+	    /* and the terminated fiber's return_fiber() is already dead) */</div><div class='add'>+	    VM_ASSERT(FIBER_SUSPENDED_P(th-&gt;root_fiber));</div><div class='add'>+</div><div class='add'>+	    cont = &amp;th-&gt;root_fiber-&gt;cont;</div><div class='add'>+	    cont-&gt;argc = -1;</div><div class='add'>+	    cont-&gt;value = value;</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+	    fiber_setcontext(th-&gt;root_fiber, th-&gt;ec-&gt;fiber_ptr);</div><div class='add'>+#else</div><div class='add'>+	    cont_restore_0(cont, &amp;value);</div><div class='add'>+#endif</div><div class='add'>+	    VM_UNREACHABLE(fiber_switch);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (is_resume) {</div><div class='add'>+	fib-&gt;prev = fiber_current();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(FIBER_RUNNABLE_P(fib));</div><div class='add'>+</div><div class='add'>+    cont-&gt;argc = argc;</div><div class='add'>+    cont-&gt;value = make_passing_arg(argc, argv);</div><div class='add'>+    value = fiber_store(fib, th);</div><div class='add'>+    RUBY_VM_CHECK_INTS(th-&gt;ec);</div><div class='add'>+</div><div class='add'>+    EXEC_EVENT_HOOK(th-&gt;ec, RUBY_EVENT_FIBER_SWITCH, th-&gt;self, 0, 0, 0, Qnil);</div><div class='add'>+</div><div class='add'>+    return value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_transfer(VALUE fibval, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    return fiber_switch(fib, argc, argv, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_close(rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    VALUE *vm_stack = fib-&gt;cont.saved_ec.vm_stack;</div><div class='add'>+    fiber_status_set(fib, FIBER_TERMINATED);</div><div class='add'>+    if (fib-&gt;cont.type == ROOT_FIBER_CONTEXT) {</div><div class='add'>+	rb_thread_recycle_stack_release(vm_stack);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ruby_xfree(vm_stack);</div><div class='add'>+    }</div><div class='add'>+    ec_set_vm_stack(&amp;fib-&gt;cont.saved_ec, NULL, 0);</div><div class='add'>+</div><div class='add'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    /* should not mark machine stack any more */</div><div class='add'>+    fib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_fiber_terminate(rb_fiber_t *fib, int need_interrupt)</div><div class='add'>+{</div><div class='add'>+    VALUE value = fib-&gt;cont.value;</div><div class='add'>+    rb_fiber_t *ret_fib;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='add'>+    rb_fiber_close(fib);</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE &amp;&amp; !defined(_WIN32)</div><div class='add'>+    /* Ruby must not switch to other thread until storing terminated_machine_stack */</div><div class='add'>+    terminated_machine_stack.ptr = fib-&gt;ss_sp;</div><div class='add'>+    terminated_machine_stack.size = fib-&gt;ss_size / sizeof(VALUE);</div><div class='add'>+    fib-&gt;ss_sp = NULL;</div><div class='add'>+    fib-&gt;context.uc_stack.ss_sp = NULL;</div><div class='add'>+    fib-&gt;cont.machine.stack = NULL;</div><div class='add'>+    fib-&gt;cont.machine.stack_size = 0;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    ret_fib = return_fiber();</div><div class='add'>+    if (need_interrupt) RUBY_VM_SET_INTERRUPT(&amp;ret_fib-&gt;cont.saved_ec);</div><div class='add'>+    fiber_switch(ret_fib, 1, &amp;value, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_resume(VALUE fibval, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+</div><div class='add'>+    if (fib-&gt;prev != 0 || fib-&gt;cont.type == ROOT_FIBER_CONTEXT) {</div><div class='add'>+	rb_raise(rb_eFiberError, "double resume");</div><div class='add'>+    }</div><div class='add'>+    if (fib-&gt;transferred != 0) {</div><div class='add'>+	rb_raise(rb_eFiberError, "cannot resume transferred Fiber");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return fiber_switch(fib, argc, argv, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_yield(int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    return fiber_switch(return_fiber(), argc, argv, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_reset_root_local_storage(VALUE thval)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = rb_thread_ptr(thval);</div><div class='add'>+</div><div class='add'>+    if (th-&gt;root_fiber &amp;&amp; th-&gt;root_fiber != th-&gt;ec-&gt;fiber_ptr) {</div><div class='add'>+	th-&gt;ec-&gt;local_storage = th-&gt;root_fiber-&gt;cont.saved_ec.local_storage;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.alive? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns true if the fiber can still be resumed (or transferred</div><div class='add'>+ *  to). After finishing execution of the fiber block this method will</div><div class='add'>+ *  always return false. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='add'>+ *  before using this method.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_alive_p(VALUE fibval)</div><div class='add'>+{</div><div class='add'>+    const rb_fiber_t *fib;</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    return FIBER_TERMINATED_P(fib) ? Qfalse : Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.resume(args, ...) -&gt; obj</div><div class='add'>+ *</div><div class='add'>+ *  Resumes the fiber from the point at which the last &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='add'>+ *  was called, or starts running it if it is the first call to</div><div class='add'>+ *  &lt;code&gt;resume&lt;/code&gt;. Arguments passed to resume will be the value of</div><div class='add'>+ *  the &lt;code&gt;Fiber.yield&lt;/code&gt; expression or will be passed as block</div><div class='add'>+ *  parameters to the fiber's block if this is the first &lt;code&gt;resume&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Alternatively, when resume is called it evaluates to the arguments passed</div><div class='add'>+ *  to the next &lt;code&gt;Fiber.yield&lt;/code&gt; statement inside the fiber's block</div><div class='add'>+ *  or to the block value if it runs to completion without any</div><div class='add'>+ *  &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_m_resume(int argc, VALUE *argv, VALUE fib)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_resume(fib, argc, argv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.transfer(args, ...) -&gt; obj</div><div class='add'>+ *</div><div class='add'>+ *  Transfer control to another fiber, resuming it from where it last</div><div class='add'>+ *  stopped or starting it if it was not resumed before. The calling</div><div class='add'>+ *  fiber will be suspended much like in a call to</div><div class='add'>+ *  &lt;code&gt;Fiber.yield&lt;/code&gt;. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='add'>+ *  before using this method.</div><div class='add'>+ *</div><div class='add'>+ *  The fiber which receives the transfer call is treats it much like</div><div class='add'>+ *  a resume call. Arguments passed to transfer are treated like those</div><div class='add'>+ *  passed to resume.</div><div class='add'>+ *</div><div class='add'>+ *  You cannot resume a fiber that transferred control to another one.</div><div class='add'>+ *  This will cause a double resume error. You need to transfer control</div><div class='add'>+ *  back to this fiber before it can yield and resume.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    fiber1 = Fiber.new do</div><div class='add'>+ *      puts "In Fiber 1"</div><div class='add'>+ *      Fiber.yield</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    fiber2 = Fiber.new do</div><div class='add'>+ *      puts "In Fiber 2"</div><div class='add'>+ *      fiber1.transfer</div><div class='add'>+ *      puts "Never see this message"</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    fiber3 = Fiber.new do</div><div class='add'>+ *      puts "In Fiber 3"</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    fiber2.resume</div><div class='add'>+ *    fiber3.resume</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *    In fiber 2</div><div class='add'>+ *    In fiber 1</div><div class='add'>+ *    In fiber 3</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_m_transfer(int argc, VALUE *argv, VALUE fibval)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    fib-&gt;transferred = 1;</div><div class='add'>+    return fiber_switch(fib, argc, argv, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.yield(args, ...) -&gt; obj</div><div class='add'>+ *</div><div class='add'>+ *  Yields control back to the context that resumed the fiber, passing</div><div class='add'>+ *  along any arguments that were passed to it. The fiber will resume</div><div class='add'>+ *  processing at this point when &lt;code&gt;resume&lt;/code&gt; is called next.</div><div class='add'>+ *  Any arguments passed to the next &lt;code&gt;resume&lt;/code&gt; will be the</div><div class='add'>+ *  value that this &lt;code&gt;Fiber.yield&lt;/code&gt; expression evaluates to.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_yield(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_yield(argc, argv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.current() -&gt; fiber</div><div class='add'>+ *</div><div class='add'>+ *  Returns the current fiber. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='add'>+ *  before using this method. If you are not running in the context of</div><div class='add'>+ *  a fiber this method will return the root fiber.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_current(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_current();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   fiber.to_s   -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns fiber information string.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_to_s(VALUE fibval)</div><div class='add'>+{</div><div class='add'>+    const rb_fiber_t *fib;</div><div class='add'>+    const rb_proc_t *proc;</div><div class='add'>+    char status_info[0x10];</div><div class='add'>+</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    snprintf(status_info, 0x10, " (%s)", fiber_status_name(fib-&gt;status));</div><div class='add'>+    if (!rb_obj_is_proc(fib-&gt;first_proc)) {</div><div class='add'>+	VALUE str = rb_any_to_s(fibval);</div><div class='add'>+	strlcat(status_info, "&gt;", sizeof(status_info));</div><div class='add'>+	rb_str_set_len(str, RSTRING_LEN(str)-1);</div><div class='add'>+	rb_str_cat_cstr(str, status_info);</div><div class='add'>+	return str;</div><div class='add'>+    }</div><div class='add'>+    GetProcPtr(fib-&gt;first_proc, proc);</div><div class='add'>+    return rb_block_to_s(fibval, &amp;proc-&gt;block, status_info);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_WORKING_FORK</div><div class='add'>+void</div><div class='add'>+rb_fiber_atfork(rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    if (th-&gt;root_fiber) {</div><div class='add'>+        if (&amp;th-&gt;root_fiber-&gt;cont.saved_ec != th-&gt;ec) {</div><div class='add'>+            th-&gt;root_fiber = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+            th-&gt;root_fiber-&gt;cont.type = ROOT_FIBER_CONTEXT;</div><div class='add'>+        }</div><div class='add'>+        th-&gt;root_fiber-&gt;prev = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Document-class: FiberError</div><div class='add'>+ *</div><div class='add'>+ *  Raised when an invalid operation is attempted on a Fiber, in</div><div class='add'>+ *  particular when attempting to call/resume a dead fiber,</div><div class='add'>+ *  attempting to yield from the root fiber, or calling a fiber across</div><div class='add'>+ *  threads.</div><div class='add'>+ *</div><div class='add'>+ *     fiber = Fiber.new{}</div><div class='add'>+ *     fiber.resume #=&gt; nil</div><div class='add'>+ *     fiber.resume #=&gt; FiberError: dead fiber called</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_Cont(void)</div><div class='add'>+{</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    SYSTEM_INFO info;</div><div class='add'>+    GetSystemInfo(&amp;info);</div><div class='add'>+    pagesize = info.dwPageSize;</div><div class='add'>+#else /* not WIN32 */</div><div class='add'>+    pagesize = sysconf(_SC_PAGESIZE);</div><div class='add'>+#endif</div><div class='add'>+    SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_cFiber = rb_define_class("Fiber", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cFiber, fiber_alloc);</div><div class='add'>+    rb_eFiberError = rb_define_class("FiberError", rb_eStandardError);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "yield", rb_fiber_s_yield, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "initialize", rb_fiber_init, 0);</div><div class='add'>+    rb_define_method(rb_cFiber, "resume", rb_fiber_m_resume, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "to_s", fiber_to_s, 0);</div><div class='add'>+    rb_define_alias(rb_cFiber, "inspect", "to_s");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_Init_Continuation_body(void)</div><div class='add'>+{</div><div class='add'>+    rb_cContinuation = rb_define_class("Continuation", rb_cObject);</div><div class='add'>+    rb_undef_alloc_func(rb_cContinuation);</div><div class='add'>+    rb_undef_method(CLASS_OF(rb_cContinuation), "new");</div><div class='add'>+    rb_define_method(rb_cContinuation, "call", rb_cont_call, -1);</div><div class='add'>+    rb_define_method(rb_cContinuation, "[]", rb_cont_call, -1);</div><div class='add'>+    rb_define_global_function("callcc", rb_callcc, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_Init_Fiber_as_Coroutine(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_method(rb_cFiber, "transfer", rb_fiber_m_transfer, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "alive?", rb_fiber_alive_p, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "current", rb_fiber_s_current, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='head'>diff --git a/coverage/README b/coverage/README<br/>new file mode 100644<br/>index 0000000000..7e4ff59e2a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coverage/README?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>coverage/README</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+Usage</div><div class='add'>+</div><div class='add'>+The make task `update-coverage' retrieves simplecov for coverage report.</div><div class='add'>+</div><div class='add'>+COVERAGE=1 make test-all TESTS=test/cgi</div><div class='add'>+</div><div class='add'>+it generate test coverage to coverage directory.</div><div class='add'>+</div><div class='add'>+Limitation</div><div class='add'>+</div><div class='add'>+ * test_coverage.rb and test_process.rb broke test suit with SimpleCov</div><div class='add'>+ * some tests failed randomly.</div><div class='add'>+</div><div class='add'>+TODO</div><div class='add'>+</div><div class='add'>+ * more reduce bundled simplecov(additional configuration, formatter, etc)</div><div class='add'>+ * measure rubyspec coverage</div><div class='head'>diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in<br/>index 03208df11c..192cf43b37 100644<br/>--- a/<a href='/ruby.git/tree/cygwin/GNUmakefile.in?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>cygwin/GNUmakefile.in</a><br/>+++ b/<a href='/ruby.git/tree/cygwin/GNUmakefile.in?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>cygwin/GNUmakefile.in</a></div><div class='hunk'>@@ -1,14 +1,16 @@</div><div class='ctx'> include Makefile</div><div class='ctx'> </div><div class='ctx'> ENABLE_SHARED=@ENABLE_SHARED@</div><div class='del'>-DLLWRAP = @DLLWRAP@ --target=@target_os@</div><div class='add'>+DLLWRAP = @DLLWRAP@ --target=@target_os@ --driver-name="$(CC)"</div><div class='add'>+WINDRES = @WINDRES@ --preprocessor="$(CPP) -xc" -DRC_INVOKED</div><div class='add'>+STRIP = @STRIP@</div><div class='ctx'> </div><div class='ctx'> ifeq (@target_os@,cygwin)</div><div class='del'>-  DLL_BASE_NAME := $(subst .dll,,$(LIBRUBY_SO))</div><div class='add'>+  DLL_BASE_NAME := $(LIBRUBY_SO:.dll=)</div><div class='ctx'> else</div><div class='ctx'>   DLL_BASE_NAME := $(RUBY_SO_NAME)</div><div class='ctx'>   DLLWRAP += -mno-cygwin</div><div class='del'>-  VPATH += $(srcdir)/win32</div><div class='add'>+  VPATH := $(VPATH):$(srcdir)/win32</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> ifneq ($(ENABLE_SHARED),yes)</div><div class='hunk'>@@ -25,9 +27,15 @@ else</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)</div><div class='add'>+</div><div class='add'>+-include uncommon.mk</div><div class='add'>+</div><div class='add'>+include $(srcdir)/defs/gmake.mk</div><div class='add'>+</div><div class='ctx'> SOLIBS := $(DLL_BASE_NAME).res.@OBJEXT@ $(SOLIBS)</div><div class='del'>-EXTOBJS += $(@:$(EXEEXT)=.res.@OBJEXT@)</div><div class='add'>+override EXTOBJS += $(if $(filter-out $(RUBYW_INSTALL_NAME),$(@:$(EXEEXT)=)),$(RUBY_INSTALL_NAME),$(@:$(EXEEXT)=)).res.$(OBJEXT)</div><div class='ctx'> RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(DLL_BASE_NAME).rc</div><div class='add'>+RUBYDEF = $(DLL_BASE_NAME).def</div><div class='ctx'> </div><div class='ctx'> ruby: $(PROGRAM)</div><div class='ctx'> rubyw: $(WPROGRAM)</div><div class='hunk'>@@ -36,43 +44,63 @@ $(LIBRUBY): $(RUBY_EXP) $(LIBRUBY_SO)</div><div class='ctx'> $(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.@OBJEXT@</div><div class='ctx'> </div><div class='ctx'> %.res.@OBJEXT@: %.rc</div><div class='del'>-	@WINDRES@ --include-dir . --include-dir $(&lt;D) --include-dir $(srcdir)/win32 $&lt; $@</div><div class='add'>+	$(ECHO) compiling $@</div><div class='add'>+	$(Q) $(WINDRES) --include-dir . --include-dir $(&lt;D) --include-dir $(srcdir)/win32 $&lt; $@</div><div class='ctx'> </div><div class='del'>-$(RCFILES): $(RBCONFIG)</div><div class='del'>-	@$(MINIRUBY) $(srcdir)/win32/resource.rb \</div><div class='add'>+%.rc: $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/win32/resource.rb \</div><div class='ctx'> 	  -ruby_name=$(RUBY_INSTALL_NAME) -rubyw_name=$(RUBYW_INSTALL_NAME) \</div><div class='del'>-	  -so_name=$(DLL_BASE_NAME) \</div><div class='add'>+	  -so_name=$(DLL_BASE_NAME) -output=$(*F) \</div><div class='ctx'> 	  . $(icondirs) $(srcdir)/win32</div><div class='ctx'> </div><div class='ctx'> $(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@</div><div class='ctx'> $(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@</div><div class='ctx'> 	@rm -f $@</div><div class='del'>-	$(PURIFY) $(CC) -mwindows -e _mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \</div><div class='add'>+	$(ECHO) linking $@</div><div class='add'>+	$(Q) $(PURIFY) $(CC) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \</div><div class='ctx'> 	  $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@</div><div class='add'>+$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@</div><div class='ctx'> </div><div class='ctx'> $(RUBY_EXP): $(LIBRUBY_A)</div><div class='del'>-	$(DLLWRAP) \</div><div class='add'>+	$(ECHO) creating $@</div><div class='add'>+	$(Q) $(DLLWRAP) \</div><div class='ctx'> 	  --output-exp=$(RUBY_EXP) \</div><div class='ctx'> 	  --export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)</div><div class='del'>-	$(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)</div><div class='add'>+	$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)</div><div class='ctx'> 	@rm -f $(PROGRAM)</div><div class='ctx'> </div><div class='ctx'> GNUmakefile:	$(srcdir)/cygwin/GNUmakefile.in</div><div class='ctx'> </div><div class='ctx'> ifeq (@target_os@,mingw32)</div><div class='del'>-$(OBJS) $(MAINOBJ): win32/win32.h</div><div class='add'>+$(OBJS) $(MAINOBJ): win32.h</div><div class='add'>+</div><div class='add'>+dir.$(OBJEXT) win32/win32.$(OBJEXT): win32/dir.h</div><div class='add'>+file.$(OBJEXT) win32/win32.$(OBJEXT): win32/file.h</div><div class='add'>+</div><div class='add'>+MSYS2_ARG_CONV_EXCL_PARAM = --exclude=;--name=</div><div class='add'>+</div><div class='add'>+yes-test-ruby:	 export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='add'>+yes-test-all:	 export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='add'>+yes-test-almost: export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='add'>+</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='add'>+$(LIBRUBY_SO): $(RUBYDEF)</div><div class='add'>+</div><div class='add'>+$(RUBYDEF): $(LIBRUBY_A) $(PREP) $(RBCONFIG)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MINIRUBY) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A)</div><div class='add'>+</div><div class='add'>+clean-local::</div><div class='add'>+	@$(RM) $(RUBYDEF)</div><div class='add'>+</div><div class='ctx'> ifeq (@target_os@,cygwin)</div><div class='del'>-cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR).dll: $(LIBRUBY_A)</div><div class='del'>-	@NM@ --extern --defined $(LIBRUBY_A) | \</div><div class='del'>-	  $(MINIRUBY) -ne 'BEGIN{puts "EXPORTS"}; puts $$1+"=cyg$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)."+$$1 if / [CDT] _(.*)$$/' &gt;rubydll.def</div><div class='del'>-	@DLLWRAP@ -s --def=rubydll.def -o $@</div><div class='del'>-	@rm -f rubydll.def</div><div class='add'>+cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)0.dll: $(LIBRUBY_A) $(RUBYDEF)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) @DLLWRAP@ -s --def=$(RUBYDEF) -o $@</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> clean-local::</div><div class='ctx'> 	@$(RM) $(RUBY_EXP) $(RCFILES:.rc=.res.@OBJEXT@)</div><div class='del'>-</div><div class='del'>-distclean-local::</div><div class='ctx'> 	@$(RM) $(RCFILES)</div><div class='head'>diff --git a/debug.c b/debug.c<br/>new file mode 100644<br/>index 0000000000..f811ec6779<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/debug.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>debug.c</a></div><div class='hunk'>@@ -0,0 +1,226 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  debug.c -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: 04/08/25 02:31:54 JST</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2004-2007 Koichi Sasada</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "vm_debug.h"</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "symbol.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+</div><div class='add'>+/* for gdb */</div><div class='add'>+const union {</div><div class='add'>+    enum ruby_special_consts    special_consts;</div><div class='add'>+    enum ruby_value_type        value_type;</div><div class='add'>+    enum ruby_tag_type          tag_type;</div><div class='add'>+    enum node_type              node_type;</div><div class='add'>+    enum ruby_method_ids        method_ids;</div><div class='add'>+    enum ruby_id_types          id_types;</div><div class='add'>+    enum ruby_fl_type           fl_types;</div><div class='add'>+    enum ruby_encoding_consts   encoding_consts;</div><div class='add'>+    enum ruby_coderange_type    enc_coderange_types;</div><div class='add'>+    enum ruby_econv_flag_type   econv_flag_types;</div><div class='add'>+    enum ruby_robject_flags     robject_flags;</div><div class='add'>+    enum ruby_rmodule_flags     rmodule_flags;</div><div class='add'>+    enum ruby_rstring_flags     rstring_flags;</div><div class='add'>+    enum ruby_rarray_flags      rarray_flags;</div><div class='add'>+    enum {</div><div class='add'>+	RUBY_FMODE_READABLE		= FMODE_READABLE,</div><div class='add'>+	RUBY_FMODE_WRITABLE		= FMODE_WRITABLE,</div><div class='add'>+	RUBY_FMODE_READWRITE		= FMODE_READWRITE,</div><div class='add'>+	RUBY_FMODE_BINMODE		= FMODE_BINMODE,</div><div class='add'>+	RUBY_FMODE_SYNC 		= FMODE_SYNC,</div><div class='add'>+	RUBY_FMODE_TTY			= FMODE_TTY,</div><div class='add'>+	RUBY_FMODE_DUPLEX		= FMODE_DUPLEX,</div><div class='add'>+	RUBY_FMODE_APPEND		= FMODE_APPEND,</div><div class='add'>+	RUBY_FMODE_CREATE		= FMODE_CREATE,</div><div class='add'>+	RUBY_FMODE_NOREVLOOKUP		= 0x00000100,</div><div class='add'>+	RUBY_FMODE_TRUNC		= FMODE_TRUNC,</div><div class='add'>+	RUBY_FMODE_TEXTMODE		= FMODE_TEXTMODE,</div><div class='add'>+	RUBY_FMODE_PREP 		= 0x00010000,</div><div class='add'>+	RUBY_FMODE_SETENC_BY_BOM	= FMODE_SETENC_BY_BOM,</div><div class='add'>+	RUBY_FMODE_UNIX 		= 0x00200000,</div><div class='add'>+	RUBY_FMODE_INET 		= 0x00400000,</div><div class='add'>+	RUBY_FMODE_INET6		= 0x00800000,</div><div class='add'>+</div><div class='add'>+        RUBY_NODE_TYPESHIFT = NODE_TYPESHIFT,</div><div class='add'>+        RUBY_NODE_TYPEMASK  = NODE_TYPEMASK,</div><div class='add'>+        RUBY_NODE_LSHIFT    = NODE_LSHIFT,</div><div class='add'>+        RUBY_NODE_FL_NEWLINE   = NODE_FL_NEWLINE</div><div class='add'>+    } various;</div><div class='add'>+    union {</div><div class='add'>+	enum imemo_type                     types;</div><div class='add'>+	enum {RUBY_IMEMO_MASK = IMEMO_MASK} mask;</div><div class='add'>+	struct RIMemo                      *ptr;</div><div class='add'>+    } imemo;</div><div class='add'>+    struct RSymbol *symbol_ptr;</div><div class='add'>+    enum vm_call_flag_bits vm_call_flags;</div><div class='add'>+} ruby_dummy_gdb_enums;</div><div class='add'>+</div><div class='add'>+const SIGNED_VALUE RUBY_NODE_LMASK = NODE_LMASK;</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+ruby_debug_print_indent(int level, int debug_level, int indent_level)</div><div class='add'>+{</div><div class='add'>+    if (level &lt; debug_level) {</div><div class='add'>+	fprintf(stderr, "%*s", indent_level, "");</div><div class='add'>+	fflush(stderr);</div><div class='add'>+	return TRUE;</div><div class='add'>+    }</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_printf(const char *format, ...)</div><div class='add'>+{</div><div class='add'>+    va_list ap;</div><div class='add'>+    va_start(ap, format);</div><div class='add'>+    vfprintf(stderr, format, ap);</div><div class='add'>+    va_end(ap);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#include "gc.h"</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (level &lt; debug_level) {</div><div class='add'>+	char buff[0x100];</div><div class='add'>+	rb_raw_obj_info(buff, 0x100, obj);</div><div class='add'>+</div><div class='add'>+	fprintf(stderr, "DBG&gt; %s: %s\n", header, buff);</div><div class='add'>+	fflush(stderr);</div><div class='add'>+    }</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_print_v(VALUE v)</div><div class='add'>+{</div><div class='add'>+    ruby_debug_print_value(0, 1, "", v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+ID</div><div class='add'>+ruby_debug_print_id(int level, int debug_level, const char *header, ID id)</div><div class='add'>+{</div><div class='add'>+    if (level &lt; debug_level) {</div><div class='add'>+	fprintf(stderr, "DBG&gt; %s: %s\n", header, rb_id2name(id));</div><div class='add'>+	fflush(stderr);</div><div class='add'>+    }</div><div class='add'>+    return id;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NODE *</div><div class='add'>+ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node)</div><div class='add'>+{</div><div class='add'>+    if (level &lt; debug_level) {</div><div class='add'>+	fprintf(stderr, "DBG&gt; %s: %s (%u)\n", header,</div><div class='add'>+		ruby_node_name(nd_type(node)), nd_line(node));</div><div class='add'>+    }</div><div class='add'>+    return (NODE *)node;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_breakpoint(void)</div><div class='add'>+{</div><div class='add'>+    /* */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if defined _WIN32</div><div class='add'>+# if RUBY_MSVCRT_VERSION &gt;= 80</div><div class='add'>+extern int ruby_w32_rtc_error;</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#if defined _WIN32 || defined __CYGWIN__</div><div class='add'>+#include &lt;windows.h&gt;</div><div class='add'>+UINT ruby_w32_codepage[2];</div><div class='add'>+#endif</div><div class='add'>+extern int ruby_rgengc_debug;</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+ruby_env_debug_option(const char *str, int len, void *arg)</div><div class='add'>+{</div><div class='add'>+    int ov;</div><div class='add'>+    size_t retlen;</div><div class='add'>+    unsigned long n;</div><div class='add'>+#define SET_WHEN(name, var, val) do {	    \</div><div class='add'>+	if (len == sizeof(name) - 1 &amp;&amp;	    \</div><div class='add'>+	    strncmp(str, (name), len) == 0) { \</div><div class='add'>+	    (var) = (val);		    \</div><div class='add'>+	    return 1;			    \</div><div class='add'>+	}				    \</div><div class='add'>+    } while (0)</div><div class='add'>+#define NAME_MATCH_VALUE(name)				\</div><div class='add'>+    ((size_t)len &gt;= sizeof(name)-1 &amp;&amp;			\</div><div class='add'>+     strncmp(str, (name), sizeof(name)-1) == 0 &amp;&amp;	\</div><div class='add'>+     ((len == sizeof(name)-1 &amp;&amp; !(len = 0)) ||		\</div><div class='add'>+      (str[sizeof(name)-1] == '=' &amp;&amp;			\</div><div class='add'>+       (str += sizeof(name), len -= sizeof(name), 1))))</div><div class='add'>+#define SET_UINT(val) do { \</div><div class='add'>+	n = ruby_scan_digits(str, len, 10, &amp;retlen, &amp;ov); \</div><div class='add'>+	if (!ov &amp;&amp; retlen) { \</div><div class='add'>+	    val = (unsigned int)n; \</div><div class='add'>+	} \</div><div class='add'>+	str += retlen; \</div><div class='add'>+	len -= retlen; \</div><div class='add'>+    } while (0)</div><div class='add'>+#define SET_UINT_LIST(name, vals, num) do { \</div><div class='add'>+	int i; \</div><div class='add'>+	for (i = 0; i &lt; (num); ++i) { \</div><div class='add'>+	    SET_UINT((vals)[i]); \</div><div class='add'>+	    if (!len || *str != ':') break; \</div><div class='add'>+	    ++str; \</div><div class='add'>+	    --len; \</div><div class='add'>+	} \</div><div class='add'>+	if (len &gt; 0) { \</div><div class='add'>+	    fprintf(stderr, "ignored "name" option: `%.*s'\n", len, str); \</div><div class='add'>+	} \</div><div class='add'>+    } while (0)</div><div class='add'>+#define SET_WHEN_UINT(name, vals, num, req) \</div><div class='add'>+    if (NAME_MATCH_VALUE(name)) SET_UINT_LIST(name, vals, num);</div><div class='add'>+</div><div class='add'>+    SET_WHEN("gc_stress", *ruby_initial_gc_stress_ptr, Qtrue);</div><div class='add'>+    SET_WHEN("core", ruby_enable_coredump, 1);</div><div class='add'>+    if (NAME_MATCH_VALUE("rgengc")) {</div><div class='add'>+	if (!len) ruby_rgengc_debug = 1;</div><div class='add'>+	else SET_UINT_LIST("rgengc", &amp;ruby_rgengc_debug, 1);</div><div class='add'>+	return 1;</div><div class='add'>+    }</div><div class='add'>+#if defined _WIN32</div><div class='add'>+# if RUBY_MSVCRT_VERSION &gt;= 80</div><div class='add'>+    SET_WHEN("rtc_error", ruby_w32_rtc_error, 1);</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#if defined _WIN32 || defined __CYGWIN__</div><div class='add'>+    if (NAME_MATCH_VALUE("codepage")) {</div><div class='add'>+	if (!len) fprintf(stderr, "missing codepage argument");</div><div class='add'>+	else SET_UINT_LIST("codepage", ruby_w32_codepage, numberof(ruby_w32_codepage));</div><div class='add'>+	return 1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+set_debug_option(const char *str, int len, void *arg)</div><div class='add'>+{</div><div class='add'>+    if (!ruby_env_debug_option(str, len, arg)) {</div><div class='add'>+	fprintf(stderr, "unexpected debug option: %.*s\n", len, str);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_set_debug_option(const char *str)</div><div class='add'>+{</div><div class='add'>+    ruby_each_words(str, set_debug_option, 0);</div><div class='add'>+}</div><div class='head'>diff --git a/debug_counter.c b/debug_counter.c<br/>new file mode 100644<br/>index 0000000000..6000f98c54<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/debug_counter.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>debug_counter.c</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  debug_counter.c -</div><div class='add'>+</div><div class='add'>+  created at: Tue Feb 21 16:51:18 2017</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2017 Koichi Sasada</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+#if USE_DEBUG_COUNTER</div><div class='add'>+#include "internal.h"</div><div class='add'>+</div><div class='add'>+static const char *const debug_counter_names[] = {</div><div class='add'>+    ""</div><div class='add'>+#define RB_DEBUG_COUNTER(name) #name,</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#undef RB_DEBUG_COUNTER</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+size_t rb_debug_counter[numberof(debug_counter_names)];</div><div class='add'>+</div><div class='add'>+__attribute__((destructor))</div><div class='add'>+static void</div><div class='add'>+rb_debug_counter_show_results(void)</div><div class='add'>+{</div><div class='add'>+    const char *env = getenv("RUBY_DEBUG_COUNTER_DISABLE");</div><div class='add'>+    if (env == NULL || strcmp("1", env) != 0) {</div><div class='add'>+	int i;</div><div class='add'>+	for (i=0; i&lt;RB_DEBUG_COUNTER_MAX; i++) {</div><div class='add'>+	    fprintf(stderr, "[RUBY_DEBUG_COUNTER]\t%s\t%"PRIuSIZE"\n",</div><div class='add'>+		    debug_counter_names[i],</div><div class='add'>+		    rb_debug_counter[i]);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* USE_DEBUG_COUNTER */</div><div class='head'>diff --git a/debug_counter.h b/debug_counter.h<br/>new file mode 100644<br/>index 0000000000..f0f4e5ed0b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/debug_counter.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>debug_counter.h</a></div><div class='hunk'>@@ -0,0 +1,109 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  debug_counter.h -</div><div class='add'>+</div><div class='add'>+  created at: Tue Feb 21 16:51:18 2017</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2017 Koichi Sasada</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#ifndef USE_DEBUG_COUNTER</div><div class='add'>+#define USE_DEBUG_COUNTER 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RB_DEBUG_COUNTER</div><div class='add'>+</div><div class='add'>+/* method search */</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_hit)</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss)</div><div class='add'>+RB_DEBUG_COUNTER(mc_global_hit)</div><div class='add'>+RB_DEBUG_COUNTER(mc_global_miss)</div><div class='add'>+RB_DEBUG_COUNTER(mc_global_state_miss)</div><div class='add'>+RB_DEBUG_COUNTER(mc_class_serial_miss)</div><div class='add'>+RB_DEBUG_COUNTER(mc_cme_complement)</div><div class='add'>+RB_DEBUG_COUNTER(mc_cme_complement_hit)</div><div class='add'>+RB_DEBUG_COUNTER(mc_search_super)</div><div class='add'>+</div><div class='add'>+/* ivar access */</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_hit)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss_serial)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss_unset)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss_noobject)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_hit)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss_oorange)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_base)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_base)</div><div class='add'>+</div><div class='add'>+/* lvar access */</div><div class='add'>+RB_DEBUG_COUNTER(lvar_get)</div><div class='add'>+RB_DEBUG_COUNTER(lvar_get_dynamic)</div><div class='add'>+RB_DEBUG_COUNTER(lvar_set)</div><div class='add'>+RB_DEBUG_COUNTER(lvar_set_dynamic)</div><div class='add'>+RB_DEBUG_COUNTER(lvar_set_slowpath)</div><div class='add'>+</div><div class='add'>+/* object counts */</div><div class='add'>+RB_DEBUG_COUNTER(obj_free)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(obj_str_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_str_embed)</div><div class='add'>+RB_DEBUG_COUNTER(obj_str_shared)</div><div class='add'>+RB_DEBUG_COUNTER(obj_str_nofree)</div><div class='add'>+RB_DEBUG_COUNTER(obj_str_fstr)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_embed)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(obj_obj_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_obj_embed)</div><div class='add'>+</div><div class='add'>+/* load */</div><div class='add'>+RB_DEBUG_COUNTER(load_files)</div><div class='add'>+RB_DEBUG_COUNTER(load_path_is_not_realpath)</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_DEBUG_COUNTER_H</div><div class='add'>+#define RUBY_DEBUG_COUNTER_H 1</div><div class='add'>+</div><div class='add'>+#if !defined(__GNUC__) &amp;&amp; USE_DEBUG_COUNTER</div><div class='add'>+#error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+enum rb_debug_counter_type {</div><div class='add'>+#define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name,</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+    RB_DEBUG_COUNTER_MAX</div><div class='add'>+#undef RB_DEBUG_COUNTER</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#if USE_DEBUG_COUNTER</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+extern size_t rb_debug_counter[];</div><div class='add'>+</div><div class='add'>+inline static int</div><div class='add'>+rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)</div><div class='add'>+{</div><div class='add'>+    if (cond) {</div><div class='add'>+	rb_debug_counter[(int)type] += add;</div><div class='add'>+    }</div><div class='add'>+    return cond;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define RB_DEBUG_COUNTER_INC(type)                rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_IF(type, cond)       rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+#define RB_DEBUG_COUNTER_INC(type)              ((void)0)</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_IF(type, cond)     (cond)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_DEBUG_COUNTER_H */</div><div class='head'>diff --git a/defines.h b/defines.h<br/>deleted file mode 100644<br/>index 7b62c5cd02..0000000000<br/>--- a/<a href='/ruby.git/tree/defines.h?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>defines.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,270 +0,0 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  defines.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  $Date$</div><div class='del'>-  created at: Wed May 18 00:21:44 JST 1994</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-#ifndef DEFINES_H</div><div class='del'>-#define DEFINES_H</div><div class='del'>-</div><div class='del'>-#define RUBY</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-# ifndef  HAVE_PROTOTYPES</div><div class='del'>-#  define HAVE_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-# ifndef  HAVE_STDARG_PROTOTYPES</div><div class='del'>-#  define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#undef _</div><div class='del'>-#ifdef HAVE_PROTOTYPES</div><div class='del'>-# define _(args) args</div><div class='del'>-#else</div><div class='del'>-# define _(args) ()</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#undef __</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-# define __(args) args</div><div class='del'>-#else</div><div class='del'>-# define __(args) ()</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-#define ANYARGS ...</div><div class='del'>-#else</div><div class='del'>-#define ANYARGS</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define xmalloc ruby_xmalloc</div><div class='del'>-#define xcalloc ruby_xcalloc</div><div class='del'>-#define xrealloc ruby_xrealloc</div><div class='del'>-#define xfree ruby_xfree</div><div class='del'>-</div><div class='del'>-void *xmalloc _((long));</div><div class='del'>-void *xcalloc _((long,long));</div><div class='del'>-void *xrealloc _((void*,long));</div><div class='del'>-void xfree _((void*));</div><div class='del'>-</div><div class='del'>-#if SIZEOF_LONG_LONG &gt; 0</div><div class='del'>-# define LONG_LONG long long</div><div class='del'>-#elif SIZEOF___INT64 &gt; 0</div><div class='del'>-# define HAVE_LONG_LONG 1</div><div class='del'>-# define LONG_LONG __int64</div><div class='del'>-# undef SIZEOF_LONG_LONG</div><div class='del'>-# define SIZEOF_LONG_LONG SIZEOF___INT64</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_INT*2 &lt;= SIZEOF_LONG_LONG</div><div class='del'>-# define BDIGIT unsigned int</div><div class='del'>-# define SIZEOF_BDIGITS SIZEOF_INT</div><div class='del'>-# define BDIGIT_DBL unsigned LONG_LONG</div><div class='del'>-# define BDIGIT_DBL_SIGNED LONG_LONG</div><div class='del'>-#elif SIZEOF_INT*2 &lt;= SIZEOF_LONG</div><div class='del'>-# define BDIGIT unsigned int</div><div class='del'>-# define SIZEOF_BDIGITS SIZEOF_INT</div><div class='del'>-# define BDIGIT_DBL unsigned long</div><div class='del'>-# define BDIGIT_DBL_SIGNED long</div><div class='del'>-#elif SIZEOF_SHORT*2 &lt;= SIZEOF_LONG</div><div class='del'>-# define BDIGIT unsigned short</div><div class='del'>-# define SIZEOF_BDIGITS SIZEOF_SHORT</div><div class='del'>-# define BDIGIT_DBL unsigned long</div><div class='del'>-# define BDIGIT_DBL_SIGNED long</div><div class='del'>-#else</div><div class='del'>-# define BDIGIT unsigned short</div><div class='del'>-# define SIZEOF_BDIGITS (SIZEOF_LONG/2)</div><div class='del'>-# define BDIGIT_DBL unsigned long</div><div class='del'>-# define BDIGIT_DBL_SIGNED long</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __CYGWIN__</div><div class='del'>-#undef _WIN32</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__) || defined(__EMX__)</div><div class='del'>-#define DOSISH 1</div><div class='del'>-#ifndef _WIN32_WCE</div><div class='del'>-# define DOSISH_DRIVE_LETTER</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* define RUBY_USE_EUC/SJIS for default kanji-code */</div><div class='del'>-#ifndef DEFAULT_KCODE</div><div class='del'>-#if defined(DOSISH) || defined(__CYGWIN__) || defined(__MACOS__) || defined(OS2)</div><div class='del'>-#define DEFAULT_KCODE KCODE_SJIS</div><div class='del'>-#else</div><div class='del'>-#define DEFAULT_KCODE KCODE_EUC</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __NeXT__</div><div class='del'>-/* NextStep, OpenStep, Rhapsody */</div><div class='del'>-#ifndef S_IRUSR</div><div class='del'>-#define S_IRUSR 0000400        /* read permission, owner */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IRGRP</div><div class='del'>-#define S_IRGRP 0000040        /* read permission, group */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IROTH</div><div class='del'>-#define S_IROTH 0000004        /* read permission, other */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IWUSR</div><div class='del'>-#define S_IWUSR 0000200        /* write permission, owner */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IWGRP</div><div class='del'>-#define S_IWGRP 0000020        /* write permission, group */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IWOTH</div><div class='del'>-#define S_IWOTH 0000002        /* write permission, other */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IXUSR</div><div class='del'>-#define S_IXUSR 0000100        /* execute/search permission, owner */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IXGRP</div><div class='del'>-#define S_IXGRP 0000010        /* execute/search permission, group */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IXOTH</div><div class='del'>-#define S_IXOTH 0000001        /* execute/search permission, other */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IRWXU</div><div class='del'>-#define S_IRWXU 0000700        /* read, write, execute permissions, owner */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IRWXG</div><div class='del'>-#define S_IRWXG 0000070        /* read, write, execute permissions, group */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_IRWXO</div><div class='del'>-#define S_IRWXO 0000007        /* read, write, execute permissions, other */</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_ISBLK</div><div class='del'>-#define S_ISBLK(mode)  (((mode) &amp; (0170000)) == (0060000))</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_ISCHR</div><div class='del'>-#define S_ISCHR(mode)  (((mode) &amp; (0170000)) == (0020000))</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_ISDIR</div><div class='del'>-#define S_ISDIR(mode)  (((mode) &amp; (0170000)) == (0040000))</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_ISFIFO</div><div class='del'>-#define S_ISFIFO(mode) (((mode) &amp; (0170000)) == (0010000))</div><div class='del'>-#endif</div><div class='del'>-#ifndef S_ISREG</div><div class='del'>-#define S_ISREG(mode)  (((mode) &amp; (0170000)) == (0100000))</div><div class='del'>-#endif</div><div class='del'>-/* Do not trust WORDS_BIGENDIAN from configure since -arch compiler flag may</div><div class='del'>-   result in a different endian.  Instead trust __BIG_ENDIAN__ and</div><div class='del'>-   __LITTLE_ENDIAN__ which are set correctly by -arch. */</div><div class='del'>-#undef WORDS_BIGENDIAN</div><div class='del'>-#ifdef __BIG_ENDIAN__</div><div class='del'>-#define WORDS_BIGENDIAN</div><div class='del'>-#endif</div><div class='del'>-#ifndef __APPLE__</div><div class='del'>-/* NextStep, OpenStep (but not Rhapsody) */</div><div class='del'>-#ifndef GETPGRP_VOID</div><div class='del'>-#define GETPGRP_VOID 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef WNOHANG</div><div class='del'>-#define WNOHANG 01</div><div class='del'>-#endif</div><div class='del'>-#ifndef WUNTRACED</div><div class='del'>-#define WUNTRACED 02</div><div class='del'>-#endif</div><div class='del'>-#ifndef X_OK</div><div class='del'>-#define X_OK 1</div><div class='del'>-#endif</div><div class='del'>-#endif /* __APPLE__ */</div><div class='del'>-#endif /* NeXT */</div><div class='del'>-</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#include "win32/win32.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__VMS)</div><div class='del'>-#include "vms.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__BEOS__)</div><div class='del'>-#include &lt;net/socket.h&gt; /* intern.h needs fd_set definition */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_EXPORT</div><div class='del'>-#undef RUBY_EXTERN</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_EXTERN</div><div class='del'>-#define RUBY_EXTERN extern</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef EXTERN</div><div class='del'>-#define EXTERN RUBY_EXTERN	/* deprecated */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_MBCHAR_MAXSIZE</div><div class='del'>-#define RUBY_MBCHAR_MAXSIZE INT_MAX</div><div class='del'>-        /* MB_CUR_MAX will not work well in C locale */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(sparc) || defined(__sparc__)</div><div class='del'>-static inline void</div><div class='del'>-flush_register_windows(void)</div><div class='del'>-{</div><div class='del'>-    asm</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-	volatile</div><div class='del'>-#endif</div><div class='del'>-# if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)</div><div class='del'>-	("flushw")</div><div class='del'>-# else</div><div class='del'>-	("ta  0x03")</div><div class='del'>-# endif /* trap always to flush register windows if we are on a Sparc system */</div><div class='del'>-	;</div><div class='del'>-}</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS flush_register_windows()</div><div class='del'>-#elif defined(__ia64)</div><div class='del'>-void *rb_ia64_bsp(void);</div><div class='del'>-void rb_ia64_flushrs(void);</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS rb_ia64_flushrs()</div><div class='del'>-#else</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS ((void)0)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(DOSISH)</div><div class='del'>-#define PATH_SEP ";"</div><div class='del'>-#elif defined(riscos)</div><div class='del'>-#define PATH_SEP ","</div><div class='del'>-#else</div><div class='del'>-#define PATH_SEP ":"</div><div class='del'>-#endif</div><div class='del'>-#define PATH_SEP_CHAR PATH_SEP[0]</div><div class='del'>-</div><div class='del'>-#if defined(__human68k__)</div><div class='del'>-#define PATH_ENV "path"</div><div class='del'>-#else</div><div class='del'>-#define PATH_ENV "PATH"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(DOSISH) &amp;&amp; !defined(__human68k__) &amp;&amp; !defined(__EMX__)</div><div class='del'>-#define ENV_IGNORECASE</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef CASEFOLD_FILESYSTEM</div><div class='del'>-# if defined DOSISH || defined __VMS</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 1</div><div class='del'>-# else</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef DLEXT_MAXLEN</div><div class='del'>-#define DLEXT_MAXLEN 4</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_PLATFORM</div><div class='del'>-#define RUBY_PLATFORM "unknown-unknown"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/defs/gmake.mk b/defs/gmake.mk<br/>new file mode 100644<br/>index 0000000000..d961e27f77<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/gmake.mk?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/gmake.mk</a></div><div class='hunk'>@@ -0,0 +1,146 @@</div><div class='add'>+# -*- makefile-gmake -*-</div><div class='add'>+gnumake = yes</div><div class='add'>+override gnumake_recursive := $(if $(findstring n,$(firstword $(MFLAGS))),,+)</div><div class='add'>+override mflags := $(filter-out -j%,$(MFLAGS))</div><div class='add'>+MSPECOPT += $(if $(filter -j%,$(MFLAGS)),-j)</div><div class='add'>+</div><div class='add'>+CHECK_TARGETS := great exam love check test check% test% btest%</div><div class='add'>+# expand test targets, and those dependents</div><div class='add'>+TEST_TARGETS := $(filter $(CHECK_TARGETS),$(MAKECMDGOALS))</div><div class='add'>+TEST_DEPENDS := $(filter-out commit $(TEST_TARGETS),$(MAKECMDGOALS))</div><div class='add'>+TEST_TARGETS := $(patsubst great,exam,$(TEST_TARGETS))</div><div class='add'>+TEST_DEPENDS := $(filter-out great $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='add'>+TEST_TARGETS := $(patsubst exam,check test-rubyspec,$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst test-rubyspec,test-spec,$(TEST_TARGETS))</div><div class='add'>+TEST_DEPENDS := $(filter-out exam $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='add'>+TEST_TARGETS := $(patsubst love,check,$(TEST_TARGETS))</div><div class='add'>+TEST_DEPENDS := $(filter-out love $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='add'>+TEST_TARGETS := $(patsubst check,test test-testframework test-almost,$(patsubst check-%,test test-%,$(TEST_TARGETS)))</div><div class='add'>+TEST_DEPENDS := $(filter-out check $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='add'>+TEST_TARGETS := $(patsubst test,btest-ruby test-knownbug test-basic,$(TEST_TARGETS))</div><div class='add'>+TEST_DEPENDS := $(filter-out test $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='add'>+TEST_DEPENDS += $(if $(filter great exam love check,$(MAKECMDGOALS)),all exts)</div><div class='add'>+</div><div class='add'>+ifneq ($(filter -O0 -Od,$(optflags)),)</div><div class='add'>+override XCFLAGS := $(filter-out -D_FORTIFY_SOURCE=%,$(XCFLAGS))</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifeq ($(if $(filter all main exts enc trans libencs libenc libtrans \</div><div class='add'>+		    prog program ruby ruby$(EXEEXT) \</div><div class='add'>+		    wprogram rubyw rubyw$(EXEEXT) \</div><div class='add'>+		    miniruby$(EXEEXT) mini,\</div><div class='add'>+	     $(MAKECMDGOALS)),,$(MAKECMDGOALS)),)</div><div class='add'>+-include $(SHOWFLAGS)</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(filter universal-%,$(arch)),)</div><div class='add'>+define archcmd</div><div class='add'>+%.$(1).S: %.c</div><div class='add'>+	@$$(ECHO) translating $$&lt; with $(2)</div><div class='add'>+	$$(Q) $$(CC) $$(CFLAGS_NO_ARCH) $(2) $$(XCFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$@ -S $$&lt;</div><div class='add'>+</div><div class='add'>+%.S: %.$(1).S</div><div class='add'>+</div><div class='add'>+%.$(1).i: %.c</div><div class='add'>+	@$$(ECHO) preprocessing $$&lt; with $(2)</div><div class='add'>+	$$(Q) $$(CPP) $$(warnflags) $(2) $$(XCFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$@ -E $$&lt; &gt; $$@</div><div class='add'>+</div><div class='add'>+%.i: %.$(1).i</div><div class='add'>+endef</div><div class='add'>+</div><div class='add'>+$(foreach arch,$(filter -arch=%,$(subst -arch ,-arch=,$(ARCH_FLAG))),\</div><div class='add'>+	$(eval $(call archcmd,$(patsubst -arch=%,%,$(value arch)),$(patsubst -arch=%,-arch %,$(value arch)))))</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+.PHONY: $(addprefix yes-,$(TEST_TARGETS))</div><div class='add'>+</div><div class='add'>+ifneq ($(filter-out btest%,$(TEST_TARGETS)),)</div><div class='add'>+$(addprefix yes-,$(TEST_TARGETS)): $(TEST_DEPENDS)</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \</div><div class='add'>+	btest-ruby test-knownbug test-basic \</div><div class='add'>+	test-testframework test-ruby test-almost test-all \</div><div class='add'>+	test-spec \</div><div class='add'>+	)</div><div class='add'>+prev_test := $(if $(filter test-spec,$(ORDERED_TEST_TARGETS)),test-spec-precheck)</div><div class='add'>+$(foreach test,$(ORDERED_TEST_TARGETS), \</div><div class='add'>+	$(eval yes-$(value test) no-$(value test): $(value prev_test)); \</div><div class='add'>+	$(eval prev_test := $(value test)))</div><div class='add'>+</div><div class='add'>+ifneq ($(if $(filter install,$(MAKECMDGOALS)),$(filter uninstall,$(MAKECMDGOALS))),)</div><div class='add'>+install-targets := $(filter install uninstall,$(MAKECMDGOALS))</div><div class='add'>+$(word 1,$(install-targets)): $(word 0,$(install-targets))</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(filter reinstall,$(MAKECMDGOALS)),)</div><div class='add'>+install-prereq: uninstall</div><div class='add'>+uninstall sudo-precheck: all $(if $(filter all,$(INSTALLDOC)),docs)</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(filter love,$(MAKECMDGOALS)),)</div><div class='add'>+showflags: up</div><div class='add'>+sudo-precheck: test yes-test-testframework no-test-testframework</div><div class='add'>+install-prereq: sudo-precheck</div><div class='add'>+yes-test-all no-test-all: install</div><div class='add'>+yes-test-almost no-test-almost: install</div><div class='add'>+endif</div><div class='add'>+ifneq ($(filter great,$(MAKECMDGOALS)),)</div><div class='add'>+love: test-rubyspec</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+$(srcdir)/missing/des_tables.c: $(srcdir)/missing/crypt.c</div><div class='add'>+ifeq ($(if $(filter yes,$(CROSS_COMPILING)),,$(CC)),)</div><div class='add'>+	touch $@</div><div class='add'>+else</div><div class='add'>+	@$(ECHO) building make_des_table</div><div class='add'>+	$(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) -omake_des_table $(srcdir)/missing/crypt.c</div><div class='add'>+	@[ -x ./make_des_table ]</div><div class='add'>+	@$(ECHO) generating $@</div><div class='add'>+	$(Q) $(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) ./make_des_table &gt; $@.new</div><div class='add'>+	$(Q) mv $@.new $@</div><div class='add'>+	$(Q) $(RMALL) make_des_table*</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+STUBPROGRAM = rubystub$(EXEEXT)</div><div class='add'>+IGNOREDPATTERNS = %~ .% %.orig %.rej \#%\#</div><div class='add'>+SCRIPTBINDIR := $(if $(EXEEXT),,exec/)</div><div class='add'>+SCRIPTPROGRAMS = $(addprefix $(SCRIPTBINDIR),$(addsuffix $(EXEEXT),$(filter-out $(IGNOREDPATTERNS),$(notdir $(wildcard $(srcdir)/bin/*)))))</div><div class='add'>+</div><div class='add'>+stub: $(STUBPROGRAM)</div><div class='add'>+scriptbin: $(SCRIPTPROGRAMS)</div><div class='add'>+ifneq ($(STUBPROGRAM),rubystub)</div><div class='add'>+rubystub: $(STUBPROGRAM)</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+$(SCRIPTPROGRAMS): $(STUBPROGRAM)</div><div class='add'>+</div><div class='add'>+$(STUBPROGRAM): rubystub.$(OBJEXT) $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)</div><div class='add'>+</div><div class='add'>+rubystub$(EXEEXT):</div><div class='add'>+	@rm -f $@</div><div class='add'>+	$(ECHO) linking $@</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) rubystub.$(OBJEXT) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@</div><div class='add'>+	$(Q) $(POSTLINK)</div><div class='add'>+	$(if $(STRIP),$(Q) $(STRIP) $@)</div><div class='add'>+</div><div class='add'>+$(SCRIPTBINDIR)%$(EXEEXT): bin/% $(STUBPROGRAM) \</div><div class='add'>+			   $(if $(SCRIPTBINDIR),$(TIMESTAMPDIR)/.exec.time)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) { cat $(STUBPROGRAM); echo; sed -e '1{' -e '/^#!.*ruby/!i\' -e '#!/bin/ruby' -e '}' $&lt;; } &gt; $@</div><div class='add'>+	$(Q) chmod +x $@</div><div class='add'>+	$(Q) $(POSTLINK)</div><div class='add'>+</div><div class='add'>+$(TIMESTAMPDIR)/.exec.time:</div><div class='add'>+	$(Q) mkdir exec</div><div class='add'>+	$(Q) exit &gt; $@</div><div class='add'>+</div><div class='add'>+.PHONY: commit</div><div class='add'>+commit: $(if $(filter commit,$(MAKECMDGOALS)),$(filter-out commit,$(MAKECMDGOALS)))</div><div class='add'>+	@$(BASERUBY) -C "$(srcdir)" -I./tool -rvcs -e 'VCS.detect(".").commit'</div><div class='add'>+	$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY update-src srcs all-incs</div><div class='add'>+</div><div class='add'>+ifeq ($(words $(filter update-gems extract-gems,$(MAKECMDGOALS))),2)</div><div class='add'>+extract-gems: update-gems</div><div class='add'>+endif</div><div class='head'>diff --git a/defs/id.def b/defs/id.def<br/>new file mode 100644<br/>index 0000000000..f30b993bd9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/id.def?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/id.def</a></div><div class='hunk'>@@ -0,0 +1,181 @@</div><div class='add'>+# -*- mode: ruby; coding: us-ascii -*-</div><div class='add'>+firstline, predefined = __LINE__+1, %[\</div><div class='add'>+  max</div><div class='add'>+  min</div><div class='add'>+  freeze</div><div class='add'>+  inspect</div><div class='add'>+  intern</div><div class='add'>+  object_id</div><div class='add'>+  const_missing</div><div class='add'>+  method_missing                                        MethodMissing</div><div class='add'>+  method_added</div><div class='add'>+  singleton_method_added</div><div class='add'>+  method_removed</div><div class='add'>+  singleton_method_removed</div><div class='add'>+  method_undefined</div><div class='add'>+  singleton_method_undefined</div><div class='add'>+  length</div><div class='add'>+  size</div><div class='add'>+  gets</div><div class='add'>+  succ</div><div class='add'>+  each</div><div class='add'>+  proc</div><div class='add'>+  lambda</div><div class='add'>+  send</div><div class='add'>+  __send__</div><div class='add'>+  __attached__</div><div class='add'>+  initialize</div><div class='add'>+  initialize_copy</div><div class='add'>+  initialize_clone</div><div class='add'>+  initialize_dup</div><div class='add'>+  to_int</div><div class='add'>+  to_ary</div><div class='add'>+  to_str</div><div class='add'>+  to_sym</div><div class='add'>+  to_hash</div><div class='add'>+  to_proc</div><div class='add'>+  to_io</div><div class='add'>+  to_a</div><div class='add'>+  to_s</div><div class='add'>+  to_i</div><div class='add'>+  to_r</div><div class='add'>+  bt</div><div class='add'>+  bt_locations</div><div class='add'>+  call</div><div class='add'>+  mesg</div><div class='add'>+  exception</div><div class='add'>+  not                                                   NOT</div><div class='add'>+  and                                                   AND</div><div class='add'>+  or                                                    OR</div><div class='add'>+</div><div class='add'>+  _                                                     UScore</div><div class='add'>+  "/*NULL*/"                                            NULL</div><div class='add'>+  empty?</div><div class='add'>+  eql?</div><div class='add'>+  respond_to?                                           Respond_to</div><div class='add'>+  respond_to_missing?                                   Respond_to_missing</div><div class='add'>+  &lt;IFUNC&gt;</div><div class='add'>+  &lt;CFUNC&gt;</div><div class='add'>+  core#set_method_alias</div><div class='add'>+  core#set_variable_alias</div><div class='add'>+  core#undef_method</div><div class='add'>+  core#define_method</div><div class='add'>+  core#define_singleton_method</div><div class='add'>+  core#set_postexe</div><div class='add'>+  core#hash_from_ary</div><div class='add'>+  core#hash_merge_ary</div><div class='add'>+  core#hash_merge_ptr</div><div class='add'>+  core#hash_merge_kwd</div><div class='add'>+</div><div class='add'>+  -                                                     debug#created_info</div><div class='add'>+</div><div class='add'>+  $_                                                    LASTLINE</div><div class='add'>+  $~                                                    BACKREF</div><div class='add'>+]</div><div class='add'>+</div><div class='add'>+# VM ID         OP      Parser Token</div><div class='add'>+token_ops = %[\</div><div class='add'>+  Dot2          ..      DOT2</div><div class='add'>+  Dot3          ...     DOT3</div><div class='add'>+  UPlus         +@      UPLUS</div><div class='add'>+  UMinus        -@      UMINUS</div><div class='add'>+  Pow           **      POW</div><div class='add'>+  Cmp           &lt;=&gt;     CMP</div><div class='add'>+  PLUS          +</div><div class='add'>+  MINUS         -</div><div class='add'>+  MULT          *</div><div class='add'>+  DIV           /</div><div class='add'>+  MOD           %</div><div class='add'>+  LTLT          &lt;&lt;      LSHFT</div><div class='add'>+  GTGT          &gt;&gt;      RSHFT</div><div class='add'>+  LT            &lt;</div><div class='add'>+  LE            &lt;=      LEQ</div><div class='add'>+  GT            &gt;</div><div class='add'>+  GE            &gt;=      GEQ</div><div class='add'>+  Eq            ==      EQ</div><div class='add'>+  Eqq           ===     EQQ</div><div class='add'>+  Neq           !=      NEQ</div><div class='add'>+  Not           !</div><div class='add'>+  Backquote     `</div><div class='add'>+  EqTilde       =~      MATCH</div><div class='add'>+  NeqTilde      !~      NMATCH</div><div class='add'>+  AREF          []</div><div class='add'>+  ASET          []=</div><div class='add'>+  COLON2        ::</div><div class='add'>+  ANDOP         &amp;&amp;</div><div class='add'>+  OROP          ||</div><div class='add'>+  ANDDOT        &amp;.</div><div class='add'>+]</div><div class='add'>+</div><div class='add'>+class KeywordError &lt; RuntimeError</div><div class='add'>+  def self.raise(mesg, line)</div><div class='add'>+    super(self, mesg, ["#{__FILE__}:#{line}", *caller])</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+predefined_ids = {}</div><div class='add'>+preserved_ids = []</div><div class='add'>+local_ids = []</div><div class='add'>+instance_ids = []</div><div class='add'>+global_ids = []</div><div class='add'>+const_ids = []</div><div class='add'>+class_ids = []</div><div class='add'>+attrset_ids = []</div><div class='add'>+token_op_ids = []</div><div class='add'>+names = {}</div><div class='add'>+predefined.split(/^/).each_with_index do |line, num|</div><div class='add'>+  next if /^#/ =~ line</div><div class='add'>+  line.sub!(/\s+#.*/, '')</div><div class='add'>+  name, token = line.split</div><div class='add'>+  next unless name</div><div class='add'>+  token ||= name</div><div class='add'>+  if /#/ =~ token</div><div class='add'>+    token = "_#{token.gsub(/\W+/, '_')}"</div><div class='add'>+  else</div><div class='add'>+    token = token.sub(/\?/, 'P').sub(/\A[a-z]/) {$&amp;.upcase}</div><div class='add'>+    token.sub!(/\A\$/, "_G_")</div><div class='add'>+    token.sub!(/\A@@/, "_C_")</div><div class='add'>+    token.sub!(/\A@/, "_I_")</div><div class='add'>+    token.gsub!(/\W+/, "")</div><div class='add'>+  end</div><div class='add'>+  if name == '-'</div><div class='add'>+    preserved_ids &lt;&lt; token</div><div class='add'>+    next</div><div class='add'>+  end</div><div class='add'>+  if prev = names[name]</div><div class='add'>+    KeywordError.raise("#{name} is already registered at line #{prev+firstline}", firstline+num)</div><div class='add'>+  end</div><div class='add'>+  if prev = predefined_ids[token]</div><div class='add'>+    KeywordError.raise("#{token} is already used for #{prev} at line #{names[prev]+firstline}", firstline+num)</div><div class='add'>+  end</div><div class='add'>+  names[name] = num</div><div class='add'>+  case name</div><div class='add'>+  when /\A[A-Z]\w*\z/; const_ids</div><div class='add'>+  when /\A(?!\d)\w+\z/; local_ids</div><div class='add'>+  when /\A\$(?:\d+|(?!\d)\w+|\W)\z/; global_ids</div><div class='add'>+  when /\A@@(?!\d)\w+\z/; class_ids</div><div class='add'>+  when /\A@(?!\d)\w+\z/; instance_ids</div><div class='add'>+  when /\A((?!\d)\w+)=\z/; attrset_ids</div><div class='add'>+  else preserved_ids</div><div class='add'>+  end &lt;&lt; token</div><div class='add'>+  predefined_ids[token] = name</div><div class='add'>+end</div><div class='add'>+token_ops.split(/^/).each do |line|</div><div class='add'>+  next if /^#/ =~ line</div><div class='add'>+  line.sub!(/\s+#.*/, '')</div><div class='add'>+  id, op, token = line.split</div><div class='add'>+  next unless id and op</div><div class='add'>+  token ||= (id unless /\A\W\z/ =~ op)</div><div class='add'>+  token_op_ids &lt;&lt; [id, op, token]</div><div class='add'>+end</div><div class='add'>+{</div><div class='add'>+  "LOCAL" =&gt; local_ids,</div><div class='add'>+  "INSTANCE" =&gt; instance_ids,</div><div class='add'>+  "GLOBAL" =&gt; global_ids,</div><div class='add'>+  "CONST" =&gt; const_ids,</div><div class='add'>+  "CLASS" =&gt; class_ids,</div><div class='add'>+  "ATTRSET" =&gt; attrset_ids,</div><div class='add'>+  :preserved =&gt; preserved_ids,</div><div class='add'>+  :predefined =&gt; predefined_ids,</div><div class='add'>+  :token_op =&gt; token_op_ids,</div><div class='add'>+}</div><div class='head'>diff --git a/defs/keywords b/defs/keywords<br/>new file mode 100644<br/>index 0000000000..7f5422faef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/keywords?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/keywords</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+%{</div><div class='add'>+struct kwtable {int name, id[2], state;};</div><div class='add'>+const struct kwtable *rb_reserved_word(const char *, unsigned int);</div><div class='add'>+#ifndef RIPPER</div><div class='add'>+static const struct kwtable *reserved_word(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);</div><div class='add'>+#define rb_reserved_word(str, len) reserved_word(str, len)</div><div class='add'>+%}</div><div class='add'>+</div><div class='add'>+struct kwtable;</div><div class='add'>+%%</div><div class='add'>+__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END</div><div class='add'>+__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END</div><div class='add'>+__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END</div><div class='add'>+BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END</div><div class='add'>+END, {keyword_END, keyword_END}, EXPR_END</div><div class='add'>+alias, {keyword_alias, keyword_alias}, EXPR_FNAME|EXPR_FITEM</div><div class='add'>+and, {keyword_and, keyword_and}, EXPR_VALUE</div><div class='add'>+begin, {keyword_begin, keyword_begin}, EXPR_BEG</div><div class='add'>+break, {keyword_break, keyword_break}, EXPR_MID</div><div class='add'>+case, {keyword_case, keyword_case}, EXPR_VALUE</div><div class='add'>+class, {keyword_class, keyword_class}, EXPR_CLASS</div><div class='add'>+def, {keyword_def, keyword_def}, EXPR_FNAME</div><div class='add'>+defined?, {keyword_defined, keyword_defined}, EXPR_ARG</div><div class='add'>+do, {keyword_do, keyword_do}, EXPR_BEG</div><div class='add'>+else, {keyword_else, keyword_else}, EXPR_BEG</div><div class='add'>+elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE</div><div class='add'>+end, {keyword_end, keyword_end}, EXPR_END</div><div class='add'>+ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG</div><div class='add'>+false, {keyword_false, keyword_false}, EXPR_END</div><div class='add'>+for, {keyword_for, keyword_for}, EXPR_VALUE</div><div class='add'>+if, {keyword_if, modifier_if}, EXPR_VALUE</div><div class='add'>+in, {keyword_in, keyword_in}, EXPR_VALUE</div><div class='add'>+module, {keyword_module, keyword_module}, EXPR_VALUE</div><div class='add'>+next, {keyword_next, keyword_next}, EXPR_MID</div><div class='add'>+nil, {keyword_nil, keyword_nil}, EXPR_END</div><div class='add'>+not, {keyword_not, keyword_not}, EXPR_ARG</div><div class='add'>+or, {keyword_or, keyword_or}, EXPR_VALUE</div><div class='add'>+redo, {keyword_redo, keyword_redo}, EXPR_END</div><div class='add'>+rescue, {keyword_rescue, modifier_rescue}, EXPR_MID</div><div class='add'>+retry, {keyword_retry, keyword_retry}, EXPR_END</div><div class='add'>+return, {keyword_return, keyword_return}, EXPR_MID</div><div class='add'>+self, {keyword_self, keyword_self}, EXPR_END</div><div class='add'>+super, {keyword_super, keyword_super}, EXPR_ARG</div><div class='add'>+then, {keyword_then, keyword_then}, EXPR_BEG</div><div class='add'>+true, {keyword_true, keyword_true}, EXPR_END</div><div class='add'>+undef, {keyword_undef, keyword_undef}, EXPR_FNAME|EXPR_FITEM</div><div class='add'>+unless, {keyword_unless, modifier_unless}, EXPR_VALUE</div><div class='add'>+until, {keyword_until, modifier_until}, EXPR_VALUE</div><div class='add'>+when, {keyword_when, keyword_when}, EXPR_VALUE</div><div class='add'>+while, {keyword_while, modifier_while}, EXPR_VALUE</div><div class='add'>+yield, {keyword_yield, keyword_yield}, EXPR_ARG</div><div class='add'>+%%</div><div class='add'>+#endif</div><div class='head'>diff --git a/defs/known_errors.def b/defs/known_errors.def<br/>new file mode 100644<br/>index 0000000000..b9c490d3a2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/known_errors.def?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/known_errors.def</a></div><div class='hunk'>@@ -0,0 +1,148 @@</div><div class='add'>+EPERM</div><div class='add'>+ENOENT</div><div class='add'>+ESRCH</div><div class='add'>+EINTR</div><div class='add'>+EIO</div><div class='add'>+ENXIO</div><div class='add'>+E2BIG</div><div class='add'>+ENOEXEC</div><div class='add'>+EBADF</div><div class='add'>+ECHILD</div><div class='add'>+EAGAIN</div><div class='add'>+ENOMEM</div><div class='add'>+EACCES</div><div class='add'>+EFAULT</div><div class='add'>+ENOTBLK</div><div class='add'>+EBUSY</div><div class='add'>+EEXIST</div><div class='add'>+EXDEV</div><div class='add'>+ENODEV</div><div class='add'>+ENOTDIR</div><div class='add'>+EISDIR</div><div class='add'>+EINVAL</div><div class='add'>+ENFILE</div><div class='add'>+EMFILE</div><div class='add'>+ENOTTY</div><div class='add'>+ETXTBSY</div><div class='add'>+EFBIG</div><div class='add'>+ENOSPC</div><div class='add'>+ESPIPE</div><div class='add'>+EROFS</div><div class='add'>+EMLINK</div><div class='add'>+EPIPE</div><div class='add'>+EDOM</div><div class='add'>+ERANGE</div><div class='add'>+EDEADLK</div><div class='add'>+ENAMETOOLONG</div><div class='add'>+ENOLCK</div><div class='add'>+ENOSYS</div><div class='add'>+ENOTEMPTY</div><div class='add'>+ELOOP</div><div class='add'>+EWOULDBLOCK</div><div class='add'>+ENOMSG</div><div class='add'>+EIDRM</div><div class='add'>+ECHRNG</div><div class='add'>+EL2NSYNC</div><div class='add'>+EL3HLT</div><div class='add'>+EL3RST</div><div class='add'>+ELNRNG</div><div class='add'>+EUNATCH</div><div class='add'>+ENOCSI</div><div class='add'>+EL2HLT</div><div class='add'>+EBADE</div><div class='add'>+EBADR</div><div class='add'>+EXFULL</div><div class='add'>+ENOANO</div><div class='add'>+EBADRQC</div><div class='add'>+EBADSLT</div><div class='add'>+EDEADLOCK</div><div class='add'>+EBFONT</div><div class='add'>+ENOSTR</div><div class='add'>+ENODATA</div><div class='add'>+ETIME</div><div class='add'>+ENOSR</div><div class='add'>+ENONET</div><div class='add'>+ENOPKG</div><div class='add'>+EREMOTE</div><div class='add'>+ENOLINK</div><div class='add'>+EADV</div><div class='add'>+ESRMNT</div><div class='add'>+ECOMM</div><div class='add'>+EPROTO</div><div class='add'>+EMULTIHOP</div><div class='add'>+EDOTDOT</div><div class='add'>+EBADMSG</div><div class='add'>+EOVERFLOW</div><div class='add'>+ENOTUNIQ</div><div class='add'>+EBADFD</div><div class='add'>+EREMCHG</div><div class='add'>+ELIBACC</div><div class='add'>+ELIBBAD</div><div class='add'>+ELIBSCN</div><div class='add'>+ELIBMAX</div><div class='add'>+ELIBEXEC</div><div class='add'>+EILSEQ</div><div class='add'>+ERESTART</div><div class='add'>+ESTRPIPE</div><div class='add'>+EUSERS</div><div class='add'>+ENOTSOCK</div><div class='add'>+EDESTADDRREQ</div><div class='add'>+EMSGSIZE</div><div class='add'>+EPROTOTYPE</div><div class='add'>+ENOPROTOOPT</div><div class='add'>+EPROTONOSUPPORT</div><div class='add'>+ESOCKTNOSUPPORT</div><div class='add'>+EOPNOTSUPP</div><div class='add'>+EPFNOSUPPORT</div><div class='add'>+EAFNOSUPPORT</div><div class='add'>+EADDRINUSE</div><div class='add'>+EADDRNOTAVAIL</div><div class='add'>+ENETDOWN</div><div class='add'>+ENETUNREACH</div><div class='add'>+ENETRESET</div><div class='add'>+ECONNABORTED</div><div class='add'>+ECONNRESET</div><div class='add'>+ENOBUFS</div><div class='add'>+EISCONN</div><div class='add'>+ENOTCONN</div><div class='add'>+ESHUTDOWN</div><div class='add'>+ETOOMANYREFS</div><div class='add'>+ETIMEDOUT</div><div class='add'>+ECONNREFUSED</div><div class='add'>+EHOSTDOWN</div><div class='add'>+EHOSTUNREACH</div><div class='add'>+EALREADY</div><div class='add'>+EINPROGRESS</div><div class='add'>+ESTALE</div><div class='add'>+EUCLEAN</div><div class='add'>+ENOTNAM</div><div class='add'>+ENAVAIL</div><div class='add'>+EISNAM</div><div class='add'>+EREMOTEIO</div><div class='add'>+EDQUOT</div><div class='add'>+ECANCELED</div><div class='add'>+EKEYEXPIRED</div><div class='add'>+EKEYREJECTED</div><div class='add'>+EKEYREVOKED</div><div class='add'>+EMEDIUMTYPE</div><div class='add'>+ENOKEY</div><div class='add'>+ENOMEDIUM</div><div class='add'>+ENOTRECOVERABLE</div><div class='add'>+EOWNERDEAD</div><div class='add'>+ERFKILL</div><div class='add'>+EAUTH</div><div class='add'>+EBADRPC</div><div class='add'>+EDOOFUS</div><div class='add'>+EFTYPE</div><div class='add'>+ENEEDAUTH</div><div class='add'>+ENOATTR</div><div class='add'>+ENOTSUP</div><div class='add'>+EPROCLIM</div><div class='add'>+EPROCUNAVAIL</div><div class='add'>+EPROGMISMATCH</div><div class='add'>+EPROGUNAVAIL</div><div class='add'>+ERPCMISMATCH</div><div class='add'>+EIPSEC</div><div class='add'>+EHWPOISON</div><div class='add'>+ECAPMODE</div><div class='add'>+ENOTCAPABLE</div><div class='head'>diff --git a/defs/lex.c.src b/defs/lex.c.src<br/>new file mode 100644<br/>index 0000000000..7f5422faef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/lex.c.src?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/lex.c.src</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+%{</div><div class='add'>+struct kwtable {int name, id[2], state;};</div><div class='add'>+const struct kwtable *rb_reserved_word(const char *, unsigned int);</div><div class='add'>+#ifndef RIPPER</div><div class='add'>+static const struct kwtable *reserved_word(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);</div><div class='add'>+#define rb_reserved_word(str, len) reserved_word(str, len)</div><div class='add'>+%}</div><div class='add'>+</div><div class='add'>+struct kwtable;</div><div class='add'>+%%</div><div class='add'>+__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END</div><div class='add'>+__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END</div><div class='add'>+__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END</div><div class='add'>+BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END</div><div class='add'>+END, {keyword_END, keyword_END}, EXPR_END</div><div class='add'>+alias, {keyword_alias, keyword_alias}, EXPR_FNAME|EXPR_FITEM</div><div class='add'>+and, {keyword_and, keyword_and}, EXPR_VALUE</div><div class='add'>+begin, {keyword_begin, keyword_begin}, EXPR_BEG</div><div class='add'>+break, {keyword_break, keyword_break}, EXPR_MID</div><div class='add'>+case, {keyword_case, keyword_case}, EXPR_VALUE</div><div class='add'>+class, {keyword_class, keyword_class}, EXPR_CLASS</div><div class='add'>+def, {keyword_def, keyword_def}, EXPR_FNAME</div><div class='add'>+defined?, {keyword_defined, keyword_defined}, EXPR_ARG</div><div class='add'>+do, {keyword_do, keyword_do}, EXPR_BEG</div><div class='add'>+else, {keyword_else, keyword_else}, EXPR_BEG</div><div class='add'>+elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE</div><div class='add'>+end, {keyword_end, keyword_end}, EXPR_END</div><div class='add'>+ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG</div><div class='add'>+false, {keyword_false, keyword_false}, EXPR_END</div><div class='add'>+for, {keyword_for, keyword_for}, EXPR_VALUE</div><div class='add'>+if, {keyword_if, modifier_if}, EXPR_VALUE</div><div class='add'>+in, {keyword_in, keyword_in}, EXPR_VALUE</div><div class='add'>+module, {keyword_module, keyword_module}, EXPR_VALUE</div><div class='add'>+next, {keyword_next, keyword_next}, EXPR_MID</div><div class='add'>+nil, {keyword_nil, keyword_nil}, EXPR_END</div><div class='add'>+not, {keyword_not, keyword_not}, EXPR_ARG</div><div class='add'>+or, {keyword_or, keyword_or}, EXPR_VALUE</div><div class='add'>+redo, {keyword_redo, keyword_redo}, EXPR_END</div><div class='add'>+rescue, {keyword_rescue, modifier_rescue}, EXPR_MID</div><div class='add'>+retry, {keyword_retry, keyword_retry}, EXPR_END</div><div class='add'>+return, {keyword_return, keyword_return}, EXPR_MID</div><div class='add'>+self, {keyword_self, keyword_self}, EXPR_END</div><div class='add'>+super, {keyword_super, keyword_super}, EXPR_ARG</div><div class='add'>+then, {keyword_then, keyword_then}, EXPR_BEG</div><div class='add'>+true, {keyword_true, keyword_true}, EXPR_END</div><div class='add'>+undef, {keyword_undef, keyword_undef}, EXPR_FNAME|EXPR_FITEM</div><div class='add'>+unless, {keyword_unless, modifier_unless}, EXPR_VALUE</div><div class='add'>+until, {keyword_until, modifier_until}, EXPR_VALUE</div><div class='add'>+when, {keyword_when, keyword_when}, EXPR_VALUE</div><div class='add'>+while, {keyword_while, modifier_while}, EXPR_VALUE</div><div class='add'>+yield, {keyword_yield, keyword_yield}, EXPR_ARG</div><div class='add'>+%%</div><div class='add'>+#endif</div><div class='head'>diff --git a/defs/opt_insn_unif.def b/defs/opt_insn_unif.def<br/>new file mode 100644<br/>index 0000000000..31ae2eb6a1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/opt_insn_unif.def?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/opt_insn_unif.def</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+#</div><div class='add'>+# a definition of instruction unification</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+__END__</div><div class='add'>+</div><div class='add'>+putobject putobject</div><div class='add'>+putobject putstring</div><div class='add'>+putobject setlocal</div><div class='add'>+</div><div class='add'>+putstring putstring</div><div class='add'>+putstring putobject</div><div class='add'>+putstring setlocal</div><div class='add'>+</div><div class='add'>+# putnil end</div><div class='add'>+</div><div class='add'>+dup setlocal</div><div class='add'>+</div><div class='add'>+# from tarai</div><div class='add'>+getlocal getlocal</div><div class='add'>+# getlocal send</div><div class='add'>+</div><div class='add'>+# from tak, ackermann</div><div class='add'>+getlocal putobject</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/defs/opt_operand.def b/defs/opt_operand.def<br/>new file mode 100644<br/>index 0000000000..887e3da49a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/opt_operand.def?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/opt_operand.def</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+#</div><div class='add'>+# configuration file for operand union optimization</div><div class='add'>+#</div><div class='add'>+# format:</div><div class='add'>+#   [insn name] op1, op2 ...</div><div class='add'>+#</div><div class='add'>+#  wildcard: *</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+getlocal *, 0</div><div class='add'>+getlocal *, 1</div><div class='add'>+setlocal *, 0</div><div class='add'>+setlocal *, 1</div><div class='add'>+</div><div class='add'>+putobject INT2FIX(0)</div><div class='add'>+putobject INT2FIX(1)</div><div class='add'>+</div><div class='add'>+__END__</div><div class='add'>+</div><div class='add'>+putobject Qtrue</div><div class='add'>+putobject Qfalse</div><div class='add'>+</div><div class='head'>diff --git a/defs/separated_version.mk b/defs/separated_version.mk<br/>new file mode 100644<br/>index 0000000000..f086f4b24a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/separated_version.mk?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>defs/separated_version.mk</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+# ******** FOR DEVELEPERS ONLY ********</div><div class='add'>+# Separate version.o into a shared library which varies every</div><div class='add'>+# revisions, in order to make the rest sharable.</div><div class='add'>+</div><div class='add'>+include $(firstword $(wildcard GNUmakefile Makefile))</div><div class='add'>+</div><div class='add'>+ifneq ($(filter @executable_path/%,$(DLDFLAGS)),)</div><div class='add'>+RUBY_VERSION_SO = $(subst ruby,ruby_version,$(LIBRUBY_SO))</div><div class='add'>+RUBY_VERSION_DLDFLAGS := $(patsubst @executable_path/%/$(LIBRUBY_SO),@loader_path/$(RUBY_VERSION_SO),$(DLDFLAGS)) -exported_symbol=Init_version</div><div class='add'>+else ifneq ($(findstring -soname,$(DLDFLAGS)),)</div><div class='add'>+RUBY_VERSION_SO = $(subst ruby,ruby_version,$(LIBRUBY_SO))</div><div class='add'>+RUBY_VERSION_DLDFLAGS := $(subst ruby,ruby_version,$(DLDFLAGS)) -Wl,-rpath-link,'$${ORIGIN}'</div><div class='add'>+else</div><div class='add'>+ERROR</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(RUBY_VERSION_SO),)</div><div class='add'>+</div><div class='add'>+version.$(OBJEXT): XCFLAGS := $(subst -fvisibility=hidden,,$(XCFLAGS))</div><div class='add'>+</div><div class='add'>+MINIOBJS += version.$(OBJEXT)</div><div class='add'>+DLDOBJS += $(RUBY_VERSION_SO)</div><div class='add'>+LIBRUBYARG_SHARED := -lruby_version $(LIBRUBYARG_SHARED)</div><div class='add'>+$(LIBRUBY_SO): COMMONOBJS := $(filter-out version.$(OBJEXT),$(COMMONOBJS))</div><div class='add'>+$(LIBRUBY_A): COMMONOBJS := $(sort version.$(OBJEXT) $(COMMONOBJS))</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_SO): $(RUBY_VERSION_SO)</div><div class='add'>+</div><div class='add'>+$(RUBY_VERSION_SO): version.$(OBJEXT)</div><div class='add'>+	$(ECHO) linking shared-library $@</div><div class='add'>+	$(LDSHARED) $(RUBY_VERSION_DLDFLAGS) version.$(OBJEXT) $(OUTFLAG)$@</div><div class='add'>+	-$(Q) $(MINIRUBY) -e 'ARGV.each{|link|' \</div><div class='add'>+		-e   'File.delete link rescue nil' \</div><div class='add'>+		-e   'File.symlink "$(RUBY_VERSION_SO)", link' \</div><div class='add'>+		-e '}' \</div><div class='add'>+		$(subst ruby,ruby_version,$(LIBRUBY_ALIASES)) || true</div><div class='add'>+</div><div class='add'>+endif</div><div class='head'>diff --git a/dir.c b/dir.c<br/>index 0dd12ffd7d..40bd4eb193 100644<br/>--- a/<a href='/ruby.git/tree/dir.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>dir.c</a><br/>+++ b/<a href='/ruby.git/tree/dir.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dir.c</a></div><div class='hunk'>@@ -3,16 +3,17 @@</div><div class='ctx'>   dir.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Wed Jan  5 09:51:01 JST 1994</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'>   Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='ctx'>   Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='ctx'> </div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='hunk'>@@ -21,6 +22,26 @@</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef O_CLOEXEC</div><div class='add'>+#  define O_CLOEXEC 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef USE_OPENDIR_AT</div><div class='add'>+# if defined(HAVE_FDOPENDIR) &amp;&amp; defined(HAVE_DIRFD) &amp;&amp; \</div><div class='add'>+    defined(HAVE_OPENAT) &amp;&amp; defined(HAVE_FSTATAT)</div><div class='add'>+#   define USE_OPENDIR_AT 1</div><div class='add'>+# else</div><div class='add'>+#   define USE_OPENDIR_AT 0</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#if USE_OPENDIR_AT</div><div class='add'>+# include &lt;fcntl.h&gt;</div><div class='add'>+#endif</div><div class='add'>+#ifndef AT_FDCWD</div><div class='add'>+# define AT_FDCWD -1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef HAVE_DIRENT_NAMLEN</div><div class='ctx'> #if defined HAVE_DIRENT_H &amp;&amp; !defined _WIN32</div><div class='ctx'> # include &lt;dirent.h&gt;</div><div class='ctx'> # define NAMLEN(dirent) strlen((dirent)-&gt;d_name)</div><div class='hunk'>@@ -29,12 +50,8 @@</div><div class='ctx'> # define NAMLEN(dirent) strlen((dirent)-&gt;d_name)</div><div class='ctx'> #else</div><div class='ctx'> # define dirent direct</div><div class='del'>-# if !defined __NeXT__</div><div class='del'>-#  define NAMLEN(dirent) (dirent)-&gt;d_namlen</div><div class='del'>-# else</div><div class='del'>-#  /* On some versions of NextStep, d_namlen is always zero, so avoid it. */</div><div class='del'>-#  define NAMLEN(dirent) strlen((dirent)-&gt;d_name)</div><div class='del'>-# endif</div><div class='add'>+# define NAMLEN(dirent) (dirent)-&gt;d_namlen</div><div class='add'>+# define HAVE_DIRENT_NAMLEN 1</div><div class='ctx'> # if HAVE_SYS_NDIR_H</div><div class='ctx'> #  include &lt;sys/ndir.h&gt;</div><div class='ctx'> # endif</div><div class='hunk'>@@ -56,134 +73,165 @@ char *getenv();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_STRING_H</div><div class='del'>-char *strchr _((char*,char));</div><div class='add'>+char *strchr(char*,char);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='del'>-#include "util.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+</div><div class='add'>+#define vm_initialized rb_cThread</div><div class='ctx'> </div><div class='del'>-#if !defined HAVE_LSTAT &amp;&amp; !defined lstat</div><div class='del'>-#define lstat stat</div><div class='add'>+/* define system APIs */</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#undef chdir</div><div class='add'>+#define chdir(p) rb_w32_uchdir(p)</div><div class='add'>+#undef mkdir</div><div class='add'>+#define mkdir(p, m) rb_w32_umkdir((p), (m))</div><div class='add'>+#undef rmdir</div><div class='add'>+#define rmdir(p) rb_w32_urmdir(p)</div><div class='add'>+#undef opendir</div><div class='add'>+#define opendir(p) rb_w32_uopendir(p)</div><div class='add'>+#define ruby_getcwd() rb_w32_ugetcwd(NULL, 0)</div><div class='add'>+#define IS_WIN32 1</div><div class='add'>+#else</div><div class='add'>+#define IS_WIN32 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef CASEFOLD_FILESYSTEM</div><div class='del'>-# if defined DOSISH || defined __VMS</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 1</div><div class='del'>-# else</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 0</div><div class='del'>-# endif</div><div class='add'>+#ifdef HAVE_SYS_ATTR_H</div><div class='add'>+#include &lt;sys/attr.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define FNM_NOESCAPE	0x01</div><div class='del'>-#define FNM_PATHNAME	0x02</div><div class='del'>-#define FNM_DOTMATCH	0x04</div><div class='del'>-#define FNM_CASEFOLD	0x08</div><div class='del'>-#if CASEFOLD_FILESYSTEM</div><div class='del'>-#define FNM_SYSCASE	FNM_CASEFOLD</div><div class='add'>+#define USE_NAME_ON_FS_REAL_BASENAME 1	/* platform dependent APIs to</div><div class='add'>+					 * get real basenames */</div><div class='add'>+#define USE_NAME_ON_FS_BY_FNMATCH 2	/* select the matching</div><div class='add'>+					 * basename by fnmatch */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_GETATTRLIST</div><div class='add'>+# define USE_NAME_ON_FS USE_NAME_ON_FS_REAL_BASENAME</div><div class='add'>+# define RUP32(size) ((size)+3/4)</div><div class='add'>+# define SIZEUP32(type) RUP32(sizeof(type))</div><div class='add'>+#elif defined _WIN32</div><div class='add'>+# define USE_NAME_ON_FS USE_NAME_ON_FS_REAL_BASENAME</div><div class='add'>+#elif defined DOSISH</div><div class='add'>+# define USE_NAME_ON_FS USE_NAME_ON_FS_BY_FNMATCH</div><div class='ctx'> #else</div><div class='del'>-#define FNM_SYSCASE	0</div><div class='add'>+# define USE_NAME_ON_FS 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define FNM_NOMATCH	1</div><div class='del'>-#define FNM_ERROR	2</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+# define NORMALIZE_UTF8PATH 1</div><div class='add'>+#else</div><div class='add'>+# define NORMALIZE_UTF8PATH 0</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#define downcase(c) (nocase &amp;&amp; ISUPPER(c) ? tolower(c) : (c))</div><div class='del'>-#define compare(c1, c2) (((unsigned char)(c1)) - ((unsigned char)(c2)))</div><div class='add'>+#if NORMALIZE_UTF8PATH</div><div class='add'>+#include &lt;sys/param.h&gt;</div><div class='add'>+#include &lt;sys/mount.h&gt;</div><div class='add'>+#include &lt;sys/vnode.h&gt;</div><div class='ctx'> </div><div class='del'>-/* caution: in case *p == '\0'</div><div class='del'>-   Next(p) == p + 1 in single byte environment</div><div class='del'>-   Next(p) == p     in multi byte environment</div><div class='del'>-*/</div><div class='del'>-#if defined(CharNext)</div><div class='del'>-# define Next(p) CharNext(p)</div><div class='del'>-#elif defined(DJGPP)</div><div class='del'>-# define Next(p) ((p) + mblen(p, RUBY_MBCHAR_MAXSIZE))</div><div class='del'>-#elif defined(__EMX__)</div><div class='del'>-# define Next(p) ((p) + emx_mblen(p))</div><div class='add'>+# if defined HAVE_FGETATTRLIST || !defined HAVE_GETATTRLIST</div><div class='add'>+#   define need_normalization(dirp, path) need_normalization(dirp)</div><div class='add'>+# else</div><div class='add'>+#   define need_normalization(dirp, path) need_normalization(path)</div><div class='add'>+# endif</div><div class='ctx'> static inline int</div><div class='del'>-emx_mblen(const char *p)</div><div class='add'>+need_normalization(DIR *dirp, const char *path)</div><div class='ctx'> {</div><div class='del'>-    int n = mblen(p, RUBY_MBCHAR_MAXSIZE);</div><div class='del'>-    return (n &lt; 0) ? 1 : n;</div><div class='add'>+# if defined HAVE_FGETATTRLIST || defined HAVE_GETATTRLIST</div><div class='add'>+    u_int32_t attrbuf[SIZEUP32(fsobj_tag_t)];</div><div class='add'>+    struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_OBJTAG,};</div><div class='add'>+#   if defined HAVE_FGETATTRLIST</div><div class='add'>+    int ret = fgetattrlist(dirfd(dirp), &amp;al, attrbuf, sizeof(attrbuf), 0);</div><div class='add'>+#   else</div><div class='add'>+    int ret = getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0);</div><div class='add'>+#   endif</div><div class='add'>+    if (!ret) {</div><div class='add'>+	const fsobj_tag_t *tag = (void *)(attrbuf+1);</div><div class='add'>+	switch (*tag) {</div><div class='add'>+	  case VT_HFS:</div><div class='add'>+	  case VT_CIFS:</div><div class='add'>+	    return TRUE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+# endif</div><div class='add'>+    return FALSE;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifndef Next /* single byte environment */</div><div class='del'>-# define Next(p) ((p) + 1)</div><div class='del'>-# define Inc(p) (++(p))</div><div class='del'>-# define Compare(p1, p2) (compare(downcase(*(p1)), downcase(*(p2))))</div><div class='del'>-#else /* multi byte environment */</div><div class='del'>-# define Inc(p) ((p) = Next(p))</div><div class='del'>-# define Compare(p1, p2) (CompareImpl(p1, p2, nocase))</div><div class='del'>-static int</div><div class='del'>-CompareImpl(const char *p1, const char *p2, int nocase)</div><div class='add'>+static inline int</div><div class='add'>+has_nonascii(const char *ptr, size_t len)</div><div class='ctx'> {</div><div class='del'>-    const int len1 = Next(p1) - p1;</div><div class='del'>-    const int len2 = Next(p2) - p2;</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    char buf1[10], buf2[10]; /* large enough? */</div><div class='add'>+    while (len &gt; 0) {</div><div class='add'>+	if (!ISASCII(*ptr)) return 1;</div><div class='add'>+	ptr++;</div><div class='add'>+	--len;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define IF_NORMALIZE_UTF8PATH(something) something</div><div class='add'>+#else</div><div class='add'>+# define IF_NORMALIZE_UTF8PATH(something) /* nothing */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    if (len1 &lt; 0 || len2 &lt; 0) {</div><div class='del'>-	rb_fatal("CompareImpl: negative len");</div><div class='del'>-    }</div><div class='add'>+#ifndef IFTODT</div><div class='add'>+# define IFTODT(m)	(((m) &amp; S_IFMT) / ((~S_IFMT &amp; S_IFMT-1) + 1))</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (len1 == 0) return  len2;</div><div class='del'>-    if (len2 == 0) return -len1;</div><div class='add'>+typedef enum {</div><div class='add'>+#ifdef DT_UNKNOWN</div><div class='add'>+    path_exist     = DT_UNKNOWN,</div><div class='add'>+    path_directory = DT_DIR,</div><div class='add'>+    path_regular   = DT_REG,</div><div class='add'>+    path_symlink   = DT_LNK,</div><div class='add'>+#else</div><div class='add'>+    path_exist,</div><div class='add'>+    path_directory = IFTODT(S_IFDIR),</div><div class='add'>+    path_regular   = IFTODT(S_IFREG),</div><div class='add'>+    path_symlink   = IFTODT(S_IFLNK),</div><div class='add'>+#endif</div><div class='add'>+    path_noent = -1,</div><div class='add'>+    path_unknown = -2</div><div class='add'>+} rb_pathtype_t;</div><div class='ctx'> </div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    if (nocase &amp;&amp; rb_w32_iswinnt()) {</div><div class='del'>-	if (len1 &gt; 1) {</div><div class='del'>-	    if (len1 &gt;= sizeof(buf1)) {</div><div class='del'>-		rb_fatal("CompareImpl: too large len");</div><div class='del'>-	    }</div><div class='del'>-	    memcpy(buf1, p1, len1);</div><div class='del'>-	    buf1[len1] = '\0';</div><div class='del'>-	    CharLower(buf1);</div><div class='del'>-	    p1 = buf1; /* trick */</div><div class='del'>-	}</div><div class='del'>-	if (len2 &gt; 1) {</div><div class='del'>-	    if (len2 &gt;= sizeof(buf2)) {</div><div class='del'>-		rb_fatal("CompareImpl: too large len");</div><div class='del'>-	    }</div><div class='del'>-	    memcpy(buf2, p2, len2);</div><div class='del'>-	    buf2[len2] = '\0';</div><div class='del'>-	    CharLower(buf2);</div><div class='del'>-	    p2 = buf2; /* trick */</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+#define FNM_NOESCAPE	0x01</div><div class='add'>+#define FNM_PATHNAME	0x02</div><div class='add'>+#define FNM_DOTMATCH	0x04</div><div class='add'>+#define FNM_CASEFOLD	0x08</div><div class='add'>+#define FNM_EXTGLOB	0x10</div><div class='add'>+#if CASEFOLD_FILESYSTEM</div><div class='add'>+#define FNM_SYSCASE	FNM_CASEFOLD</div><div class='add'>+#else</div><div class='add'>+#define FNM_SYSCASE	0</div><div class='ctx'> #endif</div><div class='del'>-    if (len1 == 1)</div><div class='del'>-	if (len2 == 1)</div><div class='del'>-	    return compare(downcase(*p1), downcase(*p2));</div><div class='del'>-	else {</div><div class='del'>-	    const int ret = compare(downcase(*p1), *p2);</div><div class='del'>-	    return ret ? ret : -1;</div><div class='del'>-	}</div><div class='del'>-    else</div><div class='del'>-	if (len2 == 1) {</div><div class='del'>-	    const int ret = compare(*p1, downcase(*p2));</div><div class='del'>-	    return ret ? ret : 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    const int ret = memcmp(p1, p2, len1 &lt; len2 ? len1 : len2);</div><div class='del'>-	    return ret ? ret : len1 - len2;</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-#endif /* environment */</div><div class='add'>+#if _WIN32</div><div class='add'>+#define FNM_SHORTNAME	0x20</div><div class='add'>+#else</div><div class='add'>+#define FNM_SHORTNAME	0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define FNM_NOMATCH	1</div><div class='add'>+#define FNM_ERROR	2</div><div class='add'>+</div><div class='add'>+# define Next(p, e, enc) ((p)+ rb_enc_mbclen((p), (e), (enc)))</div><div class='add'>+# define Inc(p, e, enc) ((p) = Next((p), (e), (enc)))</div><div class='ctx'> </div><div class='ctx'> static char *</div><div class='del'>-bracket(p, s, flags)</div><div class='del'>-    const char *p; /* pattern (next to '[') */</div><div class='del'>-    const char *s; /* string */</div><div class='del'>-    int flags;</div><div class='add'>+bracket(</div><div class='add'>+    const char *p, /* pattern (next to '[') */</div><div class='add'>+    const char *pend,</div><div class='add'>+    const char *s, /* string */</div><div class='add'>+    const char *send,</div><div class='add'>+    int flags,</div><div class='add'>+    rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     const int nocase = flags &amp; FNM_CASEFOLD;</div><div class='ctx'>     const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='del'>-</div><div class='add'>+    unsigned int c1, c2;</div><div class='add'>+    int r;</div><div class='ctx'>     int ok = 0, not = 0;</div><div class='ctx'> </div><div class='add'>+    if (p &gt;= pend) return NULL;</div><div class='ctx'>     if (*p == '!' || *p == '^') {</div><div class='ctx'> 	not = 1;</div><div class='ctx'> 	p++;</div><div class='hunk'>@@ -195,26 +243,49 @@ bracket(p, s, flags)</div><div class='ctx'> 	    t1++;</div><div class='ctx'> 	if (!*t1)</div><div class='ctx'> 	    return NULL;</div><div class='del'>-	p = Next(t1);</div><div class='add'>+	p = t1 + (r = rb_enc_mbclen(t1, pend, enc));</div><div class='add'>+	if (p &gt;= pend) return NULL;</div><div class='ctx'> 	if (p[0] == '-' &amp;&amp; p[1] != ']') {</div><div class='ctx'> 	    const char *t2 = p + 1;</div><div class='add'>+	    int r2;</div><div class='ctx'> 	    if (escape &amp;&amp; *t2 == '\\')</div><div class='ctx'> 		t2++;</div><div class='ctx'> 	    if (!*t2)</div><div class='ctx'> 		return NULL;</div><div class='del'>-	    p = Next(t2);</div><div class='del'>-	    if (!ok &amp;&amp; Compare(t1, s) &lt;= 0 &amp;&amp; Compare(s, t2) &lt;= 0)</div><div class='add'>+	    p = t2 + (r2 = rb_enc_mbclen(t2, pend, enc));</div><div class='add'>+	    if (ok) continue;</div><div class='add'>+	    if ((r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) ||</div><div class='add'>+		(r2 &lt;= (send-s) &amp;&amp; memcmp(t2, s, r2) == 0)) {</div><div class='ctx'> 		ok = 1;</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+	    c1 = rb_enc_codepoint(s, send, enc);</div><div class='add'>+	    if (nocase) c1 = rb_enc_toupper(c1, enc);</div><div class='add'>+	    c2 = rb_enc_codepoint(t1, pend, enc);</div><div class='add'>+	    if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='add'>+	    if (c1 &lt; c2) continue;</div><div class='add'>+	    c2 = rb_enc_codepoint(t2, pend, enc);</div><div class='add'>+	    if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='add'>+	    if (c1 &gt; c2) continue;</div><div class='ctx'> 	}</div><div class='del'>-	else</div><div class='del'>-	    if (!ok &amp;&amp; Compare(t1, s) == 0)</div><div class='add'>+	else {</div><div class='add'>+	    if (ok) continue;</div><div class='add'>+	    if (r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) {</div><div class='ctx'> 		ok = 1;</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+	    if (!nocase) continue;</div><div class='add'>+	    c1 = rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc);</div><div class='add'>+	    c2 = rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc);</div><div class='add'>+	    if (c1 != c2) continue;</div><div class='add'>+	}</div><div class='add'>+	ok = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ok == not ? NULL : (char *)p + 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* If FNM_PATHNAME is set, only path element will be matched. (upto '/' or '\0')</div><div class='add'>+/* If FNM_PATHNAME is set, only path element will be matched. (up to '/' or '\0')</div><div class='ctx'>    Otherwise, entire string will be matched.</div><div class='ctx'>    End marker itself won't be compared.</div><div class='ctx'>    And if function succeeds, *pcur reaches end marker.</div><div class='hunk'>@@ -224,10 +295,11 @@ bracket(p, s, flags)</div><div class='ctx'> #define RETURN(val) return *pcur = p, *scur = s, (val);</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-fnmatch_helper(pcur, scur, flags)</div><div class='del'>-    const char **pcur; /* pattern */</div><div class='del'>-    const char **scur; /* string */</div><div class='del'>-    int flags;</div><div class='add'>+fnmatch_helper(</div><div class='add'>+    const char **pcur, /* pattern */</div><div class='add'>+    const char **scur, /* string */</div><div class='add'>+    int flags,</div><div class='add'>+    rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     const int period = !(flags &amp; FNM_DOTMATCH);</div><div class='ctx'>     const int pathname = flags &amp; FNM_PATHNAME;</div><div class='hunk'>@@ -238,7 +310,11 @@ fnmatch_helper(pcur, scur, flags)</div><div class='ctx'>     const char *stmp = 0;</div><div class='ctx'> </div><div class='ctx'>     const char *p = *pcur;</div><div class='add'>+    const char *pend = p + strlen(p);</div><div class='ctx'>     const char *s = *scur;</div><div class='add'>+    const char *send = s + strlen(s);</div><div class='add'>+</div><div class='add'>+    int r;</div><div class='ctx'> </div><div class='ctx'>     if (period &amp;&amp; *s == '.' &amp;&amp; *UNESCAPE(p) != '.') /* leading period */</div><div class='ctx'> 	RETURN(FNM_NOMATCH);</div><div class='hunk'>@@ -261,16 +337,16 @@ fnmatch_helper(pcur, scur, flags)</div><div class='ctx'> 	    if (ISEND(s))</div><div class='ctx'> 		RETURN(FNM_NOMATCH);</div><div class='ctx'> 	    p++;</div><div class='del'>-	    Inc(s);</div><div class='add'>+	    Inc(s, send, enc);</div><div class='ctx'> 	    continue;</div><div class='ctx'> </div><div class='ctx'> 	  case '[': {</div><div class='ctx'> 	    const char *t;</div><div class='ctx'> 	    if (ISEND(s))</div><div class='ctx'> 		RETURN(FNM_NOMATCH);</div><div class='del'>-	    if (t = bracket(p + 1, s, flags)) {</div><div class='add'>+	    if ((t = bracket(p + 1, pend, s, send, flags, enc)) != 0) {</div><div class='ctx'> 		p = t;</div><div class='del'>-		Inc(s);</div><div class='add'>+		Inc(s, send, enc);</div><div class='ctx'> 		continue;</div><div class='ctx'> 	    }</div><div class='ctx'> 	    goto failed;</div><div class='hunk'>@@ -283,16 +359,26 @@ fnmatch_helper(pcur, scur, flags)</div><div class='ctx'> 	    RETURN(ISEND(p) ? 0 : FNM_NOMATCH);</div><div class='ctx'> 	if (ISEND(p))</div><div class='ctx'> 	    goto failed;</div><div class='del'>-	if (Compare(p, s) != 0)</div><div class='add'>+	r = rb_enc_precise_mbclen(p, pend, enc);</div><div class='add'>+	if (!MBCLEN_CHARFOUND_P(r))</div><div class='add'>+	    goto failed;</div><div class='add'>+	if (r &lt;= (send-s) &amp;&amp; memcmp(p, s, r) == 0) {</div><div class='add'>+	    p += r;</div><div class='add'>+	    s += r;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	if (!nocase) goto failed;</div><div class='add'>+	if (rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc) !=</div><div class='add'>+	    rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc))</div><div class='ctx'> 	    goto failed;</div><div class='del'>-	Inc(p);</div><div class='del'>-	Inc(s);</div><div class='add'>+	p += r;</div><div class='add'>+	Inc(s, send, enc);</div><div class='ctx'> 	continue;</div><div class='ctx'> </div><div class='ctx'>       failed: /* try next '*' position */</div><div class='ctx'> 	if (ptmp &amp;&amp; stmp) {</div><div class='ctx'> 	    p = ptmp;</div><div class='del'>-	    Inc(stmp); /* !ISEND(*stmp) */</div><div class='add'>+	    Inc(stmp, send, enc); /* !ISEND(*stmp) */</div><div class='ctx'> 	    s = stmp;</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='hunk'>@@ -301,11 +387,15 @@ fnmatch_helper(pcur, scur, flags)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-fnmatch(p, s, flags)</div><div class='del'>-    const char *p; /* pattern */</div><div class='del'>-    const char *s; /* string */</div><div class='del'>-    int flags;</div><div class='add'>+fnmatch(</div><div class='add'>+    const char *pattern,</div><div class='add'>+    rb_encoding *enc,</div><div class='add'>+    const char *string,</div><div class='add'>+    int flags)</div><div class='ctx'> {</div><div class='add'>+    const char *p = pattern;</div><div class='add'>+    const char *s = string;</div><div class='add'>+    const char *send = s + strlen(string);</div><div class='ctx'>     const int period = !(flags &amp; FNM_DOTMATCH);</div><div class='ctx'>     const int pathname = flags &amp; FNM_PATHNAME;</div><div class='ctx'> </div><div class='hunk'>@@ -319,8 +409,8 @@ fnmatch(p, s, flags)</div><div class='ctx'> 		ptmp = p;</div><div class='ctx'> 		stmp = s;</div><div class='ctx'> 	    }</div><div class='del'>-	    if (fnmatch_helper(&amp;p, &amp;s, flags) == 0) {</div><div class='del'>-		while (*s &amp;&amp; *s != '/') Inc(s);</div><div class='add'>+	    if (fnmatch_helper(&amp;p, &amp;s, flags, enc) == 0) {</div><div class='add'>+		while (*s &amp;&amp; *s != '/') Inc(s, send, enc);</div><div class='ctx'> 		if (*p &amp;&amp; *s) {</div><div class='ctx'> 		    p++;</div><div class='ctx'> 		    s++;</div><div class='hunk'>@@ -331,7 +421,7 @@ fnmatch(p, s, flags)</div><div class='ctx'> 	    }</div><div class='ctx'> 	    /* failed : try next recursion */</div><div class='ctx'> 	    if (ptmp &amp;&amp; stmp &amp;&amp; !(period &amp;&amp; *stmp == '.')) {</div><div class='del'>-		while (*stmp &amp;&amp; *stmp != '/') Inc(stmp);</div><div class='add'>+		while (*stmp &amp;&amp; *stmp != '/') Inc(stmp, send, enc);</div><div class='ctx'> 		if (*stmp) {</div><div class='ctx'> 		    p = ptmp;</div><div class='ctx'> 		    stmp++;</div><div class='hunk'>@@ -343,80 +433,162 @@ fnmatch(p, s, flags)</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	return fnmatch_helper(&amp;p, &amp;s, flags);</div><div class='add'>+	return fnmatch_helper(&amp;p, &amp;s, flags, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cDir;</div><div class='ctx'> </div><div class='ctx'> struct dir_data {</div><div class='ctx'>     DIR *dir;</div><div class='del'>-    char *path;</div><div class='add'>+    const VALUE path;</div><div class='add'>+    rb_encoding *enc;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-free_dir(dir)</div><div class='del'>-    struct dir_data *dir;</div><div class='add'>+dir_mark(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    if (dir) {</div><div class='del'>-	if (dir-&gt;dir) closedir(dir-&gt;dir);</div><div class='del'>-	if (dir-&gt;path) free(dir-&gt;path);</div><div class='del'>-    }</div><div class='del'>-    free(dir);</div><div class='add'>+    struct dir_data *dir = ptr;</div><div class='add'>+    rb_gc_mark(dir-&gt;path);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dir_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dir = ptr;</div><div class='add'>+</div><div class='add'>+    if (dir-&gt;dir) closedir(dir-&gt;dir);</div><div class='add'>+    xfree(dir);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+dir_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    return sizeof(struct dir_data);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE dir_close _((VALUE));</div><div class='add'>+static const rb_data_type_t dir_data_type = {</div><div class='add'>+    "dir",</div><div class='add'>+    {dir_mark, dir_free, dir_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE dir_close(VALUE);</div><div class='ctx'> </div><div class='del'>-static VALUE dir_s_alloc _((VALUE));</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_alloc(klass)</div><div class='del'>-    VALUE klass;</div><div class='add'>+dir_s_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='del'>-    VALUE obj = Data_Make_Struct(klass, struct dir_data, 0, free_dir, dirp);</div><div class='add'>+    VALUE obj = TypedData_Make_Struct(klass, struct dir_data, &amp;dir_data_type, dirp);</div><div class='ctx'> </div><div class='ctx'>     dirp-&gt;dir = NULL;</div><div class='del'>-    dirp-&gt;path = NULL;</div><div class='add'>+    RB_OBJ_WRITE(obj, &amp;dirp-&gt;path, Qnil);</div><div class='add'>+    dirp-&gt;enc = NULL;</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void *</div><div class='add'>+nogvl_opendir(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const char *path = ptr;</div><div class='add'>+</div><div class='add'>+    return (void *)opendir(path);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static DIR *</div><div class='add'>+opendir_without_gvl(const char *path)</div><div class='add'>+{</div><div class='add'>+    if (vm_initialized) {</div><div class='add'>+	union { const void *in; void *out; } u;</div><div class='add'>+</div><div class='add'>+	u.in = path;</div><div class='add'>+</div><div class='add'>+	return rb_thread_call_without_gvl(nogvl_opendir, u.out, RUBY_UBF_IO, 0);</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+	return opendir(path);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     Dir.new( string ) -&gt; aDir</div><div class='add'>+ *     Dir.new( string, encoding: enc ) -&gt; aDir</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns a new directory object for the named directory.</div><div class='add'>+ *</div><div class='add'>+ *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='add'>+ *  If not specified, the filesystem encoding is used.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_initialize(dir, dirname)</div><div class='del'>-    VALUE dir, dirname;</div><div class='add'>+dir_initialize(int argc, VALUE *argv, VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dp;</div><div class='add'>+    rb_encoding  *fsenc;</div><div class='add'>+    VALUE dirname, opt, orig;</div><div class='add'>+    static ID keyword_ids[1];</div><div class='add'>+    const char *path;</div><div class='ctx'> </div><div class='del'>-    SafeStringValue(dirname);</div><div class='del'>-    Data_Get_Struct(dir, struct dir_data, dp);</div><div class='add'>+    if (!keyword_ids[0]) {</div><div class='add'>+	keyword_ids[0] = rb_id_encoding();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    fsenc = rb_filesystem_encoding();</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;dirname, &amp;opt);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+	VALUE enc;</div><div class='add'>+	rb_get_kwargs(opt, keyword_ids, 0, 1, &amp;enc);</div><div class='add'>+	if (enc != Qundef &amp;&amp; !NIL_P(enc)) {</div><div class='add'>+	    fsenc = rb_to_encoding(enc);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    FilePathValue(dirname);</div><div class='add'>+    orig = rb_str_dup_frozen(dirname);</div><div class='add'>+    dirname = rb_str_encode_ospath(dirname);</div><div class='add'>+    dirname = rb_str_dup_frozen(dirname);</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(dir, struct dir_data, &amp;dir_data_type, dp);</div><div class='ctx'>     if (dp-&gt;dir) closedir(dp-&gt;dir);</div><div class='del'>-    if (dp-&gt;path) free(dp-&gt;path);</div><div class='ctx'>     dp-&gt;dir = NULL;</div><div class='del'>-    dp-&gt;path = NULL;</div><div class='del'>-    dp-&gt;dir = opendir(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+    RB_OBJ_WRITE(dir, &amp;dp-&gt;path, Qnil);</div><div class='add'>+    dp-&gt;enc = fsenc;</div><div class='add'>+    path = RSTRING_PTR(dirname);</div><div class='add'>+    dp-&gt;dir = opendir_without_gvl(path);</div><div class='ctx'>     if (dp-&gt;dir == NULL) {</div><div class='del'>-	if (errno == EMFILE || errno == ENFILE) {</div><div class='del'>-	    rb_gc();</div><div class='del'>-	    dp-&gt;dir = opendir(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+	int e = errno;</div><div class='add'>+	if (rb_gc_for_fd(e)) {</div><div class='add'>+	    dp-&gt;dir = opendir_without_gvl(path);</div><div class='ctx'> 	}</div><div class='add'>+#ifdef HAVE_GETATTRLIST</div><div class='add'>+	else if (e == EIO) {</div><div class='add'>+	    u_int32_t attrbuf[1];</div><div class='add'>+	    struct attrlist al = {ATTR_BIT_MAP_COUNT, 0};</div><div class='add'>+	    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW) == 0) {</div><div class='add'>+		dp-&gt;dir = opendir_without_gvl(path);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='ctx'> 	if (dp-&gt;dir == NULL) {</div><div class='del'>-	    rb_sys_fail(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+	    RB_GC_GUARD(dirname);</div><div class='add'>+	    rb_syserr_fail_path(e, orig);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    dp-&gt;path = strdup(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+    RB_OBJ_WRITE(dir, &amp;dp-&gt;path, orig);</div><div class='ctx'> </div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.open( string ) =&gt; aDir</div><div class='del'>- *     Dir.open( string ) {| aDir | block } =&gt; anObject</div><div class='add'>+ *     Dir.open( string ) -&gt; aDir</div><div class='add'>+ *     Dir.open( string, encoding: enc ) -&gt; aDir</div><div class='add'>+ *     Dir.open( string ) {| aDir | block } -&gt; anObject</div><div class='add'>+ *     Dir.open( string, encoding: enc ) {| aDir | block } -&gt; anObject</div><div class='add'>+ *</div><div class='add'>+ *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='add'>+ *  If not specified, the filesystem encoding is used.</div><div class='ctx'>  *</div><div class='ctx'>  *  With no block, &lt;code&gt;open&lt;/code&gt; is a synonym for</div><div class='ctx'>  *  &lt;code&gt;Dir::new&lt;/code&gt;. If a block is present, it is passed</div><div class='hunk'>@@ -424,15 +596,13 @@ dir_initialize(dir, dirname)</div><div class='ctx'>  *  the block, and &lt;code&gt;Dir::open&lt;/code&gt; returns the value of the</div><div class='ctx'>  *  block.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_open(klass, dirname)</div><div class='del'>-    VALUE klass, dirname;</div><div class='add'>+dir_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dp;</div><div class='del'>-    VALUE dir = Data_Make_Struct(klass, struct dir_data, 0, free_dir, dp);</div><div class='add'>+    VALUE dir = TypedData_Make_Struct(klass, struct dir_data, &amp;dir_data_type, dp);</div><div class='ctx'> </div><div class='del'>-    dir_initialize(dir, dirname);</div><div class='add'>+    dir_initialize(argc, argv, dir);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='ctx'> 	return rb_ensure(rb_yield, dir, dir_close, dir);</div><div class='ctx'>     }</div><div class='hunk'>@@ -441,52 +611,100 @@ dir_s_open(klass, dirname)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-dir_closed()</div><div class='add'>+dir_closed(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eIOError, "closed directory");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-dir_check(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+static struct dir_data *</div><div class='add'>+dir_get(VALUE dir)</div><div class='ctx'> {</div><div class='del'>-    if (!OBJ_TAINTED(dir) &amp;&amp; rb_safe_level() &gt;= 4)</div><div class='del'>-	rb_raise(rb_eSecurityError, "Insecure: operation on untainted Dir");</div><div class='ctx'>     rb_check_frozen(dir);</div><div class='add'>+    return rb_check_typeddata(dir, &amp;dir_data_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct dir_data *</div><div class='add'>+dir_check(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dirp = dir_get(dir);</div><div class='add'>+    if (!dirp-&gt;dir) dir_closed();</div><div class='add'>+    return dirp;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define GetDIR(obj, dirp) do {\</div><div class='del'>-    dir_check(dir);\</div><div class='del'>-    Data_Get_Struct(obj, struct dir_data, dirp);\</div><div class='del'>-    if (dirp-&gt;dir == NULL) dir_closed();\</div><div class='del'>-} while (0)</div><div class='add'>+#define GetDIR(obj, dirp) ((dirp) = dir_check(obj))</div><div class='add'>+</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.inspect =&gt; string</div><div class='add'>+ *     dir.inspect -&gt; string</div><div class='ctx'>  *</div><div class='ctx'>  *  Return a string describing this Dir object.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_inspect(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_inspect(VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'> </div><div class='del'>-    GetDIR(dir, dirp);</div><div class='del'>-    if (dirp-&gt;path) {</div><div class='del'>-	char *c = rb_obj_classname(dir);</div><div class='del'>-	int len = strlen(c) + strlen(dirp-&gt;path) + 4;</div><div class='del'>-	VALUE s = rb_str_new(0, len);</div><div class='del'>-	snprintf(RSTRING_PTR(s), len+1, "#&lt;%s:%s&gt;", c, dirp-&gt;path);</div><div class='del'>-	return s;</div><div class='add'>+    TypedData_Get_Struct(dir, struct dir_data, &amp;dir_data_type, dirp);</div><div class='add'>+    if (!NIL_P(dirp-&gt;path)) {</div><div class='add'>+	VALUE str = rb_str_new_cstr("#&lt;");</div><div class='add'>+	rb_str_append(str, rb_class_name(CLASS_OF(dir)));</div><div class='add'>+	rb_str_cat2(str, ":");</div><div class='add'>+	rb_str_append(str, dirp-&gt;path);</div><div class='add'>+	rb_str_cat2(str, "&gt;");</div><div class='add'>+	return str;</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcall(dir, rb_intern("to_s"), 0, 0);</div><div class='add'>+    return rb_funcallv(dir, rb_intern("to_s"), 0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Workaround for Solaris 10 that does not have dirfd.</div><div class='add'>+   Note: Solaris 11 (POSIX.1-2008 compliant) has dirfd(3C).</div><div class='add'>+ */</div><div class='add'>+#if defined(__sun) &amp;&amp; !defined(HAVE_DIRFD)</div><div class='add'>+# if defined(HAVE_DIR_D_FD)</div><div class='add'>+#  define dirfd(x) ((x)-&gt;d_fd)</div><div class='add'>+#  define HAVE_DIRFD 1</div><div class='add'>+# elif defined(HAVE_DIR_DD_FD)</div><div class='add'>+#  define dirfd(x) ((x)-&gt;dd_fd)</div><div class='add'>+#  define HAVE_DIRFD 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_DIRFD</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.path =&gt; string or nil</div><div class='add'>+ *     dir.fileno -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the file descriptor used in &lt;em&gt;dir&lt;/em&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("..")</div><div class='add'>+ *     d.fileno   #=&gt; 8</div><div class='add'>+ *</div><div class='add'>+ *  This method uses dirfd() function defined by POSIX 2008.</div><div class='add'>+ *  NotImplementedError is raised on other platforms, such as Windows,</div><div class='add'>+ *  which doesn't provide the function.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_fileno(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+    int fd;</div><div class='add'>+</div><div class='add'>+    GetDIR(dir, dirp);</div><div class='add'>+    fd = dirfd(dirp-&gt;dir);</div><div class='add'>+    if (fd == -1)</div><div class='add'>+	rb_sys_fail("dirfd");</div><div class='add'>+    return INT2NUM(fd);</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#define dir_fileno rb_f_notimplement</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.path -&gt; string or nil</div><div class='add'>+ *     dir.to_path -&gt; string or nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the path parameter passed to &lt;em&gt;dir&lt;/em&gt;'s constructor.</div><div class='ctx'>  *</div><div class='hunk'>@@ -494,19 +712,59 @@ dir_inspect(dir)</div><div class='ctx'>  *     d.path   #=&gt; ".."</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_path(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_path(VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'> </div><div class='del'>-    GetDIR(dir, dirp);</div><div class='del'>-    if (!dirp-&gt;path) return Qnil;</div><div class='del'>-    return rb_str_new2(dirp-&gt;path);</div><div class='add'>+    TypedData_Get_Struct(dir, struct dir_data, &amp;dir_data_type, dirp);</div><div class='add'>+    if (NIL_P(dirp-&gt;path)) return Qnil;</div><div class='add'>+    return rb_str_dup(dirp-&gt;path);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if defined _WIN32</div><div class='add'>+static int</div><div class='add'>+fundamental_encoding_p(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    switch (rb_enc_to_index(enc)) {</div><div class='add'>+      case ENCINDEX_ASCII:</div><div class='add'>+      case ENCINDEX_US_ASCII:</div><div class='add'>+      case ENCINDEX_UTF_8:</div><div class='add'>+	return TRUE;</div><div class='add'>+      default:</div><div class='add'>+	return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+# define READDIR(dir, enc) rb_w32_readdir((dir), (enc))</div><div class='add'>+#else</div><div class='add'>+# define READDIR(dir, enc) readdir((dir))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* safe to use without GVL */</div><div class='add'>+static int</div><div class='add'>+to_be_skipped(const struct dirent *dp)</div><div class='add'>+{</div><div class='add'>+    const char *name = dp-&gt;d_name;</div><div class='add'>+    if (name[0] != '.') return FALSE;</div><div class='add'>+#ifdef HAVE_DIRENT_NAMLEN</div><div class='add'>+    switch (NAMLEN(dp)) {</div><div class='add'>+      case 2:</div><div class='add'>+	if (name[1] != '.') return FALSE;</div><div class='add'>+      case 1:</div><div class='add'>+	return TRUE;</div><div class='add'>+      default:</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (!name[1]) return TRUE;</div><div class='add'>+    if (name[1] != '.') return FALSE;</div><div class='add'>+    if (!name[2]) return TRUE;</div><div class='add'>+#endif</div><div class='add'>+    return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.read =&gt; string or nil</div><div class='add'>+ *     dir.read -&gt; string or nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Reads the next entry from &lt;em&gt;dir&lt;/em&gt; and returns it as a string.</div><div class='ctx'>  *  Returns &lt;code&gt;nil&lt;/code&gt; at the end of the stream.</div><div class='hunk'>@@ -517,34 +775,41 @@ dir_path(dir)</div><div class='ctx'>  *     d.read   #=&gt; "config.h"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_read(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_read(VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'>     struct dirent *dp;</div><div class='ctx'> </div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     errno = 0;</div><div class='del'>-    dp = readdir(dirp-&gt;dir);</div><div class='del'>-    if (dp) {</div><div class='del'>-	return rb_tainted_str_new(dp-&gt;d_name, NAMLEN(dp));</div><div class='del'>-    }</div><div class='del'>-    else if (errno == 0) {	/* end of stream */</div><div class='del'>-	return Qnil;</div><div class='add'>+    if ((dp = READDIR(dirp-&gt;dir, dirp-&gt;enc)) != NULL) {</div><div class='add'>+	return rb_external_str_new_with_enc(dp-&gt;d_name, NAMLEN(dp), dirp-&gt;enc);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+	int e = errno;</div><div class='add'>+	if (e != 0) rb_syserr_fail(e, 0);</div><div class='add'>+	return Qnil;		/* end of stream */</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;		/* not reached */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE dir_each_entry(VALUE, VALUE (*)(VALUE, VALUE), VALUE, int);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+dir_yield(VALUE arg, VALUE path)</div><div class='add'>+{</div><div class='add'>+    return rb_yield(path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.each { |filename| block }  =&gt; dir</div><div class='add'>+ *     dir.each { |filename| block }  -&gt; dir</div><div class='add'>+ *     dir.each                       -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Calls the block once for each entry in this directory, passing the</div><div class='ctx'>  *  filename of each entry as a parameter to the block.</div><div class='ctx'>  *</div><div class='add'>+ *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *</div><div class='ctx'>  *     d = Dir.new("testdir")</div><div class='ctx'>  *     d.each  {|x| puts "Got #{x}" }</div><div class='ctx'>  *</div><div class='hunk'>@@ -556,25 +821,50 @@ dir_read(dir)</div><div class='ctx'>  *     Got main.rb</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_each(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_each(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    RETURN_ENUMERATOR(dir, 0, 0);</div><div class='add'>+    return dir_each_entry(dir, dir_yield, Qnil, FALSE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+dir_each_entry(VALUE dir, VALUE (*each)(VALUE, VALUE), VALUE arg, int children_only)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'>     struct dirent *dp;</div><div class='add'>+    IF_NORMALIZE_UTF8PATH(int norm_p);</div><div class='ctx'> </div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     rewinddir(dirp-&gt;dir);</div><div class='del'>-    for (dp = readdir(dirp-&gt;dir); dp != NULL; dp = readdir(dirp-&gt;dir)) {</div><div class='del'>-	rb_yield(rb_tainted_str_new(dp-&gt;d_name, NAMLEN(dp)));</div><div class='add'>+    IF_NORMALIZE_UTF8PATH(norm_p = need_normalization(dirp-&gt;dir, RSTRING_PTR(dirp-&gt;path)));</div><div class='add'>+    while ((dp = READDIR(dirp-&gt;dir, dirp-&gt;enc)) != NULL) {</div><div class='add'>+	const char *name = dp-&gt;d_name;</div><div class='add'>+	size_t namlen = NAMLEN(dp);</div><div class='add'>+	VALUE path;</div><div class='add'>+</div><div class='add'>+	if (children_only &amp;&amp; name[0] == '.') {</div><div class='add'>+	    if (namlen == 1) continue; /* current directory */</div><div class='add'>+	    if (namlen == 2 &amp;&amp; name[1] == '.') continue; /* parent directory */</div><div class='add'>+	}</div><div class='add'>+#if NORMALIZE_UTF8PATH</div><div class='add'>+	if (norm_p &amp;&amp; has_nonascii(name, namlen) &amp;&amp;</div><div class='add'>+	    !NIL_P(path = rb_str_normalize_ospath(name, namlen))) {</div><div class='add'>+	    path = rb_external_str_with_enc(path, dirp-&gt;enc);</div><div class='add'>+	}</div><div class='add'>+	else</div><div class='add'>+#endif</div><div class='add'>+	path = rb_external_str_new_with_enc(name, namlen, dirp-&gt;enc);</div><div class='add'>+	(*each)(arg, path);</div><div class='ctx'> 	if (dirp-&gt;dir == NULL) dir_closed();</div><div class='ctx'>     }</div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_TELLDIR</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.pos =&gt; integer</div><div class='del'>- *     dir.tell =&gt; integer</div><div class='add'>+ *     dir.pos -&gt; integer</div><div class='add'>+ *     dir.tell -&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the current position in &lt;em&gt;dir&lt;/em&gt;. See also</div><div class='ctx'>  *  &lt;code&gt;Dir#seek&lt;/code&gt;.</div><div class='hunk'>@@ -585,24 +875,23 @@ dir_each(dir)</div><div class='ctx'>  *     d.tell   #=&gt; 12</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_tell(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_tell(VALUE dir)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_TELLDIR</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'>     long pos;</div><div class='ctx'> </div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     pos = telldir(dirp-&gt;dir);</div><div class='ctx'>     return rb_int2inum(pos);</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='del'>-    rb_notimplement();</div><div class='add'>+#define dir_tell rb_f_notimplement</div><div class='ctx'> #endif</div><div class='del'>-}</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_SEEKDIR</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.seek( integer ) =&gt; dir</div><div class='add'>+ *     dir.seek( integer ) -&gt; dir</div><div class='ctx'>  *</div><div class='ctx'>  *  Seeks to a particular location in &lt;em&gt;dir&lt;/em&gt;. &lt;i&gt;integer&lt;/i&gt;</div><div class='ctx'>  *  must be a value returned by &lt;code&gt;Dir#tell&lt;/code&gt;.</div><div class='hunk'>@@ -615,24 +904,23 @@ dir_tell(dir)</div><div class='ctx'>  *     d.read                   #=&gt; ".."</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_seek(dir, pos)</div><div class='del'>-    VALUE dir, pos;</div><div class='add'>+dir_seek(VALUE dir, VALUE pos)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='del'>-    off_t p = NUM2OFFT(pos);</div><div class='add'>+    long p = NUM2LONG(pos);</div><div class='ctx'> </div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='del'>-#ifdef HAVE_SEEKDIR</div><div class='ctx'>     seekdir(dirp-&gt;dir, p);</div><div class='ctx'>     return dir;</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='del'>-    rb_notimplement();</div><div class='add'>+#define dir_seek rb_f_notimplement</div><div class='ctx'> #endif</div><div class='del'>-}</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_SEEKDIR</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.pos( integer ) =&gt; integer</div><div class='add'>+ *     dir.pos = integer  -&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  *  Synonym for &lt;code&gt;Dir#seek&lt;/code&gt;, but returns the position</div><div class='ctx'>  *  parameter.</div><div class='hunk'>@@ -645,16 +933,18 @@ dir_seek(dir, pos)</div><div class='ctx'>  *     d.read                   #=&gt; ".."</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_set_pos(dir, pos)</div><div class='del'>-    VALUE dir, pos;</div><div class='add'>+dir_set_pos(VALUE dir, VALUE pos)</div><div class='ctx'> {</div><div class='ctx'>     dir_seek(dir, pos);</div><div class='ctx'>     return pos;</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+#define dir_set_pos rb_f_notimplement</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.rewind =&gt; dir</div><div class='add'>+ *     dir.rewind -&gt; dir</div><div class='ctx'>  *</div><div class='ctx'>  *  Repositions &lt;em&gt;dir&lt;/em&gt; to the first entry.</div><div class='ctx'>  *</div><div class='hunk'>@@ -664,14 +954,10 @@ dir_set_pos(dir, pos)</div><div class='ctx'>  *     d.read     #=&gt; "."</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_rewind(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_rewind(VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'> </div><div class='del'>-    if (rb_safe_level() &gt;= 4 &amp;&amp; !OBJ_TAINTED(dir)) {</div><div class='del'>-	rb_raise(rb_eSecurityError, "Insecure: can't close");</div><div class='del'>-    }</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     rewinddir(dirp-&gt;dir);</div><div class='ctx'>     return dir;</div><div class='hunk'>@@ -679,33 +965,40 @@ dir_rewind(dir)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.close =&gt; nil</div><div class='add'>+ *     dir.close -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Closes the directory stream. Any further attempts to access</div><div class='del'>- *  &lt;em&gt;dir&lt;/em&gt; will raise an &lt;code&gt;IOError&lt;/code&gt;.</div><div class='add'>+ *  Closes the directory stream.</div><div class='add'>+ *  Calling this method on closed Dir object is ignored since Ruby 2.3.</div><div class='ctx'>  *</div><div class='ctx'>  *     d = Dir.new("testdir")</div><div class='ctx'>  *     d.close   #=&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_close(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_close(VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dirp;</div><div class='ctx'> </div><div class='del'>-    GetDIR(dir, dirp);</div><div class='add'>+    dirp = dir_get(dir);</div><div class='add'>+    if (!dirp-&gt;dir) return Qnil;</div><div class='ctx'>     closedir(dirp-&gt;dir);</div><div class='ctx'>     dirp-&gt;dir = NULL;</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void *</div><div class='add'>+nogvl_chdir(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const char *path = ptr;</div><div class='add'>+</div><div class='add'>+    return (void *)(VALUE)chdir(path);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='del'>-dir_chdir(path)</div><div class='del'>-    VALUE path;</div><div class='add'>+dir_chdir(VALUE path)</div><div class='ctx'> {</div><div class='del'>-    if (chdir(RSTRING(path)-&gt;ptr) &lt; 0)</div><div class='del'>-	rb_sys_fail(RSTRING(path)-&gt;ptr);</div><div class='add'>+    if (chdir(RSTRING_PTR(path)) &lt; 0)</div><div class='add'>+	rb_sys_fail_path(path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int chdir_blocking = 0;</div><div class='hunk'>@@ -717,11 +1010,10 @@ struct chdir_data {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-chdir_yield(args)</div><div class='del'>-    struct chdir_data *args;</div><div class='add'>+chdir_yield(struct chdir_data *args)</div><div class='ctx'> {</div><div class='ctx'>     dir_chdir(args-&gt;new_path);</div><div class='del'>-    args-&gt;done = Qtrue;</div><div class='add'>+    args-&gt;done = TRUE;</div><div class='ctx'>     chdir_blocking++;</div><div class='ctx'>     if (chdir_thread == Qnil)</div><div class='ctx'> 	chdir_thread = rb_thread_current();</div><div class='hunk'>@@ -729,8 +1021,7 @@ chdir_yield(args)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-chdir_restore(args)</div><div class='del'>-    struct chdir_data *args;</div><div class='add'>+chdir_restore(struct chdir_data *args)</div><div class='ctx'> {</div><div class='ctx'>     if (args-&gt;done) {</div><div class='ctx'> 	chdir_blocking--;</div><div class='hunk'>@@ -743,8 +1034,8 @@ chdir_restore(args)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.chdir( [ string] ) =&gt; 0</div><div class='del'>- *     Dir.chdir( [ string] ) {| path | block }  =&gt; anObject</div><div class='add'>+ *     Dir.chdir( [ string] ) -&gt; 0</div><div class='add'>+ *     Dir.chdir( [ string] ) {| path | block }  -&gt; anObject</div><div class='ctx'>  *</div><div class='ctx'>  *  Changes the current working directory of the process to the given</div><div class='ctx'>  *  string. When called without an argument, changes the directory to</div><div class='hunk'>@@ -781,16 +1072,13 @@ chdir_restore(args)</div><div class='ctx'>  *     /var/spool/mail</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_chdir(argc, argv, obj)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+dir_s_chdir(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE path = Qnil;</div><div class='ctx'> </div><div class='del'>-    rb_secure(2);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;path) == 1) {</div><div class='del'>-	SafeStringValue(path);</div><div class='add'>+	FilePathValue(path);</div><div class='add'>+	path = rb_str_encode_ospath(path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	const char *dist = getenv("HOME");</div><div class='hunk'>@@ -808,62 +1096,111 @@ dir_s_chdir(argc, argv, obj)</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='ctx'> 	struct chdir_data args;</div><div class='del'>-	char *cwd = my_getcwd();</div><div class='ctx'> </div><div class='del'>-	args.old_path = rb_tainted_str_new2(cwd); free(cwd);</div><div class='add'>+	args.old_path = rb_str_encode_ospath(rb_dir_getwd());</div><div class='ctx'> 	args.new_path = path;</div><div class='del'>-	args.done = Qfalse;</div><div class='add'>+	args.done = FALSE;</div><div class='ctx'> 	return rb_ensure(chdir_yield, (VALUE)&amp;args, chdir_restore, (VALUE)&amp;args);</div><div class='ctx'>     }</div><div class='del'>-    dir_chdir(path);</div><div class='add'>+    else {</div><div class='add'>+	char *p = RSTRING_PTR(path);</div><div class='add'>+	int r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_chdir, p,</div><div class='add'>+							RUBY_UBF_IO, 0);</div><div class='add'>+	if (r &lt; 0)</div><div class='add'>+	    rb_sys_fail_path(path);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef _WIN32</div><div class='add'>+VALUE</div><div class='add'>+rb_dir_getwd_ospath(void)</div><div class='add'>+{</div><div class='add'>+    char *path;</div><div class='add'>+    VALUE cwd;</div><div class='add'>+    VALUE path_guard;</div><div class='add'>+</div><div class='add'>+#undef RUBY_UNTYPED_DATA_WARNING</div><div class='add'>+#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='add'>+    path_guard = Data_Wrap_Struct((VALUE)0, NULL, RUBY_DEFAULT_FREE, NULL);</div><div class='add'>+    path = ruby_getcwd();</div><div class='add'>+    DATA_PTR(path_guard) = path;</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+    cwd = rb_str_normalize_ospath(path, strlen(path));</div><div class='add'>+    OBJ_TAINT(cwd);</div><div class='add'>+#else</div><div class='add'>+    cwd = rb_tainted_str_new2(path);</div><div class='add'>+#endif</div><div class='add'>+    DATA_PTR(path_guard) = 0;</div><div class='add'>+</div><div class='add'>+    xfree(path);</div><div class='add'>+    return cwd;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_dir_getwd(void)</div><div class='add'>+{</div><div class='add'>+    rb_encoding *fs = rb_filesystem_encoding();</div><div class='add'>+    int fsenc = rb_enc_to_index(fs);</div><div class='add'>+    VALUE cwd = rb_dir_getwd_ospath();</div><div class='add'>+</div><div class='add'>+    switch (fsenc) {</div><div class='add'>+      case ENCINDEX_US_ASCII:</div><div class='add'>+	fsenc = ENCINDEX_ASCII;</div><div class='add'>+      case ENCINDEX_ASCII:</div><div class='add'>+	break;</div><div class='add'>+#if defined _WIN32 || defined __APPLE__</div><div class='add'>+      default:</div><div class='add'>+	return rb_str_conv_enc(cwd, NULL, fs);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    return rb_enc_associate_index(cwd, fsenc);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.getwd =&gt; string</div><div class='del'>- *     Dir.pwd =&gt; string</div><div class='add'>+ *     Dir.getwd -&gt; string</div><div class='add'>+ *     Dir.pwd -&gt; string</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the path to the current working directory of this process as</div><div class='ctx'>  *  a string.</div><div class='ctx'>  *</div><div class='ctx'>  *     Dir.chdir("/tmp")   #=&gt; 0</div><div class='ctx'>  *     Dir.getwd           #=&gt; "/tmp"</div><div class='add'>+ *     Dir.pwd             #=&gt; "/tmp"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_getwd(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_s_getwd(VALUE dir)</div><div class='ctx'> {</div><div class='del'>-    char *path;</div><div class='del'>-    VALUE cwd;</div><div class='del'>-</div><div class='del'>-    rb_secure(4);</div><div class='del'>-    path = my_getcwd();</div><div class='del'>-    cwd = rb_tainted_str_new2(path);</div><div class='del'>-</div><div class='del'>-    free(path);</div><div class='del'>-    return cwd;</div><div class='add'>+    return rb_dir_getwd();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void check_dirname _((volatile VALUE *));</div><div class='del'>-static void</div><div class='del'>-check_dirname(dir)</div><div class='del'>-    volatile VALUE *dir;</div><div class='add'>+static VALUE</div><div class='add'>+check_dirname(VALUE dir)</div><div class='ctx'> {</div><div class='add'>+    VALUE d = dir;</div><div class='ctx'>     char *path, *pend;</div><div class='del'>-</div><div class='del'>-    SafeStringValue(*dir);</div><div class='del'>-    rb_secure(2);</div><div class='del'>-    path = RSTRING(*dir)-&gt;ptr;</div><div class='del'>-    if (path &amp;&amp; *(pend = rb_path_end(rb_path_skip_prefix(path)))) {</div><div class='del'>-	*dir = rb_str_new(path, pend - path);</div><div class='add'>+    long len;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+</div><div class='add'>+    FilePathValue(d);</div><div class='add'>+    enc = rb_enc_get(d);</div><div class='add'>+    RSTRING_GETMEM(d, path, len);</div><div class='add'>+    pend = path + len;</div><div class='add'>+    pend = rb_enc_path_end(rb_enc_path_skip_prefix(path, pend, enc), pend, enc);</div><div class='add'>+    if (pend - path &lt; len) {</div><div class='add'>+	d = rb_str_subseq(d, 0, pend - path);</div><div class='add'>+	StringValueCStr(d);</div><div class='ctx'>     }</div><div class='add'>+    return rb_str_encode_ospath(d);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if defined(HAVE_CHROOT)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.chroot( string ) =&gt; 0</div><div class='add'>+ *     Dir.chroot( string ) -&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  *  Changes this process's idea of the file system root. Only a</div><div class='ctx'>  *  privileged process may make this call. Not available on all</div><div class='hunk'>@@ -871,25 +1208,34 @@ check_dirname(dir)</div><div class='ctx'>  *  information.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_chroot(dir, path)</div><div class='del'>-    VALUE dir, path;</div><div class='add'>+dir_s_chroot(VALUE dir, VALUE path)</div><div class='ctx'> {</div><div class='del'>-#if defined(HAVE_CHROOT) &amp;&amp; !defined(__CHECKER__)</div><div class='del'>-    check_dirname(&amp;path);</div><div class='del'>-</div><div class='del'>-    if (chroot(RSTRING(path)-&gt;ptr) == -1)</div><div class='del'>-	rb_sys_fail(RSTRING(path)-&gt;ptr);</div><div class='add'>+    path = check_dirname(path);</div><div class='add'>+    if (chroot(RSTRING_PTR(path)) == -1)</div><div class='add'>+	rb_sys_fail_path(path);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='del'>-    rb_notimplement();</div><div class='del'>-    return Qnil;		/* not reached */</div><div class='add'>+#define dir_s_chroot rb_f_notimplement</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+struct mkdir_arg {</div><div class='add'>+    const char *path;</div><div class='add'>+    mode_t mode;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+nogvl_mkdir(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct mkdir_arg *m = ptr;</div><div class='add'>+</div><div class='add'>+    return (void *)(VALUE)mkdir(m-&gt;path, m-&gt;mode);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.mkdir( string [, integer] ) =&gt; 0</div><div class='add'>+ *     Dir.mkdir( string [, integer] ) -&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  *  Makes a new directory named by &lt;i&gt;string&lt;/i&gt;, with permissions</div><div class='ctx'>  *  specified by the optional parameter &lt;i&gt;anInteger&lt;/i&gt;. The</div><div class='hunk'>@@ -899,149 +1245,333 @@ dir_s_chroot(dir, path)</div><div class='ctx'>  *  also the discussion of permissions in the class documentation for</div><div class='ctx'>  *  &lt;code&gt;File&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='add'>+ *    Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=&gt; 0</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_mkdir(argc, argv, obj)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+dir_s_mkdir(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    struct mkdir_arg m;</div><div class='ctx'>     VALUE path, vmode;</div><div class='del'>-    int mode;</div><div class='add'>+    int r;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;path, &amp;vmode) == 2) {</div><div class='del'>-	mode = NUM2INT(vmode);</div><div class='add'>+	m.mode = NUM2MODET(vmode);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	mode = 0777;</div><div class='add'>+	m.mode = 0777;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    check_dirname(&amp;path);</div><div class='del'>-    if (mkdir(RSTRING(path)-&gt;ptr, mode) == -1)</div><div class='del'>-	rb_sys_fail(RSTRING(path)-&gt;ptr);</div><div class='add'>+    path = check_dirname(path);</div><div class='add'>+    m.path = RSTRING_PTR(path);</div><div class='add'>+    r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_mkdir, &amp;m, RUBY_UBF_IO, 0);</div><div class='add'>+    if (r &lt; 0)</div><div class='add'>+	rb_sys_fail_path(path);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void *</div><div class='add'>+nogvl_rmdir(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const char *path = ptr;</div><div class='add'>+</div><div class='add'>+    return (void *)(VALUE)rmdir(path);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.delete( string ) =&gt; 0</div><div class='del'>- *     Dir.rmdir( string ) =&gt; 0</div><div class='del'>- *     Dir.unlink( string ) =&gt; 0</div><div class='add'>+ *     Dir.delete( string ) -&gt; 0</div><div class='add'>+ *     Dir.rmdir( string ) -&gt; 0</div><div class='add'>+ *     Dir.unlink( string ) -&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  *  Deletes the named directory. Raises a subclass of</div><div class='ctx'>  *  &lt;code&gt;SystemCallError&lt;/code&gt; if the directory isn't empty.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_rmdir(obj, dir)</div><div class='del'>-    VALUE obj, dir;</div><div class='add'>+dir_s_rmdir(VALUE obj, VALUE dir)</div><div class='ctx'> {</div><div class='del'>-    check_dirname(&amp;dir);</div><div class='del'>-    if (rmdir(RSTRING(dir)-&gt;ptr) &lt; 0)</div><div class='del'>-	rb_sys_fail(RSTRING(dir)-&gt;ptr);</div><div class='add'>+    const char *p;</div><div class='add'>+    int r;</div><div class='add'>+</div><div class='add'>+    dir = check_dirname(dir);</div><div class='add'>+    p = RSTRING_PTR(dir);</div><div class='add'>+    r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_rmdir, (void *)p, RUBY_UBF_IO, 0);</div><div class='add'>+    if (r &lt; 0)</div><div class='add'>+	rb_sys_fail_path(dir);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct warning_args {</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+    const char *func;</div><div class='add'>+#endif</div><div class='add'>+    const char *mesg;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+#define sys_enc_warning_in(func, mesg, enc) sys_enc_warning(mesg, enc)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+sys_warning_1(VALUE mesg)</div><div class='add'>+{</div><div class='add'>+    const struct warning_args *arg = (struct warning_args *)mesg;</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+    rb_sys_enc_warning(arg-&gt;enc, "%s: %s", arg-&gt;func, arg-&gt;mesg);</div><div class='add'>+#else</div><div class='add'>+    rb_sys_enc_warning(arg-&gt;enc, "%s", arg-&gt;mesg);</div><div class='add'>+#endif</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='del'>-sys_warning_1(mesg)</div><div class='del'>-    const char* mesg;</div><div class='add'>+sys_enc_warning_in(const char *func, const char *mesg, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    rb_sys_warning("%s", mesg);</div><div class='add'>+    struct warning_args arg;</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+    arg.func = func;</div><div class='add'>+#endif</div><div class='add'>+    arg.mesg = mesg;</div><div class='add'>+    arg.enc = enc;</div><div class='add'>+    rb_protect(sys_warning_1, (VALUE)&amp;arg, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define GLOB_VERBOSE	(1UL &lt;&lt; (sizeof(int) * CHAR_BIT - 1))</div><div class='del'>-#define sys_warning(val) \</div><div class='del'>-    (void)((flags &amp; GLOB_VERBOSE) &amp;&amp; rb_protect((VALUE (*)_((VALUE)))sys_warning_1, (VALUE)(val), 0))</div><div class='add'>+#define GLOB_VERBOSE	(1U &lt;&lt; (sizeof(int) * CHAR_BIT - 1))</div><div class='add'>+#define sys_warning(val, enc) \</div><div class='add'>+    ((flags &amp; GLOB_VERBOSE) ? sys_enc_warning_in(RUBY_FUNCTION_NAME_STRING, (val), (enc)) :(void)0)</div><div class='ctx'> </div><div class='del'>-#define GLOB_ALLOC(type) (type *)malloc(sizeof(type))</div><div class='del'>-#define GLOB_ALLOC_N(type, n) (type *)malloc(sizeof(type) * (n))</div><div class='del'>-#define GLOB_JUMP_TAG(status) ((status == -1) ? rb_memerror() : rb_jump_tag(status))</div><div class='add'>+#define GLOB_ALLOC(type) ((type *)malloc(sizeof(type)))</div><div class='add'>+#define GLOB_ALLOC_N(type, n) ((type *)malloc(sizeof(type) * (n)))</div><div class='add'>+#define GLOB_REALLOC(ptr, size) realloc((ptr), (size))</div><div class='add'>+#define GLOB_FREE(ptr) free(ptr)</div><div class='add'>+#define GLOB_JUMP_TAG(status) (((status) == -1) ? rb_memerror() : rb_jump_tag(status))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * ENOTDIR can be returned by stat(2) if a non-leaf element of the path</div><div class='ctx'>  * is not a directory.</div><div class='ctx'>  */</div><div class='del'>-#define to_be_ignored(e) ((e) == ENOENT || (e) == ENOTDIR)</div><div class='add'>+ALWAYS_INLINE(static int to_be_ignored(int e));</div><div class='add'>+static inline int</div><div class='add'>+to_be_ignored(int e)</div><div class='add'>+{</div><div class='add'>+    return e == ENOENT || e == ENOTDIR;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#define STAT(p, s)	rb_w32_ustati128((p), (s))</div><div class='add'>+#undef lstat</div><div class='add'>+#define lstat(p, s)	rb_w32_ulstati128((p), (s))</div><div class='add'>+#else</div><div class='add'>+#define STAT(p, s)	stat((p), (s))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+typedef int ruby_glob_errfunc(const char*, VALUE, const void*, int);</div><div class='add'>+typedef struct {</div><div class='add'>+    ruby_glob_func *match;</div><div class='add'>+    ruby_glob_errfunc *error;</div><div class='add'>+} ruby_glob_funcs_t;</div><div class='ctx'> </div><div class='ctx'> /* System call with warning */</div><div class='ctx'> static int</div><div class='del'>-do_stat(const char *path, struct stat *pst, int flags)</div><div class='del'>-</div><div class='add'>+do_stat(int fd, const char *path, struct stat *pst, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    int ret = stat(path, pst);</div><div class='add'>+#if USE_OPENDIR_AT</div><div class='add'>+    int ret = fstatat(fd, path, pst, 0);</div><div class='add'>+#else</div><div class='add'>+    int ret = STAT(path, pst);</div><div class='add'>+#endif</div><div class='ctx'>     if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='del'>-	sys_warning(path);</div><div class='add'>+	sys_warning(path, enc);</div><div class='ctx'> </div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if defined HAVE_LSTAT || defined lstat || USE_OPENDIR_AT</div><div class='ctx'> static int</div><div class='del'>-do_lstat(const char *path, struct stat *pst, int flags)</div><div class='add'>+do_lstat(int fd, const char *path, struct stat *pst, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='add'>+#if USE_OPENDIR_AT</div><div class='add'>+    int ret = fstatat(fd, path, pst, AT_SYMLINK_NOFOLLOW);</div><div class='add'>+#else</div><div class='ctx'>     int ret = lstat(path, pst);</div><div class='add'>+#endif</div><div class='ctx'>     if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='del'>-	sys_warning(path);</div><div class='add'>+	sys_warning(path, enc);</div><div class='ctx'> </div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+#define do_lstat do_stat</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct opendir_at_arg {</div><div class='add'>+    int basefd;</div><div class='add'>+    const char *path;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+with_gvl_gc_for_fd(void *ptr)</div><div class='add'>+{</div><div class='add'>+    int *e = ptr;</div><div class='add'>+</div><div class='add'>+    return (void *)(rb_gc_for_fd(*e) ? Qtrue : Qfalse);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gc_for_fd_with_gvl(int e)</div><div class='add'>+{</div><div class='add'>+    if (vm_initialized)</div><div class='add'>+	return (int)(VALUE)rb_thread_call_with_gvl(with_gvl_gc_for_fd, &amp;e);</div><div class='add'>+    else</div><div class='add'>+	return rb_gc_for_fd(e) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+nogvl_opendir_at(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const struct opendir_at_arg *oaa = ptr;</div><div class='add'>+    DIR *dirp;</div><div class='add'>+</div><div class='add'>+#if USE_OPENDIR_AT</div><div class='add'>+    const int opendir_flags = (O_RDONLY|O_CLOEXEC|</div><div class='add'>+#  ifdef O_DIRECTORY</div><div class='add'>+			       O_DIRECTORY|</div><div class='add'>+#  endif /* O_DIRECTORY */</div><div class='add'>+			       0);</div><div class='add'>+    int fd = openat(oaa-&gt;basefd, oaa-&gt;path, opendir_flags);</div><div class='add'>+</div><div class='add'>+    dirp = fd &gt;= 0 ? fdopendir(fd) : 0;</div><div class='add'>+    if (!dirp) {</div><div class='add'>+	int e = errno;</div><div class='add'>+</div><div class='add'>+	switch (gc_for_fd_with_gvl(e)) {</div><div class='add'>+	  default:</div><div class='add'>+	    if (fd &lt; 0) fd = openat(oaa-&gt;basefd, oaa-&gt;path, opendir_flags);</div><div class='add'>+	    if (fd &gt;= 0) dirp = fdopendir(fd);</div><div class='add'>+	    if (dirp) return dirp;</div><div class='add'>+</div><div class='add'>+	    e = errno;</div><div class='add'>+	    /* fallthrough*/</div><div class='add'>+	  case 0:</div><div class='add'>+	    if (fd &gt;= 0) close(fd);</div><div class='add'>+	    errno = e;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#else  /* !USE_OPENDIR_AT */</div><div class='add'>+    dirp = opendir(oaa-&gt;path);</div><div class='add'>+    if (!dirp &amp;&amp; gc_for_fd_with_gvl(errno))</div><div class='add'>+	dirp = opendir(oaa-&gt;path);</div><div class='add'>+#endif /* !USE_OPENDIR_AT */</div><div class='add'>+</div><div class='add'>+    return dirp;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static DIR *</div><div class='del'>-do_opendir(const char *path, int flags)</div><div class='add'>+opendir_at(int basefd, const char *path)</div><div class='ctx'> {</div><div class='del'>-    DIR *dirp = opendir(path);</div><div class='del'>-    if (dirp == NULL &amp;&amp; !to_be_ignored(errno))</div><div class='del'>-	sys_warning(path);</div><div class='add'>+    struct opendir_at_arg oaa;</div><div class='add'>+</div><div class='add'>+    oaa.basefd = basefd;</div><div class='add'>+    oaa.path = path;</div><div class='add'>+</div><div class='add'>+    if (vm_initialized)</div><div class='add'>+	return rb_thread_call_without_gvl(nogvl_opendir_at, &amp;oaa, RUBY_UBF_IO, 0);</div><div class='add'>+    else</div><div class='add'>+	return nogvl_opendir_at(&amp;oaa);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static DIR *</div><div class='add'>+do_opendir(const int basefd, const char *path, int flags, rb_encoding *enc,</div><div class='add'>+	   ruby_glob_errfunc *errfunc, VALUE arg, int *status)</div><div class='add'>+{</div><div class='add'>+    DIR *dirp;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    VALUE tmp = 0;</div><div class='add'>+    if (!fundamental_encoding_p(enc)) {</div><div class='add'>+	tmp = rb_enc_str_new(path, strlen(path), enc);</div><div class='add'>+	tmp = rb_str_encode_ospath(tmp);</div><div class='add'>+	path = RSTRING_PTR(tmp);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    dirp = opendir_at(basefd, path);</div><div class='add'>+    if (!dirp) {</div><div class='add'>+	int e = errno;</div><div class='add'>+</div><div class='add'>+	*status = 0;</div><div class='add'>+	if (!to_be_ignored(e)) {</div><div class='add'>+	    if (errfunc) {</div><div class='add'>+		*status = (*errfunc)(path, arg, enc, e);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		sys_warning(path, enc);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    if (tmp) rb_str_resize(tmp, 0); /* GC guard */</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     return dirp;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Globing pattern */</div><div class='add'>+enum glob_pattern_type { PLAIN, ALPHA, MAGICAL, RECURSIVE, MATCH_ALL, MATCH_DIR };</div><div class='add'>+</div><div class='ctx'> /* Return nonzero if S has any special globbing chars in it.  */</div><div class='del'>-static int</div><div class='del'>-has_magic(s, flags)</div><div class='del'>-    const char *s;</div><div class='del'>-    int flags;</div><div class='add'>+static enum glob_pattern_type</div><div class='add'>+has_magic(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='del'>-    const int nocase = flags &amp; FNM_CASEFOLD;</div><div class='add'>+    int hasalpha = 0;</div><div class='ctx'> </div><div class='del'>-    register const char *p = s;</div><div class='ctx'>     register char c;</div><div class='ctx'> </div><div class='del'>-    while (c = *p++) {</div><div class='add'>+    while (p &lt; pend &amp;&amp; (c = *p++) != 0) {</div><div class='ctx'> 	switch (c) {</div><div class='ctx'> 	  case '*':</div><div class='ctx'> 	  case '?':</div><div class='ctx'> 	  case '[':</div><div class='del'>-	    return 1;</div><div class='add'>+	    return MAGICAL;</div><div class='ctx'> </div><div class='ctx'> 	  case '\\':</div><div class='del'>-	    if (escape &amp;&amp; !(c = *p++))</div><div class='del'>-		return 0;</div><div class='del'>-	    continue;</div><div class='add'>+	    if (escape &amp;&amp; p++ &gt;= pend)</div><div class='add'>+		continue;</div><div class='add'>+	    break;</div><div class='ctx'> </div><div class='add'>+#ifdef _WIN32</div><div class='add'>+	  case '.':</div><div class='add'>+	    break;</div><div class='add'>+</div><div class='add'>+	  case '~':</div><div class='add'>+	    hasalpha = 1;</div><div class='add'>+	    break;</div><div class='add'>+#endif</div><div class='ctx'> 	  default:</div><div class='del'>-	    if (!FNM_SYSCASE &amp;&amp; ISALPHA(c) &amp;&amp; nocase)</div><div class='del'>-		return 1;</div><div class='add'>+	    if (IS_WIN32 || ISALPHA(c)) {</div><div class='add'>+		hasalpha = 1;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	p = Next(p-1);</div><div class='add'>+	p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return 0;</div><div class='add'>+    return hasalpha ? ALPHA : PLAIN;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Find separator in globbing pattern. */</div><div class='ctx'> static char *</div><div class='del'>-find_dirsep(const char *s, int flags)</div><div class='add'>+find_dirsep(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='ctx'> </div><div class='del'>-    register const char *p = s;</div><div class='ctx'>     register char c;</div><div class='ctx'>     int open = 0;</div><div class='ctx'> </div><div class='del'>-    while (c = *p++) {</div><div class='add'>+    while ((c = *p++) != 0) {</div><div class='ctx'> 	switch (c) {</div><div class='ctx'> 	  case '[':</div><div class='ctx'> 	    open = 1;</div><div class='hunk'>@@ -1061,16 +1591,15 @@ find_dirsep(const char *s, int flags)</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	p = Next(p-1);</div><div class='add'>+	p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return (char *)p-1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Remove escaping backslashes */</div><div class='del'>-static void</div><div class='del'>-remove_backslashes(p)</div><div class='del'>-    char *p;</div><div class='add'>+static char *</div><div class='add'>+remove_backslashes(char *p, register const char *pend, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     char *t = p;</div><div class='ctx'>     char *s = p;</div><div class='hunk'>@@ -1083,17 +1612,16 @@ remove_backslashes(p)</div><div class='ctx'> 	    s = ++p;</div><div class='ctx'> 	    if (!*p) break;</div><div class='ctx'> 	}</div><div class='del'>-	Inc(p);</div><div class='add'>+	Inc(p, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (*p++);</div><div class='ctx'> </div><div class='ctx'>     if (t != s)</div><div class='ctx'> 	memmove(t, s, p - s); /* move '\0' too */</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-/* Globing pattern */</div><div class='del'>-enum glob_pattern_type { PLAIN, MAGICAL, RECURSIVE, MATCH_ALL, MATCH_DIR };</div><div class='add'>+    return p;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> struct glob_pattern {</div><div class='ctx'>     char *str;</div><div class='hunk'>@@ -1104,31 +1632,44 @@ struct glob_pattern {</div><div class='ctx'> static void glob_free_pattern(struct glob_pattern *list);</div><div class='ctx'> </div><div class='ctx'> static struct glob_pattern *</div><div class='del'>-glob_make_pattern(const char *p, int flags)</div><div class='add'>+glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_pattern *list, *tmp, **tail = &amp;list;</div><div class='ctx'>     int dirsep = 0; /* pattern is terminated with '/' */</div><div class='add'>+    int recursive = 0;</div><div class='ctx'> </div><div class='del'>-    while (*p) {</div><div class='add'>+    while (p &lt; e &amp;&amp; *p) {</div><div class='ctx'> 	tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='ctx'> 	if (!tmp) goto error;</div><div class='del'>-	if (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='add'>+	if (p + 2 &lt; e &amp;&amp; p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='ctx'> 	    /* fold continuous RECURSIVEs (needed in glob_helper) */</div><div class='del'>-	    do { p += 3; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='add'>+	    do { p += 3; while (*p == '/') p++; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='ctx'> 	    tmp-&gt;type = RECURSIVE;</div><div class='ctx'> 	    tmp-&gt;str = 0;</div><div class='ctx'> 	    dirsep = 1;</div><div class='add'>+	    recursive = 1;</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    const char *m = find_dirsep(p, flags);</div><div class='del'>-	    char *buf = GLOB_ALLOC_N(char, m-p+1);</div><div class='add'>+	    const char *m = find_dirsep(p, e, flags, enc);</div><div class='add'>+	    const enum glob_pattern_type magic = has_magic(p, m, flags, enc);</div><div class='add'>+	    const enum glob_pattern_type non_magic = (USE_NAME_ON_FS || FNM_SYSCASE) ? PLAIN : ALPHA;</div><div class='add'>+	    char *buf;</div><div class='add'>+</div><div class='add'>+	    if (!(FNM_SYSCASE || magic &gt; non_magic) &amp;&amp; !recursive &amp;&amp; *m) {</div><div class='add'>+		const char *m2;</div><div class='add'>+		while (has_magic(m+1, m2 = find_dirsep(m+1, e, flags, enc), flags, enc) &lt;= non_magic &amp;&amp;</div><div class='add'>+		       *m2) {</div><div class='add'>+		    m = m2;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    buf = GLOB_ALLOC_N(char, m-p+1);</div><div class='ctx'> 	    if (!buf) {</div><div class='del'>-		free(tmp);</div><div class='add'>+		GLOB_FREE(tmp);</div><div class='ctx'> 		goto error;</div><div class='ctx'> 	    }</div><div class='ctx'> 	    memcpy(buf, p, m-p);</div><div class='ctx'> 	    buf[m-p] = '\0';</div><div class='del'>-	    tmp-&gt;type = has_magic(buf, flags) ? MAGICAL : PLAIN;</div><div class='add'>+	    tmp-&gt;type = magic &gt; MAGICAL ? MAGICAL : magic &gt; non_magic ? magic : PLAIN;</div><div class='ctx'> 	    tmp-&gt;str = buf;</div><div class='ctx'> 	    if (*m) {</div><div class='ctx'> 		dirsep = 1;</div><div class='hunk'>@@ -1165,80 +1706,309 @@ glob_free_pattern(struct glob_pattern *list)</div><div class='ctx'> 	struct glob_pattern *tmp = list;</div><div class='ctx'> 	list = list-&gt;next;</div><div class='ctx'> 	if (tmp-&gt;str)</div><div class='del'>-	    free(tmp-&gt;str);</div><div class='del'>-	free(tmp);</div><div class='add'>+	    GLOB_FREE(tmp-&gt;str);</div><div class='add'>+	GLOB_FREE(tmp);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static char *</div><div class='del'>-join_path(const char *path, int dirsep, const char *name)</div><div class='add'>+join_path(const char *path, size_t len, int dirsep, const char *name, size_t namlen)</div><div class='ctx'> {</div><div class='del'>-    long len = strlen(path);</div><div class='del'>-    char *buf = GLOB_ALLOC_N(char, len+strlen(name)+(dirsep?1:0)+1);</div><div class='add'>+    char *buf = GLOB_ALLOC_N(char, len+namlen+(dirsep?1:0)+1);</div><div class='ctx'> </div><div class='ctx'>     if (!buf) return 0;</div><div class='ctx'>     memcpy(buf, path, len);</div><div class='ctx'>     if (dirsep) {</div><div class='del'>-	strcpy(buf+len, "/");</div><div class='del'>-	len++;</div><div class='add'>+	buf[len++] = '/';</div><div class='ctx'>     }</div><div class='del'>-    strcpy(buf+len, name);</div><div class='add'>+    memcpy(buf+len, name, namlen);</div><div class='add'>+    buf[len+namlen] = '\0';</div><div class='ctx'>     return buf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-enum answer { YES, NO, UNKNOWN };</div><div class='add'>+#ifdef HAVE_GETATTRLIST</div><div class='add'>+# if defined HAVE_FGETATTRLIST</div><div class='add'>+#   define is_case_sensitive(dirp, path) is_case_sensitive(dirp)</div><div class='add'>+# else</div><div class='add'>+#   define is_case_sensitive(dirp, path) is_case_sensitive(path)</div><div class='add'>+# endif</div><div class='add'>+static int</div><div class='add'>+is_case_sensitive(DIR *dirp, const char *path)</div><div class='add'>+{</div><div class='add'>+    struct {</div><div class='add'>+	u_int32_t length;</div><div class='add'>+	vol_capabilities_attr_t cap[1];</div><div class='add'>+    } __attribute__((aligned(4), packed)) attrbuf[1];</div><div class='add'>+    struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, 0, ATTR_VOL_INFO|ATTR_VOL_CAPABILITIES};</div><div class='add'>+    const vol_capabilities_attr_t *const cap = attrbuf[0].cap;</div><div class='add'>+    const int idx = VOL_CAPABILITIES_FORMAT;</div><div class='add'>+    const uint32_t mask = VOL_CAP_FMT_CASE_SENSITIVE;</div><div class='add'>+</div><div class='add'>+#   if defined HAVE_FGETATTRLIST</div><div class='add'>+    if (fgetattrlist(dirfd(dirp), &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))</div><div class='add'>+	return -1;</div><div class='add'>+#   else</div><div class='add'>+    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))</div><div class='add'>+	return -1;</div><div class='add'>+#   endif</div><div class='add'>+    if (!(cap-&gt;valid[idx] &amp; mask))</div><div class='add'>+	return -1;</div><div class='add'>+    return (cap-&gt;capabilities[idx] &amp; mask) != 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int flags, rb_pathtype_t *type)</div><div class='add'>+{</div><div class='add'>+    struct {</div><div class='add'>+	u_int32_t length;</div><div class='add'>+	attrreference_t ref[1];</div><div class='add'>+	fsobj_type_t objtype;</div><div class='add'>+	char path[MAXPATHLEN * 3];</div><div class='add'>+    } __attribute__((aligned(4), packed)) attrbuf[1];</div><div class='add'>+    struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_NAME|ATTR_CMN_OBJTYPE};</div><div class='add'>+    const attrreference_t *const ar = attrbuf[0].ref;</div><div class='add'>+    const char *name;</div><div class='add'>+    long len;</div><div class='add'>+    char *tmp;</div><div class='add'>+    IF_NORMALIZE_UTF8PATH(VALUE utf8str = Qnil);</div><div class='add'>+</div><div class='add'>+    *type = path_noent;</div><div class='add'>+    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW)) {</div><div class='add'>+	if (!to_be_ignored(errno))</div><div class='add'>+	    sys_warning(path, enc);</div><div class='add'>+	return path;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    switch (attrbuf[0].objtype) {</div><div class='add'>+      case VREG: *type = path_regular; break;</div><div class='add'>+      case VDIR: *type = path_directory; break;</div><div class='add'>+      case VLNK: *type = path_symlink; break;</div><div class='add'>+      default: *type = path_exist; break;</div><div class='add'>+    }</div><div class='add'>+    name = (char *)ar + ar-&gt;attr_dataoffset;</div><div class='add'>+    len = (long)ar-&gt;attr_length - 1;</div><div class='add'>+    if (name + len &gt; (char *)attrbuf + sizeof(attrbuf))</div><div class='add'>+	return path;</div><div class='add'>+</div><div class='add'>+# if NORMALIZE_UTF8PATH</div><div class='add'>+    if (norm_p &amp;&amp; has_nonascii(name, len)) {</div><div class='add'>+	if (!NIL_P(utf8str = rb_str_normalize_ospath(name, len))) {</div><div class='add'>+	    RSTRING_GETMEM(utf8str, name, len);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+    tmp = GLOB_REALLOC(path, base + len + 1);</div><div class='add'>+    if (tmp) {</div><div class='add'>+	path = tmp;</div><div class='add'>+	memcpy(path + base, name, len);</div><div class='add'>+	path[base + len] = '\0';</div><div class='add'>+    }</div><div class='add'>+    IF_NORMALIZE_UTF8PATH(if (!NIL_P(utf8str)) rb_str_resize(utf8str, 0));</div><div class='add'>+    return path;</div><div class='add'>+}</div><div class='add'>+#elif defined _WIN32</div><div class='add'>+VALUE rb_w32_conv_from_wchar(const WCHAR *wstr, rb_encoding *enc);</div><div class='add'>+int rb_w32_reparse_symlink_p(const WCHAR *path);</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int flags, rb_pathtype_t *type)</div><div class='add'>+{</div><div class='add'>+    char *plainname = path;</div><div class='add'>+    volatile VALUE tmp = 0;</div><div class='add'>+    WIN32_FIND_DATAW fd;</div><div class='add'>+    WIN32_FILE_ATTRIBUTE_DATA fa;</div><div class='add'>+    WCHAR *wplain;</div><div class='add'>+    HANDLE h = INVALID_HANDLE_VALUE;</div><div class='add'>+    long wlen;</div><div class='add'>+    int e = 0;</div><div class='add'>+    if (!fundamental_encoding_p(enc)) {</div><div class='add'>+	tmp = rb_enc_str_new_cstr(plainname, enc);</div><div class='add'>+	tmp = rb_str_encode_ospath(tmp);</div><div class='add'>+	plainname = RSTRING_PTR(tmp);</div><div class='add'>+    }</div><div class='add'>+    wplain = rb_w32_mbstr_to_wstr(CP_UTF8, plainname, -1, &amp;wlen);</div><div class='add'>+    if (tmp) rb_str_resize(tmp, 0);</div><div class='add'>+    if (!wplain) return path;</div><div class='add'>+    if (GetFileAttributesExW(wplain, GetFileExInfoStandard, &amp;fa)) {</div><div class='add'>+	h = FindFirstFileW(wplain, &amp;fd);</div><div class='add'>+	e = rb_w32_map_errno(GetLastError());</div><div class='add'>+    }</div><div class='add'>+    if (fa.dwFileAttributes &amp; FILE_ATTRIBUTE_REPARSE_POINT) {</div><div class='add'>+	if (!rb_w32_reparse_symlink_p(wplain))</div><div class='add'>+	    fa.dwFileAttributes &amp;= ~FILE_ATTRIBUTE_REPARSE_POINT;</div><div class='add'>+    }</div><div class='add'>+    free(wplain);</div><div class='add'>+    if (h == INVALID_HANDLE_VALUE) {</div><div class='add'>+	*type = path_noent;</div><div class='add'>+	if (e &amp;&amp; !to_be_ignored(e)) {</div><div class='add'>+	    errno = e;</div><div class='add'>+	    sys_warning(path, enc);</div><div class='add'>+	}</div><div class='add'>+	return path;</div><div class='add'>+    }</div><div class='add'>+    FindClose(h);</div><div class='add'>+    *type =</div><div class='add'>+	(fa.dwFileAttributes &amp; FILE_ATTRIBUTE_REPARSE_POINT) ? path_symlink :</div><div class='add'>+	(fa.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) ? path_directory :</div><div class='add'>+	path_regular;</div><div class='add'>+    if (tmp) {</div><div class='add'>+	char *buf;</div><div class='add'>+	tmp = rb_w32_conv_from_wchar(fd.cFileName, enc);</div><div class='add'>+	wlen = RSTRING_LEN(tmp);</div><div class='add'>+	buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='add'>+	if (buf) {</div><div class='add'>+	    path = buf;</div><div class='add'>+	    memcpy(path + base, RSTRING_PTR(tmp), wlen);</div><div class='add'>+	    path[base + wlen] = 0;</div><div class='add'>+	}</div><div class='add'>+	rb_str_resize(tmp, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	char *utf8filename;</div><div class='add'>+	wlen = WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, NULL, 0, NULL, NULL);</div><div class='add'>+	utf8filename = GLOB_REALLOC(0, wlen);</div><div class='add'>+	if (utf8filename) {</div><div class='add'>+	    char *buf;</div><div class='add'>+	    WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, utf8filename, wlen, NULL, NULL);</div><div class='add'>+	    buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='add'>+	    if (buf) {</div><div class='add'>+		path = buf;</div><div class='add'>+		memcpy(path + base, utf8filename, wlen);</div><div class='add'>+		path[base + wlen] = 0;</div><div class='add'>+	    }</div><div class='add'>+	    GLOB_FREE(utf8filename);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return path;</div><div class='add'>+}</div><div class='add'>+#elif USE_NAME_ON_FS == USE_NAME_ON_FS_REAL_BASENAME</div><div class='add'>+# error not implemented</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef S_ISDIR</div><div class='add'>+#   define S_ISDIR(m) (((m) &amp; S_IFMT) == S_IFDIR)</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #ifndef S_ISLNK</div><div class='ctx'> #  ifndef S_IFLNK</div><div class='ctx'> #    define S_ISLNK(m) (0)</div><div class='ctx'> #  else</div><div class='del'>-#    define S_ISLNK(m) ((m &amp; S_IFMT) == S_IFLNK)</div><div class='add'>+#    define S_ISLNK(m) (((m) &amp; S_IFMT) == S_IFLNK)</div><div class='ctx'> #  endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef S_ISDIR</div><div class='del'>-#   define S_ISDIR(m) ((m &amp; S_IFMT) == S_IFDIR)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> struct glob_args {</div><div class='del'>-    void (*func) _((const char*, VALUE));</div><div class='del'>-    const char *c;</div><div class='del'>-    VALUE v;</div><div class='add'>+    void (*func)(const char *, VALUE, void *);</div><div class='add'>+    const char *path;</div><div class='add'>+    const char *base;</div><div class='add'>+    size_t baselen;</div><div class='add'>+    VALUE value;</div><div class='add'>+    rb_encoding *enc;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static VALUE glob_func_caller _((VALUE));</div><div class='add'>+#define glob_call_func(func, path, arg, enc) (*(func))((path), (arg), (void *)(enc))</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-glob_func_caller(val)</div><div class='del'>-    VALUE val;</div><div class='add'>+glob_func_caller(VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_args *args = (struct glob_args *)val;</div><div class='ctx'> </div><div class='del'>-    (*args-&gt;func)(args-&gt;c, args-&gt;v);</div><div class='add'>+    glob_call_func(args-&gt;func, args-&gt;path, args-&gt;value, args-&gt;enc);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define glob_call_func(func, path, arg) (*func)(path, arg)</div><div class='add'>+struct glob_error_args {</div><div class='add'>+    const char *path;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+    int error;</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-static int glob_helper _((const char *, int, enum answer, enum answer, struct glob_pattern **, struct glob_pattern **, int, ruby_glob_func *, VALUE));</div><div class='add'>+static VALUE</div><div class='add'>+glob_func_warning(VALUE val)</div><div class='add'>+{</div><div class='add'>+    struct glob_error_args *arg = (struct glob_error_args *)val;</div><div class='add'>+    rb_syserr_enc_warning(arg-&gt;error, arg-&gt;enc, "%s", arg-&gt;path);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+#if 0</div><div class='ctx'> static int</div><div class='del'>-glob_helper(path, dirsep, exist, isdir, beg, end, flags, func, arg)</div><div class='del'>-    const char *path;</div><div class='del'>-    int dirsep; /* '/' should be placed before appending child entry's name to 'path'. */</div><div class='del'>-    enum answer exist; /* Does 'path' indicate an existing entry? */</div><div class='del'>-    enum answer isdir; /* Does 'path' indicate a directory or a symlink to a directory? */</div><div class='del'>-    struct glob_pattern **beg;</div><div class='del'>-    struct glob_pattern **end;</div><div class='del'>-    int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+rb_glob_warning(const char *path, VALUE a, const void *enc, int error)</div><div class='add'>+{</div><div class='add'>+    int status;</div><div class='add'>+    struct glob_error_args args;</div><div class='add'>+</div><div class='add'>+    args.path = path;</div><div class='add'>+    args.enc = enc;</div><div class='add'>+    args.error = error;</div><div class='add'>+    rb_protect(glob_func_warning, (VALUE)&amp;args, &amp;status);</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+glob_func_error(VALUE val)</div><div class='add'>+{</div><div class='add'>+    struct glob_error_args *arg = (struct glob_error_args *)val;</div><div class='add'>+    VALUE path = rb_enc_str_new_cstr(arg-&gt;path, arg-&gt;enc);</div><div class='add'>+    rb_syserr_fail_str(arg-&gt;error, path);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_glob_error(const char *path, VALUE a, const void *enc, int error)</div><div class='add'>+{</div><div class='add'>+    int status;</div><div class='add'>+    struct glob_error_args args;</div><div class='add'>+    VALUE (*errfunc)(VALUE) = glob_func_error;</div><div class='add'>+</div><div class='add'>+    if (error == EACCES) {</div><div class='add'>+	errfunc = glob_func_warning;</div><div class='add'>+    }</div><div class='add'>+    args.path = path;</div><div class='add'>+    args.enc = enc;</div><div class='add'>+    args.error = error;</div><div class='add'>+    rb_protect(errfunc, (VALUE)&amp;args, &amp;status);</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+dirent_match(const char *pat, rb_encoding *enc, const char *name, const struct dirent *dp, int flags)</div><div class='add'>+{</div><div class='add'>+    if (fnmatch(pat, enc, name, flags) == 0) return 1;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    if (dp-&gt;d_altname &amp;&amp; (flags &amp; FNM_SHORTNAME)) {</div><div class='add'>+	if (fnmatch(pat, enc, dp-&gt;d_altname, flags) == 0) return 1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+glob_helper(</div><div class='add'>+    int fd,</div><div class='add'>+    const char *path,</div><div class='add'>+    size_t baselen,</div><div class='add'>+    size_t namelen,</div><div class='add'>+    int dirsep, /* '/' should be placed before appending child entry's name to 'path'. */</div><div class='add'>+    rb_pathtype_t pathtype, /* type of 'path' */</div><div class='add'>+    struct glob_pattern **beg,</div><div class='add'>+    struct glob_pattern **end,</div><div class='add'>+    int flags,</div><div class='add'>+    const ruby_glob_funcs_t *funcs,</div><div class='add'>+    VALUE arg,</div><div class='add'>+    rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct stat st;</div><div class='ctx'>     int status = 0;</div><div class='ctx'>     struct glob_pattern **cur, **new_beg, **new_end;</div><div class='ctx'>     int plain = 0, magical = 0, recursive = 0, match_all = 0, match_dir = 0;</div><div class='ctx'>     int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+    size_t pathlen = baselen + namelen;</div><div class='add'>+    const char *base = path;</div><div class='add'>+</div><div class='add'>+    if (fd != AT_FDCWD &amp;&amp; *(base += baselen) == '/') base++;</div><div class='ctx'> </div><div class='ctx'>     for (cur = beg; cur &lt; end; ++cur) {</div><div class='ctx'> 	struct glob_pattern *p = *cur;</div><div class='hunk'>@@ -1247,86 +2017,160 @@ glob_helper(path, dirsep, exist, isdir, beg, end, flags, func, arg)</div><div class='ctx'> 	    p = p-&gt;next;</div><div class='ctx'> 	}</div><div class='ctx'> 	switch (p-&gt;type) {</div><div class='del'>-	case PLAIN:</div><div class='add'>+	  case PLAIN:</div><div class='ctx'> 	    plain = 1;</div><div class='ctx'> 	    break;</div><div class='del'>-	case MAGICAL:</div><div class='add'>+	  case ALPHA:</div><div class='add'>+#if USE_NAME_ON_FS == USE_NAME_ON_FS_REAL_BASENAME</div><div class='add'>+	    plain = 1;</div><div class='add'>+#else</div><div class='ctx'> 	    magical = 1;</div><div class='add'>+#endif</div><div class='ctx'> 	    break;</div><div class='del'>-	case MATCH_ALL:</div><div class='add'>+	  case MAGICAL:</div><div class='add'>+	    magical = 2;</div><div class='add'>+	    break;</div><div class='add'>+	  case MATCH_ALL:</div><div class='ctx'> 	    match_all = 1;</div><div class='ctx'> 	    break;</div><div class='del'>-	case MATCH_DIR:</div><div class='add'>+	  case MATCH_DIR:</div><div class='ctx'> 	    match_dir = 1;</div><div class='ctx'> 	    break;</div><div class='del'>-	case RECURSIVE:</div><div class='add'>+	  case RECURSIVE:</div><div class='ctx'> 	    rb_bug("continuous RECURSIVEs");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (*path) {</div><div class='del'>-	if (match_all &amp;&amp; exist == UNKNOWN) {</div><div class='del'>-	    if (do_lstat(path, &amp;st, flags) == 0) {</div><div class='del'>-		exist = YES;</div><div class='del'>-		isdir = S_ISDIR(st.st_mode) ? YES : S_ISLNK(st.st_mode) ? UNKNOWN : NO;</div><div class='add'>+    if (*base) {</div><div class='add'>+	if (match_all &amp;&amp; pathtype == path_unknown) {</div><div class='add'>+	    if (do_lstat(fd, base, &amp;st, flags, enc) == 0) {</div><div class='add'>+		pathtype = IFTODT(st.st_mode);</div><div class='ctx'> 	    }</div><div class='ctx'> 	    else {</div><div class='del'>-		exist = NO;</div><div class='del'>-		isdir = NO;</div><div class='add'>+		pathtype = path_noent;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	if (match_dir &amp;&amp; isdir == UNKNOWN) {</div><div class='del'>-	    if (do_stat(path, &amp;st, flags) == 0) {</div><div class='del'>-		exist = YES;</div><div class='del'>-		isdir = S_ISDIR(st.st_mode) ? YES : NO;</div><div class='add'>+	if (match_dir &amp;&amp; (pathtype == path_unknown || pathtype == path_symlink)) {</div><div class='add'>+	    if (do_stat(fd, base, &amp;st, flags, enc) == 0) {</div><div class='add'>+		pathtype = IFTODT(st.st_mode);</div><div class='ctx'> 	    }</div><div class='ctx'> 	    else {</div><div class='del'>-		exist = NO;</div><div class='del'>-		isdir = NO;</div><div class='add'>+		pathtype = path_noent;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	if (match_all &amp;&amp; exist == YES) {</div><div class='del'>-	    status = glob_call_func(func, path, arg);</div><div class='add'>+	if (match_all &amp;&amp; pathtype &gt; path_noent) {</div><div class='add'>+	    const char *subpath = path + baselen + (baselen &amp;&amp; path[baselen] == '/');</div><div class='add'>+	    status = glob_call_func(funcs-&gt;match, subpath, arg, enc);</div><div class='ctx'> 	    if (status) return status;</div><div class='ctx'> 	}</div><div class='del'>-	if (match_dir &amp;&amp; isdir == YES) {</div><div class='del'>-	    char *tmp = join_path(path, dirsep, "");</div><div class='add'>+	if (match_dir &amp;&amp; pathtype == path_directory) {</div><div class='add'>+	    const char *subpath = path + baselen + (baselen &amp;&amp; path[baselen] == '/');</div><div class='add'>+	    char *tmp = join_path(subpath, namelen, dirsep, "", 0);</div><div class='ctx'> 	    if (!tmp) return -1;</div><div class='del'>-	    status = glob_call_func(func, tmp, arg);</div><div class='del'>-	    free(tmp);</div><div class='add'>+	    status = glob_call_func(funcs-&gt;match, tmp + (baselen ? dirsep : 0), arg, enc);</div><div class='add'>+	    GLOB_FREE(tmp);</div><div class='ctx'> 	    if (status) return status;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (exist == NO || isdir == NO) return 0;</div><div class='add'>+    if (pathtype == path_noent) return 0;</div><div class='ctx'> </div><div class='ctx'>     if (magical || recursive) {</div><div class='ctx'> 	struct dirent *dp;</div><div class='del'>-	DIR *dirp = do_opendir(*path ? path : ".", flags);</div><div class='del'>-	if (dirp == NULL) return 0;</div><div class='add'>+	DIR *dirp;</div><div class='add'>+# if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='add'>+	char *plainname = 0;</div><div class='add'>+# endif</div><div class='add'>+	IF_NORMALIZE_UTF8PATH(int norm_p);</div><div class='add'>+# if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='add'>+	if (cur + 1 == end &amp;&amp; (*cur)-&gt;type &lt;= ALPHA) {</div><div class='add'>+	    plainname = join_path(path, pathlen, dirsep, (*cur)-&gt;str, strlen((*cur)-&gt;str));</div><div class='add'>+	    if (!plainname) return -1;</div><div class='add'>+	    dirp = do_opendir(fd, plainname, flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='add'>+	    GLOB_FREE(plainname);</div><div class='add'>+	}</div><div class='add'>+	else</div><div class='add'>+# else</div><div class='add'>+	    ;</div><div class='add'>+# endif</div><div class='add'>+	dirp = do_opendir(fd, *base ? base : ".", flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='add'>+	if (dirp == NULL) {</div><div class='add'>+# if FNM_SYSCASE || NORMALIZE_UTF8PATH</div><div class='add'>+	    if ((magical &lt; 2) &amp;&amp; !recursive &amp;&amp; (errno == EACCES)) {</div><div class='add'>+		/* no read permission, fallback */</div><div class='add'>+		goto literally;</div><div class='add'>+	    }</div><div class='add'>+# endif</div><div class='add'>+	    return status;</div><div class='add'>+	}</div><div class='add'>+	IF_NORMALIZE_UTF8PATH(norm_p = need_normalization(dirp, *base ? base : "."));</div><div class='ctx'> </div><div class='del'>-	for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {</div><div class='del'>-	    char *buf = join_path(path, dirsep, dp-&gt;d_name);</div><div class='del'>-	    enum answer new_isdir = UNKNOWN;</div><div class='add'>+# if NORMALIZE_UTF8PATH</div><div class='add'>+	if (!(norm_p || magical || recursive)) {</div><div class='add'>+	    closedir(dirp);</div><div class='add'>+	    goto literally;</div><div class='add'>+	}</div><div class='add'>+# endif</div><div class='add'>+# ifdef HAVE_GETATTRLIST</div><div class='add'>+	if (is_case_sensitive(dirp, path) == 0)</div><div class='add'>+	    flags |= FNM_CASEFOLD;</div><div class='add'>+# endif</div><div class='add'>+	while ((dp = READDIR(dirp, enc)) != NULL) {</div><div class='add'>+	    char *buf;</div><div class='add'>+	    rb_pathtype_t new_pathtype = path_unknown;</div><div class='add'>+	    const char *name;</div><div class='add'>+	    size_t namlen;</div><div class='add'>+	    int dotfile = 0;</div><div class='add'>+	    IF_NORMALIZE_UTF8PATH(VALUE utf8str = Qnil);</div><div class='add'>+</div><div class='add'>+	    name = dp-&gt;d_name;</div><div class='add'>+	    namlen = NAMLEN(dp);</div><div class='add'>+	    if (recursive &amp;&amp; name[0] == '.') {</div><div class='add'>+		++dotfile;</div><div class='add'>+		if (namlen == 1) {</div><div class='add'>+		    /* unless DOTMATCH, skip current directories not to recurse infinitely */</div><div class='add'>+		    if (!(flags &amp; FNM_DOTMATCH)) continue;</div><div class='add'>+		    ++dotfile;</div><div class='add'>+		    new_pathtype = path_directory; /* force to skip stat/lstat */</div><div class='add'>+		}</div><div class='add'>+		else if (namlen == 2 &amp;&amp; name[1] == '.') {</div><div class='add'>+		    /* always skip parent directories not to recurse infinitely */</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='ctx'> </div><div class='add'>+# if NORMALIZE_UTF8PATH</div><div class='add'>+	    if (norm_p &amp;&amp; has_nonascii(name, namlen)) {</div><div class='add'>+		if (!NIL_P(utf8str = rb_str_normalize_ospath(name, namlen))) {</div><div class='add'>+		    RSTRING_GETMEM(utf8str, name, namlen);</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+# endif</div><div class='add'>+	    buf = join_path(path, pathlen, dirsep, name, namlen);</div><div class='add'>+	    IF_NORMALIZE_UTF8PATH(if (!NIL_P(utf8str)) rb_str_resize(utf8str, 0));</div><div class='ctx'> 	    if (!buf) {</div><div class='ctx'> 		status = -1;</div><div class='ctx'> 		break;</div><div class='ctx'> 	    }</div><div class='del'>-	    if (recursive &amp;&amp; strcmp(dp-&gt;d_name, ".") != 0 &amp;&amp; strcmp(dp-&gt;d_name, "..") != 0</div><div class='del'>-		&amp;&amp; fnmatch("*", dp-&gt;d_name, flags) == 0) {</div><div class='del'>-#ifndef _WIN32</div><div class='del'>-		if (do_lstat(buf, &amp;st, flags) == 0)</div><div class='del'>-		    new_isdir = S_ISDIR(st.st_mode) ? YES : S_ISLNK(st.st_mode) ? UNKNOWN : NO;</div><div class='del'>-		else</div><div class='del'>-		    new_isdir = NO;</div><div class='del'>-#else</div><div class='del'>-		new_isdir = dp-&gt;d_isdir ? (!dp-&gt;d_isrep ? YES : UNKNOWN) : NO;</div><div class='add'>+	    name = buf + pathlen + (dirsep != 0);</div><div class='add'>+#ifdef DT_UNKNOWN</div><div class='add'>+	    if (dp-&gt;d_type != DT_UNKNOWN) {</div><div class='add'>+		/* Got it. We need no more lstat. */</div><div class='add'>+		new_pathtype = dp-&gt;d_type;</div><div class='add'>+	    }</div><div class='ctx'> #endif</div><div class='add'>+	    if (recursive &amp;&amp; dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1) &amp;&amp;</div><div class='add'>+		new_pathtype == path_unknown) {</div><div class='add'>+		/* RECURSIVE never match dot files unless FNM_DOTMATCH is set */</div><div class='add'>+		if (do_lstat(fd, buf, &amp;st, flags, enc) == 0)</div><div class='add'>+		    new_pathtype = IFTODT(st.st_mode);</div><div class='add'>+		else</div><div class='add'>+		    new_pathtype = path_noent;</div><div class='ctx'> 	    }</div><div class='ctx'> </div><div class='ctx'> 	    new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, (end - beg) * 2);</div><div class='ctx'> 	    if (!new_beg) {</div><div class='add'>+		GLOB_FREE(buf);</div><div class='ctx'> 		status = -1;</div><div class='ctx'> 		break;</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -1334,19 +2178,35 @@ glob_helper(path, dirsep, exist, isdir, beg, end, flags, func, arg)</div><div class='ctx'> 	    for (cur = beg; cur &lt; end; ++cur) {</div><div class='ctx'> 		struct glob_pattern *p = *cur;</div><div class='ctx'> 		if (p-&gt;type == RECURSIVE) {</div><div class='del'>-		    if (new_isdir == YES) /* not symlink but real directory */</div><div class='del'>-			*new_end++ = p; /* append recursive pattern */</div><div class='add'>+		    if (new_pathtype == path_directory || /* not symlink but real directory */</div><div class='add'>+			new_pathtype == path_exist) {</div><div class='add'>+			if (dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1))</div><div class='add'>+			    *new_end++ = p; /* append recursive pattern */</div><div class='add'>+		    }</div><div class='ctx'> 		    p = p-&gt;next; /* 0 times recursion */</div><div class='ctx'> 		}</div><div class='del'>-		if (p-&gt;type == PLAIN || p-&gt;type == MAGICAL) {</div><div class='del'>-		    if (fnmatch(p-&gt;str, dp-&gt;d_name, flags) == 0)</div><div class='add'>+		switch (p-&gt;type) {</div><div class='add'>+		  case ALPHA:</div><div class='add'>+# if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='add'>+		    if (plainname) {</div><div class='add'>+			*new_end++ = p-&gt;next;</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+# endif</div><div class='add'>+		  case PLAIN:</div><div class='add'>+		  case MAGICAL:</div><div class='add'>+		    if (dirent_match(p-&gt;str, enc, name, dp, flags))</div><div class='ctx'> 			*new_end++ = p-&gt;next;</div><div class='add'>+		  default:</div><div class='add'>+		    break;</div><div class='ctx'> 		}</div><div class='ctx'> 	    }</div><div class='ctx'> </div><div class='del'>-	    status = glob_helper(buf, 1, YES, new_isdir, new_beg, new_end, flags, func, arg);</div><div class='del'>-	    free(buf);</div><div class='del'>-	    free(new_beg);</div><div class='add'>+	    status = glob_helper(fd, buf, baselen, name - buf - baselen + namlen, 1,</div><div class='add'>+				 new_pathtype, new_beg, new_end,</div><div class='add'>+				 flags, funcs, arg, enc);</div><div class='add'>+	    GLOB_FREE(buf);</div><div class='add'>+	    GLOB_FREE(new_beg);</div><div class='ctx'> 	    if (status) break;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='hunk'>@@ -1355,168 +2215,180 @@ glob_helper(path, dirsep, exist, isdir, beg, end, flags, func, arg)</div><div class='ctx'>     else if (plain) {</div><div class='ctx'> 	struct glob_pattern **copy_beg, **copy_end, **cur2;</div><div class='ctx'> </div><div class='add'>+# if FNM_SYSCASE || NORMALIZE_UTF8PATH</div><div class='add'>+      literally:</div><div class='add'>+# endif</div><div class='ctx'> 	copy_beg = copy_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='ctx'> 	if (!copy_beg) return -1;</div><div class='ctx'> 	for (cur = beg; cur &lt; end; ++cur)</div><div class='del'>-	    *copy_end++ = (*cur)-&gt;type == PLAIN ? *cur : 0;</div><div class='add'>+	    *copy_end++ = (*cur)-&gt;type &lt;= ALPHA ? *cur : 0;</div><div class='ctx'> </div><div class='ctx'> 	for (cur = copy_beg; cur &lt; copy_end; ++cur) {</div><div class='ctx'> 	    if (*cur) {</div><div class='add'>+		rb_pathtype_t new_pathtype = path_unknown;</div><div class='ctx'> 		char *buf;</div><div class='ctx'> 		char *name;</div><div class='del'>-		name = GLOB_ALLOC_N(char, strlen((*cur)-&gt;str) + 1);</div><div class='add'>+		size_t len = strlen((*cur)-&gt;str) + 1;</div><div class='add'>+		name = GLOB_ALLOC_N(char, len);</div><div class='ctx'> 		if (!name) {</div><div class='ctx'> 		    status = -1;</div><div class='ctx'> 		    break;</div><div class='ctx'> 		}</div><div class='del'>-		strcpy(name, (*cur)-&gt;str);</div><div class='del'>-		if (escape) remove_backslashes(name);</div><div class='add'>+		memcpy(name, (*cur)-&gt;str, len);</div><div class='add'>+		if (escape)</div><div class='add'>+		    len = remove_backslashes(name, name+len-1, enc) - name;</div><div class='ctx'> </div><div class='ctx'> 		new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='ctx'> 		if (!new_beg) {</div><div class='del'>-		    free(name);</div><div class='add'>+		    GLOB_FREE(name);</div><div class='ctx'> 		    status = -1;</div><div class='ctx'> 		    break;</div><div class='ctx'> 		}</div><div class='ctx'> 		*new_end++ = (*cur)-&gt;next;</div><div class='ctx'> 		for (cur2 = cur + 1; cur2 &lt; copy_end; ++cur2) {</div><div class='del'>-		    if (*cur2 &amp;&amp; fnmatch((*cur2)-&gt;str, name, flags) == 0) {</div><div class='add'>+		    if (*cur2 &amp;&amp; fnmatch((*cur2)-&gt;str, enc, name, flags) == 0) {</div><div class='ctx'> 			*new_end++ = (*cur2)-&gt;next;</div><div class='ctx'> 			*cur2 = 0;</div><div class='ctx'> 		    }</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='del'>-		buf = join_path(path, dirsep, name);</div><div class='del'>-		free(name);</div><div class='add'>+		buf = join_path(path, pathlen, dirsep, name, len);</div><div class='add'>+		GLOB_FREE(name);</div><div class='ctx'> 		if (!buf) {</div><div class='del'>-		    free(new_beg);</div><div class='add'>+		    GLOB_FREE(new_beg);</div><div class='ctx'> 		    status = -1;</div><div class='ctx'> 		    break;</div><div class='ctx'> 		}</div><div class='del'>-		status = glob_helper(buf, 1, UNKNOWN, UNKNOWN, new_beg, new_end, flags, func, arg);</div><div class='del'>-		free(buf);</div><div class='del'>-		free(new_beg);</div><div class='add'>+#if USE_NAME_ON_FS == USE_NAME_ON_FS_REAL_BASENAME</div><div class='add'>+		if ((*cur)-&gt;type == ALPHA) {</div><div class='add'>+		    buf = replace_real_basename(buf, pathlen + (dirsep != 0), enc,</div><div class='add'>+						IF_NORMALIZE_UTF8PATH(1)+0,</div><div class='add'>+						flags, &amp;new_pathtype);</div><div class='add'>+		    if (!buf) break;</div><div class='add'>+		}</div><div class='add'>+#endif</div><div class='add'>+		status = glob_helper(fd, buf, baselen,</div><div class='add'>+				     namelen + strlen(buf + pathlen), 1,</div><div class='add'>+				     new_pathtype, new_beg, new_end,</div><div class='add'>+				     flags, funcs, arg, enc);</div><div class='add'>+		GLOB_FREE(buf);</div><div class='add'>+		GLOB_FREE(new_beg);</div><div class='ctx'> 		if (status) break;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	free(copy_beg);</div><div class='add'>+	GLOB_FREE(copy_beg);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ruby_glob0(path, flags, func, arg)</div><div class='del'>-    const char *path;</div><div class='del'>-    int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='add'>+	   const ruby_glob_funcs_t *funcs, VALUE arg,</div><div class='add'>+	   rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_pattern *list;</div><div class='ctx'>     const char *root, *start;</div><div class='ctx'>     char *buf;</div><div class='del'>-    int n;</div><div class='del'>-    int status;</div><div class='add'>+    size_t n, baselen = 0;</div><div class='add'>+    int status, dirsep = FALSE;</div><div class='ctx'> </div><div class='ctx'>     start = root = path;</div><div class='ctx'>     flags |= FNM_SYSCASE;</div><div class='ctx'> #if defined DOSISH</div><div class='del'>-    root = rb_path_skip_prefix(root);</div><div class='add'>+    root = rb_enc_path_skip_prefix(root, root + strlen(root), enc);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    if (root &amp;&amp; *root == '/') root++;</div><div class='add'>+    if (*root == '/') root++;</div><div class='ctx'> </div><div class='ctx'>     n = root - start;</div><div class='add'>+    if (!n &amp;&amp; base) {</div><div class='add'>+	n = strlen(base);</div><div class='add'>+	baselen = n;</div><div class='add'>+	start = base;</div><div class='add'>+	dirsep = TRUE;</div><div class='add'>+    }</div><div class='ctx'>     buf = GLOB_ALLOC_N(char, n + 1);</div><div class='ctx'>     if (!buf) return -1;</div><div class='ctx'>     MEMCPY(buf, start, char, n);</div><div class='ctx'>     buf[n] = '\0';</div><div class='ctx'> </div><div class='del'>-    list = glob_make_pattern(root, flags);</div><div class='add'>+    list = glob_make_pattern(root, root + strlen(root), flags, enc);</div><div class='ctx'>     if (!list) {</div><div class='del'>-	free(buf);</div><div class='add'>+	GLOB_FREE(buf);</div><div class='ctx'> 	return -1;</div><div class='ctx'>     }</div><div class='del'>-    status = glob_helper(buf, 0, UNKNOWN, UNKNOWN, &amp;list, &amp;list + 1, flags, func, arg);</div><div class='add'>+    status = glob_helper(fd, buf, baselen, n-baselen, dirsep,</div><div class='add'>+			 path_unknown, &amp;list, &amp;list + 1,</div><div class='add'>+			 flags, funcs, arg, enc);</div><div class='ctx'>     glob_free_pattern(list);</div><div class='del'>-    free(buf);</div><div class='add'>+    GLOB_FREE(buf);</div><div class='ctx'> </div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-ruby_glob(path, flags, func, arg)</div><div class='del'>-    const char *path;</div><div class='del'>-    int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+ruby_glob(const char *path, int flags, ruby_glob_func *func, VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    return ruby_glob0(path, flags &amp; ~GLOB_VERBOSE, func, arg);</div><div class='add'>+    ruby_glob_funcs_t funcs;</div><div class='add'>+    funcs.match = func;</div><div class='add'>+    funcs.error = NULL;</div><div class='add'>+    return ruby_glob0(path, AT_FDCWD, 0, flags &amp; ~GLOB_VERBOSE,</div><div class='add'>+		      &amp;funcs, arg, rb_ascii8bit_encoding());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int rb_glob_caller _((const char *, VALUE));</div><div class='del'>-</div><div class='ctx'> static int</div><div class='del'>-rb_glob_caller(path, a)</div><div class='del'>-    const char *path;</div><div class='del'>-    VALUE a;</div><div class='add'>+rb_glob_caller(const char *path, VALUE a, void *enc)</div><div class='ctx'> {</div><div class='ctx'>     int status;</div><div class='ctx'>     struct glob_args *args = (struct glob_args *)a;</div><div class='ctx'> </div><div class='del'>-    args-&gt;c = path;</div><div class='add'>+    args-&gt;path = path;</div><div class='ctx'>     rb_protect(glob_func_caller, a, &amp;status);</div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-rb_glob2(path, flags, func, arg)</div><div class='del'>-    const char *path;</div><div class='del'>-    int flags;</div><div class='del'>-    void (*func) _((const char *, VALUE));</div><div class='del'>-    VALUE arg;</div><div class='add'>+static const ruby_glob_funcs_t rb_glob_funcs = {</div><div class='add'>+    rb_glob_caller, rb_glob_error,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_glob(const char *path, void (*func)(const char *, VALUE, void *), VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_args args;</div><div class='add'>+    int status;</div><div class='ctx'> </div><div class='ctx'>     args.func = func;</div><div class='del'>-    args.v = arg;</div><div class='del'>-</div><div class='del'>-    if (flags &amp; FNM_SYSCASE) {</div><div class='del'>-	rb_warning("Dir.glob() ignores File::FNM_CASEFOLD");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ruby_glob0(path, flags | GLOB_VERBOSE, rb_glob_caller, (VALUE)&amp;args);</div><div class='del'>-}</div><div class='add'>+    args.value = arg;</div><div class='add'>+    args.enc = rb_ascii8bit_encoding();</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_glob(path, func, arg)</div><div class='del'>-    const char *path;</div><div class='del'>-    void (*func) _((const char*, VALUE));</div><div class='del'>-    VALUE arg;</div><div class='del'>-{</div><div class='del'>-    int status = rb_glob2(path, 0, func, arg);</div><div class='add'>+    status = ruby_glob0(path, AT_FDCWD, 0, GLOB_VERBOSE, &amp;rb_glob_funcs,</div><div class='add'>+			(VALUE)&amp;args, args.enc);</div><div class='ctx'>     if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void push_pattern _((const char* path, VALUE ary));</div><div class='ctx'> static void</div><div class='del'>-push_pattern(path, ary)</div><div class='del'>-    const char *path;</div><div class='del'>-    VALUE ary;</div><div class='add'>+push_pattern(const char *path, VALUE ary, void *enc)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_push(ary, rb_tainted_str_new2(path));</div><div class='add'>+#if defined _WIN32 || defined __APPLE__</div><div class='add'>+    VALUE name = rb_utf8_str_new_cstr(path);</div><div class='add'>+    rb_encoding *eenc = rb_default_internal_encoding();</div><div class='add'>+    OBJ_TAINT(name);</div><div class='add'>+    name = rb_str_conv_enc(name, NULL, eenc ? eenc : enc);</div><div class='add'>+#else</div><div class='add'>+    VALUE name = rb_external_str_new_with_enc(path, strlen(path), enc);</div><div class='add'>+#endif</div><div class='add'>+    rb_ary_push(ary, name);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='del'>-ruby_brace_expand(str, flags, func, arg)</div><div class='del'>-    const char *str;</div><div class='del'>-    int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+static int</div><div class='add'>+ruby_brace_expand(const char *str, int flags, ruby_glob_func *func, VALUE arg,</div><div class='add'>+		  rb_encoding *enc, VALUE var)</div><div class='ctx'> {</div><div class='ctx'>     const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='ctx'>     const char *p = str;</div><div class='add'>+    const char *pend = p + strlen(p);</div><div class='ctx'>     const char *s = p;</div><div class='ctx'>     const char *lbrace = 0, *rbrace = 0;</div><div class='ctx'>     int nest = 0, status = 0;</div><div class='hunk'>@@ -1525,18 +2397,19 @@ ruby_brace_expand(str, flags, func, arg)</div><div class='ctx'> 	if (*p == '{' &amp;&amp; nest++ == 0) {</div><div class='ctx'> 	    lbrace = p;</div><div class='ctx'> 	}</div><div class='del'>-	if (*p == '}' &amp;&amp; --nest &lt;= 0) {</div><div class='add'>+	if (*p == '}' &amp;&amp; lbrace &amp;&amp; --nest == 0) {</div><div class='ctx'> 	    rbrace = p;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='ctx'> 	if (*p == '\\' &amp;&amp; escape) {</div><div class='ctx'> 	    if (!*++p) break;</div><div class='ctx'> 	}</div><div class='del'>-	Inc(p);</div><div class='add'>+	Inc(p, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (lbrace &amp;&amp; rbrace) {</div><div class='del'>-	char *buf = GLOB_ALLOC_N(char, strlen(s) + 1);</div><div class='add'>+	size_t len = strlen(s) + 1;</div><div class='add'>+	char *buf = GLOB_ALLOC_N(char, len);</div><div class='ctx'> 	long shift;</div><div class='ctx'> </div><div class='ctx'> 	if (!buf) return -1;</div><div class='hunk'>@@ -1552,106 +2425,147 @@ ruby_brace_expand(str, flags, func, arg)</div><div class='ctx'> 		if (*p == '\\' &amp;&amp; escape) {</div><div class='ctx'> 		    if (++p == rbrace) break;</div><div class='ctx'> 		}</div><div class='del'>-		Inc(p);</div><div class='add'>+		Inc(p, pend, enc);</div><div class='ctx'> 	    }</div><div class='ctx'> 	    memcpy(buf+shift, t, p-t);</div><div class='del'>-	    strcpy(buf+shift+(p-t), rbrace+1);</div><div class='del'>-	    status = ruby_brace_expand(buf, flags, func, arg);</div><div class='add'>+	    strlcpy(buf+shift+(p-t), rbrace+1, len-(shift+(p-t)));</div><div class='add'>+	    status = ruby_brace_expand(buf, flags, func, arg, enc, var);</div><div class='ctx'> 	    if (status) break;</div><div class='ctx'> 	}</div><div class='del'>-	free(buf);</div><div class='add'>+	GLOB_FREE(buf);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!lbrace &amp;&amp; !rbrace) {</div><div class='del'>-	status = (*func)(s, arg);</div><div class='add'>+	status = glob_call_func(func, s, arg, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    RB_GC_GUARD(var);</div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct brace_args {</div><div class='del'>-    ruby_glob_func *func;</div><div class='add'>+    ruby_glob_funcs_t funcs;</div><div class='ctx'>     VALUE value;</div><div class='ctx'>     int flags;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static int glob_brace _((const char *, VALUE));</div><div class='ctx'> static int</div><div class='del'>-glob_brace(path, val)</div><div class='del'>-    const char *path;</div><div class='del'>-    VALUE val;</div><div class='add'>+glob_brace(const char *path, VALUE val, void *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct brace_args *arg = (struct brace_args *)val;</div><div class='ctx'> </div><div class='del'>-    return ruby_glob0(path, arg-&gt;flags, arg-&gt;func, arg-&gt;value);</div><div class='add'>+    return ruby_glob0(path, AT_FDCWD, 0, arg-&gt;flags, &amp;arg-&gt;funcs, arg-&gt;value, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-ruby_brace_glob0(str, flags, func, arg)</div><div class='del'>-    const char *str;</div><div class='del'>-    int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+int</div><div class='add'>+ruby_brace_glob_with_enc(const char *str, int flags, ruby_glob_func *func, VALUE arg, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct brace_args args;</div><div class='ctx'> </div><div class='del'>-    args.func = func;</div><div class='add'>+    flags &amp;= ~GLOB_VERBOSE;</div><div class='add'>+    args.funcs.match = func;</div><div class='add'>+    args.funcs.error = NULL;</div><div class='ctx'>     args.value = arg;</div><div class='ctx'>     args.flags = flags;</div><div class='del'>-    return ruby_brace_expand(str, flags, glob_brace, (VALUE)&amp;args);</div><div class='add'>+    return ruby_brace_expand(str, flags, glob_brace, (VALUE)&amp;args, enc, Qfalse);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-ruby_brace_glob(str, flags, func, arg)</div><div class='del'>-    const char *str;</div><div class='add'>+ruby_brace_glob(const char *str, int flags, ruby_glob_func *func, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return ruby_brace_glob_with_enc(str, flags, func, arg, rb_ascii8bit_encoding());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct push_glob_args {</div><div class='add'>+    struct glob_args glob;</div><div class='ctx'>     int flags;</div><div class='del'>-    ruby_glob_func *func;</div><div class='del'>-    VALUE arg;</div><div class='add'>+    int fd;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+push_caller(const char *path, VALUE val, void *enc)</div><div class='ctx'> {</div><div class='del'>-    return ruby_brace_glob0(str, flags &amp; ~GLOB_VERBOSE, func, arg);</div><div class='add'>+    struct push_glob_args *arg = (struct push_glob_args *)val;</div><div class='add'>+</div><div class='add'>+    return ruby_glob0(path, arg-&gt;fd, arg-&gt;glob.base, arg-&gt;flags, &amp;rb_glob_funcs,</div><div class='add'>+		      (VALUE)&amp;arg-&gt;glob, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-push_glob(VALUE ary, const char *str, int flags)</div><div class='add'>+push_glob(VALUE ary, VALUE str, VALUE base, int flags)</div><div class='ctx'> {</div><div class='del'>-    struct glob_args args;</div><div class='add'>+    struct push_glob_args args;</div><div class='add'>+    rb_encoding *enc = rb_enc_get(str);</div><div class='ctx'> </div><div class='del'>-    args.func = push_pattern;</div><div class='del'>-    args.v = ary;</div><div class='del'>-    return ruby_brace_glob0(str, flags | GLOB_VERBOSE, rb_glob_caller, (VALUE)&amp;args);</div><div class='add'>+#if defined _WIN32 || defined __APPLE__</div><div class='add'>+    str = rb_str_encode_ospath(str);</div><div class='add'>+#endif</div><div class='add'>+    if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)</div><div class='add'>+	enc = rb_filesystem_encoding();</div><div class='add'>+    if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)</div><div class='add'>+	enc = rb_ascii8bit_encoding();</div><div class='add'>+    flags |= GLOB_VERBOSE;</div><div class='add'>+    args.glob.func = push_pattern;</div><div class='add'>+    args.glob.value = ary;</div><div class='add'>+    args.glob.enc = enc;</div><div class='add'>+    args.glob.base = 0;</div><div class='add'>+    args.flags = flags;</div><div class='add'>+    args.fd = AT_FDCWD;</div><div class='add'>+    if (!NIL_P(base)) {</div><div class='add'>+	if (!RB_TYPE_P(base, T_STRING) || !rb_enc_check(str, base)) {</div><div class='add'>+	    struct dir_data *dirp = DATA_PTR(base);</div><div class='add'>+	    if (!dirp-&gt;dir) dir_closed();</div><div class='add'>+#ifdef HAVE_DIRFD</div><div class='add'>+	    if ((args.fd = dirfd(dirp-&gt;dir)) == -1)</div><div class='add'>+		rb_sys_fail_path(dir_inspect(base));</div><div class='add'>+#endif</div><div class='add'>+	    base = dirp-&gt;path;</div><div class='add'>+	}</div><div class='add'>+	args.glob.base = RSTRING_PTR(base);</div><div class='add'>+    }</div><div class='add'>+#if defined _WIN32 || defined __APPLE__</div><div class='add'>+    enc = rb_utf8_encoding();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return ruby_brace_expand(RSTRING_PTR(str), flags,</div><div class='add'>+			     push_caller, (VALUE)&amp;args, enc, str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_push_glob(str, flags) /* '\0' is delimiter */</div><div class='del'>-    VALUE str;</div><div class='del'>-    int flags;</div><div class='add'>+rb_push_glob(VALUE str, VALUE base, int flags) /* '\0' is delimiter */</div><div class='ctx'> {</div><div class='ctx'>     long offset = 0;</div><div class='ctx'>     VALUE ary;</div><div class='ctx'> </div><div class='add'>+    /* can contain null bytes as separators */</div><div class='add'>+    if (!RB_TYPE_P((str), T_STRING)) {</div><div class='add'>+	FilePathValue(str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_check_safe_obj(str);</div><div class='add'>+	rb_enc_check(str, rb_enc_from_encoding(rb_usascii_encoding()));</div><div class='add'>+    }</div><div class='ctx'>     ary = rb_ary_new();</div><div class='del'>-    SafeStringValue(str);</div><div class='ctx'> </div><div class='ctx'>     while (offset &lt; RSTRING_LEN(str)) {</div><div class='del'>-	int status = push_glob(ary, RSTRING(str)-&gt;ptr + offset, flags);</div><div class='ctx'> 	char *p, *pend;</div><div class='add'>+	int status;</div><div class='add'>+	p = RSTRING_PTR(str) + offset;</div><div class='add'>+	status = push_glob(ary, rb_enc_str_new(p, strlen(p), rb_enc_get(str)),</div><div class='add'>+			   base, flags);</div><div class='ctx'> 	if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'> 	if (offset &gt;= RSTRING_LEN(str)) break;</div><div class='del'>-	p = RSTRING(str)-&gt;ptr + offset;</div><div class='ctx'> 	p += strlen(p) + 1;</div><div class='del'>-	pend = RSTRING(str)-&gt;ptr + RSTRING_LEN(str);</div><div class='add'>+	pend = RSTRING_PTR(str) + RSTRING_LEN(str);</div><div class='ctx'> 	while (p &lt; pend &amp;&amp; !*p)</div><div class='ctx'> 	    p++;</div><div class='del'>-	offset = p - RSTRING(str)-&gt;ptr;</div><div class='add'>+	offset = p - RSTRING_PTR(str);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dir_globs(argc, argv, flags)</div><div class='del'>-    long argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    int flags;</div><div class='add'>+dir_globs(long argc, const VALUE *argv, VALUE base, int flags)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     long i;</div><div class='hunk'>@@ -1659,70 +2573,120 @@ dir_globs(argc, argv, flags)</div><div class='ctx'>     for (i = 0; i &lt; argc; ++i) {</div><div class='ctx'> 	int status;</div><div class='ctx'> 	VALUE str = argv[i];</div><div class='del'>-	StringValue(str);</div><div class='del'>-	status = push_glob(ary, RSTRING(str)-&gt;ptr, flags);</div><div class='add'>+	FilePathValue(str);</div><div class='add'>+	status = push_glob(ary, str, base, flags);</div><div class='ctx'> 	if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+dir_glob_options(VALUE opt, VALUE *base, int *flags)</div><div class='add'>+{</div><div class='add'>+    ID kw[2];</div><div class='add'>+    VALUE args[2];</div><div class='add'>+    kw[0] = rb_intern("base");</div><div class='add'>+    if (flags) kw[1] = rb_intern("flags");</div><div class='add'>+    rb_get_kwargs(opt, kw, 0, flags ? 2 : 1, args);</div><div class='add'>+    if (args[0] == Qundef || NIL_P(args[0])) {</div><div class='add'>+	*base = Qnil;</div><div class='add'>+    }</div><div class='add'>+#if USE_OPENDIR_AT</div><div class='add'>+    else if (rb_typeddata_is_kind_of(args[0], &amp;dir_data_type)) {</div><div class='add'>+	*base = args[0];</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    else {</div><div class='add'>+	FilePathValue(args[0]);</div><div class='add'>+	if (!RSTRING_LEN(args[0])) args[0] = Qnil;</div><div class='add'>+	*base = args[0];</div><div class='add'>+    }</div><div class='add'>+    if (flags &amp;&amp; args[1] != Qundef) {</div><div class='add'>+	*flags = NUM2INT(args[1]);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir[ array ]                 =&gt; array</div><div class='del'>- *     Dir[ string [, string ...] ] =&gt; array</div><div class='add'>+ *     Dir[ string [, string ...] [, base: path] ] -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Equivalent to calling</div><div class='del'>- *  &lt;code&gt;Dir.glob(&lt;/code&gt;&lt;i&gt;array,&lt;/i&gt;&lt;code&gt;0)&lt;/code&gt; and </div><div class='del'>- *  &lt;code&gt;Dir.glob([&lt;/code&gt;&lt;i&gt;string,...&lt;/i&gt;&lt;code&gt;],0)&lt;/code&gt;.</div><div class='add'>+ *  &lt;code&gt;Dir.glob([&lt;/code&gt;&lt;i&gt;string,...&lt;/i&gt;&lt;code&gt;], 0)&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> dir_s_aref(int argc, VALUE *argv, VALUE obj)</div><div class='del'>- {</div><div class='add'>+{</div><div class='add'>+    VALUE opts, base;</div><div class='add'>+    argc = rb_scan_args(argc, argv, "*:", NULL, &amp;opts);</div><div class='add'>+    dir_glob_options(opts, &amp;base, NULL);</div><div class='ctx'>     if (argc == 1) {</div><div class='del'>-	return rb_push_glob(argv[0], 0);</div><div class='add'>+	return rb_push_glob(argv[0], base, 0);</div><div class='ctx'>     }</div><div class='del'>-    return dir_globs(argc, argv, 0);</div><div class='del'>- }</div><div class='add'>+    return dir_globs(argc, argv, base, 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.glob( pattern, [flags] ) =&gt; array</div><div class='del'>- *     Dir.glob( pattern, [flags] ) {| filename | block }  =&gt; nil</div><div class='del'>- *</div><div class='del'>- *  Returns the filenames found by expanding &lt;i&gt;pattern&lt;/i&gt; which is</div><div class='del'>- *  an +Array+ of the patterns or the pattern +String+, either as an</div><div class='del'>- *  &lt;i&gt;array&lt;/i&gt; or as parameters to the block. Note that this pattern</div><div class='del'>- *  is not a regexp (it's closer to a shell glob). See</div><div class='del'>- *  &lt;code&gt;File::fnmatch&lt;/code&gt; for the meaning of the &lt;i&gt;flags&lt;/i&gt;</div><div class='del'>- *  parameter. Note that case sensitivity depends on your system (so</div><div class='del'>- *  &lt;code&gt;File::FNM_CASEFOLD&lt;/code&gt; is ignored)</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;*&lt;/code&gt;::        Matches any file. Can be restricted by</div><div class='del'>- *                          other values in the glob. &lt;code&gt;*&lt;/code&gt;</div><div class='del'>- *                          will match all files; &lt;code&gt;c*&lt;/code&gt; will</div><div class='del'>- *                          match all files beginning with</div><div class='del'>- *                          &lt;code&gt;c&lt;/code&gt;; &lt;code&gt;*c&lt;/code&gt; will match</div><div class='del'>- *                          all files ending with &lt;code&gt;c&lt;/code&gt;; and</div><div class='del'>- *                          &lt;code&gt;*c*&lt;/code&gt; will match all files that</div><div class='del'>- *                          have &lt;code&gt;c&lt;/code&gt; in them (including at</div><div class='del'>- *                          the beginning or end). Equivalent to</div><div class='del'>- *                          &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='del'>- *  &lt;code&gt;**&lt;/code&gt;::       Matches directories recursively.</div><div class='del'>- *  &lt;code&gt;?&lt;/code&gt;::        Matches any one character. Equivalent to</div><div class='del'>- *                          &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='del'>- *  &lt;code&gt;[set]&lt;/code&gt;::    Matches any one character in +set+.</div><div class='del'>- *                          Behaves exactly like character sets in</div><div class='del'>- *                          Regexp, including set negation</div><div class='del'>- *                          (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='del'>- *  &lt;code&gt;{p,q}&lt;/code&gt;::    Matches either literal &lt;code&gt;p&lt;/code&gt; or</div><div class='del'>- *                          literal &lt;code&gt;q&lt;/code&gt;. Matching literals</div><div class='del'>- *                          may be more than one character in length.</div><div class='del'>- *                          More than two literals may be specified.</div><div class='del'>- *                          Equivalent to pattern alternation in</div><div class='del'>- *                          regexp.</div><div class='del'>- *  &lt;code&gt;\&lt;/code&gt;::        Escapes the next metacharacter.</div><div class='add'>+ *     Dir.glob( pattern, [flags], [base: path] )                       -&gt; array</div><div class='add'>+ *     Dir.glob( pattern, [flags], [base: path] ) { |filename| block }  -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Expands +pattern+, which is a pattern string or an Array of pattern</div><div class='add'>+ *  strings, and returns an array containing the matching filenames.</div><div class='add'>+ *  If a block is given, calls the block once for each matching filename,</div><div class='add'>+ *  passing the filename as a parameter to the block.</div><div class='add'>+ *</div><div class='add'>+ *  The optional +base+ keyword argument specifies the base directory for</div><div class='add'>+ *  interpreting relative pathnames instead of the current working directory.</div><div class='add'>+ *  As the results are not prefixed with the base directory name in this</div><div class='add'>+ *  case, you will need to prepend the base directory name if you want real</div><div class='add'>+ *  paths.</div><div class='add'>+ *</div><div class='add'>+ *  Note that the pattern is not a regexp, it's closer to a shell glob.</div><div class='add'>+ *  See File::fnmatch for the meaning of the +flags+ parameter.</div><div class='add'>+ *  Case sensitivity depends on your system (File::FNM_CASEFOLD is ignored),</div><div class='add'>+ *  as does the order in which the results are returned.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;*&lt;/code&gt;::</div><div class='add'>+ *    Matches any file. Can be restricted by other values in the glob.</div><div class='add'>+ *    Equivalent to &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='add'>+ *</div><div class='add'>+ *    &lt;code&gt;*&lt;/code&gt;::     Matches all files</div><div class='add'>+ *    &lt;code&gt;c*&lt;/code&gt;::    Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+ *    &lt;code&gt;*c&lt;/code&gt;::    Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+ *    &lt;code&gt;\*c\*&lt;/code&gt;:: Match all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='add'>+ *                         (including at the beginning or end).</div><div class='add'>+ *</div><div class='add'>+ *    Note, this will not match Unix-like hidden files (dotfiles).  In order</div><div class='add'>+ *    to include those in the match results, you must use the</div><div class='add'>+ *    File::FNM_DOTMATCH flag or something like &lt;code&gt;"{*,.*}"&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;**&lt;/code&gt;::</div><div class='add'>+ *    Matches directories recursively.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;?&lt;/code&gt;::</div><div class='add'>+ *    Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;[set]&lt;/code&gt;::</div><div class='add'>+ *    Matches any one character in +set+.  Behaves exactly like character sets</div><div class='add'>+ *    in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;{p,q}&lt;/code&gt;::</div><div class='add'>+ *    Matches either literal &lt;code&gt;p&lt;/code&gt; or literal &lt;code&gt;q&lt;/code&gt;.</div><div class='add'>+ *    Equivalent to pattern alternation in regexp.</div><div class='add'>+ *</div><div class='add'>+ *    Matching literals may be more than one character in length.  More than</div><div class='add'>+ *    two literals may be specified.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt; \\ &lt;/code&gt;::</div><div class='add'>+ *    Escapes the next metacharacter.</div><div class='add'>+ *</div><div class='add'>+ *    Note that this means you cannot use backslash on windows as part of a</div><div class='add'>+ *    glob, i.e.  &lt;code&gt;Dir["c:\\foo*"]&lt;/code&gt; will not work, use</div><div class='add'>+ *    &lt;code&gt;Dir["c:/foo*"]&lt;/code&gt; instead.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='ctx'>  *     Dir["config.?"]                     #=&gt; ["config.h"]</div><div class='ctx'>  *     Dir.glob("config.?")                #=&gt; ["config.h"]</div><div class='hunk'>@@ -1734,39 +2698,43 @@ dir_s_aref(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>  *</div><div class='ctx'>  *     rbfiles = File.join("**", "*.rb")</div><div class='ctx'>  *     Dir.glob(rbfiles)                   #=&gt; ["main.rb",</div><div class='del'>- *                                              "lib/song.rb",</div><div class='del'>- *                                              "lib/song/karaoke.rb"]</div><div class='add'>+ *                                         #    "lib/song.rb",</div><div class='add'>+ *                                         #    "lib/song/karaoke.rb"]</div><div class='add'>+ *</div><div class='add'>+ *     Dir.glob(rbfiles, base: "lib")      #=&gt; ["song.rb",</div><div class='add'>+ *                                         #    "song/karaoke.rb"]</div><div class='add'>+ *</div><div class='ctx'>  *     libdirs = File.join("**", "lib")</div><div class='ctx'>  *     Dir.glob(libdirs)                   #=&gt; ["lib"]</div><div class='ctx'>  *</div><div class='ctx'>  *     librbfiles = File.join("**", "lib", "**", "*.rb")</div><div class='ctx'>  *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb",</div><div class='del'>- *                                              "lib/song/karaoke.rb"]</div><div class='add'>+ *                                         #    "lib/song/karaoke.rb"]</div><div class='ctx'>  *</div><div class='ctx'>  *     librbfiles = File.join("**", "lib", "*.rb")</div><div class='ctx'>  *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_glob(argc, argv, obj)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+dir_s_glob(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, rflags, ary;</div><div class='add'>+    VALUE str, rflags, ary, opts, base;</div><div class='ctx'>     int flags;</div><div class='ctx'> </div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;str, &amp;rflags) == 2)</div><div class='add'>+    argc = rb_scan_args(argc, argv, "11:", &amp;str, &amp;rflags, &amp;opts);</div><div class='add'>+    if (argc == 2)</div><div class='ctx'> 	flags = NUM2INT(rflags);</div><div class='ctx'>     else</div><div class='ctx'> 	flags = 0;</div><div class='add'>+    dir_glob_options(opts, &amp;base, &amp;flags);</div><div class='ctx'> </div><div class='ctx'>     ary = rb_check_array_type(str);</div><div class='ctx'>     if (NIL_P(ary)) {</div><div class='del'>-	ary = rb_push_glob(str, flags);</div><div class='add'>+	ary = rb_push_glob(str, base, flags);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	volatile VALUE v = ary;</div><div class='del'>-	ary = dir_globs(RARRAY_LEN(v), RARRAY_PTR(v), flags);</div><div class='add'>+	VALUE v = ary;</div><div class='add'>+	ary = dir_globs(RARRAY_LEN(v), RARRAY_CONST_PTR(v), base, flags);</div><div class='add'>+	RB_GC_GUARD(v);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='hunk'>@@ -1777,27 +2745,27 @@ dir_s_glob(argc, argv, obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dir_open_dir(path)</div><div class='del'>-    VALUE path;</div><div class='add'>+dir_open_dir(int argc, VALUE *argv)</div><div class='ctx'> {</div><div class='del'>-    VALUE dir = rb_funcall(rb_cDir, rb_intern("open"), 1, path);</div><div class='add'>+    VALUE dir = rb_funcallv(rb_cDir, rb_intern("open"), argc, argv);</div><div class='ctx'> </div><div class='del'>-    if (TYPE(dir) != T_DATA ||</div><div class='del'>-	RDATA(dir)-&gt;dfree != (RUBY_DATA_FUNC)free_dir) {</div><div class='del'>-	rb_raise(rb_eTypeError, "wrong argument type %s (expected Dir)",</div><div class='del'>-		 rb_obj_classname(dir));</div><div class='del'>-    }</div><div class='add'>+    rb_check_typeddata(dir, &amp;dir_data_type);</div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.foreach( dirname ) {| filename | block }  =&gt; nil</div><div class='add'>+ *     Dir.foreach( dirname ) {| filename | block }                 -&gt; nil</div><div class='add'>+ *     Dir.foreach( dirname, encoding: enc ) {| filename | block }  -&gt; nil</div><div class='add'>+ *     Dir.foreach( dirname )                                       -&gt; an_enumerator</div><div class='add'>+ *     Dir.foreach( dirname, encoding: enc )                        -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Calls the block once for each entry in the named directory, passing</div><div class='ctx'>  *  the filename of each entry as a parameter to the block.</div><div class='ctx'>  *</div><div class='add'>+ *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *</div><div class='ctx'>  *     Dir.foreach("testdir") {|x| puts "Got #{x}" }</div><div class='ctx'>  *</div><div class='ctx'>  *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='hunk'>@@ -1809,96 +2777,215 @@ dir_open_dir(path)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_foreach(io, dirname)</div><div class='del'>-    VALUE io, dirname;</div><div class='add'>+dir_foreach(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     VALUE dir;</div><div class='ctx'> </div><div class='del'>-    dir = dir_open_dir(dirname);</div><div class='add'>+    RETURN_ENUMERATOR(io, argc, argv);</div><div class='add'>+    dir = dir_open_dir(argc, argv);</div><div class='ctx'>     rb_ensure(dir_each, dir, dir_close, dir);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+dir_collect(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+    dir_each_entry(dir, rb_ary_push, ary, FALSE);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Dir.entries( dirname ) =&gt; array</div><div class='add'>+ *     Dir.entries( dirname )                -&gt; array</div><div class='add'>+ *     Dir.entries( dirname, encoding: enc ) -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns an array containing all of the filenames in the given</div><div class='ctx'>  *  directory. Will raise a &lt;code&gt;SystemCallError&lt;/code&gt; if the named</div><div class='ctx'>  *  directory doesn't exist.</div><div class='ctx'>  *</div><div class='add'>+ *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the</div><div class='add'>+ *  directory. If not specified, the filesystem encoding is used.</div><div class='add'>+ *</div><div class='ctx'>  *     Dir.entries("testdir")   #=&gt; [".", "..", "config.h", "main.rb"]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_entries(io, dirname)</div><div class='del'>-    VALUE io, dirname;</div><div class='add'>+dir_entries(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    VALUE dir;</div><div class='add'>+</div><div class='add'>+    dir = dir_open_dir(argc, argv);</div><div class='add'>+    return rb_ensure(dir_collect, dir, dir_close, dir);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+dir_each_child(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    return dir_each_entry(dir, dir_yield, Qnil, TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.each_child( dirname ) {| filename | block }                 -&gt; nil</div><div class='add'>+ *     Dir.each_child( dirname, encoding: enc ) {| filename | block }  -&gt; nil</div><div class='add'>+ *     Dir.each_child( dirname )                                       -&gt; an_enumerator</div><div class='add'>+ *     Dir.each_child( dirname, encoding: enc )                        -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block once for each entry except for "." and ".." in the</div><div class='add'>+ *  named directory, passing the filename of each entry as a parameter</div><div class='add'>+ *  to the block.</div><div class='add'>+ *</div><div class='add'>+ *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *</div><div class='add'>+ *     Dir.each_child("testdir") {|x| puts "Got #{x}" }</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     Got config.h</div><div class='add'>+ *     Got main.rb</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_each_child(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     VALUE dir;</div><div class='ctx'> </div><div class='del'>-    dir = dir_open_dir(dirname);</div><div class='del'>-    return rb_ensure(rb_Array, dir, dir_close, dir);</div><div class='add'>+    RETURN_ENUMERATOR(io, argc, argv);</div><div class='add'>+    dir = dir_open_dir(argc, argv);</div><div class='add'>+    rb_ensure(dir_each_child, dir, dir_close, dir);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+dir_collect_children(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+    dir_each_entry(dir, rb_ary_push, ary, TRUE);</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.fnmatch( pattern, path, [flags] ) =&gt; (true or false)</div><div class='del'>- *     File.fnmatch?( pattern, path, [flags] ) =&gt; (true or false)</div><div class='del'>- *</div><div class='del'>- *  Returns true if &lt;i&gt;path&lt;/i&gt; matches against &lt;i&gt;pattern&lt;/i&gt; The</div><div class='del'>- *  pattern is not a regular expression; instead it follows rules</div><div class='del'>- *  similar to shell filename globbing. It may contain the following</div><div class='del'>- *  metacharacters:</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;*&lt;/code&gt;::        Matches any file. Can be restricted by</div><div class='del'>- *                          other values in the glob. &lt;code&gt;*&lt;/code&gt;</div><div class='del'>- *                          will match all files; &lt;code&gt;c*&lt;/code&gt; will</div><div class='del'>- *                          match all files beginning with</div><div class='del'>- *                          &lt;code&gt;c&lt;/code&gt;; &lt;code&gt;*c&lt;/code&gt; will match</div><div class='del'>- *                          all files ending with &lt;code&gt;c&lt;/code&gt;; and</div><div class='del'>- *                          &lt;code&gt;*c*&lt;/code&gt; will match all files that</div><div class='del'>- *                          have &lt;code&gt;c&lt;/code&gt; in them (including at</div><div class='del'>- *                          the beginning or end). Equivalent to</div><div class='del'>- *                          &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='del'>- *  &lt;code&gt;**&lt;/code&gt;::       Matches directories recursively or files</div><div class='del'>- *                          expansively.</div><div class='del'>- *  &lt;code&gt;?&lt;/code&gt;::        Matches any one character. Equivalent to</div><div class='del'>- *                          &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='del'>- *  &lt;code&gt;[set]&lt;/code&gt;::    Matches any one character in +set+.</div><div class='del'>- *                          Behaves exactly like character sets in</div><div class='del'>- *                          Regexp, including set negation</div><div class='del'>- *                          (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='del'>- *  &lt;code&gt;\&lt;/code&gt;::        Escapes the next metacharacter.</div><div class='del'>- *</div><div class='del'>- *  &lt;i&gt;flags&lt;/i&gt; is a bitwise OR of the &lt;code&gt;FNM_xxx&lt;/code&gt;</div><div class='del'>- *  parameters. The same glob pattern and flags are used by</div><div class='del'>- *  &lt;code&gt;Dir::glob&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('cat',       'cat')        #=&gt; true  : match entire string</div><div class='del'>- *     File.fnmatch('cat',       'category')   #=&gt; false : only match partial string</div><div class='del'>- *     File.fnmatch('c{at,ub}s', 'cats')       #=&gt; false : { } isn't supported</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('c?t',     'cat')          #=&gt; true  : '?' match only 1 character</div><div class='del'>- *     File.fnmatch('c??t',    'cat')          #=&gt; false : ditto</div><div class='del'>- *     File.fnmatch('c*',      'cats')         #=&gt; true  : '*' match 0 or more characters</div><div class='del'>- *     File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  : ditto</div><div class='del'>- *     File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  : inclusive bracket expression</div><div class='del'>- *     File.fnmatch('ca[^t]',  'cat')          #=&gt; false : exclusive bracket expression ('^' or '!')</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('cat', 'CAT')                     #=&gt; false : case sensitive</div><div class='del'>- *     File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  : case insensitive</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false : wildcard doesn't match '/' on FNM_PATHNAME</div><div class='del'>- *     File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false : ditto</div><div class='del'>- *     File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false : ditto</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('\?',   '?')                       #=&gt; true  : escaped wildcard becomes ordinary</div><div class='del'>- *     File.fnmatch('\a',   'a')                       #=&gt; true  : escaped ordinary remains ordinary</div><div class='del'>- *     File.fnmatch('\a',   '\a', File::FNM_NOESCAPE)  #=&gt; true  : FNM_NOESACPE makes '\' ordinary</div><div class='del'>- *     File.fnmatch('[\?]', '?')                       #=&gt; true  : can escape inside bracket expression</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('*',   '.profile')                      #=&gt; false : wildcard doesn't match leading</div><div class='del'>- *     File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true    period by default.</div><div class='add'>+ *     Dir.children( dirname )                -&gt; array</div><div class='add'>+ *     Dir.children( dirname, encoding: enc ) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing all of the filenames except for "."</div><div class='add'>+ *  and ".." in the given directory. Will raise a</div><div class='add'>+ *  &lt;code&gt;SystemCallError&lt;/code&gt; if the named directory doesn't exist.</div><div class='add'>+ *</div><div class='add'>+ *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the</div><div class='add'>+ *  directory. If not specified, the filesystem encoding is used.</div><div class='add'>+ *</div><div class='add'>+ *     Dir.children("testdir")   #=&gt; ["config.h", "main.rb"]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_children(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    VALUE dir;</div><div class='add'>+</div><div class='add'>+    dir = dir_open_dir(argc, argv);</div><div class='add'>+    return rb_ensure(dir_collect_children, dir, dir_close, dir);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+fnmatch_brace(const char *pattern, VALUE val, void *enc)</div><div class='add'>+{</div><div class='add'>+    struct brace_args *arg = (struct brace_args *)val;</div><div class='add'>+    VALUE path = arg-&gt;value;</div><div class='add'>+    rb_encoding *enc_pattern = enc;</div><div class='add'>+    rb_encoding *enc_path = rb_enc_get(path);</div><div class='add'>+</div><div class='add'>+    if (enc_pattern != enc_path) {</div><div class='add'>+	if (!rb_enc_asciicompat(enc_pattern))</div><div class='add'>+	    return FNM_NOMATCH;</div><div class='add'>+	if (!rb_enc_asciicompat(enc_path))</div><div class='add'>+	    return FNM_NOMATCH;</div><div class='add'>+	if (!rb_enc_str_asciionly_p(path)) {</div><div class='add'>+	    int cr = ENC_CODERANGE_7BIT;</div><div class='add'>+	    long len = strlen(pattern);</div><div class='add'>+	    if (rb_str_coderange_scan_restartable(pattern, pattern + len,</div><div class='add'>+						  enc_pattern, &amp;cr) != len)</div><div class='add'>+		return FNM_NOMATCH;</div><div class='add'>+	    if (cr != ENC_CODERANGE_7BIT)</div><div class='add'>+		return FNM_NOMATCH;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return (fnmatch(pattern, enc, RSTRING_PTR(path), arg-&gt;flags) == 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     File.fnmatch( pattern, path, [flags] ) -&gt; (true or false)</div><div class='add'>+ *     File.fnmatch?( pattern, path, [flags] ) -&gt; (true or false)</div><div class='add'>+ *</div><div class='add'>+ *  Returns true if +path+ matches against +pattern+.  The pattern is not a</div><div class='add'>+ *  regular expression; instead it follows rules similar to shell filename</div><div class='add'>+ *  globbing.  It may contain the following metacharacters:</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;*&lt;/code&gt;::</div><div class='add'>+ *    Matches any file. Can be restricted by other values in the glob.</div><div class='add'>+ *    Equivalent to &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='add'>+ *</div><div class='add'>+ *    &lt;code&gt;*&lt;/code&gt;::    Matches all files regular files</div><div class='add'>+ *    &lt;code&gt;c*&lt;/code&gt;::   Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+ *    &lt;code&gt;*c&lt;/code&gt;::   Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+ *    &lt;code&gt;\*c*&lt;/code&gt;:: Matches all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='add'>+ *                        (including at the beginning or end).</div><div class='add'>+ *</div><div class='add'>+ *    To match hidden files (that start with a &lt;code&gt;.&lt;/code&gt; set the</div><div class='add'>+ *    File::FNM_DOTMATCH flag.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;**&lt;/code&gt;::</div><div class='add'>+ *    Matches directories recursively or files expansively.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;?&lt;/code&gt;::</div><div class='add'>+ *    Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;[set]&lt;/code&gt;::</div><div class='add'>+ *    Matches any one character in +set+.  Behaves exactly like character sets</div><div class='add'>+ *    in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt; \ &lt;/code&gt;::</div><div class='add'>+ *    Escapes the next metacharacter.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;{a,b}&lt;/code&gt;::</div><div class='add'>+ *    Matches pattern a and pattern b if File::FNM_EXTGLOB flag is enabled.</div><div class='add'>+ *    Behaves like a Regexp union (&lt;code&gt;(?:a|b)&lt;/code&gt;).</div><div class='add'>+ *</div><div class='add'>+ *  +flags+ is a bitwise OR of the &lt;code&gt;FNM_XXX&lt;/code&gt; constants. The same</div><div class='add'>+ *  glob pattern and flags are used by Dir::glob.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('cat',       'cat')        #=&gt; true  # match entire string</div><div class='add'>+ *     File.fnmatch('cat',       'category')   #=&gt; false # only match partial string</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('c{at,ub}s', 'cats')                    #=&gt; false # { } isn't supported by default</div><div class='add'>+ *     File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB) #=&gt; true  # { } is supported on FNM_EXTGLOB</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('c?t',     'cat')          #=&gt; true  # '?' match only 1 character</div><div class='add'>+ *     File.fnmatch('c??t',    'cat')          #=&gt; false # ditto</div><div class='add'>+ *     File.fnmatch('c*',      'cats')         #=&gt; true  # '*' match 0 or more characters</div><div class='add'>+ *     File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  # ditto</div><div class='add'>+ *     File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  # inclusive bracket expression</div><div class='add'>+ *     File.fnmatch('ca[^t]',  'cat')          #=&gt; false # exclusive bracket expression ('^' or '!')</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('cat', 'CAT')                     #=&gt; false # case sensitive</div><div class='add'>+ *     File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  # case insensitive</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false # wildcard doesn't match '/' on FNM_PATHNAME</div><div class='add'>+ *     File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='add'>+ *     File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('\?',   '?')                       #=&gt; true  # escaped wildcard becomes ordinary</div><div class='add'>+ *     File.fnmatch('\a',   'a')                       #=&gt; true  # escaped ordinary remains ordinary</div><div class='add'>+ *     File.fnmatch('\a',   '\a', File::FNM_NOESCAPE)  #=&gt; true  # FNM_NOESCAPE makes '\' ordinary</div><div class='add'>+ *     File.fnmatch('[\?]', '?')                       #=&gt; true  # can escape inside bracket expression</div><div class='add'>+ *</div><div class='add'>+ *     File.fnmatch('*',   '.profile')                      #=&gt; false # wildcard doesn't match leading</div><div class='add'>+ *     File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true  # period by default.</div><div class='ctx'>  *     File.fnmatch('.*',  '.profile')                      #=&gt; true</div><div class='ctx'>  *</div><div class='ctx'>  *     rbfiles = '**' '/' '*.rb' # you don't have to do like this. just write in single string.</div><div class='hunk'>@@ -1922,10 +3009,7 @@ dir_entries(io, dirname)</div><div class='ctx'>  *     File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-file_s_fnmatch(argc, argv, obj)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+file_s_fnmatch(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE pattern, path;</div><div class='ctx'>     VALUE rflags;</div><div class='hunk'>@@ -1936,16 +3020,165 @@ file_s_fnmatch(argc, argv, obj)</div><div class='ctx'>     else</div><div class='ctx'> 	flags = 0;</div><div class='ctx'> </div><div class='del'>-    StringValue(pattern);</div><div class='del'>-    StringValue(path);</div><div class='add'>+    StringValueCStr(pattern);</div><div class='add'>+    FilePathStringValue(path);</div><div class='add'>+</div><div class='add'>+    if (flags &amp; FNM_EXTGLOB) {</div><div class='add'>+	struct brace_args args;</div><div class='ctx'> </div><div class='del'>-    if (fnmatch(RSTRING(pattern)-&gt;ptr, RSTRING(path)-&gt;ptr, flags) == 0)</div><div class='del'>-	return Qtrue;</div><div class='add'>+	args.value = path;</div><div class='add'>+	args.flags = flags;</div><div class='add'>+	if (ruby_brace_expand(RSTRING_PTR(pattern), flags, fnmatch_brace,</div><div class='add'>+			      (VALUE)&amp;args, rb_enc_get(pattern), pattern) &gt; 0)</div><div class='add'>+	    return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_encoding *enc = rb_enc_compatible(pattern, path);</div><div class='add'>+	if (!enc) return Qfalse;</div><div class='add'>+	if (fnmatch(RSTRING_PTR(pattern), enc, RSTRING_PTR(path), flags) == 0)</div><div class='add'>+	    return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(pattern);</div><div class='ctx'> </div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    Dir.home()       -&gt; "/home/me"</div><div class='add'>+ *    Dir.home("root") -&gt; "/root"</div><div class='add'>+ *</div><div class='add'>+ *  Returns the home directory of the current user or the named user</div><div class='add'>+ *  if given.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_home(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE user;</div><div class='add'>+    const char *u = 0;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    user = (argc &gt; 0) ? argv[0] : Qnil;</div><div class='add'>+    if (!NIL_P(user)) {</div><div class='add'>+	SafeStringValue(user);</div><div class='add'>+	rb_must_asciicompat(user);</div><div class='add'>+	u = StringValueCStr(user);</div><div class='add'>+	if (*u) {</div><div class='add'>+	    return rb_home_dir_of(user, rb_str_new(0, 0));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return rb_default_home_dir(rb_str_new(0, 0));</div><div class='add'>+</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Dir.exist?(file_name)   -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a directory,</div><div class='add'>+ * &lt;code&gt;false&lt;/code&gt; otherwise.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_file_directory_p(void)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Dir.exists?(file_name)  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Deprecated method. Don't use.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_dir_exists_p(VALUE obj, VALUE fname)</div><div class='add'>+{</div><div class='add'>+    rb_warning("Dir.exists? is a deprecated name, use Dir.exist? instead");</div><div class='add'>+    return rb_file_directory_p(obj, fname);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+nogvl_dir_empty_p(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const char *path = ptr;</div><div class='add'>+    DIR *dir = opendir(path);</div><div class='add'>+    struct dirent *dp;</div><div class='add'>+    VALUE result = Qtrue;</div><div class='add'>+</div><div class='add'>+    if (!dir) {</div><div class='add'>+	int e = errno;</div><div class='add'>+	switch (gc_for_fd_with_gvl(e)) {</div><div class='add'>+	  default:</div><div class='add'>+	    dir = opendir(path);</div><div class='add'>+	    if (dir) break;</div><div class='add'>+	    e = errno;</div><div class='add'>+	    /* fall through */</div><div class='add'>+	  case 0:</div><div class='add'>+	    if (e == ENOTDIR) return (void *)Qfalse;</div><div class='add'>+	    errno = e; /* for rb_sys_fail_path */</div><div class='add'>+	    return (void *)Qundef;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    while ((dp = READDIR(dir, NULL)) != NULL) {</div><div class='add'>+	if (!to_be_skipped(dp)) {</div><div class='add'>+	    result = Qfalse;</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    closedir(dir);</div><div class='add'>+    return (void *)result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Dir.empty?(path_name)  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the named file is an empty directory,</div><div class='add'>+ * &lt;code&gt;false&lt;/code&gt; if it is not a directory or non-empty.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_dir_s_empty_p(VALUE obj, VALUE dirname)</div><div class='add'>+{</div><div class='add'>+    VALUE result, orig;</div><div class='add'>+    const char *path;</div><div class='add'>+    enum {false_on_notdir = 1};</div><div class='add'>+</div><div class='add'>+    FilePathValue(dirname);</div><div class='add'>+    orig = rb_str_dup_frozen(dirname);</div><div class='add'>+    dirname = rb_str_encode_ospath(dirname);</div><div class='add'>+    dirname = rb_str_dup_frozen(dirname);</div><div class='add'>+    path = RSTRING_PTR(dirname);</div><div class='add'>+</div><div class='add'>+#if defined HAVE_GETATTRLIST &amp;&amp; defined ATTR_DIR_ENTRYCOUNT</div><div class='add'>+    {</div><div class='add'>+	u_int32_t attrbuf[SIZEUP32(fsobj_tag_t)];</div><div class='add'>+	struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_OBJTAG,};</div><div class='add'>+	if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) != 0)</div><div class='add'>+	    rb_sys_fail_path(orig);</div><div class='add'>+	if (*(const fsobj_tag_t *)(attrbuf+1) == VT_HFS) {</div><div class='add'>+	    al.commonattr = 0;</div><div class='add'>+	    al.dirattr = ATTR_DIR_ENTRYCOUNT;</div><div class='add'>+	    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) == 0) {</div><div class='add'>+		if (attrbuf[0] &gt;= 2 * sizeof(u_int32_t))</div><div class='add'>+		    return attrbuf[1] ? Qfalse : Qtrue;</div><div class='add'>+		if (false_on_notdir) return Qfalse;</div><div class='add'>+	    }</div><div class='add'>+	    rb_sys_fail_path(orig);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    result = (VALUE)rb_thread_call_without_gvl(nogvl_dir_empty_p, (void *)path,</div><div class='add'>+					    RUBY_UBF_IO, 0);</div><div class='add'>+    if (result == Qundef) {</div><div class='add'>+	rb_sys_fail_path(orig);</div><div class='add'>+    }</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  Objects of class &lt;code&gt;Dir&lt;/code&gt; are directory streams representing</div><div class='ctx'>  *  directories in the underlying file system. They provide a variety of</div><div class='ctx'>  *  ways to list directories and their contents. See also</div><div class='hunk'>@@ -1957,19 +3190,24 @@ file_s_fnmatch(argc, argv, obj)</div><div class='ctx'>  *  (&lt;code&gt;.&lt;/code&gt;).</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='del'>-Init_Dir()</div><div class='add'>+Init_Dir(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_cDir = rb_define_class("Dir", rb_cObject);</div><div class='ctx'> </div><div class='ctx'>     rb_include_module(rb_cDir, rb_mEnumerable);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(rb_cDir, dir_s_alloc);</div><div class='del'>-    rb_define_singleton_method(rb_cDir, "open", dir_s_open, 1);</div><div class='del'>-    rb_define_singleton_method(rb_cDir, "foreach", dir_foreach, 1);</div><div class='del'>-    rb_define_singleton_method(rb_cDir, "entries", dir_entries, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDir,"initialize", dir_initialize, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir, "open", dir_s_open, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir, "foreach", dir_foreach, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir, "entries", dir_entries, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir, "each_child", dir_s_each_child, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir, "children", dir_s_children, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cDir,"initialize", dir_initialize, -1);</div><div class='add'>+    rb_define_method(rb_cDir,"fileno", dir_fileno, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"path", dir_path, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"to_path", dir_path, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"inspect", dir_inspect, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"read", dir_read, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"each", dir_each, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"rewind", dir_rewind, 0);</div><div class='hunk'>@@ -1987,16 +3225,61 @@ Init_Dir()</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"rmdir", dir_s_rmdir, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"delete", dir_s_rmdir, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"unlink", dir_s_rmdir, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"home", dir_s_home, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"glob", dir_s_glob, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"[]", dir_s_aref, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"exist?", rb_file_directory_p, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"exists?", rb_dir_exists_p, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"empty?", rb_dir_s_empty_p, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(rb_cFile,"fnmatch", file_s_fnmatch, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile,"fnmatch?", file_s_fnmatch, -1);</div><div class='ctx'> </div><div class='add'>+    /*  Document-const: File::Constants::FNM_NOESCAPE</div><div class='add'>+     *</div><div class='add'>+     *  Disables escapes in File.fnmatch and Dir.glob patterns</div><div class='add'>+     */</div><div class='ctx'>     rb_file_const("FNM_NOESCAPE", INT2FIX(FNM_NOESCAPE));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_PATHNAME</div><div class='add'>+     *</div><div class='add'>+     *  Wildcards in File.fnmatch and Dir.glob patterns do not match directory</div><div class='add'>+     *  separators</div><div class='add'>+     */</div><div class='ctx'>     rb_file_const("FNM_PATHNAME", INT2FIX(FNM_PATHNAME));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_DOTMATCH</div><div class='add'>+     *</div><div class='add'>+     *  The '*' wildcard matches filenames starting with "." in File.fnmatch</div><div class='add'>+     *  and Dir.glob patterns</div><div class='add'>+     */</div><div class='ctx'>     rb_file_const("FNM_DOTMATCH", INT2FIX(FNM_DOTMATCH));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_CASEFOLD</div><div class='add'>+     *</div><div class='add'>+     *  Makes File.fnmatch patterns case insensitive (but not Dir.glob</div><div class='add'>+     *  patterns).</div><div class='add'>+     */</div><div class='ctx'>     rb_file_const("FNM_CASEFOLD", INT2FIX(FNM_CASEFOLD));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_EXTGLOB</div><div class='add'>+     *</div><div class='add'>+     *  Allows file globbing through "{a,b}" in File.fnmatch patterns.</div><div class='add'>+     */</div><div class='add'>+    rb_file_const("FNM_EXTGLOB", INT2FIX(FNM_EXTGLOB));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_SYSCASE</div><div class='add'>+     *</div><div class='add'>+     *  System default case insensitiveness, equals to FNM_CASEFOLD or</div><div class='add'>+     *  0.</div><div class='add'>+     */</div><div class='ctx'>     rb_file_const("FNM_SYSCASE", INT2FIX(FNM_SYSCASE));</div><div class='add'>+</div><div class='add'>+    /*  Document-const: File::Constants::FNM_SHORTNAME</div><div class='add'>+     *</div><div class='add'>+     *  Makes patterns to match short names if existing.  Valid only</div><div class='add'>+     *  on Microsoft Windows.</div><div class='add'>+     */</div><div class='add'>+    rb_file_const("FNM_SHORTNAME", INT2FIX(FNM_SHORTNAME));</div><div class='ctx'> }</div><div class='head'>diff --git a/distruby.rb b/distruby.rb<br/>deleted file mode 100644<br/>index 613da0eb9c..0000000000<br/>--- a/<a href='/ruby.git/tree/distruby.rb?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>distruby.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,59 +0,0 @@</div><div class='del'>-#!./miniruby</div><div class='del'>-</div><div class='del'>-if RUBY_PATCHLEVEL.zero?</div><div class='del'>-	dirname = sprintf 'ruby-%s', RUBY_VERSION</div><div class='del'>-	tagname = dirname.gsub /ruby-(\d)\.(\d)\.(\d)/, 'v\1_\2_\3'</div><div class='del'>-else</div><div class='del'>-	dirname = sprintf 'ruby-%s-p%u', RUBY_VERSION, RUBY_PATCHLEVEL</div><div class='del'>-	tagname = dirname.gsub /ruby-(\d)\.(\d)\.(\d)-p/, 'v\1_\2_\3_'</div><div class='del'>-end</div><div class='del'>-tgzname = dirname + '.tar.gz'</div><div class='del'>-tbzname = dirname + '.tar.bz2'</div><div class='del'>-zipname = dirname + '.zip'</div><div class='del'>-repos   = 'http://svn.ruby-lang.org/repos/ruby/tags/' + tagname</div><div class='del'>-</div><div class='del'>-STDERR.puts 'exporting sources...'</div><div class='del'>-system 'svn',  'export',  '-q', repos, dirname</div><div class='del'>-Dir.chdir dirname do</div><div class='del'>-	STDERR.puts 'generating configure...'</div><div class='del'>-	system 'autoconf'</div><div class='del'>-	system 'rm', '-rf', 'autom4te.cache'</div><div class='del'>-</div><div class='del'>-	STDERR.puts 'generating parse.c...'</div><div class='del'>-	system 'bison', '-y', '-o', 'parse.c', 'parse.y'</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-STDERR.puts 'generating tarballs...'</div><div class='del'>-ENV['GZIP'] = '-9'</div><div class='del'>-system 'tar', 'chofzp', tgzname, dirname</div><div class='del'>-system 'tar', 'chojfp', tbzname, dirname</div><div class='del'>-system 'zip', '-q9r', zipname, dirname</div><div class='del'>-</div><div class='del'>-require 'digest/md5'</div><div class='del'>-require 'digest/sha2'</div><div class='del'>-for name in [tgzname, tbzname, zipname] do</div><div class='del'>-	open name, 'rb' do |fp|</div><div class='del'>-		str = fp.read</div><div class='del'>-		md5 = Digest::MD5.hexdigest str</div><div class='del'>-		sha = Digest::SHA256.hexdigest str</div><div class='del'>-		printf "MD5(%s)= %s\nSHA256(%s)= %s\nSIZE(%s)= %s\n\n",</div><div class='del'>-				 name, md5,</div><div class='del'>-				 name, sha,</div><div class='del'>-				 name, str.size</div><div class='del'>-	end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# </div><div class='del'>-# Local Variables:</div><div class='del'>-# mode: ruby</div><div class='del'>-# code: utf-8</div><div class='del'>-# indent-tabs-mode: t</div><div class='del'>-# tab-width: 3</div><div class='del'>-# ruby-indent-level: 3</div><div class='del'>-# fill-column: 79</div><div class='del'>-# default-justification: full</div><div class='del'>-# End:</div><div class='del'>-# vi: ts=3 sw=3</div><div class='del'>-</div><div class='head'>diff --git a/djgpp/GNUmakefile.in b/djgpp/GNUmakefile.in<br/>deleted file mode 100644<br/>index 0a7e1fb131..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/GNUmakefile.in?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/GNUmakefile.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2 +0,0 @@</div><div class='del'>-include Makefile</div><div class='del'>-VPATH = $(srcdir) $(srcdir)/missing</div><div class='head'>diff --git a/djgpp/README.djgpp b/djgpp/README.djgpp<br/>deleted file mode 100644<br/>index f1f413a478..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/README.djgpp?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/README.djgpp</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,21 +0,0 @@</div><div class='del'>-* How to compile and install on djgpp</div><div class='del'>-</div><div class='del'>-This is what you need to do to compile and install Ruby:</div><div class='del'>-</div><div class='del'>-  1. Run configure.bat, which will generate config.h and Makefile</div><div class='del'>-     (GNU sed required).</div><div class='del'>-     Message like this is normal:</div><div class='del'>-       sed.exe: can't read 123456789: No such file or directory (ENOENT)</div><div class='del'>-</div><div class='del'>-  2. Edit defines.h if you need.  Probably this step will not need.</div><div class='del'>-</div><div class='del'>-  3. Remove comment mark(#) before the module names from ext/Setup.dj (or</div><div class='del'>-     add module names if not present).</div><div class='del'>-</div><div class='del'>-  4. Run make.</div><div class='del'>-</div><div class='del'>-  5. Optionally, run 'make test' to check whether the compiled Ruby</div><div class='del'>-     interpreter works well.  If you see the message "test succeeded",</div><div class='del'>-     your ruby works as it should (hopefully).</div><div class='del'>-</div><div class='del'>-  6. Run 'make install'</div><div class='head'>diff --git a/djgpp/config.hin b/djgpp/config.hin<br/>deleted file mode 100644<br/>index 8ee427c92f..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/config.hin?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/config.hin</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,114 +0,0 @@</div><div class='del'>-</div><div class='del'>-#define PACKAGE_NAME ""</div><div class='del'>-#define PACKAGE_TARNAME ""</div><div class='del'>-#define PACKAGE_VERSION ""</div><div class='del'>-#define PACKAGE_STRING ""</div><div class='del'>-#define PACKAGE_BUGREPORT ""</div><div class='del'>-#define USE_BUILTIN_FRAME_ADDRESS 1</div><div class='del'>-#define STDC_HEADERS 1</div><div class='del'>-#define HAVE_SYS_TYPES_H 1</div><div class='del'>-#define HAVE_SYS_STAT_H 1</div><div class='del'>-#define HAVE_STDLIB_H 1</div><div class='del'>-#define HAVE_STRING_H 1</div><div class='del'>-#define HAVE_MEMORY_H 1</div><div class='del'>-#define HAVE_STRINGS_H 1</div><div class='del'>-#define HAVE_UNISTD_H 1</div><div class='del'>-#define HAVE_LONG_LONG 1</div><div class='del'>-#define HAVE_OFF_T 1</div><div class='del'>-#define SIZEOF_INT 4</div><div class='del'>-#define SIZEOF_SHORT 2</div><div class='del'>-#define SIZEOF_LONG 4</div><div class='del'>-#define SIZEOF_LONG_LONG 8</div><div class='del'>-#define SIZEOF___INT64 0</div><div class='del'>-#define SIZEOF_OFF_T 4</div><div class='del'>-#define SIZEOF_VOIDP 4</div><div class='del'>-#define SIZEOF_FLOAT 4</div><div class='del'>-#define SIZEOF_DOUBLE 8</div><div class='del'>-#define HAVE_PROTOTYPES 1</div><div class='del'>-#define TOKEN_PASTE(x,y) x##y</div><div class='del'>-#define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-#define NORETURN(x) x __attribute__ ((noreturn))</div><div class='del'>-#define HAVE_DECL_SYS_NERR 1</div><div class='del'>-#define HAVE_DIRENT_H 1</div><div class='del'>-#define STDC_HEADERS 1</div><div class='del'>-#define HAVE_SYS_WAIT_H 1</div><div class='del'>-#define HAVE_STDLIB_H 1</div><div class='del'>-#define HAVE_STRING_H 1</div><div class='del'>-#define HAVE_UNISTD_H 1</div><div class='del'>-#define HAVE_LIMITS_H 1</div><div class='del'>-#define HAVE_SYS_FILE_H 1</div><div class='del'>-#define HAVE_SYS_IOCTL_H 1</div><div class='del'>-#define HAVE_FCNTL_H 1</div><div class='del'>-#define HAVE_SYS_FCNTL_H 1</div><div class='del'>-#define HAVE_SYS_TIME_H 1</div><div class='del'>-#define HAVE_SYS_TIMES_H 1</div><div class='del'>-#define HAVE_SYS_PARAM_H 1</div><div class='del'>-#define HAVE_PWD_H 1</div><div class='del'>-#define HAVE_UTIME_H 1</div><div class='del'>-#define HAVE_MEMORY_H 1</div><div class='del'>-#define HAVE_DIRECT_H 1</div><div class='del'>-#define HAVE_SYS_RESOURCE_H 1</div><div class='del'>-#define HAVE_STRUCT_STAT_ST_BLKSIZE 1</div><div class='del'>-#define HAVE_ST_BLKSIZE 1</div><div class='del'>-#define HAVE_STRUCT_STAT_ST_RDEV 1</div><div class='del'>-#define HAVE_ST_RDEV 1</div><div class='del'>-#define GETGROUPS_T gid_t</div><div class='del'>-#define RETSIGTYPE void</div><div class='del'>-#define HAVE_ALLOCA 1</div><div class='del'>-#define HAVE_DUP2 1</div><div class='del'>-#define HAVE_MEMMOVE 1</div><div class='del'>-#define HAVE_MKDIR 1</div><div class='del'>-#define HAVE_STRCASECMP 1</div><div class='del'>-#define HAVE_STRNCASECMP 1</div><div class='del'>-#define HAVE_STRERROR 1</div><div class='del'>-#define HAVE_STRFTIME 1</div><div class='del'>-#define HAVE_STRCHR 1</div><div class='del'>-#define HAVE_STRSTR 1</div><div class='del'>-#define HAVE_STRTOUL 1</div><div class='del'>-#define HAVE_ISINF 1</div><div class='del'>-#define HAVE_ISNAN 1</div><div class='del'>-#define HAVE_FINITE 1</div><div class='del'>-#define HAVE_HYPOT 1</div><div class='del'>-#define HAVE_ACOSH 1</div><div class='del'>-#define HAVE_FMOD 1</div><div class='del'>-#define HAVE_WAITPID 1</div><div class='del'>-#define HAVE_FSYNC 1</div><div class='del'>-#define HAVE_TRUNCATE 1</div><div class='del'>-#define HAVE_CHSIZE 1</div><div class='del'>-#define HAVE_TIMES 1</div><div class='del'>-#define HAVE_UTIMES 1</div><div class='del'>-#define HAVE_FCNTL 1</div><div class='del'>-#define HAVE_SYMLINK 1</div><div class='del'>-#define HAVE_SETITIMER 1</div><div class='del'>-#define HAVE_PAUSE 1</div><div class='del'>-#define HAVE_GETPGRP 1</div><div class='del'>-#define HAVE_SETPGID 1</div><div class='del'>-#define HAVE_GETGROUPS 1</div><div class='del'>-#define HAVE_GETRLIMIT 1</div><div class='del'>-#define HAVE_SIGPROCMASK 1</div><div class='del'>-#define HAVE_SIGACTION 1</div><div class='del'>-#define HAVE_SETSID 1</div><div class='del'>-#define HAVE_TELLDIR 1</div><div class='del'>-#define HAVE_SEEKDIR 1</div><div class='del'>-#define HAVE_MKTIME 1</div><div class='del'>-#define HAVE_COSH 1</div><div class='del'>-#define HAVE_SINH 1</div><div class='del'>-#define HAVE_TANH 1</div><div class='del'>-#define HAVE_STRUCT_TM_TM_ZONE 1</div><div class='del'>-#define HAVE_TM_ZONE 1</div><div class='del'>-#define HAVE_STRUCT_TM_TM_GMTOFF 1</div><div class='del'>-#define POSIX_SIGNAL 1</div><div class='del'>-#define GETPGRP_VOID 1</div><div class='del'>-#define SETPGRP_VOID 1</div><div class='del'>-#define RSHIFT(x,y) ((x)&gt;&gt;(int)y)</div><div class='del'>-#define FILE_COUNT _cnt</div><div class='del'>-#define FILE_READPTR _ptr</div><div class='del'>-#define NEED_IO_FLUSH_BETWEEN_RW 1</div><div class='del'>-#define DEFAULT_KCODE KCODE_NONE</div><div class='del'>-#define DLEXT ".so"</div><div class='del'>-#define RUBY_LIB "/lib/ruby/@MAJOR@.@MINOR@"</div><div class='del'>-#define RUBY_SITE_LIB "/lib/ruby/site_ruby"</div><div class='del'>-#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/@MAJOR@.@MINOR@"</div><div class='del'>-#define RUBY_PLATFORM "i386-msdosdjgpp"</div><div class='del'>-#define RUBY_ARCHLIB "/lib/ruby/@MAJOR@.@MINOR@/i386-msdosdjgpp"</div><div class='del'>-#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/@MAJOR@.@MINOR@/i386-msdosdjgpp"</div><div class='head'>diff --git a/djgpp/config.sed b/djgpp/config.sed<br/>deleted file mode 100644<br/>index 1805789520..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/config.sed?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/config.sed</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,128 +0,0 @@</div><div class='del'>-/^SHELL/s,/bin/sh,$(COMSPEC),</div><div class='del'>-;s%/bin/rm%rm%</div><div class='del'>-;s%|| true%%</div><div class='del'>-;/\/dev\/null/ {</div><div class='del'>-;s,/dev/null 2&gt;&amp;1, nul,</div><div class='del'>-;s,2&gt; /dev/null,,</div><div class='del'>-;}</div><div class='del'>-;/^config.status/ {</div><div class='del'>-;    N;N;N;N;N;d</div><div class='del'>-;}</div><div class='del'>-:t</div><div class='del'>-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b</div><div class='del'>-s,@srcdir@,.,g;t t</div><div class='del'>-s,@top_srcdir@,..,;t t</div><div class='del'>-s,@PATH_SEPARATOR@,:,;t t</div><div class='del'>-s,@PACKAGE_NAME@,,;t t</div><div class='del'>-s,@PACKAGE_TARNAME@,,;t t</div><div class='del'>-s,@PACKAGE_VERSION@,,;t t</div><div class='del'>-s,@PACKAGE_STRING@,,;t t</div><div class='del'>-s,@PACKAGE_BUGREPORT@,,;t t</div><div class='del'>-s,@exec_prefix@,${prefix},;t t</div><div class='del'>-s,@prefix@,/dev/env/DJDIR,;t t</div><div class='del'>-s%@program_transform_name@%s,^,,%;t t</div><div class='del'>-s,@bindir@,${exec_prefix}/bin,;t t</div><div class='del'>-s,@sbindir@,${exec_prefix}/sbin,;t t</div><div class='del'>-s,@libexecdir@,${exec_prefix}/libexec,;t t</div><div class='del'>-s,@datadir@,${prefix}/share,;t t</div><div class='del'>-s,@sysconfdir@,${prefix}/etc,;t t</div><div class='del'>-s,@sharedstatedir@,${prefix}/com,;t t</div><div class='del'>-s,@localstatedir@,${prefix}/var,;t t</div><div class='del'>-s,@libdir@,${exec_prefix}/lib,;t t</div><div class='del'>-s,@includedir@,${prefix}/include,;t t</div><div class='del'>-s,@oldincludedir@,/usr/include,;t t</div><div class='del'>-s,@infodir@,${prefix}/info,;t t</div><div class='del'>-s,@mandir@,${prefix}/man,;t t</div><div class='del'>-s,@build_alias@,i586-pc-msdosdjgpp,;t t</div><div class='del'>-s,@host_alias@,i586-pc-msdosdjgpp,;t t</div><div class='del'>-s,@target_alias@,i386-msdosdjgpp,;t t</div><div class='del'>-s,@DEFS@,,;t t</div><div class='del'>-s,@ECHO_C@,,;t t</div><div class='del'>-s,@ECHO_N@,-n,;t t</div><div class='del'>-s,@ECHO_T@,,;t t</div><div class='del'>-s,@LIBS@,-lm ,;t t</div><div class='del'>-s,@MAJOR@,1,;t t</div><div class='del'>-s,@MINOR@,7,;t t</div><div class='del'>-s,@TEENY@,3,;t t</div><div class='del'>-s,@build@,i586-pc-msdosdjgpp,;t t</div><div class='del'>-s,@build_cpu@,i586,;t t</div><div class='del'>-s,@build_vendor@,pc,;t t</div><div class='del'>-s,@build_os@,msdosdjgpp,;t t</div><div class='del'>-s,@host@,i586-pc-msdosdjgpp,;t t</div><div class='del'>-s,@host_cpu@,i586,;t t</div><div class='del'>-s,@host_vendor@,pc,;t t</div><div class='del'>-s,@host_os@,msdosdjgpp,;t t</div><div class='del'>-s,@target@,i386-pc-msdosdjgpp,;t t</div><div class='del'>-s,@target_cpu@,i386,;t t</div><div class='del'>-s,@target_vendor@,pc,;t t</div><div class='del'>-s,@target_os@,msdosdjgpp,;t t</div><div class='del'>-s,@CC@,gcc,;t t</div><div class='del'>-s,@ac_ct_CC@,,;t t</div><div class='del'>-s,@CFLAGS@,-Os,;t t</div><div class='del'>-s,@LDFLAGS@,,;t t</div><div class='del'>-s,@CPPFLAGS@,,;t t</div><div class='del'>-s,@EXEEXT@,.exe,;t t</div><div class='del'>-s,@OBJEXT@,o,;t t</div><div class='del'>-s,@CPP@,gcc -E,;t t</div><div class='del'>-s,@EGREP@,grep -E,;t t</div><div class='del'>-s,@GNU_LD@,yes,;t t</div><div class='del'>-s,@CPPOUTFILE@,-o conftest.i,;t t</div><div class='del'>-s,@OUTFLAG@,-o ,;t t</div><div class='del'>-s,@YACC@,bison -y,;t t</div><div class='del'>-s,@RANLIB@,ranlib,;t t</div><div class='del'>-s,@ac_ct_RANLIB@,,;t t</div><div class='del'>-s,@AR@,ar,;t t</div><div class='del'>-s,@ac_ct_AR@,,;t t</div><div class='del'>-s,@NM@,,;t t</div><div class='del'>-s,@ac_ct_NM@,,;t t</div><div class='del'>-s,@WINDRES@,,;t t</div><div class='del'>-s,@ac_ct_WINDRES@,,;t t</div><div class='del'>-s,@DLLWRAP@,,;t t</div><div class='del'>-s,@ac_ct_DLLWRAP@,,;t t</div><div class='del'>-s,@LN_S@,ln -s,;t t</div><div class='del'>-s,@SET_MAKE@,,;t t</div><div class='del'>-s,@LIBOBJS@,crypt.o flock.o vsnprintf.o,;t t</div><div class='del'>-s,@ALLOCA@,,;t t</div><div class='del'>-s,@XCFLAGS@,,;t t</div><div class='del'>-s,@XLDFLAGS@, -L.,;t t</div><div class='del'>-s,@DLDFLAGS@,,;t t</div><div class='del'>-s,@STATIC@,,;t t</div><div class='del'>-s,@CCDLFLAGS@,,;t t</div><div class='del'>-s,@LDSHARED@,ld,;t t</div><div class='del'>-s,@DLEXT@,so,;t t</div><div class='del'>-s,@DLEXT2@,,;t t</div><div class='del'>-s,@LIBEXT@,a,;t t</div><div class='del'>-s,@LINK_SO@,,;t t</div><div class='del'>-s,@LIBPATHFLAG@, -L%s,;t t</div><div class='del'>-s,@STRIP@,strip,;t t</div><div class='del'>-s,@EXTSTATIC@,,;t t</div><div class='del'>-s,@setup@,Setup.dj,;t t</div><div class='del'>-s,@MINIRUBY@,./miniruby,;t t</div><div class='del'>-s,@PREP@,,;t t</div><div class='del'>-s,@ARCHFILE@,,;t t</div><div class='del'>-s,@LIBRUBY_LDSHARED@,ld,;t t</div><div class='del'>-s,@LIBRUBY_DLDFLAGS@,,;t t</div><div class='del'>-s,@RUBY_INSTALL_NAME@,ruby,;t t</div><div class='del'>-s,@rubyw_install_name@,,;t t</div><div class='del'>-s,@RUBYW_INSTALL_NAME@,,;t t</div><div class='del'>-s,@RUBY_SO_NAME@,$(RUBY_INSTALL_NAME),;t t</div><div class='del'>-s,@LIBRUBY_A@,lib$(RUBY_INSTALL_NAME).a,;t t</div><div class='del'>-s,@LIBRUBY_SO@,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY),;t t</div><div class='del'>-s,@LIBRUBY_ALIASES@,lib$(RUBY_SO_NAME).so,;t t</div><div class='del'>-s,@LIBRUBY@,$(LIBRUBY_A),;t t</div><div class='del'>-s,@LIBRUBYARG@,-l$(RUBY_INSTALL_NAME),;t t</div><div class='del'>-s,@SOLIBS@,,;t t</div><div class='del'>-s,@DLDLIBS@,-lc,;t t</div><div class='del'>-s,@ENABLE_SHARED@,no,;t t</div><div class='del'>-s,@MAINLIBS@,,;t t</div><div class='del'>-s,@COMMON_LIBS@,,;t t</div><div class='del'>-s,@COMMON_MACROS@,,;t t</div><div class='del'>-s,@COMMON_HEADERS@,,;t t</div><div class='del'>-s,@EXPORT_PREFIX@,,;t t</div><div class='del'>-s,@MAKEFILES@,Makefile,;t t</div><div class='del'>-s,@arch@,i386-msdosdjgpp,;t t</div><div class='del'>-s,@sitearch@,i386-msdosdjgpp,;t t</div><div class='del'>-s,@sitedir@,${prefix}/lib/ruby/site_ruby,;t t</div><div class='del'>-s,@configure_args@,,;t t</div><div class='del'>-/^,THIS_IS_DUMMY_PATTERN_/i\</div><div class='del'>-ac_given_srcdir=.</div><div class='head'>diff --git a/djgpp/configure.bat b/djgpp/configure.bat<br/>deleted file mode 100755<br/>index e6a5d79d4a..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/configure.bat?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/configure.bat</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,20 +0,0 @@</div><div class='del'>-@echo off</div><div class='del'>-if exist configure.bat cd ..</div><div class='del'>-if exist djgpp\version.sed goto exist</div><div class='del'>-  sed -n -f djgpp\mkver.sed &lt; version.h &gt; djgpp\version.sed</div><div class='del'>-:exist</div><div class='del'>-set _conv_=-f djgpp\config.sed -f djgpp\version.sed</div><div class='del'>-sed %_conv_% &lt; Makefile.in &gt; Makefile</div><div class='del'>-sed %_conv_% &lt; djgpp\config.hin &gt; config.h</div><div class='del'>-echo LFN check &gt; 12345678</div><div class='del'>-sed -n /LFN/d 123456789 &gt; nul</div><div class='del'>-if errorlevel 2 goto LFN</div><div class='del'>-    copy missing\vsnprintf.c missing\vsnprint.c &gt; nul</div><div class='del'>-    copy djgpp\config.sed config.sta &gt; nul</div><div class='del'>-goto end</div><div class='del'>-:LFN</div><div class='del'>-    copy djgpp\config.sed config.status &gt; nul</div><div class='del'>-:end</div><div class='del'>-set _conv_=</div><div class='del'>-del 12345678</div><div class='del'>-echo Now you must run a make.</div><div class='head'>diff --git a/djgpp/mkver.sed b/djgpp/mkver.sed<br/>deleted file mode 100644<br/>index f29b9ddd3e..0000000000<br/>--- a/<a href='/ruby.git/tree/djgpp/mkver.sed?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>djgpp/mkver.sed</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1 +0,0 @@</div><div class='del'>-/RUBY_VERSION /s/^.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/s,@MAJOR@,\1,;s,@MINOR@,\2,;s,@TEENY@,\3,/p</div><div class='head'>diff --git a/dln.c b/dln.c<br/>index ae12758d19..55f29fda51 100644<br/>--- a/<a href='/ruby.git/tree/dln.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>dln.c</a><br/>+++ b/<a href='/ruby.git/tree/dln.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dln.c</a></div><div class='hunk'>@@ -3,26 +3,30 @@</div><div class='ctx'>   dln.c -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Tue Jan 18 17:05:06 JST 1994</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#ifdef RUBY_EXPORT</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#define dln_notimplement rb_notimplement</div><div class='add'>+#define dln_memerror rb_memerror</div><div class='add'>+#define dln_exit rb_exit</div><div class='add'>+#define dln_loaderror rb_loaderror</div><div class='add'>+#else</div><div class='add'>+#define dln_notimplement ---&gt;&gt;&gt; dln not implemented &lt;&lt;&lt;---</div><div class='add'>+#define dln_memerror abort</div><div class='add'>+#define dln_exit exit</div><div class='add'>+static void dln_loaderror(const char *format, ...);</div><div class='add'>+#endif</div><div class='ctx'> #include "dln.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_STDLIB_H</div><div class='ctx'> # include &lt;stdlib.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef __CHECKER__</div><div class='del'>-#undef HAVE_DLOPEN</div><div class='del'>-#undef USE_DLN_A_OUT</div><div class='del'>-#undef USE_DLN_DLOPEN</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='ctx'> char *dln_argv0;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -43,15 +47,18 @@ void *xcalloc();</div><div class='ctx'> void *xrealloc();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#undef free</div><div class='add'>+#define free(x) xfree(x)</div><div class='add'>+</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='del'>-#if defined(_WIN32) || defined(__VMS)</div><div class='add'>+#if defined(_WIN32)</div><div class='ctx'> #include "missing/file.h"</div><div class='ctx'> #endif</div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='ctx'> #ifndef S_ISDIR</div><div class='del'>-#   define S_ISDIR(m) ((m &amp; S_IFMT) == S_IFDIR)</div><div class='add'>+#   define S_ISDIR(m) (((m) &amp; S_IFMT) == S_IFDIR)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_SYS_PARAM_H</div><div class='hunk'>@@ -69,75 +76,74 @@ void *xrealloc();</div><div class='ctx'> char *getenv();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(__VMS)</div><div class='del'>-#pragma builtins</div><div class='del'>-#include &lt;dlfcn.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __MACOS__</div><div class='del'>-# include &lt;TextUtils.h&gt;</div><div class='del'>-# include &lt;CodeFragments.h&gt;</div><div class='del'>-# include &lt;Aliases.h&gt;</div><div class='del'>-# include "macruby_private.h"</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+# if defined(HAVE_DLOPEN)</div><div class='add'>+   /* Mac OS X with dlopen (10.3 or later) */</div><div class='add'>+#  define MACOSX_DLOPEN</div><div class='add'>+# else</div><div class='add'>+#  define MACOSX_DYLD</div><div class='add'>+# endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef __BEOS__</div><div class='del'>-# include &lt;image.h&gt;</div><div class='add'>+#ifndef dln_loaderror</div><div class='add'>+static void</div><div class='add'>+dln_loaderror(const char *format, ...)</div><div class='add'>+{</div><div class='add'>+    va_list ap;</div><div class='add'>+    va_start(ap, format);</div><div class='add'>+    vfprintf(stderr, format, ap);</div><div class='add'>+    va_end(ap);</div><div class='add'>+    abort();</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef NO_DLN_LOAD</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_DLOPEN) &amp;&amp; !defined(USE_DLN_A_OUT) &amp;&amp; !defined(_AIX) &amp;&amp; !defined(__APPLE__) &amp;&amp; !defined(_UNICOSMP)</div><div class='add'>+#if defined(HAVE_DLOPEN) &amp;&amp; !defined(USE_DLN_A_OUT) &amp;&amp; !defined(_AIX) &amp;&amp; !defined(MACOSX_DYLD) &amp;&amp; !defined(_UNICOSMP)</div><div class='ctx'> /* dynamic load with dlopen() */</div><div class='ctx'> # define USE_DLN_DLOPEN</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef FUNCNAME_PATTERN</div><div class='del'>-# if defined(__hp9000s300) ||  (defined(__NetBSD__) &amp;&amp; !defined(__ELF__)) || defined(__BORLANDC__) || (defined(__FreeBSD__) &amp;&amp; !defined(__ELF__)) || (defined(__OpenBSD__) &amp;&amp; !defined(__ELF__)) || defined(NeXT) || defined(__WATCOMC__) || defined(__APPLE__)</div><div class='del'>-#  define FUNCNAME_PATTERN "_Init_%s"</div><div class='del'>-# else</div><div class='del'>-#  define FUNCNAME_PATTERN "Init_%s"</div><div class='del'>-# endif</div><div class='add'>+#if defined(__hp9000s300) || ((defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)) &amp;&amp; !defined(__ELF__)) || defined(NeXT) || defined(MACOSX_DYLD)</div><div class='add'>+# define EXTERNAL_PREFIX "_"</div><div class='add'>+#else</div><div class='add'>+# define EXTERNAL_PREFIX ""</div><div class='ctx'> #endif</div><div class='add'>+#define FUNCNAME_PREFIX EXTERNAL_PREFIX"Init_"</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-init_funcname_len(buf, file)</div><div class='del'>-    char **buf;</div><div class='del'>-    const char *file;</div><div class='del'>-{</div><div class='del'>-    char *p;</div><div class='del'>-    const char *slash;</div><div class='del'>-    int len;</div><div class='del'>-</div><div class='del'>-    /* Load the file as an object one */</div><div class='del'>-    for (slash = file-1; *file; file++) /* Find position of last '/' */</div><div class='del'>-#ifdef __MACOS__</div><div class='del'>-	if (*file == ':') slash = file;</div><div class='add'>+#if defined __CYGWIN__ || defined DOSISH</div><div class='add'>+#define isdirsep(x) ((x) == '/' || (x) == '\\')</div><div class='ctx'> #else</div><div class='del'>-	if (*file == '/') slash = file;</div><div class='add'>+#define isdirsep(x) ((x) == '/')</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    len = strlen(FUNCNAME_PATTERN) + strlen(slash + 1);</div><div class='del'>-    *buf = xmalloc(len);</div><div class='del'>-    snprintf(*buf, len, FUNCNAME_PATTERN, slash + 1);</div><div class='del'>-    for (p = *buf; *p; p++) {         /* Delete suffix if it exists */</div><div class='del'>-	if (*p == '.') {</div><div class='del'>-	    *p = '\0'; break;</div><div class='del'>-	}</div><div class='add'>+static size_t</div><div class='add'>+init_funcname_len(const char **file)</div><div class='add'>+{</div><div class='add'>+    const char *p = *file, *base, *dot = NULL;</div><div class='add'>+</div><div class='add'>+    /* Load the file as an object one */</div><div class='add'>+    for (base = p; *p; p++) { /* Find position of last '/' */</div><div class='add'>+	if (*p == '.' &amp;&amp; !dot) dot = p;</div><div class='add'>+	if (isdirsep(*p)) base = p+1, dot = NULL;</div><div class='ctx'>     }</div><div class='del'>-    return p - *buf;</div><div class='add'>+    *file = base;</div><div class='add'>+    /* Delete suffix if it exists */</div><div class='add'>+    return (dot ? dot : p) - base;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const char funcname_prefix[sizeof(FUNCNAME_PREFIX) - 1] = FUNCNAME_PREFIX;</div><div class='add'>+</div><div class='ctx'> #define init_funcname(buf, file) do {\</div><div class='del'>-    int len = init_funcname_len(buf, file);\</div><div class='del'>-    char *tmp = ALLOCA_N(char, len+1);\</div><div class='add'>+    const char *base = (file);\</div><div class='add'>+    const size_t flen = init_funcname_len(&amp;base);\</div><div class='add'>+    const size_t plen = sizeof(funcname_prefix);\</div><div class='add'>+    char *const tmp = ALLOCA_N(char, plen+flen+1);\</div><div class='ctx'>     if (!tmp) {\</div><div class='del'>-	free(*buf);\</div><div class='del'>-	rb_memerror();\</div><div class='add'>+	dln_memerror();\</div><div class='ctx'>     }\</div><div class='del'>-    strcpy(tmp, *buf);\</div><div class='del'>-    free(*buf);\</div><div class='del'>-    *buf = tmp;\</div><div class='add'>+    memcpy(tmp, funcname_prefix, plen);\</div><div class='add'>+    memcpy(tmp+plen, base, flen);\</div><div class='add'>+    tmp[plen+flen] = '\0';\</div><div class='add'>+    *(buf) = tmp;\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='hunk'>@@ -175,8 +181,8 @@ static int dln_init_p = 0;</div><div class='ctx'> </div><div class='ctx'> #define INVALID_OBJECT(h) (N_MAGIC(h) != OMAGIC)</div><div class='ctx'> </div><div class='del'>-#include "util.h"</div><div class='del'>-#include "st.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='ctx'> </div><div class='ctx'> static st_table *sym_tbl;</div><div class='ctx'> static st_table *undef_tbl;</div><div class='hunk'>@@ -184,10 +190,7 @@ static st_table *undef_tbl;</div><div class='ctx'> static int load_lib();</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-load_header(fd, hdrp, disp)</div><div class='del'>-    int fd;</div><div class='del'>-    struct exec *hdrp;</div><div class='del'>-    long disp;</div><div class='add'>+load_header(int fd, struct exec *hdrp, long disp)</div><div class='ctx'> {</div><div class='ctx'>     int size;</div><div class='ctx'> </div><div class='hunk'>@@ -221,7 +224,7 @@ load_header(fd, hdrp, disp)</div><div class='ctx'> #define RELOC_TARGET_SIZE(r)		((r)-&gt;r_length)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(sun) &amp;&amp; defined(sparc)</div><div class='add'>+#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='ctx'> /* Sparc (Sun 4) macros */</div><div class='ctx'> #  undef relocation_info</div><div class='ctx'> #  define relocation_info reloc_info_sparc</div><div class='hunk'>@@ -257,10 +260,7 @@ static int reloc_r_length[] = {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static struct relocation_info *</div><div class='del'>-load_reloc(fd, hdrp, disp)</div><div class='del'>-     int fd;</div><div class='del'>-     struct exec *hdrp;</div><div class='del'>-     long disp;</div><div class='add'>+load_reloc(int fd, struct exec *hdrp, long disp)</div><div class='ctx'> {</div><div class='ctx'>     struct relocation_info *reloc;</div><div class='ctx'>     int size;</div><div class='hunk'>@@ -283,10 +283,7 @@ load_reloc(fd, hdrp, disp)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct nlist *</div><div class='del'>-load_sym(fd, hdrp, disp)</div><div class='del'>-    int fd;</div><div class='del'>-    struct exec *hdrp;</div><div class='del'>-    long disp;</div><div class='add'>+load_sym(int fd, struct exec *hdrp, long disp)</div><div class='ctx'> {</div><div class='ctx'>     struct nlist * buffer;</div><div class='ctx'>     struct nlist * sym;</div><div class='hunk'>@@ -327,9 +324,7 @@ load_sym(fd, hdrp, disp)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static st_table *</div><div class='del'>-sym_hash(hdrp, syms)</div><div class='del'>-    struct exec *hdrp;</div><div class='del'>-    struct nlist *syms;</div><div class='add'>+sym_hash(struct exec *hdrp, struct nlist *syms)</div><div class='ctx'> {</div><div class='ctx'>     st_table *tbl;</div><div class='ctx'>     struct nlist *sym = syms;</div><div class='hunk'>@@ -349,17 +344,16 @@ sym_hash(hdrp, syms)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-dln_init(prog)</div><div class='del'>-    const char *prog;</div><div class='add'>+dln_init(const char *prog)</div><div class='ctx'> {</div><div class='del'>-    char *file;</div><div class='add'>+    char *file, fbuf[MAXPATHLEN];</div><div class='ctx'>     int fd;</div><div class='ctx'>     struct exec hdr;</div><div class='ctx'>     struct nlist *syms;</div><div class='ctx'> </div><div class='ctx'>     if (dln_init_p == 1) return 0;</div><div class='ctx'> </div><div class='del'>-    file = dln_find_exe(prog, NULL);</div><div class='add'>+    file = dln_find_exe_r(prog, NULL, fbuf, sizeof(fbuf));</div><div class='ctx'>     if (file == NULL || (fd = open(file, O_RDONLY)) &lt; 0) {</div><div class='ctx'> 	dln_errno = errno;</div><div class='ctx'> 	return -1;</div><div class='hunk'>@@ -424,11 +418,7 @@ dln_init(prog)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-load_text_data(fd, hdrp, bss, disp)</div><div class='del'>-    int fd;</div><div class='del'>-    struct exec *hdrp;</div><div class='del'>-    int bss;</div><div class='del'>-    long disp;</div><div class='add'>+load_text_data(int fd, struct exec *hdrp, int bss, long disp)</div><div class='ctx'> {</div><div class='ctx'>     int size;</div><div class='ctx'>     unsigned char* addr;</div><div class='hunk'>@@ -462,27 +452,26 @@ load_text_data(fd, hdrp, bss, disp)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-undef_print(key, value)</div><div class='del'>-    char *key, *value;</div><div class='add'>+undef_print(char *key, char *value)</div><div class='ctx'> {</div><div class='ctx'>     fprintf(stderr, "  %s\n", key);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-dln_print_undef()</div><div class='add'>+dln_print_undef(void)</div><div class='ctx'> {</div><div class='ctx'>     fprintf(stderr, " Undefined symbols:\n");</div><div class='ctx'>     st_foreach(undef_tbl, undef_print, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-dln_undefined()</div><div class='add'>+dln_undefined(void)</div><div class='ctx'> {</div><div class='ctx'>     if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='ctx'> 	fprintf(stderr, "dln: Calling undefined function\n");</div><div class='ctx'> 	dln_print_undef();</div><div class='del'>-	rb_exit(1);</div><div class='add'>+	dln_exit(1);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -500,10 +489,7 @@ struct undef {</div><div class='ctx'> </div><div class='ctx'> static st_table *reloc_tbl = NULL;</div><div class='ctx'> static void</div><div class='del'>-link_undef(name, base, reloc)</div><div class='del'>-    const char *name;</div><div class='del'>-    long base;</div><div class='del'>-    struct relocation_info *reloc;</div><div class='add'>+link_undef(const char *name, long base, struct relocation_info *reloc)</div><div class='ctx'> {</div><div class='ctx'>     static int u_no = 0;</div><div class='ctx'>     struct undef *obj;</div><div class='hunk'>@@ -536,14 +522,11 @@ struct reloc_arg {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-reloc_undef(no, undef, arg)</div><div class='del'>-    int no;</div><div class='del'>-    struct undef *undef;</div><div class='del'>-    struct reloc_arg *arg;</div><div class='add'>+reloc_undef(int no, struct undef *undef, struct reloc_arg *arg)</div><div class='ctx'> {</div><div class='ctx'>     int datum;</div><div class='ctx'>     char *address;</div><div class='del'>-#if defined(sun) &amp;&amp; defined(sparc)</div><div class='add'>+#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='ctx'>     unsigned int mask = 0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -552,7 +535,7 @@ reloc_undef(no, undef, arg)</div><div class='ctx'>     datum = arg-&gt;value;</div><div class='ctx'> </div><div class='ctx'>     if (R_PCREL(&amp;(undef-&gt;reloc))) datum -= undef-&gt;base;</div><div class='del'>-#if defined(sun) &amp;&amp; defined(sparc)</div><div class='add'>+#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='ctx'>     datum += undef-&gt;reloc.r_addend;</div><div class='ctx'>     datum &gt;&gt;= R_RIGHTSHIFT(&amp;(undef-&gt;reloc));</div><div class='ctx'>     mask = (1 &lt;&lt; R_BITSIZE(&amp;(undef-&gt;reloc))) - 1;</div><div class='hunk'>@@ -600,9 +583,7 @@ reloc_undef(no, undef, arg)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-unlink_undef(name, value)</div><div class='del'>-    const char *name;</div><div class='del'>-    long value;</div><div class='add'>+unlink_undef(const char *name, long value)</div><div class='ctx'> {</div><div class='ctx'>     struct reloc_arg arg;</div><div class='ctx'> </div><div class='hunk'>@@ -617,10 +598,7 @@ struct indr_data {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-reloc_repl(no, undef, data)</div><div class='del'>-    int no;</div><div class='del'>-    struct undef *undef;</div><div class='del'>-    struct indr_data *data;</div><div class='add'>+reloc_repl(int no, struct undef *undef, struct indr_data *data)</div><div class='ctx'> {</div><div class='ctx'>     if (strcmp(data-&gt;name0, undef-&gt;name) == 0) {</div><div class='ctx'> 	free(undef-&gt;name);</div><div class='hunk'>@@ -631,12 +609,9 @@ reloc_repl(no, undef, data)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-load_1(fd, disp, need_init)</div><div class='del'>-    int fd;</div><div class='del'>-    long disp;</div><div class='del'>-    const char *need_init;</div><div class='add'>+load_1(int fd, long disp, const char *need_init)</div><div class='ctx'> {</div><div class='del'>-    static char *libc = LIBC_NAME;</div><div class='add'>+    static const char *libc = LIBC_NAME;</div><div class='ctx'>     struct exec hdr;</div><div class='ctx'>     struct relocation_info *reloc = NULL;</div><div class='ctx'>     long block = 0;</div><div class='hunk'>@@ -784,11 +759,11 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 	while (rel &lt; rel_end) {</div><div class='ctx'> 	    char *address = (char*)(rel-&gt;r_address + block);</div><div class='ctx'> 	    long datum = 0;</div><div class='del'>-#if defined(sun) &amp;&amp; defined(sparc)</div><div class='add'>+#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='ctx'> 	    unsigned int mask = 0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-	    if(rel &gt;= rel_beg)</div><div class='add'>+	    if (rel &gt;= rel_beg)</div><div class='ctx'> 		address += hdr.a_text;</div><div class='ctx'> </div><div class='ctx'> 	    if (rel-&gt;r_extern) { /* Look it up in symbol-table */</div><div class='hunk'>@@ -805,7 +780,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 		}</div><div class='ctx'> 	    } /* end.. look it up */</div><div class='ctx'> 	    else { /* is static */</div><div class='del'>-		switch (R_SYMBOL(rel)) { </div><div class='add'>+		switch (R_SYMBOL(rel)) {</div><div class='ctx'> 		  case N_TEXT:</div><div class='ctx'> 		  case N_DATA:</div><div class='ctx'> 		    datum = block;</div><div class='hunk'>@@ -819,7 +794,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 	    } /* end .. is static */</div><div class='ctx'> 	    if (R_PCREL(rel)) datum -= block;</div><div class='ctx'> </div><div class='del'>-#if defined(sun) &amp;&amp; defined(sparc)</div><div class='add'>+#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='ctx'> 	    datum += rel-&gt;r_addend;</div><div class='ctx'> 	    datum &gt;&gt;= R_RIGHTSHIFT(rel);</div><div class='ctx'> 	    mask = (1 &lt;&lt; R_BITSIZE(rel)) - 1;</div><div class='hunk'>@@ -915,10 +890,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> </div><div class='ctx'> static int target_offset;</div><div class='ctx'> static int</div><div class='del'>-search_undef(key, value, lib_tbl)</div><div class='del'>-    const char *key;</div><div class='del'>-    int value;</div><div class='del'>-    st_table *lib_tbl;</div><div class='add'>+search_undef(const char *key, int value, st_table *lib_tbl)</div><div class='ctx'> {</div><div class='ctx'>     long offset;</div><div class='ctx'> </div><div class='hunk'>@@ -932,13 +904,13 @@ struct symdef {</div><div class='ctx'>     int lib_offset;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-char *dln_librrb_ary_path = DLN_DEFAULT_LIB_PATH;</div><div class='add'>+const char *dln_librrb_ary_path = DLN_DEFAULT_LIB_PATH;</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-load_lib(lib)</div><div class='del'>-    const char *lib;</div><div class='add'>+load_lib(const char *lib)</div><div class='ctx'> {</div><div class='del'>-    char *path, *file;</div><div class='add'>+    char *path, *file, fbuf[MAXPATHLEN];</div><div class='add'>+    char *envpath = 0;</div><div class='ctx'>     char armagic[SARMAG];</div><div class='ctx'>     int fd, size;</div><div class='ctx'>     struct ar_hdr ahdr;</div><div class='hunk'>@@ -968,8 +940,10 @@ load_lib(lib)</div><div class='ctx'>     /* if path is still NULL, use "." for path. */</div><div class='ctx'>     path = getenv("DLN_LIBRARY_PATH");</div><div class='ctx'>     if (path == NULL) path = dln_librrb_ary_path;</div><div class='add'>+    else path = envpath = strdup(path);</div><div class='ctx'> </div><div class='del'>-    file = dln_find_file(lib, path);</div><div class='add'>+    file = dln_find_file_r(lib, path, fbuf, sizeof(fbuf));</div><div class='add'>+    if (envpath) free(envpath);</div><div class='ctx'>     fd = open(file, O_RDONLY);</div><div class='ctx'>     if (fd == -1) goto syserr;</div><div class='ctx'>     size = read(fd, armagic, SARMAG);</div><div class='hunk'>@@ -1073,8 +1047,7 @@ load_lib(lib)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-load(file)</div><div class='del'>-    const char *file;</div><div class='add'>+load(const char *file)</div><div class='ctx'> {</div><div class='ctx'>     int fd;</div><div class='ctx'>     int result;</div><div class='hunk'>@@ -1099,8 +1072,7 @@ load(file)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void*</div><div class='del'>-dln_sym(name)</div><div class='del'>-    const char *name;</div><div class='add'>+dln_sym(const char *name)</div><div class='ctx'> {</div><div class='ctx'>     struct nlist *sym;</div><div class='ctx'> </div><div class='hunk'>@@ -1112,12 +1084,7 @@ dln_sym(name)</div><div class='ctx'> #endif /* USE_DLN_A_OUT */</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_DLN_DLOPEN</div><div class='del'>-# if defined(__NetBSD__) &amp;&amp; defined(__NetBSD_Version__) &amp;&amp; __NetBSD_Version__ &lt; 105000000</div><div class='del'>-#  include &lt;nlist.h&gt;</div><div class='del'>-#  include &lt;link.h&gt;</div><div class='del'>-# else</div><div class='del'>-#  include &lt;dlfcn.h&gt;</div><div class='del'>-# endif</div><div class='add'>+# include &lt;dlfcn.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef __hpux</div><div class='hunk'>@@ -1141,26 +1108,40 @@ dln_sym(name)</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'> #else</div><div class='del'>-#ifdef __APPLE__</div><div class='add'>+#ifdef MACOSX_DYLD</div><div class='ctx'> #include &lt;mach-o/dyld.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='add'>+#ifdef _WIN32</div><div class='ctx'> #include &lt;windows.h&gt;</div><div class='add'>+#include &lt;imagehlp.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef _WIN32_WCE</div><div class='del'>-#undef FormatMessage</div><div class='del'>-#define FormatMessage FormatMessageA</div><div class='del'>-#undef LoadLibrary</div><div class='del'>-#define LoadLibrary LoadLibraryA</div><div class='del'>-#undef GetProcAddress</div><div class='del'>-#define GetProcAddress GetProcAddressA</div><div class='del'>-#endif</div><div class='del'>-</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+static const char *</div><div class='add'>+dln_strerror(char *message, size_t size)</div><div class='add'>+{</div><div class='add'>+    int error = GetLastError();</div><div class='add'>+    char *p = message;</div><div class='add'>+    size_t len = snprintf(message, size, "%d: ", error);</div><div class='add'>+</div><div class='add'>+#define format_message(sublang) FormatMessage(\</div><div class='add'>+	FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,	\</div><div class='add'>+	NULL, error, MAKELANGID(LANG_NEUTRAL, (sublang)),		\</div><div class='add'>+	message + len, size - len, NULL)</div><div class='add'>+    if (format_message(SUBLANG_ENGLISH_US) == 0)</div><div class='add'>+	format_message(SUBLANG_DEFAULT);</div><div class='add'>+    for (p = message + len; *p; p++) {</div><div class='add'>+	if (*p == '\n' || *p == '\r')</div><div class='add'>+	    *p = ' ';</div><div class='add'>+    }</div><div class='add'>+    return message;</div><div class='add'>+}</div><div class='add'>+#define dln_strerror() dln_strerror(message, sizeof message)</div><div class='add'>+#elif ! defined _AIX</div><div class='ctx'> static const char *</div><div class='del'>-dln_strerror()</div><div class='add'>+dln_strerror(void)</div><div class='ctx'> {</div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='ctx'>     char *strerror();</div><div class='hunk'>@@ -1186,127 +1167,126 @@ dln_strerror()</div><div class='ctx'> #ifdef USE_DLN_DLOPEN</div><div class='ctx'>     return (char*)dlerror();</div><div class='ctx'> #endif</div><div class='del'>-</div><div class='del'>-#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='del'>-    static char message[1024];</div><div class='del'>-    int error = GetLastError();</div><div class='del'>-    char *p = message;</div><div class='del'>-    p += sprintf(message, "%d: ", error);</div><div class='del'>-    FormatMessage(</div><div class='del'>-	FORMAT_MESSAGE_FROM_SYSTEM	 | FORMAT_MESSAGE_IGNORE_INSERTS,</div><div class='del'>-	NULL,</div><div class='del'>-	error,</div><div class='del'>-	MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),</div><div class='del'>-	p,</div><div class='del'>-	sizeof message - strlen(message),</div><div class='del'>-	NULL);</div><div class='del'>-</div><div class='del'>-    for (p = message; *p; p++) {</div><div class='del'>-	if (*p == '\n' || *p == '\r')</div><div class='del'>-	    *p = ' ';</div><div class='del'>-    }</div><div class='del'>-    return message;</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='del'>-</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #if defined(_AIX) &amp;&amp; ! defined(_IA64)</div><div class='ctx'> static void</div><div class='ctx'> aix_loaderror(const char *pathname)</div><div class='ctx'> {</div><div class='del'>-    char *message[8], errbuf[1024];</div><div class='del'>-    int i,j;</div><div class='del'>-</div><div class='del'>-    struct errtab { </div><div class='del'>-	int errnum;</div><div class='del'>-	char *errstr;</div><div class='del'>-    } load_errtab[] = {</div><div class='del'>-	{L_ERROR_TOOMANY,	"too many errors, rest skipped."},</div><div class='del'>-	{L_ERROR_NOLIB,		"can't load library:"},</div><div class='del'>-	{L_ERROR_UNDEF,		"can't find symbol in library:"},</div><div class='del'>-	{L_ERROR_RLDBAD,</div><div class='del'>-	     "RLD index out of range or bad relocation type:"},</div><div class='del'>-	{L_ERROR_FORMAT,	"not a valid, executable xcoff file:"},</div><div class='del'>-	{L_ERROR_MEMBER,</div><div class='del'>-	     "file not an archive or does not contain requested member:"},</div><div class='del'>-	{L_ERROR_TYPE,		"symbol table mismatch:"},</div><div class='del'>-	{L_ERROR_ALIGN,		"text alignment in file is wrong."},</div><div class='del'>-	{L_ERROR_SYSTEM,	"System error:"},</div><div class='del'>-	{L_ERROR_ERRNO,		NULL}</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-#define LOAD_ERRTAB_LEN	(sizeof(load_errtab)/sizeof(load_errtab[0]))</div><div class='del'>-#define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1)</div><div class='del'>-</div><div class='del'>-    snprintf(errbuf, 1024, "load failed - %s ", pathname);</div><div class='del'>-</div><div class='del'>-    if (!loadquery(1, &amp;message[0], sizeof(message))) </div><div class='del'>-	ERRBUF_APPEND(strerror(errno));</div><div class='del'>-    for(i = 0; message[i] &amp;&amp; *message[i]; i++) {</div><div class='del'>-	int nerr = atoi(message[i]);</div><div class='del'>-	for (j=0; j&lt;LOAD_ERRTAB_LEN; j++) {</div><div class='del'>-           if (nerr == load_errtab[i].errnum &amp;&amp; load_errtab[i].errstr)</div><div class='del'>-		ERRBUF_APPEND(load_errtab[i].errstr);</div><div class='add'>+    char *message[1024], errbuf[1024];</div><div class='add'>+    int i;</div><div class='add'>+#define ERRBUF_APPEND(s) strlcat(errbuf, (s), sizeof(errbuf))</div><div class='add'>+    snprintf(errbuf, sizeof(errbuf), "load failed - %s. ", pathname);</div><div class='add'>+</div><div class='add'>+    if (loadquery(L_GETMESSAGES, &amp;message[0], sizeof(message)) != -1) {</div><div class='add'>+	ERRBUF_APPEND("Please issue below command for detailed reasons:\n\t");</div><div class='add'>+	ERRBUF_APPEND("/usr/sbin/execerror ruby ");</div><div class='add'>+	for (i=0; message[i]; i++) {</div><div class='add'>+	    ERRBUF_APPEND("\"");</div><div class='add'>+	    ERRBUF_APPEND(message[i]);</div><div class='add'>+	    ERRBUF_APPEND("\" ");</div><div class='ctx'> 	}</div><div class='del'>-	while (isdigit(*message[i])) message[i]++; </div><div class='del'>-	ERRBUF_APPEND(message[i]);</div><div class='ctx'> 	ERRBUF_APPEND("\n");</div><div class='ctx'>     }</div><div class='del'>-    errbuf[strlen(errbuf)-1] = '\0';	/* trim off last newline */</div><div class='del'>-    rb_loaderror(errbuf);</div><div class='del'>-    return;</div><div class='add'>+    else {</div><div class='add'>+	ERRBUF_APPEND(strerror(errno));</div><div class='add'>+	ERRBUF_APPEND("[loadquery failed]");</div><div class='add'>+    }</div><div class='add'>+    dln_loaderror("%s", errbuf);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(__VMS)</div><div class='del'>-#include &lt;starlet.h&gt;</div><div class='del'>-#include &lt;rms.h&gt;</div><div class='del'>-#include &lt;stsdef.h&gt;</div><div class='del'>-#include &lt;unixlib.h&gt;</div><div class='del'>-#include &lt;descrip.h&gt;</div><div class='del'>-#include &lt;lib$routines.h&gt;</div><div class='del'>-</div><div class='del'>-static char *vms_filespec;</div><div class='del'>-static int vms_fileact(char *filespec, int type);</div><div class='del'>-static long vms_fisexh(long *sigarr, long *mecarr);</div><div class='add'>+#if defined _WIN32 &amp;&amp; defined RUBY_EXPORT</div><div class='add'>+HANDLE rb_libruby_handle(void);</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_w32_check_imported(HMODULE ext, HMODULE mine)</div><div class='add'>+{</div><div class='add'>+    ULONG size;</div><div class='add'>+    const IMAGE_IMPORT_DESCRIPTOR *desc;</div><div class='add'>+</div><div class='add'>+    desc = ImageDirectoryEntryToData(ext, TRUE, IMAGE_DIRECTORY_ENTRY_IMPORT, &amp;size);</div><div class='add'>+    if (!desc) return 0;</div><div class='add'>+    while (desc-&gt;Name) {</div><div class='add'>+	PIMAGE_THUNK_DATA pint = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;Characteristics);</div><div class='add'>+	PIMAGE_THUNK_DATA piat = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;FirstThunk);</div><div class='add'>+	for (; piat-&gt;u1.Function; piat++, pint++) {</div><div class='add'>+	    static const char prefix[] = "rb_";</div><div class='add'>+	    PIMAGE_IMPORT_BY_NAME pii;</div><div class='add'>+	    const char *name;</div><div class='add'>+</div><div class='add'>+	    if (IMAGE_SNAP_BY_ORDINAL(pint-&gt;u1.Ordinal)) continue;</div><div class='add'>+	    pii = (PIMAGE_IMPORT_BY_NAME)((char *)ext + (size_t)pint-&gt;u1.AddressOfData);</div><div class='add'>+	    name = (const char *)pii-&gt;Name;</div><div class='add'>+	    if (strncmp(name, prefix, sizeof(prefix) - 1) == 0) {</div><div class='add'>+		FARPROC addr = GetProcAddress(mine, name);</div><div class='add'>+		if (addr) return (FARPROC)piat-&gt;u1.Function == addr;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	desc++;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#endif /* NO_DLN_LOAD */</div><div class='add'>+#if defined(DLN_NEEDS_ALT_SEPARATOR) &amp;&amp; DLN_NEEDS_ALT_SEPARATOR</div><div class='add'>+#define translit_separator(src) do { \</div><div class='add'>+	char *tmp = ALLOCA_N(char, strlen(src) + 1), *p = tmp, c; \</div><div class='add'>+	do { \</div><div class='add'>+	    *p++ = ((c = *file++) == '/') ? DLN_NEEDS_ALT_SEPARATOR : c; \</div><div class='add'>+	} while (c); \</div><div class='add'>+	(src) = tmp; \</div><div class='add'>+    } while (0)</div><div class='add'>+#else</div><div class='add'>+#define translit_separator(str) (void)(str)</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> void*</div><div class='del'>-dln_load(file)</div><div class='del'>-    const char *file;</div><div class='add'>+dln_load(const char *file)</div><div class='ctx'> {</div><div class='del'>-#ifdef NO_DLN_LOAD</div><div class='del'>-    rb_raise(rb_eLoadError, "this executable file can't load extension libraries");</div><div class='del'>-#else</div><div class='del'>-</div><div class='add'>+#if (defined _WIN32 || defined USE_DLN_DLOPEN) &amp;&amp; defined RUBY_EXPORT</div><div class='add'>+    static const char incompatible[] = "incompatible library version";</div><div class='add'>+#endif</div><div class='ctx'> #if !defined(_AIX) &amp;&amp; !defined(NeXT)</div><div class='ctx'>     const char *error = 0;</div><div class='del'>-#define DLN_ERROR() (error = dln_strerror(), strcpy(ALLOCA_N(char, strlen(error) + 1), error))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='add'>+#if defined _WIN32</div><div class='ctx'>     HINSTANCE handle;</div><div class='del'>-    char winfile[MAXPATHLEN];</div><div class='add'>+    WCHAR *winfile;</div><div class='add'>+    char message[1024];</div><div class='ctx'>     void (*init_fct)();</div><div class='ctx'>     char *buf;</div><div class='ctx'> </div><div class='del'>-    if (strlen(file) &gt;= MAXPATHLEN) rb_loaderror("filename too long");</div><div class='del'>-</div><div class='ctx'>     /* Load the file as an object one */</div><div class='ctx'>     init_funcname(&amp;buf, file);</div><div class='ctx'> </div><div class='del'>-    strcpy(winfile, file);</div><div class='add'>+    /* Convert the file path to wide char */</div><div class='add'>+    winfile = rb_w32_mbstr_to_wstr(CP_UTF8, file, -1, NULL);</div><div class='add'>+    if (!winfile) {</div><div class='add'>+	dln_memerror();</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     /* Load file */</div><div class='del'>-    if ((handle = LoadLibrary(winfile)) == NULL) {</div><div class='add'>+    handle = LoadLibraryW(winfile);</div><div class='add'>+    free(winfile);</div><div class='add'>+</div><div class='add'>+    if (!handle) {</div><div class='ctx'> 	error = dln_strerror();</div><div class='ctx'> 	goto failed;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+#if defined _WIN32 &amp;&amp; defined RUBY_EXPORT</div><div class='add'>+    if (!rb_w32_check_imported(handle, rb_libruby_handle())) {</div><div class='add'>+	FreeLibrary(handle);</div><div class='add'>+	error = incompatible;</div><div class='add'>+	goto failed;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     if ((init_fct = (void(*)())GetProcAddress(handle, buf)) == NULL) {</div><div class='del'>-	rb_loaderror("%s - %s\n%s", dln_strerror(), buf, file);</div><div class='add'>+	dln_loaderror("%s - %s\n%s", dln_strerror(), buf, file);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* Call the init code */</div><div class='hunk'>@@ -1324,6 +1304,7 @@ dln_load(file)</div><div class='ctx'>     char *buf;</div><div class='ctx'>     /* Load the file as an object one */</div><div class='ctx'>     init_funcname(&amp;buf, file);</div><div class='add'>+    translit_separator(file);</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_DLN_DLOPEN</div><div class='ctx'> #define DLN_DEFINED</div><div class='hunk'>@@ -1346,10 +1327,29 @@ dln_load(file)</div><div class='ctx'> 	    error = dln_strerror();</div><div class='ctx'> 	    goto failed;</div><div class='ctx'> 	}</div><div class='add'>+# if defined RUBY_EXPORT</div><div class='add'>+	{</div><div class='add'>+	    void *ex = dlsym(handle, EXTERNAL_PREFIX"ruby_xmalloc");</div><div class='add'>+	    if (ex &amp;&amp; ex != ruby_xmalloc) {</div><div class='add'>+</div><div class='add'>+#   if defined __APPLE__ &amp;&amp; \</div><div class='add'>+    defined(MAC_OS_X_VERSION_MIN_REQUIRED) &amp;&amp; \</div><div class='add'>+    (MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_11)</div><div class='add'>+		/* dlclose() segfaults */</div><div class='add'>+		rb_fatal("%s - %s", incompatible, file);</div><div class='add'>+#   else</div><div class='add'>+		dlclose(handle);</div><div class='add'>+		error = incompatible;</div><div class='add'>+		goto failed;</div><div class='add'>+#   endif</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+# endif</div><div class='ctx'> </div><div class='del'>-	init_fct = (void(*)())dlsym(handle, buf);</div><div class='add'>+	init_fct = (void(*)())(VALUE)dlsym(handle, buf);</div><div class='ctx'> 	if (init_fct == NULL) {</div><div class='del'>-	    error = DLN_ERROR();</div><div class='add'>+	    const size_t errlen = strlen(error = dln_strerror()) + 1;</div><div class='add'>+	    error = memcpy(ALLOCA_N(char, errlen), error, errlen);</div><div class='ctx'> 	    dlclose(handle);</div><div class='ctx'> 	    goto failed;</div><div class='ctx'> 	}</div><div class='hunk'>@@ -1371,14 +1371,14 @@ dln_load(file)</div><div class='ctx'> 	lib = shl_load(file, flags, 0);</div><div class='ctx'> 	if (lib == NULL) {</div><div class='ctx'> 	    extern int errno;</div><div class='del'>-	    rb_loaderror("%s - %s", strerror(errno), file);</div><div class='add'>+	    dln_loaderror("%s - %s", strerror(errno), file);</div><div class='ctx'> 	}</div><div class='ctx'> 	shl_findsym(&amp;lib, buf, TYPE_PROCEDURE, (void*)&amp;init_fct);</div><div class='ctx'> 	if (init_fct == NULL) {</div><div class='ctx'> 	    shl_findsym(&amp;lib, buf, TYPE_UNDEFINED, (void*)&amp;init_fct);</div><div class='ctx'> 	    if (init_fct == NULL) {</div><div class='ctx'> 		errno = ENOSYM;</div><div class='del'>-		rb_loaderror("%s - %s", strerror(ENOSYM), file);</div><div class='add'>+		dln_loaderror("%s - %s", strerror(ENOSYM), file);</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'> 	(*init_fct)();</div><div class='hunk'>@@ -1403,54 +1403,17 @@ dln_load(file)</div><div class='ctx'>     }</div><div class='ctx'> #endif /* _AIX */</div><div class='ctx'> </div><div class='del'>-#if defined(NeXT) || defined(__APPLE__)</div><div class='add'>+#if defined(MACOSX_DYLD)</div><div class='ctx'> #define DLN_DEFINED</div><div class='ctx'> /*----------------------------------------------------</div><div class='ctx'>    By SHIROYAMA Takayuki Psi@fortune.nest.or.jp</div><div class='del'>- </div><div class='add'>+</div><div class='ctx'>    Special Thanks...</div><div class='ctx'>     Yu tomoak-i@is.aist-nara.ac.jp,</div><div class='ctx'>     Mi hisho@tasihara.nest.or.jp,</div><div class='ctx'>     sunshine@sunshineco.com,</div><div class='ctx'>     and... Miss ARAI Akino(^^;)</div><div class='ctx'>  ----------------------------------------------------*/</div><div class='del'>-#if defined(NeXT) &amp;&amp; (NS_TARGET_MAJOR &lt; 4)/* NeXTSTEP rld functions */</div><div class='del'>-</div><div class='del'>-    {</div><div class='del'>-        NXStream* s;</div><div class='del'>-	unsigned long init_address;</div><div class='del'>-	char *object_files[2] = {NULL, NULL};</div><div class='del'>-</div><div class='del'>-	void (*init_fct)();</div><div class='del'>-	</div><div class='del'>-	object_files[0] = (char*)file;</div><div class='del'>-	</div><div class='del'>-	s = NXOpenFile(2,NX_WRITEONLY);</div><div class='del'>-</div><div class='del'>-	/* Load object file, if return value ==0 ,  load failed*/</div><div class='del'>-	if(rld_load(s, NULL, object_files, NULL) == 0) {</div><div class='del'>-	    NXFlush(s);</div><div class='del'>-	    NXClose(s);</div><div class='del'>-	    rb_loaderror("Failed to load %.200s", file);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* lookup the initial function */</div><div class='del'>-	if(rld_lookup(s, buf, &amp;init_address) == 0) {</div><div class='del'>-	    NXFlush(s);</div><div class='del'>-	    NXClose(s);</div><div class='del'>-	    rb_loaderror("Failed to lookup Init function %.200s", file);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	NXFlush(s);</div><div class='del'>-	NXClose(s);</div><div class='del'>-</div><div class='del'>-	/* Cannot call *init_address directory, so copy this value to</div><div class='del'>-	   funtion pointer */</div><div class='del'>-	init_fct = (void(*)())init_address;</div><div class='del'>-	(*init_fct)();</div><div class='del'>-	return (void*)init_address;</div><div class='del'>-    }</div><div class='del'>-#else/* OPENSTEP dyld functions */</div><div class='ctx'>     {</div><div class='ctx'> 	int dyld_result;</div><div class='ctx'> 	NSObjectFileImage obj_file; /* handle, but not use it */</div><div class='hunk'>@@ -1463,399 +1426,32 @@ dln_load(file)</div><div class='ctx'> 	dyld_result = NSCreateObjectFileImageFromFile(file, &amp;obj_file);</div><div class='ctx'> </div><div class='ctx'> 	if (dyld_result != NSObjectFileImageSuccess) {</div><div class='del'>-	    rb_loaderror("Failed to load %.200s", file);</div><div class='add'>+	    dln_loaderror("Failed to load %.200s", file);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	NSLinkModule(obj_file, file, NSLINKMODULE_OPTION_BINDNOW);</div><div class='ctx'> </div><div class='ctx'> 	/* lookup the initial function */</div><div class='del'>-	if(!NSIsSymbolNameDefined(buf)) {</div><div class='del'>-	    rb_loaderror("Failed to lookup Init function %.200s",file);</div><div class='del'>-	}	</div><div class='add'>+	if (!NSIsSymbolNameDefined(buf)) {</div><div class='add'>+	    dln_loaderror("Failed to lookup Init function %.200s",file);</div><div class='add'>+	}</div><div class='ctx'> 	init_fct = NSAddressOfSymbol(NSLookupAndBindSymbol(buf));</div><div class='ctx'> 	(*init_fct)();</div><div class='ctx'> </div><div class='ctx'> 	return (void*)init_fct;</div><div class='ctx'>     }</div><div class='del'>-#endif /* rld or dyld */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef __BEOS__</div><div class='del'>-# define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-      status_t err_stat;  /* BeOS error status code */</div><div class='del'>-      image_id img_id;    /* extention module unique id */</div><div class='del'>-      void (*init_fct)(); /* initialize function for extention module */</div><div class='del'>-</div><div class='del'>-      /* load extention module */</div><div class='del'>-      img_id = load_add_on(file);</div><div class='del'>-      if (img_id &lt;= 0) {</div><div class='del'>-	rb_loaderror("Failed to load %.200s", file);</div><div class='del'>-      }</div><div class='del'>-      </div><div class='del'>-      /* find symbol for module initialize function. */</div><div class='del'>-      /* The Be Book KernelKit Images section described to use</div><div class='del'>-	 B_SYMBOL_TYPE_TEXT for symbol of function, not</div><div class='del'>-	 B_SYMBOL_TYPE_CODE. Why ? */</div><div class='del'>-      /* strcat(init_fct_symname, "__Fv"); */  /* parameter nothing. */</div><div class='del'>-      /* "__Fv" dont need! The Be Book Bug ? */</div><div class='del'>-      err_stat = get_image_symbol(img_id, buf,</div><div class='del'>-				  B_SYMBOL_TYPE_TEXT, (void **)&amp;init_fct);</div><div class='del'>-</div><div class='del'>-      if (err_stat != B_NO_ERROR) {</div><div class='del'>-	char real_name[MAXPATHLEN];</div><div class='del'>-</div><div class='del'>-	strcpy(real_name, buf);</div><div class='del'>-	strcat(real_name, "__Fv");</div><div class='del'>-        err_stat = get_image_symbol(img_id, real_name,</div><div class='del'>-				    B_SYMBOL_TYPE_TEXT, (void **)&amp;init_fct);</div><div class='del'>-      }</div><div class='del'>-</div><div class='del'>-      if ((B_BAD_IMAGE_ID == err_stat) || (B_BAD_INDEX == err_stat)) {</div><div class='del'>-	unload_add_on(img_id);</div><div class='del'>-	rb_loaderror("Failed to lookup Init function %.200s", file);</div><div class='del'>-      }</div><div class='del'>-      else if (B_NO_ERROR != err_stat) {</div><div class='del'>-	char errmsg[] = "Internal of BeOS version. %.200s (symbol_name = %s)";</div><div class='del'>-	unload_add_on(img_id);</div><div class='del'>-	rb_loaderror(errmsg, strerror(err_stat), buf);</div><div class='del'>-      }</div><div class='del'>-</div><div class='del'>-      /* call module initialize function. */</div><div class='del'>-      (*init_fct)();</div><div class='del'>-      return (void*)img_id;</div><div class='del'>-    }</div><div class='del'>-#endif /* __BEOS__*/</div><div class='del'>-</div><div class='del'>-#ifdef __MACOS__</div><div class='del'>-# define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-      OSErr err;</div><div class='del'>-      FSSpec libspec;</div><div class='del'>-      CFragConnectionID connID;</div><div class='del'>-      Ptr mainAddr;</div><div class='del'>-      char errMessage[1024];</div><div class='del'>-      Boolean isfolder, didsomething;</div><div class='del'>-      Str63 fragname;</div><div class='del'>-      Ptr symAddr;</div><div class='del'>-      CFragSymbolClass class;</div><div class='del'>-      void (*init_fct)();</div><div class='del'>-      char fullpath[MAXPATHLEN];</div><div class='del'>-</div><div class='del'>-      strcpy(fullpath, file);</div><div class='del'>-</div><div class='del'>-      /* resolve any aliases to find the real file */</div><div class='del'>-      c2pstr(fullpath);</div><div class='del'>-      (void)FSMakeFSSpec(0, 0, fullpath, &amp;libspec);</div><div class='del'>-      err = ResolveAliasFile(&amp;libspec, 1, &amp;isfolder, &amp;didsomething);</div><div class='del'>-      if (err) {</div><div class='del'>-	  rb_loaderror("Unresolved Alias - %s", file);</div><div class='del'>-      }</div><div class='del'>-</div><div class='del'>-      /* Load the fragment (or return the connID if it is already loaded */</div><div class='del'>-      fragname[0] = 0;</div><div class='del'>-      err = GetDiskFragment(&amp;libspec, 0, 0, fragname, </div><div class='del'>-			    kLoadCFrag, &amp;connID, &amp;mainAddr,</div><div class='del'>-			    errMessage);</div><div class='del'>-      if (err) {</div><div class='del'>-	  p2cstr(errMessage);</div><div class='del'>-	  rb_loaderror("%s - %s",errMessage , file);</div><div class='del'>-      }</div><div class='del'>-</div><div class='del'>-      /* Locate the address of the correct init function */</div><div class='del'>-      c2pstr(buf);</div><div class='del'>-      err = FindSymbol(connID, buf, &amp;symAddr, &amp;class);</div><div class='del'>-      if (err) {</div><div class='del'>-	  rb_loaderror("Unresolved symbols - %s" , file);</div><div class='del'>-      }</div><div class='del'>-      init_fct = (void (*)())symAddr;</div><div class='del'>-      (*init_fct)();</div><div class='del'>-      return (void*)init_fct;</div><div class='del'>-    }</div><div class='del'>-#endif /* __MACOS__ */</div><div class='del'>-</div><div class='del'>-#if defined(__VMS)</div><div class='del'>-#define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-	long status;</div><div class='del'>-	void (*init_fct)();</div><div class='del'>-	char *fname, *p1, *p2;</div><div class='del'>-</div><div class='del'>-	$DESCRIPTOR(fname_d, "");</div><div class='del'>-	$DESCRIPTOR(image_d, "");</div><div class='del'>-	$DESCRIPTOR(buf_d, "");</div><div class='del'>-</div><div class='del'>-	decc$to_vms(file, vms_fileact, 0, 0);</div><div class='del'>-</div><div class='del'>-	fname = (char *)__alloca(strlen(file)+1);</div><div class='del'>-	strcpy(fname,file);</div><div class='del'>-	if (p1 = strrchr(fname,'/'))</div><div class='del'>-	    fname = p1 + 1;</div><div class='del'>-	if (p2 = strrchr(fname,'.'))</div><div class='del'>-	    *p2 = '\0';</div><div class='del'>-</div><div class='del'>-	fname_d.dsc$w_length  = strlen(fname);</div><div class='del'>-	fname_d.dsc$a_pointer = fname;</div><div class='del'>-	image_d.dsc$w_length  = strlen(vms_filespec);</div><div class='del'>-	image_d.dsc$a_pointer = vms_filespec;</div><div class='del'>-	buf_d.dsc$w_length    = strlen(buf);</div><div class='del'>-	buf_d.dsc$a_pointer   = buf;</div><div class='del'>-</div><div class='del'>-	lib$establish(vms_fisexh);</div><div class='del'>-</div><div class='del'>-	status = lib$find_image_symbol (</div><div class='del'>-		     &amp;fname_d,</div><div class='del'>-		     &amp;buf_d, </div><div class='del'>-		     &amp;init_fct, </div><div class='del'>-		     &amp;image_d);</div><div class='del'>-</div><div class='del'>-	lib$establish(0);</div><div class='del'>-</div><div class='del'>-	if (status == RMS$_FNF) {</div><div class='del'>-	    error = dln_strerror();</div><div class='del'>-	    goto failed;</div><div class='del'>-	} else if (!$VMS_STATUS_SUCCESS(status)) {</div><div class='del'>-	    error = DLN_ERROR();</div><div class='del'>-	    goto failed;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* Call the init code */</div><div class='del'>-	(*init_fct)();</div><div class='del'>-</div><div class='del'>-	return 1;</div><div class='del'>-    }</div><div class='del'>-#endif /* __VMS */</div><div class='del'>-</div><div class='ctx'> #ifndef DLN_DEFINED</div><div class='del'>-    rb_notimplement();</div><div class='add'>+    dln_notimplement();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #endif /* USE_DLN_A_OUT */</div><div class='ctx'> #endif</div><div class='ctx'> #if !defined(_AIX) &amp;&amp; !defined(NeXT)</div><div class='ctx'>   failed:</div><div class='del'>-    rb_loaderror("%s - %s", error, file);</div><div class='add'>+    dln_loaderror("%s - %s", error, file);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#endif /* NO_DLN_LOAD */</div><div class='ctx'>     return 0;			/* dummy return */</div><div class='ctx'> }</div><div class='del'>-</div><div class='del'>-static char *dln_find_1();</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-dln_find_exe(fname, path)</div><div class='del'>-    const char *fname;</div><div class='del'>-    const char *path;</div><div class='del'>-{</div><div class='del'>-    if (!path) {</div><div class='del'>-	path = getenv(PATH_ENV);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!path) {</div><div class='del'>-#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__) || defined(__MACOS__)</div><div class='del'>-	path = "/usr/local/bin;/usr/ucb;/usr/bin;/bin;.";</div><div class='del'>-#else</div><div class='del'>-	path = "/usr/local/bin:/usr/ucb:/usr/bin:/bin:.";</div><div class='del'>-#endif</div><div class='del'>-    }</div><div class='del'>-    return dln_find_1(fname, path, 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-char *</div><div class='del'>-dln_find_file(fname, path)</div><div class='del'>-    const char *fname;</div><div class='del'>-    const char *path;</div><div class='del'>-{</div><div class='del'>-#ifndef __MACOS__</div><div class='del'>-    if (!path) path = ".";</div><div class='del'>-    return dln_find_1(fname, path, 0);</div><div class='del'>-#else</div><div class='del'>-    if (!path) path = ".";</div><div class='del'>-    return _macruby_path_conv_posix_to_macos(dln_find_1(fname, path, 0));</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static char fbuf[MAXPATHLEN];</div><div class='del'>-</div><div class='del'>-static char *</div><div class='del'>-dln_find_1(fname, path, exe_flag)</div><div class='del'>-    char *fname;</div><div class='del'>-    char *path;</div><div class='del'>-    int exe_flag;		/* non 0 if looking for executable. */</div><div class='del'>-{</div><div class='del'>-    register char *dp;</div><div class='del'>-    register char *ep;</div><div class='del'>-    register char *bp;</div><div class='del'>-    struct stat st;</div><div class='del'>-#ifdef __MACOS__</div><div class='del'>-    const char* mac_fullpath;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    if (!fname) return fname;</div><div class='del'>-    if (fname[0] == '/') return fname;</div><div class='del'>-    if (strncmp("./", fname, 2) == 0 || strncmp("../", fname, 3) == 0)</div><div class='del'>-      return fname;</div><div class='del'>-    if (exe_flag &amp;&amp; strchr(fname, '/')) return fname;</div><div class='del'>-#ifdef DOSISH</div><div class='del'>-    if (fname[0] == '\\') return fname;</div><div class='del'>-# ifdef DOSISH_DRIVE_LETTER</div><div class='del'>-    if (strlen(fname) &gt; 2 &amp;&amp; fname[1] == ':') return fname;</div><div class='del'>-# endif</div><div class='del'>-    if (strncmp(".\\", fname, 2) == 0 || strncmp("..\\", fname, 3) == 0)</div><div class='del'>-      return fname;</div><div class='del'>-    if (exe_flag &amp;&amp; strchr(fname, '\\')) return fname;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    for (dp = path;; dp = ++ep) {</div><div class='del'>-	register int l;</div><div class='del'>-	int i;</div><div class='del'>-	int fspace;</div><div class='del'>-</div><div class='del'>-	/* extract a component */</div><div class='del'>-	ep = strchr(dp, PATH_SEP[0]);</div><div class='del'>-	if (ep == NULL)</div><div class='del'>-	    ep = dp+strlen(dp);</div><div class='del'>-</div><div class='del'>-	/* find the length of that component */</div><div class='del'>-	l = ep - dp;</div><div class='del'>-	bp = fbuf;</div><div class='del'>-	fspace = sizeof fbuf - 2;</div><div class='del'>-	if (l &gt; 0) {</div><div class='del'>-	    /*</div><div class='del'>-	    **	If the length of the component is zero length,</div><div class='del'>-	    **	start from the current directory.  If the</div><div class='del'>-	    **	component begins with "~", start from the</div><div class='del'>-	    **	user's $HOME environment variable.  Otherwise</div><div class='del'>-	    **	take the path literally.</div><div class='del'>-	    */</div><div class='del'>-</div><div class='del'>-	    if (*dp == '~' &amp;&amp; (l == 1 ||</div><div class='del'>-#if defined(DOSISH)</div><div class='del'>-			       dp[1] == '\\' || </div><div class='del'>-#endif</div><div class='del'>-			       dp[1] == '/')) {</div><div class='del'>-		char *home;</div><div class='del'>-</div><div class='del'>-		home = getenv("HOME");</div><div class='del'>-		if (home != NULL) {</div><div class='del'>-		    i = strlen(home);</div><div class='del'>-		    if ((fspace -= i) &lt; 0)</div><div class='del'>-			goto toolong;</div><div class='del'>-		    memcpy(bp, home, i);</div><div class='del'>-		    bp += i;</div><div class='del'>-		}</div><div class='del'>-		dp++;</div><div class='del'>-		l--;</div><div class='del'>-	    }</div><div class='del'>-	    if (l &gt; 0) {</div><div class='del'>-		if ((fspace -= l) &lt; 0)</div><div class='del'>-		    goto toolong;</div><div class='del'>-		memcpy(bp, dp, l);</div><div class='del'>-		bp += l;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    /* add a "/" between directory and filename */</div><div class='del'>-	    if (ep[-1] != '/')</div><div class='del'>-		*bp++ = '/';</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* now append the file name */</div><div class='del'>-	i = strlen(fname);</div><div class='del'>-	if ((fspace -= i) &lt; 0) {</div><div class='del'>-	  toolong:</div><div class='del'>-	    fprintf(stderr, "openpath: pathname too long (ignored)\n");</div><div class='del'>-	    *bp = '\0';</div><div class='del'>-	    fprintf(stderr, "\tDirectory \"%s\"\n", fbuf);</div><div class='del'>-	    fprintf(stderr, "\tFile \"%s\"\n", fname);</div><div class='del'>-	    goto next;</div><div class='del'>-	}</div><div class='del'>-	memcpy(bp, fname, i + 1);</div><div class='del'>-</div><div class='del'>-#if defined(DOSISH)</div><div class='del'>-	if (exe_flag) {</div><div class='del'>-	    static const char extension[][5] = {</div><div class='del'>-#if defined(MSDOS)</div><div class='del'>-		".com", ".exe", ".bat",</div><div class='del'>-#if defined(DJGPP)</div><div class='del'>-		".btm", ".sh", ".ksh", ".pl", ".sed",</div><div class='del'>-#endif</div><div class='del'>-#elif defined(__EMX__) || defined(_WIN32)</div><div class='del'>-		".exe", ".com", ".cmd", ".bat",</div><div class='del'>-/* end of __EMX__ or _WIN32 */</div><div class='del'>-#else</div><div class='del'>-		".r", ".R", ".x", ".X", ".bat", ".BAT",</div><div class='del'>-/* __human68k__ */</div><div class='del'>-#endif</div><div class='del'>-	    };</div><div class='del'>-	    int j;</div><div class='del'>-</div><div class='del'>-	    for (j = 0; j &lt; sizeof(extension) / sizeof(extension[0]); j++) {</div><div class='del'>-		if (fspace &lt; strlen(extension[j])) {</div><div class='del'>-		    fprintf(stderr, "openpath: pathname too long (ignored)\n");</div><div class='del'>-		    fprintf(stderr, "\tDirectory \"%.*s\"\n", (int) (bp - fbuf), fbuf);</div><div class='del'>-		    fprintf(stderr, "\tFile \"%s%s\"\n", fname, extension[j]);</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-		strcpy(bp + i, extension[j]);</div><div class='del'>-#ifndef __MACOS__</div><div class='del'>-		if (stat(fbuf, &amp;st) == 0)</div><div class='del'>-		    return fbuf;</div><div class='del'>-#else</div><div class='del'>-		if (mac_fullpath = _macruby_exist_file_in_libdir_as_posix_name(fbuf))</div><div class='del'>-		    return mac_fullpath;</div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-	    }</div><div class='del'>-	    goto next;</div><div class='del'>-	}</div><div class='del'>-#endif /* MSDOS or _WIN32 or __human68k__ or __EMX__ */</div><div class='del'>-</div><div class='del'>-#ifndef __MACOS__</div><div class='del'>-	if (stat(fbuf, &amp;st) == 0) {</div><div class='del'>-	    if (exe_flag == 0) return fbuf;</div><div class='del'>-	    /* looking for executable */</div><div class='del'>-	    if (!S_ISDIR(st.st_mode) &amp;&amp; eaccess(fbuf, X_OK) == 0)</div><div class='del'>-		return fbuf;</div><div class='del'>-	}</div><div class='del'>-#else</div><div class='del'>-	if (mac_fullpath = _macruby_exist_file_in_libdir_as_posix_name(fbuf)) {</div><div class='del'>-	    if (exe_flag == 0) return mac_fullpath;</div><div class='del'>-	    /* looking for executable */</div><div class='del'>-	    if (stat(mac_fullpath, &amp;st) == 0) {</div><div class='del'>-		if (!S_ISDIR(st.st_mode) &amp;&amp; eaccess(mac_fullpath, X_OK) == 0)</div><div class='del'>-		    return mac_fullpath;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-      next:</div><div class='del'>-	/* if not, and no other alternatives, life is bleak */</div><div class='del'>-	if (*ep == '\0') {</div><div class='del'>-	    return NULL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* otherwise try the next component in the search path */</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(__VMS)</div><div class='del'>-</div><div class='del'>-/* action routine for decc$to_vms */</div><div class='del'>-static int vms_fileact(char *filespec, int type)</div><div class='del'>-{</div><div class='del'>-    if (vms_filespec)</div><div class='del'>-	free(vms_filespec);</div><div class='del'>-    vms_filespec = malloc(strlen(filespec)+1);</div><div class='del'>-    strcpy(vms_filespec, filespec);</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* exception handler for LIB$FIND_IMAGE_SYMBOL */</div><div class='del'>-static long vms_fisexh(long *sigarr, long *mecarr)</div><div class='del'>-{</div><div class='del'>-    sys$unwind(1, 0);</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#endif /* __VMS */</div><div class='head'>diff --git a/dln.h b/dln.h<br/>index 182cf9f9f4..d98b2607e2 100644<br/>--- a/<a href='/ruby.git/tree/dln.h?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>dln.h</a><br/>+++ b/<a href='/ruby.git/tree/dln.h?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dln.h</a></div><div class='hunk'>@@ -3,10 +3,9 @@</div><div class='ctx'>   dln.h -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Date$</div><div class='ctx'>   created at: Wed Jan 19 16:53:09 JST 1994</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 1993-2003 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='hunk'>@@ -29,12 +28,24 @@</div><div class='ctx'> # define _(args) ()</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-char *dln_find_exe _((const char*,const char*));</div><div class='del'>-char *dln_find_file _((const char*,const char*));</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+</div><div class='add'>+#ifndef DLN_FIND_EXTRA_ARG</div><div class='add'>+#define DLN_FIND_EXTRA_ARG</div><div class='add'>+#endif</div><div class='add'>+#ifndef DLN_FIND_EXTRA_ARG_DECL</div><div class='add'>+#define DLN_FIND_EXTRA_ARG_DECL</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);</div><div class='add'>+char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='ctx'> extern char *dln_argv0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-void *dln_load _((const char*));</div><div class='add'>+void *dln_load(const char*);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='ctx'> #endif</div><div class='head'>diff --git a/dln_find.c b/dln_find.c<br/>new file mode 100644<br/>index 0000000000..b08612764e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dln_find.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dln_find.c</a></div><div class='hunk'>@@ -0,0 +1,290 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  dln_find.c -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: Tue Jan 18 17:05:06 JST 1994</div><div class='add'>+</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_EXPORT</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#define dln_warning rb_warning</div><div class='add'>+#define dln_warning_arg</div><div class='add'>+#else</div><div class='add'>+#define dln_warning fprintf</div><div class='add'>+#define dln_warning_arg stderr,</div><div class='add'>+#endif</div><div class='add'>+#include "dln.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDLIB_H</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef USE_DLN_A_OUT</div><div class='add'>+char *dln_argv0;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_ALLOCA_H)</div><div class='add'>+#include &lt;alloca.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STRING_H</div><div class='add'>+# include &lt;string.h&gt;</div><div class='add'>+#else</div><div class='add'>+# include &lt;strings.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+#include "missing/file.h"</div><div class='add'>+#endif</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;sys/stat.h&gt;</div><div class='add'>+</div><div class='add'>+#ifndef S_ISDIR</div><div class='add'>+#   define S_ISDIR(m) (((m) &amp; S_IFMT) == S_IFDIR)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UNISTD_H</div><div class='add'>+# include &lt;unistd.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(_WIN32) &amp;&amp; !HAVE_DECL_GETENV</div><div class='add'>+char *getenv();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static char *dln_find_1(const char *fname, const char *path, char *buf, size_t size, int exe_flag</div><div class='add'>+			DLN_FIND_EXTRA_ARG_DECL);</div><div class='add'>+</div><div class='add'>+char *</div><div class='add'>+dln_find_exe_r(const char *fname, const char *path, char *buf, size_t size</div><div class='add'>+	       DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+{</div><div class='add'>+    char *envpath = 0;</div><div class='add'>+</div><div class='add'>+    if (!path) {</div><div class='add'>+	path = getenv(PATH_ENV);</div><div class='add'>+	if (path) path = envpath = strdup(path);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!path) {</div><div class='add'>+	path =</div><div class='add'>+	    "/usr/local/bin" PATH_SEP</div><div class='add'>+	    "/usr/ucb" PATH_SEP</div><div class='add'>+	    "/usr/bin" PATH_SEP</div><div class='add'>+	    "/bin" PATH_SEP</div><div class='add'>+	    ".";</div><div class='add'>+    }</div><div class='add'>+    buf = dln_find_1(fname, path, buf, size, 1 DLN_FIND_EXTRA_ARG);</div><div class='add'>+    if (envpath) free(envpath);</div><div class='add'>+    return buf;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+char *</div><div class='add'>+dln_find_file_r(const char *fname, const char *path, char *buf, size_t size</div><div class='add'>+		DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+{</div><div class='add'>+    if (!path) path = ".";</div><div class='add'>+    return dln_find_1(fname, path, buf, size, 0 DLN_FIND_EXTRA_ARG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='add'>+	   int exe_flag /* non 0 if looking for executable. */</div><div class='add'>+	   DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+{</div><div class='add'>+    register const char *dp;</div><div class='add'>+    register const char *ep;</div><div class='add'>+    register char *bp;</div><div class='add'>+    struct stat st;</div><div class='add'>+    size_t i, fnlen, fspace;</div><div class='add'>+#ifdef DOSISH</div><div class='add'>+    static const char extension[][5] = {</div><div class='add'>+	EXECUTABLE_EXTS,</div><div class='add'>+    };</div><div class='add'>+    size_t j;</div><div class='add'>+    int is_abs = 0, has_path = 0;</div><div class='add'>+    const char *ext = 0;</div><div class='add'>+#endif</div><div class='add'>+    const char *p = fname;</div><div class='add'>+</div><div class='add'>+    static const char pathname_too_long[] = "openpath: pathname too long (ignored)\n\</div><div class='add'>+\tDirectory \"%.*s\"%s\n\tFile \"%.*s\"%s\n";</div><div class='add'>+#define PATHNAME_TOO_LONG() dln_warning(dln_warning_arg pathname_too_long, \</div><div class='add'>+					((bp - fbuf) &gt; 100 ? 100 : (int)(bp - fbuf)), fbuf, \</div><div class='add'>+					((bp - fbuf) &gt; 100 ? "..." : ""), \</div><div class='add'>+					(fnlen &gt; 100 ? 100 : (int)fnlen), fname, \</div><div class='add'>+					(fnlen &gt; 100 ? "..." : ""))</div><div class='add'>+</div><div class='add'>+#define RETURN_IF(expr) if (expr) return (char *)fname;</div><div class='add'>+</div><div class='add'>+    RETURN_IF(!fname);</div><div class='add'>+    fnlen = strlen(fname);</div><div class='add'>+    if (fnlen &gt;= size) {</div><div class='add'>+	dln_warning(dln_warning_arg</div><div class='add'>+		    "openpath: pathname too long (ignored)\n\tFile \"%.*s\"%s\n",</div><div class='add'>+		    (fnlen &gt; 100 ? 100 : (int)fnlen), fname,</div><div class='add'>+		    (fnlen &gt; 100 ? "..." : ""));</div><div class='add'>+	return NULL;</div><div class='add'>+    }</div><div class='add'>+#ifdef DOSISH</div><div class='add'>+# ifndef CharNext</div><div class='add'>+# define CharNext(p) ((p)+1)</div><div class='add'>+# endif</div><div class='add'>+# ifdef DOSISH_DRIVE_LETTER</div><div class='add'>+    if (((p[0] | 0x20) - 'a') &lt; 26  &amp;&amp; p[1] == ':') {</div><div class='add'>+	p += 2;</div><div class='add'>+	is_abs = 1;</div><div class='add'>+    }</div><div class='add'>+# endif</div><div class='add'>+    switch (*p) {</div><div class='add'>+      case '/': case '\\':</div><div class='add'>+	is_abs = 1;</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+    has_path = is_abs;</div><div class='add'>+    while (*p) {</div><div class='add'>+	switch (*p) {</div><div class='add'>+	  case '/': case '\\':</div><div class='add'>+	    has_path = 1;</div><div class='add'>+	    ext = 0;</div><div class='add'>+	    p++;</div><div class='add'>+	    break;</div><div class='add'>+	  case '.':</div><div class='add'>+	    ext = p;</div><div class='add'>+	    p++;</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    p = CharNext(p);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (ext) {</div><div class='add'>+	for (j = 0; STRCASECMP(ext, extension[j]); ) {</div><div class='add'>+	    if (++j == sizeof(extension) / sizeof(extension[0])) {</div><div class='add'>+		ext = 0;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    ep = bp = 0;</div><div class='add'>+    if (!exe_flag) {</div><div class='add'>+	RETURN_IF(is_abs);</div><div class='add'>+    }</div><div class='add'>+    else if (has_path) {</div><div class='add'>+	RETURN_IF(ext);</div><div class='add'>+	i = p - fname;</div><div class='add'>+	if (i + 1 &gt; size) goto toolong;</div><div class='add'>+	fspace = size - i - 1;</div><div class='add'>+	bp = fbuf;</div><div class='add'>+	ep = p;</div><div class='add'>+	memcpy(fbuf, fname, i + 1);</div><div class='add'>+	goto needs_extension;</div><div class='add'>+    }</div><div class='add'>+    p = fname;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (*p == '.' &amp;&amp; *++p == '.') ++p;</div><div class='add'>+    RETURN_IF(*p == '/');</div><div class='add'>+    RETURN_IF(exe_flag &amp;&amp; strchr(fname, '/'));</div><div class='add'>+</div><div class='add'>+#undef RETURN_IF</div><div class='add'>+</div><div class='add'>+    for (dp = path;; dp = ++ep) {</div><div class='add'>+	register size_t l;</div><div class='add'>+</div><div class='add'>+	/* extract a component */</div><div class='add'>+	ep = strchr(dp, PATH_SEP[0]);</div><div class='add'>+	if (ep == NULL)</div><div class='add'>+	    ep = dp+strlen(dp);</div><div class='add'>+</div><div class='add'>+	/* find the length of that component */</div><div class='add'>+	l = ep - dp;</div><div class='add'>+	bp = fbuf;</div><div class='add'>+	fspace = size - 2;</div><div class='add'>+	if (l &gt; 0) {</div><div class='add'>+	    /*</div><div class='add'>+	    **	If the length of the component is zero length,</div><div class='add'>+	    **	start from the current directory.  If the</div><div class='add'>+	    **	component begins with "~", start from the</div><div class='add'>+	    **	user's $HOME environment variable.  Otherwise</div><div class='add'>+	    **	take the path literally.</div><div class='add'>+	    */</div><div class='add'>+</div><div class='add'>+	    if (*dp == '~' &amp;&amp; (l == 1 ||</div><div class='add'>+#if defined(DOSISH)</div><div class='add'>+			       dp[1] == '\\' ||</div><div class='add'>+#endif</div><div class='add'>+			       dp[1] == '/')) {</div><div class='add'>+		char *home;</div><div class='add'>+</div><div class='add'>+		home = getenv("HOME");</div><div class='add'>+		if (home != NULL) {</div><div class='add'>+		    i = strlen(home);</div><div class='add'>+		    if (fspace &lt; i)</div><div class='add'>+			goto toolong;</div><div class='add'>+		    fspace -= i;</div><div class='add'>+		    memcpy(bp, home, i);</div><div class='add'>+		    bp += i;</div><div class='add'>+		}</div><div class='add'>+		dp++;</div><div class='add'>+		l--;</div><div class='add'>+	    }</div><div class='add'>+	    if (l &gt; 0) {</div><div class='add'>+		if (fspace &lt; l)</div><div class='add'>+		    goto toolong;</div><div class='add'>+		fspace -= l;</div><div class='add'>+		memcpy(bp, dp, l);</div><div class='add'>+		bp += l;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    /* add a "/" between directory and filename */</div><div class='add'>+	    if (ep[-1] != '/')</div><div class='add'>+		*bp++ = '/';</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* now append the file name */</div><div class='add'>+	i = fnlen;</div><div class='add'>+	if (fspace &lt; i) {</div><div class='add'>+	  toolong:</div><div class='add'>+	    PATHNAME_TOO_LONG();</div><div class='add'>+	    goto next;</div><div class='add'>+	}</div><div class='add'>+	fspace -= i;</div><div class='add'>+	memcpy(bp, fname, i + 1);</div><div class='add'>+</div><div class='add'>+#if defined(DOSISH)</div><div class='add'>+	if (exe_flag &amp;&amp; !ext) {</div><div class='add'>+	  needs_extension:</div><div class='add'>+	    for (j = 0; j &lt; sizeof(extension) / sizeof(extension[0]); j++) {</div><div class='add'>+		if (fspace &lt; strlen(extension[j])) {</div><div class='add'>+		    PATHNAME_TOO_LONG();</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+		strlcpy(bp + i, extension[j], fspace);</div><div class='add'>+		if (stat(fbuf, &amp;st) == 0)</div><div class='add'>+		    return fbuf;</div><div class='add'>+	    }</div><div class='add'>+	    goto next;</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef S_ISREG</div><div class='add'>+# define S_ISREG(m) (((m) &amp; S_IFMT) == S_IFREG)</div><div class='add'>+#endif</div><div class='add'>+	if (stat(fbuf, &amp;st) == 0 &amp;&amp; S_ISREG(st.st_mode)) {</div><div class='add'>+	    if (exe_flag == 0) return fbuf;</div><div class='add'>+	    /* looking for executable */</div><div class='add'>+	    if (eaccess(fbuf, X_OK) == 0) return fbuf;</div><div class='add'>+	}</div><div class='add'>+      next:</div><div class='add'>+	/* if not, and no other alternatives, life is bleak */</div><div class='add'>+	if (*ep == '\0') {</div><div class='add'>+	    return NULL;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* otherwise try the next component in the search path */</div><div class='add'>+    }</div><div class='add'>+}</div><div class='head'>diff --git a/dmydln.c b/dmydln.c<br/>index 09ea06806c..0fc0a5325e 100644<br/>--- a/<a href='/ruby.git/tree/dmydln.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>dmydln.c</a><br/>+++ b/<a href='/ruby.git/tree/dmydln.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dmydln.c</a></div><div class='hunk'>@@ -1,2 +1,10 @@</div><div class='del'>-#define NO_DLN_LOAD 1</div><div class='del'>-#include "dln.c"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+NORETURN(void *dln_load(const char *));</div><div class='add'>+void*</div><div class='add'>+dln_load(const char *file)</div><div class='add'>+{</div><div class='add'>+    rb_loaderror("this executable file can't load extension libraries");</div><div class='add'>+</div><div class='add'>+    UNREACHABLE;</div><div class='add'>+}</div><div class='head'>diff --git a/dmyenc.c b/dmyenc.c<br/>new file mode 100644<br/>index 0000000000..7e006e826c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dmyenc.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dmyenc.c</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+#define require(name) ruby_require_internal(name, (unsigned int)sizeof(name)-1)</div><div class='add'>+int ruby_require_internal(const char *, int);</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_enc(void)</div><div class='add'>+{</div><div class='add'>+    if (require("enc/encdb.so") == 1) {</div><div class='add'>+	require("enc/trans/transdb.so");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='head'>diff --git a/dmyext.c b/dmyext.c<br/>index 4120d493c3..4d273f7faf 100644<br/>--- a/<a href='/ruby.git/tree/dmyext.c?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>dmyext.c</a><br/>+++ b/<a href='/ruby.git/tree/dmyext.c?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>dmyext.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='ctx'> void</div><div class='del'>-Init_ext()</div><div class='add'>+Init_ext(void)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='head'>diff --git a/doc/.document b/doc/.document<br/>new file mode 100644<br/>index 0000000000..d739c9f6bc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/.document?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/.document</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+*.rdoc</div><div class='add'>+NEWS-*</div><div class='add'>+syntax</div><div class='head'>diff --git a/doc/ChangeLog-0.06_to_0.52 b/doc/ChangeLog-0.06_to_0.52<br/>new file mode 100644<br/>index 0000000000..63826081b3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-0.06_to_0.52?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/ChangeLog-0.06_to_0.52</a></div><div class='hunk'>@@ -0,0 +1,1147 @@</div><div class='add'>+Fri Oct 14 13:22:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.52: â€¦â€¦ãªã‚“ã¦ã“ã£ãŸã„.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): returnã®å‡¦ç†ãŒé–“é•ã£ã¦ã„ãŸã®ã§, ãƒžã‚·ãƒ³ã«ã‚ˆã£ã¦</div><div class='add'>+	  ã¯returnã§é–¢æ•°ã‚’çµ‚äº†ã™ã‚‹ã ã‘ã§ãªãtoplevelã¾ã§ã¤ãæŠœã‘ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* object.c: Builtinã‚¯ãƒ©ã‚¹ã‚’æ–°è¨­. çµ„ã¿è¾¼ã¿é–¢æ•°ã‚’Kernelã‹ã‚‰ç§»ã—ãŸ.</div><div class='add'>+	  nilãŒçµ„ã¿è¾¼ã¿é–¢æ•°ã‚’ç†è§£ã™ã‚‹ã¨ãƒˆãƒ©ãƒ–ãƒ«ã®å…ƒã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* dbm.c: Dictã¨åŒæ§˜ã«eachãŒ[key,value]ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* version 0.51</div><div class='add'>+</div><div class='add'>+Thu Oct 13 12:13:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(SETUP_ARGS): ä»˜åŠ æ¼”ç®—å­ãŒé…åˆ—ã§ãªã„æ™‚ã«ã¯é…åˆ—ã«å¤‰æ›ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ‹¬å¼§ãªã—ã®ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã§ã‚‚`*'ã«ã‚ˆã‚‹ä»˜åŠ å¼•æ•°ãŒä½¿ãˆã‚‹</div><div class='add'>+	  ã‚ˆã†ã«ã—ãŸ. ãŸã ã—, é€šå¸¸å¼•æ•°ãŒä¸€ã¤ã‚‚ãªã„å ´åˆã¯ä¹—ç®—æ¼”ç®—å­ã¨åŒºåˆ¥ãŒ</div><div class='add'>+	  ã¤ã‹ãªã„ã®ã§, å¿…ãšæ‹¬å¼§ãŒå¿…è¦.</div><div class='add'>+</div><div class='add'>+Wed Oct 12 10:09:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®è¨ˆç®—ã‚’inlineåŒ–. ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒŸã‚¹ãŒã‚</div><div class='add'>+	  ã‚Œã°é–¢æ•°å‘¼ã³å‡ºã—ã§ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æ¤œç´¢ã™ã‚‹. methods.cã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ç”¨ã®é ˜åŸŸã‚’alloca()ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´.</div><div class='add'>+	  ã‚µã‚¤ã‚ºã®å¤‰æ›´ãŒå¿…è¦ã«ãªã‚Œã°æ”¹ã‚ã¦malloc()ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y: error recoveryã®éš›ã«lex_stateã‚’æ›´æ–°ã—ã¦ãŠãã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Oct 11 17:10:46 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* socket.c(for_fd): ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­(Fixnum)ã‹ã‚‰ã‚½ã‚±ãƒƒãƒˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹</div><div class='add'>+	  ã‚’å¾—ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰. ãŸã¨ãˆã°inetdã‹ã‚‰èµ·å‹•ã•ã‚ŒãŸã‚µãƒ¼ãƒã§æ¨™æº–å…¥å‡ºåŠ›ã«</div><div class='add'>+	  ã‚½ã‚±ãƒƒãƒˆæ“ä½œã‚’è¡Œãªã†ãŸã‚ã«ä½¿ã†. ã¤ã¾ã‚ŠSocket.for_fd($stdin)ã§æ¨™</div><div class='add'>+	  æº–å…¥åŠ›ã«å¯¾å¿œã™ã‚‹ã‚½ã‚±ãƒƒãƒˆã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒå¾—ã‚‰ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+	* io.c(to_i): IOã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’æ•´æ•°ã«å¤‰æ›ã™ã‚‹ã¨ãã®ãƒ•ã‚¡ã‚¤ãƒ«</div><div class='add'>+	  è¨˜è¿°å­ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* numeric.c(num2int): to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ã£ã¦ã§ãã‚‹é™ã‚Šæ•´æ•°ã«å¤‰æ›ã™ã‚‹.</div><div class='add'>+	  ä»¥å‰ã¯num2fixã ã‘ãŒå…¨ã¦ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«å¯¾ã—ã¦to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’é©ç”¨</div><div class='add'>+	  ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* sprintf.c(Fsprintf): æ•´æ•°è¡¨ç¤ºã®éš›, ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ã§ãã‚‹é™ã‚Šæ•´æ•°</div><div class='add'>+	  ã«å¤‰æ›ã™ã‚‹ã‚ˆã†ã«(to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ã†).</div><div class='add'>+</div><div class='add'>+Fri Oct  7 14:06:32 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(Fcaller): å¿…è¦æ€§ãŒã‚ˆãåˆ†ã‹ã‚‰ãªã„ã®ã§ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‹ã‚‰å‰Šé™¤.</div><div class='add'>+	  å°†æ¥ãƒ‡ãƒãƒƒã‚¬ã‚’ä½œã‚‹æ™‚ã«å¾©æ´»ã•ã›ã‚ˆã†.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): Cã§è¨˜è¿°ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã§ã¯ç’°å¢ƒã‚’ã‚¹ã‚¿ãƒƒã‚¯</div><div class='add'>+	  ã«ã‚»ãƒ¼ãƒ–ã—ãªã„ã“ã¨ã«ã‚ˆã£ã¦é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 15:00:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.h: ä¸€æ™‚env.hã«ç§»å‹•ã—ã¦ãŸQselfã®å®šç¾©ã‚’å¾©æ´». ãŸã ã—ä»Šå›žã¯é–¢æ•°</div><div class='add'>+	  ã¨ã—ã¦å®Ÿç¾(env.hã§ã¯å¤‰æ•°ã¨ã—ã¦å†å®šç¾©ã—ã¦ã‚ã‚‹).</div><div class='add'>+</div><div class='add'>+	* ruby.h: TRUEã§syntax errorã«ãªã‚‰ãªã„ã‚ˆã†#undefã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): threadåŒ–ã«æŒ‘æˆ¦ã—ãŸãŒ, å¤±æ•—(é€Ÿããªã‚‰ãªã‹ã£ãŸ).</div><div class='add'>+	  ãŒ, Scopingãªã©ã®ç„¡é§„ãªã‚³ãƒ¼ãƒ‰ã®å‰Šé™¤ã¨ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®å¼•æ•°ã‚»ãƒƒ</div><div class='add'>+	  ãƒˆã®inlineåŒ–ã§è‹¥å¹²ã®é«˜é€ŸåŒ–ã‚’å®Ÿç¾ã—ãŸ. å‰¯ä½œç”¨ã¨ã—ã¦, argc, argvå½¢</div><div class='add'>+	  å¼ã®é–¢æ•°å‘¼ã³å‡ºã—ã®ä»•æ§˜ãŒå¤‰åŒ–ã—ãŸ(argvã«selfã‚’å«ã¾ãªããªã£ãŸ).</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 11:40:53 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby-mode.el: ä¿®é£¾å­ã«å¯¾å¿œã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: å¤šé‡ä»£å…¥ã«restã‚’ã¤ã‘ãŸ. ã“ã®æ©Ÿèƒ½ã‚’ä½¿ãˆã°optionalå¼•æ•°ã®</div><div class='add'>+	  è§£æžãŒç°¡å˜ã«ã§ãã‚‹(ã¯ãš).</div><div class='add'>+</div><div class='add'>+	* pack.c(unpack): uuencodeå½¢å¼ã®decodeã®éš›ã«æ–‡å­—åˆ—ã®é•·ã•ãŒé–“é•ã£ã¦</div><div class='add'>+	  ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Oct  3 15:58:41 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* file.c(type): ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—ã‚’æ–‡å­—åˆ—ã§è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+</div><div class='add'>+Fri Sep 30 11:36:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* object.c: ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®çœŸã®å€¤ã§ã‚ã‚‹%TRUEã®å€¤ã‚’1(Fixnum)ã‹ã‚‰tã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ. to_sã§æ–‡å­—åˆ—ã«å¤‰æ›ã—ãŸæ™‚ã«ã‚‚`t'ã¨è¡¨ç¤ºã•ã‚Œã‚‹. æ›´ã«è¸ã¿è¾¼</div><div class='add'>+	  ã‚“ã§`t'ã‚’äºˆç´„èªžã«ã—ã¦lispã®ã‚ˆã†ã«ã—ã‚ˆã†ã‹ã¨ã‚‚æ€ã£ãŸãŒ, ãã“ã¾ã§</div><div class='add'>+	  ã¯æ±ºå¿ƒã§ããªã‹ã£ãŸ. ä¸€æ–‡å­—ã®ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã¯ã‹ãªã‚Šä½¿ã„ãã†ãªæ°—ãŒã™</div><div class='add'>+	  ã‚‹ã®ã§â€¦.</div><div class='add'>+</div><div class='add'>+	* array.c,dict.c: equalã‚’å†å®šç¾©ã—ã¦ã„ã‚‹ã‚¯ãƒ©ã‚¹ã§, hashã‚’æ­£ã—ãå®šç¾©</div><div class='add'>+	  ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 23:30:28 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c(Ffail): ä»Šã¾ã§failã¯ã‚«ãƒ¼ãƒãƒ«ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚ã£ãŸãŒ,</div><div class='add'>+	  æ§‹æ–‡ã«çµ„ã¿è¾¼ã‚“ã . ã“ã®å¤‰æ›´ã«ã‚ˆã£ã¦, 1)`fail'ã¯äºˆç´„èªžã¨ãªã‚Š, ãƒ­ãƒ¼</div><div class='add'>+	  ã‚«ãƒ«å¤‰æ•°ã«ç”¨ã„ã‚‹ã“ã¨ãŒã§ããªããªã£ãŸ. 2)`fail'å˜ä½“ã§ä¾‹å¤–ã‚’ç™ºç”Ÿã™</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ãªã£ãŸ. 3)failã¯ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ãªããªã£ãŸã®ã§å†å®šç¾©ã•ã‚Œã‚‹å¯</div><div class='add'>+	  èƒ½æ€§ãŒãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* dic.c, dbm.c(indexes): Arrayã®indexesã¨åŒæ§˜ã®æ©Ÿèƒ½ã‚’æŒã¤ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* array.c(indexes): å¼•æ•°ã‚’ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã™ã‚‹è¦ç´ ã®é…åˆ—ã‚’è¿”ã™. æ•´æ•°</div><div class='add'>+	  ã®é…åˆ—ã‚’å¼•æ•°ã¨ã™ã‚‹æ™‚ã«ã¯å¼•æ•°ã®è¦ç´ ã‚’ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã™ã‚‹è¦ç´ ã®é…åˆ—</div><div class='add'>+	  ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 13:42:31 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* array.c(aset): éƒ¨åˆ†é…åˆ—ã«å¯¾ã™ã‚‹ä»£å…¥ã§é…åˆ—ä»¥å¤–ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒæŒ‡</div><div class='add'>+	  å®šã•ã‚ŒãŸå ´åˆã«å¤šé‡ä»£å…¥ã¨åŒã˜ãƒ«ãƒ¼ãƒ«ã§é…åˆ—åŒ–ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* io.c(print): å¼•æ•°ã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸå„ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«print_onãƒ¡ãƒƒã‚»ãƒ¼</div><div class='add'>+	  ã‚¸ã‚’ä¸Žãˆã‚‹ã‚ˆã†ã«. å®Ÿè¡Œé€Ÿåº¦ã¯è½ã¡ã‚‹ãŒæŸ”è»Ÿæ€§ã¯å¢—ã™.</div><div class='add'>+</div><div class='add'>+Fri Sep 16 14:59:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* glob.c: ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã®å°Žå…¥. bashã«ä½¿ã‚ã‚Œã¦ã„ã‚‹GNUã®globãƒ«ãƒ¼ãƒ</div><div class='add'>+	  ãƒ³ã‚’æµç”¨ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 18:36:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(value_expr): å¼ãŒnilã®æ™‚ã«å¯¾å¿œ.</div><div class='add'>+</div><div class='add'>+	* class.c: ICLASSã®classãŒå¿…ãšClass/Moduleã‚’æŒ‡ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Sep  6 16:23:28 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c:	æ­£è¦è¡¨ç¾å†…ã§ã€Œ\æ•°å­—ã€å½¢å¼ãŒæŒ‡å®šã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y:ã€Œdo expr using var ... endã€å½¢å¼ã¯ãªããªã£ãŸ. å¯‚ã—ã„æ°—</div><div class='add'>+	  ã‚‚ã™ã‚‹. *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+Mon Sep  5 10:59:01 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* numeric.c(next): Numericã‚¯ãƒ©ã‚¹ã«ã‚‚nextã‚’æä¾›.</div><div class='add'>+</div><div class='add'>+	* string.c(upto): uptoã‚’æä¾›.</div><div class='add'>+</div><div class='add'>+	* range.c(each): nextã‚’ä½¿ã£ãŸã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‹ã‚‰uptoã‚’ä½¿ã†ã‚ˆã†ã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ. ã“ã®æ–¹ãŒä¸€ã¤ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§å‡¦ç†ã‚’ã¾ã¨ã‚ã§è¡Œãªã†ã“ã¨ãŒã§ãã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Sep  2 15:25:39 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dict.c(each): æˆ»ã‚Šå€¤ã‚’[key, value]ã®ãƒšã‚¢ã«å¤‰æ›´. ä»Šã¾ã§ã®eachã¯</div><div class='add'>+	  each_valueã¨ã—ã¦æ®‹ã‚‹. *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+Thu Sep  1 10:49:04 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* æˆåŠŸã—ãŸ(ç‰¹åˆ¥ãªæˆ»ã‚Šå€¤ã‚’æŒãŸãªã„)ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã¯`0'ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 00:26:51 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* string.c: ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’å¾—ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰`sum'ã‚’ä½œã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* class.c(include_class_new): ICLASSã®classã‚’ã‚‚ã¨ã®ã‚¯ãƒ©ã‚¹ã«ã—ãŸ.</div><div class='add'>+	  gcã®éš›ã«å…ƒã‚¯ãƒ©ã‚¹ã‚’ãƒžãƒ¼ã‚¯ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã®ãŒ, ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’å¢—ã‚„ã™ä½™</div><div class='add'>+	  åœ°ãŒç„¡ã„ã®ã§, classãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’æµç”¨ã—ãŸ. ç§ã®è¦‹ç©ã‚ŠãŒé–“é•ã£ã¦ã„</div><div class='add'>+	  ã¦, ICLASSã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹äº‹ãŒã‚ã‚Œã°, ãŠã‹ã—ãªå‹•</div><div class='add'>+	  ä½œã‚’ã™ã‚‹ã ã‚ã†.</div><div class='add'>+</div><div class='add'>+	* eval.c(masign): å¼(a,b = nil)ã®å€¤ã‚’[nil]ã‹ã‚‰nilã«å¤‰æ›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Aug 29 11:56:09 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* class.c: rb_define_mfuncã‚’ç„¡ãã—ã¦, ãƒ¡ã‚¿ã‚¯ãƒ©ã‚¹ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ã‚¤ãƒ³</div><div class='add'>+	  ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* error.c(yyerror): åŒã˜è¡Œã§è¤‡æ•°ã®syntax errorã‚’ãƒªãƒãƒ¼ãƒˆã—ãªã„ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* file.c: FileTestãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ•ã‚¡ã‚¤ãƒ«ãƒ†ã‚¹ãƒˆãƒ¡ã‚½ãƒƒãƒ‰ã‚’åˆ†é›¢ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ¼”ç®—å­ã‚’æŒ‡å®šã™ã‚‹æ™‚ã®lex_stateã‚’æ­£ã—ãè¨­å®šã—ãŸ.</div><div class='add'>+</div><div class='add'>+Sat Aug 27 01:23:34 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: if/whileãªã©ã®è¤‡åˆå¼ã‚’primaryã«ç§»å‹•ã—ãŸ. ã“ã‚Œã«ã‚ˆã£ã¦ä¾‹</div><div class='add'>+	  ãˆã°ã€Œif cond then a else b end.message()ã€ã®ã‚ˆã†ãªå¼ãŒæ›¸ã‘ã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Aug 26 10:46:30 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* spec: æ•´ç†ã•ã‚ŒãŸæ–‡æ³•ã«ã—ãŸãŒã£ã¦æ›¸ãç›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: ã“ã“æ•°æ—¥ã§æ··ä¹±ã—ã¦ã„ãŸæ–‡æ³•ã‚’æ•´ç†ã—ãŸ. æ‹¬å¼§ã‚’çœç•¥ã—ãŸãƒ¡</div><div class='add'>+	  ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ãŒã§ãã‚‹ã‚ˆã†ã«ãªã£ãŸã“ã¨, modifierãŒä»˜ã‘ã‚‰ã‚Œã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ãªã£ãŸã“ã¨, returnã«ãƒªã‚¹ãƒˆãŒæ¸¡ã›ã‚‹ã‚ˆã†ã«ãªã£ãŸã“ã¨ãŒä¸»ãªå¤‰æ›´ç‚¹</div><div class='add'>+	  ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* processå‘¨ã‚ŠãŒæ€ªã—ã„ãŒã¨ã«ã‹ãSolaris 2.3ã§å‹•ãã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ›–æ˜§æ€§ãŒãªã„å ´åˆã«ã¯ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®å¼•æ•°ã®æ‹¬å¼§ã‚’çœç•¥</div><div class='add'>+	  ã§ãã‚‹ã‚ˆã†ã«. çœç•¥ã§ãã‚‹ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®æ¡ä»¶ã¯, 1)ã‹ãªã‚‰ãš1å€‹</div><div class='add'>+	  ä»¥ä¸Šã®å¼•æ•°ã‚’å¿…è¦ã¨ã™ã‚‹ã“ã¨, 2)ç¬¬1å¼•æ•°ãŒ`+', `-', `(', `[', `{',</div><div class='add'>+	  `/'ãªã©, å¼ã®å§‹ã¾ã‚Šã«ç½®ã‹ã‚ŒãŸæ™‚ã¨é€”ä¸­ã«ç¾ã‚ŒãŸæ™‚ã¨ã§è§£é‡ˆãŒé•ã†è¨˜</div><div class='add'>+	  å·ã§å§‹ã¾ã‚‰ãªã„ã“ã¨, ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 13:54:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(cond): æ¡ä»¶å¼ã®å±•é–‹éƒ¨ã«bugãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 00:01:15 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: returnã¯ã‚³ãƒ³ãƒžã§åŒºåˆ‡ã£ãŸãƒªã‚¹ãƒˆã‚‚å—ã‘å–ã‚‹ã‚ˆã†ã«. ã¤ã¾ã‚Š,</div><div class='add'>+	  return a, b, cã¯return [a, b, c]ã¨åŒã˜æ„å‘³ã«ãªã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: yieldä»¥å¤–ã®å¤§åŸŸè„±å‡ºåˆ¶å¾¡å¼ã‚’exprã‹ã‚‰expr0ã«ç§»ã—ãŸ. ã‚ˆã£</div><div class='add'>+	  ã¦ãƒ¡ã‚½ãƒƒãƒ‰ã®å¼•æ•°ã«åˆ¶å¾¡å¼ã‚’ä½¿ãˆãªããªã‚‹(ã“ã‚Œã§å›°ã‚‹äººã¯ã„ãªã„ã¯ãš).</div><div class='add'>+</div><div class='add'>+	* parse.y: `+'ã®å®šæ•°å±•é–‹ã®éš›ã«æ¼”ç®—å­ã®å„ªå…ˆé †ä½ã‚’å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c: untilã®æˆ»ã‚Šå€¤ã¯nilã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: modifierã¨ã—ã¦ã®if/unless/while/untilã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* parse.y: æ–‡æ³•ã‹ã‚‰endã®å¾Œã‚ã«ã¤ã‘ã‚‹ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’å‰Šé™¤. ã»ã¨ã‚“ã©ä½¿ã‚</div><div class='add'>+	  ãªã‹ã£ãŸä¸Šã«, emacsã§ã¯ruby-modeãŒã‚ã‚Œã°å¯¾å¿œã®ãƒã‚§ãƒƒã‚¯ãŒæ©Ÿæ¢°çš„ã«</div><div class='add'>+	  å‡ºæ¥ã‚‹ãŸã‚.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 18:08:33 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¹ã‚¯ãƒªãƒ—ãƒˆå®Ÿè¡Œé–‹å§‹å‰ã«ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸæ™‚ã«core dumpã—ãŸ.</div><div class='add'>+	  çµ„ã¿è¾¼ã¿ç”¨ã«ã‚³ãƒ¼ãƒ‰ã‚’å¤‰æ›´ã—ãŸæ™‚ã«enbugã—ã¦ã—ã¾ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 00:07:17 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: doã®æˆ»ã‚Šå€¤ãŒã„ã¤ã‚‚nilã«ãªã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: loopåˆ¶å¾¡å¤‰æ•°ã®å¤šé‡ä»£å…¥åŒ–ã«bugãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y(expand_op): æ–‡å­—åˆ—ã‚‚ç•³ã¿è¾¼ã¿ã®å¯¾è±¡ã«.</div><div class='add'>+</div><div class='add'>+Mon Aug 22 10:50:01 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(expand_op): `+'ã«é–¢ã—ã¦ã¯çµåˆå‰‡ã‚’ä½¿ã£ã¦, ã‚ˆã‚Šå¤šãå®šæ•°ç•³</div><div class='add'>+	  ã¿è¾¼ã¿ã‚’è¡Œãªã†ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* ruby.c(proc_options): argcãŒ0ã®æ™‚ã«ã‚‚å¯¾å¿œ.</div><div class='add'>+</div><div class='add'>+	* parse.y: forãªã©ã®åˆ¶å¾¡å¤‰æ•°ã«å¤šé‡ä»£å…¥ã‚‚ä½¿ãˆã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Sat Aug 20 00:59:40 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y(call_op): æ¼”ç®—å­`~'ã®å–ã‚Šæ‰±ã„ã‚’ãƒ«ãƒ¼ãƒ«éƒ¨ã¸ç§»å‹•.</div><div class='add'>+</div><div class='add'>+Fri Aug 19 11:44:13 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* main.c: rubyã‚’ã»ã‹ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«çµ„ã¿è¾¼ã‚ã‚‹ã‚ˆã†ã«main()ã‚’åˆ†å‰²ã—ãŸ.</div><div class='add'>+	  ãã‚Œã«ã¨ã‚‚ãªã„, ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®å‘¼ã³å‡ºã—æ§‹é€ ã‚’ä¿®æ­£ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ¡ä»¶å¼ã®å®šç¾©ã‚’å¤‰æ›´. ifãªã©ã®æ¡ä»¶å¼ã®ä¸­ã§ã ã‘`&amp;&amp;'ã‚„`||'</div><div class='add'>+	  ãŠã‚ˆã³`!'ã®å¼•æ•°ãŒæ¡ä»¶å¼ã«ãªã‚‹ã‚ˆã†ã«. ã“ã®å¤‰æ›´ã«ã‚ˆã‚Šæ¡ä»¶å¼ä»¥å¤–ã®</div><div class='add'>+	  å ´æ‰€ã§ã® `&amp;&amp;', `||', `!'æ¼”ç®—å­ã®å‹•ä½œãŒç›´è¦³ã«ä¸€è‡´ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: å®Ÿå¼•æ•°ã®`*'ã®å¾Œã«ç¶šãå¼•æ•°ã¯exprã«åˆ¶é™ã—ãŸ. ä»Šã¾ã§ã¯å…¨ã¦</div><div class='add'>+	  ã®æ–‡ãŒæœ‰åŠ¹ã§ã‚ã£ãŸãŒ, ã“ã“ã§å®šç¾©æ–‡ãŒã‚ã£ã¦ã‚‚ã—ã‚‡ã†ãŒãªã„.</div><div class='add'>+</div><div class='add'>+Thu Aug 18 10:21:45 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c: æ­£è¦è¡¨ç¾ãƒ«ãƒ¼ãƒãƒ³ã®åˆæœŸåŒ–éƒ¨åˆ†ã‚’å‰Šé™¤ã—ã¦ã—ã¾ã£ã¦ã„ãŸ. ã“ã‚Œã§</div><div class='add'>+	  ã¯emacsã®æ­£è¦è¡¨ç¾ã«ãªã£ã¦ã—ã¾ã†.</div><div class='add'>+</div><div class='add'>+	* version.c: copyrightè¡¨ç¤ºã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* version.c: ãƒãƒ¼ã‚¸ãƒ§ãƒ³è¡¨ç¤ºã‚’stderrã«.</div><div class='add'>+</div><div class='add'>+	* configure.in: gccãŒãªã„å ´åˆtestã«å¤±æ•—ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Aug 12 14:12:23 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* array.c(astore): é…åˆ—ã®æ‹¡å¤§ã™ã‚‹æ™‚ã«ã‚ã‚‹ç¨‹åº¦ã®å¤§ãã•ã‚’ã¾ã¨ã‚ã¦æ‹¡</div><div class='add'>+	  å¤§ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* io.c(Fprint): é…åˆ—ã«å¯¾ã—ã¦ã¯ä¸€åº¦æ–‡å­—åˆ—ã«å¤‰æ›ã™ã‚‹ã“ã¨ãªã, ç›´æŽ¥å†…</div><div class='add'>+	  å®¹ã‚’å‡ºåŠ›ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* string.c(str_new): memmoveã‹ã‚‰memcpyã¸ç½®ãæ›ãˆãŸ. ã“ã‚Œã§ã‚‚ã‹ãªã‚Š</div><div class='add'>+	  é€Ÿåº¦ãŒé•ã†.</div><div class='add'>+</div><div class='add'>+	* ruby.h: ãƒ‡ãƒ¼ã‚¿ãƒ¡ãƒ³ãƒã®å–ã‚Šå‡ºã—ã§åå‰ã‚’æ–‡å­—åˆ—ã‹ã‚‰IDã§æŒ‡å®šã™ã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸ. ã‹ãªã‚Šã®é«˜é€ŸåŒ–ã«ãªã‚‹.</div><div class='add'>+</div><div class='add'>+	* io.c: $ARGFã¨ã„ã†å¤‰æ•°ã§å¼•æ•°åˆ—ã‹ã‚‰ãªã‚‹ä»®æƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆ</div><div class='add'>+	  ã¨ã—ã¦æ‰±ãˆã‚‹ã‚ˆã†ã«ã—ãŸ. ä»Šã¾ã§ã¯ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã®gets()ãªã©ã‚’ä½¿ã£ã¦</div><div class='add'>+	  ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„ãŸãŒ, ã©ã†ã‚‚ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘çš„ã§ã¯ãªã‹ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Aug 11 11:43:15 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* gc.c: mark_location()ã®é–“é•ã£ãŸå‘¼ã³å‡ºã—æ–¹ã®è¡ŒãŒæ®‹ã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* method.c: ãƒ—ãƒ­ãƒˆã‚¿ã‚¤ãƒ—å®£è¨€ãŒè¶³ã‚Šãªã‹ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Aug 10 15:54:46 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* variable.c: -vã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒæŒ‡å®šã•ã‚Œã¦ã„ã‚‹æ™‚ã¯åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„,</div><div class='add'>+	  å¤§åŸŸå¤‰æ•°, ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°, ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚’å‚ç…§ã—ãŸæ™‚ç‚¹ã§warning</div><div class='add'>+	  ã‚’å‡ºã™ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 11:50:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* bignum.c: å†ªä¹—ã«é–¢ã—ã¦ã‚‚å¤šå€é•·æ¼”ç®—ã‚’è¡Œãªã†ã‚ˆã†ã«. ç‰¹ã«æµ®å‹•å°æ•°ç‚¹</div><div class='add'>+	  æ•°ã®ç¯„å›²ã‚’è¶ŠãˆãŸæ™‚ã®å‡¦ç†ã‚’çš„ç¢ºã«è¡Œãªã†ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* eval.c: ãƒ¡ã‚½ãƒƒãƒ‰å®šç¾©å¾Œã¯æ§‹æ–‡æœ¨ã‹ã‚‰, ãƒ¡ã‚½ãƒƒãƒ‰å®šç¾©éƒ¨åˆ†ã‚’å¤–ã™. ç„¡é§„</div><div class='add'>+	  ãªå†å®šç¾©ãŒèµ·ã“ã‚‰ãªã„ã‚ˆã†ã«ã™ã‚‹ãŸã‚ã¨2é‡ã«free()ã•ã‚Œãªã„ãŸã‚.</div><div class='add'>+</div><div class='add'>+	* array.c(Fary_aref): å¼•æ•°ãŒ1ã¤ã§Fixnumã®æ™‚, Range checkã‚’è¡Œãªã‚ãª</div><div class='add'>+	  ã„ã‚ˆã†ã«ä¿®æ­£.</div><div class='add'>+</div><div class='add'>+	* eval.c: ãƒ¡ã‚½ãƒƒãƒ‰ã®å¼•æ•°ã®æ•°ã‚’ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã«è¨ˆç®—ã—ã¦è‹¥å¹²ã®é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+Mon Aug  8 13:06:24 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* object.c: nilã«ã‚ˆã‚‹æ¯”è¼ƒé€£éŽ–ã‚’ãªãã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: bitæ¼”ç®—å­ã®å„ªå…ˆé †ä½ã‚’æ¯”è¼ƒæ¼”ç®—å­ã‚ˆã‚Šã‚‚å¼·ãã—ãŸ.  Cã¨ã¯ç•°</div><div class='add'>+	  ãªã‚‹ã“ã¨ã«ãªã‚‹ãŒ, ç›´è¦³ã«ã¯åˆè‡´ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* gc.c: ã‚¯ãƒ©ã‚¹ã‚’è§£æ”¾ã™ã‚‹æ™‚, å€‹ã€…ã®ãƒ¡ã‚½ãƒƒãƒ‰æ¯Žã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ã‚¯ãƒªã‚¢ã™</div><div class='add'>+	  ã‚‹ã®ã§ã¯ãªã, ã‚¯ãƒ©ã‚¹å˜ä½ã§ã‚¯ãƒªã‚¢ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Thu Aug  4 18:45:09 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* methods.c(method_free): è§£æ”¾ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰ã«é–¢ã—ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ã‚¯</div><div class='add'>+	  ãƒªã‚¢ã—ã¦ãŠãå¿…è¦ãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* gc.c: Dataã‚¯ãƒ©ã‚¹ã®ãƒ‡ãƒ¼ã‚¿éƒ¨åˆ†ã‚’free()ã—å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Aug  3 09:58:14 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: def func .. endå½¢å¼ã«ã‚ˆã‚‹é–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰ã®å®šç¾©ã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* methods.c: funcå½¢å¼ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ãªãã—ãŸ. ã‚ã£ã¦ã‚‚, ã‚ã¾ã‚Šæ„å‘³ãŒ</div><div class='add'>+	  ãªã„ã®ã§.</div><div class='add'>+</div><div class='add'>+	* eval.c: $0ã¸ã®ä»£å…¥ã§ps(1)ã®å‡ºåŠ›ãŒå¤‰åŒ–ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* io.c(Fsyscall): syscall()ã‚’å®Ÿç¾.</div><div class='add'>+</div><div class='add'>+Mon Aug  1 13:41:11 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: ãƒ€ãƒ–ãƒ«ã‚¯ã‚©ãƒ¼ãƒˆã§å›²ã¾ã‚ŒãŸæ–‡å­—åˆ—ã‚„æ­£è¦è¡¨ç¾ä¸­ã§"#{å¤‰æ•°å}"</div><div class='add'>+	  ã¾ãŸã¯"#å¤‰æ•°å"ã¨ã„ã†å½¢å¼ã§å¤‰æ•°ã®å†…å®¹ã‚’åŸ‹ã‚è¾¼ã‚€ã“ã¨ãŒã§ãã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* io.c: é–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰system2()ã¯ãªããªã£ãŸ. ä»Šã¯ãƒãƒƒã‚¯ã‚¯ã‚©ãƒ¼ãƒˆãŒã‚</div><div class='add'>+	  ã‚‹ã‹ã‚‰ã­.</div><div class='add'>+</div><div class='add'>+	* parse.y: `cmd`ã«ã‚ˆã£ã¦ã‚³ãƒžãƒ³ãƒ‰ã‚’æ–‡å­—åˆ—ã«å±•é–‹ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: __FILE__, __LINE__ã‚’è¿½åŠ . ãã‚Œãžã‚Œãƒ•ã‚¡ã‚¤ãƒ«å(æ–‡å­—åˆ—),</div><div class='add'>+	  è¡Œç•ªå·(æ•´æ•°)ã‚’å€¤ã¨ã™ã‚‹ç–‘ä¼¼å¤‰æ•°.</div><div class='add'>+</div><div class='add'>+Fri Jul 29 13:16:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* methods.h: ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¨ã—ã¦æ‰±ã†ã®ã‚’ã‚„ã‚ã‚‹. ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  ã®ãƒ¡ãƒ¢ãƒªç®¡ç†ã«ã¯ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚«ã‚¦ãƒ³ãƒˆã‚’ä½¿ã†ã“ã¨ã«ã—ãŸ. ã“ã‚Œã§ã‚ªãƒ–</div><div class='add'>+	  ã‚¸ã‚§ã‚¯ãƒˆã®æ•°ãŒæ¸›ã£ã¦ã»ã‚“ã®å°‘ã—ã ã‘GCãŒé€Ÿããªã‚‹(ã‹ãª).</div><div class='add'>+</div><div class='add'>+	* purifyã«ã‚ˆã£ã¦ãƒ¡ãƒ¢ãƒªé–¢ä¿‚ã®ãƒã‚°ã‚’æ¤œæŸ»ã—ãŸ(è¦‹ã¤ã‹ã‚‹,è¦‹ã¤ã‹ã‚‹â€¦).</div><div class='add'>+</div><div class='add'>+	* gc.c: GCã‚’ãƒ—ãƒ­ã‚°ãƒ©ãƒžãŒå¤‰æ•°ã‚’ãƒžãƒ¼ã‚¯ã™ã‚‹å½¢å¼ã‹ã‚‰, ã‚¹ã‚¿ãƒƒã‚¯ã¨ãƒ¬ã‚¸ã‚¹</div><div class='add'>+	  ã‚¿ã‹ã‚‰ãƒžãƒ¼ã‚¯ã™ã‚‹æ–¹æ³•ã«å¤‰æ›´. ç§»æ¤æ€§ãŒä¸‹ãŒã‚‹ã‚ˆã†ãªæ°—ã‚‚ã™ã‚‹ãŒ, siod</div><div class='add'>+	  ã‚„scmã§ã‚‚æŽ¡ç”¨ã•ã‚Œã¦ã„ã‚‹ã‹ã‚‰å¤šåˆ†å¤§ä¸ˆå¤«ã ã‚ã†. Linux on i486ã§ã‚‚å‹•</div><div class='add'>+	  ä½œã‚’ç¢ºèªã—ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 16:13:13 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(Eval): ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã§ã¯æ§‹é€ æœ¨ã‚’freeã—ãªã„ã‚ˆã†ã«. ã©ã†ã›è§£</div><div class='add'>+	  æ”¾ã•ã‚Œã‚‹ã‹ã‚‰æ™‚é–“ã®ç„¡é§„ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* array.c, dict.c: "=="ã‚’æ§‹é€ ä¸€è‡´ã«å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 10:14:09 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* error.c: çµ„ã¿è¾¼ã¿ã‚¿ã‚¤ãƒ—ã®åå‰ã‚’ç™»éŒ²ã—å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Jul 21 14:06:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(freenode),eval.c(Eval): è§£æžæœ¨ã‚’è§£æ”¾ã—å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Jul 18 10:19:15 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: å¤šé‡ä»£å…¥ã‚’å‡¦ç†ã™ã‚‹ãƒ«ãƒ¼ãƒ«ã«ãƒã‚°ãŒã‚ã£ã¦, 3è¦ç´ ä»¥ä¸Šã®å¤šé‡</div><div class='add'>+	  ä»£å…¥ã«å¤±æ•—ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): å¤šé‡ä»£å…¥ã§, å³è¾ºãŒé…åˆ—ã§ãªã„æ™‚ã«ã¯`to_a'ãƒ¡ã‚½ãƒƒ</div><div class='add'>+	  ãƒ‰ã§é…åˆ—ã«å¤‰æ›ã—ã¦ä»£å…¥ã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ä»Šã¾ã§ã®ä»•æ§˜ã ã¨å³è¾ºå€¤ãŒç¬¬</div><div class='add'>+	  1è¦ç´ ã«ãã®ã¾ã¾ä»£å…¥ã•ã‚Œã¦ã„ãŸãŒ, structãªã©é…åˆ—ã«å¤‰æ›ã§ãã‚‹ã‚‚ã®</div><div class='add'>+	  ã¯å¤‰æ›ã—ãŸæ–¹ãŒå¬‰ã—ã„æ°—ãŒã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* dbm.c,dict.c(delete_if): ãƒ¡ã‚½ãƒƒãƒ‰è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* process.c(wait,waitpid): ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«waitpidã¾ãŸã¯wait4ãŒã‚ã‚‹</div><div class='add'>+	  æ™‚ã¯ãã¡ã‚‰ã‚’ä½¿ã†ã‚ˆã†ã«. configureã‚‚ãã‚Œã‚‰ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+	* dbm.c, dict.c(clear): ãƒ¡ã‚½ãƒƒãƒ‰è¿½åŠ .</div><div class='add'>+</div><div class='add'>+Fri Jul 15 10:54:45 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* array.c(Fary_fill,Fary_clear): ãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* string.c(Fstr_split): $;ã®å€¤ãŒé•·ã•1ã®æ–‡å­—åˆ—ã§ã‚ã‚‹æ™‚, ã“ã‚Œã‚’æ­£è¦</div><div class='add'>+	  è¡¨ç¾åŒ–ã—ãªã„ã§, å˜ãªã‚‹æ–‡å­—ã¨ã—ã¦åˆ†å‰²ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* string.c(Fstr_aset/Fstr_aref): ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒæ–‡å­—åˆ—ã®ç¯„å›²å¤–ã ã£</div><div class='add'>+	  ãŸæ™‚ã®å‹•ä½œã‚’Arrayã‚’å‚è€ƒã«ä¿®æ­£ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* array.c(astore,Fary_aset): é ˜åŸŸã‚’reallocã—ãŸå¾Œ, ã‚¼ãƒ­ã§ã‚¯ãƒªã‚¢ã™ã‚‹</div><div class='add'>+	  ã‚ˆã†ã«. ä»Šã¾ã§é…åˆ—ã«ã‚´ãƒŸãŒå…¥ã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* array.c: []/[]=ã§ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹é–¢ä¿‚ã‚’æ•´ç†. åŸºæœ¬çš„ã«è² ã®ã‚¤ãƒ³ãƒ‡ãƒƒ</div><div class='add'>+	  ã‚¯ã‚¹ã«ä»£å…¥ã—ãªã„é™ã‚Šä¾‹å¤–ã¯èµ·ããªã„ã‚ˆã†ã«å¤‰æ›´ã—ãŸ. å¿…è¦ã«å¿œã˜ã¦é©</div><div class='add'>+	  å½“ã«è§£é‡ˆã—ã¦, å¿…è¦ãªã‚‰ã°é ˜åŸŸã‚’æ‹¡å¼µã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Thu Jul 14 11:18:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* autoexec.c: å‰Šé™¤. autoloadé–¢ä¿‚ã®æ©Ÿèƒ½ã¯ä»Šå¾Œæ¤œè¨Žã—ã‚ˆã†.</div><div class='add'>+</div><div class='add'>+	* dict.c: è¾žæ›¸ã‚¯ãƒ©ã‚¹ã®æ­£å¼åç§°ã‚’Dictã«å¤‰æ›´ã—ãŸ. åˆ¥åã¨ã—ã¦Hashã‚’ç”¨</div><div class='add'>+	  æ„ã—ãŸ. ä»Šã¾ã§Dictionaryãªã©ã¨é•·ã„åå‰ã«ã—ã¦ã„ãŸãŒèª°ã‚‚ä½¿ã£ã¦ã„ãª</div><div class='add'>+	  ã‹ã£ãŸã—ã­. *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+	* parse.y: Dictã‚’ç”Ÿæˆã™ã‚‹æ§‹æ–‡ã‚’è¿½åŠ . ã“ã¡ã‚‰ã‚’{..}ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: é…åˆ—ã‚’ç”Ÿæˆã™ã‚‹æ§‹æ–‡ã‚’[..]ã«å¤‰æ›´ã—ãŸ. éŽåŽ»ã®Rubyã‚¹ã‚¯ãƒªãƒ—</div><div class='add'>+	  ãƒˆã¨ã®äº’æ›æ€§ãŒä¿ã¦ãªã„ãŒ, Dictã‚’ç”Ÿæˆã™ã‚‹æ§‹æ–‡ã‚’å°Žå…¥ã™ã‚‹ã«å½“ãŸã‚Š,</div><div class='add'>+	  perl5ã«åˆã‚ã›ã¦(æ„è­˜ã—ã¦), å¤‰æ›´ã™ã‚‹æ™‚æœŸã¯ä»Šã—ã‹ãªã„ã¨è€ƒãˆãŸ.</div><div class='add'>+	  *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+	* eval.c(Feval): eval()ã§ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å®šç¾©ã™ã‚‹æ™‚, å®šç¾©ã•ã‚Œã‚‹ã‚¯ãƒ©ã‚¹ã‚’</div><div class='add'>+	  ãƒ¡ã‚½ãƒƒãƒ‰ã®æ‰€å±žã™ã‚‹ã‚¯ãƒ©ã‚¹ã«ã—ãŸ. ä»Šã¾ã§ã¯Objectã‚¯ãƒ©ã‚¹ã«å®šç¾©ã•ã‚Œã¦</div><div class='add'>+	  ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: ãƒ­ãƒ¼ã‚«ãƒ«å¼•æ•°ãŒãªã„æ™‚ã®eval()ã§è½ã¡ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Jul 12 09:41:28 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* pack.c: uuencodeå½¢å¼ã®ã‚µãƒãƒ¼ãƒˆ.</div><div class='add'>+</div><div class='add'>+	* `-0'ã‚’`-R'ã«. å‡ºåŠ›ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚»ãƒ‘ãƒ¬ãƒ¼ã‚¿ã‚’ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰æŒ‡å®šã™ã‚‹</div><div class='add'>+	  æ–¹æ³•ã¯ãªããªã£ãŸ. ã©ã†ã‚‚, ä»•æ§˜ãŒã‚†ã‚Œã‚‹ãªã‚.</div><div class='add'>+</div><div class='add'>+Mon Jul 11 09:51:24 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.c: `-r'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯`-0'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã«ãªã£ãŸ. å½“é¢ã¯`-r'ã‚‚æœ‰åŠ¹</div><div class='add'>+	  ã ãŒå¤‰æ›´ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹. `-R'ã¯å½“é¢ã¯ãã®ã¾ã¾.</div><div class='add'>+</div><div class='add'>+	* version.c: versionè¡¨ç¤ºã«æ—¥ä»˜ã‚’å«ã‚ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: private methodã®å¾©æ´». Rubyã®privateãƒ¡ã‚½ãƒƒãƒ‰ã¯C++ã«ãŠã‘</div><div class='add'>+	  ã‚‹protected methodã«è©²å½“ã™ã‚‹ã‚‚ã®ã§, `@'ã§å§‹ã¾ã‚‹åå‰ã‚’æŒã¤.</div><div class='add'>+</div><div class='add'>+	* env.h: struct ENVIRONã®å®šç¾©ã‚’åˆ†é›¢.</div><div class='add'>+</div><div class='add'>+	* parse.y: `\$var', `\@var', `%var'ã‚‚è¨±ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* variable.c(Fdefined): idã‚‚å¼•æ•°ã¨ã—ã¦å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y: ifæ–‡/unlessæ–‡ã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰thenã‚’è¿½åŠ . thenãªã—ã¨ã„ã†ã®ã¯,</div><div class='add'>+	  æ„å¤–ã¨é–“é•ã„ãŒå¤šã„ã®ã§. ã‚‚ã¡ã‚ã‚“çœç•¥ã§ãã‚‹.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 02:16:04 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): class/moduleã®è©•ä¾¡ã§æ–°ã—ã„ã‚¹ã‚³ãƒ¼ãƒ—ã‚’å‰²ã‚Šå½“ã¦ã¦</div><div class='add'>+	  ã„ãªã‹ã£ãŸ. ã‚¹ã‚³ãƒ¼ãƒ—å‰²ã‚Šå½“ã¦éƒ¨åˆ†ã‚’rb_call()ã‹ã‚‰rb_eval()ã«ç§»ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): realloc()ã«æ¸¡ã•ã‚Œã‚‹äº‹ã®ã‚ã‚‹, ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ç”¨ã®é ˜</div><div class='add'>+	  åŸŸã‚’alloca()ã—ã¦ã„ãŸ. ãŸã¾ã«è½ã¡ã‚‹ã‚ã‘ã .</div><div class='add'>+</div><div class='add'>+	* string.c(Fstr_times): å‰²ã‚Šå½“ã¦ãŸé ˜åŸŸã‚’è¶ŠãˆãŸéƒ¨åˆ†ã‚’å¤‰æ›´ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 15:52:42 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* socket.c: Socket -&gt; BasicSocket, RawSocket -&gt; Socket ã«æ”¹å.</div><div class='add'>+</div><div class='add'>+	* string.c(ucfirst,lcfirst): æœ€åˆã®1æ–‡å­—ã ã‘ã®å¤§æ–‡å­—/å°æ–‡å­—å¤‰æ›.</div><div class='add'>+</div><div class='add'>+	* numeric.c(chr): æ•´æ•°ã®æ–‡å­—åˆ—åŒ–ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+</div><div class='add'>+	* inits.c, dbm.c: DBMãŒä½¿ãˆãªã„æ™‚ã¯ã‚¯ãƒ©ã‚¹ãã®ã‚‚ã®ã‚’å®šç¾©ã—ãªã„ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸ.  åˆ©ç”¨ã§ããªã„ã‚¯ãƒ©ã‚¹ã¯nilã¨ã™ã‚‹ã“ã¨ã‚’ä»Šå¾Œã®ãƒãƒªã‚·ãƒ¼ã¨ã—ã‚ˆ</div><div class='add'>+	  ã†(ã„ã¾ã¾ã§ã¯ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸæ™‚ç‚¹ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¦ã„ãŸ). autoexec()</div><div class='add'>+	  ã®ã‚ã‚Šæ–¹ã‚‚æ¤œè¨ŽãŒå¿…è¦ã«ãªã‚Šãã†ã .</div><div class='add'>+</div><div class='add'>+	* bignum.c(bigadd): ãƒã‚°ä¿®æ­£.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 11:12:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(Fload,Feval): eval_treeã‚’ã‚¯ãƒªã‚¢ã—å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* _inspect: ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’å¯èª­å½¢å¼ã®æ–‡å­—åˆ—ã«å¤‰æ›ã™ã‚‹(ä¸»ã«ãƒ‡ãƒãƒƒã‚°</div><div class='add'>+	  å‡ºåŠ›ç”¨).</div><div class='add'>+</div><div class='add'>+Wed Jul  6 00:57:18 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* numeric.c, bignum.c: æ•´æ•°ã«å¯¾ã™ã‚‹`[]'æ¼”ç®—å­. nãƒ“ãƒƒãƒˆç›®ãŒã‚»ãƒƒãƒˆã•</div><div class='add'>+	  ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 12:48:39 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* io.c(Feof): è¿½åŠ . ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰ãªã‚‹ä»®æƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã«ã¤ã„ã¦ã‚‚</div><div class='add'>+	  EOFãŒæ¤œå‡ºã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* ruby.c: -l/-r/-R/-Xã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* ruby.c: -n/-pã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®loopã®ä»˜åŠ ãªã©ã‚’ãƒ¡ã‚¤ãƒ³ãƒ«ãƒ¼ãƒãƒ³ã«ç§»å‹•ã—</div><div class='add'>+	  ãŸ. ã“ã‚Œã§, ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®è§£æžé€”ä¸­ã§(`-c'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®ã›ã„ã§)çµ‚äº†ãª</div><div class='add'>+	  ã©ã¨ã„ã£ãŸã“ã¨ã¯ãªã„.</div><div class='add'>+</div><div class='add'>+	* io.c(Fgets): é«˜é€ŸåŒ–. å‡ã£ãŸã“ã¨ã‚’ã—ãªã„æ–¹ãŒé€Ÿã‹ã£ãŸ. è™šã—ã„.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 15:55:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* Socket:getsockname/getpeername - ã‚ˆã†ã‚„ãä»•æ§˜ãŒå®‰å®šã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* io.c(Fgets): eachã§getsã‚’è¨˜è¿°ã™ã‚‹ã®ã§ã¯ãªã, getsã§eachã‚’è¨˜è¿°ã™</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 10:35:49 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* $ENV[env] = nil/$ENV.delete(env)ã§ç’°å¢ƒå¤‰æ•°ã‚’å‰Šé™¤ã§ãã‚‹ã‚ˆã†ã«ãªã£</div><div class='add'>+	  ãŸ. $ENV.deleteã¯ç’°å¢ƒå¤‰æ•°ã®ä»¥å‰ã®å€¤ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+	* !~ã®å®šç¾©ãŒé–“é•ã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* Dict,DBM:[]= - nilã®ä»£å…¥ã«ã‚ˆã£ã¦è¦ç´ ã‚’å‰Šé™¤ã§ãã‚‹ã‚ˆã†ã«ãªã£ãŸ. ã“</div><div class='add'>+	  ã‚Œã«ã¨ã‚‚ãªã„nilã¯Dictã®è¦ç´ ã«ãªã‚Œãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* ã‚½ãƒ¼ã‚¹ã®æ•´ç†. ç›²è…¸ã®ã‚ˆã†ãªä½¿ã‚ã‚Œã¦ã„ãªã„ã‚³ãƒ¼ãƒ‰ã‚’ãªãã—ãŸã‚Š, å¤‰æ•°</div><div class='add'>+	  åã‚’ä»˜ã‘å¤‰ãˆãŸã‚Šã—ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 00:21:29 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Array:join() - è¦ç´ æ•°0ã®é…åˆ—ã«å¯¾ã—ã¦ç©ºæ–‡å­—åˆ—ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+	* RawSocket:open(),socketpair() - æ–‡å­—åˆ—ã§æŒ‡å®šã§ãã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³ã¨ã‚¿ã‚¤</div><div class='add'>+	  ãƒ—ã‚’ã„ãã¤ã‹è¿½åŠ ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 13:51:29 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* -fã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’ãªãã—ãŸ. æ˜”(loadã®ãªã‹ã£ãŸé ƒ)ã®åæ®‹ãªã®ã§, ä»Šã¨ãªã£</div><div class='add'>+	  ã¦ã¯å¿…è¦ãªã„ã ã‚ã†.</div><div class='add'>+</div><div class='add'>+	* -sã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ . perlã®-sã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¨åŒã˜å‹•ãã‚’ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* RawSocketã‚¯ãƒ©ã‚¹ã‚’æä¾›ã™ã‚‹. Socketã«å¯¾ã™ã‚‹ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ãƒ¬ãƒ™ãƒ«ã®</div><div class='add'>+	  ã‚¢ã‚¯ã‚»ã‚¹ãŒå¯èƒ½ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:27:19 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Socket - bug fixes.</div><div class='add'>+</div><div class='add'>+	* linuxã§ã¯syscall(SYS_select)ãŒæ­£å¸¸ã«å‹•ä½œã—ãªã„.</div><div class='add'>+</div><div class='add'>+	* Socket:addr,peeraddr - é…åˆ—ã¨ã—ã¦sockaddrã®æƒ…å ±ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 00:14:20 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Socket:setopt,getopt - setsockopt(2), getsockopt(2)ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹</div><div class='add'>+	  ã‚’å®Ÿç¾.</div><div class='add'>+</div><div class='add'>+	* sprintf() - rubyã«ã¯unsignedã¯ç„¡ã„ã®ã§, %uã‚’å–ã‚Šé™¤ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* sprintf() - %b, %x, %oã§ã¯2ã®è£œæ•°è¡¨ç¾, %B, %X, %Oã§ã¯ç¬¦å·ä»˜ãè¡¨</div><div class='add'>+	  ç¾ã§å‡ºåŠ›ã™ã‚‹ã‚ˆã†ã«. ã“ã“æ•°æ—¥ã§sprintf()ã®ä»•æ§˜ãŒã‚†ã‚‰ã„ã§ã„ãŸãŒ,</div><div class='add'>+	  ã“ã‚Œã§è½ã¡ç€ããã†ã .</div><div class='add'>+</div><div class='add'>+Tue Jun 28 14:42:03 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* Bignum:&lt;&lt;,&gt;&gt; - 2ã®è£œæ•°ã‚’ã¨ã‚‹å‡¦ç†ã‚’é™¤ã„ãŸ. ã‚·ãƒ•ãƒˆæ¼”ç®—ã«ã¯é–¢ä¿‚ãªã„</div><div class='add'>+	  å‡¦ç†ã ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* Bignum:^ - bug fix. ç¬¦åˆãŒåå¯¾ã ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* sprintf() - 2é€²å‡ºåŠ›å­"%b"ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* sprintf() - %x, %oã§Fixnumã‚’å‡ºåŠ›ã™ã‚‹æ™‚, 2ã®è£œæ•°è¡¨ç¤ºã‚’è¡Œãªã‚ãªã„.</div><div class='add'>+</div><div class='add'>+	* sprintf() - %x, %oã¯ã‚„ã¯ã‚Šè² ã®æ•°ã®æ™‚ã¯`-'ã‚’å‡ºåŠ›ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 14:56:13 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* sprintf() - Bignumã«ã¤ã„ã¦ã‚‚%d, %oã¯(2ã®è£œæ•°è¡¨ç¾ã«å¤‰æ›ã—ã¦)æ­£ã®</div><div class='add'>+	  æ•´æ•°ã‚’è¡¨ç¤ºã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* Bignumã«å¯¾ã™ã‚‹è«–ç†æ¼”ç®—ã®å®šç¾©ã‚’ä¿®æ­£ã—ãŸ. è² ã®æ•°ã¯2ã®è£œæ•°è¡¨ç¾ã§ã‚</div><div class='add'>+	  ã‚‹ã¨ã¿ãªã—, ã‹ã¤ä»®æƒ³çš„ã«å·¦å´ã«ç„¡é™ã«1ãŒé€£ç¶šã—ã¦ã„ã‚‹ã‚ˆã†ãªæ¼”ç®—çµ</div><div class='add'>+	  æžœã‚’å¾—ã‚‹.</div><div class='add'>+</div><div class='add'>+	* Fixnum:&lt;&lt;,&gt;&gt; - ç¬¦åˆä»˜ã‚·ãƒ•ãƒˆã«å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+	* Bignum:&gt;&gt; - è² ã®æ•´æ•°ã®ã‚·ãƒ•ãƒˆã«å¯¾å¿œã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* __END__, ^D, ^Zã§ã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’çµ‚äº†ã§ãã‚‹.</div><div class='add'>+</div><div class='add'>+	* -xã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ . #! ..rubyãªã‚‹è¡Œã¾ã§èª­ã¿é£›ã°ã™.</div><div class='add'>+</div><div class='add'>+	* -cã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ . ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã®ã¿ã‚’è¡Œã†.</div><div class='add'>+</div><div class='add'>+Sat Jun 25 01:37:21 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Fixnum:&lt;&lt; - å¿…è¦ã«å¿œã˜ã¦Bignumã«æ‹¡å¼µã—ã¦å·¦ã‚·ãƒ•ãƒˆã™ã‚‹ã‚ˆã†ã«. ã‚ˆã£</div><div class='add'>+	  ã¦, ã‚·ãƒ•ãƒˆå¹…ãŒ32ã‚’è¶Šãˆã‚‹ã¨Cã‚„Perlã¨ã¯é•ã£ãŸå€¤ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 10:01:28 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ioctl()/fcntl() - ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã‚’å‘¼ã³å‡ºã™å‰ã«ãƒãƒƒãƒ•ã‚¡ã®å¤§ãã•ã‚’</div><div class='add'>+	  èª¿ç¯€ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* String:toupper/tolower - æ–‡å­—åˆ—ã‚’ç½®ãæ›ãˆãŸã‚³ãƒ”ãƒ¼ã‚’ä½œã‚‹ã®ã§ã¯ãª</div><div class='add'>+	  ã, å…ƒã®æ–‡å­—åˆ—ã®å†…å®¹ã‚’å¤‰æ›´ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* inplace editã‚’å®Ÿç¾ã—ãŸ. perlã¨åŒã˜ã‚ˆã†ã«`-i'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§æŒ‡å®šã™ã‚‹.</div><div class='add'>+	  ã‚‚ã£ã¨ã‚‚, ã“ã¡ã‚‰ã¯MS-DOSã®ã“ã¨ã¨ã‹è€ƒãˆã¦ãªã„ã‘ã©.</div><div class='add'>+</div><div class='add'>+	* ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®å‡ºåŠ›å…ˆã‚’è¿½åŠ ã—ãŸ. ä»Šã¾ã§ã¯$stdoutã«ä»£å…¥ã™ã‚‹ã—ã‹æ–¹æ³•</div><div class='add'>+	  ã¯ãªã‹ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jun 17 10:55:08 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ç’°å¢ƒå¤‰æ•°ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹æ–¹æ³•ã¨ã—ã¦getenv()/setenv()ä»¥å¤–ã«$ENVã‚’ç”¨</div><div class='add'>+	  æ„ã—ãŸ. $ENVã¯æ–‡å­—åˆ—-æ–‡å­—åˆ—ã®è¾žæ›¸ã§ã‚ã‚‹ã‹ã®ã‚ˆã†ã«å‹•ä½œã™ã‚‹EnvDict</div><div class='add'>+	  ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒä»£å…¥ã•ã‚Œã¦ã„ã‚‹(eachã¯assocã‚’ä¸Žãˆã‚‹).</div><div class='add'>+</div><div class='add'>+	* nilã«ä»£å…¥ã™ã‚‹ã¨core dumpã—ãŸ. ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã®ãƒã‚§ãƒƒã‚¯ã‚’å¼·åŒ–.</div><div class='add'>+</div><div class='add'>+	* Struct: struct_new()ã®å¼•æ•°ã‚’GCãƒ—ãƒ­ãƒ†ã‚¯ãƒˆã™ã‚‹å¿…è¦ãŒã‚ã‚‹. ã›ã‚ã¦ã‚¹</div><div class='add'>+	  ã‚¿ãƒƒã‚¯é ˜åŸŸã ã‘ã§ã‚‚ã‚¹ã‚­ãƒ£ãƒ³ã§ãã‚‹ã‚ˆã†ã«ã—ãªã‘ã‚Œã°ã„ã‘ãªã„ã‚“ã ã‚ã†</div><div class='add'>+	  ã‹? ã§ã‚‚, ç§»æ¤æ€§ãŒãªã‚.</div><div class='add'>+</div><div class='add'>+Fri Jun 17 01:01:46 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Time::asctime() - æ—¥ä»˜ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§æ—¥ãŒè½ã¡ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* Stat: Statã¯Etcãªã©ã¨åŒæ§˜ã«Structã§å®Ÿç¾ã—ãŸã®ã§, Statã‚¯ãƒ©ã‚¹ã¯ç„¡</div><div class='add'>+	  ããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 10:32:23 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* bignum.c: ã„ãã¤ã‹ã®ãƒã‚°ã‚’ä¿®æ­£ã—ãŸ. Fixnumã‚’æ¸¡ã™ã¹ãã¨ã“ã‚ã§æ™®é€š</div><div class='add'>+	  ã®intã‚’æ¸¡ã—ã¦ã„ãŸ. å¤±æ•—.</div><div class='add'>+</div><div class='add'>+	* big2str() - 1æ¡ãšã¤baseã§å‰²ã‚‹ä»£ã‚ã‚Šã«, 4æ¡ãšã¤å‰²ç®—ã‚’è¡Œãªã†ã‚ˆã†ã«</div><div class='add'>+	  ã—ãŸ. ã“ã‚Œã§å¤šå€é•·å‰²ç®—ã®å›žæ•°ãŒ1/4ã«ãªã‚‹. ã•ã‚‰ã«æ•´æ•°-&gt;æ•°(æ–‡å­—)ã¸</div><div class='add'>+	  ã®å¤‰æ›ã‚’ãƒ†ãƒ¼ãƒ–ãƒ«ã‚’ç”¨ã„ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* rb_ivar_get_1() - ã™ã§ã«ä½•ã‚‰ã‹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã‚’æŒã¤ã‚ªãƒ–ã‚¸ã‚§ã‚¯</div><div class='add'>+	  ãƒˆã§ã¯, æœªå®šç¾©ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã®å€¤ãŒä¸å®šå€¤ã«ãªã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* yylex() - ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã®èªè­˜ã«å¤±æ•—ã—ã¦ã„ãŸ. attr()ã¯æ­£ã—ãå‹•</div><div class='add'>+	  ä½œã—ã¦ã„ãŸã®ã§, æ··ç”¨ã™ã‚‹ã¨å‹•ä½œã—ãªã‹ã£ãŸ. å…¨éƒ¨é•ã£ã¦ã„ãŸã‹ã‚‰å‹•ã„</div><div class='add'>+	  ã¦ã„ãŸã®ã­.</div><div class='add'>+</div><div class='add'>+	* Object:attr() - ã™ã§ã«ã‚¢ã‚¯ã‚»ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹æ™‚ã«ã¯ãƒ‡ãƒ•ã‚©</div><div class='add'>+	  ãƒ«ãƒˆã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å®šç¾©ã—ãªã„ã‚ˆã†ã«ã—ãŸ. ã‚‚ã£ã¨ã‚‚ã‚¢ã‚¯ã‚»ã‚¹ãƒ¡</div><div class='add'>+	  ã‚½ãƒƒãƒ‰ã¨åŒåã®ãƒ¡ã‚½ãƒƒãƒ‰ã®åŒºåˆ¥ã¯Rubyã«ã¯å­˜åœ¨ã—ãªã„ã‘ã©, ãã‚Œã¯ä»•æ–¹</div><div class='add'>+	  ãŒãªã„ã‚ˆã­.</div><div class='add'>+</div><div class='add'>+	* pack.c: ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã‚’autoconfã§åˆ¤å®šã™ã‚‹ã‚ˆã†ã«ã—ãŸã®ã§, v/VãŒä½¿</div><div class='add'>+	  ãˆã‚‹ã‚ˆã†ã«ãªã£ãŸ. ã¾ãŸntoh?()/hton?()ã‚‚è‡ªå‰ã§ç”¨æ„ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* Stat: st_rdevã‚’ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ . ã•ã‚‰ã«ã‚·ã‚¹ãƒ†ãƒ ãŒstat</div><div class='add'>+	  æ§‹é€ ä½“ã«st_blksize, st_blockã‚’æŒã£ã¦ã„ã‚‹ã‹ã‚’autoconfã§ãƒã‚§ãƒƒã‚¯ã™</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å°‘ã—æ•´å‚™ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* INT2FIX()ã®ã†ã¡, 31bitå¹…ãŒä¿è¨¼ã§ããªã„ã‚‚ã®ã¯, int2inum()ã«ç½®ãæ›</div><div class='add'>+	  ãˆãŸ.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 10:18:27 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* sprintf() - bignumã®å‡ºåŠ›ã®æ™‚, å‡ºåŠ›å¹…ã‚’æ­£ã—ãè¨ˆç®—ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* str2inum() - baseãŒ0ã®æ™‚, baseã‚’è‡ªå‹•åˆ¤å®šã™ã‚‹ã‚ˆã†ã«(0xã§å§‹ã¾ã‚‹æ™‚</div><div class='add'>+	  16 é€², 0ã§å§‹ã¾ã‚‹æ™‚8é€²).</div><div class='add'>+</div><div class='add'>+Tue Jun 14 16:08:42 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* gc.c: Bignumåž‹ã‚’è¿½åŠ ã™ã‚‹ã®ã‚’å¿˜ã‚Œã¦ã„ãŸ. çµ„ã¿è¾¼ã¿åž‹ã‚’è¿½åŠ ã—ãŸæ™‚ã«</div><div class='add'>+	  ã¯å¿…ãšmark()ã¨sweep()ã«ãã®åž‹ã«é–¢ã™ã‚‹å‡¦ç†ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* bignum: å‰²ç®—ã‚‚å‹•ã„ãŸã‚ˆã†ãªæ°—ãŒã™ã‚‹. ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’ç†è§£ã—ã¦ã„ãªã„</div><div class='add'>+	  ã®ã§, è‡ªä¿¡ãŒãªã„.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 14:36:55 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ã¾ã ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ãƒ¡ã‚½ãƒƒãƒ‰ãªã©ãŒã‚ã‚‹ãŒ, æ›²ãŒã‚Šãªã‚Šã«ã‚‚Bignum</div><div class='add'>+	  ãŒä½¿ãˆã‚‹ã‚ˆã†ã«ãªã‚‹. ã“ã‚Œã§ioctlã‚‚ä½¿ãˆã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 17:26:42 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* Comparable: åŸºç¤Žã¨ãªã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’`=='ã¨`&gt;'ã‹ã‚‰`&lt;=&gt;'ã«å¤‰æ›´ã—ãŸ. ä»Š</div><div class='add'>+	  å¾ŒComparableã®ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã¯`&lt;=&gt;'ã ã‘ã‚’å†å®šç¾©ã™ã‚‹å¿…è¦ãŒã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 13:12:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* Need_Fixnum()ã‚’ã»ã¨ã‚“ã©ãªãã—ã¦, NUM2INT()ã§ç›´æŽ¥intã«å¤‰æ›ã™ã‚‹ã“</div><div class='add'>+	  ã¨ã«ã—ãŸ. ã“ã‚Œã§31bitã«ä¸¸ã‚ã¦æ¡è½ã¡ã‚’ãŠã“ã™å•é¡ŒãŒãªããªã‚‹.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 09:45:31 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.h: ãƒžã‚¯ãƒ­FIXABLE(n)ã‚’è¿½åŠ . ã¤ã„ã§ã«FIXNUMå‘¨ã‚Šã®å®šç¾©ã‚’å¤‰æ›´ã—</div><div class='add'>+	  ã¦, ç§»æ¤æ€§ã‚’é«˜ã‚ãŸ(ã¤ã‚‚ã‚Š).</div><div class='add'>+</div><div class='add'>+	* C++ã®äºˆç´„èªžã§ã‚ã‚‹newã‚’å‰Šé™¤ã—ãŸ. ã—ã‹ã—, ã‚‚ã†ã²ã¨ã¤ã®äºˆç´„èªžã§ã‚ã‚‹</div><div class='add'>+	  classã«é–¢ã—ã¦ã¯, ç½®ãæ›ãˆã‚‹å˜èªžãŒæ€ã„ã¤ã‹ãªã„ã“ã¨ã‚‚ã‚ã£ã¦ãã®ã¾</div><div class='add'>+	  ã¾ã«ãªã£ã¦ã„ã‚‹.</div><div class='add'>+</div><div class='add'>+	* 31bitã‚’è¶Šãˆãã†ãªINT2FIX()ã‚’é–¢æ•°å‘¼ã³å‡ºã—ã«å¤‰ãˆãŸ. å°†æ¥bignumãŒå°Ž</div><div class='add'>+	  å…¥ã•ã‚ŒãŸæ™‚ã«ã¯è‡ªå‹•çš„ã«bignumã‚’è¿”ã™ã‚ˆã†ã«ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* readline() - å¼•æ•°ã®`-'ã¯æ¨™æº–å…¥åŠ›ã‚’æ„å‘³ã™ã‚‹ã‚ˆã†ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* ruby.h: å³ã‚·ãƒ•ãƒˆãŒè«–ç†ã‚·ãƒ•ãƒˆã‹ç®—è¡“ã‚·ãƒ•ãƒˆã‹ã¯å‡¦ç†ç³»ä¾å­˜ã®ã‚ˆã†ãªã®</div><div class='add'>+	  ã§, ruby.hã§cppã‚’ä½¿ã£ã¦ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ã“ã‚Œã§ã†ã¾ãã„ã</div><div class='add'>+	  ã¨æ€ã†ã®ã ãŒ, æ‰‹å…ƒã«ç¬¦åˆä»˜intã‚’è«–ç†ã‚·ãƒ•ãƒˆã™ã‚‹å‡¦ç†ç³»ãŒãªã„ã®ã§ç¢º</div><div class='add'>+	  èªã§ããªã„. NEWS-OSã®CCã¯ç¢ºã‹å³ã‚·ãƒ•ãƒˆã¯ã„ã¤ã‚‚è«–ç†ã‚·ãƒ•ãƒˆã ã£ãŸã‚ˆ</div><div class='add'>+	  ã†ãªæ°—ãŒã™ã‚‹ã‚“ã ã‘ã©â€¦.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 10:10:22 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* FIX2INT()ã®å®šç¾©ã‚’å¤‰æ›´ã—ãŸ. ã©ã†ã—ã¦æ˜”ã¯ã†ã¾ãå‹•ã‹ãªã‹ã£ãŸã‚“ã ã‚</div><div class='add'>+	  ã†ã‹? ã‚‚ã—ã‹ã—ã¦, å³ã‚·ãƒ•ãƒˆã®ç¬¦å·æ‹¡å¼µã¯å‡¦ç†ç³»ä¾å­˜?</div><div class='add'>+</div><div class='add'>+	* FIX2INT()ã¨FIX2UINT()ã‚’ä½¿ã„åˆ†ã‘ã‚‹ã‚ˆã†ã«ã—ãŸ. ã‚‚ã£ã¨ã‚‚fixnumã¯31</div><div class='add'>+	  ãƒ“ãƒƒãƒˆã—ã‹ãªã„ã®ã§, æœ¬è³ªçš„ãªè§£æ±ºã«ã¯ãªã‚‰ãªã„ã®ã ãŒ(ioctlãŒçµ„ã¿è¾¼</div><div class='add'>+	  ã¿ãŸã‹ã£ãŸ).</div><div class='add'>+</div><div class='add'>+	* printã‚’é–¢æ•°çš„ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰é€šå¸¸ãƒ¡ã‚½ãƒƒãƒ‰ã«å¤‰æ›´. å¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œãªã„</div><div class='add'>+	  æ™‚ã«ã¯ãƒ¬ã‚·ãƒ¼ãƒã‚’ãƒ—ãƒªãƒ³ãƒˆã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ã“ã‚Œã§printã‚’ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸</div><div class='add'>+	  å½¢å¼ã§ã‚‚å®Ÿè¡Œã§ãã‚‹ã‚ˆã†ã«ãªã£ãŸ. ä¾‹:</div><div class='add'>+</div><div class='add'>+		ruby -e 'readlines().sort.print'</div><div class='add'>+</div><div class='add'>+	  ä¸Šã®ã‚¹ã‚¯ãƒªãƒ—ãƒˆã¯, å¼•æ•°ã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸ(ã‚ã‚‹ã„ã¯æ¨™æº–å…¥åŠ›ã‹ã‚‰èª­ã¿</div><div class='add'>+	  è¾¼ã¾ã‚ŒãŸ)æ–‡å­—åˆ—ã‚’å„è¡Œæ¯Žã«ã‚½ãƒ¼ãƒˆã—ã¦è¡¨ç¤ºã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* eval.c: argc,argvãƒ‘ã‚¿ãƒ¼ãƒ³ã§å¼•æ•°ã‚’å—ã‘ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã«å¼•æ•°ãŒä¸€ã¤ã‚‚ä¸Ž</div><div class='add'>+	  ãˆã‚‰ã‚Œãªã„æ™‚, argvãŒnilã«ãªã£ã¦ã„ãŸ(argv[0]ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã¨è½ã¡</div><div class='add'>+	  ã¦ã—ã¾ã†).</div><div class='add'>+</div><div class='add'>+	* _exit()ã‚’è¿½åŠ . ã“ã¡ã‚‰ã¯ä¾‹å¤–å‡¦ç†ãªã©è¡Œãªã‚ãªã„.</div><div class='add'>+</div><div class='add'>+	* dbmã‚¯ãƒ©ã‚¹: ã‚¯ãƒ©ã‚¹åç§°ã‚’DBM(å¤§æ–‡å­—)ã«çµ±ä¸€ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Sat Jun  4 00:51:04 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* ãƒ«ãƒ¼ãƒ—å¤‰æ•°ã«ã‚‚å±žæ€§ã‚„é…åˆ—è¦ç´ ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 09:49:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* å¤šé‡ä»£å…¥ã«ãŠã„ã¦, å±žæ€§ä»£å…¥, é…åˆ—è¦ç´ ã¸ã®ä»£å…¥ã‚‚è¡Œãªãˆã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* Need_Fixnum(): nilã‚’0ã«å¤‰æ›ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* Enumerable:min, max, index, includes - è¿½åŠ . min, maxã¯è¦ç´ ãŒ</div><div class='add'>+	  `&lt;=&gt;'ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æŒã¤ã“ã¨ã‚’ä»®å®šã—ã¦ã„ã‚‹.</div><div class='add'>+</div><div class='add'>+	* Dict/Dbm:length - è¦ç´ æ•°ã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+</div><div class='add'>+	* Dbmã‚¯ãƒ©ã‚¹ã«to_aãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* Sunã«ãŠã‘ã‚‹sortã®èª¤å‹•ä½œã®ä»¶, æ˜¨æ—¥ã®ä¿®æ­£ã§fixã•ã‚ŒãŸ. ã—ã‹ã—, ãã‚Œ</div><div class='add'>+	  ã§ãªãœå‹•ã‹ãªã‹ã£ãŸã®ã‹ã¯æ˜Žã‚‰ã‹ã§ã¯ãªã„ãŒâ€¦. æ¯”è¼ƒé–¢æ•°ãŒã©ã‚“ãªå€¤ã‚’</div><div class='add'>+	  è¿”ã—ã¦ã‚‚æŒ‡å®šã—ãŸé ˜åŸŸå¤–ã‚’ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã®ã¯ãƒã‚°ã§ã¯ãªã„ã‹.</div><div class='add'>+</div><div class='add'>+	* ãƒ•ã‚¡ã‚¤ãƒ«ã®å…¨å†…å®¹ã‚’èª­ã‚“ã§, å„è¡Œã‚’é…åˆ—ã¨ã—ã¦è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ã¯pythonã‚’</div><div class='add'>+	  å‚è€ƒã«ã—ã¦`readlines'ã¨ã„ã†åå‰ã«ã—ãŸ. ãã‚Œã«ã¨ã‚‚ãªã„getsã«å¯¾ã—</div><div class='add'>+	  ã¦readlineã¨ã„ã†åˆ¥åã‚’ç”¨æ„ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 00:08:38 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* Array:sort - åˆ¤åˆ¥é–¢æ•°ã®æˆ»ã‚Šå€¤ã¯Fixnumã§ã¯ãªã, Intã§ã‚ã‚‹ã¹ãã ã£</div><div class='add'>+	  ãŸ. é–“é•ã„. Sunã§å‹•ä½œãŒãŠã‹ã—ã‹ã£ãŸã®ã¯ã“ã®ã›ã„ã‹ã‚‚çŸ¥ã‚Œãªã„.</div><div class='add'>+</div><div class='add'>+Thu Jun  2 11:48:37 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* IO:read_all() - ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®æœ€å¾Œã¾ã§å…¥åŠ›ã—ã¦, å„è¡Œã‚’è¦ç´ ã¨ã™ã‚‹é…</div><div class='add'>+	  åˆ—ã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ . ã¾ãŸé–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰ read_all()ã‚‚è¿½åŠ ã—ãŸ.</div><div class='add'>+  	  ã“ã‚Œã¯å¼•æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰èª­ã¿è¾¼ã‚“ã§å„è¡Œã‚’è¦ç´ ã¨ã™ã‚‹é…åˆ—ã‚’è¿”ã™. æ„</div><div class='add'>+	  å‘³çš„ã«ã¯</div><div class='add'>+</div><div class='add'>+		def read_all()</div><div class='add'>+	  	  ary = {}</div><div class='add'>+	  	  while gets()</div><div class='add'>+		    ary.push($_)</div><div class='add'>+		  end</div><div class='add'>+		end</div><div class='add'>+</div><div class='add'>+	  ã¨ã»ã¼ç­‰ä¾¡ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* String:atoiãƒ¡ã‚½ãƒƒãƒ‰ã‚’å‰Šé™¤. to_aãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰aãŒé…åˆ—ã§ã‚ã‚‹ã¨ã®é€£æƒ³</div><div class='add'>+	  ã‚’å‘¼ã‚“ã§, æ··ä¹±ã‚’æ‹›ã‹ãªã„ãŸã‚. ä»£ã‚ã‚Šã«to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ã†ã“ã¨.</div><div class='add'>+</div><div class='add'>+	* é…åˆ—ã¸ã®å¤‰æ›ãƒ¡ã‚½ãƒƒãƒ‰to_aã‚’å°Žå…¥ã—ãŸ. é€šå¸¸ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¯è‡ªåˆ†è‡ªèº«</div><div class='add'>+	  ã‚’å”¯ä¸€ã®è¦ç´ ã¨ã™ã‚‹é•·ã•1ã®é…åˆ—ã‚’è¿”ã™. é…åˆ—ã¯è‡ªåˆ†è‡ªèº«ã‚’, è¾žæ›¸ã¯ã‚­ãƒ¼</div><div class='add'>+	  ã¨å€¤ã®ãƒšã‚¢ã®é…åˆ—ã‚’è¿”ã™. Enumeratedã‚’includeã—ãŸã‚¯ãƒ©ã‚¹ã¯, eachãŒ</div><div class='add'>+	  è¿”ã™å„è¦ç´ ã‚’å«ã‚€é…åˆ—ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+	* file.c: ä¸å®šå€‹ã®å¼•æ•°ã‚’å—ã‘ã¨ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰(chmod,chown,utimes)ã‚’æ›¸ã</div><div class='add'>+	  æ›ãˆã¦, æ•´ç†ã—ãŸ. ãã‚Œã«ä¼´ã„, æœ€åˆã«å…¨ã¦ã®å¼•æ•°ã®åž‹ãƒã‚§ãƒƒã‚¯ã‚’è¡Œãª</div><div class='add'>+	  ã†ã‚ˆã†ã«ã—ãŸ. åž‹ãƒã‚§ãƒƒã‚¯ã«å¤±æ•—ã™ã‚‹ã¨å‡¦ç†ã‚’è¡Œãªã‚ãšã«ä¾‹å¤–ã‚’ç™ºç”Ÿã•</div><div class='add'>+	  ã›ã‚‹.</div><div class='add'>+</div><div class='add'>+	* configure.in: ä¸å¿…è¦ãªãƒ†ã‚¹ãƒˆã‚’è¡Œãªã‚ãªã„ã‚ˆã†ã«ä¿®æ­£ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue May 31 10:41:08 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* String:pack(): 2é€²æ•°ã®æ–‡å­—åˆ—å¤‰æ›(B,b)ã§0ã¨1ãŒé€†ã ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* Math.c: å®Ÿæ•°ç³»ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«å¼•æ•°ã¨ã—ã¦æ•´æ•°ãŒæ¸¡ã•ã‚ŒãŸæ™‚ã«è‡ªå‹•çš„ã«å¤‰</div><div class='add'>+	  æ›ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* toupper(), tolower(): æ–‡å­—åˆ—ã®åˆ¤å®šãƒŸã‚¹ã§å¤‰æ›ã•ã‚Œã¦ã„ãªã‹ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* getopt_long()ã®ä»•æ§˜ã«ã‚ˆã£ã¦, ã‚¹ã‚¯ãƒªãƒ—ãƒˆã¸ã®å¼•æ•°ãŒã‚¤ãƒ³ã‚¿ãƒ—ãƒªã‚¿ã®</div><div class='add'>+	  å¼•æ•°ã ã¨è§£é‡ˆã•ã‚Œã¦ã„ãŸ. å¼•æ•°ãƒ‘ã‚¿ãƒ¼ãƒ³æ–‡å­—åˆ—ã®å…ˆé ­ã«`+'ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* config.hã‚’å‰Šé™¤ã—ãŸ. DEFINEã¯Makefileã§ä¸Žãˆã‚‰ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+	* sprintf(): "%d"ã«æ–‡å­—åˆ—ãŒä¸Žãˆã‚‰ã‚ŒãŸæ™‚ã«ã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã¯ãªãå†…å®¹ã‚’</div><div class='add'>+	  æ•´æ•°ã«å¤‰æ›ã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ã¤ã„ã§ã«æµ®å‹•å°æ•°ç‚¹æ•°ã‚‚å¤‰æ›ã™ã‚‹ã‚ˆã†ã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* regexp.c: rubyã®æ‹¡å¼µæ­£è¦è¡¨ç¾(\d, \D, \s, \S)ã®å‡¦ç†ã§å‰²ã‚Šå½“ã¦ãŸé ˜</div><div class='add'>+	  åŸŸã‚’è¶Šãˆã¦ãƒãƒƒãƒ•ã‚¡ã«æ›¸ãè¾¼ã‚“ã§ã„ãŸ. å‡¦ç†å‰ã«ãƒãƒƒãƒ•ã‚¡ã‚’ãã¡ã‚“ã¨æ‹¡</div><div class='add'>+	  å¼µã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ã“ã‚Œã§æ˜¨æ—¥å•é¡Œã«ã—ã¦ã„ãŸãƒ¡ãƒ¢ãƒªã®å•é¡Œã¯è§£æ±ºã§ã</div><div class='add'>+	  ãŸã¨æ€ã†.</div><div class='add'>+</div><div class='add'>+	* yylex(): ãƒ€ãƒ–ãƒ«ã‚¯ã‚©ãƒ¼ãƒˆæ–‡å­—åˆ—ä¸­ã§ãƒ€ãƒ–ãƒ«ã‚¯ã‚©ãƒ¼ãƒˆã‚’è¡¨ç¾ã™ã‚‹ãŸã‚</div><div class='add'>+	  ã®ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥è¡¨ç¾ãŒã§ããªã‹ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Mon May 30 10:07:42 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* æ¼”ç®—å­`!'ã®å³è¾ºã‚‚æ¡ä»¶å¼ã§ã‚ã‚‹ã¨ã—ãŸ. ã“ã‚Œã«ã‚ˆã£ã¦, ã“ã®æ¼”ç®—å­ã‚’</div><div class='add'>+	  å†å®šç¾©ã™ã‚‹äººã¯æ··ä¹±ã™ã‚‹ã‹ã‚‚çŸ¥ã‚Œãªã„ãŒ, å¤§å¤šæ•°ã®ã“ã®æ¼”ç®—å­ã‚’ä½¿ã†äºº</div><div class='add'>+	  ã¯æ··ä¹±ã‚’é¿ã‘ã‚‹ã“ã¨ãŒã§ãã‚‹ã¨æ€ã†.</div><div class='add'>+</div><div class='add'>+	* autoconfã‚’ä½¿ã£ã¦, è‡ªå‹•çš„ã«Makefile, config.hã‚’ç”Ÿæˆã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+	  ã“ã‚Œã§, å¤šãã®ãƒžã‚·ãƒ³ã§ã¯`configure'ã‚’å®Ÿè¡Œã—ãŸå¾Œ, `make'ä¸€ç™ºã§ã‚³</div><div class='add'>+	  ãƒ³ãƒ‘ã‚¤ãƒ«ã§ãã‚‹ã¨æ€ã†.</div><div class='add'>+</div><div class='add'>+	* clone: ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã«å¯¾ã—ã¦ç”¨ã„ã‚‰ã‚ŒãŸå ´åˆ, å…ƒã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¨åŒã˜</div><div class='add'>+	  ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’è¿”ã™ã‚ˆã†ã«(ä»¥å‰ã¯ãƒ“ãƒ«ãƒˆã‚¤ãƒ³ã‚¯ãƒ©ã‚¹ã®å ´åˆã‚’</div><div class='add'>+	  è€ƒãˆã¦ãªã‹ã£ãŸ).</div><div class='add'>+</div><div class='add'>+	* ãƒ“ãƒ«ãƒˆã‚¤ãƒ³ã‚¯ãƒ©ã‚¹ã®ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã‚‚ä½œã‚Œã‚‹ã‚ˆã†ã«, ãƒªãƒ†ãƒ©ãƒ«ã®ã‚ã‚‹ã‚¯ãƒ©ã‚¹</div><div class='add'>+	  ã«ã‚‚newãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* malloc()ã§è½ã¡ã‚‹. purifyãŒå¿…è¦ã‹ã‚‚çŸ¥ã‚Œãªã„.</div><div class='add'>+</div><div class='add'>+	* re.c: rb_global_variable()ã®å‘¼ã³ã ã—å½¢å¼ã®é–“é•ã„. å¤‰æ•°ã¸ã®ãƒã‚¤ãƒ³</div><div class='add'>+	  ã‚¿ã‚’æ¸¡ã•ãªã‘ã‚Œã°ã„ã‘ãªã„.</div><div class='add'>+</div><div class='add'>+	* parse.y: ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®æ‰±ã„ã«å¼•æ•°ã®è©•ä¾¡é †ã«ä¾å­˜ã™ã‚‹ç§»æ¤æ€§ã®ãªã„</div><div class='add'>+	  éƒ¨åˆ†ãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* attr(): å±žæ€§è¨­å®šã®ãƒã‚°ã‚’ç›´ã—ãŸ. ã„ã¤å†…éƒ¨ä»•æ§˜ãŒå¤‰ã‚ã£ãŸã‚“ã ã‚ã†â€¦?</div><div class='add'>+</div><div class='add'>+Sat May 28 23:08:18 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* æ­£è¦è¡¨ç¾ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®æ–‡å­—åˆ—ä¸€è‡´åˆ¤å®šã‚’ãƒã‚¤ãƒ³ã‚¿ä¸€è‡´ã‹ã‚‰å†…å®¹ä¸€è‡´ã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ. ãã†ã„ãˆã°æ–‡å­—åˆ—ãƒªãƒ†ãƒ©ãƒ«ã¯ä¸€å›žæ¯Žã«æ–°ã—ãã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒç”Ÿ</div><div class='add'>+	  æˆã•ã‚Œã‚‹ã®ã ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Fri May 27 11:42:00 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* trã‹ã‚‰æ–‡å­—å‰Šé™¤(delete), æ–‡å­—åœ§ç¸®(squeeze)ã‚’åˆ†é›¢ã—ãŸ. ãã‚Œã«ã¨ã‚‚</div><div class='add'>+	  ãªã„trã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³å¼•æ•°ã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Thu May 26 10:32:55 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ã‚¹ã‚¯ãƒªãƒ—ãƒˆèª­ã¿è¾¼ã¿ãƒ«ãƒ¼ãƒãƒ³ã‚’æ›¸ãç›´ã—ã¦, é€šå¸¸ãƒ•ã‚¡ã‚¤ãƒ«ä»¥å¤–ã®ãƒ•ã‚¡ã‚¤</div><div class='add'>+	  ãƒ«åã‚„ç©ºæ–‡å­—åˆ—ãŒã‚¹ã‚¯ãƒªãƒ—ãƒˆã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã«å¯¾å¿œã—ãŸ. ã¾ãŸ,</div><div class='add'>+	  æ¨™æº–å…¥åŠ›ã‹ã‚‰ã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’èª­ã¿è¾¼ã‚€æ™‚ã«, ä¸€æ™‚ãƒ•ã‚¡ã‚¤ãƒ«ãŒ/tmpã«æ®‹ã‚‰ãª</div><div class='add'>+	  ã„ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* Fixnum:id2name - IDã‹ã‚‰æ–‡å­—åˆ—ã«æˆ»ã™é–¢æ•°. String:internã®é€†.</div><div class='add'>+</div><div class='add'>+	* Array: é…åˆ—ã®ç¯„å›²å¤–ã®è¦ç´ ã‚’ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸæ™‚ã«ä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ãšã«,</div><div class='add'>+	  nilã‚’è¿”ã™ã‚ˆã†ã«ã—ãŸ. é…åˆ—ã¯è‡ªå‹•çš„ã«æ‹¡å¼µã•ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+	* string:stripã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* -nã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒ-eã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¤‡æ•°æŒ‡å®šã—ãŸæ™‚ã‚‚å‹•ä½œã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.yã§&lt;sys/types.h&gt;ã‚‚ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* fnameå‘¨ã‚Šã®ç´°ã‹ã„bugã‚’ä¿®æ­£.</div><div class='add'>+</div><div class='add'>+Wed May 26 11:45:10 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* å®šæ•°ã‚’ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ç¹°ã‚Šè¿”ã—ãŒå¤šã„å ´åˆã«ã¯æœ‰åŠ¹ã®ã¯ãš</div><div class='add'>+	  ã ãŒ, ä¸€åº¦ã—ã‹ã‚¢ã‚¯ã‚»ã‚¹ã—ãªã„å ´åˆã¯é…ããªã‚‹ãªã‚.</div><div class='add'>+</div><div class='add'>+Wed May 25 00:42:24 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* å¤šé‡ä»£å…¥æ–‡(foo, bar = 1, 2)ã®æŽ¡ç”¨.</div><div class='add'>+</div><div class='add'>+	* æ¡ä»¶å¼éƒ¨ã«æ–‡å­—åˆ—ã‚ã‚‹ã„ã¯æ­£è¦è¡¨ç¾ãƒªãƒ†ãƒ©ãƒ«ã‚’ãŠãã¨`=~'æ¼”ç®—å­ã«ã‚ˆã£</div><div class='add'>+	  ã¦`$_'ã¨æ¯”è¼ƒã•ã‚Œã‚‹. æ›´ã«`...'ã®ä¸¡è¾ºã§ã¯æ•´æ•°ãƒªãƒ†ãƒ©ãƒ«ãŒ`$.'ã¨æ¯”è¼ƒ</div><div class='add'>+	  ã•ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+Mon May 23 23:27:03 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* &amp;å¼ å½¢å¼ã¯ãªããªã£ãŸ. ä»£ã‚ã‚Šã«kernel:apply(id, args..)ã‚’å°Žå…¥.</div><div class='add'>+</div><div class='add'>+	* def op () ..å½¢å¼ã®å°Žå…¥. opã¯å†å®šç¾©å¯èƒ½ãªæ¼”ç®—å­.</div><div class='add'>+</div><div class='add'>+	* constantã®ä»£å…¥æ™‚ãƒã‚§ãƒƒã‚¯. æ—¢ã«åˆæœŸåŒ–ã•ã‚Œã¦ã„ã‚‹å®šæ•°ã«ä»£å…¥ã—ãŸå ´åˆ</div><div class='add'>+	  ã¯ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* å¤šé‡ä»£å…¥æ–‡.</div><div class='add'>+</div><div class='add'>+Thu May 19 22:57:07 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* è¤‡åˆæ–‡ã§ã‚‚void valueã®ãƒã‚§ãƒƒã‚¯ã‚’è¡Œã†ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* untilã®å‹•ä½œã®ä¿®æ­£(do..untilåž‹ã ã£ãŸ).</div><div class='add'>+</div><div class='add'>+Wed May 18 01:06:25 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* ç§»æ¤ã«é–¢ã™ã‚‹è‹¥å¹²ã®å•é¡Œã‚’ä¿®æ­£.</div><div class='add'>+</div><div class='add'>+	* åˆ¥åã®æ§‹æ–‡ã‚’ã€Œdef a bã€ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* until/unless: æ¼”ç®—å­ã‹ã‚‰åˆ¶å¾¡æ–‡ã¸. ä¾‹å¤–ã‚’æ•æ‰ã™ã‚‹æ©Ÿèƒ½ã¯ãã®ã¾ã¾.</div><div class='add'>+</div><div class='add'>+	* é¸æŠžå¯èƒ½ãªæ©Ÿèƒ½ã‚’config.hã‹ã‚‰defines.hã«ç§»å‹•.</div><div class='add'>+</div><div class='add'>+Fri May 13 23:20:21 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* -yã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’æ–°è¨­. -dã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‹ã‚‰ã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ã®ãƒ‡ãƒãƒƒã‚°éƒ¨åˆ†ã‚’åˆ†</div><div class='add'>+	  é›¢ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Apr 25 20:17:33 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* ãƒžãƒ«ãƒãƒã‚¤ãƒˆæ–‡å­—åˆ—ã‚’è­˜åˆ¥å­ã«ä½¿ãˆã‚‹ã‚ˆã†ã«. å€‹äººçš„ã«ã¯ä½¿ã„ãŸãã¯ç„¡</div><div class='add'>+	  ã„ã‘ã©ãªã‚.</div><div class='add'>+</div><div class='add'>+	* `-v'ãƒ•ãƒ©ã‚°ã®çŠ¶æ…‹ã‚’$verboseã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* CVSã®å°Žå…¥ã«ä¼´ã„, ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç®¡ç†ã®æ–¹æ³•ã‚’å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+	* çœŸé¢ç›®ã«ChangeLogã‚’ã¤ã‘ã‚‹äº‹ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 10:09:25 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* %å¤‰æ•°å ã«ã‚ˆã‚‹ã‚¯ãƒ©ã‚¹å®šæ•°ã‚’å°Žå…¥.</div><div class='add'>+</div><div class='add'>+	* undef ãƒ¡ã‚½ãƒƒãƒ‰ ã«ã‚ˆã‚‹ãƒ¡ã‚½ãƒƒãƒ‰å®šç¾©ã®å–ã‚Šæ¶ˆã—ã‚’å°Žå…¥.</div><div class='add'>+</div><div class='add'>+	* rb_get_method_bodyã§ã¯the_envã‚’å¤‰æ›´ã›ãš, rb_call()ã§æ˜Žç¤ºçš„ã«å¤‰æ›´</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«. ã“ã‚Œã§responds_toãªã©ã§ç’°å¢ƒãŒç ´å£Šã•ã‚Œãªã„.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 17:46:15 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* ã€Œ&amp;æ–‡å­—åˆ—ã€å½¢å¼. ã€Œå¼.æ–‡å­—åˆ—ã€åž‹ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚»ãƒ³ãƒ‰ã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* è‡ªå·±ä»£å…¥å½¢å¼(+=. -=, ...)</div><div class='add'>+</div><div class='add'>+	* obj.attr = exprå½¢å¼ã®æŽ¡ç”¨.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 16:23:28 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* toint, tofloat, print_stringã‚’ãã‚Œãžã‚Œto_i, to_f, to_sã«å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+	* String:clone - Copy on Writeã®å®Ÿç¾.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 11:11:44 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* re.c: ãƒžãƒƒãƒã—ãŸæ–‡å­—åˆ—ã®ä¿å­˜ã«å¤±æ•—ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* trap: å¯èƒ½ãªã‚‰ã°å‡¦ç†ã«æ™‚é–“ã®ã‹ã‹ã‚‹ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«(read, wait,</div><div class='add'>+	  sigpause, select)ã‚’ãƒ•ãƒƒã‚¯ã—ã¦å‰²ã‚Šè¾¼ã¿å‡¦ç†ã®å³ç­”æ€§ã‚’é«˜ã‚ã‚‹(DOSãª</div><div class='add'>+	  ã©ã§ã¯ç„¡ç†ã ãªã‚).</div><div class='add'>+</div><div class='add'>+	* trap: å‰²ã‚Šè¾¼ã¿ã‚’ãã®å ´ã§å‡¦ç†ã™ã‚‹ã‹(è¿…é€Ÿã ãŒå±é™º), å®‰å…¨ãªã‚¿ã‚¤ãƒŸãƒ³</div><div class='add'>+	  ã‚°ã§å‡¦ç†ã™ã‚‹ã‹ã‚’é¸æŠžã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 11:11:12 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* trap: å‰²ã‚Šè¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 12:29:12 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* String:crypt: æš—å·åŒ–ãƒ«ãƒ¼ãƒãƒ³</div><div class='add'>+</div><div class='add'>+	* "::"æ¼”ç®—å­ã®è¿½åŠ . a::b ã¯ {a, b}ã¨åŒç¾©. a::b::c ã¯ {a, {b, c}}ã¨</div><div class='add'>+	  åŒç¾©(å³çµåˆ). åŒç¾©ã¨ã¯ã„ã†ã‚‚ã®ã®, "::"æ¼”ç®—å­ã‚’ä½¿ã£ãŸæ–¹ãŒå°‘ã—ã ã‘</div><div class='add'>+	  ãƒ¡ãƒ¢ãƒªåŠ¹çŽ‡ãŒè‰¯ã„.</div><div class='add'>+</div><div class='add'>+	* Dir.rmdir(), File.unlink(), File.utime() -- å„ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã¸ã®</div><div class='add'>+	  ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹.</div><div class='add'>+</div><div class='add'>+	* kill -- kill(2) I/F</div><div class='add'>+</div><div class='add'>+	* select(): readã®ãƒã‚§ãƒƒã‚¯ã§ã¯stdioã«ãƒãƒƒãƒ•ã‚¡ãƒªãƒ³ã‚°ã•ã‚Œã¦ã„ã‚‹ã‹ã©</div><div class='add'>+	  ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 15:08:31 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* file.c: statã‚’ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* File:utime()ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* unliteralize(): ãƒ•ãƒ©ã‚°ã‚’ç ´å£Šã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* Bug(): coreã‚’åãã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* String:tr -- tr(1)äº’æ›. å¼•æ•°ãƒ‘ã‚¿ãƒ¼ãƒ³ãŒã¡ã‚‡ã£ã¨é•ã†ã‘ã©â€¦.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 18:24:13 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* unless, untilãŒä¾‹å¤–ã‚‚å½ã¨è¦‹ãªã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* select() -- select(2) I/F</div><div class='add'>+</div><div class='add'>+	* Array:pack, String:unpack: perlã®pack/unpackã®åŒç­‰å“</div><div class='add'>+</div><div class='add'>+Tue Feb  8 17:11:10 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* setenv()ã®ãªã„ã‚·ã‚¹ãƒ†ãƒ ã®ãŸã‚ã«putenv()ã‚’ä½¿ã£ãŸã‚³ãƒ¼ãƒ‰ã‚‚ç”¨æ„ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 09:52:44 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* å¼•æ•°ã®ä¸€ç•ªæœ€å¾Œã«`*'ã‚’ç½®ã‘ã‚‹ã‚ˆã†ã«ã—ãŸ. ã“ã‚Œã§restå¼•æ•°ã®ãƒªã‚¹ãƒˆã‚’</div><div class='add'>+	  æ“ä½œã™ã‚‹å¿…è¦ãŒå°‘ãªããªã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 18:23:26 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* ruby-mode.elã‚’æ›¸ãç›´ã™. ãšã„ã¶ã‚“ã¾ã—ã«ãªã£ãŸã¨æ€ã†.</div><div class='add'>+</div><div class='add'>+	* æ–‡å­—åˆ—ãƒªãƒ†ãƒ©ãƒ«ã®Copy on Writeã‚’å®Ÿç¾. ã“ã‚Œã§æ–‡å­—åˆ—ãŒãƒªãƒ†ãƒ©ãƒ«ã§ã‚</div><div class='add'>+	  ã‚‹ã‹ã‚‰ã¨ã„ã£ã¦ã„ã¡ã„ã¡cloneã—ãªãã¦ã‚‚æ¸ˆã‚€.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 09:21:09 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* sub(), gsub()ã§, ãƒžãƒƒãƒã—ãŸæ–‡å­—åˆ—ã‚’$&amp;, $1..$9ã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ã—ãŸ. åŒæ™‚ã«ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†æ–‡å­—åˆ—ã‚’ã‚³ãƒ”ãƒ¼ã—ã¦ãŠãã‚ˆã†ã«(å…ƒã®</div><div class='add'>+	  æ–‡å­—åˆ—ãŒå¤‰æ›´ã•ã‚Œã¦ã‚‚çŠ¶æ…‹ã‚’ä¿å­˜ã™ã‚‹ãŸã‚).</div><div class='add'>+</div><div class='add'>+Mon Jan 31 15:16:58 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* ãƒ—ãƒ©ã‚¤ãƒ™ãƒ¼ãƒˆãƒ¡ã‚½ãƒƒãƒ‰ã®ä»•æ§˜ã‚’å¤‰æ›´. ä»Šã¾ã§ã¯åŒã˜ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‹</div><div class='add'>+	  ã‚‰ã—ã‹ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã‹ã£ãŸãŒ, ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰ã‚‚ã‚¢ã‚¯ã‚»ã‚¹</div><div class='add'>+	  ã§ãã‚‹ã‚ˆã†ã«ã—ãŸ(C++ã«ãŠã‘ã‚‹protected ãƒ¡ãƒ³ãƒé–¢æ•°).</div><div class='add'>+</div><div class='add'>+	* ãƒ¡ã‚½ãƒƒãƒ‰ã‚µãƒ¼ãƒã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’æ”¹å–„ã—, 10%ç¨‹åº¦ã®é«˜é€ŸåŒ–ã‚’è¡Œãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* é«˜é€ŸåŒ–. Cã§è¨˜è¿°ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’å‘¼ã³å‡ºã™æ™‚ã«ã¯setjmpã‚’å‘¼ã°ãªã„ã‚ˆ</div><div class='add'>+	  ã†ã«ã—ãŸ. ã“ã‚Œã§Cãƒ¡ã‚½ãƒƒãƒ‰ã‚’å¤šç”¨ã™ã‚‹å ´åˆã«ã¯3å€ç¨‹åº¦é«˜é€Ÿã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 15:44:04 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* sh-modeã‚’å…ƒã«ruby-mode.elã‚’ä½œã‚‹. æ¼”ç®—å­ã§çµ‚ã‚‹, 2è¡Œã«æ¸¡ã‚‹æ–‡ã«ã¯å¯¾</div><div class='add'>+	  å¿œã—ã¦ã„ãªã„ã‘ã©â€¦.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 11:35:19 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* freenode(): NODE_NILã®è§£æ”¾å¿˜ã‚Œ.</div><div class='add'>+</div><div class='add'>+	* å­—å¥è§£æžéƒ¨ã®ãƒã‚°ä¿®æ­£(ã‚³ãƒ¡ãƒ³ãƒˆã®å¾Œã®çŠ¶æ…‹ã‚’æˆ»ã—å¿˜ã‚Œ).</div><div class='add'>+</div><div class='add'>+	* protect .. endã®ãƒã‚°ä¿®æ­£. GC_LINKã®ãƒã‚¹ãƒˆãŒä¸æ­£ã ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* joinã®ãƒã‚°ä¿®æ­£(ä½¿ã£ã¦ã„ã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’freeã—ã¦ã„ãŸ).</div><div class='add'>+</div><div class='add'>+	* splitã®ãƒã‚°ä¿®æ­£(ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒãŠã‹ã—ã‹ã£ãŸ).</div><div class='add'>+</div><div class='add'>+	* fork()ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+Wed Jan 26 17:09:56 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* ãƒ•ã‚¡ã‚¤ãƒ«ãƒ†ã‚¹ãƒˆãƒ¡ã‚½ãƒƒãƒ‰ã®è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* rb_autoexec(): ã‚¯ãƒ©ã‚¹ã‚’åˆã‚ã¦ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸæ™‚ã®æŒ™å‹•ã‚’åˆ¶å¾¡ã§ãã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ã—ãŸ. ã“ã‚Œã§autoloadã‚‚å®Ÿç¾ã§ãã‚‹. ã“ã‚Œã«ã¨ã‚‚ãªã„ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  unknownã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 15:51:36 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* Dbmã‚¯ãƒ©ã‚¹, Mathãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ä½œæˆ.</div><div class='add'>+</div><div class='add'>+	* -Iã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§ã‚µãƒ¼ãƒãƒ‘ã‚¹ã«è¿½åŠ ã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* ã‚µãƒ¼ãƒãƒ‘ã‚¹ã‚’å¤‰æ•°$load_pathã«è¨­å®šã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* load(): ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‰ã‚’ä½¿ãˆã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 14:14:01 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* Comparable:"&lt;=&gt;"</div><div class='add'>+</div><div class='add'>+	* Float,Fixnum:"**"</div><div class='add'>+</div><div class='add'>+	* Array:sort</div><div class='add'>+</div><div class='add'>+Fri Jan 14 16:53:37 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* version 0.07</div><div class='add'>+</div><div class='add'>+	* ãƒ¡ã‚½ãƒƒãƒ‰ã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å……å®Ÿã•ã›ãŸ.</div><div class='add'>+</div><div class='add'>+	* String:index(): å¼•æ•°positionã‚’å¢—ã‚„ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Jan 13 15:13:52 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* æœªåˆæœŸåŒ–ã®å¤‰æ•°ã‚¢ã‚¯ã‚»ã‚¹ã‚’ãªãã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* ç„¡é§„ãªhash tableã®ã‚¢ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’å‰Šé™¤.</div><div class='add'>+</div><div class='add'>+	* Purify'd(on Sun)</div><div class='add'>+</div><div class='add'>+	* ~RE ã¨ ~STRã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚å±•é–‹ã®æŠ‘åˆ¶.</div><div class='add'>+</div><div class='add'>+	* Sunã¸ç§»æ¤. signal()ã®æˆ»ã‚Šå€¤. RDataã®bugä¿®æ­£.</div><div class='add'>+</div><div class='add'>+	* parse.y: nlsãƒ«ãƒ¼ãƒ«ã‚’å‰Šé™¤.</div><div class='add'>+</div><div class='add'>+	* yylex(): æ”¹è¡Œã¨ç¬¦åˆã®è§£æžéƒ¨åˆ†ã‚’å¤‰æ›´.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c: ç§»æ¤ç”¨.</div><div class='add'>+</div><div class='add'>+	* Time:strftime: ãã®ä»–ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚‚strftimeã‚’åˆ©ç”¨ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* ãƒ¡ã‚½ãƒƒãƒ‰å†å®šç¾©æ™‚ã«ãƒ¡ã‚½ãƒƒãƒ‰ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ã‚¯ãƒªã‚¢ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 15:23:20 1994  Yukihiro Matsumoto  (matz at nws119)</div><div class='add'>+</div><div class='add'>+	* Float:coerce(): Fixnumã¨Floatä»¥å¤–ã®å¼•æ•°ã‚’ä¸Žãˆã‚‰ã‚Œã‚‹ãŸæ™‚ã«ã¯ä¾‹å¤–</div><div class='add'>+	  ã‚’ç™ºç”Ÿã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* Stat: statæ§‹é€ ä½“ã®å…¨ã¦ã®ãƒ¡ãƒ³ãƒã«å¯¾ã™ã‚‹ã‚¢ã‚¯ã‚»ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ç”¨æ„.</div><div class='add'>+</div><div class='add'>+	* æœªå®šç¾©ã®ã‚¯ãƒ©ã‚¹/ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¸ã®å‚ç…§ãŒunknownãƒ¡ã‚½ãƒƒãƒ‰ã‚’å‘¼ã³å‡ºã™ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* baseline - version 0.06.</div><div class='head'>diff --git a/doc/ChangeLog-0.50_to_0.60 b/doc/ChangeLog-0.50_to_0.60<br/>new file mode 100644<br/>index 0000000000..5f5b03ff40<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-0.50_to_0.60?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/ChangeLog-0.50_to_0.60</a></div><div class='hunk'>@@ -0,0 +1,462 @@</div><div class='add'>+Thu Dec  8 00:32:21 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* io.c($&lt;.file,$&lt;.filename): ãã¡ã‚“ã¨åˆæœŸåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(rb_class2name): includeã—ã¦ã„ã‚‹ã‚¯ãƒ©ã‚¹åã‚’æ­£å¸¸ã«è¡¨ç¤ºã§ã</div><div class='add'>+	  ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec  7 15:40:36 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dln.c: config.hã‚’includeã—ã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* missing/strdup.c: å¿˜ã‚Œã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec  2 15:21:44 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* é–¢æ•°ã®å‘½åãƒ«ãƒ¼ãƒ«ã‚’å¤‰ãˆãŸ(ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰: Sxxx_xxxï¼Œãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£</div><div class='add'>+	  ãƒ¡ã‚½ãƒƒãƒ‰xxx_xxxãªã©)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c(casefold): å€‹ã€…ã®æ­£è¦è¡¨ç¾ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒå¤§æ–‡å­—å°æ–‡å­—ã‚’ç„¡è¦–ã™</div><div class='add'>+	  ã‚‹ã‹ã©ã†ã‹ã‚’è¨­å®šã§ãã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec  1 01:44:51 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* missing.c: ã‚·ã‚¹ãƒ†ãƒ ã§æä¾›ã•ã‚Œãªã„ãƒ•ã‚¡ã‚¤ãƒ«ã®æ‰±ã„ã‚’å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c($&lt;): å¤‰æ•°`$&lt;'ãŒæŒ‡ã—ã¦ã„ã‚‹ã‚‚ã®ã‚’ç¾åœ¨èª­ã¿è¾¼ã¿ä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«åã‹</div><div class='add'>+	  ã‚‰ä»®æƒ³ãƒ•ã‚¡ã‚¤ãƒ«($ARGF)ã«å¤‰æ›´ã—ãŸï¼Žã¾ãŸï¼Œç¾åœ¨èª­ã¿è¾¼ã¿ä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«</div><div class='add'>+	  åã¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚‚ç”¨æ„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.h(data_new): Dataã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®å‰²ã‚Šå½“ã¦æ–¹æ³•ã‚’æ”¹å–„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Nov 30 15:36:13 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* Makefile: ãƒ«ãƒ¼ãƒ«ã‚’æ•´ç†ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Nov 29 00:09:26 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* array.c(`|'): å¼•æ•°ãŒé…åˆ—ã§ãªãï¼Œã‹ã¤ãã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒè¦ç´ ã¨ã—ã¦</div><div class='add'>+	  å«ã¾ã‚Œã¦ã„ãªã„æ™‚ï¼Œãã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¿½åŠ ã™ã‚‹ï¼Žã‚ã‚Œã°ãªã«ã‚‚ã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* process.c(gid,egid): GIDã‚’ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c(print): æ–‡å­—åˆ—ã¨é…åˆ—ã«å¯¾ã™ã‚‹å‡¦ç†ã‚’çµ„ã¿è¾¼ã‚“ã§è‹¥å¹²ã®é«˜é€ŸåŒ–ã‚’</div><div class='add'>+	  å›³ã£ãŸï¼Žå‡ºåŠ›ãŒå¤šã„å ´åˆã«åŠ¹ã„ã¦ãã‚‹ã‚ˆã†ã ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(parse_string): ""ã§å›²ã¾ã‚ŒãŸæ–‡å­—åˆ—å†…ã§ã¯å¯¾å¿œã™ã‚‹ã‚¨ã‚¹ã‚±ãƒ¼</div><div class='add'>+	  ãƒ—ãŒãªã„`\'ã‚’æ®‹ã•ãªã„ã‚ˆã†ã«ï¼Žã¤ã¾ã‚Šï¼Œä»Šå¾Œã¯"\k" -&gt; "k"ã§ã‚ã‚‹(ä»¥</div><div class='add'>+	  å‰ã¯"\k"ã ã£ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Nov 28 18:02:31 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c(re_regsub): ç½®æ›æ–‡å­—åˆ—ã®ç½®æ›ãˆãŒä¸å®Œå…¨ã ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ä¸€æ™‚ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®è§£æ”¾ã‚’ã™ã¹ã¦GCã«ä»»ã›ãŸï¼Žä»Šã®ã¾ã¾ã§ã¯ã¾ãšã„ã‚¿ã‚¤</div><div class='add'>+	  ãƒŸãƒ³ã‚°ã§ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è§£æ”¾ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã£ãŸï¼Žæ˜”ã®GCã®æ™‚ã«ã¯ã“ã‚Œ</div><div class='add'>+	  ã§ã‚‚è‰¯ã‹ã£ãŸã®ã ãŒï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Nov 22 00:15:24 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c($"): æ—¢ã«ãƒ­ãƒ¼ãƒ‰ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«åã®é…åˆ—ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Nov 21 01:09:50 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* array.c(&amp;,|): é›†åˆã¨ã—ã¦ã®ç©æ¼”ç®—ã¨å’Œæ¼”ç®—ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c($&lt;): æ–‡å­—åˆ—ã‚’ä»£å…¥ã—ãŸæ™‚ã«ã¯è‡ªå‹•çš„ã«openã™ã‚‹ã‚ˆã†ã«ï¼ŽIOã®ã‚µãƒ–</div><div class='add'>+	  ã‚¯ãƒ©ã‚¹ã‹ã©ã†ã‹ã®ãƒã‚§ãƒƒã‚¯ã‚‚è¡Œã†ï¼Ž</div><div class='add'>+</div><div class='add'>+Sun Nov 19 23:02:27 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c($:): $LOAD_PATHã®åˆ¥åï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c($&gt;): ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå‡ºåŠ›å…ˆï¼ŽIO.defaultã¯ç„¡ããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c($&lt;): $FILENAMEã®åˆ¥å</div><div class='add'>+</div><div class='add'>+	* glob.c(each): ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã«ãƒžãƒƒãƒã™ã‚‹ã‚‚ã®ãŒãªã„å ´åˆï¼Œãƒ‘ã‚¿ãƒ¼ãƒ³</div><div class='add'>+	  ãã®ã‚‚ã®ã‚’ä¸Žãˆã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c(chmod,chown,unlink,utime): `\'ã§ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã‚’ã‚¨ã‚¹ã‚±ãƒ¼</div><div class='add'>+	  ãƒ—ã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Nov 18 00:20:42 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.55 released</div><div class='add'>+</div><div class='add'>+	* file.c(chmod,chown,unlink,utime): å¼•æ•°ã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸæ–‡å­—åˆ—ã«ãƒ¯</div><div class='add'>+	  ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã«ã¯Globã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«å¤‰æ›ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+Wed Nov 16 17:33:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* file.c(chmod,chown,unlink,utime): å¼•æ•°ã¨ã—ã¦ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã‚‚å—ã‘</div><div class='add'>+	  ä»˜ã‘ã‚‹ã‚ˆã†ã«. ãã®å ´åˆã¯ãƒžãƒƒãƒã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«å…¨ä½“ã«é©ç”¨ã•ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Nov 11 00:07:28 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* string.c(strip): æ–‡å­—åˆ—ãã®ã‚‚ã®ã‚’å¤‰æ›´ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_cal): ç’°å¢ƒã‚’ã‚¹ã‚¿ãƒƒã‚¯ã«ç©ã‚€ã‚¿ã‚¤ãƒŸãƒ³ã‚°ãŒé–“é•ã£ã¦ã„ãŸã®ã§ï¼Œ</div><div class='add'>+	  ä¸é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå‡ºã‚‹æ™‚ãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_undefined): ãƒ¡ã‚½ãƒƒãƒ‰ãŒç„¡ã„æ™‚ã¨ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããª</div><div class='add'>+	  ã„æ™‚ã¨ã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æ›¿ãˆãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c: toupper/tolowerã¯upcase/downcaseã‚’ä½¿ã£ã¦å®Ÿç¾ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c: lcfirst/ucfirstã¯å‰Šé™¤ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Nov 10 16:15:16 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* string.c: sub/gsubã¯ç½®æ›å¾Œã®æ–‡å­—åˆ—ã‚’è¿”ã™ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* string.c: toupper/tolower/lcfirstãªã©ã‚’æ–‡å­—åˆ—ã‚’å¤‰æ›´ã™ã‚‹ã‚‚ã®ã¨ã—</div><div class='add'>+	  ãªã„ã‚‚ã®ã®2 ç¨®é¡žã‚’æä¾›ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Nov  1 17:52:09 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: å¤‰æ•°å±•é–‹ã«ãƒã‚°ãŒã‚ã£ã¦å…ƒã®æ–‡å­—åˆ—ã‚’ç ´å£Šã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Oct 27 09:56:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: restå¼•æ•°ã®å‡¦ç†ãŒé–“é•ã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* env.c(rb_yield): ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®è¨­å®šãŒé–“é•ã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Oct 26 19:01:43 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: å¼•æ•°ã‚»ãƒƒãƒˆã®é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+	* process.c: sleepã®ãƒã‚°.</div><div class='add'>+</div><div class='add'>+	* parse.y, gnuglob.c: Sunã®ccã§ã‚‚ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Oct 25 00:36:16 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: è‹¥å¹²ã®é«˜é€ŸåŒ–. ã‚¹ã‚¿ãƒƒã‚¯ã®å‡¦ç†ã«ã‚ˆã£ã¦rb_call()ãŒå°‘ã—é…ã</div><div class='add'>+	  ãªã£ãŸåˆ†ã®ç©´åŸ‹ã‚ãã‚‰ã„ã‹.</div><div class='add'>+</div><div class='add'>+	* eval.c: blockã‚’envã‹ã‚‰å¤–ã™ãªã©ã—ã¦ã‚¹ã‚¿ãƒƒã‚¯ã‚’è»½ãã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Oct 24 11:47:54 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c: æ­£è¦è¡¨ç¾ã‚¢ã‚¯ã‚»ã‚¹ç”¨ã®å¤‰æ•°($`, $', $+)ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* re.c($KANJI): å‡¦ç†ã™ã‚‹æ¼¢å­—ã‚³ãƒ¼ãƒ‰ã‚’rubyãƒ—ãƒ­ã‚°ãƒ©ãƒ å†…ã‹ã‚‰è¨­å®šã§ãã‚‹</div><div class='add'>+	  ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Sat Oct 22 00:42:41 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿å†…ã®redoã¨retryã®å‡¦ç†ã«ãƒã‚°ãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Oct 21 00:53:21 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* string.c(swapcase): æ–‡å­—åˆ—ã®å¤§æ–‡å­—å°æ–‡å­—ã‚’ç½®ãæ›ãˆã‚‹.</div><div class='add'>+</div><div class='add'>+	* string.c(ljust,rjust,center): æ–‡å­—åˆ—ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆç”¨ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+	  sprintf()ã§ã‚‚åŒã˜ã‚ˆã†ãªã“ã¨ã¯ã§ãã‚‹ãŒ.</div><div class='add'>+</div><div class='add'>+	* socket.c(recv,recvfrom): flagså¼•æ•°ã‚’çœç•¥å¯èƒ½ã«ã—ãŸ. çœç•¥æ™‚ã®å€¤ã¯</div><div class='add'>+	  0ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* socket.c(recvfrom): recvã¨åŒæ§˜ã ãŒ, ãƒ‡ãƒ¼ã‚¿ã¨ç›¸æ‰‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒšã‚¢ã‚’</div><div class='add'>+	  è¿”ã™.</div><div class='add'>+</div><div class='add'>+	* socket.c(accept): æˆ»ã‚Šå€¤ã‚’ã¤ãªãŒã£ãŸã‚½ã‚±ãƒƒãƒˆã‹ã‚‰, ã‚½ã‚±ãƒƒãƒˆã¨ã‚¢ãƒ‰</div><div class='add'>+	  ãƒ¬ã‚¹ã®ãƒšã‚¢ã«å¤‰æ›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c(eval): the_classã‚’ã‚»ãƒƒãƒˆã™ã‚‹æ™‚ã«, last_moduleãŒincludeã•</div><div class='add'>+	  ã‚Œã¦ã„ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«(T_ICLASS)ã§ã‚ã‚Œã°, å®šç¾©å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æ–¹ã‚’ã‚»ãƒƒ</div><div class='add'>+	  ãƒˆã™ã‚‹ã‚ˆã†ã«. ã“ã®ä¿®æ­£ãŒãªã„ã¨ICLASSã«å¯¾ã—ã¦ãƒ¡ã‚½ãƒƒãƒ‰ãŒå‘¼ã°ã‚Œã‚‹å¯</div><div class='add'>+	  èƒ½æ€§ãŒã‚ã‚Š, ä¸å¯©ãªå‹•ä½œã‚’ã™ã‚‹(ã¯ãš).</div><div class='add'>+</div><div class='add'>+	* class.c: ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®cloneã®éš›ã«ç‰¹ç•°ã‚¯ãƒ©ã‚¹(ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ç”¨ã®ã‚¯</div><div class='add'>+	  ãƒ©ã‚¹)ã‚’ãã¡ã‚“ã¨ã‚³ãƒ”ãƒ¼ã™ã‚‹ã‚ˆã†ã«ã—ãŸ. ä»Šã¾ã§ã¯å€‹ã€…ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®ã‚³</div><div class='add'>+	  ãƒ”ãƒ¼ã‚’å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* numeric.c: Numericã®newã¨cloneã‚’undefã—ãŸ.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 11:30:00 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.53 released.</div><div class='add'>+</div><div class='add'>+	* parse.y: TopLevelã®defæ–‡ã¯é–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å®šç¾©ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: defæ–‡ã®privateæŒ‡å®šã¯ãªããªã£ãŸ. export/noexportãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  ã‚’ä½¿ã£ã¦ã‚‚ã‚‰ã†ã“ã¨ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: caseæ–‡ã«thenã‚’å«ã‚€ã“ã¨ãŒã§ãã‚‹ã‚ˆã†ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Oct 19 13:09:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* object.c(export,unexport): é–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰ã®è¨­å®šç”¨ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+</div><div class='add'>+	* eval.c, class.c: é–¢æ•°çš„ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å¾©æ´»ã•ã›(ã¾ãŸã‹â€¦), `@'ã«ã‚ˆã‚‹</div><div class='add'>+	  privateãƒ¡ã‚½ãƒƒãƒ‰ã‚’ãªãã—ãŸ. ã‚„ã¯ã‚Š, é–¢æ•°çš„ãªã‚‚ã®ã¯é–¢æ•°çš„ã«å‘¼ã³ãŸ</div><div class='add'>+	  ã„æ°—ãŒã—ã¦ããŸ. ã“ã†ä»•æ§˜ãŒå¤‰å‹•ã—ã¦ã¦ã¯ã„ã‘ãªã„ã‚ˆã†ãªæ°—ã‚‚ã™ã‚‹ãªã‚.</div><div class='add'>+	   *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+	* eval.c: ãƒ¡ã‚½ãƒƒãƒ‰ã®æ§‹æˆã‚’å¤‰æ›´ã—, åˆ¥åç®¡ç†ã¨é–¢æ•°ãƒ¡ã‚½ãƒƒãƒ‰ã®ç®¡ç†ã‚’åˆ†</div><div class='add'>+	  é›¢ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c: the_env-&gt;last_funcã‚’Cãƒ¡ã‚½ãƒƒãƒ‰ã®æ™‚ã«ã‚‚æ›´æ–°ã™ã‚‹. ã“ã‚ŒãŒãª</div><div class='add'>+	  ã„ã¨Structã®ã‚¢ã‚¯ã‚»ã‚¹ãŒå‹•ä½œã—ãªã„.</div><div class='add'>+</div><div class='add'>+Fri Oct 14 13:22:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.52 released: â€¦â€¦ãªã‚“ã¦ã“ã£ãŸã„.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): returnã®å‡¦ç†ãŒé–“é•ã£ã¦ã„ãŸã®ã§, ãƒžã‚·ãƒ³ã«ã‚ˆã£ã¦</div><div class='add'>+	  ã¯returnã§é–¢æ•°ã‚’çµ‚äº†ã™ã‚‹ã ã‘ã§ãªãtoplevelã¾ã§ã¤ãæŠœã‘ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* dbm.c: Dictã¨åŒæ§˜ã«eachãŒ[key,value]ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* version 0.51 released</div><div class='add'>+</div><div class='add'>+Thu Oct 13 12:13:48 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(SETUP_ARGS): ä»˜åŠ å¼•æ•°ãŒé…åˆ—ã§ãªã„æ™‚ã«ã¯é…åˆ—ã«å¤‰æ›ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ‹¬å¼§ãªã—ã®ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã§ã‚‚`*'ã«ã‚ˆã‚‹ä»˜åŠ å¼•æ•°ãŒä½¿ãˆã‚‹</div><div class='add'>+	  ã‚ˆã†ã«ã—ãŸ. ãŸã ã—, é€šå¸¸å¼•æ•°ãŒä¸€ã¤ã‚‚ãªã„å ´åˆã¯ä¹—ç®—æ¼”ç®—å­ã¨åŒºåˆ¥ãŒ</div><div class='add'>+	  ã¤ã‹ãªã„ã®ã§, å¿…ãšæ‹¬å¼§ãŒå¿…è¦.</div><div class='add'>+</div><div class='add'>+Wed Oct 12 10:09:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®è¨ˆç®—ã‚’inlineåŒ–. ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒŸã‚¹ãŒã‚</div><div class='add'>+	  ã‚Œã°é–¢æ•°å‘¼ã³å‡ºã—ã§ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æ¤œç´¢ã™ã‚‹. methods.cã¯ãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ç”¨ã®é ˜åŸŸã‚’alloca()ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´.</div><div class='add'>+	  ã‚µã‚¤ã‚ºã®å¤‰æ›´ãŒå¿…è¦ã«ãªã‚Œã°æ”¹ã‚ã¦malloc()ã™ã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y: error recoveryã®éš›ã«lex_stateã‚’æ›´æ–°ã—ã¦ãŠãã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Oct 11 17:10:46 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* socket.c(for_fd): ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­(Fixnum)ã‹ã‚‰ã‚½ã‚±ãƒƒãƒˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹</div><div class='add'>+	  ã‚’å¾—ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰. ãŸã¨ãˆã°inetdã‹ã‚‰èµ·å‹•ã•ã‚ŒãŸã‚µãƒ¼ãƒã§æ¨™æº–å…¥å‡ºåŠ›ã«</div><div class='add'>+	  ã‚½ã‚±ãƒƒãƒˆæ“ä½œã‚’è¡Œãªã†ãŸã‚ã«ä½¿ã†. ã¤ã¾ã‚ŠSocket.for_fd($stdin)ã§æ¨™</div><div class='add'>+	  æº–å…¥åŠ›ã«å¯¾å¿œã™ã‚‹ã‚½ã‚±ãƒƒãƒˆã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒå¾—ã‚‰ã‚Œã‚‹.</div><div class='add'>+</div><div class='add'>+	* io.c(to_i): IOã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’æ•´æ•°ã«å¤‰æ›ã™ã‚‹ã¨ãã®ãƒ•ã‚¡ã‚¤ãƒ«</div><div class='add'>+	  è¨˜è¿°å­ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* numeric.c(num2int): to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ã£ã¦ã§ãã‚‹é™ã‚Šæ•´æ•°ã«å¤‰æ›ã™ã‚‹.</div><div class='add'>+	  ä»¥å‰ã¯num2fixã ã‘ãŒå…¨ã¦ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«å¯¾ã—ã¦to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’é©ç”¨</div><div class='add'>+	  ã—ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* sprintf.c(Fsprintf): æ•´æ•°è¡¨ç¤ºã®éš›, ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ã§ãã‚‹é™ã‚Šæ•´æ•°</div><div class='add'>+	  ã«å¤‰æ›ã™ã‚‹ã‚ˆã†ã«(to_iãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ã†).</div><div class='add'>+</div><div class='add'>+Fri Oct  7 14:06:32 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(Fcaller): å¿…è¦æ€§ãŒã‚ˆãåˆ†ã‹ã‚‰ãªã„ã®ã§ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‹ã‚‰å‰Šé™¤.</div><div class='add'>+	  å°†æ¥ãƒ‡ãƒãƒƒã‚¬ã‚’ä½œã‚‹æ™‚ã«å¾©æ´»ã•ã›ã‚ˆã†.</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): Cã§è¨˜è¿°ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã§ã¯ç’°å¢ƒã‚’ã‚¹ã‚¿ãƒƒã‚¯</div><div class='add'>+	  ã«ã‚»ãƒ¼ãƒ–ã—ãªã„ã“ã¨ã«ã‚ˆã£ã¦é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 15:00:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.h: ä¸€æ™‚env.hã«ç§»å‹•ã—ã¦ãŸQselfã®å®šç¾©ã‚’å¾©æ´». ãŸã ã—ä»Šå›žã¯é–¢æ•°</div><div class='add'>+	  ã¨ã—ã¦å®Ÿç¾(env.hã§ã¯å¤‰æ•°ã¨ã—ã¦å†å®šç¾©ã—ã¦ã‚ã‚‹).</div><div class='add'>+</div><div class='add'>+	* ruby.h: TRUEã§syntax errorã«ãªã‚‰ãªã„ã‚ˆã†#undefã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_eval): threadåŒ–ã«æŒ‘æˆ¦ã—ãŸãŒ, å¤±æ•—(é€Ÿããªã‚‰ãªã‹ã£ãŸ).</div><div class='add'>+	  ãŒ, Scopingãªã©ã®ç„¡é§„ãªã‚³ãƒ¼ãƒ‰ã®å‰Šé™¤ã¨ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®å¼•æ•°ã‚»ãƒƒ</div><div class='add'>+	  ãƒˆã®inlineåŒ–ã§è‹¥å¹²ã®é«˜é€ŸåŒ–ã‚’å®Ÿç¾ã—ãŸ. å‰¯ä½œç”¨ã¨ã—ã¦, argc, argvå½¢</div><div class='add'>+	  å¼ã®é–¢æ•°å‘¼ã³å‡ºã—ã®ä»•æ§˜ãŒå¤‰åŒ–ã—ãŸ(argvã«selfã‚’å«ã¾ãªããªã£ãŸ).</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®é«˜é€ŸåŒ–.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 11:40:53 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby-mode.el: ä¿®é£¾å­ã«å¯¾å¿œã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: å¤šé‡ä»£å…¥ã«restã‚’ã¤ã‘ãŸ. ã“ã®æ©Ÿèƒ½ã‚’ä½¿ãˆã°optionalå¼•æ•°ã®</div><div class='add'>+	  è§£æžãŒç°¡å˜ã«ã§ãã‚‹(ã¯ãš).</div><div class='add'>+</div><div class='add'>+	* pack.c(unpack): uuencodeå½¢å¼ã®decodeã®éš›ã«æ–‡å­—åˆ—ã®é•·ã•ãŒé–“é•ã£ã¦</div><div class='add'>+	  ã„ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Oct  3 15:58:41 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* file.c(type): ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—ã‚’æ–‡å­—åˆ—ã§è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰.</div><div class='add'>+</div><div class='add'>+Fri Sep 30 11:36:07 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* object.c: ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®çœŸã®å€¤ã§ã‚ã‚‹%TRUEã®å€¤ã‚’1(Fixnum)ã‹ã‚‰tã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ. to_sã§æ–‡å­—åˆ—ã«å¤‰æ›ã—ãŸæ™‚ã«ã‚‚`t'ã¨è¡¨ç¤ºã•ã‚Œã‚‹. æ›´ã«è¸ã¿è¾¼</div><div class='add'>+	  ã‚“ã§`t'ã‚’äºˆç´„èªžã«ã—ã¦lispã®ã‚ˆã†ã«ã—ã‚ˆã†ã‹ã¨ã‚‚æ€ã£ãŸãŒ, ãã“ã¾ã§</div><div class='add'>+	  ã¯æ±ºå¿ƒã§ããªã‹ã£ãŸ. ä¸€æ–‡å­—ã®ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã¯ã‹ãªã‚Šä½¿ã„ãã†ãªæ°—ãŒã™</div><div class='add'>+	  ã‚‹ã®ã§â€¦.</div><div class='add'>+</div><div class='add'>+	* array.c,dict.c: equalã‚’å†å®šç¾©ã—ã¦ã„ã‚‹ã‚¯ãƒ©ã‚¹ã§, hashã‚’æ­£ã—ãå®šç¾©</div><div class='add'>+	  ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 23:30:28 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c(Ffail): ä»Šã¾ã§failã¯ã‚«ãƒ¼ãƒãƒ«ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚ã£ãŸãŒ,</div><div class='add'>+	  æ§‹æ–‡ã«çµ„ã¿è¾¼ã‚“ã . ã“ã®å¤‰æ›´ã«ã‚ˆã£ã¦, 1)`fail'ã¯äºˆç´„èªžã¨ãªã‚Š, ãƒ­ãƒ¼</div><div class='add'>+	  ã‚«ãƒ«å¤‰æ•°ã«ç”¨ã„ã‚‹ã“ã¨ãŒã§ããªããªã£ãŸ. 2)`fail'å˜ä½“ã§ä¾‹å¤–ã‚’ç™ºç”Ÿã™</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ãªã£ãŸ. 3)failã¯ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ãªããªã£ãŸã®ã§å†å®šç¾©ã•ã‚Œã‚‹å¯</div><div class='add'>+	  èƒ½æ€§ãŒãªããªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* dic.c, dbm.c(indexes): Arrayã®indexesã¨åŒæ§˜ã®æ©Ÿèƒ½ã‚’æŒã¤ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* array.c(indexes): å¼•æ•°ã‚’ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã™ã‚‹è¦ç´ ã®é…åˆ—ã‚’è¿”ã™. æ•´æ•°</div><div class='add'>+	  ã®é…åˆ—ã‚’å¼•æ•°ã¨ã™ã‚‹æ™‚ã«ã¯å¼•æ•°ã®è¦ç´ ã‚’ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã™ã‚‹è¦ç´ ã®é…åˆ—</div><div class='add'>+	  ã‚’è¿”ã™.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 13:42:31 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* array.c(aset): éƒ¨åˆ†é…åˆ—ã«å¯¾ã™ã‚‹ä»£å…¥ã§é…åˆ—ä»¥å¤–ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒæŒ‡</div><div class='add'>+	  å®šã•ã‚ŒãŸå ´åˆã«å¤šé‡ä»£å…¥ã¨åŒã˜ãƒ«ãƒ¼ãƒ«ã§é…åˆ—åŒ–ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* io.c(print): å¼•æ•°ã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸå„ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«print_onãƒ¡ãƒƒã‚»ãƒ¼</div><div class='add'>+	  ã‚¸ã‚’ä¸Žãˆã‚‹ã‚ˆã†ã«. å®Ÿè¡Œé€Ÿåº¦ã¯è½ã¡ã‚‹ãŒæŸ”è»Ÿæ€§ã¯å¢—ã™.</div><div class='add'>+</div><div class='add'>+Fri Sep 16 14:59:18 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* glob.c: ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã®å°Žå…¥. bashã«ä½¿ã‚ã‚Œã¦ã„ã‚‹GNUã®globãƒ«ãƒ¼ãƒ</div><div class='add'>+	  ãƒ³ã‚’æµç”¨ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 18:36:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(value_expr): å¼ãŒnilã®æ™‚ã«å¯¾å¿œ.</div><div class='add'>+</div><div class='add'>+	* class.c: ICLASSã®classãŒå¿…ãšClass/Moduleã‚’æŒ‡ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Tue Sep  6 16:23:28 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c:	æ­£è¦è¡¨ç¾å†…ã§ã€Œ\æ•°å­—ã€å½¢å¼ãŒæŒ‡å®šã§ãã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y:ã€Œdo expr using var ... endã€å½¢å¼ã¯ãªããªã£ãŸ. å¯‚ã—ã„æ°—</div><div class='add'>+	  ã‚‚ã™ã‚‹. *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+Mon Sep  5 10:59:01 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* numeric.c(next): Numericã‚¯ãƒ©ã‚¹ã«ã‚‚nextã‚’æä¾›.</div><div class='add'>+</div><div class='add'>+	* string.c(upto): uptoã‚’æä¾›.</div><div class='add'>+</div><div class='add'>+	* range.c(each): nextã‚’ä½¿ã£ãŸã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‹ã‚‰uptoã‚’ä½¿ã†ã‚ˆã†ã«å¤‰</div><div class='add'>+	  æ›´ã—ãŸ. ã“ã®æ–¹ãŒä¸€ã¤ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§å‡¦ç†ã‚’ã¾ã¨ã‚ã§è¡Œãªã†ã“ã¨ãŒã§ãã‚‹.</div><div class='add'>+</div><div class='add'>+Fri Sep  2 15:25:39 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dict.c(each): æˆ»ã‚Šå€¤ã‚’[key, value]ã®ãƒšã‚¢ã«å¤‰æ›´. ä»Šã¾ã§ã®eachã¯</div><div class='add'>+	  each_valueã¨ã—ã¦æ®‹ã‚‹. *BACKWARD INCOMPATIBILITY*</div><div class='add'>+</div><div class='add'>+Thu Sep  1 10:49:04 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* æˆåŠŸã—ãŸ(ç‰¹åˆ¥ãªæˆ»ã‚Šå€¤ã‚’æŒãŸãªã„)ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã¯`0'ã‚’è¿”ã™ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 00:26:51 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* string.c: ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’å¾—ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰`sum'ã‚’ä½œã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* class.c(include_class_new): ICLASSã®classã‚’ã‚‚ã¨ã®ã‚¯ãƒ©ã‚¹ã«ã—ãŸ.</div><div class='add'>+	  gcã®éš›ã«å…ƒã‚¯ãƒ©ã‚¹ã‚’ãƒžãƒ¼ã‚¯ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã®ãŒ, ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’å¢—ã‚„ã™ä½™</div><div class='add'>+	  åœ°ãŒç„¡ã„ã®ã§, classãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’æµç”¨ã—ãŸ. ç§ã®è¦‹ç©ã‚ŠãŒé–“é•ã£ã¦ã„</div><div class='add'>+	  ã¦, ICLASSã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹äº‹ãŒã‚ã‚Œã°, ãŠã‹ã—ãªå‹•</div><div class='add'>+	  ä½œã‚’ã™ã‚‹ã ã‚ã†.</div><div class='add'>+</div><div class='add'>+	* eval.c(masign): å¼(a,b = nil)ã®å€¤ã‚’[nil]ã‹ã‚‰nilã«å¤‰æ›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Aug 29 11:56:09 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* class.c: rb_define_mfuncã‚’ç„¡ãã—ã¦, ãƒ¡ã‚¿ã‚¯ãƒ©ã‚¹ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ã‚¤ãƒ³</div><div class='add'>+	  ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹ã‚ˆã†ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* error.c(yyerror): åŒã˜è¡Œã§è¤‡æ•°ã®syntax errorã‚’ãƒªãƒãƒ¼ãƒˆã—ãªã„ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* file.c: FileTestãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ•ã‚¡ã‚¤ãƒ«ãƒ†ã‚¹ãƒˆãƒ¡ã‚½ãƒƒãƒ‰ã‚’åˆ†é›¢ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ¼”ç®—å­ã‚’æŒ‡å®šã™ã‚‹æ™‚ã®lex_stateã‚’æ­£ã—ãè¨­å®šã—ãŸ.</div><div class='add'>+</div><div class='add'>+Sat Aug 27 01:23:34 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: if/whileãªã©ã®è¤‡åˆå¼ã‚’primaryã«ç§»å‹•ã—ãŸ. ã“ã‚Œã«ã‚ˆã£ã¦ä¾‹</div><div class='add'>+	  ãˆã°ã€Œif cond then a else b end.message()ã€ã®ã‚ˆã†ãªå¼ãŒæ›¸ã‘ã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+Fri Aug 26 10:46:30 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* spec: æ•´ç†ã•ã‚ŒãŸæ–‡æ³•ã«ã—ãŸãŒã£ã¦æ›¸ãç›´ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: ã“ã“æ•°æ—¥ã§æ··ä¹±ã—ã¦ã„ãŸæ–‡æ³•ã‚’æ•´ç†ã—ãŸ. æ‹¬å¼§ã‚’çœç•¥ã—ãŸãƒ¡</div><div class='add'>+	  ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ãŒã§ãã‚‹ã‚ˆã†ã«ãªã£ãŸã“ã¨, modifierãŒä»˜ã‘ã‚‰ã‚Œã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ãªã£ãŸã“ã¨, returnã«ãƒªã‚¹ãƒˆãŒæ¸¡ã›ã‚‹ã‚ˆã†ã«ãªã£ãŸã“ã¨ãŒä¸»ãªå¤‰æ›´ç‚¹</div><div class='add'>+	  ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+	* processå‘¨ã‚ŠãŒæ€ªã—ã„ãŒã¨ã«ã‹ãSolaris 2.3ã§å‹•ãã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ›–æ˜§æ€§ãŒãªã„å ´åˆã«ã¯ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®å¼•æ•°ã®æ‹¬å¼§ã‚’çœç•¥</div><div class='add'>+	  ã§ãã‚‹ã‚ˆã†ã«. çœç•¥ã§ãã‚‹ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®æ¡ä»¶ã¯, 1)ã‹ãªã‚‰ãš1å€‹</div><div class='add'>+	  ä»¥ä¸Šã®å¼•æ•°ã‚’å¿…è¦ã¨ã™ã‚‹ã“ã¨, 2)ç¬¬1å¼•æ•°ãŒ`+', `-', `(', `[', `{',</div><div class='add'>+	  `/'ãªã©, å¼ã®å§‹ã¾ã‚Šã«ç½®ã‹ã‚ŒãŸæ™‚ã¨é€”ä¸­ã«ç¾ã‚ŒãŸæ™‚ã¨ã§è§£é‡ˆãŒé•ã†è¨˜</div><div class='add'>+	  å·ã§å§‹ã¾ã‚‰ãªã„ã“ã¨, ã§ã‚ã‚‹.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 13:54:58 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(cond): æ¡ä»¶å¼ã®å±•é–‹éƒ¨ã«bugãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 00:01:15 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: returnã¯ã‚³ãƒ³ãƒžã§åŒºåˆ‡ã£ãŸãƒªã‚¹ãƒˆã‚‚å—ã‘å–ã‚‹ã‚ˆã†ã«. ã¤ã¾ã‚Š,</div><div class='add'>+	  return a, b, cã¯return [a, b, c]ã¨åŒã˜æ„å‘³ã«ãªã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: yieldä»¥å¤–ã®å¤§åŸŸè„±å‡ºåˆ¶å¾¡å¼ã‚’exprã‹ã‚‰expr0ã«ç§»ã—ãŸ. ã‚ˆã£</div><div class='add'>+	  ã¦ãƒ¡ã‚½ãƒƒãƒ‰ã®å¼•æ•°ã«åˆ¶å¾¡å¼ã‚’ä½¿ãˆãªããªã‚‹(ã“ã‚Œã§å›°ã‚‹äººã¯ã„ãªã„ã¯ãš).</div><div class='add'>+</div><div class='add'>+	* parse.y: `+'ã®å®šæ•°å±•é–‹ã®éš›ã«æ¼”ç®—å­ã®å„ªå…ˆé †ä½ã‚’å¿˜ã‚Œã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* eval.c: untilã®æˆ»ã‚Šå€¤ã¯nilã«ãªã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: modifierã¨ã—ã¦ã®if/unless/while/untilã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+	* parse.y: æ–‡æ³•ã‹ã‚‰endã®å¾Œã‚ã«ã¤ã‘ã‚‹ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’å‰Šé™¤. ã»ã¨ã‚“ã©ä½¿ã‚</div><div class='add'>+	  ãªã‹ã£ãŸä¸Šã«, emacsã§ã¯ruby-modeãŒã‚ã‚Œã°å¯¾å¿œã®ãƒã‚§ãƒƒã‚¯ãŒæ©Ÿæ¢°çš„ã«</div><div class='add'>+	  å‡ºæ¥ã‚‹ãŸã‚.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 18:08:33 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¹ã‚¯ãƒªãƒ—ãƒˆå®Ÿè¡Œé–‹å§‹å‰ã«ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸæ™‚ã«core dumpã—ãŸ.</div><div class='add'>+	  çµ„ã¿è¾¼ã¿ç”¨ã«ã‚³ãƒ¼ãƒ‰ã‚’å¤‰æ›´ã—ãŸæ™‚ã«enbugã—ã¦ã—ã¾ã£ãŸ.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 00:07:17 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: doã®æˆ»ã‚Šå€¤ãŒã„ã¤ã‚‚nilã«ãªã£ã¦ã„ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: loopåˆ¶å¾¡å¤‰æ•°ã®å¤šé‡ä»£å…¥åŒ–ã«bugãŒã‚ã£ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y(expand_op): æ–‡å­—åˆ—ã‚‚ç•³ã¿è¾¼ã¿ã®å¯¾è±¡ã«.</div><div class='add'>+</div><div class='add'>+Mon Aug 22 10:50:01 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(expand_op): `+'ã«é–¢ã—ã¦ã¯çµåˆå‰‡ã‚’ä½¿ã£ã¦, ã‚ˆã‚Šå¤šãå®šæ•°ç•³</div><div class='add'>+	  ã¿è¾¼ã¿ã‚’è¡Œãªã†ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+	* ruby.c(proc_options): argcãŒ0ã®æ™‚ã«ã‚‚å¯¾å¿œ.</div><div class='add'>+</div><div class='add'>+	* parse.y: forãªã©ã®åˆ¶å¾¡å¤‰æ•°ã«å¤šé‡ä»£å…¥ã‚‚ä½¿ãˆã‚‹ã‚ˆã†ã«.</div><div class='add'>+</div><div class='add'>+Sat Aug 20 00:59:40 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y(call_op): æ¼”ç®—å­`~'ã®å–ã‚Šæ‰±ã„ã‚’ãƒ«ãƒ¼ãƒ«éƒ¨ã¸ç§»å‹•.</div><div class='add'>+</div><div class='add'>+Fri Aug 19 11:44:13 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* main.c: rubyã‚’ã»ã‹ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«çµ„ã¿è¾¼ã‚ã‚‹ã‚ˆã†ã«main()ã‚’åˆ†å‰²ã—ãŸ.</div><div class='add'>+	  ãã‚Œã«ã¨ã‚‚ãªã„, ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®å‘¼ã³å‡ºã—æ§‹é€ ã‚’ä¿®æ­£ã—ãŸ.</div><div class='add'>+</div><div class='add'>+	* parse.y: æ¡ä»¶å¼ã®å®šç¾©ã‚’å¤‰æ›´. ifãªã©ã®æ¡ä»¶å¼ã®ä¸­ã§ã ã‘`&amp;&amp;'ã‚„`||'</div><div class='add'>+	  ãŠã‚ˆã³`!'ã®å¼•æ•°ãŒæ¡ä»¶å¼ã«ãªã‚‹ã‚ˆã†ã«. ã“ã®å¤‰æ›´ã«ã‚ˆã‚Šæ¡ä»¶å¼ä»¥å¤–ã®</div><div class='add'>+	  å ´æ‰€ã§ã® `&amp;&amp;', `||', `!'æ¼”ç®—å­ã®å‹•ä½œãŒç›´è¦³ã«ä¸€è‡´ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+	* parse.y: å®Ÿå¼•æ•°ã®`*'ã®å¾Œã«ç¶šãå¼•æ•°ã¯exprã«åˆ¶é™ã—ãŸ. ä»Šã¾ã§ã¯å…¨ã¦</div><div class='add'>+	  ã®æ–‡ãŒæœ‰åŠ¹</div><div class='head'>diff --git a/doc/ChangeLog-0.60_to_1.1 b/doc/ChangeLog-0.60_to_1.1<br/>new file mode 100644<br/>index 0000000000..33b0326892<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-0.60_to_1.1?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/ChangeLog-0.60_to_1.1</a></div><div class='hunk'>@@ -0,0 +1,3955 @@</div><div class='add'>+Tue Aug 12 16:02:18 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c: option variables: $-0, $-p(readonly), $-v,</div><div class='add'>+	  $-I(load_path), $-a(readonly), $-K, $-d, $-F, $-i, $-l.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ignore rd (ruby document) in the code.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 12:37:58 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): $-K as alias to the $KCODE.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): new virtual variable $-i for the value of -i</div><div class='add'>+ 	  option.</div><div class='add'>+</div><div class='add'>+	* enum.c (Init_Enumerable): include? as alias of member?</div><div class='add'>+</div><div class='add'>+Fri Aug  8 11:16:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_foreach): now the record separator can be specified.</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_readlines): new method to read in whole file (or</div><div class='add'>+ 	  command output) from path.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): recvfrom did not work.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_send): forgot to check nil for false</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 11:40:01 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_constants): lists constants defiend in the</div><div class='add'>+	  modules/classes.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): no longer warns about constant</div><div class='add'>+	  overriding by subclasses.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_eval): does eval() on module's context. local</div><div class='add'>+	  variables are shared with outer scope.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove private_attr/public_attr.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 14:21:36 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (mod_attr): forgot to check nil for false value.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 11:50:28 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (class_s_new): need not to specify names to create</div><div class='add'>+	  classes (or modules) dynamically.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class_path): scan class constants for anonymous</div><div class='add'>+	  classes/modules to make up pathes.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 08:45:12 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): stop to cache const value in nodes.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 03:17:22 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): wrong .0 at end.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 00:36:36 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): always print exception type in the</div><div class='add'>+ 	  toplevel exception handler.</div><div class='add'>+</div><div class='add'>+	* string.c (str_hash): wrong hash value.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 11:05:51 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (uscore_get): proper error message for unset $_.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 09:56:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (obj_methods): returns list of method names of the</div><div class='add'>+	  specified object.</div><div class='add'>+</div><div class='add'>+	* class.c (mod_instance_methods): returns list of method names of</div><div class='add'>+	  the class instnace.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 22:38:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (class_superclass): returns class's superclass</div><div class='add'>+ 	  itself. (1.1)</div><div class='add'>+</div><div class='add'>+	* object.c (obj_type): returns object's class itself. (1.1)</div><div class='add'>+</div><div class='add'>+	* class.c (mod_included_modules): list included modules.</div><div class='add'>+</div><div class='add'>+	* object.c (class_superclass): raises error for Object.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 09:54:02 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (SETUP_ARGS): save source position, remove nd_line().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): replace modulo by bit-masking.</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_SCOPE): force recycle scope object to reduce gc rate.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): aboid calling run_final() when no finalizer is set.</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_VARS): do not allocate the dynamic scope's end-mark</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 14:25:07 1997  KIMURA Koichi  &lt;kkimura@pure.cpdc.canon.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Native mswin32 support.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 09:59:00 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970701</div><div class='add'>+</div><div class='add'>+	* parse.y (mrhs): allow rest-star(*) in right hand side.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 19:04:31 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970624</div><div class='add'>+</div><div class='add'>+Sat Jun 20 22:22:51 1997  Michio "Karl" Jinbo  &lt;karl@marcer.nagaokaut.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: freebsd 3.0 &lt;sys/select.h&gt; support.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 01:24:45 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970620</div><div class='add'>+</div><div class='add'>+	* gc.c: eliminate uninitilalized field of Hash, Array etc., to</div><div class='add'>+	  avoid dumping core.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 01:29:44 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970619</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): wrong limit.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 01:54:16 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): no singleton for special</div><div class='add'>+	  constants (now raises exception).</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): cbase in TOPLEVEL_BINDING need to be</div><div class='add'>+	  initialized.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 01:01:16 1997  maeda shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): wrong comparison.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 00:53:44 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_foreach): safe iteration.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 14:04:56 1997  Michio "Karl" Jinbo  &lt;karl@marcer.nagaokaut.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: -Bshareable option for netbsd.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 01:16:22 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): call io_unbuffered() only for writable pipes.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 01:14:15 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970612</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_new): use io_unbuffered().</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_long): compact long format, which</div><div class='add'>+	  supports 64 bit architectures (unless longs are &gt;32 bit size).</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c: allows recursive data for marshaling.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): raise exception for non-internable string.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_load): allows direct loading from</div><div class='add'>+ 	  strings.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_dump): allows direct dump to strings.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_dump): interface changed.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 18:26:00 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj): remove needless memset().</div><div class='add'>+</div><div class='add'>+Mon Jun  9 13:03:43 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): reduce condition checks from while/until loop.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): wrong jump point for `next'.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 11:47:39 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_set_argv): initialize dln_argv0 for dln_a_out.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (open_unix): display path name for exceptions.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): option -S did not work well.</div><div class='add'>+</div><div class='add'>+Fri May 30 02:14:44 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970530</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): set $! properly if exception raised in eval().</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): now handles non T_FILE object.</div><div class='add'>+</div><div class='add'>+	* io.c (io_defset): $&lt; can be anything which has `write' method.</div><div class='add'>+</div><div class='add'>+Thu May 29 15:40:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): $@ is always an array (not string).</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): avoid corrupting memory for unexpected</div><div class='add'>+	  input strings.</div><div class='add'>+</div><div class='add'>+Wed May 28 12:46:13 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970528</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): do not block other threads.</div><div class='add'>+</div><div class='add'>+Tue May 27 12:02:31 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): split initialize and processing command line</div><div class='add'>+	  options.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_options): ruby_init(0, 0, envp) dumps core.</div><div class='add'>+</div><div class='add'>+Tue May 20 18:59:45 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_set): invalid instance variable access for</div><div class='add'>+	  built-in object raises TypeError.</div><div class='add'>+</div><div class='add'>+Fri May 16 17:32:21 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970516</div><div class='add'>+</div><div class='add'>+	* dir.c (push_globs): was freeing non heap pointer.</div><div class='add'>+</div><div class='add'>+	* gc.c: remove some duplicated prototypes.</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c: fix prototypes.</div><div class='add'>+</div><div class='add'>+Fri May  9 11:38:59 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970509</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): avoid free(NULL).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_check_safe_str): argument missing for TypeError().</div><div class='add'>+</div><div class='add'>+Thu May  8 01:14:28 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_dirname): need to return "." for path without</div><div class='add'>+	  slashes.</div><div class='add'>+</div><div class='add'>+Wed May  7 19:18:48 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_fork): child processe does not inherit parent's</div><div class='add'>+ 	  itimer setting on linux.  call setitimer() again in the child</div><div class='add'>+	  process.</div><div class='add'>+</div><div class='add'>+Sat May  3 02:49:43 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: modified for portability and add to the</div><div class='add'>+ 	  standard distribution.</div><div class='add'>+</div><div class='add'>+Wed Apr 30 00:34:00 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_size): returns 0 for empty files (not FALSE).</div><div class='add'>+</div><div class='add'>+Fri Apr 25 02:17:50 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970425</div><div class='add'>+</div><div class='add'>+	* eval.c (f_load): free unused name-table.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_load): copy local variable name-table.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): avoid free(NULL).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): forgot to make link from the scope object to</div><div class='add'>+	  NODE_SCOPE.  It may crash the interpreter.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 00:35:09 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (f_srand): save old seed anyway.  srand() returns no</div><div class='add'>+ 	  value on some systems.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): avoid double free of the local variable name</div><div class='add'>+	  table.</div><div class='add'>+</div><div class='add'>+	* parse.y (top_local_setup): modify realloc to handle offset.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 12:58:26 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970422</div><div class='add'>+</div><div class='add'>+Thu Apr 17 00:40:51 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_bsdpgrp): proper check for BSD</div><div class='add'>+	  setpgrp/setpgrp.</div><div class='add'>+</div><div class='add'>+Wed Apr 16 16:14:02 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): proc called in other thread must be orphan.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 10:46:31 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970415</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): NODE_SCOPE marked from SCOPE object.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): some nodes marked wrong.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpgrp): wrong argument</div><div class='add'>+</div><div class='add'>+Fri Apr 14 18:32:42 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970414</div><div class='add'>+</div><div class='add'>+Fri Apr 12 01:20:12 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: String pointer changed to unsigned char.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 10:27:29 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970411</div><div class='add'>+</div><div class='add'>+	* Makefile.in: create libruby.a before linking ruby.</div><div class='add'>+</div><div class='add'>+	* string.c (str_strip_bang): &gt;0x80 characters for isspace().</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): set safe-level temporally</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_s_new): save safe-level in the proc context.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no class/module extension in safe mode.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 02:10:41 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): remove some pointer checks for speeding up.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_options): set $0 temporally for -r option.</div><div class='add'>+</div><div class='add'>+	* eval.c: built-in security feature.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): do not free nodes during compile.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): set flag when compiling.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 10:19:02 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: forgot to include &lt;ctype.h&gt; for isspace().</div><div class='add'>+</div><div class='add'>+	* file.c: provide S_ISREG for some platforms.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): added some $&lt; operations.</div><div class='add'>+</div><div class='add'>+	* lib/ping.rb: check host upness using TCP echo.</div><div class='add'>+</div><div class='add'>+Tue Apr  8 00:10:15 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (arg_read): bug with 0 length input.</div><div class='add'>+</div><div class='add'>+Mon Apr  7 11:36:16 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/fcntl.c: module for fcntl constants.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_alias): bug when original was an alias.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): syntax to access singleton class.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_public_method): method's to specify visibitily of</div><div class='add'>+	  the class methods.  make_method_{public,private} removed.</div><div class='add'>+</div><div class='add'>+Fri Apr  4 21:43:57 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970404</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): finalizer added for experiment.</div><div class='add'>+</div><div class='add'>+Thu Apr  3 02:12:31 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): make Fatal rise on main_thread on</div><div class='add'>+	  deadlocks.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_join): raise ThreadError instead of Fatal, in</div><div class='add'>+	  case of deadlock.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): uninitialized local variable.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): new option //[nes] to specify character</div><div class='add'>+	  code for regexp literals.  Last specified code option is valid.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_s_new): additional 3rd argument to specify compiled</div><div class='add'>+ 	  regexp's character code.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_new_1): regexp character code can be specified for</div><div class='add'>+	  each regexp object.</div><div class='add'>+</div><div class='add'>+Wed Apr  2 14:51:06 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): handle uncaught throw.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): halt on some deadlock conditions.</div><div class='add'>+</div><div class='add'>+	* regex.c (is_in_list): wrong result for non-mbc higher-byte</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): wrong skip for multi-byte characters.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): wrong fastmap in non-mbc mode.</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): hash compatible features added to ENV.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 15:24:06 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_extend): remove Object#extend as an iterator which</div><div class='add'>+ 	  is in experimental state, since it unveils internal singleton</div><div class='add'>+ 	  classes.</div><div class='add'>+</div><div class='add'>+Mon Mar 31 14:29:39 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970331</div><div class='add'>+</div><div class='add'>+Sun Mar 30 19:40:57 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (terms): avoided win32 gcc's optimization bug.</div><div class='add'>+</div><div class='add'>+Sat Mar 29 11:21:58 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): St[val,..] creates new structure.</div><div class='add'>+</div><div class='add'>+Fri Mar 28 11:24:51 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_make_private): new method make_method_{public,private}</div><div class='add'>+	  to change visibility of singleton methods.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): enables numeric literal &gt;= 0x80 in</div><div class='add'>+	  the character class.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): enabled numeric literal &gt;= 0x80,</div><div class='add'>+	  in multibyte mode.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): modified exantn and charset(_not)</div><div class='add'>+	  to set fastmap for higher bytes properly.</div><div class='add'>+</div><div class='add'>+	* regex.c (is_in_list): now matches numeric literals.</div><div class='add'>+</div><div class='add'>+Thu Mar 27 13:34:20 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): extra null byte after unpacked string.</div><div class='add'>+</div><div class='add'>+Wed Mar 26 15:20:34 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): register numbers must be fit in a</div><div class='add'>+ 	  byte (0 &lt;= regnum &lt;= 0xff).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): forgot to set mbchar map for</div><div class='add'>+ 	  charset_not if RE_MBCTYPE is on.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): set list bits for multi-byte</div><div class='add'>+	  characters for \W, \S, \D in range expression.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_is_kind_of): defined that nil itself is kind of</div><div class='add'>+ 	  nil.  TRUE is kind of TRUE, FALSE is kind of FALSE likewise.</div><div class='add'>+  	  This change makes `obj.kind_of?(eval(obj.type))' always true.</div><div class='add'>+</div><div class='add'>+Tue Mar 25 14:08:43 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/English.rb: provides nicer English alias for the variables.</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): alias $var1 $var2 makes alias of the global</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Mon Mar 24 18:23:20 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970324</div><div class='add'>+</div><div class='add'>+Thu Mar 20 22:04:59 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_modfunc): forget to clear method cache.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 17:06:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program): set methods' default private/public status</div><div class='add'>+	  correctly under eval().</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): set the_class correctly while evaluating string.</div><div class='add'>+</div><div class='add'>+Tue Mar 18 12:23:53 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): yield can be called from eval().</div><div class='add'>+</div><div class='add'>+	* version 1.0-970318</div><div class='add'>+</div><div class='add'>+	* parse.y (program): regexp in condition expression should do</div><div class='add'>+	  matching operation with $_.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): wrong substitution.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 14:36:28 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_invert): returns value to key mapping of the</div><div class='add'>+	  associative array.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: set environment variable SOCKS_SERVER to</div><div class='add'>+	  compile with libsocks.a.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socks_s_open): SOCKSsocket class to access</div><div class='add'>+	  internet via SOCKS library.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): unsigned formats display leading double</div><div class='add'>+ 	  dots for imaginary sequence of signed bit to the left.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): correct width and precision formatting</div><div class='add'>+	  for big integers.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): enables negative hex/octal numbers and `_' in</div><div class='add'>+	  non-decimal numbers.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): %u added for unsigned decimal format.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 10:24:27 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): wrong output for bignums.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_reverse_each): iterates in reverse order.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): L unpacked signed long.</div><div class='add'>+</div><div class='add'>+	* io.c (f_backquote): now returns an empty string for no output.</div><div class='add'>+</div><div class='add'>+Wed Mar 12 10:20:30 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socks/socks.c: socket module with socks library.</div><div class='add'>+</div><div class='add'>+Mon Mar 10 20:44:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): \&amp; for substitution.  \`, \', and \+ are</div><div class='add'>+	  avaiable also.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 01:47:03 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970306</div><div class='add'>+</div><div class='add'>+	* sample/rubydb.el (gud): ruby debugger emacs interface</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: ruby debugger</div><div class='add'>+</div><div class='add'>+	* parse.y (exprs): more accurate line number display.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 21:31:46 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970305</div><div class='add'>+</div><div class='add'>+Tue Mar  4 12:28:32 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): search through RUBYPATH and PATH for</div><div class='add'>+	  option -S.</div><div class='add'>+</div><div class='add'>+Mon Mar  3 22:44:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_status): returns nil for exception terminated</div><div class='add'>+	  threads.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_value): re-raise exceptions.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 00:59:47 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): restore $! value after rescue clause, to</div><div class='add'>+	  re-raise exceptions correctly.</div><div class='add'>+</div><div class='add'>+Fri Feb 28 16:43:38 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970228</div><div class='add'>+</div><div class='add'>+Thu Feb 27 11:23:41 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): redo raises exception</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): bug in interrupt handling by rescue.</div><div class='add'>+</div><div class='add'>+Wed Feb 26 00:55:36 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): forgot to restore dynamic local variable</div><div class='add'>+	  bindings.</div><div class='add'>+</div><div class='add'>+Tue Feb 25 11:22:08 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/aix_ld.rb: AIX dynamic load support (not tested).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): wrong return value for defined? super.</div><div class='add'>+</div><div class='add'>+	* error.c (exception): more error check.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): wrong substitution when sub expanded to null</div><div class='add'>+ 	  string.</div><div class='add'>+</div><div class='add'>+Fri Feb 21 13:01:47 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970221</div><div class='add'>+</div><div class='add'>+	* eval.c (f_require): volatile added.  register variable was</div><div class='add'>+ 	  recycled, so that GC did not mark that variable.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): forget to mark main object (was mostly</div><div class='add'>+	  ok, but made trouble with early GC.)</div><div class='add'>+</div><div class='add'>+Thu Feb 20 11:50:50 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970220</div><div class='add'>+</div><div class='add'>+Thu Feb 20 11:25:50 1997  Yasuo OHBA  &lt;jammy@shljapan.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: update</div><div class='add'>+</div><div class='add'>+Thu Feb 20 08:25:57 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): forgot tokfix() before rb_intern().</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb (TkVariable): give up using trace_var.</div><div class='add'>+</div><div class='add'>+Wed Feb 19 00:24:35 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970219</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): packed by null for A specifier. must be</div><div class='add'>+	  space filled.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): bug in skipping spaces</div><div class='add'>+</div><div class='add'>+	* gc.c (xmalloc): garbage collect for every 4 Meg. allocation.</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): limit worked wrong way.</div><div class='add'>+</div><div class='add'>+	* io.c (io_gets_method): misunderstand 0xff in binary files when</div><div class='add'>+	  $/ == nil.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): re-implement.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (thread_connect): remove O_NONBLOCK, which</div><div class='add'>+	  is not defined on some platform like NeXT.</div><div class='add'>+</div><div class='add'>+Mon Feb 17 13:08:30 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970217</div><div class='add'>+</div><div class='add'>+	* object.c (mod_eqq): === extended for subclass check (to use case</div><div class='add'>+	  as typecase).</div><div class='add'>+</div><div class='add'>+Sat Feb 15 02:07:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): wrong match backref at end of pattern.</div><div class='add'>+</div><div class='add'>+	* io.c (arg_read): now works beyond end of file.</div><div class='add'>+</div><div class='add'>+Thu Feb 13 16:21:24 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): return/yield now accept normal argument format.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): a star in `yield *x' must not be multiplication</div><div class='add'>+	  operator.</div><div class='add'>+</div><div class='add'>+Wed Feb 12 15:06:44 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): bug in simple addition.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_raise): raise exceptions from outside.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): Thread#alive? -- alias for Thread#status.</div><div class='add'>+</div><div class='add'>+Mon Feb 10 00:38:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (Data_Make_Struct): rename macros.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 11:48:13 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_syscall): argument offset was wrong.</div><div class='add'>+</div><div class='add'>+Fri Feb  7 18:01:17 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970207</div><div class='add'>+</div><div class='add'>+	* eval.c: add volatiles to avoid variable crobbering by longjmp().</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): 1st argument can be the GlobalExit object now.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_unshift): no longer accept more than 2 args.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): bug if 2nd argument is the exception.</div><div class='add'>+</div><div class='add'>+Tue Feb  4 00:37:29 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970204</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): check compile errors by nerrs.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): check syntax error by nerrs, not by the return</div><div class='add'>+ 	  value, which may be NULL.</div><div class='add'>+</div><div class='add'>+	* eval.c (compile): Do not clear errinfo.</div><div class='add'>+</div><div class='add'>+Mon Feb  3 10:13:06 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_extend): move real inclusion to Module#extend_object</div><div class='add'>+	  to allow redfinition.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): Kernel class is now Module. Object class</div><div class='add'>+	  became the true root class.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_inspect): remove useless buffer.</div><div class='add'>+</div><div class='add'>+	* hash.c (any_cmp): disable interrupts and context switching.</div><div class='add'>+</div><div class='add'>+	* st.c: remove ALLOW_INTS to disable interrupt during operations.</div><div class='add'>+</div><div class='add'>+Fri Jan 31 22:10:08 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_rehash): re-register all key-value.</div><div class='add'>+</div><div class='add'>+Thu Jan 30 02:14:49 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): re-implement according to clone() way.</div><div class='add'>+</div><div class='add'>+	* io.c (io_clone): copy IO object.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_eql): compare elements by eql?.</div><div class='add'>+</div><div class='add'>+	* io.c (io_mode_flags): detect "rb", "wb" etc.</div><div class='add'>+</div><div class='add'>+	* io.h (FMODE_BINMODE): added.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): undef BasicSocket.new</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): File.new(path[,mode])</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): IO.new(fd[,mode])</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_boundp): forgot to enable priv argument.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove `=~' from Kernel class.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (open_inet): initialize sockaddr before</div><div class='add'>+	  calling bind(2).</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): skip comment lines</div><div class='add'>+</div><div class='add'>+Wed Jan 29 18:43:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): DEFER_INTS during initializing threads.</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): Hash#eql? checks for object identity.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_set_critical): wrong value assigned.</div><div class='add'>+</div><div class='add'>+Mon Jan 27 16:10:51 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_print): remove print_on().</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): proper error message for undefined method</div><div class='add'>+	  without argument</div><div class='add'>+</div><div class='add'>+Sat Jan 25 23:32:32 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): false alert - sub() does not modify string.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_times): negative multiplication detected</div><div class='add'>+</div><div class='add'>+	* string.c (str_times): negative multiplication detected</div><div class='add'>+</div><div class='add'>+Fri Jan 24 10:51:39 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): month -&gt; 0 == "jan" == "1" == "01", little bit</div><div class='add'>+	  confusing but wanted to conform japanese style.</div><div class='add'>+</div><div class='add'>+	* version 1.0-970124</div><div class='add'>+</div><div class='add'>+Fri Jan 24 09:52:49 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (_fixpath): supports SJIS filenames on DJGPP.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 16:52:06 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: update. partially translated into English.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: inherit $LDFLAGS to the final link.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): add various constants.</div><div class='add'>+</div><div class='add'>+Mon Jan 23 11:40:59 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): allocate main_thread first to avoid crash.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 02:09:26 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ObjectSpace): API modified. each_object method will do all</div><div class='add'>+ 	  the iteration.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): wrong return from nested lambda.</div><div class='add'>+</div><div class='add'>+	* ext/GD/GD.c: debugged.</div><div class='add'>+</div><div class='add'>+Wed Jan 22 16:12:25 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970122</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): forgot to mark match-&gt;str.</div><div class='add'>+</div><div class='add'>+	* ext/GD/GD.c: GD interface module.</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_BLOCK): wrong value pushed as the block level.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 14:01:31 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_run): no context switch in the critical section.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 09:40:59 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* utils.c: supports 8+3 filenames</div><div class='add'>+</div><div class='add'>+Sat Jan 18 01:23:03 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970118</div><div class='add'>+</div><div class='add'>+	* regex.c (PATFETCH): need cast to unsigned char.</div><div class='add'>+</div><div class='add'>+	* io.c (io_ctl): bug in case when arg is not a string.</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: forgot that Kernel#type returns the class name now.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): "abc\n" =~ "^$" should not match.</div><div class='add'>+</div><div class='add'>+Fri Jan 17 12:31:37 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970117</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_options): constant PLATFORM, which is in the {cpu}-{os}</div><div class='add'>+	  form, defined.</div><div class='add'>+</div><div class='add'>+	* configure.in: platform information embedded in the interpreter.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): /^$/ did not match to "" by wrong exit condition.</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: re-write Mutex/Queue based on Thread.critical.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_set_critical): remove Thread.exclusive, add</div><div class='add'>+	  Thread.critical = TRUE/FALSE instead.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): re-compile pattern if needed</div><div class='add'>+</div><div class='add'>+	* regex.c (PATFETCH): do translate at compile time</div><div class='add'>+</div><div class='add'>+Thu Jan 16 00:49:10 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_frame): forgot to mark frame-&gt;cbase.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): /a$|b)/ causes error.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): /(^|b)/ causes error.</div><div class='add'>+</div><div class='add'>+	* version 1.0-970116</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): set RE_CONTEXTUAL_INVALID_OPS flag.</div><div class='add'>+</div><div class='add'>+Tue Jan 14 02:09:06 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): Proc#callã‚’ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã‚“ã æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* configure.in: nextstepå¯¾å¿œï¼Ÿ</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): a[b]=cã§ç„¡é§„ãªé…åˆ—ã‚’å‰²ã‚Šå½“ã¦ãªã„</div><div class='add'>+</div><div class='add'>+	* eval.c (f_send): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸã‚‰ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦ãƒ¡ã‚½ãƒƒ</div><div class='add'>+	  ãƒ‰ã‚’å‘¼ã¶ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_new4): matchå…±æœ‰ç”¨ã®ç”Ÿæˆé–¢æ•°</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): matchã®å®Ÿä½“(æ–‡å­—åˆ—)ã‚’ãƒžãƒƒãƒã‚’è¡Œã£ãŸæ–‡å­—åˆ—ã¨</div><div class='add'>+	  copy-on-writeã§å…±æœ‰</div><div class='add'>+</div><div class='add'>+	* string.c (str_hash): toupperã‚’ã‹ã‘ã‚‹æ¡ä»¶ãŒé•ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): Fixnumã¨Stringã‚’ç‰¹åˆ¥æ‰±ã„ã—ã¦é«˜é€ŸåŒ–</div><div class='add'>+</div><div class='add'>+Mon Jan 13 11:03:53 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): threadãŒç”Ÿæˆã•ã‚Œã‚‹ã¾ã§å‰²è¾¼ã¿ã‚’è¨­å®šã—ãªã„</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): å‰²è¾¼ã¿ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’100msecã«</div><div class='add'>+</div><div class='add'>+Sat Jan 11 00:17:05 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): ãƒžãƒƒãƒã«å¤±æ•—ã™ã‚‹å ´åˆãŒã‚ã£ãŸ(æœ¬å½“ã«ç›´ã£ãŸã‹ï¼Ÿ)</div><div class='add'>+</div><div class='add'>+	* io.c (io_ioctl,io_fcntl): ç¬¬2å¼•æ•°ã‚’çœç•¥å¯èƒ½ã«</div><div class='add'>+</div><div class='add'>+	* io.c (io_ioctl,io_fcntl): æˆ»ã‚Šå€¤ãŒIOã ã£ãŸï¼Žæ•´æ•°(ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«</div><div class='add'>+	  ã®æˆ»ã‚Šå€¤)ã‚’è¿”ã™ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_ctl): å¼•æ•°ãŒæ•´æ•°ã®æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* io.c (io_fcntl): file.cã‹ã‚‰ç§»å‹•</div><div class='add'>+</div><div class='add'>+Fri Jan 10 17:01:47 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-970110</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (thread_connect): open(connect(2))ã§ä»–ã®</div><div class='add'>+	  threadã‚’ãƒ–ãƒ­ãƒƒã‚¯ã—ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): exitã§ãªã„ã¨ãã«exitã ã¨æ€ã„è¾¼ã‚€</div><div class='add'>+</div><div class='add'>+Mon Jan  6 17:42:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): æ–‡å­—åˆ—é•·ã‚ˆã‚Šé•·ã„offsetã®æ¤œå‡º</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): ç©ºã«ãƒžãƒƒãƒã™ã‚‹ãƒ‘ã‚¿ãƒ¼ãƒ³å¾Œã®$ã§å¤±æ•—</div><div class='add'>+</div><div class='add'>+Thu Jan  2 16:36:23 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_reopen): Fileã®reopen(pathã¾ãŸã¯IOã§æŒ‡å®š)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): IOã®reopen(IOã§æŒ‡å®š) -- change classã¤ã</div><div class='add'>+</div><div class='add'>+Wed Jan  1 11:09:01 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_select): timeoutã§nilã‚’è¿”ã™</div><div class='add'>+</div><div class='add'>+Fri Dec 27 13:06:44 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_open): ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã§ã¯ãã®ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’è¿”</div><div class='add'>+	  ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec 27 08:58:27 1996  &lt;ono@isl.nara.sharp.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): index()ã‚’ä½¿ã‚ãªã„ï¼Žstrstr()ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec 26 01:34:17 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: placeãŒä½¿ãˆã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* pack.c (endian): ãƒžã‚¯ãƒ­DYNAMIC_ENDIANã‚’æŒ‡å®šã™ã‚‹ã¨å®Ÿè¡Œæ™‚ã«endian</div><div class='add'>+	  ã‚’åˆ¤å®šã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_alloc): åˆæœŸåŒ–å¿˜ã‚Œã®ãƒ¡ãƒ³ãƒãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 25 00:33:19 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.0-961225</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): newã‚’ç„¡åŠ¹åŒ–</div><div class='add'>+</div><div class='add'>+	* lib/tkthcore.rb: tk_call "global $foo; set foo 5"ãªã©ã‚‚ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_restore_context): $~, $_ã§ã‚¹ã‚¿ãƒƒã‚¯ã‚’å£Šã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): threadã«ä¸€å¿œå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Tue Dec 24 15:20:58 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.4-961224</div><div class='add'>+</div><div class='add'>+	* configure.in: charãŒunsignedã‹ã©ã†ã‹ã‚‚ãƒã‚§ãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+	* regex.c (SIGN_EXTEND_CHAR): __CHAR_UNSIGNED__ã«ã‚‚å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): æ˜Žç¤ºçš„ã«signed charã‚’æŒ‡å®šï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Dec 23 14:41:23 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): æ¨™æº–å…¥åŠ›ã‹ã‚‰ã®ã‚¹ã‚¯ãƒªãƒ—ãƒˆã§ä¸€æ™‚ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä½¿ã‚</div><div class='add'>+	  ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* object.c (f_integer): `0x', `0'ãªã©ã§baseã‚’è§£é‡ˆã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec 20 01:44:39 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (flock.o): flockã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Thu Dec 19 20:13:32 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.4-961219</div><div class='add'>+</div><div class='add'>+Wed Dec 18 00:06:48 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* glob.c (glob_filename): strrchrãŒãƒžã‚¯ãƒ­ã®å ´åˆã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* configure.in: &lt;sys/select.h&gt;ã‚’ãƒã‚§ãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c: 1.62ãƒ™ãƒ¼ã‚¹ã«</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c: Kconvãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«</div><div class='add'>+</div><div class='add'>+	* string.c (str_substr): lenãŒå…ƒã®æ–‡å­—åˆ—ã‚ˆã‚Šé•·ã„æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* parse.y (iterator): ã€Œ$bar do .. endã€ãªã©ã¯è¨±ã•ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* parse.y (iterator): FID(foo!,foo?)ã‚’doå½¢å¼ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã«ã§ãã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* missing/flock.c (flock): lockf()ã‚’ä½¿ã£ã¦ä»£æ›¿</div><div class='add'>+</div><div class='add'>+	* file.c (file_flock): flockã‚’å®Ÿè£…</div><div class='add'>+</div><div class='add'>+Tue Dec 17 12:13:38 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.4-961217</div><div class='add'>+</div><div class='add'>+Fri Dec 13 02:05:03 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: RUBYLIBã®ã‚«ãƒ¬ãƒ³ãƒˆã‚’å¾Œå›žã—(@mix/awk offline)</div><div class='add'>+</div><div class='add'>+	* dln.c: AIXã«å¯¾å¿œã—ãŸï¼Ÿ(@mix/awk offline)</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): critical sectionã§ã‚‚æ˜Žç¤ºçš„ãªã‚³ãƒ³ãƒ†ã‚­ã‚¹</div><div class='add'>+	  ãƒˆã‚¹ã‚¤ãƒƒãƒã¯èµ·ããªã„ã¨ã¾ãšã„</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): matchã«å¤±æ•—ã—ãŸæ™‚ã«$~ã‚’nilã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): æ¯Žå›žmatchã‚’ç”Ÿæˆã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Thu Dec 12 17:03:30 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): 2.0.to_s -&gt; 2.0ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_save_context): $_, $~ã‚’threadæ¯Žã«ä¿å­˜</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_kill): main threadã§ã¯exit(0)</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): é–“é•ã£ãŸçµæžœã‚’è¿”ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+Thu Dec 12 15:32:48 1996  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: CYGWIN32å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: CYGWIN32å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* io.c: CYGWIN32å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Thu Dec 12 14:43:51 1996  Jun Kuroda  &lt;j_kuro@pluto.ai.kutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: wish4.2ã‚‚æŽ¢ç´¢å€™è£œã«å«ã‚ã‚‹</div><div class='add'>+</div><div class='add'>+	* config.guess: JCCå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Thu Dec 12 00:41:17 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.4-961212</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): """..."""ã¯ã‚„ã¯ã‚Šç„¡ãã™ã“ã¨ã«ã—ãŸ</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): %r|...|ã§terminatorã‚’ \ ã§ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã§ãã‚‹</div><div class='add'>+	  ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* signal.c (posix_signal): sigactionã‚’ä½¿ã†signal</div><div class='add'>+</div><div class='add'>+	* configure.in: posix signal/bsd signalã®æ¤œå‡º</div><div class='add'>+</div><div class='add'>+Wed Dec 11 17:47:35 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): critical sectionã§ã¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚¹ã‚¤ãƒƒ</div><div class='add'>+	  ãƒãŒèµ·ããªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: SharedMutexã‚¯ãƒ©ã‚¹</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb: String#scanã‚’ä½¿ã†ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Tue Dec 10 12:21:28 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961210</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): æ­£è¦è¡¨ç¾ã«()ã‚’å«ã‚€æ™‚ã«ãƒã‚°</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb: ã¡ã‚‡ã£ã¨ã¾ã—ã«ãªã£ãŸ</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): ç½®æ›æ–‡å­—ãŒçŸ­ã™ãŽã‚‹(2æ–‡å­—)ã®ã¨ãã®ãƒã‚°</div><div class='add'>+</div><div class='add'>+Mon Dec  9 11:38:04 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_scan): æ–‡å­—åˆ—ã®ãƒžãƒƒãƒã‚’è¡Œã†ï¼Žã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦ã‚‚å‹•</div><div class='add'>+	  ä½œã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* regex.c (re_copy_registers): allocatedãŒåˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* re.c (match_to_s): $~ã®æ–‡å­—åˆ—åŒ–</div><div class='add'>+</div><div class='add'>+	* re.c (match_to_a): $~ã‚’é…åˆ—åŒ–ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* re.c (match_getter): ãƒ¬ã‚¸ã‚¹ã‚¿ãŒåˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+Thu Dec  5 11:06:10 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): ãƒžãƒƒãƒã—ãªã‹ã£ãŸæ‹¬å¼§ã¯ç©ºæ–‡å­—åˆ—ã‚’</div><div class='add'>+	  pushã™ã‚‹ã¹ãã§ã¯ãªã„</div><div class='add'>+</div><div class='add'>+	* string.c (str_succ): ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆã‚’å«ã¾ãªã„æ–‡å­—ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Dec  4 10:48:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961204</div><div class='add'>+</div><div class='add'>+	* io.c (io_binmode): DJGPPã§ã®binmodeå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): intã®ç¯„å›²ã®æ•°å€¤ã¯ç›´æŽ¥sprintfã§å¤‰æ›ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): "%02s"ã«é ¼ã‚‰ãªã„</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): indexã§SEGV</div><div class='add'>+</div><div class='add'>+Tue Dec  3 10:09:36 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961203</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): INSTALL_DATAã‹ã‚‰INSTALLã«å¤‰æ›´</div><div class='add'>+</div><div class='add'>+	* dln.c: hpuxå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* string.c (str_aset_method): è² ã®å€¤ã‚’å«ã‚€ç¯„å›²ã§ã‚‚ä¾‹å¤–ã‚’èµ·ã“ã•ãªã„</div><div class='add'>+</div><div class='add'>+	* array.c (ary_replace): è² ã®å€¤ã‚’å«ã‚€ç¯„å›²ã§ã‚‚ä¾‹å¤–ã‚’èµ·ã“ã•ãªã„</div><div class='add'>+</div><div class='add'>+	* array.c (beg_len): beg==endã®æ™‚ï¼Œé•·ã•0ã«</div><div class='add'>+</div><div class='add'>+Mon Dec  2 14:07:12 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: HP shlå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* string.c (str_upto): beg &gt; endã®æ™‚ç„¡é™ãƒ«ãƒ¼ãƒ—ã«è½ã¡ã‚‹ã®ã‚’æ­¢ã‚ãŸ</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): String#uptoãŒå†å®šç¾©ã•ã‚ŒãŸå ´åˆã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): "ABC".split(/(B)/)ãŒèª¤å‹•ä½œ</div><div class='add'>+</div><div class='add'>+Sat Nov 30 01:43:52 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): undefã§SEGV</div><div class='add'>+</div><div class='add'>+Fri Nov 29 12:17:59 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): %Q#..#ãªã©ã«å¯¾å¿œï¼Žã—ã‹</div><div class='add'>+	  ã—ï¼ŒåŒºåˆ‡ã‚Šæ–‡å­—ãŒæ¼”ç®—å­ã§è¡Œæœ«ã«ã‚ã‚‹å ´åˆã«ã¯å¯¾å¿œã§ããªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (reg_raise): ä¾‹å¤–ã§ã‚‚ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—</div><div class='add'>+</div><div class='add'>+	* re.c (reg_inspect): ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): `%[QqXxRr](.)..\1'ãªã‚‹æ–‡å­—åˆ—å½¢å¼(ãƒ†ã‚¹ãƒˆ</div><div class='add'>+	  æŽ¡ç”¨)</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_qstring): '''...'''ã®å½¢å¼</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (Init_dbm): è¿°èªžkey?,value?ã®è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (Init_dbm): includes-&gt;include?</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): è¿°èªžkey?,value?,include?ã®è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): unlessã§elseç¯€ãŒå®Ÿè¡Œã•ã‚Œãªã„(ã†ãƒ¼ã‚“)</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_iter_s): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯å†…ã§ãƒžãƒƒãƒãŒè¡Œã‚ã‚Œ</div><div class='add'>+	  ã‚‹ã¨ä½ç½®ãŒãšã‚Œã‚‹(æ™‚ã«ç„¡é™ãƒ«ãƒ¼ãƒ—ã«è½ã¡ã‚‹)</div><div class='add'>+</div><div class='add'>+	* string.c (str_resize): lenãŒ0ã®æ™‚sizeã®èª¿æ•´ãŒè¡Œã‚ã‚Œãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+Thu Nov 28 00:59:54 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961128</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): 3-quote styleã®æ–‡å­—åˆ—(ä¾‹:"""abc"d"e""")</div><div class='add'>+</div><div class='add'>+	* configure.in (EXTSTATIC): extã‚’é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹æ™‚ã«ã¯rubyã¯dllã‚’</div><div class='add'>+	  ä½¿ã†ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): getsã®å¼•æ•°ãŒé–“é•ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* string.c (str_each_line): RSã‚’æ˜Žç¤ºçš„ã«æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Wed Nov 27 12:37:46 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961127</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): iver defined? ã§selfã‚’æŒ‡å®šã™ã‚‹ã®ã‚’å¿˜ã‚ŒãŸ</div><div class='add'>+</div><div class='add'>+	* io.c: getsç­‰ã§RSã‚’æ˜Žç¤ºçš„ã«æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): static linkã«å¤±æ•—</div><div class='add'>+</div><div class='add'>+Tue Nov 26 10:33:04 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961126</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): ç½®æ›å¾Œã®æ–‡å­—åˆ—é•·ã•ãŒé–“é•ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+Mon Nov 25 09:11:22 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): 32ä»¥ä¸Šã®å³ã‚·ãƒ•ãƒˆã§0ã‚’è¿”ã™ã‚ˆã†ã«(Cã®</div><div class='add'>+	  rshiftã¯(x&gt;&gt;(y%32))ã‚’è¿”ã—ã¦ã„ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): ç½®æ›ãŒè¡Œã‚ã‚Œãªã„å ´åˆãŒã‚ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* string.c (str_resize): æœ¬å½“ã«å¿…è¦ãªæ™‚ã ã‘realloc</div><div class='add'>+</div><div class='add'>+Thu Nov 21 04:13:21 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (EXTSTATIC): --with-static-linked-extã§å…¨ã¦ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼</div><div class='add'>+	  ãƒ«ã‚’é™çš„ãƒªãƒ³ã‚¯ã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): è¡Œæœ«ã®æ”¹è¡ŒãŒãªã„æ™‚ã«ã‚‚ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’ã‚¹ã‚­ãƒƒ</div><div class='add'>+	  ãƒ—ã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Wed Nov 20 21:42:51 1996  Yasuo OHBA  &lt;jammy@shljapan.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: freebsdå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Nov 20 10:24:24 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): é€šå¸¸ãƒªãƒ³ã‚¯ç”¨ã®LDFLAGSã¨ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒª</div><div class='add'>+	  ãƒ³ã‚¯ç”¨ã®DLDFALGSã‚’åˆ†é›¢</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã®æˆåŠŸã—ãŸã‚‚ã®ã‚’é™çš„ãƒªãƒ³ã‚¯</div><div class='add'>+	  ã®ãƒªã‚¹ãƒˆã«è¿½åŠ ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ–‡å­—åˆ—è¡¨ç¾ãŒé•·ã™ãŽã‚‹æ™‚ãƒãƒƒãƒ•ã‚¡</div><div class='add'>+	  ã‚’æ›¸ãæ½°ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v): forkã—ãŸå¾Œä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã¦ã¯ã„ã‘ãªã„</div><div class='add'>+</div><div class='add'>+Tue Nov 19 13:28:15 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961119</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_method_defined): Module#method_defined? ã®è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): å¼•æ•°ãŒå”¯ä¸€ã®ã‚³ãƒžãƒ³ãƒ‰ã‚³ãƒ¼ãƒ«ã§ã‚ã‚‹æ™‚ã®ãƒã‚°(æˆ»</div><div class='add'>+	  ã‚Šå€¤ãŒå±•é–‹ã•ã‚Œã¦ã—ã¾ã†)</div><div class='add'>+</div><div class='add'>+Mon Nov 18 13:28:18 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): å¤±æ•—ã—ãŸæ™‚ã«nilã‚’è¿”ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): æ¤œç´¢é–‹å§‹ä½ç½®ãŒç§»å‹•ã—ã¦ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyaname): ã¾ã é–“é•ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961118</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): å…ƒã®æ–‡å­—åˆ—ã‚’ç½®æ›ã™ã‚‹ã®ã‚’æ­¢ã‚ãŸ</div><div class='add'>+</div><div class='add'>+	* pack.c (encodes): é ˜åŸŸå¤–ã‚’ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+Fri Nov 15 17:10:35 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_divmod): BignumãŒå¼•æ•°ã®å ´åˆã®å¯¾å¿œå¿˜ã‚Œ</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-expr-beg): word?å½¢å¼ã¸ã®å¯¾å¿œãŒä¸å®Œå…¨</div><div class='add'>+</div><div class='add'>+Wed Nov 13 15:42:40 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_tr_s_bang): tr_sã§trãŒè¡Œã‚ã‚Œã¦ã„ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): autoloadã‚¯ãƒ©ã‚¹ã®ãƒã‚§ãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+	* string.c (f_sub): subãŒsub!ã¨åŒã˜å‹•ä½œã«ãªã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_sleep): stopã¨sleepã®åˆ†é›¢</div><div class='add'>+</div><div class='add'>+Mon Nov 11 13:53:19 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961111</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_step): to, stepãŒæ•´æ•°ä»¥å¤–ã®å ´åˆã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): dynamic varãŒdynamic scopingã«ãªã£ã¦ã„ãŸ(ã“ã‚Œ</div><div class='add'>+	  ã¯ã¾ãšã„)</div><div class='add'>+</div><div class='add'>+	* string.c (str_chop_bang): é•·ã•0ã®æ–‡å­—åˆ—ã®chopã§ï¼Œé ˜åŸŸå¤–ã®ã‚¢ã‚¯ã‚»</div><div class='add'>+	  ã‚¹ãŒç™ºç”Ÿã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yyerror): å‰²ã‚Šå½“ã¦ãŸé ˜åŸŸå¤–ã‚’ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+Fri Nov  8 11:54:46 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_yield): scopeã‚’heapã«ã‚³ãƒ”ãƒ¼</div><div class='add'>+</div><div class='add'>+Thu Nov  7 09:56:53 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_coerce): ã¨ã‚Šã‚ãˆãšä¸¡è¾ºã‚’Floatã«å¤‰æ›ã™ã‚‹ã“ã¨ã«</div><div class='add'>+</div><div class='add'>+Wed Nov  6 10:45:13 1996  Yasuo OHBA  &lt;jammy@shljapan.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/parsearg.rb: ç¬¬2å¼•æ•°ã‚’å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Nov  5 14:21:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961105</div><div class='add'>+</div><div class='add'>+Sat Nov  2 01:11:40 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_pow): typo (dy -&gt; dx)</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_divmod): çŸ¥ã‚‰ãªã„åž‹ã¯floatã«å¤‰æ›ã—ã¦ã¿ã‚‹</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_lshift): å¢ƒç•Œæ¡ä»¶ã®ãƒã‚°(è² ã«ãªã£ã¦ã„ãŸ)</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_pow): ç„¡é§„ãªfloatã¸ã®å¤‰æ›ã‚’ãªãã—ãŸ</div><div class='add'>+</div><div class='add'>+	* math.c (math_atan2): typo(x -&gt; y)</div><div class='add'>+</div><div class='add'>+Fri Nov  1 15:30:59 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_gethostname): gethostnameãŒãªã„æ™‚ã«ã¯</div><div class='add'>+	  unameã‚’ä½¿ã£ã¦ãƒ›ã‚¹ãƒˆåã‚’å¾—ã‚‹</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getlogin): getloginãŒNULLã‚’è¿”ã—ã¦ã‚‚ç’°å¢ƒå¤‰æ•°ã‚’</div><div class='add'>+	  èª¿ã¹ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* object.c (krn_clone): ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ãƒ•ãƒ©ã‚°ã‚‚ã‚³ãƒ”ãƒ¼</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_cmp): ãƒãƒƒã‚·ãƒ¥ã®æ¯”è¼ƒã‚’`=='ã§ãªã`eql?'ã«å¤‰æ›´</div><div class='add'>+</div><div class='add'>+	* math.c (Need_Float): Float()ã‚’ä½¿ã£ã¦å¤‰æ›ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_gt): ä»¥å‰ã®å³è¾ºã‚’è¿”ã™ä»•æ§˜ã®åæ®‹ãŒæ®‹ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+Thu Oct 31 12:55:51 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961031</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): typo</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): é•·ã™ãŽã‚‹trace backã‚’é€”ä¸­çœç•¥ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): å…¨è§’ã®rangeã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Oct 30 03:03:18 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.3-961030</div><div class='add'>+</div><div class='add'>+	* io.c (f_ungetc): é–¢æ•°ã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* eval.c (dyna_var_asgn): returnå€¤å¿˜ã‚Œ</div><div class='add'>+</div><div class='add'>+Tue Oct 29 10:05:28 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (f_split): é–¢æ•°splitã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): ãƒã‚¹ãƒˆã—ãŸå¤–å´ã®ã‚¯ãƒ©ã‚¹/ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®å®šæ•°ã‚’å‚ç…§</div><div class='add'>+	  ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Mon Oct 28 09:51:03 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): offsetãŒæ–‡å­—ã®æœ«å°¾ã«ã‚ã‚‹æ™‚ã®ãƒã‚§ãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): å‰²ã‚Šå½“ã¦ã‚‹ãƒ¬ã‚¸ã‚¹ã‚¿ã®æ•°ãŒ1å¤šã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* io.c (io_gets): $/ = ""ã®å‹•ä½œã‚’perlã«åˆã‚ã›ã‚‹(awkã¨ã¯ã¡ã‚‡ã£ã¨é•</div><div class='add'>+	  ã†ã‚‰ã—ã„)</div><div class='add'>+</div><div class='add'>+	* io.c (io_gets): $/ = nilã®æ™‚å°‘ã—é«˜é€ŸåŒ–</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): æ‹¬å¼§ãŒnullã«ãƒžãƒƒãƒã—ãŸæ™‚ã«ã‚‚ç„¡è¦–ã—</div><div class='add'>+	  ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): æ‹¬å¼§ã«ãƒžãƒƒãƒã—ãŸåˆ†ã¯limitã®æ•°ã«å«ã‚</div><div class='add'>+	  ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_coerce_bin): coerceã®å®šç¾©ã‚’å¤‰æ›´ï¼Œ2è¦ç´ ã®é…åˆ—</div><div class='add'>+	  [x,y]ã‚’è¿”ã™ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): "do |aa|"ã®å¯¾å¿œã‚’æ”¹</div><div class='add'>+	  å–„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Oct 26 01:43:51 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): ãƒ“ãƒ«ãƒˆã‚¤ãƒ³ã‚¯ãƒ©ã‚¹ã®ã‚µãƒ–ã‚¯ãƒ©ã‚¹ã‚’</div><div class='add'>+	  æ­£ã—ãå¾©æ—§ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): ãƒ¦ãƒ¼ã‚¶å®šç¾©dumpã®å„ªå…ˆ</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_coerce): Float()ã‚’ä½¿ã£ã¦å®šç¾©</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): Numericã®newã®undefã¯ã¾ãšã„</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_symbol): ã‚·ãƒ³ãƒœãƒ«ã®å†…å®¹(æ–‡å­—åˆ—)ã¯ä¸€åº¦ã—</div><div class='add'>+	  ã‹ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãå‡ºã•ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): if/whileä¿®é£¾å­ã«å¯¾å¿œã—</div><div class='add'>+	  ãªããªã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): Bignum.newã‚’é™¤ã</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): å¼•æ•°è©•ä¾¡å¾Œã«ãƒ•ã‚¡ã‚¤ãƒ«åã¨è¡Œç•ªå·ã‚’å†è¨­å®š</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_div): typo</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): def /, def `ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Fri Oct 25 09:26:29 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): "do |aa|"ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* array.c (ary_aset): indexãŒfixnumã®å ´åˆã¡ã‚‡ã£ã¨é«˜é€ŸåŒ–</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_fd_writable): æ›¸ãè¾¼ã¿å‰ã®selectãƒã‚§ãƒƒã‚¯</div><div class='add'>+</div><div class='add'>+	* array.c (ary_assoc): ç„¡é™ãƒ«ãƒ¼ãƒ—ã«è½ã¡ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_wait_for): selectãŒã‚¨ãƒ©ãƒ¼çµ‚äº†ã—ãŸæ™‚ï¼Œlinuxä»¥å¤–ã§</div><div class='add'>+	  ã®å‹•ä½œãŒæ­£ã—ããªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Oct 24 08:26:48 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): `$@'ã‚’æ–‡å­—åˆ—ã‹ã‚‰é…åˆ—ã«å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): evalä¸­ã®ä¾‹å¤–ç™ºç”Ÿä½ç½®ã‚’ä¿å­˜ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsub): ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã®å¤§å°æ¯”è¼ƒã®å¤±æ•—</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): ç›´æŽ¥å‚ç…§ãŒãªã„æ™‚ã«ã‚‚`$~'ãŒã‚»ãƒƒãƒˆã•ã‚Œã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Wed Oct 23 10:40:10 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-961023</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (r_bytes): mallocã‚’ã‚„ã‚ï¼Œallocaã‚’ä½¿ã†</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): æ‹¬å¼§ã®å¯¾å¿œã‚’å¤‰æ›´ï¼Ž</div><div class='add'>+	  ()å†…ã§ã¯ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã‚’ãƒ¬ãƒ™ãƒ«ã‚’åˆã‚ã›ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Tue Oct 22 12:59:11 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_s_new): sizeã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): dumpã™ã‚‹æ·±ã•åˆ¶é™ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«</div><div class='add'>+</div><div class='add'>+	* array.c (ary_s_new): sizeã‚’æŒ‡å®šã—ãŸæ™‚ã®åˆæœŸåŒ–å¿˜ã‚Œ</div><div class='add'>+</div><div class='add'>+	* object.c (f_float): big2dblã®å®£è¨€å¿˜ã‚Œï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsub): å¤§ãã•ã®è¿‘ã„BignumåŒå£«ã®æ¼”ç®—ã§çµæžœãŒè² ã«ãªã‚‹</div><div class='add'>+	  å ´åˆã«é–“é•ã„ãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (ary_aset): ç½®æ›å…ˆã¨ç½®æ›å…ƒãŒåŒã˜é•·ã•ã®æ™‚å†…å®¹ã‚’</div><div class='add'>+	  shift(memmove)ã—ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_dump): ãƒ•ã‚¡ã‚¤ãƒ«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã«ãƒãƒ¼</div><div class='add'>+	  ã‚¸ãƒ§ãƒ³ã‚’åŸ‹ã‚è¾¼ã‚€ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (tmpnam): linux-aout-dlnç”¨ã«å®šç¾©</div><div class='add'>+</div><div class='add'>+Mon Oct 21 08:40:20 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_gethostbyname): hostentæ§‹é€ ä½“ã®æƒ…å ±</div><div class='add'>+	  ã‚’è¿”ã™</div><div class='add'>+	  (sock_s_gethostbyaddr): IPã‚¢ãƒ‰ãƒ¬ã‚¹ã‹ã‚‰hostentæ§‹é€ ä½“ã‚’å¾—ã‚‹</div><div class='add'>+	  (sock_s_getservbyaname): getservbyname(3)</div><div class='add'>+</div><div class='add'>+Fri Oct 18 10:37:36 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-indent-to): ç§»å‹•å…ˆã‚«ãƒ©ãƒ ãŒè² ã«ãªã‚‹ãƒã‚°</div><div class='add'>+</div><div class='add'>+	* eval.c (compile): evalã§å…ƒã‚½ãƒ¼ã‚¹ã®è¡Œç•ªå·ã§ã‚¨ãƒ©ãƒ¼ã‚’è¡¨ç¤ºã™ã‚‹</div><div class='add'>+</div><div class='add'>+Thu Oct 17 09:52:28 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): evalã§æ–‡æ³•ã‚¨ãƒ©ãƒ¼ãŒã‚ã£ãŸæ™‚ã«SEGV</div><div class='add'>+</div><div class='add'>+	* lib/safe.rb: Restricted.evalã®ä¸­ã ã‘åˆ¶é™ã‚’åŠ ãˆã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®å‡ºåŠ›ï¼Žcallerã§ä¾‹å¤–ç™ºç”Ÿä½ç½®</div><div class='add'>+	  ã‚’èª¿æ•´ã—ãŸæ™‚ã«å•é¡ŒãŒå‡ºã‚‹(ãã‚“ãªã“ã¨ã‚’ã—ãªã‘ã‚Œã°è‰¯ã„ã®ã ãŒâ€¦)</div><div class='add'>+</div><div class='add'>+	* eval.c (make_backtrace): ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®ç”Ÿæˆ</div><div class='add'>+</div><div class='add'>+Wed Oct 16 12:56:22 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby-man-0.99.2-jp/index.html: æ—¥æœ¬èªžç‰ˆãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®å®Œæˆ(é•·ã‹ã£ãŸâ€¦)</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regcomp): $=ãŒnilã®æ™‚ã®å‡¦ç†</div><div class='add'>+</div><div class='add'>+	* string.c (f_chop): $_ã«å¯¾ã™ã‚‹chop</div><div class='add'>+</div><div class='add'>+Tue Oct 15 11:04:23 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-961015</div><div class='add'>+</div><div class='add'>+Mon Oct 14 18:22:38 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): BOWå¯¾å¿œï¼ŽselectãŒ-1ã‚’è¿”ã—ãŸæ™‚ã«ãƒã‚°(å®Ÿ</div><div class='add'>+	  ã¯do .. whileãŒcontinueã§å…ˆé ­ã«ã‚¸ãƒ£ãƒ³ãƒ—ã™ã‚‹ã¨æ€ã„è¾¼ã‚“ã§ã„ãŸï¼Žæ¡</div><div class='add'>+	  ä»¶ã®ç›´å‰ã ã£ãŸã®ã­ ^^);;;;;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-mode-syntax-table): ?ã®syntaxãŒ"/"ã§ã¯</div><div class='add'>+	  ã¾ãšã„ã‚‰ã—ã„</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash): name conflict</div><div class='add'>+</div><div class='add'>+Fri Oct 11 00:23:05 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-961011</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): çµå±€å‹•ã„ã¦ã„ãªã‹ã£ãŸå¾ªç’°ã‚ªãƒ–ã‚¸ã‚§</div><div class='add'>+	  ã‚¯ãƒˆå¯¾å¿œã‚’å¤–ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash): Fixnumã¨æ–‡å­—åˆ—ã®é«˜é€ŸåŒ–</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): ç„¡é§„ãªãƒ‡ãƒ¼ã‚¿ã®å‰Šé™¤(ãƒ•ã‚©ãƒ¼ãƒžãƒƒ</div><div class='add'>+	  ãƒˆã®éžäº’æ›æ€§)</div><div class='add'>+</div><div class='add'>+	* io.c (io_readline): æˆ»ã‚Šå€¤ã®ä¸å‚™</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_dumps): MSDOSå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): MSDOSå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Oct  9 17:46:27 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): ç„¡é§„ãªã‚³ãƒ”ãƒ¼ã‚’é¿ã‘ã‚‹</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_method): ãƒžãƒƒãƒãŒãªã‹ã£ãŸæ™‚ã®String#subã®å€¤ãŒ</div><div class='add'>+	  é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_extend): extendã—ãŸæ™‚ã«object_extendedã‚’å‘¼ã¶ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Tue Oct  8 00:55:38 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_alloc): å‰²å½“ã®å¹³å‡åŒ–</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): joinã®ãƒã‚°ã‚’ä¿®æ­£</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_wait_for): selectã¸ã®å‰²è¾¼ã¿ãªã©ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_select): linuxã®selectã®æŒ™å‹•ã«å¯¾å¿œ(timeoutãŒå¤‰åŒ–</div><div class='add'>+	  ã™ã‚‹)</div><div class='add'>+</div><div class='add'>+Mon Oct  7 09:47:19 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-961007</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_BLOCK): the_classã®ä¿å­˜ã‚’å¿˜ã‚Œã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_store): sizeã®ä¿å­˜ã™ã‚‹å ´æ‰€ãŒé–“é•ã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): threadå¯¾å¿œã—ã¦ã„ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+Sat Oct  5 01:32:27 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_readchar): EOFã§ä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã‚‹</div><div class='add'>+</div><div class='add'>+Fri Oct  4 11:59:54 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): Hashã¨Objectã®å¾©æ—§ã«å¿…è¦ãªãƒãƒƒ</div><div class='add'>+	  ã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ãƒ«ãŒæ¸¡ã•ã‚Œã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): ãƒ¦ãƒ¼ã‚¶å®šç¾©ã‚¯ãƒ©ã‚¹ã®å¾©æ—§ã«å¤±æ•—ã—ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): ã‚¯ãƒ©ã‚¹ãŒå­˜åœ¨ã—ãªã„æ™‚ã®ã‚¨ãƒ©ãƒ¼ã‚’Fatal</div><div class='add'>+	  ã‹ã‚‰NameErrorã¸ï¼Ž</div><div class='add'>+</div><div class='add'>+	* range.c (range_s_new): first,lastãŒä¸¡æ–¹Numericã®æ™‚ã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦</div><div class='add'>+	  ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* range.c: start-&gt;first, end-&gt;last</div><div class='add'>+</div><div class='add'>+Wed Oct  2 02:02:46 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: DJGPPã§chmod,chownã‚’ä½¿ãˆã‚‹ã‚ˆã†ã«(ã£ã¦DOSã«chownãŒã‚ã‚‹ã®ã‹?)</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): ãƒ“ãƒ«ãƒˆã‚¤ãƒ³ã‚¯ãƒ©ã‚¹ã‚‚extendã—ãŸã‚Šç‰¹ç•°</div><div class='add'>+	  ãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ ã—ãŸã‚Šã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_set_class_path): ãƒ¦ãƒ¼ã‚¶å®šç¾©ã®ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã‚¯ãƒ©ã‚¹ã«</div><div class='add'>+	  pathã‚’è¨­å®šã—ãªã„</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): ä¾‹å¤–ãŒRuntimeErrorã«åŒ–ã‘ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): evalä¸­ã®ä¾‹å¤–ã®è¡¨ç¾ã®æ”¹å–„</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): eval_with_bindingã¨ã®ä¸€æœ¬åŒ–</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ã‚¯ãƒ©ã‚¹/ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å®šç¾©ã®ä¸­ã‹ã‚‰å®šç¾©ä¸­ã®ã‚¯ãƒ©ã‚¹/ãƒ¢</div><div class='add'>+	  ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒå‚ç…§ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Tue Oct  1 01:40:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-961001</div><div class='add'>+</div><div class='add'>+	* parse.y: cur_crefãŒ2åº¦å®£è¨€ã•ã‚Œã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): SIGSEGVï¼ŒSIGBUSã®ãªã„æ©Ÿç¨®ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): å¼•æ•°ã‚¿ã‚¤ãƒ—ã®æŒ‡å®šé–“é•ã„</div><div class='add'>+</div><div class='add'>+Mon Sep 30 15:28:00 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-960930</div><div class='add'>+</div><div class='add'>+	* config.guess,config.sub: $host_osãŒæ­£ã—ãè¨­å®šã•ã‚Œãªã„</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): yieldã§æ­£ã—ããªã„selfãŒè¨­å®šã•ã‚Œã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): toplevelã®ä¾‹å¤–å‡¦ç†ã®ãƒã‚°</div><div class='add'>+</div><div class='add'>+Mon Sep 30 09:13:26 1996  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* djgppå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Sat Sep 28 02:45:10 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-960928</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-beginning-of-block): ãƒ–ãƒ­ãƒƒã‚¯ã®å…ˆé ­ã«</div><div class='add'>+	  ç§»å‹•(æ­£ã—ãã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã—ã¦ã„ãªã„ã¨å‹•ä½œã—ãªã„)</div><div class='add'>+	  (ruby-end-of-block): åŒä¸Š</div><div class='add'>+</div><div class='add'>+	* eval.c (class_s_new): Class#newãŒã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸæ™‚ã¯</div><div class='add'>+	  initializeã‚‚ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚Œã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsegv): SEGVã§backtraceã‚’è¡¨ç¤ºã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Fri Sep 27 09:51:07 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-960927</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): å¼•æ•°ã®ãªã„raiseã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒæ­£ã—ãè¡¨ç¤ºã•</div><div class='add'>+	  ã‚Œã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): mesgãŒnilã®æ™‚RuntimeErrorã‚’ç”Ÿæˆã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): å¼•æ•°ãŒãªã„æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): stackä¸Šã«ãªã„ãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å¤‰æ›ã‚’è¡Œã£ã¦</div><div class='add'>+	  ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): å‰²è¾¼ã¿ã®é–“éš”ãŒ1ç§’ã¨é•·ã™ãŽãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 26 16:02:45 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): ä¸€åº¦ãƒšãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã«ãªã‚‹ã¨ãƒ•ãƒ©ã‚°ãŒã‚¯ãƒªã‚¢</div><div class='add'>+	  ã•ã‚Œã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): system/execã®å¼•æ•°ãŒç©ºæ–‡å­—åˆ—ã§ã‚ã£ãŸå ´</div><div class='add'>+	  åˆï¼Œä¾‹å¤–ã‚’ç™ºç”Ÿã™ã¹ãã ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* config.sub/config.guess: æ–°ã—ã„ã‚‚ã®ã«ç½®ãæ›ãˆ</div><div class='add'>+</div><div class='add'>+Thu Sep 26 15:41:35 1996  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): -i.bakã‚’BOWã¨DOSã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 26 01:31:43 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_sysread): EOFã§ä¾‹å¤–</div><div class='add'>+</div><div class='add'>+	* io.c (f_readline): EOFã§ä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ã‚ˆã†ã«ï¼Žgetsã¯äº’æ›æ€§ã®ãŸã‚</div><div class='add'>+	  nilã‚’è¿”ã™ã¾ã¾ã«ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): lambdaã‹ã‚‰ã®returnã§IN_BLOCKãƒ•ãƒ©ã‚°ãŒç«‹ã£ãŸã¾</div><div class='add'>+	  ã¾ã ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_BLOCK2): threadã«å¯¾å¿œã™ã‚‹ãŸã‚Blockã‚’ä¸€åº¦stackã«ã‚³ãƒ”ãƒ¼</div><div class='add'>+</div><div class='add'>+Wed Sep 25 11:54:11 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): Const::method()å½¢å¼ã‚’ä½¿ãˆã‚‹ã‚ˆã†ã«ã—ã¦ã¿ãŸï¼Ž</div><div class='add'>+	  å¼•æ•°æ‹¬å¼§ã¯çœç•¥ã§ããªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: Process.killã®å­˜åœ¨ã‚’ç¢ºã‹ã‚ã¦ã‹ã‚‰ãƒ†ã‚¹ãƒˆã‚’è¡Œã†</div><div class='add'>+</div><div class='add'>+	* eval.c (eval_with_binding): ç¬¬2å¼•æ•°ã¨ã—ã¦binding(ã¾ãŸã¯lambda)ã‚’</div><div class='add'>+	  ä¸Žãˆã‚‹ã¨ãã®ç’°å¢ƒã§evalã‚’å®Ÿè¡Œã™ã‚‹ã‚ˆã†ã«ã—ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (f_binding): ç¾åœ¨ã®bindingã‚’è¿”ã™é–¢æ•°</div><div class='add'>+</div><div class='add'>+	* eval.c: blockæ§‹é€ ä½“ã«the_classã‚’ä¿å­˜ã™ã‚‹ãƒ¡ãƒ³ãƒã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): kill,wait,waitpidã‚’Processã«ç§»å‹•</div><div class='add'>+</div><div class='add'>+Tue Sep 24 02:44:43 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el: ã„ã‚ã„ã‚å•é¡ŒãŒå¤šã„ã®ã§ä»¥å‰ã®é«˜é€ŸåŒ–ã¯ç ´æ£„ï¼Ž</div><div class='add'>+	  åˆ¥ã®ã‚¢ãƒ—ãƒ­ãƒ¼ãƒã‚’ä½¿ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb (Tk.pack): è¤‡æ•°ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’å—ã‘ä»˜ã‘ã‚‹pack</div><div class='add'>+</div><div class='add'>+Sat Sep 21 11:08:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (exprs): ç©ºæ–‡ã‚‚å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«æ–‡æ³•ã‚’å¤‰æ›´ï¼Žä»Šã¾ã§ã¯æ”¹è¡Œ</div><div class='add'>+	  ã®é€£ç¶šã ã‘ãŒè¨±ã•ã‚Œã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Sep 20 11:39:18 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Failã®å¤§åŠã‚’åå‰ã¤ãä¾‹å¤–ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): åå‰ã¤ãä¾‹å¤–ã‚’å°Žå…¥ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): Objectã¯inspectã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (inspect_i): Object#inspectã§loopã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): /^$/ãŒ""ã«ãƒžãƒƒãƒã—ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 19 19:25:12 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): /^$/ãŒéžç©ºè¡Œã«ãƒžãƒƒãƒã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Sep 17 10:28:11 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-960917</div><div class='add'>+</div><div class='add'>+Mon Sep 16 10:47:56 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): æ¼”ç®—å­ç¶™ç¶šã®å ´åˆã®</div><div class='add'>+	  æ–‡å­—åˆ—ã®åˆ¤å®šã®ãƒã‚°</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): elseãªã©ã®æ¬¡ã®è¡Œã®</div><div class='add'>+	  ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆè¨ˆç®—ã‚’æ­£ã—ãï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Sep 14 08:37:19 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.2-960914</div><div class='add'>+</div><div class='add'>+Fri Sep 13 08:06:03 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcpaddr): portç•ªå·ã«ntohsã‚’ã¤ã‘å¿˜ã‚Œ</div><div class='add'>+</div><div class='add'>+	* dln.c (link_undef): ãƒ†ãƒ¼ãƒ–ãƒ«ã®ç¨®é¡žãŒé–“é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigadd): å¼•ãç®—ãŒç™ºç”Ÿã™ã‚‹æ™‚ã«è¨ˆç®—é•ã„ãŒèµ·ãã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (iter_do_block): do..endã§ã‚‚dynamic variableã‚’ï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_pow): ã‚ˆã‚Šæ­£ç¢ºãªè¨ˆç®—ã‚’(æ•´æ•°åŒå£«ã§ã¯floatã«å¤‰æ›ã—ãª</div><div class='add'>+	  ã„)ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 12 13:11:55 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_set_class_path): Stringã‚¯ãƒ©ã‚¹ãŒåˆæœŸåŒ–ã•ã‚Œã‚‹å‰ã«</div><div class='add'>+	  Stringã‚’ä½œã£ã¦ã„ãŸï¼Žçµ„è¾¼ã¿ã‚¯ãƒ©ã‚¹ã«ã¯pathã¯ã„ã‚‰ãªã„</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): 0.1ãŒ0ã«ãªã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): è¡Œç•ªå·ã®ä¸æ•´åˆ</div><div class='add'>+</div><div class='add'>+	* gc.c (oblist_live_obj): ä»Šã€Œç”Ÿãã¦ã„ã‚‹ã€å…¨éƒ¨ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¿”ã™</div><div class='add'>+	  ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ï¼Žãã®ã‚¯ãƒ©ã‚¹(ã¾ãŸã¯ã‚µãƒ–ã‚¯ãƒ©ã‚¹)ã®å…¨éƒ¨ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’è¿”</div><div class='add'>+	  ã™each_object_ofã‚‚å®šç¾©ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_id): ç„¡é§„ãªã‚¯ãƒ©ã‚¹ã‚’å‰²ã‚Šå½“ã¦ã¦ã„ãŸï¼Žçµæžœ</div><div class='add'>+	  ã¨ã—ã¦æœªåˆæœŸåŒ–ã®ã‚¯ãƒ©ã‚¹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒå­˜åœ¨ã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Sep 11 00:56:23 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): octalã®å®šæ•°ã®æ¤œå‡ºã‚’ã‚ˆã‚Šæ­£ç¢ºã«(090ã¯ã‚¨ãƒ©ãƒ¼ã¨ã‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_minus): yãŒxã‚ˆã‚Šå¤§ãã„å ´åˆã«ã‚¨ãƒ©ãƒ¼ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ã‚¨ãƒ©ãƒ¼è¡Œç•ªå·ã®è¡¨ç¤ºã‚’ã‚ˆã‚Šæ­£ç¢ºã«</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-expr-beg): å¤‰æ•°åãŒ1æ–‡å­—ã®æ™‚èª¤å‹•ä½œã—ã¦</div><div class='add'>+	  ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): ?/ã§ãƒ«ãƒ¼ãƒ—ã«è½ã¡ã„</div><div class='add'>+	  ãŸãƒã‚°ã‚’ä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min,enum_max): sortã®ã‚ˆã†ã«ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦ã‚‚å‹•ä½œã™</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find_all): typo</div><div class='add'>+</div><div class='add'>+Tue Sep 10 12:07:12 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (nd_line): NODEã®lineã‚’flagsã«æŠ¼ã—è¾¼ã‚ã¦ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚µã‚¤</div><div class='add'>+	  ã‚ºã‚’å°ã•ãã—ãŸï¼Žåˆ¶é™:32bit intã®ãƒžã‚·ãƒ³ã®å ´åˆï¼Œãƒ•ã‚¡ã‚¤ãƒ«ã®è¡Œæ•°ãŒ</div><div class='add'>+	  32767ã‚’è¶Šãˆã‚‹ã¨æ­£å¸¸ã«è¡¨ç¤ºã•ã‚Œãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* st.c: hashã¨compareã®é–¢æ•°ãƒ¡ãƒ³ãƒã‚’æ§‹é€ ä½“ã«ãƒ‘ãƒƒã‚¯ï¼Œã‚¯ãƒ©ã‚¹çš„ãªä½¿ã„</div><div class='add'>+	  æ–¹ã‚’è¡Œã†ï¼Ž1 tableã‚ãŸã‚Š4 byteã®ç¯€ç´„ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Sep  9 16:35:54 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_truncate): æä¾›ã•ã‚Œãªã„æ™‚ã«ã¯ç‰¹åˆ¥ãªä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): ä¸é©åˆ‡ãªä½ç½®ã®local-jumpã‚’ä¾‹å¤–ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Sep  7 17:06:15 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): ã¾ã ã‚¹ã‚³ãƒ¼ãƒ—ãŒã‚¹ã‚¿ãƒƒã‚¯ä¸Šã«ã‚ã‚‹æ™‚ã«ã¯å±€æ‰€è„±å‡º</div><div class='add'>+	  ã‚’æœ‰åŠ¹ã«ã™ã‚‹ï¼Žã“ã‚Œã§ï¼Œprocã‚’ç”Ÿæˆã—ã¦callã™ã‚‹ã“ã¨ã¯ï¼Œã‚¹ã‚³ãƒ¼ãƒ—ã‚’è„±</div><div class='add'>+	  å‡ºã—ãªã„é™ã‚Šï¼Œyieldã¨åŒã˜æ„å‘³ã‚’æŒã¤ã“ã¨ã«ãªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Sep  6 13:30:59 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-indent-to): ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆãŒå¤‰ã‚ã‚‰ãªã„æ™‚ã«</div><div class='add'>+	  ã¯ãƒãƒƒãƒ•ã‚¡ã‚’å¤‰æ›´ã—ãªã„ï¼Ž</div><div class='add'>+	  (ruby-calculate-indent): ã¾ãšæ–‡å­—åˆ—ã®å†…éƒ¨ã‹åˆ¤æ–­ã—ã¦ã‹ã‚‰ï¼Œå‰ã®è¡Œ</div><div class='add'>+	  ã‹ã‚‰ãƒ‘ãƒ¼ã‚ºã‚’è¡Œã†ï¼ŽdefunãŒå¤§ãããªã£ãŸæ™‚ã®é«˜é€ŸåŒ–ï¼Ž</div><div class='add'>+	  (ruby-in-string-p): æ–‡å­—åˆ—ã®å†…éƒ¨ã‹ã©ã†ã‹ã‚’åˆ¤æ–­ã™ã‚‹é–¢æ•°(ä»¥å‰ã®</div><div class='add'>+	  parseã‹ã‚‰åˆ†é›¢)</div><div class='add'>+	  (ruby-parse-region): æ–‡å­—åˆ—ã«å¯¾ã™ã‚‹å‡¦ç†ã‚’ã¯ãšã™ï¼Ž</div><div class='add'>+	  (ruby-beginning-of-block): ãƒ–ãƒ­ãƒƒã‚¯ã®å…ˆé ­ã«</div><div class='add'>+	  (ruby-end-of-block): ãƒ–ãƒ­ãƒƒã‚¯ã®æœ«å°¾ã«(é…ã„â€¦)</div><div class='add'>+</div><div class='add'>+Thu Sep  5 14:23:07 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_split): [dirname,basename]ã«splitã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): evalã®ä¸­ã§ã‚‚å®šæ•°ã®å€¤ãŒæ­£ã—ããªã‚‹ã‚ˆã†ã«ï¼Žã“ã‚Œã§</div><div class='add'>+	  å®šæ•°ã«é–¢ã—ã¦ã¯é™çš„ãªã‚¹ã‚³ãƒ¼ãƒ—ãŒä¿è¨¼ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* st.c (rehash): ãƒãƒƒã‚·ãƒ¥æ‹¡å¤§ã®ç³»æ•°ã‚’2ã‹ã‚‰1.79ã«ï¼Žå‰²ç®—ãŒã‚ˆã‚Šè‰¯ã„å€¤</div><div class='add'>+	  ã‚’è¿”ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep  5 00:32:07 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (class_superclass) ã‚¯ãƒ©ã‚¹ã®ã‚¹ãƒ¼ãƒ‘ãƒ¼ã‚¯ãƒ©ã‚¹ã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Sep  4 16:54:56 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (f_rand): Bignumã‚„longã®ç¯„å›²ã‚’è¶Šãˆã‚‹Floatã«å¯¾ã™ã‚‹ä¹±æ•°ã‚‚</div><div class='add'>+	  ç™ºç”Ÿã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_alloc): Fatalã§ã¯ãªãä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã‚‹ã‚ˆã†ã«(é€š</div><div class='add'>+	  å¸¸ã®ä½¿ç”¨ã§ç™ºç”Ÿã—ã†ã‚‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_s_members): Structã®ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ãªãï¼Œç”Ÿæˆ</div><div class='add'>+	  ã•ã‚ŒãŸStructã‚¯ãƒ©ã‚¹ã®ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* st.c (st_init_table): rubyå°‚ç”¨ã«ãƒ‘ãƒ©ãƒ¡ã‚¿ã‚’å›ºå®šã«ã—ãŸ(ã‚µã‚¤</div><div class='add'>+	  ã‚ºãŒæ¸›ã£ãŸ)</div><div class='add'>+</div><div class='add'>+Mon Sep  2 11:37:59 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_shift): capaãŒã‚ã¾ã‚Šã«ã‚‚å¤§ãã„æ™‚ã«ã¯é ˜åŸŸã‚’REALLOC</div><div class='add'>+	(ary_pop): åŒä¸Š</div><div class='add'>+</div><div class='add'>+	* string.c (str_inspect): multibyte character å¯¾å¿œã«ãƒŸã‚¹ï¼Ž</div><div class='add'>+	(str_inspect): unsigned charã«ã—ãªã„ã¨ç¬¦å·å±•é–‹ã•ã‚Œã¦ã—ã¾ã†</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): `::'ã‚’primaryã«ç§»å‹• Foo::Bar.BazãŒã‚¨ãƒ©ãƒ¼ã«ãª</div><div class='add'>+	  ã‚‰ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): ã‚ªãƒšãƒ¬ãƒ¼ã‚¿å½¢å¼ã®ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãŒå®šç¾©ã§ããªã„</div><div class='add'>+</div><div class='add'>+	* random.c (f_rand): maxãŒ0ã®æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* io.c (io_printf): é–¢æ•°ã‚’å®šç¾©ã—ã¦ã„ãŸãŒã‚¤ãƒ³ã‚¿ãƒ—ãƒªã‚¿ã«ç™»éŒ²ã—ã¦ã„ãª</div><div class='add'>+	  ã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_basename): ç¬¬2å¼•æ•°ãŒç„¡ã„æ™‚ã«ã‚¨ãƒ©ãƒ¼ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Aug 29 10:49:40 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã®æ–°å½¢å¼ã«ã€Œmethod do .. endã€å½¢å¼ã‚’æŽ¡</div><div class='add'>+	  ç”¨ã—ãŸï¼Žã‚‚ã¡ã‚ã‚“æ˜”ã®å½¢å¼ã‚‚æœ‰åŠ¹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): endã®æ•°ã®æ–¹ãŒå¤šã„å ´</div><div class='add'>+	  åˆã«ã‚‚ã‚¨ãƒ©ãƒ¼ã‚’èµ·ã“ã•ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug 28 09:41:36 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (upto,downto,step,times): å¯¾è±¡ãŒfixnumã®ç¯„å›²ã‚’è¶Šãˆã¦ã‚‚</div><div class='add'>+	  å‹•ä½œã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Aug 26 10:04:37 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/setenv.c (envix): typo(missing `== 0' for memcmp)</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_foreach): foreach(dir open -&gt; read loop -&gt; closeã¾ã§)</div><div class='add'>+</div><div class='add'>+	* io.c (io_foreach): foreach(file open -&gt; read loop -&gt; closeã¾ã§)</div><div class='add'>+</div><div class='add'>+	* Fatalã®ã†ã¡æ•æ‰å¯èƒ½ãªã„ãã¤ã‹ã‚’ä¾‹å¤–ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Aug 24 23:56:37 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): FIX2INT -&gt; INT2FIX å¤§é–“é•ã„</div><div class='add'>+</div><div class='add'>+Fri Aug 23 18:13:03 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_free_registers): allocateã—ã¦ã„ãªã„æ™‚ã«ã¯å½“ç„¶ free</div><div class='add'>+	  ã—ã¦ã¯ã„ã‘ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Aug 22 01:20:35 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): å¤–å´ã‹ã‚‰å¼·åˆ¶çµ‚äº†ã•ã›ã‚‰ã‚ŒãŸthreadã¯</div><div class='add'>+	  cleanupã™ã‚‹å¿…è¦ãŒç„¡ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug 21 09:57:28 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): threadã‚’çµ‚äº†ã•ã›ãŸå¤§åŸŸè„±å‡ºã®æƒ…å ±ã‚’</div><div class='add'>+	  main_threadã«æ¸¡ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): æœ€çµ‚å¼•æ•°ã«æ‹¬å¼§ã‚’çœç•¥ã—ãŸãƒ¡ã‚½ãƒƒãƒ‰å‘¼å‡ºã—ã‚’ç½®</div><div class='add'>+	  ã‘ã‚‹ã‚ˆã†ã«(ä¾‹: print foo bar, baz == print(foo(bar,baz)))</div><div class='add'>+</div><div class='add'>+Tue Aug 20 13:37:16 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (masign): å¤šé‡ä»£å…¥ã¨restå¼•æ•°ã®å‹•ä½œã‚’åˆã‚ã›ã¦ç©ºã®é…åˆ—ã‚’ä»£</div><div class='add'>+	  å…¥ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): defined?ã®å¼·åº¦ã‚’ã‚‚ã†ã¡ã‚‡ã£ã¨å¼·ã</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): -wã§ä¾‹å¤–åã‚‚è¡¨ç¤ºã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): æ–°æ§‹æ–‡ã«å¯¾å¿œ</div><div class='add'>+	(handle_rescue): æ•æ‰ã™ã‚‹ä¾‹å¤–ã‚’ kind_of? ã§åŒå®š</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): rescueã®æ§‹æ–‡ã‚’å¤‰æ›´(åŒå®šå¼•æ•°ã®è¿½åŠ ï¼Œè¤‡æ•°rescue)</div><div class='add'>+</div><div class='add'>+	* Fail()ã®ã‹ãªã‚Šã‚’é©å½“ãªä¾‹å¤–ã‚’ä½¿ã†ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_interrupt): Interrupt(ä»Šã¯non-local jump)ã¯</div><div class='add'>+	  main-threadã«é€ã‚‰ã‚Œã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): $! ã®å†…å®¹ã‚’æ–‡å­—åˆ—ã‹ã‚‰ä¾‹å¤–ã‚¯ãƒ©ã‚¹ã«å¤‰æ›´</div><div class='add'>+	(rb_raise): rb_fail ã‹ã‚‰åç§°å¤‰æ›´</div><div class='add'>+	(rb_interrupt): ä¾‹å¤–åŒ–</div><div class='add'>+	(rb_exit): ä¾‹å¤–åŒ–</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): ä¾‹å¤–ã‚¯ãƒ©ã‚¹ã®æ–°è¨­(æ–‡å­—åˆ—ã®ã‚µãƒ–ã‚¯ãƒ©ã‚¹)</div><div class='add'>+</div><div class='add'>+Mon Aug 19 19:40:52 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): å¤ã„ãƒãƒ³ãƒ‰ãƒ©ã‚’è¿”ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug 14 00:07:18 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_trap_eval): ãƒãƒ³ãƒ‰ãƒ©ã®ãŸã‚ã«threadã‚’forkã™ã‚‹ã“ã¨ã‚’æ­¢</div><div class='add'>+	  ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): threadæ¯Žã® $!, $@ ã‚’ãƒžãƒ¼ã‚¯ã—å¿˜ã‚Œ</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_delete): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸå ´åˆï¼Œè¦ç´ </div><div class='add'>+	  ãŒç„¡ã‘ã‚Œã°ãƒ–ãƒ­ãƒƒã‚¯ã‚’è©•ä¾¡ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_delete): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸå ´åˆï¼Œè¦ç´ ãŒç„¡ã‘ã‚Œ</div><div class='add'>+	  ã°ãƒ–ãƒ­ãƒƒã‚¯ã‚’è©•ä¾¡ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (ary_delete): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸå ´åˆï¼Œè¦ç´ ãŒç„¡ã‘ã‚Œ</div><div class='add'>+	  ã°ãƒ–ãƒ­ãƒƒã‚¯ã‚’è©•ä¾¡ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_interrupt): SIGINTã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚’exitã‹ã‚‰ç‰¹åˆ¥ãªå¤§åŸŸè„±</div><div class='add'>+	  å‡ºã«ï¼Žã‚„ã¯ã‚Šå‰²ã‚Šè¾¼ã¾ã‚ŒãŸä½ç½®ã®è¡¨ç¤ºãŒç„¡ã„ã®ã¯å¯‚ã—ã„ã®ã§ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Aug 13 01:34:00 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exit): sub-threadå†…ã§ã®exitã‚‚statusã‚’ä¿å­˜ã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+	(thread_create): è‡ªthreadå†…ã®exitã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandle): SIGINTã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒãƒ³ãƒ‰ãƒ©ã¯exitã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+	  (ä»¥å‰ã¯ä¾‹å¤–ã‚’ç™ºç”Ÿã—ã¦ã„ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ä¾‹å¤–ã®ä¸€éƒ¨ã‚’Fatalã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_aset): æ–‡å­—åˆ—ã®ç½®æ›ã®å¯¾è±¡ãŒéƒ¨åˆ†æ–‡å­—åˆ—ã§ãªã‹ã£ãŸæ™‚ï¼Œ</div><div class='add'>+	  ä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): Procã®ä¸­ã‹ã‚‰break/nextã¯é€šã—ï¼Œä»–ã®ã‚‚ã®ã¯é€šã•</div><div class='add'>+	  ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Mon Aug 12 14:15:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (krn_type): æ–‡å­—åˆ—ã‚’è¿”ã™</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): sub-threadå†…ã§ã®exitã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_type): æ–‡å­—åˆ—ã‚’è¿”ã™</div><div class='add'>+</div><div class='add'>+	* io.c (f_p): ãƒ‡ãƒãƒƒã‚°ç”¨ãƒ‡ãƒ¼ã‚¿è¡¨ç¤ºãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): nil/TRUE/FALSEã‚’ç‰¹åˆ¥æ‰±ã„</div><div class='add'>+</div><div class='add'>+	* string.c (str_inspect): é•·ã„æ–‡å­—åˆ—ã‚’çŸ­ç¸®è¡¨ç¤ºï¼Žinspectã®åƒãã‚’</div><div class='add'>+	  human readable stringã®ç”Ÿæˆã«çµ±ä¸€(re-generatable string ã¯æ­£å¼ã«</div><div class='add'>+	  ç„¡ããªã£ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Aug 10 16:54:21 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): kernel/nil/false/trueã®ã‚¯ãƒ©ã‚¹åã‚’å¤‰æ›´(å°</div><div class='add'>+	  æ–‡å­—ã«)ï¼Œrubyã‚¹ã‚¯ãƒªãƒ—ãƒˆã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): CONSTANTã®ã‚¢ã‚¯ã‚»ã‚¹å…ˆã‚’å˜ç´”åŒ–ï¼Žcrefã‚’ä½¿ã‚ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_eval): ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰å†…ã§ã‚‚å®šæ•°ã®å€¤ãŒæ­£ã—ããªã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Fri Aug  9 12:23:17 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_concat): append -&gt; concat Stringã«åˆã‚ã›ãŸ</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `$;'ãŒä½¿ãˆãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (ary_push_method): è¤‡æ•°å¼•æ•°ã‚’å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+	(ary_unshift): è¤‡æ•°å¼•æ•°ã‚’å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_popen): IO.popenã§command pipeãŒé–‹ã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): Kernelã¨Nilã‚’ruby scriptã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ã</div><div class='add'>+	  ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Aug  8 01:21:47 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (f_integer): æ•´æ•°ã¸ã®å¤‰æ›é–¢æ•°</div><div class='add'>+	(f_float): å®Ÿæ•°ã¸ã®å¤‰æ›é–¢æ•°</div><div class='add'>+	(f_string): æ–‡å­—åˆ—ã¸ã®å¤‰æ›é–¢æ•°</div><div class='add'>+	(f_array): é…åˆ—ã¸ã®å¤‰æ›é–¢æ•°</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_to_i): FIXNUMã®ç¯„å›²ã§ãªã„æ™‚ã¯Bignumã®ã¾ã¾è¿”ã™ã‚ˆã†</div><div class='add'>+	  ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug  7 09:28:38 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99.1-960807</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs): ã€Œ*foo = 1,2,3ã€ã‚¿ã‚¤ãƒ—ã®å¤šé‡ä»£å…¥ã‚‚å¯èƒ½ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): ã‚¯ãƒ©ã‚¹True/Falseã‚’ruby scriptã‹ã‚‰ã‚¢ã‚¯ã‚»</div><div class='add'>+	  ã‚¹ã§ããªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (nil_inspect): inspectè¡¨ç¾ã¯"nil"ã«</div><div class='add'>+</div><div class='add'>+	* io.c (io_print): nilã®printã‚’nilã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_s): nilã®æ–‡å­—åˆ—è¡¨ç¾ã‚’""ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Aug  6 01:12:32 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): file descripterãŒè¶³ã‚Šãªã„æ™‚ã«ã¯gcã—ã¦ã‹ã‚‰ã‚‚</div><div class='add'>+	  ã†ä¸€åº¦openã—ã¦ã¿ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen): ã™ã¹ã¦ã®fopen()ã«ã¤ã„ã¦file descripterãŒè¶³ã‚Šãª</div><div class='add'>+	  ã„æ™‚ã«ã¯gcã—ã¦ã‹ã‚‰ã‚‚ã†ä¸€åº¦openã—ã¦ã¿ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): å®šæ•°ã®è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-indent-to): ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆå¾Œã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®</div><div class='add'>+	  ã®èª¿æ•´ã‚’æ­£ã—ãï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c (gc): å‰²è¾¼ã¿ãƒã‚§ãƒƒã‚¯ã‚’è¡Œã‚ãªã„(Cã‚³ãƒ¼ãƒ‰ã®ä¸­ã§å®‰å¿ƒã—ã¦</div><div class='add'>+	  malloc()ãŒä½¿ãˆãªããªã‚‹ã®ã§)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* st.c (call_hash_func): signalã¨threadã«ã‚ˆã‚‹å‰²è¾¼ã¿ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* sig.h (DEFER_INTS): å‰²è¾¼ã¿ç¦æ­¢åŒºé–“ã®æŒ‡å®š</div><div class='add'>+</div><div class='add'>+	* eval.c (f_require): threadã«ã‚ˆã‚‹requireã®ç«¶åˆã«å¯¾å¿œ(æœ€åˆã®</div><div class='add'>+	  requireãŒçµ‚äº†ã™ã‚‹ã¾ã§ä»–ã®threadã¯å¾…ã¤)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (str2inum): 0x80000000ã®å€¤ãŒè² ã«ãªã£ã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): æ–‡å­—åˆ—æœ«å°¾ï¼Œè¡Œæœ«ã®å˜ç‹¬ã®`%'ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_cmp): æ¯”è¼ƒã®çµæžœãŒé€†ã«ãªã‚‹æ™‚ãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Aug  5 10:58:13 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v): ä¾‹å¤–ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’åˆ†ã‹ã‚Šã‚„ã™ãï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_store): nilã‚’æ ¼ç´ã™ã‚‹ã¨è¦ç´ ã®å‰Šé™¤ã«ãªã‚‹</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: ã‚µã‚¤ã‚ºã‚’ã‚­ãƒ£ãƒƒã‚·ãƒ¥ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Aug  3 01:52:52 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fail): `fail'ãŒå¼•æ•°ç„¡ã—ã§å‘¼ã°ã‚ŒãŸæ™‚ã ã‘ä»¥å‰ã®`$@'ã‚’ä¿</div><div class='add'>+	  å­˜ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_fail): frameã®èª¿æ•´</div><div class='add'>+</div><div class='add'>+Fri Aug  2 11:26:21 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_setopt): valã¨ã—ã¦TRUE/FALSE/Fixnumã‚‚</div><div class='add'>+	  å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): SO_REUSEADDRç­‰ã®å®šæ•°ã®è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c: md5ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«(åˆã®è¤‡æ•°ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ãªã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼</div><div class='add'>+	  ãƒ«ã§ã‚‚ã‚ã‚‹)</div><div class='add'>+</div><div class='add'>+	* ruby.h (Make_Data_Struct): Data: objectã®instanceå¤‰æ•°ã«æ ¼ç´ -&gt;</div><div class='add'>+	  Dataåž‹ã®Objectã«(Dir,Time,Proc,Thread,DBM)</div><div class='add'>+</div><div class='add'>+Thu Aug  1 11:38:44 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_store): valueãŒæ–‡å­—ã§ç„¡ã„æ™‚ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Jul 31 10:53:42 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (open_inet): htonsãŒå¿…è¦ã§ã‚ã£ãŸ</div><div class='add'>+	(tcpaddr): ntohlã§å¤‰æ›ã—ãŸ</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): execvp -&gt; execv</div><div class='add'>+</div><div class='add'>+Tue Jul 30 17:48:33 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: `$?'ã‚’thread localã«</div><div class='add'>+</div><div class='add'>+	* Makefile.in (install): installæ™‚ã«stripã‚’è¡Œã†</div><div class='add'>+</div><div class='add'>+	* configure.in: installæ™‚ã®stripã®æ¤œå‡º</div><div class='add'>+</div><div class='add'>+	* configure.in: NEXTSTEPå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* version 0.99.1-960730</div><div class='add'>+</div><div class='add'>+Tue Jul 30 16:40:35 1996  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): NeXT dln(mach-o)å¯¾å¿œï¼Žconfigureã¯æœªå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Tue Jul 30 09:46:51 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_system): è¤‡æ•°å¼•æ•°ã‚‚ã¨ã‚Œã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* process.c (f_exec): è¤‡æ•°å¼•æ•°ã‚‚ã¨ã‚Œã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* array.c (ary_append): é…åˆ—(ã¾ãŸã¯Enum)ã®è¦ç´ ã‚’ç ´å£Šçš„ã«è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* array.c (ary_plus): Enumã¯ãã®è¦ç´ ã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* file.c (file_s_open): File.openã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* struct.c (struct_new): FIX2INTã‚’å¿˜ã‚Œã¦ã„ãŸ</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): exists? -&gt; exist?</div><div class='add'>+</div><div class='add'>+	* object.c (obj_is_kind_of): is_kind_of? -&gt; kind_of?, is_a?</div><div class='add'>+</div><div class='add'>+	* object.c (obj_is_instance_of): is_instance_of? -&gt; instance_of?</div><div class='add'>+</div><div class='add'>+Mon Jul 29 16:40:02 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): å¼å±•é–‹ã‚’è¡Œã£ãŸå ´åˆï¼Œcasefoldã®è¨­å®šãŒã§ãã¦</div><div class='add'>+	  ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (true_type): TRUE/FALSEã«typeã‚’å®Ÿè£…ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): 3æ–‡å­—ä»¥å†…ã®octalã«å¯¾å¿œ(\0ã¨ã‹)</div><div class='add'>+</div><div class='add'>+Fri Jul 26 00:31:45 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_reverse_bang): in-placeã§é…åˆ—ã‚’åè»¢ã•ã›ã‚‹</div><div class='add'>+	(ary_sort_bang): in-placeã§sortã™ã‚‹</div><div class='add'>+	(ary_sort): sortã—ãŸé…åˆ—ã‚’è¿”ã™ã‚ˆã†ã«</div><div class='add'>+	(ary_delete_at): æŒ‡å®šã—ãŸä½ç½®ã®è¦ç´ ã‚’å‰Šé™¤ã™ã‚‹</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): stackæ·±ã•ãƒã‚§ãƒƒã‚¯ã‚’æ¯Žå›žã¯è¡Œã‚ãªã„ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* error.c (Warning): å®Ÿè¡Œä¸­ã®warningãŒè¡¨ç¤ºã•ã‚Œã¦ã„ãªã‹ã£ãŸ</div><div class='add'>+</div><div class='add'>+	* eval.c (compile): ä¾‹å¤–ç™ºç”Ÿã‚’åˆ†é›¢ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_eval): å¤‰æ•°rb_in_evalã‚’æ­£ã—ãç®¡ç†ã™ã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_store): æ ¼ç´ã™ã‚‹keyã‚’æ–‡å­—åˆ—ã«å¤‰æ›</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): ç„¡é™å†å¸°ã®ãƒã‚§ãƒƒã‚¯ã‚’å¤§åŸŸè„±å‡ºã‚’è¡Œã†C methodã«ã‚‚</div><div class='add'>+	  å¯¾å¿œã•ã›ãŸï¼Žthreadã®stackæ·±ã•ãƒã‚§ãƒƒã‚¯ãƒ«ãƒ¼ãƒãƒ³ã‚’æµç”¨ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ç¬¬1å¼•æ•°ã®unary -/+ã®åˆ¤å®šãŒé–“é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): unary +ã§æ•°å­—ã‚’ä½™è¨ˆã«èª­ã‚“ã§ã„ãŸ(ex. +5 -&gt; 55)</div><div class='add'>+</div><div class='add'>+Thu Jul 25 12:15:04 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): æ›–æ˜§ã§ãªã„å¼•æ•°ã«å¯¾ã—ã¦è­¦å‘Šã‚’å‡ºã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (iterator_p): å¼•æ•°ã§å‘¼ã‚“ã§ã‚‚æ­£ã—ã„çµæžœã‚’è¿”ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: break/next/redo/retryã®ãƒ¡ã‚½ãƒƒãƒ‰åŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): nestã®ãƒã‚§ãƒƒã‚¯ãƒŸã‚¹</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): äºˆç´„èªžã®ãƒã‚§ãƒƒã‚¯ã‚’å¼·åŒ–</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): unless/untilã®å¾©æ´»</div><div class='add'>+</div><div class='add'>+Tue Jul 23 18:50:10 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Array#empty?), Hash.c (Hash#empty?), ext/dbm/dbm.c (DBM#empty?):</div><div class='add'>+	  ç©ºã®åˆ¤å®šè¿°èªž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_unless): ifã®é€†ã‚’ã™ã‚‹ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿</div><div class='add'>+</div><div class='add'>+	* eval.c (f_until): whileã®é€†ã‚’ã™ã‚‹ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿</div><div class='add'>+</div><div class='add'>+	* parse.y: notã®å„ªå…ˆé †ä½ã‚’and/orã‚ˆã‚Šé«˜ã</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): `!'ã‚’å¼•æ•°æ‹¬å¼§ã‚’çœç•¥ã—ãŸcallã§ã‚‚æœ‰åŠ¹ã«</div><div class='add'>+</div><div class='add'>+Mon Jul 22 10:15:38 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960722</div><div class='add'>+</div><div class='add'>+	* array.c (ary_print_on): OFSã®NILãƒã‚§ãƒƒã‚¯ãŒä¸å®Œå…¨</div><div class='add'>+</div><div class='add'>+	* ruby.c  (load_file): æ¨™æº–å…¥åŠ›ã‹ã‚‰ã®ã‚¹ã‚¯ãƒªãƒ—ãƒˆãŒç©ºã®æ™‚ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -wã§ã¯å¼•æ•°ç„¡ã—ã®æ™‚ã«ã¯æ¨™æº–å…¥åŠ›ã‹ã‚‰ã‚¹ã‚¯ãƒª</div><div class='add'>+	  ãƒ—ãƒˆã‚’ã¨ã‚‹(-vã§ã¯ãŸã‚“ã«çµ‚äº†ã™ã‚‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (ary_compact): nilã®è¦ç´ ã‚’å–ã‚Šé™¤ããƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+</div><div class='add'>+	* array.c (ary_nitems): nilã§ãªã„è¦ç´ ã‚’æ•°ãˆã‚‹ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+</div><div class='add'>+Sun Jul 20 00:51:53 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -w optionã‚’è¿½åŠ </div><div class='add'>+</div><div class='add'>+	* parse.y: {}ãŒé–‰ã˜ã¦ã„ãªã„æ™‚ã«ã¯å±•é–‹ã—ãªã„æ–‡å­—åˆ—ã‚’</div><div class='add'>+</div><div class='add'>+Fri Jul 19 16:16:05 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960719</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: çŸ³å¡šç‰ˆ(pruneã®æ‹¡å¼µä»˜ã)</div><div class='add'>+</div><div class='add'>+	* file.c (test_l): lstatã§èª¿ã¹ãªã„ã¨ã­ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_throw): ç¬¬2å¼•æ•°ã‚’çœç•¥å¯èƒ½ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): {}ã®ãƒã‚¹ãƒˆã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Thu Jul 18 18:25:46 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960718</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): æ–‡å­—åˆ—ä¸­ã®å¼å±•é–‹ã« \" ' ` / ã‚’å«ã‚€äº‹ãŒã§ã</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jul 16 15:55:31 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): æ­£è¦è¡¨ç¾å†…ã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—</div><div class='add'>+	  ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* version 0.99-960716</div><div class='add'>+</div><div class='add'>+Fri Jul 12 10:06:19 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_select): å¼•æ•°ã®close check.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): #!è¡Œã®å¼•æ•°ãƒã‚§ãƒƒã‚¯ã‚’ç¬¬1å¼•æ•°ã«é™å®š(å®Ÿã‚’ã„ã†ã¨</div><div class='add'>+	  DOSæ”¹è¡Œå¯¾ç­–)</div><div class='add'>+</div><div class='add'>+Wed Jul 10 17:18:35 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960710</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_timegm/time_s_timelocal): æ™‚é–“ã‚’ç”Ÿæˆã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+</div><div class='add'>+Mon Jun 17 15:59:20 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960617</div><div class='add'>+</div><div class='add'>+	* parse.y (yyerror): ã‚¨ãƒ©ãƒ¼è¡¨ç¤ºã®ç°¡ç•¥åŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jun 12 14:11:01 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_trap_exit): trap 0ã¯threadã‚’ç”Ÿæˆã›ãšã«å‡¦ç†ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jun  7 10:17:01 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c/hash.c (indexes): é…åˆ—1å¼•æ•°ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ã‚’ç„¡ãã—ãŸï¼Žé…åˆ—ã®</div><div class='add'>+	  å ´åˆã¯`*ary'ã‚’ä½¿ã£ã¦ã‚‚ã‚‰ãŠã†ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_wait_threads): main_threadãŒçµ‚äº†ã™ã‚‹å‰ã«ä»–ã®</div><div class='add'>+	  threadã‚’å¾…ã¤(å¼·åˆ¶çš„ã«ã¯çµ‚äº†ã•ã›ãªã„)ï¼Ž</div><div class='add'>+	  (ruby_run): ä»–ã®threadã‚’å¾…ã£ã¦ã„ã‚‹é–“ã«ã‚·ã‚°ãƒŠãƒ«ãŒæ¥ãŸã‚‰ï¼Œå…¨thread</div><div class='add'>+	  ã‚’å¼·åˆ¶çµ‚äº†ã•ã›ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fail): ãƒ¡ã‚½ãƒƒãƒ‰åã‚’`$!'ã«åŸ‹ã‚è¾¼ã‚€ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): main_threadã®ã‚³ãƒ³ãƒ†ã‚¯ã‚¹ãƒˆãŒã‚»ãƒ¼ãƒ–ã•ã‚Œãª</div><div class='add'>+	  ã„å ´åˆãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* process.c (f_sleep): æ™‚é–“ã‚’æŒ‡å®šã›ãšï¼ŒthreadãŒã²ã¨ã¤ã—ã‹ãªã„çŠ¶æ³</div><div class='add'>+	  ã«ã‚‚å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): createå¾Œï¼Œfnã‚’å‘¼ã³å‡ºã™å‰ã«context switch</div><div class='add'>+	  ãŒèµ·ãã‚‹ã¨é•ã†contextã§fnãŒå®Ÿè¡Œã•ã‚Œã¦ã—ã¾ã†ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jun  3 08:03:17 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_s_def): ãƒ¡ãƒ³ãƒã®æŒ‡å®šã‚’æ–‡å­—åˆ—ï¼Œã‚·ãƒ³ãƒœãƒ«(FIXNUM)</div><div class='add'>+	  åŒæ–¹ã§å¯èƒ½ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Init_etc): æ§‹é€ ä½“ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’GCã‹ã‚‰ä¿è­·ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): nil/FALSEã‚’å¼•æ•°ã¨ã—ã¦å—ã‘ä»˜ã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu May 30 16:19:08 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_select): EINTRã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Wed May 29 11:04:51 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_catch): catch/throwã‚’å®Ÿè£…ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue May 28 13:30:52 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960528</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_cleanup): main threadãŒçµ‚äº†ã™ã‚‹ã¨ä»–ã®threadã‚‚çµ‚äº†</div><div class='add'>+	  ã™ã‚‹ã“ã¨ã®æ˜Žç¢ºåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): SIGINTã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®è¨­å®šãƒŸã‚¹(æœ¬å½“ã«SIG_DFLã§ã¯</div><div class='add'>+	  ã¾ãšã‹ã£ãŸ)ï¼Žrubyã§ã¯ã¡ã‚ƒã‚“ã¨ãƒãƒ³ãƒ‰ãƒ«ã—ãªã„ã¨ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_interrupt): SIGINTã¯main_threadã«ä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã‚‹</div><div class='add'>+	  ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon May 27 15:13:31 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_status): threadã®çŠ¶æ…‹ã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ï¼Žthreadã®çµ‚äº†</div><div class='add'>+	  ã‚’å¾…ãŸãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_value): ä¸€ç¨®ã®promiseã‚’å®Ÿè£…ã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_join): å¾…ã£ã¦ã„ã‚‹threadãŒä¾‹å¤–ã‚’èµ·ã“ã—ãŸæ™‚ã«ã¯ï¼Œ</div><div class='add'>+	  joinãŒãã®ä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): threadã§ã®ä¾‹å¤–ã‚’propagateã—ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri May 24 10:47:53 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (Init_Enumerable): `size' as alias to the `length'</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_save_context): `$@', `$!'ã‚’ã‚¹ãƒ¬ãƒƒãƒ‰æ¯Žã«ã‚»ãƒ¼ãƒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (superclass): ã‚¨ãƒ©ãƒ¼è¡¨ç¤ºã‚’ã‚ˆã‚Šè¦ªåˆ‡ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu May 23 10:38:41 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.99-960523</div><div class='add'>+</div><div class='add'>+	* eval.c (superclass): ã‚¨ãƒ©ãƒ¼æ™‚ã«ã‚¹ãƒ¼ãƒ‘ãƒ¼ã‚¯ãƒ©ã‚¹åã‚’(åˆ†ã‹ã‚Œã°)è¡¨ç¤º</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed May 22 19:48:42 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (superclass): ã‚¹ãƒ¼ãƒ‘ãƒ¼ã‚¯ãƒ©ã‚¹ã®æŒ‡å®šå­ã‚’`:'ã‹ã‚‰`&lt;'ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue May 21 09:27:59 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: threadã‚’ã‚µãƒãƒ¼ãƒˆã™ã‚‹ã‚¯ãƒ©ã‚¹(Mutex, Queue)ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon May 20 09:39:49 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): æµ®å‹•å°æ•°ç‚¹æ•°ã‚‚æ‰±ãˆã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+	(time_minus): Time - TimeãŒæµ®å‹•å°æ•°ç‚¹æ•°ã‚’è¿”ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri May 17 15:40:10 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): Threadå¯¾å¿œæ™‚ã«execã®ç›´å‰ã«</div><div class='add'>+	  ITIMER_VIRTUALã‚’ãƒªã‚»ãƒƒãƒˆã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue May 14 02:12:44 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandle): SIGINTã«å¯¾ã—ã¦ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã‚‹</div><div class='add'>+	  ã®ã‚’ã‚„ã‚ï¼Œstatus 130ã§exitã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): Threadã®ãƒã‚°ã¯ã»ã¨ã‚“ã©ã¨ã‚ŒãŸã‚ˆã†ã ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri May 10 11:21:08 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): ãƒ¦ãƒ¼ã‚¶ãƒ¬ãƒ™ãƒ«Threadæ©Ÿèƒ½ï¼ŽåŠ¹çŽ‡ã¯ã¨ã‚‚ã‹ã</div><div class='add'>+	  ç§»æ¤æ€§ã¯ã‚ã‚‹ï¼Žä»Šå¾Œï¼Œthreadé–“ã®é€šä¿¡æ©Ÿèƒ½ã‚’å®Ÿè£…ã™ã‚‹äºˆå®šï¼Ž</div><div class='add'>+</div><div class='add'>+Thu May  2 21:22:31 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): struct timevalã‚’ç›´æŽ¥è¿”ã™ã‚ˆã†ã«(staticå¤‰æ•°</div><div class='add'>+	  ã‚’ä½¿ã‚ãªã„)ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed May  1 17:27:32 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_sleep): æ•´æ•°ä»¥å¤–ã®timeã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Apr 25 08:19:15 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_dirname): ãƒ•ã‚¡ã‚¤ãƒ«åãŒ"/"ã‚’å«ã¾ãªã„æ™‚ï¼Œ"."ã‚’è¿”ã™</div><div class='add'>+	  ã‚ˆã†ã«(GNU dirnameã®ä»•æ§˜)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_basename): ã¾ã nilã¨0ã‚’æ··åŒã—ã¦ã„ã‚‹ã‚½ãƒ¼ã‚¹ãŒæ®‹ã£ã¦</div><div class='add'>+	  ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (exprs): ã‚¨ãƒ©ãƒ¼ãƒªã‚«ãƒãƒªã‚’è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Apr 24 15:51:05 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_chop_bang): CRLFã®å ´åˆ2 bytesã‚’chop!ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_svr_s_open): ã¾ã nilã¨0ã‚’æ··åŒã—ã¦ã„ã‚‹ã‚½ãƒ¼</div><div class='add'>+	  ã‚¹ãŒæ®‹ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Apr 23 18:14:25 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): "A/a"ã®ãƒã‚°ï¼Žä½™è¨ˆãªpaddingãŒå…¥ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Apr 18 13:02:11 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ä¾å­˜éƒ¨ã‚’åˆ¥ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yyerror): ã‚¨ãƒ©ãƒ¼ç™ºç”Ÿæ™‚ã«ã‚¨ãƒ©ãƒ¼è¡Œã¨ãã®ä½ç½®ã‚’è¡¨ç¤ºã™ã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Apr 17 14:22:42 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: SAFE_SIGHANDLEã‚’ç„¡ãã—ï¼Œå±é™ºãªé¸æŠžã¯ã§ããªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetc): æ–°æ©Ÿèƒ½ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®èª­ã¿è¾¼ã¿æ–¹å¼ãŒå¤‰ã‚ã£ãŸã®ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (compile_file): ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®å…¥åŠ›ã‚’ä¸€åº¦å…¨éƒ¨èª­ã¿è¾¼ã‚€ã®ã‚’</div><div class='add'>+	  æ­¢ã‚ã¦ï¼Œgetsã‚’ä½¿ã†ã“ã¨ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Apr 10 17:40:11 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.98</div><div class='add'>+</div><div class='add'>+Tue Apr  9 09:54:30 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (iter_block): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯ã®æŒ‡å®šã‚’ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—</div><div class='add'>+	  ã«é™å®šï¼Žæ–‡æ³•ã®æ˜Žç¢ºåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): æ¡ä»¶å¼ã®æ­£è¦è¡¨ç¾ã®æ¯”è¼ƒã‚’inlineåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): defined? ã® å®šç¾©æƒ…å ±(ç¨®åˆ¥)ã‚’æ–‡å­—åˆ—ã§è¿”ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+	* node.h: NODE_BEGIN -&gt; NODE_RESCUE, NODE_ENSUREã«åˆ†é›¢ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): option -n/-pã®ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ãƒ«ãƒ¼ãƒ—ã®inlineå±•é–‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): æ¡ä»¶å¼ä¸­ã®æ–‡å­—åˆ—ã¯æ¯”è¼ƒã®å¯¾è±¡ã¨ã—ãªã„</div><div class='add'>+</div><div class='add'>+Wed Mar 27 12:33:54 1996  Tairo Nomura  &lt;tairo@hucom.tp.titech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: NeXTå¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Wed Mar 27 10:02:44 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: äºˆç´„èªžã®å¤‰æ›´ continue -&gt; next</div><div class='add'>+</div><div class='add'>+Mon Mar 25 07:34:37 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): o(once)ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Mar 22 14:25:35 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.97d</div><div class='add'>+</div><div class='add'>+	* eval.c (dyna_var_defined): å‹•çš„ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®å®šç¾©ãƒã‚§ãƒƒã‚¯ç”¨ãƒ«ãƒ¼</div><div class='add'>+	  ãƒãƒ³ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): eval()ã®ä¸­ã§ã®å‹•çš„ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°(æ—¢ã«å€¤ã‚’æŒã£</div><div class='add'>+	  ã¦ã„ã‚‹ã‚‚ã®)ã®æ¤œå‡ºã«å¤±æ•—ã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Mar 19 10:46:47 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.97c</div><div class='add'>+</div><div class='add'>+	* re.c (reg_s_new): compileæ™‚ã«segmentation faultï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): ã„ã¤ã‚‚evalã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Mar 13 11:00:42 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): æ–‡å­—åˆ—ä¸­ã®å¼å±•é–‹ã®ä¸å‚™ã‚’ç„¡ãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: ä¸‹æ‰‹ãªã‚¨ãƒ©ãƒ¼ãƒªã‚«ãƒãƒªã‚’å¤–ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Mar 12 12:30:20 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rescue): é–“é•ã£ã¦ensureã§ã‚‚ä¾‹å¤–ã‚’æ•æ‰ã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Mar  6 12:11:03 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (var_extend): å¤‰æ•°å±•é–‹"#{}"ã§ï¼Œä»»æ„ã®å¼ã‚’æ›¸ã‘ã‚‹ã‚ˆã†ã«ã—</div><div class='add'>+	  ãŸï¼Œã“ã‚Œã§ã€Œå¤‰æ•°ã€å±•é–‹ã§ã¯ç„¡ããªã£ã¡ã‚ƒã£ãŸãªã‚ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c (init_syntax_once): `_'ã‚’wordã«è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): `\w',`\W'ã®åˆ¤å®šã‚’syntax tableã‚’ä½¿</div><div class='add'>+	  ã†ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 27 10:15:32 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (obj_inspect): è¡¨ç¤ºã™ã‚‹ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ãŒç„¡ã„æ™‚ã«ã¯ï¼Œ</div><div class='add'>+	  to_sã‚’ä½¿ã†ï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure.in: dlnã®æ¤œå‡ºã‚’è‡ªå‹•çš„ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Feb 26 19:55:33 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (readin): read(2)ã§ä¸€åº¦ã«ãƒ•ã‚¡ã‚¤ãƒ«ãŒèª­ã¿è¾¼ã‚ãªã„å ´åˆã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Feb 24 14:47:18 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.97b</div><div class='add'>+</div><div class='add'>+Fri Feb 23 11:26:02 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module): Cè¨€èªžã§å®šç¾©ã•ã‚ŒãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®PATHã®</div><div class='add'>+	  è¨­å®šå¿˜ã‚Œï¼Žæ–‡å­—åˆ—åŒ–ã§core dumpï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_include): æˆ»ã‚Šå€¤ã‚’nilã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* version 0.97a</div><div class='add'>+</div><div class='add'>+Thu Feb 22 21:03:42 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_times): ã€Œé…åˆ—*æ–‡å­—åˆ—ã€ãŒjoinã¨åŒã˜åƒãã‚’ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb 21 11:18:09 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in : fileCountã‚’cacheï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure.in : Linuxã§ELFç’°å¢ƒã‚’è‡ªå‹•çš„ã«æ¤œå‡ºã§ãã‚‹ã‚ˆã†ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 20 11:18:09 1996  Mitsuhide Satou  &lt;mit-sato@aries.bekkoame.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* FreeBSD dynamic linkå¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Feb 16 08:50:01 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (obj_inspect): ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã‚’æŒãŸãªã„ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚‚</div><div class='add'>+	  æ­£ã—ãè¡¨ç¤ºã•ã‚Œã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb 14 16:56:44 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): æ¡ä»¶å¼ã®`2..2'ãªã©å·¦è¾ºæˆç«‹ç›´å¾Œã«å³è¾ºãŒæˆç«‹ã™ã‚‹</div><div class='add'>+	  ãƒ‘ã‚¿ãƒ¼ãƒ³ã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 13 18:22:22 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.97</div><div class='add'>+</div><div class='add'>+Fri Feb  9 21:32:55 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tkscrollbox.rb: ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã§tclã®è¨­å®šã‚’è¡Œã„ï¼Œruby&lt;-&gt;wishã®ä¸</div><div class='add'>+	  è¦ãªé€šä¿¡ã‚’ç„¡ãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb  7 10:26:52 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_aref): indexã‚’unsigned intã§ã¨ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_aref): ç¯„å›²å¤–ã®indexã«å¯¾ã—ã¦nilã‚’è¿”ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (special_local_set): `$_'ãŒå®£è¨€ç„¡ã—ã«ä½¿ã‚ã‚ŒãŸå ´åˆã«å¯¾å¿œï¼Ž</div><div class='add'>+	  é–¢æ•°ã‚’variable.cã‹ã‚‰ç§»å‹•ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): ç½®æ›é–‹å§‹ä½ç½®ãŒé–“é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb  6 16:17:31 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): ã‚³ãƒ¡ãƒ³ãƒˆã®èª­ã¿é£›ã°ã—ã®</div><div class='add'>+	  ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Feb  2 18:35:28 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (lastline_get): `$_'ã‚’`$~'ã¨åŒã˜ã‚ˆã†ã«SCOPEãƒ­ãƒ¼ã‚«ãƒ«ãª</div><div class='add'>+	  å¤‰æ•°ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Feb  1 14:14:07 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: statã®cacheã‚’ã‚„ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jan 31 07:13:08 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_s_new): procã®ä¸­ã§yieldã‚’å‘¼ã°ã‚ŒãŸæ™‚ã«core dumpã—ã¦</div><div class='add'>+	  ã„ãŸï¼Žã¨ã‚Šã‚ãˆãšä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class2path): singleton classã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Init_etc): struct_defineã®ã‚¿ãƒ¼ãƒŸãƒãƒ¼ã‚¿ãŒnilã ã£ãŸ</div><div class='add'>+	  (0ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c: TRUE/FALSEã‚’åãå‡ºã›ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_get_method_body): ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®aliaså¯¾å¿œï¼Œã„ã¾ã¾ã§ã¯</div><div class='add'>+	  aliasã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã«å…¥ã£ã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 30 09:55:13 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_BLOCK - tail recursive(ã¨ã„ã†ã»ã©ã§ã‚‚ãªã„</div><div class='add'>+	  ãŒ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_pipe): pipe(2)ã‚’å®Ÿè£…ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): Qselfã‚’ãªãã—ãŸï¼Žthreadå¯¾å¿œã¸ã®ç¬¬ä¸€æ­©ï¼Žå…ˆã¯é </div><div class='add'>+	  ã„ãŒâ€¦ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): procã®ä¸­ã§ã®returnã¯procã®çµ‚äº†ã‚’æ„å‘³ã™ã‚‹ã‚ˆã†</div><div class='add'>+	  ã«ï¼ŽãŸã ã—ï¼Œprocã‹ã‚‰ã®yieldã®ä¸­ã§ã®returnã¯ä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jan 24 11:33:48 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.96a</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_each): `$_'ã®å€¤ã‚’å¤‰æ›´ã™ã‚‹ã®ã‚’ã‚„ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (f_readlines): nilã¨FALSEã®åˆ†é›¢ã®ã‚ãŠã‚Šã§ç„¡é™ãƒ«ãƒ¼ãƒ—ã«è½ã¡ã¦</div><div class='add'>+	  ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_options): $0ã®è¨­å®šãƒŸã‚¹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 23 15:28:21 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ``ã¯æ–‡å­—åˆ—ã‚’å¼•æ•°ã¨ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰(`)å‘¼ã³å‡ºã—ã®ã‚·</div><div class='add'>+	  ãƒ³ã‚¿ãƒƒã‚¯ã‚¹ã‚·ãƒ¥ã‚¬ãƒ¼ã§ã‚ã‚‹ã¨ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c (addpath): `-I'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒã€Œå‰ã«ã€è¿½åŠ ã•ã‚Œ</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jan 19 11:23:12 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (load_1): N_INDRå¯¾å¿œ(å‡ºæ¥ãŸã‚ˆã†ãªæ°—ãŒã™ã‚‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jan 18 18:14:20 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.texi: FALSEã¨nilã®åˆ†é›¢ã‚’åæ˜ ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 16 17:39:23 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.96 - ã¨ã‚Šã‚ãˆãšnilã¨FALSEã‚’åŒºåˆ¥ã™ã‚‹ç‰ˆ</div><div class='add'>+</div><div class='add'>+Wed Jan 10 15:31:48 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match): ãƒžãƒƒãƒã—ãªã‹ã£ãŸæ™‚ã®æˆ»ã‚Šå€¤ã¯FALSEï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (rb_equal): `0 == nil'ãŒTRUEã«ãªã‚‹ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan  9 00:44:58 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* nilã¨FALSEãŒåˆ†é›¢å¯èƒ½ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* nilã¨FALSEã¨0ã®åŒºåˆ¥ã‚’åŽ³å¯†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_new): å¼•æ•°ã‚’0ã§çµ‚ã‚‹å¿…è¦ãŒç„¡ããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (inspect_i): ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ãƒã‚§ãƒƒã‚¯ã®ãƒã‚°(Fixnumã§core</div><div class='add'>+	  dumpã—ã¦ã„ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* range.c (range_to_s): Rangeã®è¡¨ç¤ºã‚’æ”¹å–„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c (true_inspect): TRUEã®è¡¨ç¤ºã‚’`TRUE'ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jan  8 15:02:33 1996  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): divide by zero errorãŒç™ºç”Ÿã—ãŸ(ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒ­ãƒ¼</div><div class='add'>+	  æ¤œå‡ºã®ãƒã‚°)</div><div class='add'>+</div><div class='add'>+	* texinfo.texã‚’ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã«å«ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Sun Dec 31 00:08:49 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): `::'ã§ã¯ï¼Œãã®ã‚¯ãƒ©ã‚¹ã§å®šç¾©ã•ã‚ŒãŸå®šæ•°ã‚’å‚ç…§ã™ã‚‹</div><div class='add'>+	  ã‚ˆã†ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): eachã‚’each_lineã«æˆ»ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec 28 12:31:55 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): caseã®æ¼”ç®—å­ã‚’`=~'ã‹ã‚‰`==='ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): ã‚¯ãƒ©ã‚¹å®šæ•°ã®å†å®šç¾©ã‚’è¨±ã™(åŒã˜ã‚¯ãƒ©ã‚¹ã§</div><div class='add'>+	  ã¯ä¸å¯)ï¼Žè­¦å‘Šã¯å‡ºã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 27 13:27:52 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.95c</div><div class='add'>+</div><div class='add'>+	* ext/tkutil/tkutil.c: wishãŒã‚ã£ã¦ã‚‚ãªãã¦ã‚‚ä¸€å¿œã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã ã‘ã¯</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: ç’°å¢ƒå¤‰æ•°PATHã‹ã‚‰{wish|wish4.0}ã‚’æŽ¢ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Dec 26 01:03:42 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): æ­£è¦è¡¨ç¾ã®æ¤œå‡ºå¼·åŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): ä¹—ç®—ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒ­ãƒ¼æ¤œå‡ºã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ./install-shã‚’ä½¿ã†å ´åˆã®PATHã‚’èª¿æ•´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* Makefile.in (install): lib/*.rbã‚’ä¸€ã¤ãšã¤ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_each_line): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã®æˆ»ã‚Šå€¤ã‚’nilã§çµ±ä¸€ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec 22 10:34:32 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.95b</div><div class='add'>+</div><div class='add'>+	* variable.c (f_untrace_var): ç¬¬2å¼•æ•°ã‚’æŒ‡å®šã™ã‚‹ã¨ç‰¹å®šã®traceã‚’å‰Šé™¤</div><div class='add'>+	  ã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (f_trace_var): ç¬¬2å¼•æ•°ãŒnilã®æ™‚ï¼Œtraceã‚’å‰Šé™¤ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb (file_readable/file_writable): ç¬¬2å¼•æ•°ã‚’nilã«ã™ã‚‹ã“ã¨</div><div class='add'>+	  ã«ã‚ˆã‚‹event handlerã®å‰Šé™¤ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (variable): ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«`__FILE__'ã¨`__LINE__'ãŒæ®‹ã£ã¦</div><div class='add'>+	  ã„ãŸï¼Ž`caller(0)'ã§ä»£ç”¨ã—ãŸã¯ãšã ã£ãŸã®ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_eval): $!ã®ãƒªã‚»ãƒƒãƒˆï¼Ž</div><div class='add'>+</div><div class='add'>+	* error.c (err_sprintf): å‹æ‰‹ã«"\n"ã‚’ä»˜åŠ ã™ã‚‹ã®ã‚’æ­¢ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arglist): å¼•æ•°ãƒªã‚¹ãƒˆç›´å¾Œã®if/whileã®èª­ã¿é–“é•ã„ï¼Ž</div><div class='add'>+	  lex_stateã®å€¤ãŒè¨­å®šã•ã‚Œã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec 21 00:56:57 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.95a - ^^;;;</div><div class='add'>+</div><div class='add'>+	* lib/tkscrollbox.rb: ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã«å…¥ã£ã¦ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure.in: FILE structureã®ãƒã‚§ãƒƒã‚¯ã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* Makefile.in (clean): extä»¥ä¸‹ã‚’installã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: Solarisã«ãŠã‘ã‚‹-lnlsã®ãƒã‚§ãƒƒã‚¯ï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (beg_len): ãƒã‚°ãŒã‚ã£ãŸâ€¦ï¼Žæ‚²ã—ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* version 0.95 - fj.sourcesã«</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): rescueã®ãƒ­ã‚¸ãƒƒã‚¯ã‚’rb_rescue()ã«ä¸€å…ƒåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 20 19:30:58 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: ä¸è¦ãªã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã®å›žé¿(ã‚ˆã‚Šå®Œå…¨ã«)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* class.c (singleton_class_new): `single'-&gt;`singleton'</div><div class='add'>+</div><div class='add'>+Tue Dec 19 07:14:33 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (closed?): IOãŒcloseã•ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’çŸ¥ã‚‹è¿°èªžï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã®å¼•æ•°ã®lex_stateãŒä¸é©åˆ‡ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: tcl-&gt;rubyã®å¤‰æ›é–¢æ•°ã®ç”¨æ„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): installã®2é‡ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã®å›žé¿ï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c (range_beg_len): rangeæŒ‡å®šã®ä¸é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ã‚’è¨‚æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_aref): rangeæŒ‡å®šã®ãƒã‚°ã‚’å‰Šé™¤ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb (tk_split_list): Tclã®ãƒªã‚¹ãƒˆã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Dec 18 09:58:12 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.94</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): HPå¯¾å¿œ(æœªç¢ºèª)</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): Blockã‚’Procã«æ”¹åï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Dec 16 13:46:14 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): retryã§ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã®å†å®Ÿè¡ŒãŒã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec 15 17:14:30 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: proc:lambdaã®è¦ªã—ã¿ã‚„ã™ã„åˆ¥å</div><div class='add'>+</div><div class='add'>+Thu Dec 14 17:21:55 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (dyna_var_asgn): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯å†…ã§æœ€åˆã«åˆæœŸåŒ–ã•ã‚ŒãŸ</div><div class='add'>+	  ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®æœ‰åŠ¹ç¯„å›²ã‚’ãã®ãƒ–ãƒ­ãƒƒã‚¯å†…ã«é™å®šï¼Žã“ã‚Œã§lambdaã¨å‘¼ã¹</div><div class='add'>+	  ãªã„ã“ã¨ã¯ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 13 02:30:58 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: autoloadã®ãƒžãƒ¼ã‚¯ãƒŸã‚¹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: wishã‹ã‚‰ã®è¤‡æ•°è¡Œã®æˆ»ã‚Šå€¤ã«å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* lib/tkcomposite.rb: è¤‡åˆwidget</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class2path): ICLASSã«å¯¾å¿œã—ã¦ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): exit(0)ã®ãƒã‚°</div><div class='add'>+</div><div class='add'>+Sat Dec  9 01:21:24 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (dumps|load): æ–‡å­—åˆ—ã«å¯¾ã™ã‚‹å…¥å‡ºåŠ›ã‚’å¯èƒ½ã«</div><div class='add'>+	  ã—ãŸ(ãŸã ã—å®Ÿã¯ãƒ•ã‚¡ã‚¤ãƒ«çµŒç”±ãªã®ã )ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec  8 18:29:11 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c: ã‚·ãƒ³ãƒœãƒ«ã‚’ä¸€åº¦ã ã‘åˆæœŸåŒ–ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec  7 07:58:50 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ç¬¬1å¼•æ•°ã®æ­£è¦è¡¨ç¾ã®èªè­˜ã«ã‚¨ãƒ©ãƒ¼ãŒã‚ã£ãŸï¼ŽåŒæ™‚ã«</div><div class='add'>+	  çŠ¶æ…‹æ•°ã‚’æ¸›ã‚‰ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): ç½®æ›ã§ã‚¹ã‚­ãƒƒãƒ—å¹…ãŒå¤§ãã™ãŽãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec  6 15:14:23 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_method): sub/gsub(!ãªã—)ã¯ç½®æ›ãŒè¡Œãªã‚ã‚Œãªã‹ã£</div><div class='add'>+	  ãŸæ™‚ï¼Œç½®æ›å‰ã®æ–‡å­—åˆ—ã‚’è¿”ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Dec  5 00:55:15 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): æ‹¬å¼§ã‚’çœç•¥ã—ãŸæ™‚ã®å¼•æ•°å±•é–‹ã®`*'ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): EXITãƒãƒ³ãƒ‰ãƒ©å†…ã§ã®ä¾‹å¤–ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_cmp): Bignumã¨Fixnumã®æ¯”è¼ƒã§è½ã¡ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Dec  4 14:21:18 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_op): ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã®å®šæ•°å¼ã®å±•é–‹ã‚’ã‚„ã‚ãŸï¼ŽåŠ´å¤šãã—</div><div class='add'>+	  ã¦ç›Šå°‘ãªã„ã¨åˆ¤æ–­ã—ãŸã®ã§ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Nov 30 01:35:15 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: {Radio,Check}Buttonã®variableã®å®Ÿè£…ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): Block.callãŒãƒã‚¹ãƒˆã—ãŸæ™‚ã®ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (f_select): å¸¸ã«é…åˆ—3ã¤ã‚’ãµãã‚€é…åˆ—ã‚’è¿”ã™ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: fileeventã‚’rubyå´ã§å®Ÿè£…ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Nov 29 17:53:23 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_get): selfã‚’å¸¸ã«æŒ‡å®šã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Nov 14 00:07:29 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: Tk4.0å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+Mon Nov 13 16:23:32 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.93</div><div class='add'>+</div><div class='add'>+Thu Nov  9 23:26:01 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®Mixinã®ãƒžãƒ¼ã‚¯å¿˜ã‚Œï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arglist): ãƒ¡ã‚½ãƒƒãƒ‰å®šç¾©ã®å¼•æ•°ã‚’æ‹¬å¼§ã§æ‹¬ã‚‰ãªãã¦ã‚‚è‰¯ã„</div><div class='add'>+	  ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Nov  8 00:17:51 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): æœªåˆæœŸåŒ–ã®ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): pendig signalã®ãƒã‚§ãƒƒã‚¯ã‚’evalå®Ÿè¡Œå¾Œã«è¡Œã†ã‚ˆã†</div><div class='add'>+	  ã«ã—ãŸï¼Žã§ãªã„ã¨ã‚·ã‚°ãƒŠãƒ«ã®ç™ºç”Ÿã¨æ¤œå‡ºãŒé ãé›¢ã‚Œã¦ã—ã¾ã†äº‹ãŒã‚ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: classæ–‡ã®superclasséƒ¨ã‚’å®šæ•°ã‹ã‚‰å¼ã«æ‹¡å¼µã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: Tkã®ã»ã¼å…¨ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚¯ãƒ©ã‚¹ã«å¯¾å¿œï¼Žã‚­ãƒ£ãƒ³ãƒã‚¹ã¨ãƒ†ã‚­ã‚¹</div><div class='add'>+	  ãƒˆä¸Šã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒæ®‹ã£ã¦ã„ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Nov  7 08:18:37 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): ãƒ–ãƒ­ãƒƒã‚¯ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Nov  6 16:44:00 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_caller): å‘¼å‡ºå…ƒã®æƒ…å ±ã‚’å¾—ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/tkutil/tkutil.c: wishã®stderrå‡ºåŠ›ã‚’ç›£è¦–ã™ã‚‹ã“ã¨ã§ï¼Œã‚¨ãƒ©ãƒ¼å‡¦</div><div class='add'>+	  ç†ã‚’è¡Œã†ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/tkutil/tkutil.c: wishã¨ã®é€šä¿¡éƒ¨ã‚’Cã§è¨˜è¿°ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Nov  4 01:12:59 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã®è¨ˆç®—ã‚’</div><div class='add'>+	  ã‚‚ã†å°‘ã—ã‚¹ãƒžãƒ¼ãƒˆã«ã—ãŸ(æ­£è¦è¡¨ç¾ã®ãƒã‚§ãƒƒã‚¯ï¼Œç¶™ç¶šè¡Œã®ãƒã‚§ãƒƒã‚¯)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): ç„¡é™å†å¸°ã‚’é¿ã‘ã‚‹ãŸã‚ï¼Œé–¢æ•°ã®ãƒã‚¹ãƒˆãƒ¬ãƒ™ãƒ«ã®åˆ¶é™</div><div class='add'>+	  ã‚’è¡Œãªã†ï¼Ž</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: Tkã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ï¼Žã¾ã ä¸å®Œå…¨ã ãŒï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): ç©ºã®Blockã®ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): è¡Œæœ«ã®æ¼”ç®—å­ã«ã‚ˆã‚‹</div><div class='add'>+	  è¡Œç¶™ç¶šã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Nov  3 12:56:21 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): æœ¬ä½“ãŒç©ºã®é–¢æ•°ã®å®Ÿè¡Œã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (var_extend): æ–‡å­—åˆ—ã®æœ«å°¾ã®å¤‰æ•°å±•é–‹ã®ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_set): traceã®è©•ä¾¡æ™‚ã«ã«å¤‰æ•°å€¤ã‚’ä¸Žãˆã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (f_require): ruby scriptã®requireã«bugï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®includeå¯¾ç­–ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Oct 19 13:56:06 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): HPå¯¾å¿œã§ã®typo.</div><div class='add'>+</div><div class='add'>+Wed Oct 18 17:39:39 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.92</div><div class='add'>+</div><div class='add'>+	* object.c (krn_type): ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®å‹•çš„ãªåž‹ã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Oct 17 00:48:18 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -X ã‚ªãƒ—ã‚·ãƒ§ãƒ³ï¼Žchdirã ã‘ã‚’è¡Œã†ï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): æ¼¢å­—ã‚³ãƒ¼ãƒ‰ã‚’é€”ä¸­ã§å¤‰æ›´ã§ãã‚‹ã‚ˆã†ã«ï¼Žã‚³ãƒ³ãƒ‘ã‚¤</div><div class='add'>+	  ãƒ«æ™‚ã®ã‚³ãƒ¼ãƒ‰ãŒå¤‰æ›´ã•ã‚ŒãŸæ™‚ã«ã¯ãƒžãƒƒãƒã®ç›´å‰ã«æ­£è¦è¡¨ç¾ã®å†ã‚³ãƒ³ãƒ‘ã‚¤</div><div class='add'>+	  ãƒ«ã‚’è¡Œã†ï¼Žå®šæ•°KCODEã‹ã‚‰å¤‰æ•°$KCODEã¸ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: ()ã®ãªã‹ã«compexprã‚’è¨±ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã‚’ç›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Oct 13 13:19:19 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): æ–‡å­—åˆ—ç½®æ›ã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (str_strip_bang): æ–‡å­—åˆ—ã®å¾Œã‚ã®é•·ã•ã®èª¿æ•´ãŒè¡Œã‚ã‚Œã¦ã„</div><div class='add'>+	  ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): $&amp;, $1...ã¯ãƒ­ãƒ¼ã‚«ãƒ«ã«æŸç¸›ã™ã‚‹ã‚ˆã†ã«ãªã£ãŸï¼Žå‘¼</div><div class='add'>+	  ã³å‡ºã—ãŸãƒ¡ã‚½ãƒƒãƒ‰ã§ã®ãƒžãƒƒãƒã¯ç¾ã‚¹ã‚³ãƒ¼ãƒ—ã®$&amp;ãªã©ã®å€¤ã«å½±éŸ¿ã—ãªã„ï¼Ž</div><div class='add'>+	  ãƒžãƒƒãƒã®æƒ…å ±ã‚’ã‚¹ã‚³ãƒ¼ãƒ—å¤–ã§å¾—ãŸã„ã¨ãã«ã¯$~ã‚’ä½¿ã£ã¦æŸç¸›æƒ…å ±ã‚’æŒã¡</div><div class='add'>+	  å‡ºã™å¿…è¦ãŒã‚ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Oct 12 00:33:33 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): String:split, String:indexã§ã¯$&amp;, $1...ãŒå¤‰åŒ–</div><div class='add'>+	  ã—ãªã„ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (rb_str_setter): setterã®ä»•æ§˜ãŒå¤‰æ›´ã«ãªã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (f_trace_var): ç¬¬2å¼•æ•°ã‚’çœç•¥ã—ã¦ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã¹</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Oct 11 11:50:59 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.91</div><div class='add'>+</div><div class='add'>+	* variable.c (var_setter): å¼•æ•°ãŒé–“é•ã£ã¦ã„ãŸï¼Žè‡´å‘½çš„ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): $stderrã®å€¤ãŒå¤‰æ›´ã•ã‚Œã¦ã„ã‚‹æ™‚ã«ã¯ãã¡ã‚‰ã‚’</div><div class='add'>+	  å­ãƒ—ãƒ­ã‚»ã‚¹ã®stderrã«è¨­å®šã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Oct  9 13:06:33 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (mod_to_s): ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯`::'ã‚’ä½¿ã£ãŸè¡¨ç¾</div><div class='add'>+	  ã§è¡¨ç¤ºã•ã‚Œã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_set): ä»£å…¥ã«ã‚ˆã‚‹ãƒ«ãƒ¼ãƒ—ãŒç™ºç”Ÿã—ãªã„ã‚ˆã†ã«ï¼Œ</div><div class='add'>+	  traceå†…ã§ã®ä»£å…¥ã§ã¯traceã‚’è©•ä¾¡ã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_equal): structã®equalåˆ¤å®šã«ã‚¯ãƒ©ã‚¹ã®ä¸€è‡´ã‚’å«ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Oct  7 00:18:32 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): defined?ã®æ©Ÿèƒ½ã‚’æ‹¡å¼µ(yieldã®ãƒã‚§ãƒƒã‚¯ï¼Œsuperã®</div><div class='add'>+	  å­˜åœ¨ãªã©)ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Oct  6 12:06:47 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.90</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): è¦ç´ ã‚’å‰Šé™¤ã—ãŸæ™‚ã«è¦ç´ æ•°ãŒå¤‰åŒ–ã—ã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_values): ãƒã‚°ä¿®æ­£ï¼Žkeysã‚’è¿”ã—ã¦ã„ãŸâ€¦ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (call_op): defined? ã®å¼•æ•°ã§ã¯å®šæ•°ã®ç•³ã¿è¾¼ã¿ã‚’è¡Œã‚ãªã„</div><div class='add'>+	  (ãƒã‚§ãƒƒã‚¯ã™ã‚‹å‰ã«ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦ã¯å›°ã‚‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ã‚¹ã‚³ãƒ¼ãƒ—ç”Ÿæˆã®ä¸€éƒ¨è¦‹ç›´ã—ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Oct  5 00:29:43 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* é–¢æ•°ã¨ã‚¯ãƒ©ã‚¹ã®å‘½åè¦å‰‡ã‚’å¤‰æ›´ã—ãŸï¼Žé–¢æ•°åï¼Œå¤‰æ•°åã®å…¨é¢æ›¸ãæ›ãˆï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c (looks_pointerp): ãƒ’ãƒ¼ãƒ—ãƒã‚§ãƒƒã‚¯ã®é«˜é€ŸåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (Fstruct_aset): æ§‹é€ ä½“ã«å¯¾ã™ã‚‹`[]='ï¼Ž</div><div class='add'>+	(struct_set): æ§‹é€ ä½“ãƒ¡ãƒ³ãƒã«å¯¾ã™ã‚‹ä»£å…¥ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Oct  4 09:54:07 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.89</div><div class='add'>+</div><div class='add'>+	* eval.c (Frequire): ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‰ã®ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’åŽ³ã—ãï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c: structã®æ§‹é€ ã‚’å®Œå…¨ã«æ›¸ãæ›ãˆãŸï¼Žä»¥å‰ã¯é †åºä»˜ãã®</div><div class='add'>+	  id-&gt;valueã®é€£æƒ³é…åˆ—ã§ã‚ã£ãŸãŒï¼Œä»Šåº¦ã¯æ§‹é€ ä½“æ¯Žã«æ–°ã—ã„ã‚¯ãƒ©ã‚¹ã‚’ç”Ÿ</div><div class='add'>+	  æˆã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: `::'ã®æ„å‘³ã‚’Assocã®ç”Ÿæˆã‹ã‚‰ã‚¯ãƒ©ã‚¹(ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«)å†…ã®å®šæ•°ã‚¢</div><div class='add'>+	  ã‚¯ã‚»ã‚¹ã¸å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* assoc.c: ãªãã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Oct  3 13:31:08 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (Ftrace_var): trace_var, å¤§åŸŸå¤‰æ•°ã¸ã®æ›¸ãè¾¼ã¿hookã‚’è¨­</div><div class='add'>+	  å®šã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c: global_entryã®æ§‹æˆã‚’æ›¸ãæ›ãˆãŸï¼Žã“ã‚Œã§trace_varã‚’å®Ÿ</div><div class='add'>+	  è£…ã§ãã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c (Ffile_stat): "&amp;"ã§ç›´å‰ã®fstatã®çµæžœã‚‚å‚ç…§ã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Sep 29 14:15:13 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.88</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): AIXã¨HPã«å¯¾å¿œã—ãŸã‚³ãƒ¼ãƒ‰ã‚’å…¥ã‚ŒãŸ(å‹•ä½œã¯æœªç¢ºèª)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: å¿…è¦ã«å¿œã˜ã¦ï¼Œå®šæ•°EXTLIBã‚’å®šç¾©ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): dlnç‹¬ç«‹ã«æ›¸ãæ›ãˆã‚‹ï¼Žå°†æ¥ã®æ‹¡å¼µç”¨ï¼Ž</div><div class='add'>+	(load_1): dln_a_outã«ãŠã„ã¦ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã§ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’æ˜Žç¤ºçš„ã«ãƒ­ãƒ¼</div><div class='add'>+	ãƒ‰ã™ã‚‹å¿…è¦ãŒãªã„ã‚ˆã†ã«å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 28 13:31:37 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el: ã‚‚ã£ã¨ã¾ã—ãªhilit19å¯¾å¿œ(æ­£è¦è¡¨ç¾)ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Sep 27 04:12:44 1995  Takahasi Mamoru  &lt;taka@soum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: echoã§-nã‚’ä½¿ã‚ãªã„ã‚ˆã†ã«(SysVå¯¾ç­–)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: sub -&gt; sub!</div><div class='add'>+</div><div class='add'>+Tue Sep 26 19:12:42 1995  Yasuo OHBA  &lt;jammy@csg.mes.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): `.', `..'ã‹ã‚‰å§‹ã¾ã‚‹ãƒ‘ã‚¹ã«å¯¾å¿œã—ãŸ.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 12:33:03 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.87</div><div class='add'>+</div><div class='add'>+Sat Sep 23 10:00:18 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Fmod_modfunc): ãƒ¡ã‚½ãƒƒãƒ‰ã‚’privateã«ã—ï¼ŒåŒæ™‚ã«ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  ã‚‚å®šç¾©ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Žãƒ‘ãƒƒã‚±ãƒ¼ã‚¸çš„ä½¿ã„æ–¹ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ç”¨ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Sep 22 11:02:44 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: findã‚’æä¾›ã™ã‚‹ãƒ©ã‚¤ãƒ–ãƒ©ãƒª</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_variable): hookã®è¨­å®šã‚’åˆ†é›¢ï¼Ž</div><div class='add'>+	(add_hook): 1å¤‰æ•°ã«å¯¾ã—ã¦è¤‡æ•°ã®hookã‚’è¨­å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 21 00:22:11 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_frozen): æ–‡å­—åˆ—ãŒæ›´æ–°ä¸å¯ã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹è¿°</div><div class='add'>+	  èªžãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* hash.c (Fhash_aset): keyãŒæ–‡å­—åˆ—ã®æ™‚ï¼Œã‚­ãƒ¼ã®å†…å®¹ãŒå¤‰åŒ–ã—ãªã„ã‚ˆã†</div><div class='add'>+	  ã«ï¼Œdupã—ã¦freezeã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Sep 20 16:12:44 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.86</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (have_header): ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (have_library): å¼•æ•°ã®é †åºãŒå¤‰ã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep 14 18:00:59 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (obj_is_instance_of): is_member_ofã‹ã‚‰åç§°å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	Wed Sep 13 15:44:35 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_tr_bang): ç¯„å›²å¤–ã®æ–‡å­—ã«å¯¾ã™ã‚‹å¤‰æ›ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Sep 12 14:27:58 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Sfile_expand_path): expand_file_name -&gt; expand_pathã«å</div><div class='add'>+	  ç§°å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* enum.c (Fenum_member): includes? -&gt; member? ã«åç§°å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_each_byte): Stringã¯ByteArrayã§ã‚ã‚‹ã¨ã„ã†åŸºæœ¬ã«æˆ»ã£</div><div class='add'>+	  ã¦ï¼Œeachã®å®šç¾©ã‚’each_byteã«å¤‰æ›´ã—ãŸï¼Žä»Šã¾ã§ã®eachã¯each_lineã§ã‚¢</div><div class='add'>+	  ã‚¯ã‚»ã‚¹ã§ãã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Sep 11 18:31:17 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (cache_stat): ãƒ•ã‚¡ã‚¤ãƒ«åã¨ã—ã¦"&amp;"ã‚’æŒ‡å®šã™ã‚‹ã¨ç›´å‰ã®</div><div class='add'>+	  stat(2)ã®çµæžœã‚’å†åˆ©ç”¨ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Sep  8 14:18:51 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.texi: `!', `?'ã«å¯¾å¿œã—ã¦ã‚¢ãƒƒãƒ—ãƒ‡ãƒ¼ãƒˆï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: defined -&gt; defined?</div><div class='add'>+</div><div class='add'>+	* file.c: FileOpã®ä¸€æ–‡å­—ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ãªãã™ï¼Žä¸€æ–‡å­—ãƒ†ã‚¹ãƒˆã¯testãƒ¡ã‚½ãƒƒ</div><div class='add'>+	  ãƒ‰ã«ã¾ã‹ã›ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): å¤‰æ•°åã®å¾Œã‚ã«`?'ã‚‚è¨±ã™ï¼Žè¿°èªžãƒ¡ã‚½ãƒƒãƒ‰ã®å¾Œã‚ã«</div><div class='add'>+	  `?'ã‚’è¿½åŠ ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Sep  7 20:01:33 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: æ–‡å­—åˆ—ã®ä¸­èº«ã‚’æ›´æ–°ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã®åå‰ã®çµ‚ã‚Šã«`!'ã‚’ä»˜åŠ ï¼Ž</div><div class='add'>+	  `!'ã®ç„¡ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚‚ç”¨æ„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: å¤‰æ•°åã®å¾Œã‚ã«`!'ã‚’è¨±ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Sep  6 14:12:19 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.85</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_dup): æ–‡å­—åˆ—ã®è¤‡è£½ã‚’ä½œã‚‹</div><div class='add'>+	(Fstr_freeze): æ–‡å­—åˆ—ã®æ›´æ–°ä¸å¯å±žæ€§ã‚’è¨­å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+	(Fsub/Fgsub): $_ã®å†…å®¹ã‚’dupã—ã¦ã‹ã‚‰ç½®æ›ã‚’è¡Œã†ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.h (CLONESETUP): flagsã®çŠ¶æ…‹ã‚‚ã‚³ãƒ”ãƒ¼</div><div class='add'>+</div><div class='add'>+Tue Sep  5 01:27:50 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: å¤±æ•—ã®æ¤œå‡ºã‚’åŽ³ã—ãï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Aug 25 14:31:02 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Ffork): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦ã‚‚å‹•ä½œã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* version 0.84</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_beg): ãƒãƒ³ãƒ‰ãƒ©ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹æ™‚ã«ã¯å†è¨­å®šã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): shared objectã®ãƒªãƒ³ã‚¯ã®éš›ã«</div><div class='add'>+	  `-l'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’æŒ‡å®šã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): `EXIT'ã§çµ‚äº†å‡¦ç†ã‚’è¡Œã†è¨­å®šãŒå‡ºæ¥ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug 16 00:13:22 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_beg): ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯beginç¯€ã®ä¸­ã§ã ã‘SIGINTã‚’æ•æ‰</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (io_ctl): fcntlã‚’æŒãŸãªã„ã‚·ã‚¹ãƒ†ãƒ ã«ã‚‚å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* å„ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«åˆ†æ•£ã—ã¦ã„ãŸMANIFESTã‚’ã¾ã¨ã‚ãŸï¼Žæ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«æ¯Ž</div><div class='add'>+	  ã«ã¯å¿…è¦ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c (Sstr_new,str_sub,Fstr_crypt): å¼•æ•°ã‚’è‡ªå‹•çš„ã«æ–‡å­—åˆ—ã«å¤‰</div><div class='add'>+	  æ›ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Aug 12 00:44:02 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_crypt): PD cryptã‚’ç”¨æ„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Aug 11 14:37:03 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* assoc.c (Fassoc_clone): assocã‚‚cloneã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c: ãƒžã‚¯ãƒ­READ_DATA_PENDINGã®å®šç¾©ã‚’å¤‰æ›´(Linuxå¯¾å¿œ)</div><div class='add'>+</div><div class='add'>+	* io.c (io_fptr_finalize): fptrã®é–‹æ”¾æ™‚ã®å‡¦ç†ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Aug  9 16:52:41 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): è¤‡æ•°ã®featureã‚’ãƒ­ãƒ¼ãƒ‰ã™ã‚‹ã¨ç„¡é™ãƒ«ãƒ¼ãƒ—ã«è½</div><div class='add'>+	  ã¡ã‚‹ã¨ã„ã†å˜ç´”ãª(ã—ã‹ã—å‡¶æ‚ªãª)ãƒŸã‚¹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): dlopenå¯¾å¿œã‚’è¡Œã£ãŸï¼Žä»Šã¾ã§dlnã«ã—ã‹å</div><div class='add'>+	  åˆ†ã«å¯¾å¿œã—ã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Aug  8 14:17:06 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.83</div><div class='add'>+</div><div class='add'>+Mon Aug  7 12:47:41 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: resque -&gt; rescueï¼Žæ¥ãšã‹ã—ã„ãŒtypoã‚’æ®‹ã—ã¦ãŠãã‚ã‘ã«ã¯</div><div class='add'>+	  ã„ã‹ãªã„ã‚ˆãªã‚ï¼Žãªã‚“ã§ä»Šã¾ã§æ°—ãŒã¤ã‹ãªã‹ã£ãŸã®ã‹â€¦ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Aug  3 18:18:05 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/nt.c: NTç§»æ¤ç”¨ã®é–¢æ•°ç¾¤ã‚’ã¾ã¨ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): ã¾ãŸä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ždefined</div><div class='add'>+	  ãŒã‚ã‚‹ä»¥ä¸Šä¾‹å¤–ã‚’ç™ºç”Ÿã•ã›ãªã„ç†ç”±ãŒãªã„ã®ã§(ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸæ–¹ãŒã‚¿</div><div class='add'>+	  ã‚¤ãƒ—ãƒŸã‚¹ã®æ¤œå‡ºãªã©ã®ç‚¹ã§æœ‰åˆ©)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c (Fautoload): autoloadã‚’å®Ÿè£…ï¼Žä»Šåº¦ã¯ä½¿ãˆã‚‹ã‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jul 31 15:44:21 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_ambiguous): ç¬¬1å¼•æ•°ã®ã‚ã„ã¾ã„ã•ã‚’è­¦å‘Š(-vã‚ªãƒ—ã‚·ãƒ§ãƒ³</div><div class='add'>+	  ã§æœ‰åŠ¹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): `-v'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’ã¤ã‘ã¦`def'ãŒå‘¼ã°ã‚Œã‚‹ã¨ä¸å¿…è¦</div><div class='add'>+	  ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå‡ºãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ãƒ¡ã‚½ãƒƒãƒ‰ã®ç¬¬1å¼•æ•°ã®åˆ¤å®šã‚’ã‚‚ã†ã¡ã‚‡ã£ã¨è³¢ãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jul 28 19:04:43 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `+/-/['ã®ç›´å‰ã«ç©ºç™½ãŒæ¥ã‚‹ã‹ã©ã†ã‹ã§å‹•ä½œã‚’å¤‰æ›´ã—</div><div class='add'>+	  ãŸ(æ··ä¹±ã®ã‚‚ã¨ã‹?)</div><div class='add'>+</div><div class='add'>+Wed Jul 26 09:21:23 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.82a</div><div class='add'>+</div><div class='add'>+	* sprintf.c (Fsprintf): `%s'ã§'\0'ã‚’å«ã‚€æ–‡å­—åˆ—ã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* pack.c (Fpck_pack): packã®è¦ç´ ç¢ºä¿ã®ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (Floop): ç„¡é™ãƒ«ãƒ¼ãƒ—ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): å­˜åœ¨ã—ãªã„ãƒ•ã‚¡ã‚¤ãƒ«åãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã®ã‚¨ãƒ©ãƒ¼å‡¦ç†</div><div class='add'>+	  ãŒè¡Œã‚ã‚Œã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jul 24 17:37:34 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.82</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’static linkã™ã‚‹å ´åˆã¯</div><div class='add'>+	  ãã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæ—¢ã«requireã•ã‚ŒãŸã®ã¨åŒã˜ã‚ˆã†ã«featureã‚’è¨­å®šã™ã‚‹ï¼Ž</div><div class='add'>+	  ã“ã‚Œã§æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æ©Ÿèƒ½ãŒå¿…è¦ãªæ™‚ã«ã¯(static linkã•ã‚Œã¦ã„ã‚‹ã‹</div><div class='add'>+	  ã©ã†ã‹ã«ã‹ã‹ã‚ã‚‰ãš)requireã™ã‚Œã°ã‚ˆããªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (Frequire): `$"'ã«æ ¼ç´ã™ã‚‹æ–‡å­—åˆ—ã‚’ãƒ•ãƒ«ãƒ‘ã‚¹ã§ãªããƒ•ã‚£ãƒ¼ãƒãƒ£</div><div class='add'>+	  åã¨ã™ã‚‹ï¼Žrubyã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’ãƒ­ãƒ¼ãƒ‰ã—ãŸæ™‚ã«ã¯`.rb'ï¼Œã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’</div><div class='add'>+	  ãƒ­ãƒ¼ãƒ‰ã—ãŸæ™‚ã«ã¯`.o'ã‚’ãƒ•ã‚£ãƒ¼ãƒãƒ£åã«ä»˜åŠ ã™ã‚‹ï¼Žlispã®requireã¨</div><div class='add'>+	  provideã®åƒãã«(å°‘ã—)è¿‘ã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jul 20 12:50:05 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (test): make testãŒã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_new): typo.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): `defined'ã‚’è¿½åŠ ï¼Žãƒ¡ã‚½ãƒƒãƒ‰/å¤‰æ•°/å®šæ•°ã®å®šç¾©çŠ¶æ…‹</div><div class='add'>+	  ã‚’çŸ¥ã‚‹äº‹ãŒå‡ºæ¥ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jul 19 18:04:01 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.81</div><div class='add'>+</div><div class='add'>+Mon Jul 17 14:53:51 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): æœªåˆæœŸåŒ–ã®CONSTANTã®å€¤ã‚’nilã«ã—ãŸï¼Žã—</div><div class='add'>+	  ã‹ã—ï¼Œä»Šå¾Œã¾ãŸä¾‹å¤–ã«æˆ»ã™å¯èƒ½æ€§ã¯ã‚ã‚‹ï¼Žè¦ã¯optionalãªã‚¯ãƒ©ã‚¹/ãƒ¢ã‚¸ãƒ¥ãƒ¼</div><div class='add'>+	  ãƒ«ãŒå­˜åœ¨ã™ã‚‹ã‹ãƒã‚§ãƒƒã‚¯ã—ãŸã„ã ã‘ãªã‚“ã ãªï¼Ž</div><div class='add'>+</div><div class='add'>+	* st.c (int): grow_factorã‚’å›ºå®šã«ã—ãŸ(å¤§å¶‹ã•ã‚“ã®ãƒžã‚·ãƒ³ã«å¯¾å¿œ)ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jul 14 00:48:40 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®ãƒã‚°ã‚’ä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (var_extend): #{$æ•°å­—}ã«å¯¾å¿œã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load_1): `Init_FILENAME'ã ã‘ã‚’æœ‰åŠ¹ã«ï¼Ž`init_*'ã¯ä»Šå¾Œ</div><div class='add'>+	  å®Ÿè¡Œã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c : Etcãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¨ã—ã¦åˆ†é›¢ï¼Žå®Ÿã¯NT</div><div class='add'>+	  å¯¾å¿œã¸ã®å¸ƒçŸ³ã ã£ãŸã‚Šã™ã‚‹ã‹ã‚‚ã—ã‚Œãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jul 11 17:12:48 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gcc -Wallã§å‡ºãŸwarningã‚’å…ƒã«ã‚½ãƒ¼ã‚¹ã‚’å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): typo.</div><div class='add'>+</div><div class='add'>+Fri Jul  7 10:08:51 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.80</div><div class='add'>+</div><div class='add'>+	* ruby.texi: texinfo documentã‚’æä¾›ï¼Žspecã¨ruby.1ã¯ç„¡ããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* signal.c (Ftrap): å‰²è¾¼ã¿ç¦æ­¢ä¸­ã®ä¾‹å¤–ç™ºç”Ÿã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (Flambda): Blockã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¿”ã™ï¼ŽBlock.newã¨åŒç¾©ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jul  6 00:35:03 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (Ftrap): SIG_DFLã®å‡¦ç†ã‚’å¤‰æ›´ï¼ŽSIGINTã¸ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒãƒ³</div><div class='add'>+	ãƒ‰ãƒ©ã‚’ç”¨æ„(ä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c (Sfile_expand_fname): ãƒ‘ã‚¹åã‚’çµ¶å¯¾ãƒ‘ã‚¹ã«å±•é–‹ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+	(Sfile_basename): basenameã‚’å¾—ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Žæ‹¡å¼µå­ã‚‚å¤–ã›ã‚‹ï¼Ž</div><div class='add'>+	(Sfile_dirname): basenameã®åå¯¾ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): argumentè©•ä¾¡ä¸­ã®ä¾‹å¤–ç™ºç”Ÿã«å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* file.c (Ftest): `M', `A', `C'ã‚’è¿½åŠ .</div><div class='add'>+</div><div class='add'>+Tue Jul  4 12:36:33 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Ftest): ãƒ•ã‚¡ã‚¤ãƒ«ãƒ†ã‚¹ãƒˆç”¨ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): `-r'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (f_args): ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå¼•æ•°ã‚’è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): è©²å½“ã™ã‚‹å¼•æ•°ãŒç„¡ã„æ™‚ï¼Œrestå¼•æ•°ã®å€¤ã‚’nilã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_equal): æ•°å€¤ä»¥å¤–ã¨ã®æ¯”è¼ƒã§ä¾‹å¤–ãŒç™ºç”Ÿã—ã¦ã„ãŸï¼Ž</div><div class='add'>+	  FALSEã‚’è¿”ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (masign): å¤šé‡ä»£å…¥ã®restéƒ¨ã®å‹•ä½œãŒãŠã‹ã—ã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Jun 17 01:03:16 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): æœªåˆæœŸåŒ–ã®ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®å‚ç…§(ç‹¬ç«‹ã—ãŸè­˜åˆ¥å­)</div><div class='add'>+	  ã¯æ­£å¼ã«ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã¨ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): tokenbufã‚’ä½¿ã‚ãªã„ã‚ˆã†ã«ä¿®æ­£ï¼Žãã‚Œã«ã¨ã‚‚</div><div class='add'>+	  ãªã„ï¼Œ`\C-x',`\M-x'ãªã©ã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—è¡¨ç¾ã‚’å¾©æ´»ï¼Žã“ã‚Œã§ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³</div><div class='add'>+	  ãƒˆã¨å®Ÿéš›ã®å‡¦ç†ç³»ãŒä¸€è‡´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jun 15 15:42:00 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (re_regcomp): cacheã®ãƒã‚§ãƒƒã‚¯ã‚’æ”¹å–„ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jun 12 18:50:51 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.79</div><div class='add'>+</div><div class='add'>+Sat Jun 10 00:25:01 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (re_regcomp): cacheåˆ¤å®šã«`$='ã®å€¤ã‚‚åæ˜ ã•ã›ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: test suiteä½œæˆï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jun  9 15:58:34 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (re_regcomp): cacheã®åˆ¤å®šãŒé–“é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jun  9 00:01:35 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield): blockæ§‹é€ ä½“ã«åˆæœŸåŒ–ã—ã¦ã„ãªã„ãƒ¡ãƒ³ãƒ(iter)ãŒã‚ã£</div><div class='add'>+	  ãŸã®ã§ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã®ãƒã‚¹ãƒˆãŒæ­£ã—ãå‹•ä½œã—ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jun  8 00:59:03 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* re.c (=~): Stringä»¥å¤–ã¨ã®æ¯”è¼ƒãŒFALSEã‚’è¿”ã™ã‚ˆã†ã«(ä¾‹å¤–ã‚’ç™ºç”Ÿã—ã¦</div><div class='add'>+	  ã„ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* extmk.rb.in: åˆ¤å®šã—ãŸå€¤ã‚’ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* assoc.c (to_a): to_aãƒ¡ã‚½ãƒƒãƒ‰ãŒå†å®šç¾©ã•ã‚Œã¦ã„ãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’å¼•</div><div class='add'>+	  æ•°ã®ç„¡ã„ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã¨è§£é‡ˆã™ã‚‹ï¼ŽãŸã ã—ï¼Œ(ç¾çŠ¶ã§ã¯)ãƒ¡ã‚½ãƒƒãƒ‰ãŒ</div><div class='add'>+	  å®šç¾©ã•ã‚Œã¦ã„ãªã„å ´åˆï¼Œã‚¨ãƒ©ãƒ¼ã«ã›ãšå¤‰æ•°æœªåˆæœŸåŒ–ã®waringã‚’å‡ºã—ã¦</div><div class='add'>+	  nilã‚’è¿”ã—ã¦ã„ã‚‹ï¼Žã€Œruby -pe printã€ãªã©ãŒå®Ÿè¡Œã§ãã‚‹ã¨ã„ã†æ„å‘³ã§</div><div class='add'>+	  ã¯ã‚ã‚ŠãŒãŸã„ã“ã®ä»•æ§˜ã¯ï¼Œã—ã‹ã—ä»Šå¾Œã®æ¤œè¨ŽãŒå¿…è¦ã§ã‚ã‚‹ï¼Ž-- ãƒ¡ã‚½ãƒƒ</div><div class='add'>+	  ãƒ‰å‘¼ã³å‡ºã—ã¨ã™ã‚‹ã®ã‚’æ­¢ã‚ã‚‹ã‹(ä»¥å‰ã®ä»•æ§˜)ï¼Œã„ã¤ã‚‚ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—</div><div class='add'>+	  ã¨ã™ã‚‹(æœªå®šç¾©ãªã‚‰ã°ã‚¨ãƒ©ãƒ¼)ã‹ï¼Œä»Šã®ä»•æ§˜ã§è¡Œãã‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã§</div><div class='add'>+	  (evalãªã©ã§)åˆæœŸåŒ–ã•ã‚ŒãŸäº‹ãŒåˆ†ã‹ã£ãŸæ™‚ã«ã¯ä»¥å¾ŒåˆæœŸåŒ–ã•ã‚ŒãŸãƒ­ãƒ¼ã‚«</div><div class='add'>+	  ãƒ«å¤‰æ•°ã¨ã¿ãªã™ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jun  7 11:58:12 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fail): ä¾‹å¤–å‡¦ç†å¾Œã‚‚`$!'ã‚’ã‚¯ãƒªã‚¢ã—ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+	  (rb_fail): `$!'å¤‰æ•°ã«æœ€å¾Œã«æ”¹è¡Œã‚’è¿½åŠ ã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c (Fprint): privateãƒ¡ã‚½ãƒƒãƒ‰ã«å¤‰æ›´ï¼Žå¼•æ•°ã‚’å–ã‚‰ãªã„æ™‚ã®å‹•ä½œã‚’å¤‰</div><div class='add'>+	  æ›´(`$_'ã‚’å‡ºåŠ›ã™ã‚‹)ï¼Ž</div><div class='add'>+	  (Fio_print): å‡ºåŠ›å…ˆæŒ‡å®šã®printãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+	  (Fio_printf): å‡ºåŠ›å…ˆæŒ‡å®šã®printfãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: notæ¼”ç®—å­ã®è¿½åŠ ï¼Žå„ªå…ˆé †ä½ã®ä½Žã„`!'æ¼”ç®—å­ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jun  5 19:00:55 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.78</div><div class='add'>+</div><div class='add'>+Fri Jun  2 17:52:03 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -Iã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§`$:'ã¸ã®è¿½åŠ ã•ã‚Œã‚‹é †ç•ªã‚’ä¿®</div><div class='add'>+	  æ­£ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jun  2 00:36:34 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: whileä¿®é£¾å­ã®å‹•ä½œã‚’é€šå¸¸ã®whileã¨åŒã˜ã«ã—ãŸï¼ŽãŸã ã—ï¼Œ</div><div class='add'>+	  beginå¼ã¸ã®whileä¿®é£¾å­ã ã‘ã¯do..whileåž‹ã®ãƒ«ãƒ¼ãƒ—ã¨ãªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed May 31 18:36:30 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.77</div><div class='add'>+</div><div class='add'>+Mon May 29 18:39:37 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚‚ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri May 26 14:43:01 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Fsystem): æˆ»ã‚Šå€¤ã‚’ã‚µãƒ–ãƒ—ãƒ­ã‚»ã‚¹ã®å¤±æ•—/æˆåŠŸã‚’è¡¨ã™çœŸå½å€¤</div><div class='add'>+	  ã«ã—ãŸï¼Žçµ‚äº†ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã¯`$?'ã§å¾—ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue May 23 10:58:11 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_upto): ç„¡é™ãƒ«ãƒ¼ãƒ—ã«é™¥ã‚‰ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y (cond): `||'ãªã©ã®å³è¾ºã«åˆ¶å¾¡å¼ãŒæ›¸ã‘ã‚‹ã‚ˆã†ã«ï¼Œæ¡ä»¶å¼ãŒã‹</div><div class='add'>+	  ãªã‚‰ãšã—ã‚‚å€¤ã‚’æŒãŸãªãã¦ã‚‚è‰¯ã„ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c: ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®èª­ã¿æ›¸ãã‚’ãƒ¡ã‚½ãƒƒãƒ‰ã®å†å®šç¾©</div><div class='add'>+	  ã§ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã§ãã‚‹ã‚ˆã†ã«ï¼Žã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒ`_dump_to'ã¨ã„ã†ãƒ¡ã‚½ãƒƒ</div><div class='add'>+	  ãƒ‰ã‚’å®šç¾©ã—ã¦ã„ã‚‹æ™‚ã¯ãã¡ã‚‰ã‚’ä½¿ã†ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: static linkã‚‚è¨­å®šã§ãã‚‹ã‚ˆã†ãªä»•æ§˜ã«ã—ãŸï¼Ž</div><div class='add'>+	  ext/Setupã¨ã„ã†ãƒ•ã‚¡ã‚¤ãƒ«ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã‚’è¨˜è¿°ã™ã‚‹ã¨ãã®ãƒ‡ã‚£ãƒ¬ã‚¯</div><div class='add'>+	  ãƒˆãƒªã«å­˜åœ¨ã™ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯static linkã•ã‚Œã‚‹(ã¯ãš)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): `..'ã‚’æ–‡æ³•ã«çµ„ã¿è¾¼ã¿ï¼Œ`..'ã¨`...'ã®å‹•ä½œã‚’perl</div><div class='add'>+	  ã«åˆã‚ã›ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Sat May 20 01:22:48 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* io.c (select): timeoutæ™‚ã¨å‰²è¾¼ã¿æ™‚ã®å‹•ä½œã®æ˜Žç¢ºåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri May 19 15:33:23 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* version 0.76</div><div class='add'>+</div><div class='add'>+Fri May 19 00:48:08 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_each): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯ä¸­ã§æ–‡å­—åˆ—ã®å¤‰æ›´ãŒè¡Œã‚ã‚Œ</div><div class='add'>+	  ãŸã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ï¼Žãƒã‚¤ãƒ³ã‚¿ã®å€¤ãŒå¤‰ã‚ã£ã¦ã„ã‚Œã°ä¾‹å¤–ã‚’ç™ºç”Ÿã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby-mode.el: ruby-electric-braceã®æ–°è¨­ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu May 18 12:27:23 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Fstr_tr): trã®ç½®æ›å¯¾è±¡ã«`\0'ã‚’å«ã‚€æ™‚ã«æ­£ã—ãç½®æ›ã‚’è¡Œã‚</div><div class='add'>+	  ãªã„ãƒã‚°ãŒã‚ã£ãŸï¼Žæ›´ã«ç½®æ›æ–‡å­—åˆ—ã‚’ASCIIé †ã«æŒ‡å®šã—ãªã„ã¨å‹•ä½œã—ãª</div><div class='add'>+	  ã„å•é¡Œã‚‚ã‚ã£ãŸï¼Žçµæžœã¨ã—ã¦trã‚’æ›¸ãæ›ãˆãŸã®ã§ï¼Œcopyrightã®å•é¡Œã¯</div><div class='add'>+	  ç„¡ããªã£ãŸ(ã¨æ€ã†)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c (gc): the_scopeã‚’ãƒžãƒ¼ã‚¯ã—ã¦ã„ãªã‹ã£ãŸã®ã§ï¼Œãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®æŒ‡</div><div class='add'>+	  ã—ã¦ã„ã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒé–“é•ã£ã¦é–‹æ”¾ã•ã‚Œã‚‹å ´åˆãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_locations_array): è‹¥å¹²ã®é«˜é€ŸåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon May 15 11:43:49 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: Dynamic Loadãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ç”¨ãƒã‚§ãƒƒã‚¯ã‚’</div><div class='add'>+	  è¡Œã†ruby scriptï¼Žautoconfã«è¿‘ã„æ„Ÿè¦šã§ä½¿ãˆã‚‹ï¼Žæ–°ã—ã„ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’</div><div class='add'>+	  æä¾›ã—ãŸã„äººã¯extã®ä¸‹ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ä½œã‚‹ã ã‘ã§è‰¯ã„ï¼Žå¿…é ˆã®ãƒ•ã‚¡</div><div class='add'>+	  ã‚¤ãƒ«ã¯ãƒ•ã‚¡ã‚¤ãƒ«åã®ä¸€è¦§ã‚’è¨˜éŒ²ã—ãŸ`MANIFEST'ã¨ã„ã†ãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ï¼Žå¿…</div><div class='add'>+	  è¦ã«å¿œã˜ã¦`depend'(ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¾å­˜é–¢ä¿‚ã‚’è¨˜è¿°ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ« gcc -MM</div><div class='add'>+	  ã®å‡ºåŠ›)ï¼Œ`extconf.rb'(ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ç”¨ã«ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã¨é–¢æ•°ã®å­˜åœ¨ãƒã‚§ãƒƒ</div><div class='add'>+	  ã‚¯ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«)ã‚’ç”¨æ„ã§ãã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): rubyãƒ¡ã‚½ãƒƒãƒ‰ã®å¼•æ•°ãƒã‚§ãƒƒã‚¯æ™‚ã«æœªåˆæœŸåŒ–ã®</div><div class='add'>+	  jmp_bufã‚’ä½¿ç”¨ã—ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: `or'ã¨`and'ã®å„ªå…ˆé †ä½ã‚’åŒã˜ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed May  3 18:21:36 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* dln.c: Linuxã§ã¯`__.SYMDEF/'ã§ã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* dln.c: system callã®ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒƒã‚¯ã‚’å¿˜ã‚Œã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Apr 26 09:50:56 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯ã®å¤‰æ•°å®£è¨€ã‚’`|'ã§æ‹¬ã‚‹ã‚ˆã†ã«ã—ãŸï¼Žã“ã‚Œ</div><div class='add'>+	  ã§ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿å¤‰æ•°ãŒãªã„æ™‚ã¯å®£è¨€ãã®ã‚‚ã®ã‚’çœç•¥ã§ãã‚‹ï¼Žæ–‡æ³•ã®å¤‰æ›´ã¯</div><div class='add'>+	  ä¹…ã—ã¶ã‚Šã ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Apr 25 12:04:17 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(require): loadã‹ã‚‰ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‰ã®æ©Ÿèƒ½ã‚’ç§»ã—ã¦ããŸï¼Ž</div><div class='add'>+	  ã•ã‚‰ã«æ‹¡å¼µå­ã®è£œå®Œæ©Ÿèƒ½ã‚’è¿½åŠ ã—ã¦ãƒ¦ãƒ¼ã‚¶ãŒdln/dlopenã®å·®ã‚’æ„è­˜ã™ã‚‹</div><div class='add'>+	  å¿…è¦ã®ãªã„ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c(sub,sub): ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦ã‚‚å‹•ä½œã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c: init_object -&gt; initialize.</div><div class='add'>+</div><div class='add'>+Mon Apr 24 14:22:39 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* NEWS-OS 3.4å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* io.c: Solarisã®stdioã®å‹•ä½œãŒé•ã†ã‚ˆã†ã ï¼Žsignalã§EOFã‚’è¿”ã—ã¦ã—ã¾</div><div class='add'>+	  ã†â€¦ï¼Žperlã§ã‚‚åŒæ§˜ã®å•é¡ŒãŒã‚ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Apr 21 20:04:39 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.75</div><div class='add'>+</div><div class='add'>+	* signal.c: trapãŒãªããªã£ã¦ã„ãŸï¼Žã†ãƒ¼ã‚€ï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure: Solaris 2.3å¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c: #elifã®ãªã„cppã‚‚ã‚ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* dir.c: autoconf 2.xã¸ã®å¯¾å¿œãŒä¸ååˆ†</div><div class='add'>+</div><div class='add'>+Thu Apr 20 12:31:24 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.74</div><div class='add'>+</div><div class='add'>+	* env.h, gc.c, regex.c: IRIXã¸ã®ç§»æ¤å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* configure: dlopenç”¨ã«picã‚’ç”Ÿæˆã™ã‚‹optionã®æ¤œå‡ºã®ãŸã‚ï¼Œã‚·ã‚¹ãƒ†ãƒ ã‚¿</div><div class='add'>+	  ã‚¤ãƒ—ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Apr 18 19:08:17 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* gc.c(xrealloc): ptr=nilã®æ™‚ï¼Œmalloc()ã¨åŒã˜åƒãã‚’</div><div class='add'>+</div><div class='add'>+	* array.c(astore): ç©ºã®é…åˆ—ã®0ç•ªç›®ã®è¦ç´ ã«ä»£å…¥ã™ã‚‹ã¨size=0ã§</div><div class='add'>+	  realloc()ã‚’å‘¼ã‚“ã§ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure, glob.c: Solaris 2.xã§ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã§ãã‚‹ã‚ˆã†ã«</div><div class='add'>+</div><div class='add'>+Mon Apr 10 18:36:06 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.73</div><div class='add'>+</div><div class='add'>+Fri Apr  7 13:51:08 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* cons.c-&gt;assoc.c: consã®ä½™è¨ˆãªæ©Ÿèƒ½ã¯å¤–ã—ã¦pairã¨ã—ã¦ã®æ©Ÿèƒ½ã ã‘ã‚’</div><div class='add'>+	  æ®‹ã—ãŸï¼ŽEnumerableã‚’includeã™ã‚‹ã®ã‚‚ã‚„ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c(esub): æ–‡å­—åˆ—ç½®æ›ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ï¼Žperlã®s///eã®ç›¸å½“ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Apr  5 11:35:21 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.72</div><div class='add'>+</div><div class='add'>+	* EWS4800å¯¾å¿œ</div><div class='add'>+</div><div class='add'>+	* file.c: utimesãŒãªã„æ™‚ã¯utimeã‚’ä½¿ã†ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Apr  3 15:19:41 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.71</div><div class='add'>+</div><div class='add'>+	* regexp.c(re_match): ãƒã‚°ãŒã‚ã£ãŸï¼Žmatch_2ã‚’å‰Šé™¤ã—ãŸæ™‚ã«enbugã—ã¦</div><div class='add'>+	  ã„ãŸã®ã ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Mar 27 15:41:43 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dict.c: Dict-&gt;Hashã«å…¨é¢çš„ã«ç§»è¡Œï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Mar 23 20:30:00 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dbm.c,socket.c: extãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«åˆ†é›¢ï¼Ž</div><div class='add'>+</div><div class='add'>+	* configure: dlnå‘¨ã‚Šã®ãƒã‚§ãƒƒã‚¯ã®å¼·åŒ–</div><div class='add'>+</div><div class='add'>+	* dln.c: initã®å‘¼ã³å‡ºã—ã‚’dlopen()ç‰ˆã«åˆã‚ã›ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Mar 20 17:45:08 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* configure: autoconf 2.2ã«å¯¾å¿œ(ä¸€éƒ¨)ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Mar 17 15:56:44 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* dln.c: dlopenã®ã‚ã‚‹ãƒžã‚·ãƒ³ã§ã¯ãã¡ã‚‰ã‚’ä½¿ã†ã‚ˆã†ã«ï¼ŽãŸã ã—ï¼Œã¡ã‚ƒã‚“</div><div class='add'>+	  ã¨å‹•ã„ã¦ã„ã‚‹ã‹ã©ã†ã‹ã¯è‡ªä¿¡ãŒãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c: virtual concatinationã‚’ã‚„ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Mar 16 11:32:57 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.70</div><div class='add'>+</div><div class='add'>+	* eval.c,regex.c: gccã§ã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã‚¨ãƒ©ãƒ¼ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c: inplace-editã§æ‹¡å¼µå­ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆï¼Œã‚‚ã¨ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‰Š</div><div class='add'>+	  é™¤ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Mar 15 14:59:18 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.69</div><div class='add'>+</div><div class='add'>+	* eval.c(method_missing): unknownã‹ã‚‰åç§°å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(single_method_added): ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãŒå®šç¾©ã•ã‚ŒãŸæ™‚ã«å‘¼ã°ã‚Œ</div><div class='add'>+	  ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Žhookã¨ã—ã¦ä½¿ãˆã‚‹ï¼Žå®Ÿéš›ã«å®šç¾©ã•ã‚Œã‚‹ç›´å‰ã«å‘¼ã°ã‚Œã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Mar 14 14:46:44 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.c(proc_options): å¼•æ•°ã®è§£æžã‚’è‡ªåˆ†ã§ã‚„ã‚‹ã“ã¨ã«ã‚ˆã‚Šå¼•æ•°æŒ‡å®šã®</div><div class='add'>+	  æ–¹æ³•ãŒperlã«è¿‘ä»˜ã„ãŸï¼Žgetopt_longã¯ã‚‚ã†ä½¿ã‚ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* dir.c(glob): `{}'ã®ãƒã‚¹ãƒˆã‚’è¨±ã™ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Mar 13 17:56:25 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* glob.c: Glob(ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆ)ã¯ãªããªã£ãŸï¼Žãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼</div><div class='add'>+	  ãƒ‰ã®å±•é–‹ã¯Dir.glob(æ–‡å­—åˆ—)ã‚’ä½¿ã†ï¼Žãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã®ãƒžãƒƒãƒã¯æ­£è¦è¡¨</div><div class='add'>+	  ç¾ã§ä»£ç”¨ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Mar 10 18:35:46 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: Mathã®ã‚ˆã†ãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯è‡ªåˆ†è‡ªèº«ã§extendã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¯ãƒ©ã‚¹ã‚„ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’å®šç¾©ã™ã‚‹æ™‚ï¼Œæ—¢ã«åŒåã®ã‚‚ã®ãŒã‚ã‚Œã°è¿½</div><div class='add'>+	  åŠ å®šç¾©ã¨ãªã‚‹ã‚ˆã†ã«ï¼ŽãŸã ã—ï¼Žsuperã‚¯ãƒ©ã‚¹ã®é•ã„ãªã©ã¯ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c: debug.</div><div class='add'>+</div><div class='add'>+	* math.c: å®šæ•°PIã¨Eã‚’å®šç¾©ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Mar  9 21:35:12 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* regex.c: EUC,SJISãƒ¢ãƒ¼ãƒ‰ã§ã¯0x80ä»¥ä¸Šã®8é€²ï¼Œ16é€²ãƒªãƒ†ãƒ©ãƒ«ã‚’ç¦æ­¢ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c: ã‚¯ãƒ©ã‚¹å†…ã§ã‚‚æ•°å€¤ãƒªãƒ†ãƒ©ãƒ«ãƒ»æ–‡å­—ã‚¯ãƒ©ã‚¹ãŒä½¿ãˆã‚‹ã‚ˆã†ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Mar  8 17:39:05 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* regex.c: \200ãªã©æ‹¬å¼§ã®æ•°ä»¥ä¸Šã®è¡¨ç¾ã¯8é€²ãƒªãƒ†ãƒ©ãƒ«ã¨è§£é‡ˆã™ã‚‹ï¼ŽãŸã </div><div class='add'>+	  ã—ï¼Œ\1ã‹ã‚‰\9ã¾ã§ã¯ä¾‹å¤–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* regex.c: \9ä»¥ä¸Šã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚‚æœ‰åŠ¹ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Mar  7 14:26:01 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(public/private): ã‚¹ã‚³ãƒ¼ãƒ—åˆ¶å¾¡ãƒ¡ã‚½ãƒƒãƒ‰ã®åç§°å¤‰æ›´ï¼Žé™çš„ãªã‚¢</div><div class='add'>+	  ã‚¯ã‚»ã‚¹ã‚‚å‡ºæ¥ã‚‹ã‚ˆã†ã«ã—ã¦ã¿ãŸãŒï¼Œä¸æŽ¡ç”¨ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Mar  6 19:34:32 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c(inlcude): ãƒ¡ã‚½ãƒƒãƒ‰åŒ–ï¼Žå‹•çš„ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã§ã</div><div class='add'>+	  ã‚‹ã‚ˆã†ã«ï¼Žã•ã‚‰ã«ä»»æ„ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«ã‚‚ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã§</div><div class='add'>+	  ãã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ `extend'ã‚‚ç”¨æ„ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: æ–‡æ³•ã‹ã‚‰includeã‚’å‰Šé™¤ï¼Žãƒ¡ã‚½ãƒƒãƒ‰åŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 28 15:35:10 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: é…åˆ—ï¼Œé€£æƒ³é…åˆ—ã®æœ€å¾Œã«`,'ã‚’ãŠã‘ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Feb 24 13:15:43 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.68</div><div class='add'>+</div><div class='add'>+Thu Feb 23 11:19:19 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: resqueç¯€ã®selfã®å€¤ãŒé–“é•ã£ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_clear_cache): ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®ã‚¯ãƒªã‚¢ã—å¿˜ã‚ŒãŒã‚ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: å®šæ•°ã®ã‚¹ã‚³ãƒ¼ãƒ—ã‚’ã‚¯ãƒ©ã‚¹å†…ã®é™çš„ã‚¹ã‚³ãƒ¼ãƒ—ã«å¤‰æ›´ã—ãŸï¼Žã“ã‚Œã«</div><div class='add'>+	  ã‚ˆã£ã¦ï¼Œç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰å‚ç…§ã•ã‚Œã‚‹å®šæ•°ã¯ï¼Œãƒ¬ã‚·ãƒ¼ãƒã®ã‚¯ãƒ©ã‚¹ã§ã¯ãª</div><div class='add'>+	  ãï¼Œå®šç¾©ã•ã‚ŒãŸã‚¹ã‚³ãƒ¼ãƒ—ã®ã‚¯ãƒ©ã‚¹ã®å®šæ•°ã¨ãªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb 22 00:51:38 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* regex.c: ignorecaseã‚’æ­£è¦è¡¨ç¾ã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«å‰ã«æŒ‡å®šã—ãªã„ã¨æ­£ã—ã</div><div class='add'>+	  å‹•ä½œã—ãªã„ï¼Žä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c(toupper,tolower): bug fix.</div><div class='add'>+</div><div class='add'>+	* ENV,VERSION: readonlyå¤‰æ•°ã‹ã‚‰å®šæ•°ã¸ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 21 18:56:56 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* io.c(STDIN, STDOUT, STDERR): å®šæ•°ã¨ã—ã¦å®šç¾©ï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c(select): bug fix.</div><div class='add'>+</div><div class='add'>+	* version 0.67</div><div class='add'>+</div><div class='add'>+Mon Feb 20 16:10:14 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(yylex): å®šæ•°ã‚’`%è­˜åˆ¥å­'ã‹ã‚‰ï¼Œç¬¬1æ–‡å­—ãŒå¤§æ–‡å­—ã®è­˜åˆ¥å­ã«å¤‰</div><div class='add'>+	  æ›´ï¼Žãã‚Œã«ã¨ã‚‚ãªã„ã‚¯ãƒ©ã‚¹ã¯å®šæ•°ã¨ãªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¯ãƒ©ã‚¹å®šç¾©å†…ã®selfãŒã‚¯ãƒ©ã‚¹å®šç¾©å¤–éƒ¨ã®the_classã ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c(rb_name_class): ã‚¯ãƒ©ã‚¹åã‚’ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã«æ ¼ç´ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Feb 16 15:36:17 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: BLOCKã‚’braceã§è¡¨ç¾ã™ã‚‹æ–‡æ³•ã«å¤‰æ›´ã—ãŸã‚‚ã®ã‚’ä½œã£ã¦ã¿ã‚‹ï¼Ž</div><div class='add'>+	  MLã«æç¤ºã—ã¦ã¿ã‚‹ãŒåå¿œãŒãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c(do,forever): ãªãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb 15 13:20:49 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c(new): ç¬¬2å¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã¦ï¼Œã‹ã¤nilã§ãªã„ã¨ãã ã‘è¨­å®šã™ã‚‹ã‚ˆ</div><div class='add'>+	  ã†ã«(ä»¥å‰ã¯nilã®æ™‚ã«ã‚‚è¨­å®šã‚’è¡Œãªã£ã¦ã„ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(parse_regexp): æ­£è¦è¡¨ç¾ãƒªãƒ†ãƒ©ãƒ«ã§å¤§æ–‡å­—å°æ–‡å­—ã‚’ç„¡è¦–ã™ã‚‹</div><div class='add'>+	  ã‹ã©ã†ã‹æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Feb 14 00:55:33 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: (compexpr) -&gt; (expr).</div><div class='add'>+</div><div class='add'>+Fri Feb 10 16:30:00 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* ruby.c(load_file): scriptã‚’èª­ã¿è¾¼ã‚€æ™‚ã ã‘"#!"ã®è§£æžã‚’è¡Œã†ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.c(readin): ãƒ•ã‚¡ã‚¤ãƒ«èª­ã¿è¾¼ã¿æ™‚ã«å…ˆé ­ã«"#!"ãŒã‚ã‚Šï¼Œãã®è¡ŒãŒ</div><div class='add'>+	  "ruby"ã¨ã„ã†æ–‡å­—åˆ—ã‚’å«ã‚€æ™‚ï¼Œrubyã«å¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã‚Œã°ï¼Œãã®å¼•</div><div class='add'>+	  æ•°ã‚‚æœ‰åŠ¹ã«ãªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(yylex): ã‚³ãƒ¡ãƒ³ãƒˆè¡Œã®çµ‚ã‚ŠãŒ`\'ã§ã‚ã£ãŸæ™‚ï¼Œæ¬¡ã®è¡Œã«ç¶™ç¶šã—</div><div class='add'>+	  ã¦ã„ã‚‹ã¨ã¿ãªã™ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Feb  9 16:18:37 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.66</div><div class='add'>+</div><div class='add'>+	* parse.y: protectã‚’beginã«å¤‰æ›´ï¼Žbegin..endã¯ä¾‹å¤–å‡¦ç†ã ã‘ã§ãªãï¼Œ</div><div class='add'>+	  æ–‡æ‹¬å¼§ã¨ã—ã¦ã‚‚åƒãã“ã¨ã«ãªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Feb  1 19:48:24 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* version 0.65</div><div class='add'>+</div><div class='add'>+	* string.c(str_replace): ç½®ãæ›ãˆã‚‹æ–‡å­—åˆ—ã®é•·ã•ãŒç­‰ã—ã„æ™‚ãƒ¡ãƒ¢ãƒªã‚³</div><div class='add'>+	  ãƒ”ãƒ¼ã‚’ã—ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c(rindex): ãƒã‚°ä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jan 30 11:23:05 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(value_expr): ifã®ãƒã‚§ãƒƒã‚¯ã‚’è¿½åŠ ï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c(gc_mark): free cellã®æ‰±ã„ã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: æ–‡æ³•ã®å¤‰æ›´(ã‚ˆã‚Šã‚·ãƒ³ãƒ—ãƒ«ã«)ï¼Žä¾‹å¤–ã‚’æ¸›ã‚‰ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jan 26 00:52:55 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* parse.y: å¼•æ•°ã¨ã—ã¦é€£æƒ³é…åˆ—ã‚’ç½®ãã“ã¨ãŒã§ãã‚‹ã‚ˆã†ã«ï¼Žã“ã®å ´åˆï¼Œ</div><div class='add'>+	  é€£æƒ³é…åˆ—ãƒªãƒ†ãƒ©ãƒ«ãŒæœ€çµ‚å¼•æ•°ã¨ãªã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: é…åˆ—å‚ç…§ã®`[]'å†…ãŒç©ºã§ã‚‚ã‚ˆã„ã“ã¨ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 24 14:45:15 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* class.c(rb_include_module): `-v'ã‚’æŒ‡å®šã—ãŸæ™‚ã«ã¯includeã—ãŸãƒ¢ã‚¸ãƒ¥ãƒ¼</div><div class='add'>+	  ãƒ«ã¨ã‚¯ãƒ©ã‚¹å®šæ•°ãŒè¡çªã—ã¦ã„ãªã„ã‹ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jan 23 10:42:09 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(rb_class2name): ãƒ¡ã‚¿ã‚¯ãƒ©ã‚¹ã«é–¢ã™ã‚‹bug fix.</div><div class='add'>+</div><div class='add'>+	* dict.c: Dict[..]ã§è¾žæ›¸ã®ç”ŸæˆãŒå‡ºæ¥ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* array.c: Array[..]ã§é…åˆ—ã®ç”ŸæˆãŒå‡ºæ¥ã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: è¾žæ›¸ã®è¡¨ç¾ã¨ã—ã¦{a,b,..}ã¨ã„ã†å½¢å¼ã‚‚è¨±ã™ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jan 20 10:28:38 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* re.c(Regexp.quote): æ­£è¦è¡¨ç¾ã‚’ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ï¼Ž</div><div class='add'>+</div><div class='add'>+	* ç„¡é§„ãªrb_intern()ã‚’æ¸›ã‚‰ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: `!', `!=', `!~'ã‚’ç‰¹æ®Šæ¼”ç®—å­ã«ã™ã‚‹ï¼Žã‚ˆã£ã¦ã“ã‚Œã‚‰ã¯å†å®šç¾©</div><div class='add'>+	  ã§ããªããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Jan 18 13:20:41 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: æ–‡æ³•ã®æ•´ç†(unless,untilã‚’ãªãã—ãŸ)ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 17 11:11:27 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: defã§ãƒ¡ã‚½ãƒƒãƒ‰å†å®šç¾©æ™‚ã«ã¯ã‚¹ãƒ¼ãƒ‘ãƒ¼ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å¯è¦–</div><div class='add'>+	  æ€§ã‚’ç¶™æ‰¿ã™ã‚‹ï¼Žæœ€åˆã®å®šç¾©ã®æ™‚ã¯ä»Šã¾ã§ã¨åŒã˜ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ(ãƒˆãƒƒãƒ—ãƒ¬ãƒ™</div><div class='add'>+	  ãƒ«ã§é–¢æ•°çš„ï¼Œã‚¯ãƒ©ã‚¹å®šç¾©å†…ã§é€šå¸¸ãƒ¡ã‚½ãƒƒãƒ‰)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* object.c(Class#new): ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ç”Ÿæˆæ™‚ã«é–¢æ•°çš„ãƒ¡ã‚½ãƒƒãƒ‰</div><div class='add'>+	  init_objectãŒå¿…ãšå‘¼ã°ã‚Œã‚‹ã‚ˆã†ã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: æœªå®šç¾©ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«å¯¾ã—ã¦unknownãƒ¡ã‚½ãƒƒãƒ‰ãŒå‘¼ã°ã‚Œã‚‹ã‚ˆã†ã«</div><div class='add'>+	  ãªã£ãŸï¼Žã‚¨ãƒ©ãƒ¼è¡¨ç¤ºãŒä»Šã¾ã§ã¨åŒã˜ã«ãªã‚‹ã‚ˆã†ã«envã‚’èª¿ç¯€ã—ã¦ã„ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jan 13 14:40:30 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* gc.c: gcã‚’è‹¥å¹²æ›¸ãæ›ãˆã¦æ•´ç†ã—ãŸï¼ŽãŒï¼Œã‚ã¾ã‚Šå¤‰åŒ–ã¯ãªã‹ã£ãŸã‚ˆã†ã ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(yylex): symbolã‚’\symã‹ã‚‰:symã«å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jan 12 01:39:28 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: æ–°è¦é–¢æ•° rb_eval_string()ï¼Ž</div><div class='add'>+</div><div class='add'>+	* gc.c: gc_mark()ã‚’ä¸€éƒ¨éžå†å¸°åŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c(rb_ivar_{get,set}): ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã®ã‚¢ã‚¯ã‚»ã‚¹å‘¨ã‚Šã§</div><div class='add'>+	  ãƒã‚§ãƒƒã‚¯ãŒè¶³ã‚Šãªã‹ã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c: ã‚¯ãƒ©ã‚¹å®šæ•°ã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã§ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ãƒ«ã‚’å…±æœ‰</div><div class='add'>+	  ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* ruby.h: iv_tblã‚’RBasicã‹ã‚‰RObjectã¨RClassã¸ç§»å‹•ã—ãŸï¼Žã“ã‚Œã«ã‚ˆã‚Šï¼Œ</div><div class='add'>+	  Objectã¨Class,Moduleã—ã‹ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã‚’æŒã¦ãªããªã‚‹ï¼ŽãŒï¼Œãƒ¡ãƒ¢</div><div class='add'>+	  ãƒªåŠ¹çŽ‡ã¯è‹¥å¹²å‘ä¸Šã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan 10 00:58:20 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* 0.64 released</div><div class='add'>+</div><div class='add'>+	* eval.c: ãƒ¬ã‚·ãƒ¼ãƒã¨å¼•æ•°ã¯å¸¸ã«iterã§ã¯ãªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+	* cons.c(aref,aset): negative offsetå¯¾å¿œï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Jan  9 14:40:39 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: foo{..}ã®å½¢å¼ã«ãŠã„ã¦ï¼Œfooã‚’ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚„ã‚¯ãƒ©ã‚¹åã§ã¯</div><div class='add'>+	  ãªãï¼Œå¼•æ•°ãªã—ã®é–¢æ•°åž‹ãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã¨ã¿ãªã™ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* list.c -&gt; cons.c: åç§°å¤‰æ›´(ã‚¯ãƒ©ã‚¹åã‚‚)ï¼Ž</div><div class='add'>+</div><div class='add'>+	* list.c: a::b::c::nilã‚’ãƒªã‚¹ãƒˆ(a b c)ã¨ã¿ãªã™lispå½¢å¼ã‹ã‚‰ï¼Œa::b::c</div><div class='add'>+	  ã‚’ãƒªã‚¹ãƒˆ(a b c)ã¨ã¿ãªã™rubyå½¢å¼ã«å¤‰æ›´ï¼Ž[], []=, eachã‚‚ãã‚Œã«ä¼šã‚</div><div class='add'>+	  ã›ãŸä»•æ§˜ã¨ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* list.c: consãƒšã‚¢ã¨ã—ã¦ã®æ©Ÿèƒ½ã‚’å¼·èª¿ï¼Žä»•æ§˜å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+Sat Jan  7 01:26:26 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: è‡ªå·±ä»£å…¥ã®ä¸å…·åˆä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(masign): å¤šé‡ä»£å…¥ãŒé…åˆ—ã‚‚ãƒªã‚¹ãƒˆã‚‚ã¨ã‚Œã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* list.c: assocã‚’2è¦ç´ ã®é…åˆ—ã‹ã‚‰List(CONSãƒšã‚¢)ã«å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Jan  6 13:42:12 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: a[b]+=cã‚„a.b+=cãªã©ã®è‡ªå·±ä»£å…¥å½¢å¼ã§ï¼Œaã‚„bã‚’2åº¦è©•ä¾¡ã—ãª</div><div class='add'>+	  ããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: iteratorè¨­å®šã®ãƒã‚°ãƒ•ã‚£ãƒƒã‚¯ã‚¹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* list.c: Listã‚¯ãƒ©ã‚¹ã‚’æ–°è¨­ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Jan  5 13:55:00 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: SCOPEã®ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ã‚’ãªãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: built-inãƒ¡ã‚½ãƒƒãƒ‰ã¸ã®å¼•æ•°ã®å¼•ãæ¸¡ã—æ–¹ã‚’å¤‰æ›´ã—ã¦ï¼Œé…åˆ—ã®ç”Ÿ</div><div class='add'>+	  æˆæ•°ã‚’æ¸›ã‚‰ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* re.c: match-dataã‚’æ¯Žå›žç”Ÿæˆã™ã‚‹ã“ã¨ã‚’ã‚„ã‚ãŸï¼Ž`$~'ã‚’ã‚¢ã‚¯ã‚»ã‚¹ã—ãŸæ™‚</div><div class='add'>+	  ã«on-demandã§ç”Ÿæˆã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+	* string.c etc: ä¸å¿…è¦ãªmemmoveã‚’memcpyã«ç½®æ›ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: =~, !~ã¯å‰¯ä½œç”¨ãŒã‚ã‚‹ã®ã§ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«æ™‚ã«å±•é–‹ã§ããªã„ï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Jan  3 02:04:36 1995  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c: restå¼•æ•°ã®bug fix.</div><div class='add'>+</div><div class='add'>+	* eval.c,gc.c: scopeã‚’ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: envã¨scopeã®æ‰±ã„ã‚’å¤‰æ›´ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 28 09:46:57 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: evalã§ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ãŒè¿½åŠ ã•ã‚ŒãŸå ´åˆã«å¯¾å¿œã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y: æ¼”ç®—å­ã‚’å«ã‚€aliasã®bug fix.</div><div class='add'>+</div><div class='add'>+Tue Dec 27 16:45:20 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: def A Bã‚’alias A Bã«å¤‰æ›´ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: aliasé–¢ä¿‚ã®bugä¿®æ­£ï¼Žnodeã‚’ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆåŒ–ã—ãŸæ™‚ã«enbugã—</div><div class='add'>+	  ãŸã‚ˆã†ã ï¼Ž</div><div class='add'>+</div><div class='add'>+	* signal.c: ã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã®å†å®šç¾©ã‚’æ­¢ã‚ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* io.c(select): write/exceptã®ãƒ•ãƒ©ã‚°è¨­å®šã«ãƒã‚°ï¼Ž</div><div class='add'>+</div><div class='add'>+	* Makefile.in: static linkç”¨ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’Makeå¤‰æ•°ã¨ã—ã¦ç‹¬ç«‹ã•ã›ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Tue Dec 20 00:46:19 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* 0.63 released</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): superã®å‘¼ã³å‡ºã—ã§è½ã¡ã‚‹ï¼Žargc, argvã®è¨­å®šã‚’å¿˜ã‚Œ</div><div class='add'>+	  ã¦ã„ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(read_escape): å±•é–‹ã‚¨ãƒ©ãƒ¼ï¼Ž</div><div class='add'>+</div><div class='add'>+	* variable.c: å®šç¾©æ¸ˆã¿ã®å¤‰æ•°ã®hookã‚’å¤‰æ›´ã—ãªã„ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Dec 19 12:01:10 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y(cond): æ¡ä»¶å¼ã«ä»£å…¥å¼ãŒç½®ã‹ã‚ŒãŸå ´åˆï¼Œ`-v'ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§è­¦</div><div class='add'>+	  å‘ŠãŒå‡ºã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(**): å†ªä¹—æ¼”ç®—å­`**'ã®å„ªå…ˆé †ä½ã‚’å˜é …æ¼”ç®—å­ã‚ˆã‚Šé«˜ãã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* parse.y(and,or): å„ªå…ˆé †ä½ã®ä½Žã„æ¼”ç®—å­`and', `or'.</div><div class='add'>+</div><div class='add'>+	* 0.62 released.</div><div class='add'>+</div><div class='add'>+	* eval.c: ä¸å¿…è¦ã«ãªã£ãŸPUSH_ENV, POP_ENVã‚’æ¸›ã‚‰ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* env.h: ENVIONã‹ã‚‰selfã‚’ã¯ãšã—ãŸï¼ŽPUSH_ENVã¯superã®æº–å‚™ã®ãŸã‚ã ã‘</div><div class='add'>+	  ã«ç”¨ã„ã‚‹ã“ã¨ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: ä¸‹è¨˜ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆåŒ–ã§é…ããªã£ãŸå®Ÿè¡Œé€Ÿåº¦ã‚’ã‚‚ã¨ã«æˆ»ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Mon Dec 17 23:01:10 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* eval.c: env.{argv,argc}ã¨scope.local_varsã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: 1ã‚¹ã‚³ãƒ¼ãƒ—å†…ã§è¤‡æ•°Blockã‚’ç”Ÿæˆã—ãŸã¨ãã®ãƒã‚°ã‚’ä¿®æ­£ï¼Ž</div><div class='add'>+</div><div class='add'>+Fri Dec 16 15:52:06 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* parse.y: `&amp;&amp;'ã¨`||'ã®ä¸¡è¾ºã¯ã„ã¤ã§ã‚‚æ¡ä»¶å¼ã¨ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec 15 00:16:04 1994  Yukihiro Matsumoto  (matz@dyna)</div><div class='add'>+</div><div class='add'>+	* eval.c(Block): Blockã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’å®Ÿç¾ï¼Ž</div><div class='add'>+</div><div class='add'>+	* node.h: NODE_QLISTã¯ãªããªã£ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): å¼•æ•°ã¸ã®ä»£å…¥ã‚’åå‰ã§ä¸€ã¤ãšã¤ä»£å…¥ã™ã‚‹ã®ã‚’ã‚„ã‚ã¦ï¼Œ</div><div class='add'>+	  ä¸€åº¦ã«ã‚³ãƒ”ãƒ¼ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): rubyã§è¨˜è¿°ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰ã¸ã®å¼•æ•°æ¸¡ã—ã‚’inlineåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c: ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿åˆ¤å®šå‡¦ç†ã®å…¨é¢æ›¸ãæ›ãˆï¼Žä¸é©åˆ‡ãªã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿å‘¼ã³</div><div class='add'>+	  å‡ºã—ã‚’ãªãã—ãŸï¼Žä¾‹ãˆã°ã€Œ[foo(),bar()]{i|baz(i)}ã€ã§fooã‚‚barã‚‚ã‚¤</div><div class='add'>+	  ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã³å‡ºã•ã‚Œ*ãªã„*ï¼Ž</div><div class='add'>+</div><div class='add'>+	* eval.c(rb_call): SCOPEå‡¦ç†ã‚’inlineåŒ–ï¼Žãƒ¡ã‚½ãƒƒãƒ‰å‘¼ã³å‡ºã—ã®è‹¥å¹²ã®é«˜</div><div class='add'>+	  é€ŸåŒ–ï¼Ž</div><div class='add'>+</div><div class='add'>+Wed Dec 14 18:09:33 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* node.h: nodeã‚‚ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«ã™ã‚‹ï¼Žã‚ˆã£ã¦GCã§å›žåŽã•ã‚Œã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+Thu Dec  8 14:17:29 1994  Yukihiro Matsumoto  (matz@ix-02)</div><div class='add'>+</div><div class='add'>+	* 0.60 released - alpha test baseline.</div><div class='head'>diff --git a/doc/ChangeLog-1.8.0 b/doc/ChangeLog-1.8.0<br/>index d168a50f80..3f7d6bfb3c 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-1.8.0?h=v2_5_8&amp;id=a938a2748f7043aae56c377621f52de68d59d171'>doc/ChangeLog-1.8.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.8.0?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/ChangeLog-1.8.0</a></div><div class='hunk'>@@ -42,7 +42,7 @@ Sun Aug  3 23:56:50 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Sun Aug  3 22:07:47 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkentry.rb: support 'validatecommand' option of </div><div class='add'>+	* ext/tk/lib/tkentry.rb: support 'validatecommand' option of</div><div class='ctx'> 	  TkEntry/TkSpinbox widget</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/sample/{demos-en,demos-jp}/spin.rb: add</div><div class='hunk'>@@ -60,7 +60,7 @@ Sun Aug  3 18:03:44 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Sun Aug  3 08:53:06 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/{demos-en,demos-jp}/image3.rb: add </div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/image3.rb: add</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkcanvas.rb: bug fix on Tk object ID management</div><div class='ctx'> </div><div class='hunk'>@@ -84,7 +84,7 @@ Sat Aug  2 23:51:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Sat Aug  2 09:58:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix --- TkGrid failed to treat </div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- TkGrid failed to treat</div><div class='ctx'> 	  RELATIVE PLACEMENT</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/sample/demos-en/, demos-jp/: add or modify some</div><div class='hunk'>@@ -122,7 +122,7 @@ Sat Aug  2 14:02:39 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Sat Aug  2 09:58:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix --- forgot to entry a widget class </div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- forgot to entry a widget class</div><div class='ctx'> 	  name of 'labelframe' widget</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/sample/{demos-en,demos-jp}/{labelframe.rb,paned1.rb,</div><div class='hunk'>@@ -238,7 +238,7 @@ Fri Aug  1 09:54:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Fri Aug  1 04:58:55 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix --- forget to eval given block to </div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- forget to eval given block to</div><div class='ctx'> 	  TkRoot.new method</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/sample/tkoptdb-safeTk.rb: new sample script</div><div class='hunk'>@@ -255,13 +255,13 @@ Thu Jul 31 23:44:00 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jul 31 23:04:45 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/resource.en, ext/tk/sample/resource.jp: </div><div class='add'>+	* ext/tk/sample/resource.en, ext/tk/sample/resource.jp:</div><div class='ctx'> 	  wrong resource file format</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add Tk::Encoding.{encoding_convertfrom, </div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk::Encoding.{encoding_convertfrom,</div><div class='ctx'> 	  encoding_convertto}</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add TkOptionDB.read_with_encoding to read </div><div class='add'>+	* ext/tk/lib/tk.rb: add TkOptionDB.read_with_encoding to read</div><div class='ctx'> 	  non-utf8 resource file</div><div class='ctx'> </div><div class='ctx'> Thu Jul 31 23:02:47 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='hunk'>@@ -274,15 +274,15 @@ Thu Jul 31 20:52:40 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tk/lib/tk.rb: (IMPORTANT BUG FIX) scan of event keywords</div><div class='ctx'> 	  doesn't work on recent versions of Tck/Tk</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: initialize error of instance variable on </div><div class='add'>+	* ext/tk/lib/tk.rb: initialize error of instance variable on</div><div class='ctx'> 	  TkComposite</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: initialize error on encoding-system on </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: initialize error on encoding-system on</div><div class='ctx'> 	  MultiTkIp</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: trouble on destroying widgets</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/demos-en/, demos-jp/: add JP and EN version of </div><div class='add'>+	* ext/tk/sample/demos-en/, demos-jp/: add JP and EN version of</div><div class='ctx'> 	  Ruby/Tk widget demos</div><div class='ctx'> </div><div class='ctx'> Thu Jul 31 15:25:12 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='hunk'>@@ -311,13 +311,13 @@ Thu Jul 31 08:18:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jul 31 07:59:18 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: wrap the command-proc of TkScale --- pass </div><div class='add'>+	* ext/tk/lib/tk.rb: wrap the command-proc of TkScale --- pass</div><div class='ctx'> 	  the numeric object to the proc</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: better support for widgets created on </div><div class='add'>+	* ext/tk/lib/tk.rb: better support for widgets created on</div><div class='ctx'> 	  Tk interpreter (without Ruby)</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: a little more stable on Multiple Tk </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: a little more stable on Multiple Tk</div><div class='ctx'> 	  interpreters running</div><div class='ctx'> </div><div class='ctx'> Thu Jul 31 00:17:19 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='hunk'>@@ -411,17 +411,17 @@ Wed Jul 30 07:23:14 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkentry.rb: fix lack of methods for TkEntry</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb, ext/tk/lib/tk.rb, </div><div class='del'>-	  ext/tk/lib/tkdialog.rb, ext/tk/lib/tkentry.rb, </div><div class='add'>+	* ext/tk/lib/multi-tk.rb, ext/tk/lib/tk.rb,</div><div class='add'>+	  ext/tk/lib/tkdialog.rb, ext/tk/lib/tkentry.rb,</div><div class='ctx'> 	  ext/tk/sample/safe-tk.rb, ext/tk/sample/tktimer2.rb: bug fix</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_* accept a block to </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_* accept a block to</div><div class='ctx'> 	  eval under the new interpreter</div><div class='ctx'> </div><div class='ctx'> Wed Jul 30 04:36:30 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c, </div><div class='del'>-	  ext/tk/lib/tk.rb, ext/tk/lib/tkafter.rb: additional check of </div><div class='add'>+	* ext/tcltklib/tcltklib.c,</div><div class='add'>+	  ext/tk/lib/tk.rb, ext/tk/lib/tkafter.rb: additional check of</div><div class='ctx'> 	  Tk interpreters' status for a little more safety</div><div class='ctx'> </div><div class='ctx'> Wed Jul 30 02:37:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -514,14 +514,14 @@ Mon Jul 28 22:57:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Tue Jul 29 16:20:36 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c: bug fix and </div><div class='add'>+	* ext/tcltklib/tcltklib.c: bug fix and</div><div class='ctx'> 	  change mainloop_abort_on_no_widget_cmd =&gt; mainloop_abort_on_exception</div><div class='ctx'> 	  ( to avoid thread timing trouble on accessing destroyed widgets )</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: change default mode of </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: change default mode of</div><div class='ctx'> 	  mainloop_abort_on_exception on multi-tk.rb</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: fix a bug of the procedure for </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix a bug of the procedure for</div><div class='ctx'> 	  'Delete' button on the safe-Tk frmae</div><div class='ctx'> </div><div class='ctx'> Tue Jul 29 12:22:28 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='hunk'>@@ -541,8 +541,8 @@ Tue Jul 29 12:15:37 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Tue Jul 29 08:05:30 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb, ext/tk/lib/tkdialog.rb, ext/tk/lib/tktext.rb, </div><div class='del'>-	  ext/tk/sample/tkbiff.rb, ext/tk/sample/tkdialog.rb, </div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tkdialog.rb, ext/tk/lib/tktext.rb,</div><div class='add'>+	  ext/tk/sample/tkbiff.rb, ext/tk/sample/tkdialog.rb,</div><div class='ctx'> 	  ext/tk/sample/tkform.rb: bug fix ( tested with Ruby/Tk widget demo )</div><div class='ctx'> </div><div class='ctx'> Tue Jul 29 04:22:08 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='hunk'>@@ -571,7 +571,7 @@ Tue Jul 29 01:24:32 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tk/lib/multi-tk.rb: bug fix and pack options are pssed</div><div class='ctx'> 	  to the safeTk container</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/safe-tk.rb: add example for pack options of </div><div class='add'>+	* ext/tk/sample/safe-tk.rb: add example for pack options of</div><div class='ctx'> 	  safeTk container</div><div class='ctx'> </div><div class='ctx'> Mon Jul 28 23:23:08 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='hunk'>@@ -643,7 +643,7 @@ Sun Jul 27 19:35:06 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tcltklib/tcltklib.c: add some methods to support</div><div class='ctx'> 	  multiple interpreters (low level)</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/multi-tk.rb: new library to support multiple Tk </div><div class='add'>+	* ext/tk/lib/multi-tk.rb: new library to support multiple Tk</div><div class='ctx'> 	  interpreters (high level)</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/demo/safeTk.rb: new sample of safeTk interpreter</div><div class='hunk'>@@ -732,12 +732,12 @@ Fri Jul 26 00:04:25 2003  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Fri Jul 25 16:43:03 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c: add TclTkIp#create_slave, </div><div class='add'>+	* ext/tcltklib/tcltklib.c: add TclTkIp#create_slave,</div><div class='ctx'> 	  TclTkIp#_make_safe and TclTkIp#safe?</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/MANUAL.euc: modify descriptions</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: bug fix [ruby-talk:76980] and modify to </div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix [ruby-talk:76980] and modify to</div><div class='ctx'> 	  support multi Tk IPs</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkafter.rb: modify to support multi Tk IPs</div><div class='hunk'>@@ -747,10 +747,10 @@ Fri Jul 25 15:47:39 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='ctx'> 	* ext/openssl/extconf.rb: add check for BN_rand_range() and</div><div class='ctx'> 	  BN_pseudo_rand_range().</div><div class='ctx'> </div><div class='del'>-	* ext/openssl/ossl_bn.c (ossl_bn_s_rand_range): should raise </div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_rand_range): should raise</div><div class='ctx'> 	  NotImplementedError if BN_rand_range() wan not defined.</div><div class='ctx'> </div><div class='del'>-	* ext/openssl/ossl_bn.c (ossl_bn_s_pseudo_rand_range): should raise </div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_pseudo_rand_range): should raise</div><div class='ctx'> 	  NotImplementedError if BN_pseudo_rand_range() wan not defined.</div><div class='ctx'> </div><div class='ctx'> 	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_s_encrypt): avoid compiler</div><div class='hunk'>@@ -1110,7 +1110,7 @@ Thu Jul 17 13:42:53 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jul 17 06:40:28 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: recover and fix typo : Tk.chooseDirectory </div><div class='add'>+	* ext/tk/lib/tk.rb: recover and fix typo : Tk.chooseDirectory</div><div class='ctx'> 	  (Tk8.4 feature)</div><div class='ctx'> </div><div class='ctx'> Wed Jul 16 16:23:58 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -1139,7 +1139,7 @@ Tue Jul 15 14:38:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Tue Jul 15 03:30:41 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/syck/rubyext.c (syck_mark_emitter): forgot to rb_gc_mark the </div><div class='add'>+	* ext/syck/rubyext.c (syck_mark_emitter): forgot to rb_gc_mark the</div><div class='ctx'> 	  outgoing IO object.</div><div class='ctx'> </div><div class='ctx'> Sun Jul 13 14:55:36 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='hunk'>@@ -1196,7 +1196,7 @@ Fri Jul 11 16:09:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Fri Jul 11 07:17:47 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: not create a Tcl/Tk interpreter if already </div><div class='add'>+	* ext/tk/lib/tk.rb: not create a Tcl/Tk interpreter if already</div><div class='ctx'> 	  defined TkCore::INTERP</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: bugfix on TkWindow#configure</div><div class='hunk'>@@ -1306,7 +1306,7 @@ Thu Jul  3 14:22:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jul  3 12:13:05 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* lib/mkmf.rb (VPATH): convert from Windows form to Unix form on </div><div class='add'>+	* lib/mkmf.rb (VPATH): convert from Windows form to Unix form on</div><div class='ctx'> 	  MinGW.  This fixes the build with GNU make 3.80-1 for Cygwin.</div><div class='ctx'> </div><div class='ctx'> Wed Jul  2 23:27:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -1454,16 +1454,16 @@ Fri Jun 27 03:24:54 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='ctx'> Thu Jun 26 21:34:49 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* class.c (class_instance_method_list): get rid of warning about</div><div class='del'>-	  arguement type mismatch, and inline method_list().</div><div class='add'>+	  argument type mismatch, and inline method_list().</div><div class='ctx'> 	  [ruby-core:01198]</div><div class='ctx'> </div><div class='ctx'> Wed Jun 25 14:40:33 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add and modify methods --- </div><div class='del'>-	  TkWidget.database_class, TkWidget.database_classname, </div><div class='del'>-          TkWidget#database_class, TkWidget#database_classname </div><div class='add'>+	* ext/tk/lib/tk.rb: add and modify methods ---</div><div class='add'>+	  TkWidget.database_class, TkWidget.database_classname,</div><div class='add'>+          TkWidget#database_class, TkWidget#database_classname</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: instances of a subclass of TkToplevel or </div><div class='add'>+	* ext/tk/lib/tk.rb: instances of a subclass of TkToplevel or</div><div class='ctx'> 	  TkFrame are created with ":class=&gt;subclass" option as default.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/sample/tkoptdb.rb: add a new part</div><div class='hunk'>@@ -1478,7 +1478,7 @@ Wed Jun 25 05:49:10 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: add widget destroy hook binding to TkBindTag::ALL</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkcanvas.rb: Although requiring manual control of GC, </div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: Although requiring manual control of GC,</div><div class='ctx'> 	  memory eating problem of TkCanvas Items is fixed.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tktext.rb: add some methods and bug fix</div><div class='hunk'>@@ -1493,10 +1493,10 @@ Tue Jun 24 16:46:07 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tk/lib/tk.rb: bug fix on TkToplevel, TkFrame,</div><div class='ctx'> 	  TkPanedwindow, TkOptionDB</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: TkOptionDB --- make it more secure to use procs </div><div class='add'>+	* ext/tk/lib/tk.rb: TkOptionDB --- make it more secure to use procs</div><div class='ctx'> 	  defined on resourceDB</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/tkoptdb.rb, resource.ja, resource.en: </div><div class='add'>+	* ext/tk/sample/tkoptdb.rb, resource.ja, resource.en:</div><div class='ctx'> 	  sample script how to use TkOptionDB.</div><div class='ctx'> </div><div class='ctx'> Tue Jun 24 14:22:41 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='hunk'>@@ -1610,14 +1610,14 @@ Sun Jun 22 23:42:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='ctx'> </div><div class='ctx'> Sun Jun 22 16:17:02 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: TkRoot.new and TkToplevel.new accept Wm </div><div class='add'>+	* ext/tk/lib/tk.rb: TkRoot.new and TkToplevel.new accept Wm</div><div class='ctx'> 	  commands as elements</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: TkMenu --- add some methods</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: TkOptionMenubutton --- bug fix</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/tkmenubutton.rb: sample of TkMenubutton and </div><div class='add'>+	* ext/tk/sample/tkmenubutton.rb: sample of TkMenubutton and</div><div class='ctx'> 	  TkOptionMenubutton</div><div class='ctx'> </div><div class='ctx'> Sat Jun 21 23:15:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -1625,7 +1625,7 @@ Sat Jun 21 23:15:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> 	* eval.c (proc_invoke): should not propagate distination tag if</div><div class='ctx'> 	  tag is already handled in this level. (ruby-bugs-ja PR#501)</div><div class='ctx'> </div><div class='del'>-	* object.c (str_to_id): check for empty string before intern. </div><div class='add'>+	* object.c (str_to_id): check for empty string before intern.</div><div class='ctx'> 	  [ruby-talk:74006]</div><div class='ctx'> </div><div class='ctx'> Sat Jun 21 13:56:09 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='hunk'>@@ -1636,10 +1636,10 @@ Sat Jun 21 13:56:09 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Sat Jun 21 12:55:17 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: TkRoot.new and TkToplevel.new accept Wm commands </div><div class='del'>-	  as elements of a hash argument. </div><div class='add'>+	* ext/tk/lib/tk.rb: TkRoot.new and TkToplevel.new accept Wm commands</div><div class='add'>+	  as elements of a hash argument.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/sample/tktimer2.rb: add comments about the usage of a </div><div class='add'>+	* ext/tk/sample/tktimer2.rb: add comments about the usage of a</div><div class='ctx'> 	  TkTimer object.</div><div class='ctx'> </div><div class='ctx'> Sat Jun 21 08:47:22 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='hunk'>@@ -1647,10 +1647,10 @@ Sat Jun 21 08:47:22 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tk/lib/tk*.rb: remove direct-accesses to TkComm::INTERP and</div><div class='ctx'> 	  TkComm::INITIALIZE_TARGETS</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk*.rb: use TkINTERP_SETUP_SCRIPTS constant for setting </div><div class='add'>+	* ext/tk/lib/tk*.rb: use TkINTERP_SETUP_SCRIPTS constant for setting</div><div class='ctx'> 	  up the interpreter</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c: support to create a safe interpreter </div><div class='add'>+	* ext/tcltklib/tcltklib.c: support to create a safe interpreter</div><div class='ctx'> 	  with safe-Tk</div><div class='ctx'> </div><div class='ctx'> Fri Jun 20 23:28:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -1660,7 +1660,7 @@ Fri Jun 20 23:28:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Fri Jun 20 15:04:28 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* defines.h (PATH_ENV): name of PATH environment. [new]. </div><div class='add'>+	* defines.h (PATH_ENV): name of PATH environment. [new].</div><div class='ctx'> </div><div class='ctx'> 	* defines.h (ENV_IGNORECASE): define for case insensitive platforms</div><div class='ctx'> 	  to access environment variables.</div><div class='hunk'>@@ -1678,7 +1678,7 @@ Fri Jun 20 14:52:46 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Fri Jun 20 03:09:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (new_yield): distinguish "yield 1,2" and "yield [1,2]". </div><div class='add'>+	* parse.y (new_yield): distinguish "yield 1,2" and "yield [1,2]".</div><div class='ctx'> 	  [ruby-dev:20360]</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (rb_eval): support new_yield() change.</div><div class='hunk'>@@ -1688,7 +1688,7 @@ Fri Jun 20 03:09:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> 	  [ruby-list:36935]</div><div class='ctx'> </div><div class='ctx'> 	* parse.y (no_blockarg): separate no block argument check and</div><div class='del'>-	  ret_args argument processing. </div><div class='add'>+	  ret_args argument processing.</div><div class='ctx'> </div><div class='ctx'> Fri Jun 20 00:45:19 2003  NAKAMURA, Hiroshi &lt;nahi@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -1696,9 +1696,9 @@ Fri Jun 20 00:45:19 2003  NAKAMURA, Hiroshi &lt;nahi@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jun 19 22:51:41 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* lib/drb.rb, lib/drb/drb.rb, lib/drb/eq.rb, </div><div class='del'>-	  lib/drb/extserv.rb, lib/drb/extservm.rb, lib/drb/gw.rb, </div><div class='del'>-	  lib/drb/invokemethod.rb, lib/drb/observer.rb, </div><div class='add'>+	* lib/drb.rb, lib/drb/drb.rb, lib/drb/eq.rb,</div><div class='add'>+	  lib/drb/extserv.rb, lib/drb/extservm.rb, lib/drb/gw.rb,</div><div class='add'>+	  lib/drb/invokemethod.rb, lib/drb/observer.rb,</div><div class='ctx'> 	  lib/drb/timeridconv.rb, lib/drb/unix.rb: import drb-2.0.4b3</div><div class='ctx'> </div><div class='ctx'> Thu Jun 19 16:14:43 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='hunk'>@@ -1710,17 +1710,17 @@ Thu Jun 19 16:14:43 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/tcltklib.c: add TclTkLib::EventFlag::NONE ( == 0 )</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c: add set_no_event_wait() and </div><div class='add'>+	* ext/tcltklib/tcltklib.c: add set_no_event_wait() and</div><div class='ctx'> 	  get_no_event_wait()</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/MANUAL.euc: modify</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/README.euc: ditto</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: change default value of TkCore.do_one_event </div><div class='add'>+	* ext/tk/lib/tk.rb: change default value of TkCore.do_one_event</div><div class='ctx'> 	  argument</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add TkCore.set_no_event_wait(wait) and </div><div class='add'>+	* ext/tk/lib/tk.rb: add TkCore.set_no_event_wait(wait) and</div><div class='ctx'> 	  TkCore.get_no_event_wait</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: add Tk.exit ( == destroy root widget )</div><div class='hunk'>@@ -1730,7 +1730,7 @@ Thu Jun 19 16:14:43 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkafter.rb: set_callback returns self</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkafter.rb: continue() raises an exception, if already </div><div class='add'>+	* ext/tk/lib/tkafter.rb: continue() raises an exception, if already</div><div class='ctx'> 	  running or no procedure.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkafter.rb: skip() raises an exception, if not running.</div><div class='hunk'>@@ -1768,15 +1768,15 @@ Wed Jun 18 19:46:21 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: rename 'no_create' option to 'without_creating'</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add TkWindow#pack_in, TkWindow#grid_in, </div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#pack_in, TkWindow#grid_in,</div><div class='ctx'> 	  TkWindow#place_in</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: add TkWindow#bind_class and TkWindow#database_class</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add TkBindTag.new_by_name and TkDatabaseClass </div><div class='add'>+	* ext/tk/lib/tk.rb: add TkBindTag.new_by_name and TkDatabaseClass</div><div class='ctx'> 	  for binding to database class</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: check varname whether already exsist or not. </div><div class='add'>+	* ext/tk/lib/tk.rb: check varname whether already exsist or not.</div><div class='ctx'> 	  (TkVarAccess.new)</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: TkTextWin#bbox returns an array of four numbers</div><div class='hunk'>@@ -1788,21 +1788,21 @@ Wed Jun 18 19:46:21 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: TkBindTag.new accepts a block</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: If given taglist, TkWindow#bindtags(taglist) </div><div class='add'>+	* ext/tk/lib/tk.rb: If given taglist, TkWindow#bindtags(taglist)</div><div class='ctx'> 	  returns taglist</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: add TkWindow#bindtags=(taglist)</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: Tk.focue and Tk.focus_lastfor return nil </div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.focue and Tk.focus_lastfor return nil</div><div class='ctx'> 	  if there is no target widget.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: Tk::Wm.client returns the argument string </div><div class='add'>+	* ext/tk/lib/tk.rb: Tk::Wm.client returns the argument string</div><div class='ctx'> 	  when setting name</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: TkGrid.columnconfiginfo and rowconfiginfo </div><div class='add'>+	* ext/tk/lib/tk.rb: TkGrid.columnconfiginfo and rowconfiginfo</div><div class='ctx'> 	  given a slot return a number.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: TkWindow.grid_columnconfiginfo and </div><div class='add'>+	* ext/tk/lib/tk.rb: TkWindow.grid_columnconfiginfo and</div><div class='ctx'> 	  grid_rowconfiginfo --- ditto</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: rename and define alias :: TkOption ==&gt; TkOptionDB</div><div class='hunk'>@@ -1813,10 +1813,10 @@ Wed Jun 18 19:46:21 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: some TkComm methods change to module functions</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: add support for -displayof option to some </div><div class='add'>+	* ext/tk/lib/tk.rb: add support for -displayof option to some</div><div class='ctx'> 	  TkWinfo methods</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk.rb: bind, bind_append and bind_remove --- </div><div class='add'>+	* ext/tk/lib/tk.rb: bind, bind_append and bind_remove ---</div><div class='ctx'> 	  returns the target of event-binding</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: add Tk8.4 features</div><div class='hunk'>@@ -1837,7 +1837,7 @@ Wed Jun 18 19:46:21 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkentry.rb: TkEntry#bbox returns an array of four numbers</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkentry.rb: scan validatecommand arguments and </div><div class='add'>+	* ext/tk/lib/tkentry.rb: scan validatecommand arguments and</div><div class='ctx'> 	  convert to proper type</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkbgerror.rb: support to define a error handler by user</div><div class='hunk'>@@ -1932,7 +1932,7 @@ Fri Jun 13 09:24:39 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='ctx'> Thu Jun 12 22:13:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb : add 'no_create' option to widget</div><div class='del'>-	  initialize method. </div><div class='add'>+	  initialize method.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/MANIFEST : forgot to commit when added tkmacpkg.rb</div><div class='ctx'> 	  and tkwinpkg.rb</div><div class='hunk'>@@ -1947,7 +1947,7 @@ Thu Jun 12 21:14:11 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	* ext/tk/lib/tkmacpkg.rb : Mac resource (not new but not</div><div class='ctx'> 	  included until now)</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkwinpkg.rb : Win DDE and registry (not new but not </div><div class='add'>+	* ext/tk/lib/tkwinpkg.rb : Win DDE and registry (not new but not</div><div class='ctx'> 	  included until now)</div><div class='ctx'> </div><div class='ctx'> Tue Jun 10 14:26:30 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='hunk'>@@ -3361,7 +3361,7 @@ Fri Apr 11 02:41:35 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Apr 10 21:12:19 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='ctx'> </div><div class='del'>-	* lib/net/pop.rb: Exception line was accidentaly removed.</div><div class='add'>+	* lib/net/pop.rb: Exception line was accidentally removed.</div><div class='ctx'> 	  [ruby-dev:19989]</div><div class='ctx'> </div><div class='ctx'> Thu Apr 10 18:42:13 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='hunk'>@@ -5986,7 +5986,7 @@ Thu Nov  7 09:51:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='ctx'> Wed Nov  6 16:57:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* class.c (rb_define_method): do not set NOEX_CFUNC if klass is</div><div class='del'>-	  really a module, whose methods must be safe for reciever's type.</div><div class='add'>+	  really a module, whose methods must be safe for receiver's type.</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (rb_eval): nosuper should not be inherited unless the</div><div class='ctx'> 	  overwritten method is an undef placeholder.</div><div class='hunk'>@@ -8346,7 +8346,7 @@ Tue Jun  4 07:03:33 2002  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tkfont.rb:  Fix bugs on TkFont.init_widget_font for Tk8.x.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkafter.rb: Add self to 1st argument of interval- </div><div class='add'>+	* ext/tk/lib/tkafter.rb: Add self to 1st argument of interval-</div><div class='ctx'> 	  and loop-proc</div><div class='ctx'> 	  TkAfter#current_interval returns an interval (sleep) time value</div><div class='ctx'> 	  TkAfter#current_args returns an array of arguments</div><div class='hunk'>@@ -8354,7 +8354,7 @@ Tue Jun  4 07:03:33 2002  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk*.rb: Allow to use Symbols for parameters.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tkcanvas.rb: (TkcItem) Add 'coords' parameter to the </div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: (TkcItem) Add 'coords' parameter to the</div><div class='ctx'> 	  canvas item constructor (for new notation of constructor).</div><div class='ctx'> </div><div class='ctx'> 	* ext/tcltklib/tcltklib.c: New 'mainloop' and 'mainloop_watchdog'.</div><div class='hunk'>@@ -8363,7 +8363,7 @@ Tue Jun  4 07:03:33 2002  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> 	  'use' parameter.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: Add new parameter 'widgetname' to the widget</div><div class='del'>-	  constructor to support effective use of Resource Database. </div><div class='add'>+	  constructor to support effective use of Resource Database.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk.rb: TkOption::get always returns a tainted string.</div><div class='ctx'> </div><div class='hunk'>@@ -10516,6 +10516,11 @@ Thu Jan 17 16:21:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> 	* eval.c (block_pass): should allow block argument relay even in</div><div class='ctx'> 	  the tainted mode.</div><div class='ctx'> </div><div class='add'>+Thu Jan 17 09:43:05 2002  TAKAHASHI Kaoru  &lt;kaoru@kaisei.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-add-log-current-method): New function</div><div class='add'>+	for `add-log-current-defun-function'.</div><div class='add'>+</div><div class='ctx'> Thu Jan 17 04:51:48 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/socket/socket.c: support subclassing by proper "initialize"</div><div class='hunk'>@@ -13758,7 +13763,7 @@ Tue Apr 17 17:33:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (handle_rescue): use === to compare exception match.</div><div class='ctx'> </div><div class='del'>-	* error.c (syserr_eqq): comparison between SytemCallErrors should</div><div class='add'>+	* error.c (syserr_eqq): comparison between SystemCallErrors should</div><div class='ctx'> 	  based on their error numbers.</div><div class='ctx'> </div><div class='ctx'> Tue Apr 17 16:54:39 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='hunk'>@@ -21231,7 +21236,7 @@ Sun Jan  3 01:37:58 1999  Takao KAWAMURA  &lt;kawamura@ike.tottori-u.ac.jp&gt;</div><div class='ctx'> Sat Jan  2 17:09:06 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (rb_jump_tag): new api to invoke JUMP_TAG.  tag values</div><div class='del'>-	  can obtained from rb_eval_string_protect()/rb_load_protect().</div><div class='add'>+	  can be obtained from rb_eval_string_protect()/rb_load_protect().</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (rb_rescue): now catches all exceptions but SystemExit.</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-1.9.3 b/doc/ChangeLog-1.9.3<br/>new file mode 100644<br/>index 0000000000..eecfc44325<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.9.3?h=v2_5_8&amp;id=4992d9fd706a9cbe98c4b94e2dbcfc10e317e091'>doc/ChangeLog-1.9.3</a></div><div class='hunk'>@@ -0,0 +1,92772 @@</div><div class='add'>+Sun Jul 10 22:50:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): fix</div><div class='add'>+	  precision treatment errors.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.</div><div class='add'>+	  fix precision treatment errors.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_power): precision argument</div><div class='add'>+	  should be optional for its compatibility.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 22:38:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (var_ref): distinguish vcall from local variable</div><div class='add'>+	  references.  based on a patch by Michael Edgar michael.j.edgar</div><div class='add'>+	  AT dartmouth.edu.  Bug #5002</div><div class='add'>+</div><div class='add'>+Sun Jul 10 21:51:29 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: add comments (cautions).</div><div class='add'>+</div><div class='add'>+Sun Jul 10 20:59:38 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Add new class variable `@@testfile_prefix`.</div><div class='add'>+	  This is for changing test name prefix. (For testing)</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_first.rb: Renamed from</div><div class='add'>+	  test_first.rb</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_second.rb: Renamed from</div><div class='add'>+	  test_second.rb</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_third.rb: Renamed from</div><div class='add'>+	  test_third.rb</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_forth.rb: Renamed from</div><div class='add'>+	  test_forth.rb</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/runner.rb: Remove misc.rb</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_first.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_second.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_third.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/ptest_forth.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/misc.rb: Removed because no longer</div><div class='add'>+	  needed.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb: Fix assertions for above.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 16:57:08 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_throw): check a class frame.</div><div class='add'>+	  Fixes Bug #4648.</div><div class='add'>+	  The patch is contributed by Kazuki Tsujimoto.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 17:28:01 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (mutex_debug): use exit(EXIT_FAILURE) instead of</div><div class='add'>+	  exit(1).</div><div class='add'>+	* thread_pthread.c (add_signal_thread_list): ditto.</div><div class='add'>+	* thread.c (rb_thread_call_with_gvl): ditto.</div><div class='add'>+	* util.c (Bug): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 15:58:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Merge json gem 1.5.4+ (f7f78896607b6f6226cd).</div><div class='add'>+	  [Bug #4700]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 16:41:32 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (typedef struct rb_vm_struct): create a new</div><div class='add'>+	  'inhibit_thread_creation' field.</div><div class='add'>+	* thread.c (rb_thread_terminate_all): set inhibit_thread_creation.</div><div class='add'>+	* thread.c (thread_s_new): don't permit to create new thread</div><div class='add'>+	  if the VM is under destruction. Otherwise evil finalizer code</div><div class='add'>+	  can make SEGV. [Bug #4992][ruby-core:37858]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_objectspace.rb: new test for this fix.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 16:06:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsegv): use abort() instead of exit() when nested</div><div class='add'>+	  SEGV was happen. Because unnested SEGV use abort().</div><div class='add'>+	  [Bug #5013][ruby-dev:44078]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 15:30:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_autoload): prevent to autoload for singleton</div><div class='add'>+	  classes.  fixes [Bug #4886] [ruby-dev:43816]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_autoload.rb: add tests for the above change.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 15:09:17 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: Import documentation patch by Justin</div><div class='add'>+	  Collins. [ruby-core:37225] [Feature #4903]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 14:57:36 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: canonicalizes nth and sf.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 14:13:50 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h (rb_thread_call_with_gvl, rb_thread_call_without_gvl):</div><div class='add'>+	  make them visible as experimental C APIs.  fixes Feature #4328.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 12:18:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_power): support non-integral</div><div class='add'>+	  exponent.  fixes [Bug #3271]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_power_op): add a function to</div><div class='add'>+	  only use for "**" operator.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add a bunch of tests for the</div><div class='add'>+	  above changes.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_integer): add an utility function.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_negative): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_positive): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_zero): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_one): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_even): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 12:08:39 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (when_vals): when a string literal is written on when</div><div class='add'>+	  clause, skip string creation to make it faster.  [ruby-dev:44068]</div><div class='add'>+	  [Feature #5000]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 11:35:29 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reduce_nodes_gen): NODE_RETURN in rescue body must not be</div><div class='add'>+	  reduced when there is an else clause.  This caused bizarre behavior</div><div class='add'>+	  in [Bug #4473] [ruby-core:35629] [ruby-core:37884].</div><div class='add'>+</div><div class='add'>+Sun Jul 10 09:46:14 2011  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_max): fix behavior with excluded end value.</div><div class='add'>+	  [Bug #4591]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 09:13:18 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS:  Fix RubyGems version.  [Ruby 1.9 - Bug #5004]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 20:01:59 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: rb_rational_reciprocal is defined in rational.c.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 19:48:31 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: added declarations.</div><div class='add'>+	* complex.c: followed the above change.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 17:24:41 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: bigdecimal is not a builtin.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 17:17:53 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: some improvements for performance.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 16:56:01 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* atomic.h (ATOMIC_OR): _InterlockedOr is unavailable in VC6.</div><div class='add'>+</div><div class='add'>+	* numeric.c (ULLONG_MAX): fallback definition.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 15:59:19 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_{read,write}): should be signed.</div><div class='add'>+	  Bug #5001</div><div class='add'>+</div><div class='add'>+Sat Jul  9 14:02:20 2011  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb: fix multipart form parsing bug. [Bug #3866]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 11:41:03 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Add Vector#normalize [ruby-dev:43829]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 09:25:06 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c:  Remove "enumeration sequenced by".</div><div class='add'>+	  [Ruby 1.9 - Bug #4757]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 09:14:56 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c:  Note that methods other than IO#gets may increase IO#lineno.</div><div class='add'>+	  [Ruby 1.9 - Bug #4902]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 08:39:39 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RUN_OPT): disable gems.</div><div class='add'>+</div><div class='add'>+Sat Jul  9 08:37:05 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): close(2) on a fd which is being read by</div><div class='add'>+	  another thread causes deadlock on Mac OS X 10.5</div><div class='add'>+</div><div class='add'>+Fri Jul  8 21:20:39 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: use USE_ELF instead of __ELF__ because Solaris</div><div class='add'>+	  doesn't define it. USE_ELF is already provided by configure.</div><div class='add'>+	  patched by Naohisa Goto. [ruby-dev:44066] [Bug #4998]</div><div class='add'>+</div><div class='add'>+	* addr2line.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 16:40:38 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.rl (convert_encoding): should not modify</div><div class='add'>+	  the argument.</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.rl (convert_encoding): no needs to use</div><div class='add'>+	  force_encoding.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 15:53:31 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): get rid of segfault after all threads</div><div class='add'>+	  disposed.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 15:01:06 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: include openssl/e_os2.h before checking the</div><div class='add'>+	  definition of OPENSSL_SYS_WIN32.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 14:40:39 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wunlink): reverted a part of r32426. it was mistakenly</div><div class='add'>+	  mixed.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 14:29:47 2011  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: can't subtract void *.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 14:33:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define GC_MARK_STACKFRAME_WORD.</div><div class='add'>+	  fixed build problem of r32438.  the value (30) is temporary value.</div><div class='add'>+	  maybe it's enough by 20~24 according to my observation.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 13:47:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_unlock_all): folded into</div><div class='add'>+	  rb_threadptr_unlock_all_locking_mutexes.</div><div class='add'>+	* thread.c (rb_threadptr_unlock_all_locking_mutexes) ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 13:36:02 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_unlock_all_locking_mutexes): rename to</div><div class='add'>+	  rb_threadptr_unlock_all_locking_mutexes and remove static.</div><div class='add'>+	* vm_core.h: add rb_threadptr_unlock_all_locking_mutexes declaration.</div><div class='add'>+	* thread.c (thread_start_func_2): adjust the above rename.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): call rb_threadptr_unlock_all_locking_mutexes</div><div class='add'>+	  again after finalizer. [Bug #4988] [ruby-dev:44049]</div><div class='add'>+</div><div class='add'>+Fri Jul  8 13:06:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (FIBER_MACHINE_STACK_ALLOCATION_SIZE): Fiber stack size</div><div class='add'>+	  don't need to keep multiple number of sizeof(VALUE).</div><div class='add'>+</div><div class='add'>+Fri Jul  8 11:39:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (sudo-precheck): true command is not standard on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 10:39:52 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_destroy): fix cond_t leak.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 09:17:59 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c:  Improve documentation</div><div class='add'>+</div><div class='add'>+Thu Jul  7 23:35:31 2011  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: change water_mark value that may call</div><div class='add'>+	  gc_mark(lev &lt;= GC_LEVEL_MAX) in gc_mark().</div><div class='add'>+	  In ruby_stack_check(), water_mark is a value that may call some</div><div class='add'>+	  C function. Fixes Bug #3781</div><div class='add'>+</div><div class='add'>+	* configure.in: define GC_MARK_STACKFRAME_WORD that approximate</div><div class='add'>+	  size of gc_mark() and gc_mark_children() stackframes.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 17:55:05 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb (TestParallelWorker#teardown): wait</div><div class='add'>+	  the child process even if the communication pipe is broken.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 15:44:42 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_index, rb_enc_associate_index): should</div><div class='add'>+	  check if frozen.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3), ruby.c (process_options, ruby_script):</div><div class='add'>+	  defer freezing after associating encodings.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 15:16:51 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2ull): use own switch sentence.</div><div class='add'>+	  Current implementation can't convert 18446744073709551615.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 06:56:15 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (FIBER_STACK_FLAGS): workaround fix for r32420 on FreeBSD.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 06:46:12 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb:  Add difference column to report that averages</div><div class='add'>+	  across all runs of a benchmark.  [Ruby 1.9 - Feature #4982]</div><div class='add'>+</div><div class='add'>+Thu Jul  7 06:19:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Reduce requires to improve `make benchmark`.</div><div class='add'>+	  [#4962]</div><div class='add'>+	* lib/rubygems/specification.rb:  Delay initialization of rubygems</div><div class='add'>+	  until require is called.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 04:31:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): rescue_mod is in inverse order from other</div><div class='add'>+	  modifiers.  patched by michael.j.edgar AT dartmouth.edu at</div><div class='add'>+	  [ruby-core:36248].  fixed #4716.</div><div class='add'>+</div><div class='add'>+Thu Jul  7 00:40:16 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): check that the process exited or not before</div><div class='add'>+	  terminating it. [Bug #4943]</div><div class='add'>+</div><div class='add'>+Wed Jul  6 23:13:19 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (opt_call_args): allow trailing comma after assoc</div><div class='add'>+	  argument e.g. 'foo(bar:1,)'.  fixed #3456</div><div class='add'>+</div><div class='add'>+Wed Jul  6 22:11:12 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb(test_cgi_header_nph): Validate date in</div><div class='add'>+	  "Date:" header</div><div class='add'>+</div><div class='add'>+Wed Jul  6 21:29:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_machine_stack_alloc): cleanup pointer arithmetic.</div><div class='add'>+	  "size/sizeof(VALUE)" is ugly and easy confusing.</div><div class='add'>+	* cont.c (fiber_initialize_machine_stack_context): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 21:24:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_machine_stack_alloc): fix mprotect misuse. A stack</div><div class='add'>+	  guard page should have PROT_NONE.</div><div class='add'>+	* cont.c (fiber_initialize_machine_stack_context):</div><div class='add'>+	  th-&gt;machine_stack_maxsize shouldn't be included guard pages size.</div><div class='add'>+	  [Bug #4983][ruby-dev:44043]</div><div class='add'>+</div><div class='add'>+Wed Jul  6 21:23:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_machine_stack_alloc): use MAP_STACK if it's provided.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 21:22:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_machine_stack_alloc): use MAP_FAILED instead of -1.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 21:21:05 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_machine_stack_alloc): remove unnecessary cast.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 18:10:13 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb(test_cgi_header_nph): Adding space after</div><div class='add'>+	  comma.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb(test_cgi_header_nph): Remove variable</div><div class='add'>+	  `now`. Suppress warning.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 12:18:09 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb(test_cgi_header_nph): Fix bug depends to</div><div class='add'>+	  time. The test fails if time past 1 second in line 136-145</div><div class='add'>+</div><div class='add'>+Tue Jul  5 15:28:04 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_here_document): should dispatch heredoc_end</div><div class='add'>+	  scanner event on an empty here document.  fixed Bug#4543.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 13:49:26 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: fix r32407 to check HAVE_ALLOCA_H.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 14:05:43 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb (_authenticate):</div><div class='add'>+	  Literal texts in HTTP ABNF is case-insensitive (RFC2616 2.1),</div><div class='add'>+	  and a sample implementation in RFC2617 also ignores the case</div><div class='add'>+	  of algorithms. So now this ignores those cases.</div><div class='add'>+	  [ruby-dev:43965] [Feature #4936]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb (initialize):</div><div class='add'>+	  Because of above, opera_hack is useless and removed.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 01:30:01 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): cut the waiting time up to</div><div class='add'>+	  100,000,000 because Solaris cond_timedwait() return EINVAL if an</div><div class='add'>+	  argument is greater than current_time + 100,000,000.  This is</div><div class='add'>+	  considered as a kind of spurious wakeup.  The caller to native_sleep</div><div class='add'>+	  should care about spurious wakeup.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 01:24:26 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: disable FIBER_USE_NATIVE on Solaris because resuming any</div><div class='add'>+	  Fiber caused SEGV.  I haven't follow up the issue deeply, but it</div><div class='add'>+	  works when disabling the feature.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 01:22:46 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: include &lt;alloca.h&gt; to fix a build issue on Solaris.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 00:49:05 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c: resurrect r32071 + add GC guard for</div><div class='add'>+	  rb_coverages. [ruby-core:37352] [Bug #4927]</div><div class='add'>+	  [ruby-core:36539] [Feature #4796]</div><div class='add'>+</div><div class='add'>+	* test/coverage/test_coverage.rb resurrect r32071.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 22:24:46 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): For NetBSD/FreeBSD, use</div><div class='add'>+	  pthread_attr_getstack() if possible. and, remove an assumption</div><div class='add'>+	  of stack growing direction.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 20:42:31 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c: revert r32071.  The commit caused SEGV on</div><div class='add'>+	  some minor nonfree OS.  I have no means of debugging the bug.  My</div><div class='add'>+	  personal opinion is that such OS should be unsupported unless there</div><div class='add'>+	  is an active maintainer.  [ruby-core:37352]</div><div class='add'>+</div><div class='add'>+	* test/coverage/test_coverage.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 07:14:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): the return address of get_stack</div><div class='add'>+	  must be the highest address of the current thread's stack.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 06:37:22 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, thread_pthread.c (rb_reserved_fd_p,</div><div class='add'>+	  RB_RESERVED_FD_P): added.  This C API is to limit to access</div><div class='add'>+	  fds which are used by RubyVM internal.  In this version of</div><div class='add'>+	  CRuby, return 1 if fd is communication pipe.</div><div class='add'>+	  If your application needs to close all file descriptors to</div><div class='add'>+	  present resource leak, skip internal fds using this C API.</div><div class='add'>+	  We also define a macro RB_RESERVED_FD_P(fd).  So you can write</div><div class='add'>+	    #ifndef RB_RESERVED_FD_P</div><div class='add'>+	    #define RB_RESERVED_FD_P(fd) 0</div><div class='add'>+	    #endif</div><div class='add'>+	  for Ruby 1.9.2 or previous version to write compatible extensions.</div><div class='add'>+	  See [ruby-core:37727]</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (rb_reserved_fd_p): added (return 0 for any fds).</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): raise ArgumentError if given fd is reserved by Ruby.</div><div class='add'>+</div><div class='add'>+Sun Jul  3 23:43:56 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): suppresses outputs from extconf.rb.</div><div class='add'>+	  (extmake) warns a failure in extconf.rb.</div><div class='add'>+</div><div class='add'>+Sun Jul  3 13:44:51 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_reject_bang): should not remove elements which are</div><div class='add'>+	  not yielded.  [Bug #2545]</div><div class='add'>+</div><div class='add'>+Sun Jul  3 06:10:26 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): pthread_attr_getstack() doesn't</div><div class='add'>+	  return stack start address, but stack base address. Thus,</div><div class='add'>+	  we need to add stack size for getting stack start address.</div><div class='add'>+	  And, we don't have to decrease guard size twice.</div><div class='add'>+	* thread_pthread.c (thread_start_func_1): don't use inaccurate</div><div class='add'>+	  stack start guess if native_thread_init_stack() can be used.</div><div class='add'>+	  [Bug #1813] [ruby-core:24540]</div><div class='add'>+</div><div class='add'>+Sun Jul  3 04:50:08 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): add to a care of guard page on Mac</div><div class='add'>+	  OS X. [Bug #1813] [ruby-core:24540]</div><div class='add'>+	* signal.c (ruby_signal): SIGBUS use alternative stack too.</div><div class='add'>+	* signal.c (sigbus): On Mac, thread stack overflow makes SIGBUS</div><div class='add'>+	  instead of SIGSEGV. thus, added stackoverflow check.</div><div class='add'>+	* signal.c (default_handler): get rid of compilation warning.</div><div class='add'>+	* signal.c (Init_signal): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 02 08:59:20 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ocsp.rb</div><div class='add'>+	* test/openssl/test_x509_cert.rb: Perform SHA-256 tests only if</div><div class='add'>+	  supported by the available OpenSSL version. Versions &lt; 0.9.8 don't</div><div class='add'>+	  support it. [ruby-core:37724]</div><div class='add'>+</div><div class='add'>+Sat Jul  2 07:17:45 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reject_bang, rb_ary_delete_if): rejected</div><div class='add'>+	  elements should be removed.  fixed [Bug #2545]</div><div class='add'>+</div><div class='add'>+Sat Jul  2 01:57:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: remove a description of Kernel#respond_to? because it has</div><div class='add'>+	  been reverted at revision 28564.</div><div class='add'>+</div><div class='add'>+Sat Jul  2 00:58:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: describe a change of multiplication of Bignum.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 18:52:31 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_erb.rb: increase loop count. too short</div><div class='add'>+	  measurement time makes less accuracy.</div><div class='add'>+	* benchmark/bm_app_factorial.rb: ditto.</div><div class='add'>+	* benchmark/bm_app_mandelbrot.rb: ditto.</div><div class='add'>+	* benchmark/bm_app_strconcat.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_file_create.rb: ditto.</div><div class='add'>+	* benchmark/bm_io_file_read.rb: ditto.</div><div class='add'>+	* benchmark/bm_io_file_write.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_concatenate.rb: ditto.</div><div class='add'>+	* benchmark/bm_so_lists.rb: ditto.</div><div class='add'>+	* benchmark/bm_so_matrix.rb: ditto.</div><div class='add'>+	* benchmark/bm_so_random.rb: ditto.</div><div class='add'>+	* benchmark/bm_so_sieve.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm_thread_mutex1.rb: ditto.</div><div class='add'>+	* benchmark/bm_vm_thread_mutex2.rb: ditto.</div><div class='add'>+	* benchmark/bm_vm_thread_mutex3.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm1_block.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_const.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_ensure.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_ivar.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_length.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_neq.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_not.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_rescue.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_simplereturn.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm1_swap.rb: cleanup.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_array.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_case.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_defined_method.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_eval.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_method.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_mutex.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_poly_method.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_poly_method_ov.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_proc.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_regexp.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_send.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_super.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_unif1.rb: cleanup.</div><div class='add'>+	* benchmark/bm_vm2_zsuper.rb: cleanup.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm_thread_alive_check1.rb: cleanup.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:23:00 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix: Add LUP decomposition</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:21:14 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Allow non integer exponents for Matrix#**</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:13:25 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix: Add Eigenvalue Decomposition</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:10:22 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix: Add Matrix#round</div><div class='add'>+</div><div class='add'>+Fri Jul  1 11:41:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): free heap ptr when the str is not embedded.</div><div class='add'>+	  patched by Eric Wong. [Bug #4956] [ruby-core:37708]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 11:07:43 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): fix memory leak.</div><div class='add'>+	  Patch by Eric Wong. Thank you! [Bug #4953] [ruby-core:37702]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 08:21:28 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_getivar): check vm state version</div><div class='add'>+	  to invalidate inline cache (ivar index).</div><div class='add'>+	  fixes Bug #4926.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_setivar): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 08:03:15 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c, thread_pthread.c (WRITE_CONST): suppress warnings</div><div class='add'>+	  `ignoring return value'.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 06:41:36 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_check_signal): only wake up main thread.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_common): check signal</div><div class='add'>+	  delivery if it is main thread.</div><div class='add'>+	  fixes [ruby-dev:44005] [Ruby 1.9 - Bug #4950]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_fork.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_get_next_signal): skip if signal_buff is empty.</div><div class='add'>+	  (check signal_buff.size first)</div><div class='add'>+</div><div class='add'>+	* vm_core.h: remove unused variable rb_thread_t::exec_signal.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_check_trap_pending): check</div><div class='add'>+	  rb_signal_buff_size() because rb_thread_t::exec_signal</div><div class='add'>+	  is no longer available.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 03:28:25 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (Init_class_hierarchy): should name BasicObject</div><div class='add'>+	  explicitly.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_0): should not check for</div><div class='add'>+	  superclasses as const_get.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 03:24:03 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: mathn is still alive (should die soon).</div><div class='add'>+</div><div class='add'>+Thu Jun 30 23:50:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-indent-beg-re): Fix broken regular</div><div class='add'>+	  expression.  Fixes #4546</div><div class='add'>+</div><div class='add'>+Thu Jun 30 23:43:30 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c/.h: Added ossl_x509_name_sk2ary.</div><div class='add'>+	* ext/openssl/ossl.c: Replaced ossl_x509_ary2k by generic macro to</div><div class='add'>+	  simplify future conversions.</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Implement SSLSocket#client_ca.</div><div class='add'>+	* test/openssl/test_ssl.rb: Add test for SSLSocket#client_ca.</div><div class='add'>+	  Thanks to Ippei Obayashi for providing the patch!</div><div class='add'>+	  [ Ruby 1.9 - Feature #4481 ] [ruby-core:35461]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 22:38:58 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_defined_method.rb: added to measure performance of</div><div class='add'>+	  bmethod (method defined by define_method()).</div><div class='add'>+</div><div class='add'>+Thu Jun 30 22:17:04 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_bmethod): fix to hook call/return event</div><div class='add'>+	  for methods defined by define_method().  fixes Bug #4613.</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc): Fix to skip if class is not given (0).</div><div class='add'>+	  Note that ID and Class object are passed for call/return event</div><div class='add'>+	  if the called method was defined by define_method().</div><div class='add'>+	  If you are author of tracer/profiler/debugger, this may be an</div><div class='add'>+	  important change.  You should check passed class as zero or</div><div class='add'>+	  non-zero instead of checking the event type.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 21:18:35 2011  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add warnflags for XL/C on AIX during configure</div><div class='add'>+	  to avoid [Bug #3971]. See [ruby-core:32859]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 21:16:04 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (m_ajd): refers a constant.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 20:54:25 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	  * ext/io/console/io-console.gemspec: spin-off gem for 1.9.2.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 20:36:23 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: trivial changes.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 20:12:36 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: tests for [Bug #3422] and [Bug #3423].</div><div class='add'>+</div><div class='add'>+Thu Jun 30 20:03:39 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: modified doc.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 19:09:19 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): ignore unknown errno.</div><div class='add'>+	  (we observed that select(2) was canceled by errno=514 on</div><div class='add'>+	  boron == Linux/Xen environment)</div><div class='add'>+</div><div class='add'>+Thu Jun 30 17:33:25 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (ObjectSpace.count_tdata_objects):</div><div class='add'>+	  Fix rdoc.  Fixes Bug #3892.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (ObjectSpace.count_tdata_objects):</div><div class='add'>+	  Change key type if the klass of a object is zero (internal object).</div><div class='add'>+	  Read rdoc for details.</div><div class='add'>+</div><div class='add'>+	* internal.h: export rb_objspace_data_type_name().</div><div class='add'>+</div><div class='add'>+Thu Jun 30 17:25:08 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ping_signal_thread_list, thread_timer):</div><div class='add'>+	  fix to keep polling state if there are any ping-tasks.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 12:25:34 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): allocate</div><div class='add'>+	  machine stack for the timer thread at least 12KB.  FreeBSD 8.2</div><div class='add'>+	  AMD64 causes machine stack overflow (SIGSEGV) only with</div><div class='add'>+	  PTHREAD_STACK_MIN (maybe defined as 2KB).</div><div class='add'>+</div><div class='add'>+Thu Jun 30 09:36:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb:  Attach documentation to WeakRef and add missing</div><div class='add'>+	  documentation</div><div class='add'>+</div><div class='add'>+Thu Jun 30 09:30:14 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb:  Document toplevel YAML and YAML::ENGINE to describe</div><div class='add'>+	  Psych vs Syck engines.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 09:21:52 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb:  Hide handle_no_method_error from RDoc.</div><div class='add'>+	* error.c:  Document or hide undocumented error classes.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 07:49:04 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c:  Document ENV</div><div class='add'>+</div><div class='add'>+Thu Jun 30 06:37:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): ensure RUBYLIB_PREFIX stored</div><div class='add'>+	  before RUBYLIB, even if MANGLED_PATH is enabled.  fixed #1679.</div><div class='add'>+	  MANGLED_PATH is disabled by the default and will be removed</div><div class='add'>+	  completely in the future.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 06:32:21 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb:  Hide deprecated toplevel DRb constants.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 06:17:02 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (CMath.log): second argument: b can be nil.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 06:23:28 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_thread_s_pass):  Fix typo.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 06:16:53 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 3.8 which contains fixes for documentation</div><div class='add'>+	  in trunk.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 02:53:26 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_common): remove</div><div class='add'>+	  meaningless native_thread_yield(). It never close a race.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 02:41:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule_limits): minor optimization.</div><div class='add'>+	  eliminate machine context saving when running time is enough small.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 02:28:11 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule_rec): move interrupt_flag check to</div><div class='add'>+	  rb_thread_schedule().</div><div class='add'>+	  And also rename to rb_thread_schedule_limits() and remove</div><div class='add'>+	  sched_depth argument. It's no longer called recursive.</div><div class='add'>+	* thread.c (rb_thread_schedule): add to check interrupt_flag as</div><div class='add'>+	  above explained.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_rec): rename to</div><div class='add'>+	  rb_threadptr_execute_interrupts_common() and remove sched_depth</div><div class='add'>+	  argument. It's no longer called recursive.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_sleep): adapt the renaming.</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts): ditto.</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 01:31:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_s_pass): change RDoc description and remove</div><div class='add'>+	  a sample code. The actual implementation never behave as explained by</div><div class='add'>+	  an example. It's a documentation bug.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:54:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop): change RDoc sample code. The old</div><div class='add'>+	  example is buggy and may cause deadlock. The patch is</div><div class='add'>+	  suggested by Heesob Park &lt;phasis@gmail.com&gt;. Thank you!</div><div class='add'>+	  [Bug #3606][ruby-core:31454]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:49:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wakeup): change RDoc sample code. The old</div><div class='add'>+	  example is buggy and may not display anything by a race.</div><div class='add'>+	  The patch is suggested by Heesob Park &lt;phasis@gmail.com&gt;.</div><div class='add'>+	  Thank you! [Bug #3606][ruby-core:31454]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:43:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_run): change RDoc. The old example is buggy</div><div class='add'>+	  and may cause deadlock. The patch is suggested by Heesob Park</div><div class='add'>+	  &lt;phasis@gmail.com&gt;. Thank you! [Bug #3606][ruby-core:31454]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:30:15 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: make same exception for Math. fix [Bug #3137].</div><div class='add'>+</div><div class='add'>+Thu Jun 30 00:03:20 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: complement correctly string literal. fix</div><div class='add'>+	  [Bug #1145].</div><div class='add'>+</div><div class='add'>+Wed Jun 29 23:42:51 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: avoided using timev.</div><div class='add'>+	* ext/date/date_strftime.c: ditto.</div><div class='add'>+	* ext/date/date_tmx.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 23:17:57 2011  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h (OPENSSL_SYS_WIN32): support for mingw(msys).</div><div class='add'>+</div><div class='add'>+Wed Jun 29 23:09:14 2011  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb (intptr_t, uintptr_t): support for the latest ActiveTcl with mingw.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 22:49:10 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb: support RDoc 3.7. fix [Bug #3760].</div><div class='add'>+</div><div class='add'>+Wed Jun 29 22:04:14 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: Tracer.on only if required by -r command-line option.</div><div class='add'>+	  and consider --disable-gems option.</div><div class='add'>+	* test/test_tracer.rb: add tests for it.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 13:55:36 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): should not look for superclasses if</div><div class='add'>+	  the second optional argument is given for #const_get().</div><div class='add'>+	  fix [Bug #3422] [Bug #3423]</div><div class='add'>+</div><div class='add'>+Wed Jun 29 12:07:27 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* math.c:  Attach documentation for Math.</div><div class='add'>+	* object.c:  Document NIL, TRUE, FALSE.</div><div class='add'>+	* io.c:  Improve grammar in ARGF comment.  Document STDIN/OUT/ERR.</div><div class='add'>+	  Document ARGF global constant.</div><div class='add'>+	* lib/rake:  Hide deprecated toplevel constants from RDoc (import from</div><div class='add'>+	  rake trunk).</div><div class='add'>+	* lib/thwait.rb:  Document ThWait.</div><div class='add'>+	* lib/mathn.rb:  Hide Math redefinition from RDoc</div><div class='add'>+	* lib/sync.rb:  Add a basic comment for Sync_m, Synchronizer_m, Sync,</div><div class='add'>+	  Synchronizer.</div><div class='add'>+	* parse.y:  Document SCRIPT_LINES__.</div><div class='add'>+	* hash.c:  Document ENV class and global constant.</div><div class='add'>+	* vm.c:  Document TOPLEVEL_BINDING.</div><div class='add'>+	* version.c:  Document RUBY_* constants.</div><div class='add'>+	* ruby.c:  Document DATA and ARGV.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 10:13:12 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Matrix.zero can build rectangular matrices.</div><div class='add'>+	  Vector#r should be called #magnitude</div><div class='add'>+</div><div class='add'>+Wed Jun 29 10:11:08 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Add Matrix#diagonal?, hermitian?, normal?,</div><div class='add'>+	  orthogonal?</div><div class='add'>+	  permutation?, symmetric?, {lower|upper}triangular?, unitary?, zero?</div><div class='add'>+</div><div class='add'>+Wed Jun 29 10:09:35 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Specialize Matrix#find_index to return [row, col]</div><div class='add'>+	  and accept the same optional argument as #each</div><div class='add'>+</div><div class='add'>+Wed Jun 29 10:07:32 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Matrix#each{_with_index} can iterate over a subset</div><div class='add'>+	  of the Matrix</div><div class='add'>+</div><div class='add'>+Wed Jun 29 06:21:02 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_stop_timer_thread): skip to close</div><div class='add'>+	  communication pipe to avoid timing bug (process termination timing).</div><div class='add'>+	  The communication pipe will closed by OS.</div><div class='add'>+</div><div class='add'>+Wed Jun 29 06:09:54 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_async_bug_errno): async-safe bug report function.</div><div class='add'>+	  In timer thread, signal handler should use it.</div><div class='add'>+	  The patch is contributed by Eric Wong &lt;normalperson@yhbt.net&gt;.</div><div class='add'>+	  Refs: [ruby-core:37644] and [ruby-core:37647]</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: use rb_async_bug_errno().</div><div class='add'>+	  And replace all fprintf() to write().</div><div class='add'>+</div><div class='add'>+	* internal.h (rb_async_bug_errno): add decl. of above func.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 23:46:08 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: count only non-internal libraries in stack trace,</div><div class='add'>+	  ignoring custom_require.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 21:44:58 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: recognize '\char' in ruby statement.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 20:39:29 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (var_list): Command 'var *' did not work on 1.9(!).</div><div class='add'>+	  global_variables, local_variables, and instance_variables returns</div><div class='add'>+	  Symbols from 1.9 and need to stringify before evaling it.</div><div class='add'>+	  See #4931.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 19:23:01 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: Now, USE_TRAP_SIGMASK depend on HAVE_PTHREAD_SIGMASK.</div><div class='add'>+	  The code have already depended on pthread_sigmask since r27464.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 15:09:21 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb: merge eregon/benchmark.</div><div class='add'>+	  https://github.com/eregon/ruby/tree/benchmark</div><div class='add'>+	  patched by Benoit Daloze. [ruby-core:37593] [Bug #4940]</div><div class='add'>+</div><div class='add'>+	* lib/benchmark (Benchmark#bmbm): bmbm should be consistent with bm</div><div class='add'>+	  for the return value.</div><div class='add'>+</div><div class='add'>+	* test/benchmark: remove preemptive test instead of skipping</div><div class='add'>+	  I removed the preemptive test I wrote for Feature #4197.</div><div class='add'>+	  I'll add it back when the implementation will be able to satisfy it.</div><div class='add'>+</div><div class='add'>+	* lib/benchmark (Benchmark#bmbm): remove useless explicit call,</div><div class='add'>+	  #format is an alias of #to_s test/benchmark: add a test for</div><div class='add'>+	  format of long time.</div><div class='add'>+</div><div class='add'>+	* lib/benchmark: fix label width: always add 1 to ensure there is a</div><div class='add'>+	  space delimiter even with times over 100s</div><div class='add'>+	  When I asked for Feature #4197, I wanted to make delimiting spaces</div><div class='add'>+	  consistent for #bm and #bmbm.</div><div class='add'>+	  But with times over 100s, the output contains no space between the</div><div class='add'>+	  label and the first time (user).</div><div class='add'>+	  Now both ensure there is always a space, even if that means 3 spaces</div><div class='add'>+	  with times under 10s (because it is formatted as %10.6f)</div><div class='add'>+</div><div class='add'>+	* test/benchmark: let labels be a constant</div><div class='add'>+	  lib/benchmark (Benchmark#realtime): avoid creating an unused Proc</div><div class='add'>+	  lib/benchmark (Benchmark#benchmark): use ensure clause to restore</div><div class='add'>+	  STDOUT.sync, as in #bmbm</div><div class='add'>+</div><div class='add'>+Tue Jun 28 13:41:51 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_stop_timer_thread): fixed commit miss of</div><div class='add'>+	  r32244.  grep sources before changing the signature of a function.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 11:49:14 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (consume_communication_pipe):</div><div class='add'>+	  Make "buff" as static.  (Maybe) "buff" can be shared between</div><div class='add'>+	  any caller (any threads) because no one use the read values.</div><div class='add'>+	  "buff" (1024 byte) on stack may cause stack overflow on</div><div class='add'>+	  several environment (we found a crash on FreeBSD).</div><div class='add'>+	  And remove const value "buff_size", and define CCP_READ_BUFF_SIZE</div><div class='add'>+	  macro.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 11:45:30 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake:  Update rake to fix some bugs and hide deprecated features</div><div class='add'>+	  from RDoc.</div><div class='add'>+	* lib/rake/version.rb:  Bump version to 0.9.2.1 to distinguish it from</div><div class='add'>+	  the released version.</div><div class='add'>+	* NEWS:  ditto</div><div class='add'>+</div><div class='add'>+Tue Jun 28 11:17:28 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 3.7 (final)</div><div class='add'>+	* NEWS:  ditto</div><div class='add'>+</div><div class='add'>+Tue Jun 28 10:18:42 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_daemon): fix wrong #endif position.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 07:50:32 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object):  Teach RDoc what Init_class_hierarchy does to</div><div class='add'>+	  hook up ri for BasicObject, Object, Module and Class.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 05:03:32 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_local_aref): RDoc fix. Thread#[] example</div><div class='add'>+	  had a race. See #4480.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 01:22:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigMath_s_log): move BigMath.log from</div><div class='add'>+	  bigdecimal/math.rb.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: move test for BigMath.log from</div><div class='add'>+	  test/bigdecimal/test_bigmath.rb.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigmath.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 01:19:52 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: fix [Bug #4232].</div><div class='add'>+</div><div class='add'>+Tue Jun 28 00:14:13 2011  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: fix [Bug #4409]. add DRbServer#here?.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_eq.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 28 00:08:43 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/workspace.rb: fix BUG#4793.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 22:06:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (consume_communication_pipe): don't use C99</div><div class='add'>+	  style variable length array.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 22:04:27 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (consume_communication_pipe): change return</div><div class='add'>+	  type to void. caller doesn't use it.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 21:29:50 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (rb_global_vm_lock_struct): add volatile to</div><div class='add'>+	  gvl-&gt;waiting. now thread_timer() access it w/o lock.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 21:16:11 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: s/__gvl_acquire/gvl_acquire_common/ and</div><div class='add'>+	  s/__gvl_release/gvl_release_common/.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 11:41:47 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread):</div><div class='add'>+	  the type of return value of write(2) is ssize_t.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 09:57:02 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread):</div><div class='add'>+	  Fixes missing initialization of oflags.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 09:07:42 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: Stop polling in the timer thread when there are</div><div class='add'>+	  no waiting thread.  If there are 2 or more runnable threads,</div><div class='add'>+	  the timer thread does polling.  Avoid polling makes power save</div><div class='add'>+	  for several computers (0.2W per a Ruby process, when I measured).</div><div class='add'>+	  If outside-event such as signal or Thread#kill was occurred</div><div class='add'>+	  when the timer thread does not do polling, then wake-up</div><div class='add'>+	  the timer thread using communication-pipe (the timer thread</div><div class='add'>+	  waits this communication-pipe with select(2)).</div><div class='add'>+	  The discussion about this modification can be found from the post</div><div class='add'>+	  [ruby-core:33456] and other related posts.</div><div class='add'>+	  Note that Eric Wong and KOSAKI Motohiro give us the huge</div><div class='add'>+	  contributions for this modification.  Thanks.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_wakeup_timer_thread): add a function.</div><div class='add'>+	  This function wakes up the timer thread using communication-pipe.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop_timer_thread): add a parameter which</div><div class='add'>+	  specify closing communication-pipe or not.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_terminate_all): do not stop timer thread here</div><div class='add'>+	  (ruby_cleanup() terminate timer thread).</div><div class='add'>+</div><div class='add'>+	* signal.c: wake up timer thread using</div><div class='add'>+	  rb_thread_wakeup_timer_thread() from signal handler.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): use rb_thread_stop_timer_thread(1).</div><div class='add'>+</div><div class='add'>+	* process.c: use rb_thread_stop_timer_thread(0)</div><div class='add'>+	  (reuse communication-pipe).</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (rb_thread_wakeup_timer_thread): add a dummy</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: add and fix decl. of functions.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 08:01:19 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c: should use ALLOCA_N.</div><div class='add'>+</div><div class='add'>+Mon Jun 27 01:34:18 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb (TestEtc#test_get{pw,gr}nam): skip entries</div><div class='add'>+	  start with + sign, which means NIS.  these are returned in the</div><div class='add'>+	  case that passwd and group entries in /etc/nsswitch.conf are set</div><div class='add'>+	  to use "nis" explicitly on Debian.  fixed #3683</div><div class='add'>+</div><div class='add'>+Mon Jun 27 00:44:53 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_end_seen_p): fix documentation about return</div><div class='add'>+	  value. patched by Sho Hashimoto. [Bug #4511]</div><div class='add'>+</div><div class='add'>+Mon Jun 27 00:40:47 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_reject): add documentation that Hash#reject</div><div class='add'>+	  without block returns enumerator.</div><div class='add'>+	  patched by Michael Edgar [Bug #4847] [ruby-core:36800]</div><div class='add'>+</div><div class='add'>+Sun Jun 26 23:49:21 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_switch_hitter.rb: added a test.</div><div class='add'>+</div><div class='add'>+ Sun Jun 26 22:21:23 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: refactoring.</div><div class='add'>+</div><div class='add'>+Sun Jun 26 18:03:30 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: comma at the end of line is no longer allowed.</div><div class='add'>+	  A patch from Yukihiro Matsumoto  &lt;matz AT ruby-lang.org&gt;.</div><div class='add'>+	  (fixed #3456).</div><div class='add'>+</div><div class='add'>+Sun Jun 26 13:35:35 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): change CrashReporter suggestion messages</div><div class='add'>+	  on Mac. It should be placed after "-- C level backtrace" line.</div><div class='add'>+	  Suggested by Endoh-san.</div><div class='add'>+</div><div class='add'>+	  &lt;before&gt;</div><div class='add'>+	  -- See Crash Report log file under ~/Library/Logs/CrashReporter or ---------</div><div class='add'>+	  -- /Library/Logs/CrashReporter, for the more detail of ---------------------</div><div class='add'>+	  -- C level backtrace information -------------------------------------------</div><div class='add'>+</div><div class='add'>+	&lt;after&gt;</div><div class='add'>+	  -- C level backtrace information -------------------------------------------</div><div class='add'>+</div><div class='add'>+	     See Crash Report log file under ~/Library/Logs/CrashReporter or</div><div class='add'>+	     /Library/Logs/CrashReporter, for the more detail of.</div><div class='add'>+</div><div class='add'>+Sun Jun 26 10:08:28 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb</div><div class='add'>+	* ext/openssl/ossl_missing.h/.c: add ASN1_put_eoc if missing.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: introduce ossl_asn1_object_size and</div><div class='add'>+	  ossl_asn1_put_object to wrap functionality depending on OpenSSL</div><div class='add'>+	  version in use.</div><div class='add'>+	  Fixes	[ Ruby 1.9 - Bug #4916 ] reported by Hiroshi Nakamura.</div><div class='add'>+	  [ruby-core:37286]</div><div class='add'>+</div><div class='add'>+Sun Jun 26 01:00:15 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_strftime_internal): removed meaningless braces.</div><div class='add'>+	* ext/date/date_core.c (gengo): the value should be int.</div><div class='add'>+</div><div class='add'>+Sat Jun 25 23:45:30 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_search_superclass): avoid control frame</div><div class='add'>+	  stack overrun. currently super() in Proc created in a method</div><div class='add'>+	  defined by Module#define_method raise NoMethodError. [Bug #4881]</div><div class='add'>+	* test/ruby/test_method.rb t_super_in_proc_from_define_method):</div><div class='add'>+	  add test for it.</div><div class='add'>+</div><div class='add'>+Sat Jun 25 23:23:14 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (sleep_forever): now Kernel#sleep don't wakeup by</div><div class='add'>+	  signal handler execution. [Bug #4072]</div><div class='add'>+</div><div class='add'>+Sat Jun 25 23:14:47 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_check_signal): remove unnecessary th-&gt;status</div><div class='add'>+	  backup. fix race condition which may results unexpected main thread's</div><div class='add'>+	  status transition. see #4072</div><div class='add'>+</div><div class='add'>+Fri Jun 24 19:57:30 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (setup_forwarded_info): Parsing request</div><div class='add'>+	  header failed when the request is from 2 or more Apache reverse</div><div class='add'>+	  proxies. It's said that all X-Forwarded-* headers will contain more</div><div class='add'>+	  than one (comma-separated) value if the original request already</div><div class='add'>+	  contained one of these headers.  Since we could use these values as</div><div class='add'>+	  Host header, we choose the initial(first) value. See #4922.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httprequest.rb (test_forwarded): Test it.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 17:06:33 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): should not start timer thread</div><div class='add'>+	  twice.  fixed Bug#4920.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 15:54:14 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): Try to shutdown SSL</div><div class='add'>+	  connection more gracefully. Call SSL_shutdown() max 4 times until it</div><div class='add'>+	  returns 1 (success). Bi-directional SSL close has several states but</div><div class='add'>+	  SSL_shutdown() kicks only 1 transition per call. Max 4 is from</div><div class='add'>+	  mod_ssl.c of Apache httpd that says 'max 2x pending + 2x data = 4'.</div><div class='add'>+	  See #4237.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 07:24:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/version.rb:  Fixed VERSION to work with tool/rbinstall.rb</div><div class='add'>+	* bin/rake:  Import bin/rake from 0.9.2</div><div class='add'>+	* tool/rbinstall.rb (install):  Rake::VERSION is now in</div><div class='add'>+	  lib/rake/version.rb.  Fixes `make install`</div><div class='add'>+</div><div class='add'>+Fri Jun 24 07:11:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake: Import Rake 0.9.2</div><div class='add'>+</div><div class='add'>+Fri Jun 24 00:44:15 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (c_valid_{julian,gregorian}_p): fixed the range of month.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 00:14:23 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: trivial changes on text.</div><div class='add'>+</div><div class='add'>+Thu Jun 23 22:46:57 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: Add X509::Name#hash_old as a wrapper</div><div class='add'>+	  for X509_NAME_hash_old in OpenSSL 1.0.0. See #4805</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509name.rb (test_hash): Make test pass with</div><div class='add'>+	  OpenSSL 1.0.0.</div><div class='add'>+</div><div class='add'>+	* NEWS: Add it.</div><div class='add'>+</div><div class='add'>+Thu Jun 23 19:30:53 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_set_time): Check</div><div class='add'>+	  argument type with NUM2LONG if the arg is not a Time object.</div><div class='add'>+	  See #4919.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_set_timeout): Check</div><div class='add'>+	  type with NUM2LONG. Time as an arg is not allowed. See #4919.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb (test_session_time,</div><div class='add'>+	  test_session_timeout): Test it.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 13:30:30 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c(ruby_atomic_exchange): Fix definition style.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 22:34:05 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_session_new_cb): Return 0 to</div><div class='add'>+	  OpenSSL from the callback for SSL_CTX_sess_set_get_cb().</div><div class='add'>+	  Returning 0 means to OpenSSL that the session is still valid</div><div class='add'>+	  (since we created Ruby Session object) and was not freed by us with</div><div class='add'>+	  SSL_SESSION_free(). Call SSLContext#remove_session(sess) in</div><div class='add'>+	  session_get_cb block if you don't want OpenSSL to cache the session</div><div class='add'>+	  internally.</div><div class='add'>+	  This potential issue was pointed by Ippei Obayashi. See #4416.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb (test_ctx_server_session_cb): Test</div><div class='add'>+	  it.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 22:21:17 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c: Respect T_BIGNUM time values. Patch by</div><div class='add'>+	  Tomoyuki Chikanaga.</div><div class='add'>+	  [ Ruby 1.9 - Bug #4919 ] [ruby-dev:43869]</div><div class='add'>+</div><div class='add'>+Wed Jun 22 21:29:25 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend (SOCK_HEADERS): use $(top_srcdir) instead of</div><div class='add'>+	  $(topdir). sorry!</div><div class='add'>+</div><div class='add'>+Wed Jun 22 19:47:03 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_capture): add volatile.</div><div class='add'>+	  On clang -O, it is needed to avoid the optimization.</div><div class='add'>+	  With this and llvm/clang's recent fix, clang 3.0 can</div><div class='add'>+	  build ruby-trunk with -O option.</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_capture): use for-loop.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_each): add volatile and use it.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 18:20:46 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_session_remove_cb):</div><div class='add'>+	  OpenSSL::SSL::SSLContext#session_remove_cb was broken. It wrongly</div><div class='add'>+	  tried to call the session_*new*_cb callback.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb (class OpenSSL): Test it.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 17:37:49 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: Introduced OSSL_BIO_reset macro for PEM/DER</div><div class='add'>+	  fallback scenarios.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c</div><div class='add'>+	* ext/openssl/ossl_x509req.c</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c</div><div class='add'>+	* ext/openssl/ossl_x509crl.c</div><div class='add'>+	* ext/openssl/ossl_pkey.c</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c</div><div class='add'>+	* ext/openssl/ossl_x509cert.c</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: Use OSSL_BIO_reset.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c</div><div class='add'>+	* ext/openssl/ossl_cipher.c</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c</div><div class='add'>+	* ext/openssl/ossl_pkcs12.c</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c: Replace rb_raise occurrences by</div><div class='add'>+	  ossl_raise. This automatically flushes OpenSSL's error queue.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: Raise error if DER fallback for parsing</div><div class='add'>+	  fails.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_ec.rb</div><div class='add'>+	* test/openssl/test_pkey_dsa.rb</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: Add assertions that OpenSSL.errors is</div><div class='add'>+	  empty.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: Remove initial OpenSSL.errors call in</div><div class='add'>+	  test_new.</div><div class='add'>+	  [ Ruby 1.9 - Bug #4885 ] [ruby-core:37134]</div><div class='add'>+</div><div class='add'>+Wed Jun 22 15:01:24 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Use SSL_MODE_RELEASE_BUFFERS if available.</div><div class='add'>+	  Thanks, Eric Wong, for providing the patch.</div><div class='add'>+	  [ Ruby 1.9 - Feature #4672 ] [ruby-core:36127]</div><div class='add'>+</div><div class='add'>+Wed Jun 22 14:47:53 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_buffering.rb</div><div class='add'>+	* test/openssl/test_pkcs12.rb: Inherit from Test::Unit::TestCase</div><div class='add'>+	  instead of MiniTest::Unit::TestCase. [ruby-core:37275]</div><div class='add'>+</div><div class='add'>+Wed Jun 22 12:41:03 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_to_der):</div><div class='add'>+	  OpenSSL::SSL::Session#to_der was broken. Fix buffer handling.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb (test_session): Test it.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 12:38:52 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb: Split out SSL::Session related</div><div class='add'>+	  tests from test_ssl.rb</div><div class='add'>+</div><div class='add'>+Wed Jun 22 03:20:52 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Fix cyclic references of</div><div class='add'>+	  objects.  Thanks to CvX for reporting the bug and a test case.</div><div class='add'>+	* test/psych/test_object.rb: test for cyclic object references.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 02:39:54 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP.post_form): Do not ignore query part of</div><div class='add'>+	  the given URI to post. See #655.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb, test/net/http/utils.rb: Test it.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 01:28:13 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509store.rb (test_set_errors): Redhat is</div><div class='add'>+	  distributing a patched version of OpenSSL that allows multiple CRL</div><div class='add'>+	  for a key (multi-crl.patch.) Make test pass on such env. See #4122,</div><div class='add'>+	  #4554.</div><div class='add'>+</div><div class='add'>+Tue Jun 21 21:50:37 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb (HTTPResponse#setup_header): Close</div><div class='add'>+	  HTTP/1.1 connection when returning an IO object as response body</div><div class='add'>+	  without setting HTTPResponse#chunked to true. See #855 no.1.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpserver.rb: Test it.</div><div class='add'>+</div><div class='add'>+Tue Jun 21 21:27:34 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: move rb_thread_io_blocking_region() declaration</div><div class='add'>+	  from intern.h to internal.h. It's still experimental API and</div><div class='add'>+	  need more discussion. [ruby-dev:43698]</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include internal.h.</div><div class='add'>+	* ext/socket/depend: add internal.h dependency.</div><div class='add'>+	* ext/socket/extconf.rb: add $INCFLAGS to topdir.</div><div class='add'>+</div><div class='add'>+Tue Jun 21 20:38:47 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (datetime_s_*): canonicalize 24 o'clock.</div><div class='add'>+</div><div class='add'>+Tue Jun 21 19:46:23 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_priority): enable</div><div class='add'>+	  this test again. Current GVL respect thread priority rather</div><div class='add'>+	  than past.</div><div class='add'>+</div><div class='add'>+Tue Jun 21 13:25:35 2011  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_getc): applied a patch in</div><div class='add'>+	  #3827 by by Akio Tajima &lt;artonx AT yahoo.co.jp&gt;. (see #3827)</div><div class='add'>+</div><div class='add'>+Tue Jun 21 13:16:31 2011  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: fixed bug, specify --disable-libedit</div><div class='add'>+	  then disable libedit, does not specify then check readline and</div><div class='add'>+	  libedit if failed checking readline. (fixes #3375)</div><div class='add'>+</div><div class='add'>+Mon Jun 20 22:52:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (before_exec): use sig_do_nothing instead of SIG_DFL</div><div class='add'>+	  for avoiding a race.</div><div class='add'>+	* process.c (sig_do_nothing): new function.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 21:31:03 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): rename timeout_10ms to</div><div class='add'>+	  time_quantum. it's no longer 10ms.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 18:46:02 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c, ext/openssl/lib/openssl/cipher.rb:</div><div class='add'>+	  Documentation fix by Ippei Obayashi. See #4419.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 15:41:33 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cookie.rb (WEBrick::Cookie.parse): Revert r31228.</div><div class='add'>+	  r31228 was for allowing the 'Cookie:' header which did not have no</div><div class='add'>+	  SP after ';' for separating cookie-pairs but RFC6265 requires single</div><div class='add'>+	  SP after ';' there.  We allow multiple SPs here for compatibility</div><div class='add'>+	  with older WEBrick version.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cookie.rb: Test it.</div><div class='add'>+</div><div class='add'>+Sun Jun 19 13:31:26 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Introduce --hide-skip on test/unit.</div><div class='add'>+</div><div class='add'>+Sun Jun 19 10:05:16 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Override Test::Unit::TestCase#on_parallel_worker?</div><div class='add'>+	  only when $0 == __FILE__.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Run Test::Unit::Worker.run only when</div><div class='add'>+	  $0 == __FILE__.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 23:59:24 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fill_cbuf): finish reading at EOF, and the readconv has</div><div class='add'>+	  been cleared by another thread while io_fillbuf() is waiting at</div><div class='add'>+	  select().  a patch in [ruby-core:37197] by Hiroshi Shirosaki</div><div class='add'>+	  &lt;h.shirosaki AT gmail.com&gt;.  fixed #3840</div><div class='add'>+</div><div class='add'>+Sat Jun 18 21:36:29 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: remove GVL_DEBUG</div><div class='add'>+</div><div class='add'>+Sat Jun 18 21:32:02 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_core.h (rb_vm_stack_to_heap): remove const.</div><div class='add'>+	  It makes compilations warnings.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 18:54:15 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_core.h (rb_vm_stack_to_heap): fix "const" place.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 17:23:38 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, hash.c, load.c, proc.c, range.c, thread.c, time.c: don't</div><div class='add'>+	  declare internal functions.</div><div class='add'>+</div><div class='add'>+	* internal.h, vm_core.h: declare internal functions.</div><div class='add'>+</div><div class='add'>+	* array.c: include internal.h.</div><div class='add'>+</div><div class='add'>+	* common.mk: update dependency for array.o.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 13:39:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: declarations declared in include/ruby/*.h removed.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 12:42:17 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h, internal.h iseq.h: declare internal functions.</div><div class='add'>+</div><div class='add'>+	* compile.c, eval.c, iseq.c, object.c, parse.y, proc.c, process.c,</div><div class='add'>+	  thread.c, vm.c, vm_eval.c, vm_insnhelper.c, vm_method.c: don't</div><div class='add'>+	  declare internal functions.</div><div class='add'>+</div><div class='add'>+	  Note that rb_method_entry_eq() is defined in vm_method.c but</div><div class='add'>+	  there was a declaration in proc.c with different const-ness.</div><div class='add'>+	  Now it is declared in method.h with same const-ness to the</div><div class='add'>+	  definition.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_module_exec): don't declare functions declared in</div><div class='add'>+	  include/ruby/intern.h.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 12:05:08 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/backward/classext.h: for evil gems.  fixed #4803</div><div class='add'>+</div><div class='add'>+Sat Jun 18 11:12:13 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: update dependencies.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 11:09:03 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: suppress warnings.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 10:22:39 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: declare more internal functions.</div><div class='add'>+</div><div class='add'>+	* iseq.h (rb_method_get_iseq): declared.</div><div class='add'>+</div><div class='add'>+	* compile.c, eval.c, eval_error.c, iseq.c, parse.y, proc.c, range.c,</div><div class='add'>+	  ruby.c, time.c, util.c, vm.c: don't declare internal functions.</div><div class='add'>+</div><div class='add'>+	* eval.c, parse.y, thread_pthread.c: non-existing function declarations</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 08:12:54 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: dependencies updated.</div><div class='add'>+</div><div class='add'>+	* tool/update-deps: new file to assist update dependencies in</div><div class='add'>+	  common.mk.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 07:27:27 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: declare internal functions here.</div><div class='add'>+</div><div class='add'>+	* node.h: declare NODE dependent internal functions here.</div><div class='add'>+</div><div class='add'>+	* iseq.h: declare rb_iseq_t dependent internal functions here.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: declare rb_thread_t dependent internal functions here.</div><div class='add'>+</div><div class='add'>+	* bignum.c, class.c, compile.c, complex.c, cont.c, dir.c, encoding.c,</div><div class='add'>+	  enumerator.c, error.c, eval.c, file.c, gc.c, hash.c, inits.c, io.c,</div><div class='add'>+	  iseq.c, load.c, marshal.c, math.c, numeric.c, object.c, parse.y,</div><div class='add'>+	  proc.c, process.c, range.c, rational.c, re.c, ruby.c, string.c,</div><div class='add'>+	  thread.c, time.c, transcode.c, variable.c, vm.c,</div><div class='add'>+	  tool/compile_prelude.rb: don't declare internal functions declared</div><div class='add'>+	  in above headers.  include above headers if required.</div><div class='add'>+</div><div class='add'>+	  Note that rb_thread_mark() was declared as</div><div class='add'>+	  void rb_thread_mark(rb_thread_t *th) in cont.c but defined as</div><div class='add'>+	  void rb_thread_mark(void *ptr) in vm.c.  Now it is declared as</div><div class='add'>+	  the later in internal.h.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 02:36:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpNewRbClass): fix type of the 2nd</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 02:30:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigMath_s_exp): move BigMath.exp from</div><div class='add'>+	  bigdecimal/math.rb.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: move test for BigMath.exp from</div><div class='add'>+	  test/bigdecimal/test_bigmath.rb.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigmath.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 18 00:20:54 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: do not define wnum[01].</div><div class='add'>+</div><div class='add'>+Fri Jun 17 18:57:36 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix return value of obj[a,*b]=c.</div><div class='add'>+</div><div class='add'>+Fri Jun 17 13:09:45 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c:  Clean up documentation.</div><div class='add'>+</div><div class='add'>+Fri Jun 17 09:25:14 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c:  Document curses constants.  Patch by Vincent</div><div class='add'>+	  Batts.  [Ruby 1.9 - Bug #4880]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 09:11:05 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* object.c:  Document Module#method_added and #method_removed.</div><div class='add'>+	  Patch by Bryce Kerley.  [Ruby 1.9 - Feature #4867]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 08:50:16 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c:  Improve documentation of IO and File open and new.</div><div class='add'>+	  Patch by Roger Pack.  [Ruby 1.9 - Bug #4790]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 07:53:50 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb:  Document #raw_encoding.  Patch by David Czarnecki.</div><div class='add'>+	  [Ruby 1.9 - Bug #4874]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 07:46:50 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb:  Document Benchmark::Tms#memberwise.  Patch by</div><div class='add'>+	  David Czarnecki.  [Ruby 1.9 - Bug #4873]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 07:38:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb:  Improve documentation.  Patch by Ysiad</div><div class='add'>+	  Ferreiras.  [#4834]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 07:23:03 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_drop):  Improve documentation.  Patch by Caley Woods.</div><div class='add'>+	  [Ruby 1.9 - Bug #4858]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 06:11:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb:  Improve documentation of BasicLog and Log.</div><div class='add'>+	  Patch by Olivier Brisse.  [Ruby 1.9 - Bug #4833]</div><div class='add'>+	* lib/webrick/httpstatus.rb:  Improve documentation of</div><div class='add'>+	  WEBrick::HTTPStatus.  Patch by Olivier Brisse.</div><div class='add'>+	  [Ruby 1.9 - Bug #4833]</div><div class='add'>+</div><div class='add'>+Fri Jun 17 04:48:22 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c, thread_pthread.h: remove unused variables.</div><div class='add'>+	  (native_thread_data_t::gvl_cond, native_thread_data_t::gvl_next)</div><div class='add'>+</div><div class='add'>+Thu Jun 16 14:32:31 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_time_new): prevent overflow by "* 1000".</div><div class='add'>+</div><div class='add'>+Fri Jun 17 03:07:36 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm4_thread_create_join.rb,</div><div class='add'>+	  benchmark/bm_vm4_thread_mutex[1-3].rb: renamed to</div><div class='add'>+	  bm_thread_* (fix last rename).</div><div class='add'>+</div><div class='add'>+Fri Jun 17 02:26:47 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_create): fix debug message.</div><div class='add'>+	  (add last newline)</div><div class='add'>+</div><div class='add'>+Thu Jun 16 23:40:49 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule_rec): fix {UN,}LIKELY macro misuse.</div><div class='add'>+	* gc.c (rb_newobj): ditto.</div><div class='add'>+	* vm_insnhelper.c (vm_method_search): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 20:06:15 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb: Fix Regexp for test.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/test_third.rb: Use</div><div class='add'>+	  Test::Unit::TestCase#on_parallel_worker? for detecting worker.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb(Test::Unit::TestCase#on_parallel_worker?):</div><div class='add'>+	  New Method Test::Unit::TestCase#on_parallel_worker? returns true</div><div class='add'>+	  when a testcase is running on parallel worker.</div><div class='add'>+	* lib/test/unit/parallel.rb(Test::Unit::TestCase#on_parallel_worker?):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 19:27:12 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_securerandom.rb: Add testcase.  This testcase does NOT aim</div><div class='add'>+	  to test cryptographically strongness and randomness.  It includes</div><div class='add'>+	  the test for PID recycle issue of OpenSSL described in #4579 but</div><div class='add'>+	  it's disabled by default.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 17:55:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_copy_stream_socket): fix</div><div class='add'>+	  test hanging up issue. Patch by CHIKANAGA Tomoyuki.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 15:17:39 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (const_missing):  Add simple example of const_missing.</div><div class='add'>+	  Patch by Anuj Dutta.  [Ruby 1.9 - Bug #4794]</div><div class='add'>+</div><div class='add'>+Thu Jun 16 15:09:29 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb:  Improve documentation.  Patch by Sandor Szucs.</div><div class='add'>+	  [Ruby 1.9 - Bug #4823]</div><div class='add'>+</div><div class='add'>+Thu Jun 16 14:54:09 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb: Document WEBrick::Utils.  Patch by Olivier</div><div class='add'>+	  Brisse.  [Ruby 1.9 - Bug #4819]</div><div class='add'>+</div><div class='add'>+Thu Jun 16 14:26:46 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/erbhandler.rb:  Allow the ERB document to</div><div class='add'>+	  alter the content-type of the response.  [Ruby 1.9 - Bug #4685]</div><div class='add'>+</div><div class='add'>+Thu Jun 16 14:15:47 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb: Clarify timeout duration types.  Patch by Alf Mikula.</div><div class='add'>+	  [Ruby 1.9 - Bug #4791]</div><div class='add'>+	* lib/net/http.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu Jun 16 13:25:25 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc*:  Import RDoc 3.7 release candidate</div><div class='add'>+</div><div class='add'>+Thu Jun 16 11:35:09 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (search_response): parses SEARCH responses from</div><div class='add'>+	  the Yahoo IMAP server correctly.  patched by Mark Nadig.  [Bug #4509]</div><div class='add'>+</div><div class='add'>+Thu Jun 16 09:12:38 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* fix for build on solaris 10.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 09:08:39 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/console/test_io_console.rb (TestIO_Console#test_sync):</div><div class='add'>+	  fix for daemon process.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 07:58:01 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb(test_ignore_tzero): Test for r32109.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/test_third.rb: Use another way to</div><div class='add'>+	  detect that test is running on worker. This fixes sometimes</div><div class='add'>+	  TestParallel failing.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 07:20:06 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb(Test::Unit::Runner#_run_parallel): Ignore -j0</div><div class='add'>+	  because it makes blocking forever by IO.select.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 03:08:11 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb (TestParallel::TestParallelWorker#</div><div class='add'>+	  setup): now can run on Windows, probably.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb (TestParallel::TestParallel#setup):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 03:00:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): Windows: no need to poll if select(2) is</div><div class='add'>+	  cancelable.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_fd_select): new function to make select(2)</div><div class='add'>+	  cancelable.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (rb_w32_check_interrupt): new function for checking</div><div class='add'>+	  interrupt.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select_with_thread): new function. cancelable</div><div class='add'>+	  select(2).</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): use above function internally.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 23:30:45 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: fix a regression by r31690 on AIX because AIX malloc</div><div class='add'>+	  return NULL if it's passed 0. But some caller don't expect it.</div><div class='add'>+	  patch by Yutaka Kanemoto. [ruby-dev:43779]</div><div class='add'>+	(vm_malloc_prepare): return calculated size.</div><div class='add'>+	(vm_xmalloc): use above result.</div><div class='add'>+	(vm_xcalloc): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 23:11:35 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: remove BLOCKING_REGION_CORE() macro. It's no longer used</div><div class='add'>+	  since r32022.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 21:00:47 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_config.rb: execute based on the existence of the</div><div class='add'>+	  OpenSSL module.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 12:35:11 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_copy_stream_socket): wait a child process</div><div class='add'>+	  before SIGUSR1 handler is removed.</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb (define_assertion): use line number</div><div class='add'>+	  for test method names.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 10:37:43 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_rdev): use DEVT2NUM.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_rdev_major): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_rdev_minor): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 05:12:59 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_eventloop_core): revert the last change (it's</div><div class='add'>+	  the part for ruby_1_8), and use rb_thread_check_ints() when RUBY_VM</div><div class='add'>+	  is defined.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 04:42:47 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_*.rb: renamed bm_vm3_thread_*.rb to</div><div class='add'>+	  benchmark/bm_vm_thread_*.rb.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 04:28:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm4_thread_pass.rb: rename bm_vm4* to</div><div class='add'>+	  bm_vm_thread_*. suggested by ko1.</div><div class='add'>+	* benchmark/bm_vm4_pipe.rb: ditto.</div><div class='add'>+	* benchmark/bm_vm4_alive_check1.rb: ditto.</div><div class='add'>+	* benchmark/bm_vm4_pass_flood.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 03:52:50 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm4_pass_flood.rb: new benchmark for GVL fairness.</div><div class='add'>+	* benchmark/bm_vm4_alive_check1.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 01:27:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_yield): fix live lock issue on 1-2 cpus</div><div class='add'>+	  system. It's additional fix for r32021.</div><div class='add'>+	* thread_pthread.c (gvl_init): add switch_wait_cond.</div><div class='add'>+	* thread_pthread.h (typedef struct rb_global_vm_lock_struct): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 23:16:22 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (show_progress): refine verbose mode.</div><div class='add'>+	  (exec_test): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 23:02:36 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (show_progress): extracted from assert_check.</div><div class='add'>+	  (assert_check): use show_progress.</div><div class='add'>+	  (assert_normal_exit): ditto.</div><div class='add'>+	  (assert_finish): ditto.</div><div class='add'>+	  (flunk): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 22:51:42 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_*.rb: added tests.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 22:09:58 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: renamed some functions.</div><div class='add'>+	* ext/date/date_core.c: modified doc.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 21:26:01 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_save_thread): add new utility function.</div><div class='add'>+	  rb_context_t::saved_thread.machine_stack_start and</div><div class='add'>+	  machine_stack_end should be cleared immediately after a snapshot of</div><div class='add'>+	  current thread is stored to saved_thread. [ruby-dev:43680] [Bug #4855]</div><div class='add'>+	  this change aims to get rid of unnecessary GC mark at machine stack.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 19:50:49 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_autoload.rb: remove temporary directory.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 11:05:03 2011  Narihiro Nakamura  &lt;narihiro@netlab.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): call initial_expand_heap if</div><div class='add'>+	  initial_heap_min_slots is set.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 11:02:08 2011  Narihiro Nakamura  &lt;narihiro@netlab.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: use size_t.</div><div class='add'>+</div><div class='add'>+Tue Jun 14 01:10:38 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/coverage/test_coverage.rb: add a test for restart.  a patch</div><div class='add'>+	  from Xavier Shay.  [ruby-core:36745]</div><div class='add'>+</div><div class='add'>+Tue Jun 14 01:05:10 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c: make it restartable.  [ruby-core:36539]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:55:40 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule_rec): call gvl_yield() unconditionally.</div><div class='add'>+	* thread_pthread.c: remove HAVE_GVL_YIELD macro.</div><div class='add'>+	* thread_win32.c (gvl_yield): new. this fallback logic was moved from</div><div class='add'>+	  rb_thread_schedule_rec().</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:50:25 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_dev): typo.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:38:23 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_parse_string): flush delayed token.  based on a</div><div class='add'>+	  patch by Masaya Tarui in [ruby-dev:43762].  Bug #4544</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): revert r24557.  delayed token at the end of</div><div class='add'>+	  string should be flushed already by the above change.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:33:31 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_dev): console should be</div><div class='add'>+	  unbuffered.</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_dev): take care of no-ctty</div><div class='add'>+	  case.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:06:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: rewrite GVL completely. This fix improve some</div><div class='add'>+	  benchmark dramatically (e.g. vm3_thread_mutex result changed</div><div class='add'>+	  form 120.601sec to 3.426sec).</div><div class='add'>+	* thread_win32.c: ditto.</div><div class='add'>+	* thread_pthread.h: ditto.</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+	* thread.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:11:52 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb: don't use Thread.abort_on_exception.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 23:05:01 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c (unix_send_io): race condition fixed.</div><div class='add'>+	  (unix_recv_io): ditto.</div><div class='add'>+	  fixed by Eric Wong.  [ruby-core:35574]</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb: test added for above problem.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 21:41:05 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_cond_signal): remove unnecessary rb_bug().</div><div class='add'>+	  It's additional fix for r32021. [Bug #4696]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 20:50:49 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ec.rb</div><div class='add'>+	  test/openssl/test_pkey_ec.rb: merge both files into test_pkey_ec.rb.</div><div class='add'>+	  Removed redundant group instantiation from PKey tests.</div><div class='add'>+	* test/openssl/utils.rb: only create TEST_PKEY_EC_P256V1 if EC is</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 20:28:24 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/digest.rb: remove MDC2 from test, it is not available</div><div class='add'>+	  by default in an OpenSSL installation.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 20:18:55 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, vm_insnhelper.h: move decl. of</div><div class='add'>+	  ruby_vm_global_state_version and related macros</div><div class='add'>+	  from vm_core.h to vm_insnhelper.h.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_clear_all_cache): added.  This function is called</div><div class='add'>+	  when ruby_vm_global_state_version overflows.</div><div class='add'>+	  TODO: vm_clear_all_inline_method_cache() is only place holder.</div><div class='add'>+	        We need to implement it ASAP.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (vm_clear_global_method_cache): added.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 19:46:21 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: add new method Object#real?. fix #3137</div><div class='add'>+</div><div class='add'>+Mon Jun 13 18:52:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (is_kind_of_BigDecimal): new function to</div><div class='add'>+	  examine the whether the object is kind of BigDecimal.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 18:49:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): use GetVpValueWithPrec</div><div class='add'>+	  for Float and Rational arguments.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_new, test_cmp, test_power):</div><div class='add'>+	  add and modify tests for the above change.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): modify coding style to</div><div class='add'>+	  match ruby's standard.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 18:33:04 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.random_bytes): modify PRNG state</div><div class='add'>+	  to prevent random number sequence repetition at forked child</div><div class='add'>+	  process which has same pid.</div><div class='add'>+	  reported by Eric Wong.  [ruby-core:35765]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 17:02:34 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#use_ssl?): require 'openssl' only when</div><div class='add'>+	  https is needed. fixes r31933.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 14:35:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (CMath.cbrt): returns the principal value of the cube</div><div class='add'>+	  root of the argument.  fix #3676</div><div class='add'>+</div><div class='add'>+	* test/test_cmath.rb (test_cbrt_returns_principal_value_of_cube_root):</div><div class='add'>+	  test for the above change.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 14:17:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::GlobOption#non_options): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 13:04:20 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: fix error for digests that have no oid</div><div class='add'>+	(e.g. DSS1).</div><div class='add'>+	* test/openssl/test_digest.c: add tests for this.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 12:51:51 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: load psych only when syck is not loaded.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 12:23:39 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+Mon Jun 13 12:23:39 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/deprecated.rb (Object#to_yaml_properties):</div><div class='add'>+	  undef to_yaml_properties before redefine it.</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/syck/rubytypes.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 11:30:10 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: allow Digests to be created by sn, ln or</div><div class='add'>+	  oid.</div><div class='add'>+	* test/openssl/test_digest.rb: add tests for this.</div><div class='add'>+	  [Ruby 1.9 - Feature #4412] [ruby-core:35319]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 10:54:03 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/pkey_dh.c: corrected documentation.</div><div class='add'>+	* test/openssl/utils.rb: add test key for DH.</div><div class='add'>+	* test/openssl/test_pkey_dh.rb: add tests.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 10:13:08 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/pkey_dh.c: clarify difference between DH#public_key and</div><div class='add'>+	DH#pub_key in documentation.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 05:50:43 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: introduce PKey.read.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 05:17:29 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c: added PKey.read module function that allows</div><div class='add'>+	  reading arbitrary public/private keys from DER-/PEM-encoded File or</div><div class='add'>+	  string instances.</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: improved documentation.</div><div class='add'>+	* test/openssl/utils.rb: added EC test key.</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb</div><div class='add'>+	  test/openssl/test_pkey_dsa.rb: Test PKey.read. Reuse keys from</div><div class='add'>+	  OpenSSL::TestUtils.</div><div class='add'>+	* test/openssl/test_pkey_ec.rb: Created test file for EC tests.</div><div class='add'>+	  Test PKey.read.</div><div class='add'>+	  [Ruby 1.9 - Feature #4424] [ruby-core:35330]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 04:42:24 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (total_i): fix to skip no ruby objects.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 03:07:38 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/benchmark/test_benchmark.rb (capture_output):</div><div class='add'>+	  replace '-' as space. On NetBSD, subtract between two Process.times</div><div class='add'>+	  after and before the short process may return negative value like:</div><div class='add'>+	  t0=Process.times; yield; t1=Process.times; p t1.utime-t0.utime</div><div class='add'>+</div><div class='add'>+Mon Jun 13 02:40:23 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_dsa.rb: Test for DSA#syssign/sysverify.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 01:59:19 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: completed documentation.</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: corrected examples. Improved parameter</div><div class='add'>+	  sections.</div><div class='add'>+</div><div class='add'>+Mon Jun 13 00:25:10 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: completed documentation.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 23:36:46 2011  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (kill_sub_thread): remove the method. [ruby-core:34185]</div><div class='add'>+</div><div class='add'>+Sun Jun 12 21:01:56 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (d_lite_marshal_load): should give converted value.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 20:36:30 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: edited doc.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 18:12:07 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_clearmethodcache.rb: added.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 17:40:29 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_clear_cache*): update only vm state version.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_entry_get_without_cache, rb_method_entry):</div><div class='add'>+	  Fill method cache entry with vm state version, and</div><div class='add'>+	  check current vm state version for method (cache) look up.</div><div class='add'>+	  This modification speed-up invalidating of global method cache table.</div><div class='add'>+	  [Ruby 1.9 - Feature #3905] [ruby-core:36908]</div><div class='add'>+</div><div class='add'>+Sun Jun 12 16:19:48 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: fail on Mac OS X. [Bug #4853][ruby-dev:43655]</div><div class='add'>+</div><div class='add'>+Sun Jun 12 15:56:08 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: remove th-&gt;transition_for_lock. It's thread unsafe.</div><div class='add'>+	  [Bug #4723][ruby-dev:43563]</div><div class='add'>+</div><div class='add'>+Sun Jun 12 15:47:35 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: introduce spurious wakeup safe deadlock check.</div><div class='add'>+	  [Bug #4696][ruby-dev:43554]</div><div class='add'>+</div><div class='add'>+Sun Jun 12 13:33:52 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_mutex.rb: remove it.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_mutex[1-3].rb: added 3 benchmarks.</div><div class='add'>+	    1: one thread with one mutex (no contention).</div><div class='add'>+	    2: two threads with one mutex (contention).</div><div class='add'>+	    3: 1000 threads with one mutex (huge number of contention)</div><div class='add'>+	  Above removed benchmark was type 3.</div><div class='add'>+	  Therefore, this commit adds type 1 and 2 benchmark.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 11:16:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: use select() appropriately for sendfile().</div><div class='add'>+	  Fixed by Eric Wong.  [ruby-core:36150]</div><div class='add'>+	  (maygvl_copy_stream_wait_readwrite): removed.</div><div class='add'>+	  (nogvl_copy_stream_sendfile): use nogvl_copy_stream_wait_write and</div><div class='add'>+	  maygvl_copy_stream_wait_read instead of</div><div class='add'>+	  maygvl_copy_stream_wait_readwrite.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 09:32:13 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* atomic.h (ATOMIC_OR): _InterlockedOr is not available on mingw.h</div><div class='add'>+	* gc.c (rb_gc_set_params): VM_OBJSPACE is disabled on mingw.</div><div class='add'>+</div><div class='add'>+Sun Jun 12 01:07:09 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: edited doc.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 23:18:00 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (RUBY_VM_SET_TIMER_INTERRUPT, RUBY_VM_SET_INTERRUPT,</div><div class='add'>+	  RUBY_VM_SET_FINALIZER_INTERRUPT): use atomic ops for preventing</div><div class='add'>+	  interrupt_flag bit lost. [Bug #4770][ruby-dev:43467]</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_rec): ditto.</div><div class='add'>+	* vm_core.h (typedef struct rb_thread_struct): change type of</div><div class='add'>+	  interrupt_flag to rb_atomic_t.</div><div class='add'>+	* atomic.h: move atomic ops definition from signal.c.</div><div class='add'>+	* signal.c: remove atomic ops definition.</div><div class='add'>+	* common.mk (gc, signal, thread, cont): add to dependency to atomic.h.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 23:23:52 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: edited doc.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 23:02:36 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (module OpenSSL):</div><div class='add'>+	  Buffering#each_byte should return String in accordance with IO in</div><div class='add'>+	  1.9.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_buffering.rb (class OpenSSL): add tests for getc</div><div class='add'>+	  and each_byte.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 22:41:37 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: a correction of doc for strftime (%v).</div><div class='add'>+</div><div class='add'>+Sat Jun 11 22:30:53 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: replaced doc for strftime based on Time's one.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 22:07:56 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (datetime_s_{iso8601,rfc3339,xmlschema,rfc2822,httpdate}):</div><div class='add'>+	  do not take argument comp.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 21:58:31 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: added examples.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:40:45 2011  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: expand heap if initial_heap_min_slots is bigger than</div><div class='add'>+	  HEAP_MIN_SLOTS.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:42:50 2011  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog (vim): set shiftwidth to 2.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:27:06 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509req.c: raise RequestError instead of</div><div class='add'>+	  CertificateError when Request#to_der gets an error from OpenSSL.</div><div class='add'>+	  Patch from Ippei Obayashi, see #4420. I cannot write a test for</div><div class='add'>+	  this... Request does not allow to create broken bytes...</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:34:51 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (Date::(ABBR_)?(MONTH|DAY)NAMES): should be usascii.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:24:33 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: rewrote doc.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 19:04:15 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::GlobOption#non_options): should run</div><div class='add'>+	  with 1.8.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 18:05:57 2011  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: should initialize $stress to avoid warnings.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 18:02:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): should be 7bit if ascii.  fixes #4557</div><div class='add'>+</div><div class='add'>+Sat Jun 11 16:52:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_enc_uint_chr): fix message format. Bug#4869</div><div class='add'>+</div><div class='add'>+Sat Jun 11 16:28:25 2011  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/formatters/pretty.rb</div><div class='add'>+	  (REXML::Formatters::Pretty#write_text),</div><div class='add'>+	  test/rexml/test_core.rb</div><div class='add'>+	  (Tester#test_pretty_format_long_text_finite): don't ignore</div><div class='add'>+	  'width' parameter in pretty formatter. fixes #4498</div><div class='add'>+	  Reported by Michael Frasca. Thanks!!!</div><div class='add'>+</div><div class='add'>+Sat Jun 11 16:11:36 2011  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_core.rb</div><div class='add'>+	  (Tester#test_pretty_format_long_text_finite): remove needless</div><div class='add'>+	  assert_nothing_raised.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 16:04:03 2011  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/xpathparser.rb</div><div class='add'>+	  (REXML::Parsers::XPathParser#parse),</div><div class='add'>+	  test/rexml/test_elements.rb</div><div class='add'>+	  (ElementsTester#test_each_with_frozen_condition):</div><div class='add'>+	  don't modify original XPath. fixes #4161</div><div class='add'>+	  Reported by Pavel Shved. Thanks!!!</div><div class='add'>+</div><div class='add'>+Sat Jun 11 15:53:27 2011  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_elements.rb (ElementsTester): remove needless</div><div class='add'>+	  prefix from test name.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 15:36:36 2011  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+	* common.mk: fixed a grammatical error</div><div class='add'>+</div><div class='add'>+Sat Jun 11 14:20:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_memsize): don't ignore size of th-&gt;local_storage.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 10:32:46 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: should quote arch_hdrdir and libpath for the case</div><div class='add'>+	  installed prefix contains spaces.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 10:20:52 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_timeout): wrap conditionally used</div><div class='add'>+	  label.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): remove unused variable.</div><div class='add'>+</div><div class='add'>+Sat Jun 11 10:15:50 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): use GetThreadPtr to extract</div><div class='add'>+	  rb_thread_t from VALUE.</div><div class='add'>+	  reported by Motohiro KOSAKI.  [ruby-dev:43700]</div><div class='add'>+</div><div class='add'>+Sat Jun 11 10:00:49 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): add missing return type.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 23:18:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_eventloop_core): replace CHECK_INTS with</div><div class='add'>+	  rb_thread_check_ints(). Because current code can't be compiled.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 16:38:13 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): When ruby process is run as Windows</div><div class='add'>+	  Service the console codepage is not set, GetConsoleCP returns 0.</div><div class='add'>+	  So on such environment, use GetACP().</div><div class='add'>+	  http://blogs.msdn.com/b/michkap/archive/2005/02/08/369197.aspx</div><div class='add'>+	  patched by Rafal Bigaj [ruby-core:36832] [Bug #4854]</div><div class='add'>+</div><div class='add'>+Fri Jun 10 14:34:24 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: restore TESTRUN_SCRIPT to "$(srcdir)/test.rb".</div><div class='add'>+	  TESTRUN_SCRIPT is used by "make run", "make gdb" and so on.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 13:01:24 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#remove_rake_mixins): remove all</div><div class='add'>+	  module related to Rake.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 09:52:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c:  Mention that Encoding.compatible? can work with more</div><div class='add'>+	  than just Strings.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 02:25:53 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: updating version to match released gem.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 01:06:29 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal (BigDecimal_to_i): Integer#** may return flonum.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 00:35:12 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): uses rb_reg_nth_match;</div><div class='add'>+	* rational.c (string_to_r_internal): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 00:25:03 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: remove an unused declaration.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 00:24:04 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r): Rational#** may return flonum.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 23:57:53 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: fix IO.copy_stream interrupt handling.</div><div class='add'>+	  based on the patch by Eric Wong.  [ruby-core:36156]</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_call_with_gvl): don't declare here.</div><div class='add'>+</div><div class='add'>+	* thread.c: include internal.h.</div><div class='add'>+	  (rb_thread_execute_interrupts): new function.</div><div class='add'>+</div><div class='add'>+	* internal.h (rb_thread_execute_interrupts): declared.</div><div class='add'>+	  (rb_thread_call_with_gvl): declared.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 23:34:01 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_call_finalizer): use rb_typeddata_is_kind_of() for</div><div class='add'>+	  type check to get rid of a double free when main Thread has singleton</div><div class='add'>+	  class. [ruby-core:36741] [Bug #4828]</div><div class='add'>+	* thread.c (rb_obj_is_mutex): add a new utility function.</div><div class='add'>+	* vm.c (rb_obj_is_thread): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 22:53:49 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_kill_thread_subclass):</div><div class='add'>+	  add test for Thread.kill with Thread subclass instance.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 22:31:47 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_kill_wrong_argument):</div><div class='add'>+	  test for [ruby-core:35086].</div><div class='add'>+	  partially forward porting r31402 from ruby_1_9_2 branch.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 18:36:00 2011  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: Fix the ambiguous description of the behavior of</div><div class='add'>+	  rb_str_aref_m with a range.  It returns nil when the beginning of</div><div class='add'>+	  the range is greater than the end of the string rather than the range.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 10:57:03 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Hash subclasses can be read</div><div class='add'>+	  from YAML files.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Hash subclasses can be</div><div class='add'>+	  dumped to YAML files.</div><div class='add'>+	* test/psych/test_hash.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 09:18:51 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Ruby modules can be loaded</div><div class='add'>+	  from YAML files.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Ruby modules can be</div><div class='add'>+	  dumped to YAML files.</div><div class='add'>+	* test/psych/test_class.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 09:05:04 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Ruby classes can be loaded</div><div class='add'>+	  from YAML files.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Ruby classes can be</div><div class='add'>+	  dumped to YAML files.</div><div class='add'>+	* test/psych/test_class.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 21:38:57 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (root_fiber_alloc): set root fiber's status RUNNING.</div><div class='add'>+	  in cont_mark() only RUNNING fiber's machine stack is marked.</div><div class='add'>+	  root fiber's status should be RUNNING at the beginning regardless of</div><div class='add'>+	  FIBER_USE_NATIVE. [ruby-core:36735] fixes #4827</div><div class='add'>+</div><div class='add'>+Tue Jun  7 20:50:11 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* doc/irb/irb.rd: fix typo. patch by Nobuhiro IMAI.</div><div class='add'>+	  [Bug #4843] [ruby-dev:43639]</div><div class='add'>+	* doc/irb/irb.rd.ja: ditto.</div><div class='add'>+	* doc/ChangeLog-YARV: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 18:52:55 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb (Gem::StreamUI#tty?): IO#tty? of</div><div class='add'>+	  Windows has been fixed at r29969.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_stream_ui.rb: now can run tests.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 18:36:41 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb (TestGem#{test_self_user_home_userprofile,</div><div class='add'>+	  test_self_user_home_user_drive_and_path}): should simply ignore</div><div class='add'>+	  meaningless tests instead of skipping them.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 18:15:00 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name):</div><div class='add'>+	  should show some messages when skipping tests.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 13:59:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_s_today, datetime_s_now): check the</div><div class='add'>+	  result of localtime_r().</div><div class='add'>+</div><div class='add'>+Tue Jun  7 13:36:51 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: use $defs not $CPPFLAGS to get rid of</div><div class='add'>+	  command line escape issues on Windows.  fixed #4835.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 03:18:45 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_s_{,bin}write): do not create a</div><div class='add'>+	  file under /tmp. [Bug #4846]</div><div class='add'>+</div><div class='add'>+Mon Jun  6 22:51:43 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: use #if FIBER_USE_NATIVE instead of #ifdef.</div><div class='add'>+	  you can suppress use of setcontext for Fiber with compile option</div><div class='add'>+	  -DFIBER_USE_NATIVE=0</div><div class='add'>+</div><div class='add'>+Mon Jun  6 21:59:23 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_switch_hitter.rb: added a test.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 21:37:45 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: added notes.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 21:02:12 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: flattened format to strftimev.</div><div class='add'>+	* ext/date/date_core.c (date_strftime_internal): taints run.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 15:10:17 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/{defines,missing}.h (rb_infinity, rb_nan): move from</div><div class='add'>+	  defines.h to missing.h.  (couldn't use RUBY_EXTERN there.)</div><div class='add'>+</div><div class='add'>+Mon Jun  6 14:35:48 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_markup_pre_process.rb (TestRDocMarkupPreProcess#</div><div class='add'>+	  {test_include_file,test_include_file_encoding_incompatible}): no</div><div class='add'>+	  need to write such workaround.  don't hide the bug of ruby. (and the</div><div class='add'>+	  bug is already fixed.)</div><div class='add'>+</div><div class='add'>+Mon Jun  6 14:11:11 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (valid_jd_sub): need to convert from VALUE to</div><div class='add'>+	  double.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (offset_to_sec): get rid of a compiler warning.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 14:09:08 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (rb_infinity, rb_nan): export for Windows.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 10:54:45 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb(Test::Unit::Runner#puke):</div><div class='add'>+	  Add overriding from MiniTest::Unit#puke. This reverts minitest's fix</div><div class='add'>+	  that skip messages are hidden when not verbose mode (-v option).</div><div class='add'>+	  To hide skip messages, use --hide-skip option instead.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 10:52:13 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: don't use autoload.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 09:39:43 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): release event objects to plug memory</div><div class='add'>+	leak.  Thanks Mark J. Titorenko!</div><div class='add'>+</div><div class='add'>+Sun Jun  5 23:26:15 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove rb_thread_stop_timer_thread function declaration.</div><div class='add'>+	  Instead, include vm_core.h.</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 21:38:51 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): add to care a spurious wakeup.</div><div class='add'>+	  When native_cond_timedwait() return 0 by spurious wakeup, we</div><div class='add'>+	  don't have to neither 1) call timer_thread_function and 2)</div><div class='add'>+	  exit the timer thread.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 17:50:01 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (m_real_cwyear): new.  derived from m_cwyear.</div><div class='add'>+	* ext/date/date_strftime.c: trivial changes.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 17:22:01 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/config_list.in: add new options for tcltklib.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 10:06:50 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_tmx.h: now does not place decoded data.  allows to</div><div class='add'>+	  access indirectly via functions on demand.</div><div class='add'>+	* ext/date/date_strftime.c: ditto.</div><div class='add'>+	* ext/date/date_core.c: ditto.</div><div class='add'>+	* ext/date/date_core.c ({d|dt}_lite_to_s): use strftime.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 06:22:02 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: wrote about changes of date.</div><div class='add'>+</div><div class='add'>+Sat Jun  4 16:59:26 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (d_lite_inspect): changed the format.</div><div class='add'>+	* ext/date/date_core.c: refactoring and fixing some bugs.</div><div class='add'>+</div><div class='add'>+Sat Jun  4 11:30:57 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (check_mix_method_i, do_mix_method_i): not mix methods</div><div class='add'>+	  renamed as nil.</div><div class='add'>+</div><div class='add'>+Sat Jun  4 04:04:41 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_commands_which_command.rb:</div><div class='add'>+	  "missing" exists on ruby's top source directory. [Bug #4815]</div><div class='add'>+</div><div class='add'>+Fri Jun  3 21:48:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/test_case.rb: Refix for test-all in separate directory.</div><div class='add'>+	  r31147 + r31151.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 20:58:47 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (d_lite_plus): get rid of compiler warnings.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 20:56:40 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h, numeric.c (round): moved prototype of round()</div><div class='add'>+	  from numeric.c to missing.h.  (note: round() is C99 feature, so ruby</div><div class='add'>+	  provides it if not exist in C runtime.)</div><div class='add'>+</div><div class='add'>+Fri Jun  3 20:42:04 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Keep $stdin, $stdout before run testcase</div><div class='add'>+	  and restore after run. Because some test break $stdin, $stdout.</div><div class='add'>+	  Fixes [Bug #4433] [ruby-core:35353]</div><div class='add'>+</div><div class='add'>+Fri Jun  3 19:58:14 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): windows -- call fsync() only when the FD is tied to</div><div class='add'>+	  file, because if the FD is pipe, it blocks.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 09:27:31 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (URI::HTTP#request_uri): return nil when the uri</div><div class='add'>+	  is path-rootless form. Bug #4759</div><div class='add'>+</div><div class='add'>+Thu Jun  2 23:51:03 2011  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Improve the line ending detection algorithm</div><div class='add'>+	  patch by Alexey).</div><div class='add'>+</div><div class='add'>+Thu Jun  2 20:05:57 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_write, rb_io_s_binwrite): return!!!</div><div class='add'>+</div><div class='add'>+Thu Jun  2 16:29:34 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: Add File.write, File.binwrite. [Feature #1081] [ruby-core:21701]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: Test for File.write, File.binwrite.</div><div class='add'>+</div><div class='add'>+	* NEWS: News for above.</div><div class='add'>+</div><div class='add'>+Thu Jun  2 12:33:09 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush, rb_io_flush): need to fsync() when ruby calls</div><div class='add'>+	  internal flush. [ruby-core:36670] [Bug #4813]</div><div class='add'>+</div><div class='add'>+Thu Jun  2 07:56:24 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: reduce CPU power required by an eventloop.</div><div class='add'>+</div><div class='add'>+Tue May 31 21:28:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_signal_requiring):</div><div class='add'>+	  redirect stderr to null device.</div><div class='add'>+</div><div class='add'>+Thu Jun  2 00:45:26 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: fix for uninitialized global variables.</div><div class='add'>+	  [Ruby 1.9 - Bug #4811]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 21:57:08 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): fix 1000times calculation error.</div><div class='add'>+	  this is a regression since r31457. [Bug #4808] [ruby-dev:43606]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 17:19:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: remove unused macro.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 15:42:18 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (peek_n): new macro to see next nth char.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 15:40:46 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (gem): fix for rubygems change.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 14:07:57 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*: Imported minitest 2.2.2 (r6281)</div><div class='add'>+	* test/minitest/*: ditto</div><div class='add'>+</div><div class='add'>+Wed Jun  1 12:35:50 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.8.5 (released @ 137c80f)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+</div><div class='add'>+Wed Jun  1 12:34:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add new features of bigdecimal.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 09:41:14 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb:  Improve documentation.  Patch by Kuba Fietkiewicz.</div><div class='add'>+	  [Ruby 1.9 - Bug #4775]</div><div class='add'>+	* lib/cgi/core.rb:  ditto</div><div class='add'>+</div><div class='add'>+Wed Jun  1 09:26:05 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb:  Improve documentation and attach it to Numeric.</div><div class='add'>+	  Modified from patch by Anil V.  [Ruby 1.9 - Bug #4762]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 09:21:30 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb:  Indent examples enough to appear as code sections.</div><div class='add'>+	  Note that Prime is Enumerable.  [#4762]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 07:34:57 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (key_i):  Change rdoc from "the first occurrence" to "an</div><div class='add'>+	  occurrence" since first occurrence is not a specification of</div><div class='add'>+	  Hash#key.  [Ruby 1.9 - Bug #4760]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 07:26:19 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_check):  Restore "not reached" comment.</div><div class='add'>+	  [Ruby 1.9 - Bug #4756]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 07:21:40 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c:  Fix document-method declarations for set_sync and</div><div class='add'>+	  set_comment.  [Ruby 1.9 - Bug #4695]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 06:43:13 2011  Masaya Tarui  &lt;tarui@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (loaded_feature_path): cut nonsense loop execution to fix</div><div class='add'>+	  performance bug.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 01:16:02 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mix_module): implement Module#mix.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 01:15:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): should honor already set ecflags since it</div><div class='add'>+	  might be set by mode option.  fixed #4804</div><div class='add'>+</div><div class='add'>+Wed Jun  1 00:34:04 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): remove unused</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 00:32:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): support instantiation from</div><div class='add'>+	  a Float through Rational.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_new): ditto.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_global_new_float): add a test for</div><div class='add'>+	  the above changes.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_new_with_float): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 00:07:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): support coerce with a</div><div class='add'>+	  Rational.  The precision used for instantiate a BigDecimal from the</div><div class='add'>+	  given Rational is obtained from the receiver BigDecimal.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_coerce): add a test for the</div><div class='add'>+	  above change.</div><div class='add'>+</div><div class='add'>+Tue May 31 23:49:08 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (offset_to_sec): fixed invalid validation.</div><div class='add'>+</div><div class='add'>+Tue May 31 23:43:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): replace the algorithm for</div><div class='add'>+	  coercing from a Rational to stop requiring "bigdecimal/util.rb".</div><div class='add'>+	  [ruby-core:34318]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValue): refactoring.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_new): support instantiation from a</div><div class='add'>+	  Rational.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_rational): add a</div><div class='add'>+	  test for the above change.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_new_with_rational): ditto.</div><div class='add'>+</div><div class='add'>+Tue May 31 22:44:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_new): support instantiation a</div><div class='add'>+	  BigDecimal object from an Integer.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_new_with_integer):</div><div class='add'>+	  add for testing the above change.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): replace its body</div><div class='add'>+	  with a BigDecimal_new call.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_integer):</div><div class='add'>+	  add for testing the above change.</div><div class='add'>+</div><div class='add'>+Tue May 31 22:24:39 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: use simple/complex mode instead of light/right mode.</div><div class='add'>+	* test/date/*.rb: followed the above changes.</div><div class='add'>+</div><div class='add'>+Tue May 31 21:28:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_signal_requiring):</div><div class='add'>+	  initialize SIGINT handler.</div><div class='add'>+</div><div class='add'>+Tue May 31 17:03:24 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb, lib/net/protocol.rb: Allow to configure to wait</div><div class='add'>+	  server returning '100 continue' response before sending HTTP request</div><div class='add'>+	  body. See NEWS for more detail. See #3622.</div><div class='add'>+	  Original patch is made by Eric Hodel &lt;drbrain@segment7.net&gt;.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: test it.</div><div class='add'>+</div><div class='add'>+	* NEWS: Add new feature.</div><div class='add'>+</div><div class='add'>+Tue May 31 14:17:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): potential bug. the mode of read IO is set as</div><div class='add'>+	  DEFAULT_TEXTMODE in call of io_set_encoding(), and of write IO is</div><div class='add'>+	  also set as it in call of io_new_instance() via rb_protect().</div><div class='add'>+	  so, if DEFAULT_TEXTMODE is not 0, we should check the result of</div><div class='add'>+	  extract_binmode() and avoid crush of default IO mode and the result.</div><div class='add'>+</div><div class='add'>+Tue May 31 13:00:17 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): improved style consistency.</div><div class='add'>+	  constified some variables.</div><div class='add'>+</div><div class='add'>+	* test/test_time.rb (TestTime#test_huge_precision): test for #4456.</div><div class='add'>+</div><div class='add'>+Tue May 31 12:53:10 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/wait/test_io_wait.rb (TestIOWait#{test_nread,test_ready?,</div><div class='add'>+	  test_wait}: give system some time to process the written data.</div><div class='add'>+</div><div class='add'>+Tue May 31 12:40:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_open_mode): MUST release resources</div><div class='add'>+	  explicitly. fix problem of r31671</div><div class='add'>+</div><div class='add'>+Tue May 31 10:49:55 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.c: remove conditions for clang</div><div class='add'>+	  because clang version 3.0 (trunk 132165) doesn't need them.</div><div class='add'>+</div><div class='add'>+Mon May 30 22:19:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_signal_requiring): don't</div><div class='add'>+	  close stderr.</div><div class='add'>+</div><div class='add'>+Mon May 30 20:22:00 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_signal_requiring): small</div><div class='add'>+	  but critical typo of r31642.  sorry...</div><div class='add'>+	  [Bug #4798] [ruby-core:36550]</div><div class='add'>+</div><div class='add'>+Mon May 30 15:44:16 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_mult): as r31805, volatile it.</div><div class='add'>+	  Without this, clang -O fails calculation.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): ditto.</div><div class='add'>+</div><div class='add'>+	* rational.c (f_imul): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 30 10:26:51 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): make sure to assign the result of x * z.</div><div class='add'>+	  If xz is optimized out, the value won't overflow.</div><div class='add'>+</div><div class='add'>+Sun May 29 23:17:29 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match): fix rdoc of Regexp#=~.</div><div class='add'>+	  patched by Tsuyoshi Sawada. [Bug #4781]</div><div class='add'>+</div><div class='add'>+Sun May 29 23:10:42 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (WEBrick::HTTPRequest#parse_uri):</div><div class='add'>+	  keep parse_uri as private. patched by okkez. [Bug #4773]</div><div class='add'>+</div><div class='add'>+Sun May 29 17:53:03 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: add #include "internal.h" for rb_big_uminus() prototype.</div><div class='add'>+</div><div class='add'>+Sun May 29 15:09:05 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): fix for negative value.</div><div class='add'>+</div><div class='add'>+Sun May 29 02:16:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/utils.rb (TestNetHTTPUtils#teardown): add nil check.</div><div class='add'>+</div><div class='add'>+Sun May 29 00:22:40 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (before_exec, after_exec): change from macro to function.</div><div class='add'>+</div><div class='add'>+Sat May 28 19:30:17 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (before_exec, after_exec): change SIGPIPE handler to SIG_DFL</div><div class='add'>+	  before calling execve(). Because r31760 reintroduced an issue that</div><div class='add'>+	  system() may hang up (i.e. [ruby-dev:12261]).</div><div class='add'>+	* process.c (save_sigpipe, restore_sigpipe): new.</div><div class='add'>+</div><div class='add'>+Sat May 28 16:08:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal, default_handler): change default SIGPIPE handler</div><div class='add'>+	  from empty function to SIG_IGN. [ruby-dev:43215]</div><div class='add'>+	* signal.c (sigpipe): removed.</div><div class='add'>+</div><div class='add'>+Sat May 28 03:04:27 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fill_cbuf): return MORE_CHAR_SUSPENDED when cbuf is not empty.</div><div class='add'>+</div><div class='add'>+Sat May 28 02:22:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_bytesize): rb_str_bytesize() should use LONG2NUM().</div><div class='add'>+	  Patch by Nikolai Weibull. [Bug #4789] [ruby-core:36511]</div><div class='add'>+</div><div class='add'>+Sat May 28 02:06:26 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fill_cbuf): Fix test-all crash.</div><div class='add'>+</div><div class='add'>+Sat May 28 00:58:40 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (method_missing): Handle [] and []= correctly.</div><div class='add'>+	  Based on a patch by Caius Durling, bug #4179 [ruby-core:33792]</div><div class='add'>+</div><div class='add'>+Fri May 27 23:56:54 2011  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_core.rb (Tester::test_text_frozen): split frozen</div><div class='add'>+	  string test. refs #4783</div><div class='add'>+</div><div class='add'>+Fri May 27 22:46:23 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (gem): install gemspec of json.  fixed #4784</div><div class='add'>+</div><div class='add'>+Fri May 27 22:45:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (validate_enc_binmode): do not clear textmode flag if</div><div class='add'>+	  default.  fixed #4732</div><div class='add'>+</div><div class='add'>+	* io.c (fill_cbuf): finish reading at EOF.</div><div class='add'>+</div><div class='add'>+Fri May 27 11:31:51 2011  misfo &lt;tedwardo2@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text#initialize): prevent an error</div><div class='add'>+	  when passing a frozen string to REXML::Text.new</div><div class='add'>+</div><div class='add'>+	  dup the string passed in instead of cloning so that it's frozen</div><div class='add'>+	  state is ignored</div><div class='add'>+</div><div class='add'>+Fri May 27 08:47:26 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (ppoll): typo bug fix.</div><div class='add'>+</div><div class='add'>+Fri May 27 08:35:04 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: hang-up at exit before calling Tk.mainloop.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/extconf.rb: cannot make on MinGW [Ruby 1.9 - Bug #4141].</div><div class='add'>+</div><div class='add'>+Thu May 27 00:34:07 2011  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+    * lib/csv.rb: Enhance each() to support Enumerator.</div><div class='add'>+</div><div class='add'>+Thu May 26 10:32:11 2011  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+    * lib/csv.rb: Documentation improvements from Ysiad Ferreiras.</div><div class='add'>+      [Ruby 1.9 - Bug #4785]</div><div class='add'>+</div><div class='add'>+Thu May 26 15:42:02 2011  Cezary Baginski &lt;cezary.baginski@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb (FaultException): fix to_s and inspect</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/parser.rb: test for the above</div><div class='add'>+</div><div class='add'>+Wed May 25 11:54:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c:  Remove color constants block.</div><div class='add'>+	  [Ruby 1.9 - Bug #4748]</div><div class='add'>+</div><div class='add'>+Wed May 25 09:56:45 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c:  Add missing documentation for button state, MIN</div><div class='add'>+	  and MAX comments.  Add Curses. to TABSIZE= and ESCDELAY= methods.</div><div class='add'>+	  [Ruby 1.9 - Bug #4747]</div><div class='add'>+</div><div class='add'>+Wed May 25 09:35:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb:  Restore nodoc for Benchmark::Job and</div><div class='add'>+	  Benchmark::Report.  [Ruby 1.9 - Bug #4726]</div><div class='add'>+</div><div class='add'>+Wed May 25 09:29:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb:  Hide implementation details from RDoc.</div><div class='add'>+	  [Ruby 1.9 - Bug #4711]</div><div class='add'>+</div><div class='add'>+Wed May 25 09:26:29 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb:  Add :nodoc: for private methods.</div><div class='add'>+	  [Ruby 1.9 - Bug #4710]</div><div class='add'>+</div><div class='add'>+Wed May 25 09:19:17 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c:  Fix Document-method declarations.  Improve</div><div class='add'>+	  Zlib::GzipFile's method catalog.  [Ruby 1.9 - Bug #4695]</div><div class='add'>+</div><div class='add'>+Wed May 25 08:22:12 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb:  Hide documentation for implementation details of ERB.</div><div class='add'>+	  [Ruby 1.9 - Bug #4694]</div><div class='add'>+</div><div class='add'>+Wed May 25 07:58:14 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile.{mkdir,rmdir}): revert for backward</div><div class='add'>+	  compatibility.</div><div class='add'>+</div><div class='add'>+Wed May 25 07:13:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* spec/README: update the description.</div><div class='add'>+</div><div class='add'>+Wed May 25 07:12:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile.{lock,unlock}_tempfile): refactor.</div><div class='add'>+</div><div class='add'>+Tue May 24 17:30:36 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* spec/README: fix typo.</div><div class='add'>+	  patched by bowsersenior. https://github.com/ruby/ruby/pull/24</div><div class='add'>+</div><div class='add'>+Tue May 24 07:06:34 2011  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fail to start Tk.mainloop (exit immediately) on</div><div class='add'>+	  some environment (reported on [ruby-talk:381444]).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: support creating a canvas item object from</div><div class='add'>+	  an item ID number.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb: import documents which are pull-requested.</div><div class='add'>+	  [Ruby 1.9 - Feature #4595]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/extconf.rb: search directories for 64bit library (e.g.</div><div class='add'>+	  /usr/lib64), add some new configure options (see README.tcltklib),</div><div class='add'>+	  and bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/README.tcltklib: modify docs for some new configure</div><div class='add'>+	  options.</div><div class='add'>+</div><div class='add'>+Tue May 24 04:01:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: switch default YAML engine to Psych, old syck engine</div><div class='add'>+	  may be enabled via YAML::ENGINE.yamler = "syck". [ruby-core:36374]</div><div class='add'>+</div><div class='add'>+Mon May 23 09:45:26 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (CASEFOLD_FILESYSTEM): Revert r30508. Forgot to</div><div class='add'>+	  include this file in the commit r31692. __APPLE__ is not</div><div class='add'>+	  CASEFOLD_FILESYSTEM again, from this time.</div><div class='add'>+</div><div class='add'>+Mon May 23 10:01:02 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Do not parse zero-tagged values as EOC. Do</div><div class='add'>+	  not let current length become negative for infinite length constructed</div><div class='add'>+	  values. Support constructed values of length zero. Added tests.</div><div class='add'>+</div><div class='add'>+Mon May 23 09:19:53 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb:  Document Net::SMTP::Response.  Patch by J.R. Garcia.</div><div class='add'>+	  [Ruby 1.9 - Bug #4768]</div><div class='add'>+</div><div class='add'>+Mon May 23 09:03:52 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Never Ignore SIGINT. When received</div><div class='add'>+	Interrupt, immediately puts result and exit. [ruby-dev:43571]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: When received Interrupt, wait results from workers</div><div class='add'>+	and collect them. [ruby-dev:43571]</div><div class='add'>+</div><div class='add'>+Mon May 23 09:08:07 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb:  Improve documentation.  Patch by Sandor Szucs.</div><div class='add'>+	  [Ruby 1.9 - Bug #4767]</div><div class='add'>+</div><div class='add'>+Mon May 23 08:45:55 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb:  Improve documentation.  Patch by Franklin Webber.</div><div class='add'>+	  [Ruby 1.9 - Bug #4761]</div><div class='add'>+</div><div class='add'>+Mon May 23 08:35:24 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c:  Improve documentation of Hash#key.  Patch by Utkarsh</div><div class='add'>+	  Kukreti.  [Ruby 1.9 - Bug #4760]</div><div class='add'>+</div><div class='add'>+Mon May 23 08:32:59 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c:  Improve documentation.  Patch by Dave Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4757]</div><div class='add'>+</div><div class='add'>+Mon May 23 07:19:45 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (openssl): Infinite length support. Different behavior of</div><div class='add'>+	  Constructive and Primitive constructors.</div><div class='add'>+</div><div class='add'>+Mon May 23 06:58:33 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Forbid Constructives whose value is not an</div><div class='add'>+	  Array to prevent segfault. Added test.</div><div class='add'>+</div><div class='add'>+Mon May 23 06:33:17 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Forbid Constructive without infinite</div><div class='add'>+	  length. This also prevents a segfault. Added test and improved</div><div class='add'>+	  documentation.</div><div class='add'>+</div><div class='add'>+Mon May 23 05:58:14 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Fix decoding of infinite length values.</div><div class='add'>+	  Simplified ossl_asn1_decode0 by splitting it into three separate</div><div class='add'>+	  functions. Add tests.</div><div class='add'>+	  [Ruby 1.9 - Bug #4374][ruby-core:35123]</div><div class='add'>+</div><div class='add'>+Mon May 23 04:03:46 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_initialize): Allow creation of</div><div class='add'>+	  Constructives with an explicit tag_class parameter without</div><div class='add'>+	  automatically setting tagging to :EXPLICIT. Fixes a bug when encoding</div><div class='add'>+	  infinite length primitive values.</div><div class='add'>+</div><div class='add'>+Mon May 23 04:03:46 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_cons_to_der): Add an additional</div><div class='add'>+	  EOC for infinite length Constructives that are supposed to be encoded</div><div class='add'>+	  with explicit tagging. Also tabify method correctly.</div><div class='add'>+</div><div class='add'>+Mon May 23 03:44:39 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1data_to_der): Remove redundant</div><div class='add'>+	  flag tmp_cons.</div><div class='add'>+</div><div class='add'>+Mon May 23 00:35:00 2001  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (dump_bignum, bigmul1_balance, big_split, biglsh_bang),</div><div class='add'>+	  (bigrsh_bang, big_split3, bigmul1_toom3, bigmul0): implement Toom3 (Toom-Cook)</div><div class='add'>+	  multiplication.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: add format prefixes for BDIGIT and BDIGIT_DBL.</div><div class='add'>+</div><div class='add'>+Sun May 22 23:24:02 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Instead of rb_intern use static symbols to</div><div class='add'>+	  improve performance.</div><div class='add'>+</div><div class='add'>+Sun May 22 21:56:51 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Use OpenSSL constants V_ASN1_xxx instead of</div><div class='add'>+	  hardcoded numbers for initializing class_tag_map.</div><div class='add'>+</div><div class='add'>+Sun May 22 21:29:29 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (CASEFOLD_FILESYSTEM): Revert r30508. See #4255.</div><div class='add'>+	  Now __APPLE__ is not CASEFOLD_FILESYSTEM again.</div><div class='add'>+</div><div class='add'>+	* load.c (loaded_feature_path, rb_feature_p, load_lock): Revert r30508.</div><div class='add'>+	  See #4255. Make $LOADED_FEATURES scanning case-sensitive again.</div><div class='add'>+</div><div class='add'>+Sun May 22 18:59:27 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c(ossl_asn1_default_tag): avoid using RCLASS_SUPER</div><div class='add'>+	  to make it compilable. Plus, tabify and change variable definition style.</div><div class='add'>+</div><div class='add'>+Sun May 22 18:26:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (vm_xcalloc): use calloc provided by platforms.</div><div class='add'>+	  fixes #4754</div><div class='add'>+</div><div class='add'>+Sun May 22 11:44:53 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c:  Improve documentation.  Patch by David Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4756]</div><div class='add'>+</div><div class='add'>+Sun May 22 11:26:39 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb:  Improve documentation.  Patch by David Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4755]</div><div class='add'>+</div><div class='add'>+Sun May 22 11:21:41 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb:  Improve documentation.  Patch by Sandor Szucs.</div><div class='add'>+	  [Ruby 1.9 - Bug #4753]</div><div class='add'>+</div><div class='add'>+Sun May 22 11:14:40 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/forwardable.rb:  Document def_delegator.  Patch by Sandor Szucs.</div><div class='add'>+	  [Ruby 1.9 - Bug #4752]</div><div class='add'>+</div><div class='add'>+Sun May 22 11:11:41 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb:  Document block behavior of FileUtils.cd.  Patch by</div><div class='add'>+	  Bil Kleb.  [Ruby 1.9 - Bug #4751]</div><div class='add'>+</div><div class='add'>+Sun May 22 11:07:47 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c:  Complete documentation.  Patch by Vincent</div><div class='add'>+	  Batts.  [Ruby 1.9 - Bug #4748]</div><div class='add'>+</div><div class='add'>+Sun May 22 09:29:43 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name):</div><div class='add'>+	  use spawn. it prevent that other tests inherit renamed $0.</div><div class='add'>+</div><div class='add'>+Sun May 22 08:57:13 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Default tag lookup in constant time via hash</div><div class='add'>+	  instead of previous linear algorithm.</div><div class='add'>+	  [Ruby 1.9 - Feature #4309][ruby-core:34813]</div><div class='add'>+</div><div class='add'>+Sun May 22 07:54:16 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: Explain DSS and DSS1 in documentation.</div><div class='add'>+</div><div class='add'>+Sun May 22 07:10:25 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_dsa.rb: Add tests for sign/verify.</div><div class='add'>+</div><div class='add'>+Sun May 22 06:07:17 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509cert.rb: Merge DSA-related tests from ruby_1_8</div><div class='add'>+	  branch.</div><div class='add'>+</div><div class='add'>+Sun May 22 04:11:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (Init_Thread): add a code comment why the meaningless</div><div class='add'>+	  line is necessary.</div><div class='add'>+</div><div class='add'>+Sun May 22 01:35:12 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: modified documentation.</div><div class='add'>+</div><div class='add'>+Sat May 21 22:46:26 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime(date_strftime_with_tmx): "%v" means "%e-%b-%Y".</div><div class='add'>+</div><div class='add'>+Sat May 21 22:14:35 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): accept combination hash and</div><div class='add'>+	  File::Constants. (eg. File.open('yo', :mode =&gt; File::WRONLY))</div><div class='add'>+	  [Feature #4742][ruby-core:36338]</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_open_mode): new test.</div><div class='add'>+</div><div class='add'>+Sat May 21 21:44:14 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_switch_hitter.rb: new.</div><div class='add'>+</div><div class='add'>+Sat May 21 21:18:29 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_{core,parse}.c: moved nearly all core code from ext/date/lib.</div><div class='add'>+	* ext/date/lib/{date,date/format}.rb: removed nearly all code.</div><div class='add'>+</div><div class='add'>+Sat May 21 02:58:46 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/.document:  Add curses to documented extensions.</div><div class='add'>+	* ext/curses/curses.c:  Improve documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4747]</div><div class='add'>+</div><div class='add'>+Sat May 21 02:51:01 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb:  Improve documentation.  Patch</div><div class='add'>+	  by Pete Higgins.  [Ruby 1.9 - Bug #4746]</div><div class='add'>+</div><div class='add'>+Sat May 21 02:44:10 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/jacobian.rb:  Document isEqual.  Patch</div><div class='add'>+	  by Kuba Fietkiewicz.  [Ruby 1.9 - Bug #4744]</div><div class='add'>+</div><div class='add'>+Sat May 21 02:22:34 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb:  Document date formats.  Patch by</div><div class='add'>+	  Clinton Nixon.  [Ruby 1.9 - Bug #4743]</div><div class='add'>+</div><div class='add'>+Fri May 20 05:15:19 2011  Nobuhiro Iwamatsu  &lt;iwamatsu@nigauri.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: Fix build on m68k by 'error: too few arguments to</div><div class='add'>+	  function 'mark_locations_array''.</div><div class='add'>+</div><div class='add'>+Fri May 20 04:23:42 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb:  Improve documentation.  Patch by Gabe McArthur.</div><div class='add'>+	  [Ruby 1.9 - Bug #4735]</div><div class='add'>+</div><div class='add'>+Fri May 20 00:58:01 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/ibm737-tbl.rb: greek code page.  fixes #4738</div><div class='add'>+</div><div class='add'>+Thu May 19 14:44:05 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (test_signal_requiring): skip on Windows.</div><div class='add'>+	  we can send SIGINT only to pid 0 and the process itself.</div><div class='add'>+</div><div class='add'>+Thu May 19 09:07:08 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib: revert r31635-r31638 and untabify with expand(1).</div><div class='add'>+</div><div class='add'>+Thu May 19 07:47:26 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: Add tests for sign/verify.</div><div class='add'>+</div><div class='add'>+Thu May 19 07:19:16 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c: Add documentation.</div><div class='add'>+</div><div class='add'>+Thu May 19 07:06:56 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb:  Fix indentation.</div><div class='add'>+	* lib/net/imap.rb:  Fix indentation of regular expressions.</div><div class='add'>+</div><div class='add'>+Thu May 19 06:36:11 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb:  Fix indentation of EOF for heredoc.</div><div class='add'>+	* lib/debug.rb (Commands):  Fix indentation of EOHELP for heredoc.</div><div class='add'>+</div><div class='add'>+Thu May 19 06:30:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb:  Fix indentation of EOM for heredoc.</div><div class='add'>+</div><div class='add'>+Thu May 19 06:16:41 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib:  Convert tabs to spaces for ruby files per</div><div class='add'>+	  https://bugs.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style</div><div class='add'>+	  Patch by Steve Klabnik [Ruby 1.9 - Bug #4730]</div><div class='add'>+	  Patch by Jason Dew [Ruby 1.9 - Feature #4718]</div><div class='add'>+</div><div class='add'>+Thu May 19 06:06:07 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb:  Improve documentation.  Patch by Clinton Nixon.</div><div class='add'>+	  [Ruby 1.9 - Bug #4733]</div><div class='add'>+	* lib/cgi/core.rb:  ditto</div><div class='add'>+	* lib/cgi/cookie.rb:  ditto</div><div class='add'>+</div><div class='add'>+Thu May 19 06:02:21 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb:  Document Dir.mkdir and Dir.rmdir.  Patch by Clinton</div><div class='add'>+	  Nixon.  [Ruby 1.9 - Bug #4728]</div><div class='add'>+</div><div class='add'>+Thu May 19 05:57:52 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c:  Improve documentation for Encoding#default_external and</div><div class='add'>+	  Encoding#default_internal.</div><div class='add'>+</div><div class='add'>+Wed May 18 22:45:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/lib/console/size.rb (IO#console_size): new</div><div class='add'>+	  method.  (EXPERIMENTAL)</div><div class='add'>+</div><div class='add'>+Wed May 18 22:41:51 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* internal.h: add for internal use only.</div><div class='add'>+</div><div class='add'>+Wed May 18 22:36:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (setup_exception): internal exception should be hidden</div><div class='add'>+</div><div class='add'>+Wed May 18 20:25:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout#timeout): don't leak "execution expired"</div><div class='add'>+	  exception. [Bug #4283] [ruby-core:34534].</div><div class='add'>+</div><div class='add'>+Wed May 18 06:09:24 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb:  Add some examples and improve documentation.  Patch by</div><div class='add'>+	  Sandor Szucs.  [Ruby 1.9 - Bug #4727]</div><div class='add'>+</div><div class='add'>+Wed May 18 05:40:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb:  Remove nodoc from Benchmark::Job and</div><div class='add'>+	  Benchmark::Report.  Patch by Sandor Szucs.  [Ruby 1.9 - Bug #4726]</div><div class='add'>+</div><div class='add'>+Wed May 18 05:29:26 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/compat.rb:  Improve documentation.  Patch by Sandor</div><div class='add'>+	  Szucs.  [Ruby 1.9 - Bug #4725]</div><div class='add'>+</div><div class='add'>+Wed May 18 05:10:35 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb:  Improve documentation.  Patch by Richard Ramsden.</div><div class='add'>+	  [Ruby 1.9 - Feature #4720]</div><div class='add'>+</div><div class='add'>+Wed May 18 04:53:41 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb:  Improve documentation.  Patch by Jason Dew.</div><div class='add'>+	  [Ruby 1.9 - Feature #4717]</div><div class='add'>+</div><div class='add'>+Wed May 18 04:50:24 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb:  Improve documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4710]</div><div class='add'>+</div><div class='add'>+Wed May 18 03:14:49 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_singleton.rb:  Add tests from lib/singleton.rb.  Patch by</div><div class='add'>+	  Pete Higgins.  [Ruby 1.9 - Bug #4715]</div><div class='add'>+</div><div class='add'>+Wed May 18 03:03:07 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb:  Improve documentation.  Patch by Pete Higgins.</div><div class='add'>+	  [Ruby 1.9 - Bug #4709]</div><div class='add'>+</div><div class='add'>+Tue May 17 21:24:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_lock): remove remove_signal_thread_list() call.</div><div class='add'>+	  It's meaningless because lock_interrupt doesn't call</div><div class='add'>+	  add_signal_thread_list().</div><div class='add'>+</div><div class='add'>+Tue May 17 20:20:49 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_struct): add volatile to</div><div class='add'>+	  transition_for_lock because it is not protected by lock.</div><div class='add'>+</div><div class='add'>+Tue May 17 20:08:53 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL (missing/{elf,tgamma,lgamma_r}.c): they've been replaced by</div><div class='add'>+	  public domain implementations.</div><div class='add'>+</div><div class='add'>+	* LEGAL (vsnprintf.c): it has moved to srcdir from missing/.</div><div class='add'>+</div><div class='add'>+	* LEGAL (missing/crypt.c): list its original license.</div><div class='add'>+</div><div class='add'>+Tue May 17 19:54:26 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL (configure): add missing/setproctitle.c</div><div class='add'>+</div><div class='add'>+Tue May 17 19:35:01 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+	Fix FreeBSD test failure.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name):</div><div class='add'>+	  use ps -o command instead of ps -o cmd. FreeBSD doesn't support</div><div class='add'>+	  -o cmd option.</div><div class='add'>+</div><div class='add'>+Tue May 17 08:04:26 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: Add documentation.</div><div class='add'>+</div><div class='add'>+Tue May 17 07:14:58 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  Improve documentation of proxy configuration</div><div class='add'>+	  methods.  Patch by Alf Mikula.  [Ruby 1.9 - Bug #4714]</div><div class='add'>+</div><div class='add'>+Tue May 17 07:09:01 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb:  Improve documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4711]</div><div class='add'>+	* lib/net/telnet.rb:  ditto</div><div class='add'>+</div><div class='add'>+Tue May 17 07:00:41 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  Fix nodoc for Net::HTTP::version_1_1?.  Patch by</div><div class='add'>+	  Alf Mikula.  [Ruby 1.9 - Bug #4713]</div><div class='add'>+</div><div class='add'>+Tue May 17 06:56:26 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb:  Add link to make_switch to improve documentation.</div><div class='add'>+	  Patch by David Copeland.  [Ruby 1.9 - Bug #4708]</div><div class='add'>+</div><div class='add'>+Tue May 17 06:50:40 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/observer.rb:  Improve documentation.  Patch by David Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4707]</div><div class='add'>+</div><div class='add'>+Tue May 17 06:42:53 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb:  Improve documentation.  Patch by David Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4706]</div><div class='add'>+</div><div class='add'>+Tue May 17 06:28:14 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/gserver.rb:  Improve documentation.  Patch by David Copeland.</div><div class='add'>+	  [Ruby 1.9 - Bug #4705]</div><div class='add'>+</div><div class='add'>+Tue May 17 06:21:15 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: Add toplevel documentation to class CGI</div><div class='add'>+	* lib/cgi/session.rb: Add overview documentation to CGI::Cookie</div><div class='add'>+	* lib/cgi/html.rb:  Don't add CGI::TagMaker documentation to CGI.</div><div class='add'>+	  Patch by David Copeland.  [Ruby 1.9 - Bug #4704]</div><div class='add'>+	* lib/cgi/core.rb:  Clean up CGI documentation.  Patch by David</div><div class='add'>+	  Copeland.  [Ruby 1.9 - Bug #4704]</div><div class='add'>+	* lib/cgi/cookie.rb:  Clean up CGI::Cookie documentation.  Patch by</div><div class='add'>+	  David Copeland.  [Ruby 1.9 - Bug #4704]</div><div class='add'>+</div><div class='add'>+Tue May 17 05:52:30 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest: Improve documentation of Digest, Digest::HMAC and</div><div class='add'>+	  Digest::SHA2.  Patch by Pete Higgins.  [Ruby 1.9 - Bug #4702]</div><div class='add'>+</div><div class='add'>+Tue May 17 03:51:42 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/abbrev.rb:  Hide copyright and revision information from RDoc.</div><div class='add'>+	  Inspired by patch from David Copeland, bug #4703.</div><div class='add'>+</div><div class='add'>+Tue May 17 03:33:21 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (module Timeout):  Hide internal constants.  Patch by</div><div class='add'>+	  Pete Higgins.  [Ruby 1.9 - Bug #4701]</div><div class='add'>+</div><div class='add'>+Mon May 16 11:21:09 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (RUBY_SO_NAME): add CPU as prefix</div><div class='add'>+	  of RUBY_SO_NAME on x64/ia64 mswin/mingw.</div><div class='add'>+	  [Feature #4602]</div><div class='add'>+</div><div class='add'>+Mon May 16 08:00:05 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc.rb:  Update to RDoc 3.6.1, allows OpenSSL::Digest to be</div><div class='add'>+	  found.</div><div class='add'>+</div><div class='add'>+Mon May 16 05:49:54 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/acl.rb:  Add documentation.</div><div class='add'>+</div><div class='add'>+Mon May 16 05:13:20 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Add documentation.</div><div class='add'>+</div><div class='add'>+Mon May 16 00:32:05 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_signal_process_group):</div><div class='add'>+	  skip if the platform doesn't have :pgroup capability. (i.e. skip</div><div class='add'>+	  if mswin32)</div><div class='add'>+</div><div class='add'>+Sun May 15 23:53:31 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: resurrect old rb_fd_copy().</div><div class='add'>+	* thread.c (rb_fd_copy): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 15 23:45:11 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove rb_fd_copy() to rb_fd_dup() and</div><div class='add'>+	  rb_w32_fdcopy() to rb_w32_fd_dup().</div><div class='add'>+	* win32/win32.c: ditto.</div><div class='add'>+	* thread.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun May 15 22:26:39 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill): accept '-SIGXXX' style signal with Symbol or</div><div class='add'>+	  implicit conversion with #to_str. [ruby-dev:43169] fixes #4362</div><div class='add'>+	* test/ruby/test_signal.rb (test_signal_process_group): add a test</div><div class='add'>+	  for send signal to process group.</div><div class='add'>+</div><div class='add'>+Sun May 15 21:22:35 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_init): clear macihne_stack_start/end of saved thread to</div><div class='add'>+	  prevent mark machine stack of GC'ed Thread. root Fiber is not</div><div class='add'>+	  initialized by fiber_init().</div><div class='add'>+	  based on a patch by Serge Balyuk [ruby-core:35891] fixes #4612</div><div class='add'>+	* test/ruby/test_fiber.rb (test_gc_root_fiber): add test for it.</div><div class='add'>+</div><div class='add'>+Sun May 15 21:04:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_init): revert r31353.  [ruby-dev:43512]</div><div class='add'>+</div><div class='add'>+Sun May 15 03:39:35 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c:  Improve documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4695]</div><div class='add'>+</div><div class='add'>+Sun May 15 03:23:46 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb:  Document ERB::Compiler.  Patch by Simon Chiang.</div><div class='add'>+	  [Ruby 1.9 - Bug #4694]</div><div class='add'>+</div><div class='add'>+Sun May 15 00:58:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+	fix mswin32 build error.</div><div class='add'>+</div><div class='add'>+	* missing/setproctitle.c: add #ifdef HAVE_UNISTD_H.</div><div class='add'>+	* win32/Makefile.sub (MISSING): add setproctitle.obj</div><div class='add'>+</div><div class='add'>+Sat May 14 22:45:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* missing/setproctitle.c: add to include "ruby/util.h".</div><div class='add'>+</div><div class='add'>+Sat May 14 19:52:22 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name):</div><div class='add'>+	  add for $0 test.</div><div class='add'>+</div><div class='add'>+Sat May 14 19:50:46 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* missing/setproctitle.c (compat_init_setproctitle): use</div><div class='add'>+	  ruby_strdup() instead of strdup().</div><div class='add'>+</div><div class='add'>+Sat May 14 19:37:31 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: add setproctitle() declaration.</div><div class='add'>+	* missing/setproctitle.c: added.</div><div class='add'>+	* configure.in: add check for missing/setproctitle.c.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): add to call compat_init_setproctitle().</div><div class='add'>+	* ruby.c (set_arg0): remove all platform specific code. it's</div><div class='add'>+	  moved to missing/setproctitle.c.</div><div class='add'>+	* ruby.c (origarg): remove len field. It's no longer used.</div><div class='add'>+	* ruby.c (get_arglen): removed.</div><div class='add'>+</div><div class='add'>+	This patch makes a lot of cleanup set_arg0 related code and fixes</div><div class='add'>+	[Feature #4689].</div><div class='add'>+</div><div class='add'>+Sat May 14 17:42:21 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): improve documentation.</div><div class='add'>+	  [ruby-core:35785] fixes #4581, reported by Andrew Grimm.</div><div class='add'>+</div><div class='add'>+Sat May 14 12:12:54 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_dsa.rb: Add basic tests and tests that</div><div class='add'>+	  ensure new public key PEM encoding behavior and ensure backward</div><div class='add'>+	  compatibility.</div><div class='add'>+	  [Ruby 1.9 - Bug #4422] [ruby-core:35328]</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: Remove line with 'puts'.</div><div class='add'>+</div><div class='add'>+Sat May 14 12:06:49 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/context.rb (class RDoc):  Fix infinite loop caused by</div><div class='add'>+	  re-encountering BasicObject.</div><div class='add'>+</div><div class='add'>+Sat May 14 10:32:36 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: Add tests that ensure new public key</div><div class='add'>+	  encoding behavior and also ensure backward compatibility.</div><div class='add'>+	  [Ruby 1.9 - Bug #4421] [ruby-core:35327]</div><div class='add'>+</div><div class='add'>+Sat May 14 09:50:10 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/dbm.rb:  Add documentation.  Patch by Justin Collins.</div><div class='add'>+	  [Ruby 1.9 - Bug #4693]</div><div class='add'>+	* lib/yaml/store.rb:  ditto</div><div class='add'>+</div><div class='add'>+Sat May 14 09:31:43 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc.rb: Updated to RDoc 3.6</div><div class='add'>+</div><div class='add'>+Sat May 14 07:30:29 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: released a new gem, so increasing version.</div><div class='add'>+</div><div class='add'>+Sat May 14 05:08:32 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c</div><div class='add'>+	* ext/openssl/ossl_pkey.c</div><div class='add'>+	* ext/openssl/ossl_pkey.h</div><div class='add'>+	* test/openssl/pkey/test_pkey_rsa.rb</div><div class='add'>+	  Reverted premature commit. Sorry for the noise!</div><div class='add'>+</div><div class='add'>+Sat May 14 05:02:58 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri.rb:  Add toplevel documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4690]</div><div class='add'>+</div><div class='add'>+Sat May 14 04:19:06 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Describe altered behaviour for RSA and DSA public key</div><div class='add'>+	  encoding. [Ruby 1.9 - Bug #4421, Bug #4422]</div><div class='add'>+	  [ruby-core:35327,35328]</div><div class='add'>+</div><div class='add'>+Sat May 14 02:57:52 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (unless Socket):  Document valid*? methods.  Patch by</div><div class='add'>+	  Sebastian Martinez.  [Ruby 1.9 - Feature #4687]</div><div class='add'>+</div><div class='add'>+Sat May 14 02:54:04 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/functions.rb:  Add some documentation for REXML::Functions.</div><div class='add'>+	  Patch by Sebastian Martinez.  [Ruby 1.9 - Feature #4688]</div><div class='add'>+</div><div class='add'>+Sat May 14 02:51:42 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb:  Hide private method and state-tracking constants from</div><div class='add'>+	  RDoc.  Patch by Mark Turner.  [Ruby 1.9 - Feature #4691]</div><div class='add'>+</div><div class='add'>+Fri May 13 19:23:21 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_coerce): Add #flo_coerce documentation.</div><div class='add'>+	  Patch by Sebastian Martinez.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/21</div><div class='add'>+</div><div class='add'>+Fri May 13 18:42:22 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: fix typo.  Patch by William Blackerby.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/19</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 13 15:22:34 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): check invalid handle before doing</div><div class='add'>+	  select operations.  see [ruby-dev:43513], [ruby-dev:43535]</div><div class='add'>+</div><div class='add'>+Fri May 13 08:34:00 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb:  Output summary after documentation report.</div><div class='add'>+	* lib/rdoc/stats/normal.rb:  Don't output information for users when</div><div class='add'>+	  we're not on a TTY</div><div class='add'>+</div><div class='add'>+Fri May 13 07:49:02 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb:  Hide internal methods from RDoc.  Patch by Darragh</div><div class='add'>+	  Curran.  [Ruby 1.9 - Bug #4684]</div><div class='add'>+</div><div class='add'>+Fri May 13 07:36:23 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/erbhandler.rb:  Add documentation.</div><div class='add'>+</div><div class='add'>+Fri May 13 07:04:33 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb:  Fix indentation.  Patch by Jason Dew.</div><div class='add'>+	  [Ruby 1.9 - Feature #4682]</div><div class='add'>+</div><div class='add'>+Fri May 13 06:50:43 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb:  Add documentation.  Patch by Jason Dew.  [Ruby 1.9 -</div><div class='add'>+	  Feature #4667]</div><div class='add'>+</div><div class='add'>+Fri May 13 05:44:19 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (class Logger):  Document Logger#datetime_format.</div><div class='add'>+	  Patch by Sergio Gil Perez de la Manga.  [Ruby 1.9 - Bug #4678]</div><div class='add'>+</div><div class='add'>+Fri May 13 05:39:11 2011  Eric Hodel &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): Document option constants.  Patch by Vincent</div><div class='add'>+	  Batts.  [Ruby 1.9 - Bug #4677]</div><div class='add'>+	* lib/uri/common.rb (module URI):  Documentation for URI.  Patch by</div><div class='add'>+	  Vincent Batts.  [Ruby 1.9- Bug #4677]</div><div class='add'>+	* lib/uri/ftp.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/generic.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/http.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/https.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/ldap.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/ldaps.rb (module URI):  ditto</div><div class='add'>+	* lib/uri/mailto.rb (module URI):  ditto</div><div class='add'>+	* process.c (Init_process):  Document Process constants.  Patch by</div><div class='add'>+	  Vincent Batts.  [Ruby 1.9- Bug #4677]</div><div class='add'>+</div><div class='add'>+Fri May 13 05:16:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/atom.rb (module RSS):  Document URIs.  Patch by Mark Turner.</div><div class='add'>+	  [Ruby 1.9 - #4671]</div><div class='add'>+	* lib/rss/rss.rb (module RSS):  Document exception classes.  Patch by</div><div class='add'>+	  Mark Turner.  [Ruby 1.9 - #4671]</div><div class='add'>+</div><div class='add'>+Fri May 13 02:15:18 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (select_internal): remove unused variable (interrupt_flag).</div><div class='add'>+</div><div class='add'>+Thu May 12 18:24:34 2011  Kouhei Sutou  &lt;kou@clear-code.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: limit to "T" type for prefix of external symbols</div><div class='add'>+	  because x86_64-w64-mingw32-gcc on Debian GNU/Linux generates the</div><div class='add'>+	  following symbol:</div><div class='add'>+	    0000000068483390 D _GLOBAL__F__conftest_external</div><div class='add'>+</div><div class='add'>+	  Approved by nobu.</div><div class='add'>+</div><div class='add'>+Thu May 12 14:50:52 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb (Fiddle::LIBC_SO): its always msvc*.dll on</div><div class='add'>+	  mswin/mingw.</div><div class='add'>+</div><div class='add'>+Thu May 12 14:47:53 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): copy only when temporary logfile</div><div class='add'>+	  exists.</div><div class='add'>+</div><div class='add'>+Thu May 12 12:24:22 2011  Nobuhiro Iwamatsu  &lt;iwamatsu@nigauri.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: By trunk@31346, function check of SSLv2 is</div><div class='add'>+	  executed.</div><div class='add'>+	  However, the problem is not revised in this.</div><div class='add'>+	  This adds the control of using function of SSLv2 in made macro by</div><div class='add'>+	  function check.</div><div class='add'>+</div><div class='add'>+Thu May 12 08:10:46 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (class Set):  Add nodoc to internal-use methods.  Patch</div><div class='add'>+	  by Pete Higgins.  [Ruby 1.9 - Bug #4665]</div><div class='add'>+</div><div class='add'>+Thu May 12 08:01:14 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c: Allow encryption when PEM-encoding</div><div class='add'>+	  Elliptic Curve private keys.</div><div class='add'>+	  [ruby-core:35329] [Bug #4423]</div><div class='add'>+</div><div class='add'>+Thu May 12 07:54:59 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_equal):  Add documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #4664]</div><div class='add'>+	* lib/rexml:  ditto</div><div class='add'>+	* lib/mkmf.rb:  ditto</div><div class='add'>+	* ext/socket/lib/socket.rb:  ditto</div><div class='add'>+</div><div class='add'>+Thu May 12 07:30:08 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* Various .document files: Update .document files to match files which</div><div class='add'>+	  have documentation.</div><div class='add'>+</div><div class='add'>+Thu May 12 07:18:45 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: Use generic X.509 SubjectPublicKeyInfo</div><div class='add'>+	  format for PEM-encoding DSA public keys.</div><div class='add'>+	  [ruby-core:35328] [Bug #4422]</div><div class='add'>+</div><div class='add'>+Thu May 12 06:27:31 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c: Use generic X.509 SubjectPublicKeyInfo</div><div class='add'>+	  format for encoding RSA public keys.</div><div class='add'>+	  [ruby-core:35327] [Bug #4421]</div><div class='add'>+</div><div class='add'>+Wed May 11 19:45:27 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/forwardable.rb: support 'delegate :foo =&gt; :bar' for to meet</div><div class='add'>+	  by specification of RDOC.</div><div class='add'>+</div><div class='add'>+Wed May 11 08:36:38 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick: Add documentation for WEBrick::HTTPAuth</div><div class='add'>+</div><div class='add'>+Wed May 11 03:06:35 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss.rb: Add documentation for RSS.  Patch by Steve Klabnik.</div><div class='add'>+	  [Ruby 1.9 - Bug #4663]</div><div class='add'>+</div><div class='add'>+Tue May 10 14:50:32 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Add option for hiding skip messages when test</div><div class='add'>+	  ends. #4657</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_hideskip.rb, test/testunit/test4test_hideskip.rb:</div><div class='add'>+	  test for above.</div><div class='add'>+</div><div class='add'>+Tue May 10 10:53:04 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): Add rdoc-coverage rule</div><div class='add'>+</div><div class='add'>+Tue May 10 09:13:21 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick: Add Documentation</div><div class='add'>+</div><div class='add'>+Tue May 10 04:22:09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb: Hide copyright info from ri</div><div class='add'>+	* lib/webrick/httpstatus.rb: ditto</div><div class='add'>+	* lib/webrick/htmlutils.rb: ditto</div><div class='add'>+	* lib/webrick/httpversion.rb: ditto</div><div class='add'>+	* lib/webrick/version.rb: ditto</div><div class='add'>+	* lib/webrick/httpauth/userdb.rb: ditto</div><div class='add'>+	* lib/webrick/httpauth/authenticator.rb: ditto</div><div class='add'>+	* lib/webrick/accesslog.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon May  9 20:57:13 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_{complex,rational}.rb: added tests.</div><div class='add'>+</div><div class='add'>+Mon May  9 20:29:44 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): a refactoring.</div><div class='add'>+</div><div class='add'>+Mon May  9 18:33:05 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: Improve documentation for String#start_with? and</div><div class='add'>+	  String#end_with?. fixes #4652</div><div class='add'>+	  patched by Andrew Grimm &lt;andrew.j.grimm at gmail.com&gt;</div><div class='add'>+</div><div class='add'>+Mon May  9 13:49:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): support scientific notation.</div><div class='add'>+	  patched by Tinco Andringa. https://github.com/ruby/ruby/pull/16</div><div class='add'>+	  [ruby-core:36046][Bug #4655]</div><div class='add'>+</div><div class='add'>+Mon May  9 11:52:48 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_ord): remove K&amp;R style.</div><div class='add'>+	  patched by Daehyub Kim. https://github.com/ruby/ruby/pull/17</div><div class='add'>+</div><div class='add'>+Sun May  8 22:17:24 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_{complex2,complexrational}.rb: use skip.</div><div class='add'>+	* test/date/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun May  8 21:02:31 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_{complex2,complexrational}.rb: NEVER SKIP.</div><div class='add'>+</div><div class='add'>+Sun May  8 21:01:21 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_date_base.rb: fixed.</div><div class='add'>+</div><div class='add'>+Sun May  8 20:54:11 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: NEVER SKIP.</div><div class='add'>+</div><div class='add'>+Sun May  8 20:37:33 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: reverted 31432.</div><div class='add'>+</div><div class='add'>+Sun May  8 20:32:43 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: reverted 31483.</div><div class='add'>+</div><div class='add'>+Sun May  8 19:39:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_timedwait): add to care EINTR.</div><div class='add'>+	* thread_pthread.c (thread_timer): remove EINTR check.</div><div class='add'>+</div><div class='add'>+Sun May  8 19:04:15 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (xmlschema): avoid passing any negative numbers.</div><div class='add'>+</div><div class='add'>+Sun May  8 18:40:03 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_{parse,strptime}.c: introduced some macros.</div><div class='add'>+</div><div class='add'>+Sun May  8 17:17:13 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: use skip /w messages.</div><div class='add'>+</div><div class='add'>+Sun May  8 17:04:55 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb (_httpdate): omitted to call zone_to_diff.</div><div class='add'>+</div><div class='add'>+Sun May  8 16:56:19 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_s_test_*): use macros.</div><div class='add'>+</div><div class='add'>+Sun May  8 10:24:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: cleanup signal_thread_list related ifdef.</div><div class='add'>+	  1) we don't have to use #ifdef FOO-PLATFORM directly 2) About</div><div class='add'>+	  half #ifdef didn't care symbian properly.</div><div class='add'>+</div><div class='add'>+Sun May  8 05:19:37 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/wait/test_io_wait.rb: Linux socketpair(2) only support</div><div class='add'>+	  AF_UNIX, but windows socketpair doesn't support it. we can't</div><div class='add'>+	  avoid platform check. sigh!</div><div class='add'>+</div><div class='add'>+Sun May  8 00:13:05 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/wait/test_io_wait.rb: use Socket.pair instead of pipe.</div><div class='add'>+	  Windows can only treat a socket.</div><div class='add'>+</div><div class='add'>+Sat May  7 22:43:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_zero): remove redundant zero fill.</div><div class='add'>+</div><div class='add'>+Sat May  7 22:38:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_init): remove volatile qualifier.</div><div class='add'>+</div><div class='add'>+Sat May  7 22:34:29 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_init_copy): new internal api. It provide efficient</div><div class='add'>+	  copy constructor semantics.</div><div class='add'>+	* thread.c (do_select): use rb_fd_init_copy().</div><div class='add'>+</div><div class='add'>+Sat May  7 15:18:06 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+	fix incorrect native_cond_signal call when deadlock was detected.</div><div class='add'>+</div><div class='add'>+	* thread.c (lock_func): decrement cond_waiting if timeout was happen.</div><div class='add'>+</div><div class='add'>+Sat May  7 18:28:37 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (USE_MONOTONIC_COND): check the availability</div><div class='add'>+	  more strictly.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (rb_thread_cond_t): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  7 15:15:10 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	fix win32 native_cond_timedwait() makes SIGSEGV.</div><div class='add'>+</div><div class='add'>+	* thread_win32.h (rb_thread_cond_struct): add prev field instead of</div><div class='add'>+	  last. (ie cond_event_entry is now using double linked list instead of</div><div class='add'>+	  single)</div><div class='add'>+	* thread_win32.c (cond_event_entry): add prev field.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (__cond_timedwait): remove entry properly if timeout</div><div class='add'>+	  was happen.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_cond_signal): change for double linked list.</div><div class='add'>+	* thread_win32.c (native_cond_broadcast): ditto.</div><div class='add'>+	* thread_win32.c (native_cond_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  7 12:41:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+	fix mutex deadlock test hang-up.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (abs_timespec_to_timeout_ms): fix 1000x calculation</div><div class='add'>+	  mistake. (ie fix hang-up native_cond_timedwait())</div><div class='add'>+</div><div class='add'>+Sat May  7 03:14:13 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	sleep_cond use monotonic time if possible.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_init): change sleep_cond</div><div class='add'>+	  attribute to monotonic.</div><div class='add'>+	* thread_pthread.c (native_sleep): use native_cond_timeout().</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_timeout): add overflow care.</div><div class='add'>+	* thread_win32.c (native_cond_timeout): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  7 02:49:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+	  fix win32 compile error.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (RB_CONDATTR_CLOCK_MONOTONIC): define</div><div class='add'>+	  RB_CONDATTR_CLOCK_MONOTONIC always.</div><div class='add'>+	* thread_pthread.c (RB_CONDATTR_CLOCK_MONOTONIC): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  7 02:29:41 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	  mutex: deadlock check timeout use monotonic time.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_timeout): new internal api.</div><div class='add'>+	  it calculate a proper time for argument of native_cond_timedwait().</div><div class='add'>+	* thread_win32.c (native_cond_timeout): ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): use native_cond_timeout()</div><div class='add'>+	  instead of get_ts.</div><div class='add'>+	* thread.c (lock_func): ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_ts): removed. use native_cond_timeout().</div><div class='add'>+	* thread.c (init_lock_timeout): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  7 01:54:21 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_ts): add monotonic clock capability.</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): use monotonic</div><div class='add'>+	  clock if possible.</div><div class='add'>+</div><div class='add'>+Sat May  7 01:43:37 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (rb_thread_cond_t): add clockid field. it's</div><div class='add'>+	  no longer an alias of pthread_cond_t.</div><div class='add'>+	* thread_pthread.c: adapt new rb_thread_cond_t type.</div><div class='add'>+	* thread.c (mutex_alloc): ditto.</div><div class='add'>+	* thread_win32.c (native_cond_initialize): ditto.</div><div class='add'>+	* configure.in: add check for pthread_cond_attr_setclock() and</div><div class='add'>+	  clockid_t type.</div><div class='add'>+</div><div class='add'>+Fri May  6 23:29:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_wait_for_single_fd): use ppoll() instead of poll()</div><div class='add'>+	  if possible. based on a patch from Eric Wong. [ruby-core:36003].</div><div class='add'>+</div><div class='add'>+Fri May  6 23:13:43 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove nanosleep check. we no longer use it.</div><div class='add'>+	  r20124 removed last usage.</div><div class='add'>+</div><div class='add'>+Fri May  6 22:35:56 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do): extra digits are not used.</div><div class='add'>+</div><div class='add'>+Fri May  6 17:43:07 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do): remove unused variable offset.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: use #ifdef instead of #if DEBUG.</div><div class='add'>+</div><div class='add'>+Fri May  6 16:27:33 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (DAY_IN_NANOSECONDS): refix: 31438.</div><div class='add'>+	  check with LONG_MAX and cast as long; without this the calculation</div><div class='add'>+	  will be done as int and overflow.</div><div class='add'>+</div><div class='add'>+Fri May  6 15:01:11 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do): avoid buffer overrun, by</div><div class='add'>+	  silently ignoring lesser significant digits.  Required buffer</div><div class='add'>+	  length can be computable so you might at first think of</div><div class='add'>+	  allocating enough memory space on the fly using alloca().  That</div><div class='add'>+	  is a wrong idea because when using alloca there is always risk</div><div class='add'>+	  of integer overflow.  A function that accepts outer-process</div><div class='add'>+	  resources like this should not blindly trust its inputs.  In</div><div class='add'>+	  this particular case we just want to generate milliseconds</div><div class='add'>+	  resolution by strtod() so the string in question needs no more</div><div class='add'>+	  length than what we originally have.  Ignoring lesser</div><div class='add'>+	  significant digits should suffice I believe.</div><div class='add'>+</div><div class='add'>+Fri May  6 14:25:53 2011  Tinco Andringa &lt;mail@tinco.nl&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do): YAML.load time correctly parse</div><div class='add'>+	  usecs smaller than 1 fixes #4571</div><div class='add'>+</div><div class='add'>+Thu May  5 22:23:34 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_mutex_reinitialize_atfork): removed</div><div class='add'>+	  unused macro.</div><div class='add'>+	* thread_win32.c (native_mutex_reinitialize_atfork): ditto.</div><div class='add'>+</div><div class='add'>+Thu May  5 22:09:39 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (DAY_IN_NANOSECONDS): long long int is not</div><div class='add'>+	  available on all platforms.</div><div class='add'>+</div><div class='add'>+Thu May  5 17:36:31 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_func_id): store result of method_entry_of_iseq() to</div><div class='add'>+	  cfp-&gt;me because method_entry_of_iseq() might become expensive.</div><div class='add'>+</div><div class='add'>+Thu May  5 15:03:51 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_func_id): __method__ return different name from</div><div class='add'>+	  methods defined by Module#define_method with a same block.</div><div class='add'>+	  [ruby-core:35386] fixes #4606</div><div class='add'>+	* eval.c (method_entry_of_iseq): new helper function. search control</div><div class='add'>+	  frame stack for a method entry which has given iseq.</div><div class='add'>+	* test/ruby/test_method.rb: add tests for #4606</div><div class='add'>+</div><div class='add'>+Wed May  4 22:13:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm4_pipe.rb: Reduced iterations. Too slow benchmark</div><div class='add'>+	  is bad.</div><div class='add'>+	* benchmark/bm_vm4_thread_pass.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed May  4 22:08:22 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_date_base.rb: don't use no message skip().</div><div class='add'>+</div><div class='add'>+Wed May  4 21:11:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_select2.rb: reduce number of using file</div><div class='add'>+	  descriptors. because gdb need some fds.</div><div class='add'>+</div><div class='add'>+Wed May  4 19:00:59 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_wait_for_single_fd): Fix wrong return value.</div><div class='add'>+	* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb</div><div class='add'>+	  (TestWaitForSingleFD#test_wait_for_closed_pipe): test for it.</div><div class='add'>+</div><div class='add'>+Wed May  4 18:46:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/-test-/wait_for_single_fd: New. for testing</div><div class='add'>+	  rb_wait_for_single_fd() internal function.</div><div class='add'>+	  The patch was written by Eric Wong. [ruby-core:35991]</div><div class='add'>+</div><div class='add'>+	* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed May  4 12:46:25 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_wait_for_single_fd): Added POLLNVAL check.</div><div class='add'>+	  based on a patch from Eric Wong at [ruby-core:35991].</div><div class='add'>+</div><div class='add'>+Wed May  4 11:51:01 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): remove useless ifdef.</div><div class='add'>+</div><div class='add'>+Wed May  4 11:42:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (wait_connectable): fix error handling code.</div><div class='add'>+	  RB_WAITFD_OUT is turned on even though an error occur.</div><div class='add'>+</div><div class='add'>+Wed May  4 10:12:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_event): use rb_wait_for_single_fd().</div><div class='add'>+	The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]</div><div class='add'>+</div><div class='add'>+Wed May  4 10:10:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (wait_connectable): use rb_wait_for_single_fd().</div><div class='add'>+	  The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (try_wait_connectable, wait_connectable_ensure):</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+Wed May  4 10:07:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (io_wait): use rb_wait_for_single_fd().</div><div class='add'>+	  The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]</div><div class='add'>+</div><div class='add'>+Wed May  4 10:01:27 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_wait_for_single_fd): new. poll(2) based backend for</div><div class='add'>+	  rb_wait_for_single_fd().</div><div class='add'>+	  Now only Linux uses it.</div><div class='add'>+</div><div class='add'>+	The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]</div><div class='add'>+</div><div class='add'>+Wed May  4 09:56:57 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_wait_for_single_fd): new.</div><div class='add'>+	* thread.c (select_single): select(2) based backend for</div><div class='add'>+	  rb_wait_for_single_fd().</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_wait_for_single_fd() instead of</div><div class='add'>+	  rb_thread_fd_select().</div><div class='add'>+	* io.c (rb_io_wait_readable): ditto.</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (wait_readable): removed.</div><div class='add'>+	* thread.c (init_set_fd): new helper function.</div><div class='add'>+	* include/ruby/io.h (RB_WAITFD_IN, RB_WAITFD_PRI, RB_WAITFD_OUT):</div><div class='add'>+	  new constant for rb_single_wait_fd().</div><div class='add'>+</div><div class='add'>+	The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]</div><div class='add'>+</div><div class='add'>+Wed May  4 08:04:59 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: fix time dumping so that</div><div class='add'>+	  Syck can load UTC times that Psych dumps.</div><div class='add'>+</div><div class='add'>+Wed May  4 07:33:00 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_copy): fix wrong argument.This issue was pointed</div><div class='add'>+	  out by Eric Wong. [ruby-core:35982]</div><div class='add'>+</div><div class='add'>+Tue May  3 20:29:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode):</div><div class='add'>+	  Skip sticky bit test if the platform is FreeBSD. It doesn't allow to</div><div class='add'>+	  change sticky bit if a target is regular file.</div><div class='add'>+</div><div class='add'>+Tue May  3 18:23:57 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/test_date.rb (TestDate#test_coerce):</div><div class='add'>+	  test for [ruby-core:35127].</div><div class='add'>+</div><div class='add'>+Tue May  3 04:27:53 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): preserve errno if no error</div><div class='add'>+	  occurred.</div><div class='add'>+</div><div class='add'>+Tue May  3 03:57:04 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_w32_fdcopy): add prototype.  fixes</div><div class='add'>+	  #4640</div><div class='add'>+</div><div class='add'>+Mon May  2 01:02:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#chmod): accept symbolic mode argument.</div><div class='add'>+	  The patch was written by takkanm. [ruby-core:26029][Feature #2190]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#fu_mode): new helper function.</div><div class='add'>+	* lib/fileutils.rb (FileUtils#symbolic_modes_to_i): ditto.</div><div class='add'>+	* lib/fileutils.rb (FileUtils#mode_mask): ditto.</div><div class='add'>+	* lib/fileutils.rb (FileUtils#user_mask): ditto.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode):</div><div class='add'>+	  new test for the above symbolic mode.</div><div class='add'>+	* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_R): ditto.</div><div class='add'>+</div><div class='add'>+Mon May  2 00:36:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rsock_connect): add to care EINTR. based</div><div class='add'>+	  on a patch from Eric Wong at [ruby-core:35621][Bug #4555]</div><div class='add'>+</div><div class='add'>+Sun May  1 01:06:24 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): release GVL while waiting select().</div><div class='add'>+</div><div class='add'>+Sat Apr 30 23:10:15 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_fdcopy): New. This can copy even though</div><div class='add'>+	  fdset size exceed FD_SETSIZE.</div><div class='add'>+	* include/ruby/intern.h (rb_fd_copy): use rb_w32_fdcopy()</div><div class='add'>+</div><div class='add'>+Sat Apr 30 20:18:43 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): Change argument type to rb_fdset_t.</div><div class='add'>+	  Now do_select() is free from unexpected hangup if</div><div class='add'>+	  HAVE_RB_FD_INIT=1 [Bug #4636]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_fd_select, rb_thread_wait_fd_rw):</div><div class='add'>+	  adapt new argument type.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): make dummy implementation.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 20:16:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_copy): Change function argument. Now</div><div class='add'>+	  rb_fd_copy() has fully copy semantics.</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 20:11:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_thread_select): mark as deprecated.</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (wait_readable): use rb_thread_fd_select</div><div class='add'>+	  instead of rb_thread_select.</div><div class='add'>+	* ext/socket/init.c (wait_connectable0): ditto.</div><div class='add'>+	* ext/readline/readline.c (readline_event): ditto.</div><div class='add'>+	* io.c (rb_io_wait_readable, wait_readable, rb_io_wait_writable,</div><div class='add'>+	  wait_writable): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 20:06:36 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): remove useless ifdef. time calculation</div><div class='add'>+	  is not heavy weight.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 16:48:36 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_select3.rb: New.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 16:27:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body, rb_io_s_copy_stream): move rb_fd_init()</div><div class='add'>+	  from copy_stream_body to rb_io_s_copy_stream. fds of passing</div><div class='add'>+	  rb_fd_term() have to be guaranteed initialized.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 16:13:17 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_select.rb, benchmark/bm_io_select2.rb: New.</div><div class='add'>+	  based on a patch from Eric Wong at [Feature #4531]</div><div class='add'>+</div><div class='add'>+Sat Apr 30 03:25:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/wait/test_io_wait.rb: New. for testing ext/io/wait.</div><div class='add'>+	  the patch was written by Eric Wong. [Feature #4531]</div><div class='add'>+</div><div class='add'>+Sat Apr 30 00:34:56 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: remove redundant declaration of</div><div class='add'>+	  rb_w32_time_subtract().</div><div class='add'>+</div><div class='add'>+Sat Apr 30 00:16:40 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_init): fix hangup if GVL_SIMPLE_LOCK=1.</div><div class='add'>+	  We don't have to call mutex_unlock() before initialize it!</div><div class='add'>+</div><div class='add'>+Fri Apr 29 13:15:15 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_cond_timedwait): New. r31373 caused</div><div class='add'>+	  win32 build failure.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (__cond_timedwait, abs_timespec_to_timeout_ms):</div><div class='add'>+	  New helper functions.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_time_subtract): rename from subtract and</div><div class='add'>+	  remove static.</div><div class='add'>+</div><div class='add'>+Fri Apr 29 10:43:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm4_pipe.rb: Add two new benchmark for GVL</div><div class='add'>+	  performance. They was written by Koichi Sasada.</div><div class='add'>+	* benchmark/bm_vm4_thread_pass.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 29 10:25:31 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_clear_cache_by_class): Revert r29673. It made</div><div class='add'>+	  a segmentation fault regression. [Bug #4289][ruby-core:34554].</div><div class='add'>+</div><div class='add'>+Fri Apr 29 10:24:51 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): do not add textmode newline decorator if any</div><div class='add'>+	  newline decorator is set already.  fixes #4618, fixes #4619</div><div class='add'>+</div><div class='add'>+Fri Apr 29 10:17:42 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (lock_func): small cleanup.</div><div class='add'>+</div><div class='add'>+Fri Apr 29 10:07:13 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_lock, lock_func): Avoid busy loop and</div><div class='add'>+	  performance regression. bm_vm3_thread_mutex.rb performance</div><div class='add'>+	  change from 109.064sec to 16.331sec. [Feature #4607]</div><div class='add'>+</div><div class='add'>+	* thread.c (init_lock_timeout): New helper function.</div><div class='add'>+</div><div class='add'>+Thu Apr 28 16:15:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{win32.c,dir.h} (rb_w32_uopendir): new API to pass UTF-8 path.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (opendir_internal, rb_w32_opendir): extract and merge</div><div class='add'>+	  common part of rb_w32_opendir() and rb_w32_uopendir().</div><div class='add'>+</div><div class='add'>+	* dir.c (do_opendir, glob_helper): encoding.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize, do_opendir): convert path to UTF-8 and call</div><div class='add'>+	  rb_w32_uopendir() instead of rb_w32_opendir() on Windows.</div><div class='add'>+	  fixes #4491, reported by Joey Zhou.</div><div class='add'>+</div><div class='add'>+Thu Apr 28 15:32:53 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb (DL::LIBC_SO): its always msvc*.dll on</div><div class='add'>+	  mswin/mingw.</div><div class='add'>+</div><div class='add'>+Thu Apr 28 06:07:06 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV::open): suppress universal newline decorator.</div><div class='add'>+	  fixes #4603</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV.read): no mode is needed.</div><div class='add'>+</div><div class='add'>+Thu Apr 28 06:06:56 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc, rb_f_backquote): set default text</div><div class='add'>+	  mode.  fixes #4619</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): set universal newline decorator if needed.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 11:33:08 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji_iso2022_kddi.trans: ISO-2022-JP-KDDI doesn't have</div><div class='add'>+	  CP932 UDA. Another reason is emacs-mule: the implementation of</div><div class='add'>+	  stateless-iso-2022-jp doesn't support beyond 94x94 (0x7fxx);</div><div class='add'>+	  but CP932 UDA is in 7Fxx-92xx.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 07:42:44 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (STRIP): use proper toolchain.  based on a patch</div><div class='add'>+	  from Jon Forums at [ruby-core:35909].  fixes #4617</div><div class='add'>+</div><div class='add'>+Wed Apr 27 01:20:59 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_zone_to_diff): renamed.</div><div class='add'>+	* ext/date/date_parse.c: ditto.</div><div class='add'>+	* ext/date/date_strptime.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 01:16:59 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): accept Encoding objects.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 00:55:56 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_opts): add newline option.</div><div class='add'>+</div><div class='add'>+	* io.c (validate_enc_binmode, rb_io_extract_modeenc): set newline</div><div class='add'>+	  decorator according to open mode.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_options): new function, to prepare</div><div class='add'>+	  econv options with newline flags.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_MASK): add.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 00:51:01 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): fix function.</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (ftruncate, truncate, ftello, fseeko): non-64</div><div class='add'>+	  versions on mingw are useless because they use int32_t.  fixes #4564</div><div class='add'>+</div><div class='add'>+Wed Apr 27 00:50:33 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: modified validation methods.</div><div class='add'>+	* ext/date/lib/date.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr 27 00:00:37 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (dt_lite_set_tmx): should get df value.</div><div class='add'>+</div><div class='add'>+Tue Apr 26 22:34:04 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb (_iso8601): allowed day only civil</div><div class='add'>+	  date.  disallowed separatorless day only ordinal date.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 21:31:36 2011  Nobuhiro Iwamatsu  &lt;iwamatsu@nigauri.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: Should check SSLv2_*method.</div><div class='add'>+	  openssl compiled with "no-ssl2" the extconf don't fail</div><div class='add'>+	  when running `make' having this compilation errors.</div><div class='add'>+	  Patched by Laurent Arnoud. fixes #4562, #4556</div><div class='add'>+</div><div class='add'>+Mon Apr 25 20:53:32 2011  Tajima, Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): accept 0 only sig is SIGINT #4596</div><div class='add'>+</div><div class='add'>+Mon Apr 25 19:59:47 2011  Tajima, Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): accept 0 as pid, fixes #4596</div><div class='add'>+</div><div class='add'>+Mon Apr 25 16:43:45 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): remove unused variables.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_define_without_accessor): ditto.</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): ditto.</div><div class='add'>+</div><div class='add'>+	* sprintf.c: ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_asctime): remove useless GetTimeval().</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: cast to (void *) for %p.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 11:02:11 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb: fix rdoc around sexp.</div><div class='add'>+	  patched by Sho Hashimoto. fixes #4599</div><div class='add'>+</div><div class='add'>+Mon Apr 25 08:24:04 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand, random_s_rand): RDocs for them.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 07:18:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_s_rand, Init_Random): Random.rand should behave as</div><div class='add'>+	  Random::DEFAULT.rand rather than Kernel#rand.</div><div class='add'>+</div><div class='add'>+	* random.c (rand_range, random_rand): rand_range function extracted</div><div class='add'>+	  from random_rand function.</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): accept a Range argument as Random#rand</div><div class='add'>+	  [ruby-dev:43427] #4605</div><div class='add'>+</div><div class='add'>+Mon Apr 25 03:31:06 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: require 'date'.</div><div class='add'>+	* ext/date/lib/date/format.rb: removed require line.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 03:08:39 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb: require 'date'.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 03:04:16 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb (_iso8601): added a pattern.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 02:51:22 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb: require 'date_core.so'.</div><div class='add'>+	  date/format needs methods which are now in date_core.so.</div><div class='add'>+	  This breaks make rdoc which uses Date._parse from time.rb.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 02:47:46 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb (_iso8601): fixed a bug of regex.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 02:12:26 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb: an adjustment of regex.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 01:58:50 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb: omitted to call _parse.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 01:03:03 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_to_id): remove unused variable.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 22:19:05 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c: omitted some method calls.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 02:57:27 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (n2i): takes long.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 02:51:06 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c: reverted.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 02:25:23 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: pcc can't use __builtin_constant_p.</div><div class='add'>+</div><div class='add'>+	* vm_exec.c: change condition.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 01:58:01 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (leap_p): suppress warning: parentheses.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_s__parse_internal): remove unused</div><div class='add'>+	  variable "str".</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (parse_ddd_cb): use RSTRING_LENINT.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c (date_strftime_with_tmx): remove unused</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Sun Apr 24 00:34:23 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c: removed some unused macros.  use strchr()</div><div class='add'>+	  instead of index().</div><div class='add'>+</div><div class='add'>+Sat Apr 23 21:29:42 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: replacement of implementation of</div><div class='add'>+	  _parse.  [experimental]</div><div class='add'>+	* ext/date/date_parse.c: new.</div><div class='add'>+	* ext/date/lib/date/format.rb: removed ruby version of _parse.</div><div class='add'>+</div><div class='add'>+Fri Apr 22 12:04:15 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): fix rdoc.</div><div class='add'>+	  patched by burningTyger. https://github.com/ruby/ruby/pull/11</div><div class='add'>+</div><div class='add'>+Fri Apr 22 11:49:49 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLRPC::Create#conv2value):</div><div class='add'>+	  XML-RPC's int is 32bit int, and Fixnum also may be beyond 32bit.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLRPC::Create#conv2value):</div><div class='add'>+	  XML-RPC doesn't allow Infinity and NaN.</div><div class='add'>+	  http://www.xmlrpc.com/spec</div><div class='add'>+</div><div class='add'>+Fri Apr 22 04:16:14 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): strings from psych have proper taint</div><div class='add'>+	  markings.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_tainted.rb: test for string taint</div><div class='add'>+</div><div class='add'>+Thu Apr 21 01:30:02 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_srand): fix rdoc: srand(0)'s 0 is a seed.</div><div class='add'>+	  [ruby-core:35833] fixes #4590</div><div class='add'>+</div><div class='add'>+Thu Apr 21 01:01:28 2011  Masaya Tarui  &lt;tarui@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): maximum length of lpCommandLine is</div><div class='add'>+	  32,768 characters, including the Unicode terminating null character.</div><div class='add'>+</div><div class='add'>+Wed Apr 20 21:32:11 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strptime.c (date__strptime_internal): do not</div><div class='add'>+	  overwrite local variables.</div><div class='add'>+</div><div class='add'>+Wed Apr 20 14:41:28 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): check string's length when compare</div><div class='add'>+	  separator and string. [ruby-core:35815] fixes #4586</div><div class='add'>+</div><div class='add'>+Wed Apr 20 00:02:13 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): use position of open paren.</div><div class='add'>+</div><div class='add'>+Tue Apr 19 01:00:21 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_cross_thread_close_fd):</div><div class='add'>+	  skip cross thread pipe close if windows</div><div class='add'>+</div><div class='add'>+Mon Apr 18 12:15:46 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):</div><div class='add'>+	  avoid float error. [ruby-core:35804]</div><div class='add'>+</div><div class='add'>+Sun Apr 17 00:20:14 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_{core,strftime}.c: use struct tmx instead of vtm.</div><div class='add'>+	* ext/date/date_tmx.h: new.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 22:23:52 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c (date_strftime_wo_timespec): changed</div><div class='add'>+	  the way of validation of locale modifiers.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 21:55:12 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: replacement of implementation of</div><div class='add'>+	  _strptime.  [experimental]</div><div class='add'>+	* ext/date/date_strptime.c: new.</div><div class='add'>+	* ext/date/lib/date/format.rb: removed ruby version of _strptime.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 10:18:30 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): suppress warning: "OPT_BASIC_OPERATIONS" is not</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+Fri Apr 15 23:41:18 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): suppress warning:</div><div class='add'>+	  "ALLOW_DEFAULT_SOURCE_ENCODING" is not defined.</div><div class='add'>+</div><div class='add'>+Fri Apr 15 15:10:29 2011  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (#route_from_path): Fix a bug where</div><div class='add'>+	  URI('http://h/b/').route_to('http://h/b') wrongly returned './'</div><div class='add'>+	  (should be '../b'). [Bug #4476]</div><div class='add'>+</div><div class='add'>+Fri Apr 15 14:58:06 2011  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#touch): Fix corrupted output when</div><div class='add'>+	  mtime is specified in addition to nocreate (and verbose).</div><div class='add'>+	  ref [ruby-dev:43401]</div><div class='add'>+</div><div class='add'>+Thu Apr 14 23:43:43 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (ruby_float_step): wrong loop condition.</div><div class='add'>+	  fixes [ruby-core:35753], reported by Joey Zhou.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):</div><div class='add'>+	  test above change.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 22:48:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Options#setup_options): set possible</div><div class='add'>+	  values for completion. no conversion is needed.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner::Worker#initialize): use</div><div class='add'>+	  positional arguments instead of keyword arguments.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may</div><div class='add'>+	  not be available. use 80 as the last resort if IO#winsize and</div><div class='add'>+	  COLUMNS are unavailable.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner::Worker#died): rename using a</div><div class='add'>+	  verb.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner#_run_parallel): check if worker</div><div class='add'>+	  is signaled and use its exit status.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner::Worker#dead): no longer @in</div><div class='add'>+	  and @out are separated.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 21:23:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_p): search superclasses as same as actual</div><div class='add'>+	  loading.  fixes [ruby-core:35679]</div><div class='add'>+</div><div class='add'>+Thu Apr 14 21:21:06 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (frexp, modf): wrongly declared as pure in</div><div class='add'>+	  mingw math.h.</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (ftruncate, truncate): mingw64 misses</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): suppress warning.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 19:55:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#touch): fix corrupted output when</div><div class='add'>+	  FileUtils.touch(:nocreate =&gt; true, :verbose =&gt; true) case.</div><div class='add'>+	  The patch was written by Hiroyuki Iwatsuki. [ruby-dev:43401]</div><div class='add'>+</div><div class='add'>+Thu Apr 14 16:01:45 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): suppress warning: "HAVE___SYSCALL" is not</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 00:41:09 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_fd_close_i): IOError exception should be assigned</div><div class='add'>+	  to rb_thread_t::thrown_errinfo.</div><div class='add'>+</div><div class='add'>+Wed Apr 13 20:12:26 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fdatasync): remove unused variable.</div><div class='add'>+</div><div class='add'>+Tue Apr 12 20:54:12 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Apr 12 19:19:50 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb: avoid race condition. fixes #4572</div><div class='add'>+</div><div class='add'>+Tue Apr 12 18:07:13 2011  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: --disable-libedit to disable</div><div class='add'>+	  libedit. fixes #4550</div><div class='add'>+</div><div class='add'>+Tue Apr 12 10:37:39 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: VC doesn't have ftruncate() and others, but</div><div class='add'>+	  ruby needs HAVE_ macros to use our emulation functions.</div><div class='add'>+	  (fix the problem of 31262)</div><div class='add'>+</div><div class='add'>+Tue Apr 12 01:33:00 2011  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: properly evaluate existence of truncate, ftruncate</div><div class='add'>+	  and ftello for MinGW. [ruby-core:35678]</div><div class='add'>+	* win32/win32.c: rename truncate, ftruncate and ftello to avoid</div><div class='add'>+	  redefinitions.</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 11 21:51:52 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: revert r31230. Because it made a regression.</div><div class='add'>+	  [ruby-core:35631]</div><div class='add'>+</div><div class='add'>+Mon Apr 11 21:49:18 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: Added TestIO#test_cross_thread_close_stdio</div><div class='add'>+	  and TestIO#test_cross_thread_close_fd.</div><div class='add'>+	  The patch was written by Eric Wong. [ruby-core:35669]</div><div class='add'>+</div><div class='add'>+Mon Apr 11 21:15:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_group_member): kill 256K of stack usage.</div><div class='add'>+	  the patch was written by Eric Wong. [ruby-core:35699]</div><div class='add'>+</div><div class='add'>+Mon Apr 11 07:24:13 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c:  Fix typo, document version constants.</div><div class='add'>+</div><div class='add'>+Sun Apr 10 22:23:45 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Apr  9 23:31:47 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each, strio_readlines):</div><div class='add'>+	  Use `NUM2LONG` instead of `FIX2INT`. Fixes [ruby-dev:43395].</div><div class='add'>+</div><div class='add'>+Sat Apr  9 23:22:27 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each):</div><div class='add'>+	  Fix exception message and don't raise immediately if block is not</div><div class='add'>+	  given.</div><div class='add'>+	  Fixes [ruby-dev:43394].</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb (test_each_line_limit_0):</div><div class='add'>+	  Fix test for above.</div><div class='add'>+</div><div class='add'>+Sat Apr  9 21:54:15 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each, strio_readlines):</div><div class='add'>+	  limit must not be zero. Fixes [ruby-dev:43392].</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb: Add tests for above.</div><div class='add'>+</div><div class='add'>+Sat Apr  9 18:01:36 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/util.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Apr  8 16:01:56 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): check whether str is</div><div class='add'>+	  a string when str and lim are given.</div><div class='add'>+	  https://twitter.com/watson1978/status/56225052152168449</div><div class='add'>+</div><div class='add'>+Thu Apr  7 20:03:52 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Apr  6 21:08:31 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Apr  6 15:12:40 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize):</div><div class='add'>+	  pop pushed error after each try of reading. fixes #4550</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c (ossl_ec_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr  6 11:36:44 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize):</div><div class='add'>+	  pop pushed error after each try of reading. fixes #4550</div><div class='add'>+</div><div class='add'>+Tue Apr  5 20:33:43 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Apr  4 22:02:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/nonblock/nonblock.c (io_nonblock_set): Avoid F_SETFL if</div><div class='add'>+	  we're not changing the O_NONBLOCK bit. F_SETFL is an expensive</div><div class='add'>+	  operation since it needs to affect all processes with the same</div><div class='add'>+	  file object.</div><div class='add'>+	  The patch is written by Eric Wong. [ruby-core:35556]</div><div class='add'>+</div><div class='add'>+Mon Apr  4 21:41:26 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_syswrite): While local FS writes are usually</div><div class='add'>+	  buffered, the buffers can be full or the file opened with</div><div class='add'>+	  O_SYNC. IO#syswrite can also be used on blocking IOs</div><div class='add'>+	  (pipe/socket) just like IO#write.</div><div class='add'>+	  The patch is written by Eric Wong. [ruby-core:35554]</div><div class='add'>+</div><div class='add'>+Mon Apr  4 11:50:40 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_tempfile.rb: simply ignore platform dependent testcases</div><div class='add'>+	  instead of skipping.</div><div class='add'>+</div><div class='add'>+Sun Apr  3 22:52:22 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: improve rdoc.</div><div class='add'>+	  a patch by Jonas Pfenniger. [ruby-core:35592] fixes #4545</div><div class='add'>+</div><div class='add'>+Sun Apr  3 22:10:09 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Apr  3 21:33:58 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: disable fdatasync again on Mac OS X.</div><div class='add'>+	  [ruby-core:35493][Bug #4500]</div><div class='add'>+</div><div class='add'>+Sun Apr  3 21:16:20 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): IO#close releases GVL if possible.</div><div class='add'>+	  close() may block for certain file types (NFS, SO_LINGER</div><div class='add'>+	  sockets, inotify), so let other threads run. The patch was</div><div class='add'>+	  created by Eric Wong [ruby-core:35555][Bug #4527]</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (maygvl_fclose): new.</div><div class='add'>+	* io.c (nogvl_fclose): ditto.</div><div class='add'>+	* io.c (maygvl_close): ditto.</div><div class='add'>+	* io.c (nogvl_close): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr  1 22:25:50 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Apr 1 18:53:06 2011  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cookie.rb (WEBrick::Cookie.parse): 'white space is</div><div class='add'>+	  permitted between tokens' according to RFC2965. Though 'Netscape</div><div class='add'>+	  spec' does not define the syntax clearly, make it tolerant as a</div><div class='add'>+	  server. As a real-world example, rest-client gem sends</div><div class='add'>+	  'Cookie: foo=1;bar=2'</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cookie.rb (test_parse_non_whitespace): test it.</div><div class='add'>+</div><div class='add'>+Fri Apr  1 13:19:20 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (RUBY_VM_CHECK_INTS_TH): merge a patch by ko1</div><div class='add'>+	  in [ruby-dev:43373].</div><div class='add'>+</div><div class='add'>+Thu Mar 31 23:15:46 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-brace-to-do-end, ruby-do-end-to-brace):</div><div class='add'>+	  adjust space between block beginning and block arguments</div><div class='add'>+</div><div class='add'>+Thu Mar 31 20:42:05 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c:  parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 18:06:12 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): should ignore crefs with</div><div class='add'>+	  the NODE_FL_CREF_PUSHED_BY_EVAL flag.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 16:49:56 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): search root cref properly.</div><div class='add'>+	  [ruby-dev:43365]</div><div class='add'>+</div><div class='add'>+Thu Mar 31 14:50:25 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_s_constants): should ignore crefs with</div><div class='add'>+	  the NODE_FL_CREF_PUSHED_BY_EVAL flag.</div><div class='add'>+</div><div class='add'>+Wed Mar 30 22:55:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-toggle-block): toggle do/end and {}.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-move-to-block): move to opening of</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+Wed Mar 30 14:35:15 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (COPY_CREF): should copy</div><div class='add'>+	  the NODE_FL_CREF_PUSHED_BY_EVAL flag to hide constants from</div><div class='add'>+	  methods defined by class_eval.  [ruby-dev:43365]</div><div class='add'>+</div><div class='add'>+Wed Mar 30 00:24:53 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 29 21:51:31 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_String): Kernel#String should call to_str before to_s.</div><div class='add'>+</div><div class='add'>+Tue Mar 29 10:28:08 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_filehandler.rb</div><div class='add'>+	  (WEBrick::TestFileHandler#test_short_filename): the cgi doesn't exist</div><div class='add'>+	  on current directory.</div><div class='add'>+</div><div class='add'>+Tue Mar 29 05:19:57 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 29 00:03:51 2011 Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_filehandler.rb (test_short_filename):</div><div class='add'>+	  read real short filename by cmd because smb mounted files</div><div class='add'>+	  have different naming convention.</div><div class='add'>+</div><div class='add'>+Mon Mar 28 11:38:08 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_s_today): use int for year.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (datetime_s_now): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 28 11:07:41 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: set MFLAGS from MAKEFLAGS when using nmake.</div><div class='add'>+</div><div class='add'>+Mon Mar 28 11:07:00 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (love): all you need is love.</div><div class='add'>+</div><div class='add'>+Sun Mar 27 23:16:31 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar 27 16:55:34 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-map): remove unnecessary</div><div class='add'>+	  binding. fixes</div><div class='add'>+	  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468952</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: suppress warnings at byte compile.  fixes</div><div class='add'>+	  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502926</div><div class='add'>+</div><div class='add'>+Sun Mar 27 11:18:35 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: removed unused variables.</div><div class='add'>+</div><div class='add'>+Sat Mar 26 15:16:09 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Mar 26 05:27:34 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib/date/format.rb (DateTime#strftime): removed because</div><div class='add'>+	  date_core defines it.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 21:59:45 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: should not force cast with macros.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 21:56:10 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 19:39:40 2011  Ben Walton &lt;bwalton@artsci.utoronto.ca&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_syslog.rb:</div><div class='add'>+	  Skip syslog tests that rely on LOG_PERROR unless it's defined</div><div class='add'>+</div><div class='add'>+	  Instead of checking looking at the platform to determine if the tests</div><div class='add'>+	  relying on LOG_PERROR should be run, look for the definition of the</div><div class='add'>+	  constant as this will be robust against all platforms as long as the</div><div class='add'>+	  underlying syslog.c code sets it up correctly.</div><div class='add'>+</div><div class='add'>+	  This specifically addresses failures on Solaris 9.</div><div class='add'>+</div><div class='add'>+	  Use LOG_PID instead of LOG_PERROR in Syslog.open test</div><div class='add'>+</div><div class='add'>+	  LOG_PERROR isn't a POSIX option for syslog, so it fails on platforms</div><div class='add'>+	  that don't define it.  Solaris 9 and 10 are examples of this.</div><div class='add'>+</div><div class='add'>+	  Use LOG_PID instead.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 15:42:17 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (sdbm_open): use size_t.</div><div class='add'>+</div><div class='add'>+	* ext/syck/bytecode.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (delpair): use ptrdiff_t.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: use RSTRING_LENINT.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c: suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 12:14:58 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: import nkf 7f18e30.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 11:49:29 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_no_curdir): skip silently</div><div class='add'>+	  on Windows, because this tests a platform specific feature and it'll</div><div class='add'>+	  never be supported on ruby on Windows.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir_m17n.rb</div><div class='add'>+	  (TestDir_M17N#test_filename_extutf8_invalid,</div><div class='add'>+	  TestDir_M17N#test_filename_as_bytes_extutf8): ditto.</div><div class='add'>+</div><div class='add'>+	* test/open-uri/test_open-uri.rb</div><div class='add'>+	  (TestOpenURI#test_find_proxy_case_sensitive_env): ditto.</div><div class='add'>+</div><div class='add'>+	* test/dl/test_handle.rb (DL::TestHandle#test_NEXT,</div><div class='add'>+	  DL::TestHandle#test_DEFAULT): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 23:06:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): should not autoload in</div><div class='add'>+	  defined? mode.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_0): fix autoloading base.</div><div class='add'>+	  [ruby-core:35509]</div><div class='add'>+</div><div class='add'>+Thu Mar 24 22:48:43 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 14:45:57 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c: suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bio.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_spki.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 11:48:19 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c (ossl_rand_egd_bytes): use NUM2INT because</div><div class='add'>+	  the result is used with functions whose argument is int.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_set_purpose): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_set_trust): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509stctx_set_purpose): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509stctx_set_trust): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 11:36:55 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: id_aref's type is ID.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 10:04:35 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_set_winsize):</div><div class='add'>+	  suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+Thu Mar 24 09:56:19 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_verify): flags is VALUE,</div><div class='add'>+	  so it should use NUM2INT.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspbres_verify): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 21:09:29 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 08:07:33 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): fix inaccurate results.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 00:12:16 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: wait process real termination after reading</div><div class='add'>+	  exit code. fixes #4518</div><div class='add'>+</div><div class='add'>+Tue Mar 22 21:20:10 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/test_case.rb: save current dir to @current_dir</div><div class='add'>+	  before Dir.chdir.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 20:10:04 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 20:10:01 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ruby_missing.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 13:33:22 2011  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: removed circular require of</div><div class='add'>+	  openssl.rb.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/*: removed following comment for transition</div><div class='add'>+	  measures of avoiding circular require. No one claimed about this as</div><div class='add'>+	  far as I know.</div><div class='add'>+	  ##</div><div class='add'>+	  # Should we care what if somebody require this file directly?</div><div class='add'>+	  # require "openssl"</div><div class='add'>+</div><div class='add'>+Tue Mar 22 10:57:36 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: set Gem::TestCase's @@project_dir.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/test_case.rb: set Gem::TestCase's @@project_dir only</div><div class='add'>+	  when it is not defined.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 09:38:19 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): use pow instead of while-loop. fixes #4510</div><div class='add'>+	  patched by Alex Young [ruby-core:35526]</div><div class='add'>+</div><div class='add'>+Tue Mar 22 06:47:46 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c (date_strftime_wo_timespec):</div><div class='add'>+	  suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 06:42:42 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 06:41:37 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: remove unused variable.</div><div class='add'>+</div><div class='add'>+Tue Mar 22 06:19:42 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_16le.c: suppress warning: shorten-64-to-32.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (Init_ripper): suppress warning: unused value.</div><div class='add'>+</div><div class='add'>+Mon Mar 21 11:21:32 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Refactoring. Unified if and elsif.</div><div class='add'>+</div><div class='add'>+Sun Mar 20 23:09:34 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c: checks duplicated modifiers.</div><div class='add'>+</div><div class='add'>+Sun Mar 20 22:32:30 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c: removed unused code and arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar 20 21:34:49 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: replacement of implementation of</div><div class='add'>+	  strftime. It has some limitations that is same as Time's</div><div class='add'>+	  one.  [experimental]</div><div class='add'>+	* ext/date/date_strftime.c: new.</div><div class='add'>+	* ext/date/lib/date/format.rb: removed ruby version of strftime.</div><div class='add'>+</div><div class='add'>+Sun Mar 20 12:43:12 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar 20 01:39:48 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): check env process block size with OS ver.</div><div class='add'>+	* win32/win32.c: export rb_w32_osver for above patch.</div><div class='add'>+	* include/ruby/win32.h: declare rb_w32_osver for Win32 Libs.</div><div class='add'>+</div><div class='add'>+Sat Mar 19 18:35:05 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): calculate total env block size for win32.</div><div class='add'>+	* test/ruby/test_env.rb: add test for above patch.</div><div class='add'>+</div><div class='add'>+Sat Mar 19 17:14:46 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): checking with max process environment</div><div class='add'>+	  block size for Win32. 32767 for 2000/XP, 2003. if failed to</div><div class='add'>+	  read the block, then checking with 5120 for earlier Windows.</div><div class='add'>+</div><div class='add'>+Sat Mar 19 12:30:25 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509revoked.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 18 20:44:36 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509req.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 18 08:48:06 2011  Oleg Shaldybin  &lt;oleg.shaldybin@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#copy_file): updated FileUtils.cp</div><div class='add'>+	  to still copy file permissions when :preserve is false (as cp does</div><div class='add'>+	  this even when -p isn't set).</div><div class='add'>+</div><div class='add'>+Fri Mar 18 00:59:38 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb (create_docfile): removed.  should not</div><div class='add'>+	  modify source directory unnecessarily, platform dependent</div><div class='add'>+	  documentation should be dealt with by rdoc.  [ruby-core:35495]</div><div class='add'>+</div><div class='add'>+Fri Mar 18 00:54:20 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_funcall_passing_block): add prototype.</div><div class='add'>+	  a patch by James M. Lawrence at [ruby-core:35501]</div><div class='add'>+</div><div class='add'>+Wed Mar 17 06:23:31 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Mar 16 20:36:56 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c (init_inetsock_internal): raise an error on</div><div class='add'>+	  listen(2) failure.</div><div class='add'>+	  reported by Xavier Shay.  [ruby-core:35505]</div><div class='add'>+</div><div class='add'>+Wed Mar 16 15:06:21 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (module OpenSSL): #flush should</div><div class='add'>+	  not change sync mode on exception.</div><div class='add'>+	* test/openssl/test_buffering.rb: added</div><div class='add'>+</div><div class='add'>+Wed Mar 16 13:45:28 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: de-nest Buffering module</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: add RDoc</div><div class='add'>+</div><div class='add'>+Wed Mar 16 08:40:39 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 15 18:34:27 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509crl.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar 15 09:49:03 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/misc/test_ruby_mode.rb (test_singleton_class): Skip for Pending.</div><div class='add'>+</div><div class='add'>+Mon Mar 14 21:20:44 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_require_too_long_filename):</div><div class='add'>+	  increase path length, because MAXPATHLEN is defined as 4096 on linux.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_require_path_home_1): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_require_path_home_2): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 14 19:54:37 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509cert.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar 13 18:11:28 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar 13 16:07:58 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: Fix don't raise "nested transaction" when thread_safe</div><div class='add'>+	  is true. Patch by Masaki Matsushita (Glass_saga). [ruby-dev:43337]</div><div class='add'>+</div><div class='add'>+	* test/test_pstore.rb: Test for above.</div><div class='add'>+	  Patch by Masaki Matsushita (Glass_saga) [ruby-dev:43337]</div><div class='add'>+</div><div class='add'>+Sat Mar 12 04:12:41 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Mar 12 02:27:07 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c ({d,dt}_lite_marshal_load): checks the given</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Sat Mar 12 01:26:24 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: changed some directives.</div><div class='add'>+</div><div class='add'>+Sat Mar 12 01:16:02 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c, ext/date/lib/*: moved rdoc descriptions.</div><div class='add'>+</div><div class='add'>+Sat Mar 12 00:06:24 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/lib: moved from lib.</div><div class='add'>+</div><div class='add'>+Fri Mar 11 23:32:38 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/delta*: removed undocumented delta.</div><div class='add'>+</div><div class='add'>+Fri Mar 11 18:42:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_executable0): should exclude directories.</div><div class='add'>+</div><div class='add'>+Fri Mar 11 01:40:35 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getmaxgroups, proc_setmaxgroups): Process#maxgroups</div><div class='add'>+	  and Process#maxgroups= now raise NotImplementedError if the</div><div class='add'>+	  platform don't support supplementary groups concept.</div><div class='add'>+</div><div class='add'>+Fri Mar 11 01:25:03 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (get_sc_ngroups_max): return -1 if platform don't</div><div class='add'>+	  support NGROUPS_MAX.</div><div class='add'>+</div><div class='add'>+Thu Mar 10 22:28:15 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Mar 10 21:59:37 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_encode_length): add exception as UTF8-MAC for</div><div class='add'>+	  magic comment's emacs newline specifier</div><div class='add'>+	  patched by James M. Lawrence [ruby-core:35476] fixes #4489</div><div class='add'>+</div><div class='add'>+Thu Mar 10 16:00:22 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_encode_length): fix typo: the length of</div><div class='add'>+	  "-dos" and "-mac" is not 5 but 4.</div><div class='add'>+	  patched by James M. Lawrence [ruby-core:35476] fixes #4489</div><div class='add'>+</div><div class='add'>+Thu Mar 10 10:52:01 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb: setting too long string to ENV causes</div><div class='add'>+	  Errno::EINVAL on Windows.  long path name errors may causes over</div><div class='add'>+	  about 1024 bytes, then limit it about 4000 bytes.</div><div class='add'>+</div><div class='add'>+Thu Mar 10 10:09:35 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner::Worker#read): fix for the case</div><div class='add'>+	  when IO#read or IO#gets returns nil.</div><div class='add'>+</div><div class='add'>+Thu Mar 10 07:12:03 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.6.2 (release candidate @ 2026fbb5)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+	* test/runner.rb: Added test to load path to fix test requires.</div><div class='add'>+</div><div class='add'>+Thu Mar 10 03:00:43 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 23:51:26 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (test_io_new_enc): "sjis" is now an alias</div><div class='add'>+	  of Windows-31J.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 23:06:13 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): fix indent after aref.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 12:50:24 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Rescue exceptions when</div><div class='add'>+	  people implement the method method. Thanks Lin Jen-Shin.</div><div class='add'>+	  [ruby-core:35255]</div><div class='add'>+</div><div class='add'>+	* test/psych/visitors/test_yaml_tree.rb: test for implementation of</div><div class='add'>+	  method method.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 11:53:31 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c: Change SJIS as an alias of Windows-31J.</div><div class='add'>+	  [ruby-dev:43027] fixes #4280</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c: Add PCK as an alias of Windows-31J.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 00:45:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: nmake substitutes all occurrences in macro.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: workaround for nmake.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 23:49:45 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): cleanup.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 23:40:30 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/misc/test_ruby_mode.rb: test for ruby-mode.el.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 23:27:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (get_sc_ngroups_max): try to use NGROUPS_MAX at first if</div><div class='add'>+	  _SC_NGROUP_MAX is not defined.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 23:10:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): fix for array in block.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 21:44:49 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 16:45:31 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): MSDN says that Windows XP or earlier limits</div><div class='add'>+	  the total size of environment block to 5,120 chars.  and on such</div><div class='add'>+	  OS, putenv() causes SEGV.  So, ruby should limit the size of an</div><div class='add'>+	  environment variable to 5,120 bytes for workaround.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 15:57:20 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_spec_fetcher.rb</div><div class='add'>+	  (TestGemSpecFetcher#test_cache_dir_escapes_windows_paths): cache_dir</div><div class='add'>+	  may have driveletter and `:' for base of cache_dir itself, so need</div><div class='add'>+	  to skip it for checking.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 12:30:06 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-deep-indent-paren-p, ruby-calculate-indent):</div><div class='add'>+	  do not apply deep-indent inside parens at the beginning of</div><div class='add'>+	  expressions.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 09:32:48 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (configure-ext, build-ext), ext/extmk.rb (extmake):</div><div class='add'>+	  support parallel-make under ext.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 09:25:23 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): use getgrnam() if getgrnam_r() is</div><div class='add'>+	  not available.</div><div class='add'>+</div><div class='add'>+	* process.c: RARRAY_LEN() returns long int.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 09:07:03 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): enclose in quotes for multiple</div><div class='add'>+	  type names.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 01:43:11 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (get_sc_ngroups_max): define to wrap sysconf(3).</div><div class='add'>+	  this also supports Windows which doesn't have sysconf(3).</div><div class='add'>+</div><div class='add'>+	* process.c (maxgroups): use get_sc_ngroups_max.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setmaxgroups): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 01:16:49 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace): an initializer must be a constant.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 01:11:44 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (maxgroups): cast because sysconf(3)'s return value is long.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setmaxgroups): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): cast because RARRAY_LEN() is long.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 00:02:47 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 22:59:39 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: Delete variable @transaction and fix #4474. Patch by</div><div class='add'>+	  Masaki Matsushita (Glass_saga).</div><div class='add'>+</div><div class='add'>+	* test/test_pstore.rb(test_thread_safe): Add test for #4474.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 21:31:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): replace getgrnam() with getgrnam_r()</div><div class='add'>+	  because getgrnam() isn't thread safe.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 20:49:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getmaxgroups, proc_setmaxgroups): reflect</div><div class='add'>+	  platform maxgroups limitation by default instead hardcoded 65536.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 17:13:00 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): allow GC parameter configuration by</div><div class='add'>+	  environment variables.  based on a patch from funny-falcon at</div><div class='add'>+	  https://gist.github.com/856296, but honors safe level.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 09:05:18 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: NUM2RLIM is defined but no getrlimit and setrlimit on</div><div class='add'>+	  mingw.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 08:38:14 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (DateTimeData): should not use bare 'long long'</div><div class='add'>+	  and 'long double', which are not defined by C89.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (dt_lite_plus): get rid of overflow at casting</div><div class='add'>+	  down double to integer.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 00:21:11 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getgroups): get rid of maxgroups dependency.</div><div class='add'>+	  ngroups can be calculated dynamically.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 23:45:40 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: rlim_t use standard RUBY_REPLACE_TYPE mechanism.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 23:26:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setmaxgroups): added negative value check.</div><div class='add'>+	  This was suggested by Daniel Berger. Thanks Daniel!</div><div class='add'>+	  [ruby-core:35426][Bug#4467]</div><div class='add'>+</div><div class='add'>+Sun Mar  6 23:18:23 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (maxgroups, proc_setmaxgroups): increase max groups</div><div class='add'>+	  limitation up to 65536.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 22:20:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 21:49:04 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* sample/list.rb (MyElem#initialize): initialize @head</div><div class='add'>+	  explicitly. Otherwise -W2 option makes following warning.</div><div class='add'>+	  "warning: instance variable @head not initialized".</div><div class='add'>+	  This issue was founded by Andrew Grimm. Thanks Andrew!</div><div class='add'>+	  [ruby-core:35435][Bug#4471]</div><div class='add'>+</div><div class='add'>+Sun Mar  6 05:21:41 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c: fix camelCase to snake_case in documentation code examples.</div><div class='add'>+	  patched by Andrew Grimm. fixes Bug #4469</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/biorhythm.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_method.c: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Sun Mar  6 03:22:27 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_cntl): use rb_thread_io_blocking_region() instead</div><div class='add'>+	  rb_thread_blocking_region().</div><div class='add'>+</div><div class='add'>+Sat Mar  5 22:54:36 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: fix a typo of prototype declaration.</div><div class='add'>+	  rb_mutex_try_lock -&gt; rb_mutex_trylock [ruby-dev:43213]</div><div class='add'>+</div><div class='add'>+Sat Mar  5 19:44:03 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_fcntl_lock): small clean up.</div><div class='add'>+</div><div class='add'>+Sat Mar  5 01:33:46 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_cntl, nogvl_io_cntl): IO.fcntl() and IO.ioctl()</div><div class='add'>+	  release GVL during calling kernel interface.</div><div class='add'>+	  Suggested by Eric Wong. [ruby-core:35417][Bug #4463]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_fcntl_lock): add new test for</div><div class='add'>+	  IO.fcntl().</div><div class='add'>+</div><div class='add'>+Fri Mar  4 23:09:12 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb</div><div class='add'>+	  (test_should_run_all_without_any_leaks): consider that the order of</div><div class='add'>+	  testcase could change. [ruby-dev:43300] [Bug #4466]</div><div class='add'>+</div><div class='add'>+Fri Mar  4 22:01:14 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_cntl): change 'cmd' type to int. ioctl and fcntl need to</div><div class='add'>+	  be passed int.</div><div class='add'>+	* io.c (rb_io_ctl): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 21:10:40 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: save warnflags. the patch is created by Eric Wong.</div><div class='add'>+	  [Bug #4465]</div><div class='add'>+</div><div class='add'>+Wed Mar  2 21:15:00 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 22:10:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_redirect_fd, check_exec_redirect): raise</div><div class='add'>+	  ArgumentError if fd &gt;= 3 on Windows because the feature is not</div><div class='add'>+	  supported.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_execopts_redirect): remove meaningless</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 21:21:42 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_execopts_redirect): redirecting fd</div><div class='add'>+	  &gt;= 3 is not supported on Windows, so should not specify such options</div><div class='add'>+	  when calling spawn or others.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 18:59:04 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): raise error when the string is frozen.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 14:25:19 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (STRFTIME): return 0 and ERANGE when precision is too</div><div class='add'>+	  large. [ruby-dev:43284] fixes #4456</div><div class='add'>+</div><div class='add'>+Thu Mar  3 00:46:51 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c (uleb128): cast the value to unsigned long.</div><div class='add'>+</div><div class='add'>+	* addr2line.c (fill_lines): print error when lseek fails.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 00:36:29 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb (REXML::Encoding#encoding=): store @encoding</div><div class='add'>+	  a String which means the name of the encoding.</div><div class='add'>+	  this partially revert r29646.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb: follow above.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/output.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/source.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/xmldecl.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 23:19:56 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_byte_substr): return nil for negative length.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 21:15:00 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 14:24:04 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Fix name from `inclement_io` to</div><div class='add'>+	  `increment_io`.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 14:06:01 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): move treatments which is only needed</div><div class='add'>+	  when the result is not nil.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 14:02:29 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb(TestParallel#spawn_runner):</div><div class='add'>+	  Fix outputing empty line in running test.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/test_third.rb: Remove `sleep`</div><div class='add'>+</div><div class='add'>+Tue Mar  1 22:29:10 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 22:02:35 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Fix number.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 21:48:22 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: For Windows.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb(TestParallelWorker#test_quit_in_test):</div><div class='add'>+	  Fix for above specification change.</div><div class='add'>+	* test/testunit/test_parallel.rb(TestParallel#spawn_runner):</div><div class='add'>+	  Fix outputing empty line in running test.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 20:51:57 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_at):</div><div class='add'>+	  remove tests for [bug#4396]. because we decided to reject this</div><div class='add'>+	  ticket.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 19:46:19 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/{test_date.rb,test_date_attr.rb}: [ruby-dev:43280]</div><div class='add'>+</div><div class='add'>+Tue Mar  1 18:40:38 2011  Ryan Davis  &lt;ryan@YPCMC09457&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.6.0 (released version @ 58d8a0b9)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+</div><div class='add'>+Tue Mar  1 16:22:22 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: revert r30987 because it causes some failures in</div><div class='add'>+	  test-all, especially webrick.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 15:59:53 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_byteslice): the resulted encoding should keep</div><div class='add'>+	  original encoding. this also fixes the encoding when the result</div><div class='add'>+	  shares internal string. [ruby-core:35376]</div><div class='add'>+</div><div class='add'>+Tue Mar  1 13:25:00 2011  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpMemAlloc): CVE-2011-0188.</div><div class='add'>+	  Fixes a bug reported by Drew Yao &lt;ayao at apple.com&gt;</div><div class='add'>+</div><div class='add'>+Tue Mar  1 10:34:39 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_byteslice): Add String#byteslice. [ruby-core:35376]</div><div class='add'>+</div><div class='add'>+Tue Mar  1 00:12:49 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: define WIN32 if neither _WIN64 nor WIN32</div><div class='add'>+	  defined. it forces to use push/pop for pack(4) pragma.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 23:52:13 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_rake_integration.rb (test_with_rake_runner):</div><div class='add'>+	  use assert_in_out_err for suppress messages.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 22:48:56 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): use shell if a commandline contain</div><div class='add'>+	  double-quote character.</div><div class='add'>+	* win32/win32.c (is_internal_cmd): similar, use shell if a commandline</div><div class='add'>+	  contain caret character.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_at): fix</div><div class='add'>+	  wrong test case. if system() invoke a command by using shell,</div><div class='add'>+	  system() never return nil. Also, "" quotation must not appear</div><div class='add'>+	  twice in a command line.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 17:36:57 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 16:48:42 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs12.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 16:28:15 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): when the hash for multibyte repl is empty,</div><div class='add'>+	  tr is inverse mode, and a character doesn't much the table, the</div><div class='add'>+	  character should be replaced by last replacement. Bug #4449</div><div class='add'>+</div><div class='add'>+Mon Feb 28 16:38:56 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 13:02:15 2011  Danial Pearce &lt;github@tigris.id.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Fix example file paths in docs for tempfile.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/5</div><div class='add'>+</div><div class='add'>+Mon Feb 28 12:56:18 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_init): typo fix.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/8</div><div class='add'>+</div><div class='add'>+Mon Feb 28 12:28:13 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (datetime_s_now): localtime() and localtime_r()</div><div class='add'>+	  required time_t pointer as 1st parameter, and tv_sec member of struct</div><div class='add'>+	  timeval is long.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 11:57:40 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb: Temporally disable test on Windows.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 07:28:35 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb(Test::Unit::Runner#after_worker_quit):</div><div class='add'>+	  method name more be natural English.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb(Test::Unit::Runner::Worker.launch):</div><div class='add'>+	  IO.sync doesn't need. Should use "b" for mode.</div><div class='add'>+</div><div class='add'>+Sun Feb 27 21:59:37 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_redirect_win):</div><div class='add'>+	  add test for system().</div><div class='add'>+</div><div class='add'>+Sun Feb 27 18:00:09 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Refactoring; Worker never use Hash for internal</div><div class='add'>+	  storage.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Never use Kernel#spawn. Use IO.popen instead.</div><div class='add'>+</div><div class='add'>+Sun Feb 27 13:16:48 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_spki.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Feb 26 17:07:53 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: [Feature #4257]</div><div class='add'>+</div><div class='add'>+	* ext/date/extconf.rb: new</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: new</div><div class='add'>+</div><div class='add'>+Sat Feb 26 16:10:23 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: --jobs-status won't puts over 2 lines.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb: Fix test for above.</div><div class='add'>+</div><div class='add'>+	* lib/test/*: refactoring.</div><div class='add'>+</div><div class='add'>+Sat Feb 26 07:10:05 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb: fix parsing timezone's whose</div><div class='add'>+	  whose format is (+/-)hhmm.  Thanks Goncalo Silva!</div><div class='add'>+</div><div class='add'>+	* test/psych/test_scalar_scanner.rb: test for bug.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 23:02:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 22:53:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (love): for the birthday.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 22:51:54 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): run vm exit hooks after all objects are</div><div class='add'>+	  destructed.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 14:40:33 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog (vim): Modeline for vim</div><div class='add'>+</div><div class='add'>+Thu Feb 24 13:39:25 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: Use $RUNRUBY for worker process.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Fix bug.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: @options[:ruby](@opts[:ruby]) is now Array.</div><div class='add'>+</div><div class='add'>+	* test/testunit/parallel.rb: Fix for above.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 10:05:55 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/tests_for_parallel/misc.rb: Fix bug in r30947.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb, lib/test/unit/assertions.rb: For this test.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 23:07:38 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb, test/testunit/parallel/*:</div><div class='add'>+	  Test for r30939.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: For test.</div><div class='add'>+</div><div class='add'>+	* lib/test/parallel.rb: For test.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: For test.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 22:05:13 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 23:15:17 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Fix --ruby option doesn't effect.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Fix typo.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 21:39:28 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 14:34:26 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Fix merging miss.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 12:27:26 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Add new options; --jobs,-j,--ruby,--jobs-status,</div><div class='add'>+	  --no-retry.</div><div class='add'>+	  [Feature #4415] [ruby-dev:43226],[ruby-dev:43222],[ruby-core:35294]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/parallel.rb: Used at test/unit --jobs(-j) option.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_serialization.rb: test/unit parallel running ready.</div><div class='add'>+</div><div class='add'>+	* test/rake/test_file_task.rb: test/unit parallel running ready.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 06:09:10 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Apply documentation patch from mathew murphy.</div><div class='add'>+	  [Bug #4149]</div><div class='add'>+</div><div class='add'>+Tue Feb 22 03:09:10 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: increase Psych to 1.1.0 for help with</div><div class='add'>+	  debugging.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 03:04:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/streaming.rb: refactor streaming methods to a</div><div class='add'>+	  module.</div><div class='add'>+	* ext/psych/lib/psych/stream.rb: extracted streaming specific methods</div><div class='add'>+	  to a module.</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: JSON stream inherits from</div><div class='add'>+	  JSONTree and includes streaming methods.</div><div class='add'>+	* ext/psych/lib/psych/visitors/json_tree.rb: JSON does not support</div><div class='add'>+	  object references, so remove object reference testing when building</div><div class='add'>+	  JSON trees.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 02:41:51 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb (accept): use Hash#key?</div><div class='add'>+	  when looking up object references to err on the side of cache</div><div class='add'>+	  misses.</div><div class='add'>+</div><div class='add'>+Mon Feb 21 10:58:39 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/yaml_events.rb: refactoring JSON event</div><div class='add'>+	  handling methods to a module for reuse.</div><div class='add'>+	* ext/psych/lib/psych/json/tree_builder.rb: AST builder uses JSON</div><div class='add'>+	  event methods.</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: stream emitter uses JSON event</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+Mon Feb 21 10:54:29 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: do not emit custom tags in maps</div><div class='add'>+	  or sequences when emitting JSON.</div><div class='add'>+	* ext/psych/lib/psych/json/tree_builder.rb: do not emit custom tags in</div><div class='add'>+	  sequences when emitting JSON.</div><div class='add'>+	* test/psych/json/test_stream.rb: tests for custom stream emits.</div><div class='add'>+	* test/psych/test_json_tree.rb: tests for JSON emits.</div><div class='add'>+</div><div class='add'>+Mon Feb 21 10:05:10 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/ruby_events.rb: DRY up ruby event handling</div><div class='add'>+	  for JSON.</div><div class='add'>+	* ext/psych/lib/psych/visitors/json_tree.rb: use ruby events module</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon Feb 21 10:01:01 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: fix JSON stream emits to use</div><div class='add'>+	  double quotes during stream.</div><div class='add'>+	* test/psych/json/test_stream.rb: tests to reflect changes.</div><div class='add'>+</div><div class='add'>+Mon Feb 21 00:38:56 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_at):</div><div class='add'>+	  add testcase for bug4396.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 19:59:32 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 16:26:45 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (exec_recursive): prevent temporary objects from GC.</div><div class='add'>+</div><div class='add'>+	* prevent temporary objects from GC, and should not use</div><div class='add'>+	  RSTRING_PTR() for function calls since it evaluates the argument</div><div class='add'>+	  a couple of times.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 16:22:53 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_flock): use rb_thread_io_blocking_region for the</div><div class='add'>+	  time being.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 05:33:17 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 2.0.2 r6207.</div><div class='add'>+	* test/minitest/*: ditto</div><div class='add'>+</div><div class='add'>+Sun Feb 20 02:14:09 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_trap): avoid pthread_sigmask(xx, &amp;mask, &amp;mask) usage</div><div class='add'>+	  because FreeBSD don't permit it. If it's used, it behave as</div><div class='add'>+	  pthread_sigmask(xx, NULL, &amp;mask).</div><div class='add'>+</div><div class='add'>+	* signal.c (init_sigchld): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 00:46:51 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Feb 19 22:37:42 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_check_if_namespace): guard temporary object</div><div class='add'>+	  from GC.</div><div class='add'>+</div><div class='add'>+Sat Feb 19 06:36:27 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: partial revert of r30849. [ruby-core:32864]</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_rake_integration.rb: adding an integration test</div><div class='add'>+	  with the rake loader to prevent regressions.</div><div class='add'>+</div><div class='add'>+Fri Feb 18 19:31:31 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::remove_entry_secure): there is a</div><div class='add'>+	  race condition in the case where the given path is a directory,</div><div class='add'>+	  and some other user can move that directory, and create a</div><div class='add'>+	  symlink while this method is executing.</div><div class='add'>+	  Reported by: Nicholas Jefferson &lt;nicholas at pythonic.com.au&gt;</div><div class='add'>+</div><div class='add'>+Fri Feb 18 00:28:39 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (get_exception_sym2type): guard temporary object from GC.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 23:54:29 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): initialize iseq_compile_data::err_info</div><div class='add'>+	  with nil. this fix exception in rb_iseq_load().</div><div class='add'>+</div><div class='add'>+Thu Feb 17 22:32:35 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb (test_marshal_dump_extra_iv):</div><div class='add'>+	  fix a typo of local variable. [Bug #3720] [ruby-dev:42083]</div><div class='add'>+</div><div class='add'>+Thu Feb 17 21:32:53 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 20:37:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval_jump.c (rb_exec_end_proc): changed at_exit and END proc</div><div class='add'>+	  evaluation order. [Bug #4400] [ruby-core:35237]</div><div class='add'>+	* eval_jump.c (rb_mark_end_proc): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (TestBeginEndBlock#test_nested_at_exit):</div><div class='add'>+	  added a test for nested at_exit.</div><div class='add'>+	* test/ruby/test_beginendblock.rb (TestBeginEndBlock#test_beginendblock):</div><div class='add'>+	  changed the test to adopt new spec.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 20:17:06 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 21:37:45 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 20:34:53 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): fix array size.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 19:43:23 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix and resubmit r30621. [ruby-dev:43203]</div><div class='add'>+</div><div class='add'>+Tue Feb 15 15:41:30 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (array_join): copy the encoding of the first element as</div><div class='add'>+	  an initial encoding.</div><div class='add'>+</div><div class='add'>+	* array.c (array_join_0): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (array_join_1): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (inspect_ary): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (array_join_1): add an argument to check the appending is</div><div class='add'>+	  first one or not.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 15:40:53 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (inspect_i): copy the encoding of the first key as</div><div class='add'>+	  an initial encoding.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 15:00:16 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (inspect_ary): don't taint the inspected result of a</div><div class='add'>+	  recursive array.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 15:43:29 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): change the rule for empty strings:</div><div class='add'>+	  remove the special treatment of the US-ASCII encoded empty string.</div><div class='add'>+	  Now Encoding.compatible? usually respect the encoding of the</div><div class='add'>+	  receiver.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 15:39:37 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): remove special treatment of</div><div class='add'>+	  ASCII-8BIT receivers.</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): set initial encoding of the buffer as the</div><div class='add'>+	  same of the receiver. [ruby-core:35141]</div><div class='add'>+</div><div class='add'>+Tue Feb 15 09:49:33 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_at): use findstr</div><div class='add'>+	  command instead of find command, because the latter is confusing</div><div class='add'>+	  another famous Unix command.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 23:01:19 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_io_blocking_region): reset th-&gt;waiting_fd</div><div class='add'>+	  after blocking region, because remaining waiting_fd might</div><div class='add'>+	  cause unnecessary IOError.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 21:06:50 2011  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: revert r30621.  That revision introduced mkmf test</div><div class='add'>+	  failures and it turned out to be OK to revert. [ruby-dev:43203]</div><div class='add'>+</div><div class='add'>+Mon Feb 14 21:04:01 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 18:41:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (USE_RUBYGEMS): fixed r30835. It didn't work on</div><div class='add'>+	  mswin32 port. If you changed win32/configure.bat, you should change</div><div class='add'>+	  setup.mak too.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 17:28:34 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#test_system_at):</div><div class='add'>+	  added test. [ruby-core:35218] (#4393)</div><div class='add'>+</div><div class='add'>+Mon Feb 14 13:15:35 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (is_internal_cmd): if the first char of prog is '@',</div><div class='add'>+	  execute it via shell.  [ruby-core:35218] (#4393)</div><div class='add'>+</div><div class='add'>+Mon Feb 14 10:33:45 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: revert r30863, because it causes too many noise.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 07:34:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 19:41:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::RequireFiles#non_options): skip</div><div class='add'>+	  test suites failed to load instead of mere messages.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 09:56:44 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_config.rb (OpenSSL#test_freeze): fix error</div><div class='add'>+	  message assertion.</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb (TestIONonblock#flush_test):</div><div class='add'>+	  return true to finish the test.</div><div class='add'>+</div><div class='add'>+	* test/syck/test_string.rb (Syck::TestString#test_non_binary_string):</div><div class='add'>+	  use assert_not instead of refute, unless required minitest</div><div class='add'>+	  explicitly.</div><div class='add'>+</div><div class='add'>+	* test/test_prime.rb (TestPrime::sieve.Integer): ditto.</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/webrick_testing.rb (WEBrick_Testing#start_server):</div><div class='add'>+	  catch IOError when server socket was closed.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 07:39:51 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): typo fixed. a patch from Gaku Ueda in</div><div class='add'>+	  [ruby-core:35216].</div><div class='add'>+</div><div class='add'>+Sun Feb 13 00:48:47 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (Date#===): [ruby-core:35127]</div><div class='add'>+</div><div class='add'>+Sun Feb 13 00:29:18 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Options#process_args): always</div><div class='add'>+	  return options.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::RequireFiles#non_options): return</div><div class='add'>+	  if any test case get loaded.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::AutoRunner#initialize): do not add</div><div class='add'>+	  default directory if it is nil.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::AutoRunner#process_args): return</div><div class='add'>+	  true if any test cases to run.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 23:17:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_include): add alias.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 14:44:20 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_io_blocking_region): new function to run</div><div class='add'>+	  blocking region with GIL released, for fd.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_fd_close): implement.  [ruby-core:35203]</div><div class='add'>+</div><div class='add'>+	* vm.c (th_init): rename from th_init2.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 14:41:36 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::AutoRunner#initialize): use</div><div class='add'>+	  default_dir if no test case given.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Runner): rename from Test::Unit::Mini.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::GlobOption#non_options): run tests</div><div class='add'>+	  under base directory if no argument given.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 08:03:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (TestSetTraceFunc): ensure to use</div><div class='add'>+	  method_added hook defined in Module.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 01:04:02 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): enable rubygems if --gem option is given.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): load rubygems if it is disabled but</div><div class='add'>+	  --gem option is given.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 23:27:50 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): add --gem=enabled as an alias of</div><div class='add'>+	  --enable=gems and --gem=disabled as an alias of --disable=gems.</div><div class='add'>+	  Gem named "enabled" or "disabled" has already been reserved</div><div class='add'>+	  legitimately for this purpose.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 23:17:04 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 21:41:53 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/testrb, test/runner.rb, lib/test/unit.rb: improve backward</div><div class='add'>+	  compatibility.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 19:45:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): use rb_ary_free to free internal object.</div><div class='add'>+</div><div class='add'>+	* gc.h (RUBY_FREE_UNLESS_NULL): get rid of double free.</div><div class='add'>+	  [ruby-core:35192]</div><div class='add'>+</div><div class='add'>+Fri Feb 11 16:57:03 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_from_cp50221): fix wrong</div><div class='add'>+	  assertion and move back.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 14:33:18 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_no_match): alias for</div><div class='add'>+	  backward compatibility.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 12:06:48 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (add_gems, require_libraries, proc_options): add</div><div class='add'>+	  --require and --gem options.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 12:03:24 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rubygems): add --disable-rubygems option.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 11:39:03 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in (CROSS_COMPILING): get rid of NameError.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 23:12:34 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 23:11:27 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb  8 11:47:11 2011  Loren Sands-Ramshaw  &lt;lorensr@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: documentation clarification in rotate, rotate!,</div><div class='add'>+	  index, and rindex. [ruby-core:35144]</div><div class='add'>+</div><div class='add'>+Wed Feb  9 09:45:43 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_encoding.rb: remove unnecessary (and wrong)</div><div class='add'>+	  platform-dependent hacks.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 00:47:18 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb  8 19:38:00 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): fix for invalid nest errors.</div><div class='add'>+</div><div class='add'>+Tue Feb  8 19:22:59 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_MSG_CHECKING): fixed typo. the patch is</div><div class='add'>+	  created by Benoit Daloze. Thanks a lot. [Bug #4384][ruby-core:35148]</div><div class='add'>+</div><div class='add'>+Tue Feb  8 16:04:03 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_sysopen): use NUM2MODET() instead NUM2UINT().</div><div class='add'>+</div><div class='add'>+Tue Feb  8 15:59:23 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_run_exec_options_err): use MODET2NUM() instead</div><div class='add'>+	  LONG2NUM().</div><div class='add'>+</div><div class='add'>+Tue Feb  8 13:59:56 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: revert r30725. Now we have proper runtime fallback.</div><div class='add'>+	  Therefore, no need compile time disabling. (see r30762).</div><div class='add'>+</div><div class='add'>+Tue Feb  8 01:00:21 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): add GC guard to prevent intermediate</div><div class='add'>+	  variable from GC.</div><div class='add'>+</div><div class='add'>+Tue Feb  8 00:56:33 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg, ruby-in-here-doc-p): tell</div><div class='add'>+	  singleton class definitions from here documents.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial): keyword</div><div class='add'>+	  followed by colon is label.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 22:56:16 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Benchmark#bmbm): use ensure clause instead of</div><div class='add'>+	  Object#tap to restore STDOUT.sync.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 22:34:20 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#connect): support SNI (Server Name</div><div class='add'>+	  Indication) for HTTPS.  [ruby-dev:43164]</div><div class='add'>+	  http://stackoverflow.com/questions/4685736/openssl-server-name-indication-support-in-ruby</div><div class='add'>+</div><div class='add'>+Mon Feb  7 16:05:32 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Upgrade to RDoc 3.5.3  Fixes [Bug #4376]</div><div class='add'>+</div><div class='add'>+Mon Feb  7 11:46:59 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): add --encoding=UTF-8; ruby's rdoc must be UTF-8.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 10:21:50 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_options.rb (TestRDocOptions#test_check_files):</div><div class='add'>+	  there is no easy way to create owner unreadable file on Windows.</div><div class='add'>+	  So, skip the test.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 13:48:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/common.rb (JSON::MissingUnicodeSupport.iconv):</div><div class='add'>+	  should not drop rest of the result.  use Iconv.conv instead.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 12:46:02 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (gsub): Ensure result encoding is the same as input</div><div class='add'>+	  encoding.  [Bug #4340].</div><div class='add'>+</div><div class='add'>+Sun Feb  6 12:18:25 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (words, qwords): dispatch array events.  based on a</div><div class='add'>+	  patch from Michael Edgar.  [Bug #4365].</div><div class='add'>+</div><div class='add'>+Sun Feb  6 12:12:59 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (FileAssertions): separate module.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 11:29:23 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 22:01:59 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  revert r30796. r30797 and r30798 are an alternative fix.</div><div class='add'>+	  [ruby-dev:43174]</div><div class='add'>+</div><div class='add'>+Sat Feb  5 21:47:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_basic): include mlhs_post for ripper.  a patch</div><div class='add'>+	  from Michael Edgar at [ruby-core:35078].</div><div class='add'>+</div><div class='add'>+Sat Feb  5 21:22:21 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_block): move from</div><div class='add'>+	  test/fileutils/fileasserts.rb.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (assert_block): pass arguments</div><div class='add'>+	  as-is.  [ruby-dev:43174]</div><div class='add'>+</div><div class='add'>+Sat Feb  5 16:47:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  msg can be passed nil. [Bug #4371] [ruby-dev:43174]</div><div class='add'>+</div><div class='add'>+Sat Feb  5 15:18:25 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Upgrade to RDoc 3.5.2</div><div class='add'>+</div><div class='add'>+Sat Feb  5 12:05:27 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_node_init_copy): SyckNode is not</div><div class='add'>+	  copiable.  [ruby-core:35094]</div><div class='add'>+</div><div class='add'>+Sat Feb  5 11:48:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_alloc): leave data ptr</div><div class='add'>+	  NULL.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_new, ossl_cipher_initialize):</div><div class='add'>+	  allocate internal structure.  [ruby-core:35094]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_copy): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 11:29:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.h (GET_PARSER): raise TypeError.</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.rl (cParser_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.h (GET_PARSER): check if initialized.</div><div class='add'>+	  [ruby-core:35079]</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.rl (cParser_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 10:09:31 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_get_expanded_load_path): always expand load paths.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 09:38:08 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (encoded_dup): extract.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 03:37:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::LowMethods): make low level methods</div><div class='add'>+	  in NoWrite and DryRun to do nothing.  [ruby-dev:43129]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb: add message arguments.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (Test::Unit::Assertions#assert_block):</div><div class='add'>+	  show the given message.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 02:09:39 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_getline, parser_set_encode): set encoding of lines</div><div class='add'>+	  in SCRIPT_LINES__ as source encoding.  [ruby-dev:43168]</div><div class='add'>+</div><div class='add'>+Sat Feb  5 02:08:37 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_thread_data_type): add prefix.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 00:59:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (GetThreadPtr): use TypedData_Get_Struct() instead</div><div class='add'>+	  CoreDataFromValue() because we need type check. Otherwise,</div><div class='add'>+	  type mismatch can cause segmentation fault crash.</div><div class='add'>+	  [ruby-core:35086] [Ruby 1.9-Bug#4367]</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_data_type): remove static.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 19:14:27 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 12:11:51 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_nth): fixed a condition of optimized lead</div><div class='add'>+	  byte counting. [Bug #4366][ruby-dev:43170]</div><div class='add'>+</div><div class='add'>+Fri Feb  4 01:50:13 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (count_utf8_lead_bytes_with_word): wrote function</div><div class='add'>+	  comments.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 00:14:55 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_reader_get_unused): no need to dup</div><div class='add'>+	  before rb_str_resurrect.</div><div class='add'>+</div><div class='add'>+Thu Feb  3 20:04:44 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (CHECK): unused macro removed.</div><div class='add'>+</div><div class='add'>+Thu Feb  3 18:33:26 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_reader_get_unused): use rb_str_resurrect</div><div class='add'>+	  because gz-&gt;z.input is hidden string. [ruby-core:35057]</div><div class='add'>+</div><div class='add'>+Thu Feb  3 16:34:10 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (code_to_mbc): cast as int from the subtraction of</div><div class='add'>+	  pointers.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16le.c (utf16le_mbc_enc_len): use ptrdiff_t.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32be.c (utf32be_left_adjust_char_head): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32le.c (utf32le_left_adjust_char_head): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  3 16:31:43 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: don't use HAVE_STDDEF_H because it never</div><div class='add'>+	  defined by configure though configure.bat defines it.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: move include stddef.h to defines.h</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  2 20:25:04 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_step_back): cast 4th argument 'n'</div><div class='add'>+	  as int because Ruby usually treats length value as long but</div><div class='add'>+	  onigenc_step_back's 4th argument is int.</div><div class='add'>+</div><div class='add'>+Thu Feb  3 07:20:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: use Regexp::NOENCODING</div><div class='add'>+	  rather than magic number.</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/syck/rubytypes.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu Feb  3 07:16:11 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): added a constant for ARG_ENCODING_NONE</div><div class='add'>+	  [ruby-core:35054]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Thu Feb  3 07:02:16 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: ARG_ENCODING_NONE regular</div><div class='add'>+	  expressions can round trip. [ruby-core:34969]</div><div class='add'>+</div><div class='add'>+	* test/psych/test_yaml.rb: test for ARG_ENCODING_NONE regex</div><div class='add'>+</div><div class='add'>+	* ext/sych/lib/syck/rubytypes.rb: ARG_ENCODING_NONE regular</div><div class='add'>+	  expressions can round trip.</div><div class='add'>+</div><div class='add'>+	* test/syck/test_yaml.rb: test for ARG_ENCODING_NONE regex</div><div class='add'>+</div><div class='add'>+Wed Feb  2 17:09:22 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fdatasync): Use fsync(2) if the underlying</div><div class='add'>+	  operating system does not support fdatasync(2).</div><div class='add'>+</div><div class='add'>+Wed Feb  2 14:51:08 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/to_tt_only.rb: commit miss</div><div class='add'>+	* test/rdoc/test_rdoc_markup_to_tt_only.rb: ditto</div><div class='add'>+	* test/rdoc/test_rdoc_single_class.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Feb  2 09:27:53 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Upgrade to RDoc 3.5.1</div><div class='add'>+</div><div class='add'>+Wed Feb  2 00:30:43 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (st_table): Added comment why we need __extension__.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 20:45:44 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/encdb.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 15:12:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (TestRequire#test_require_with_unc):</div><div class='add'>+	  use ``127.0.0.1'' instead of ``localhost'' as host name, because</div><div class='add'>+	  XP or earlier cannot resolv it as NBT hostname.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 13:20:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/benchmark/test_benchmark.rb (#capture_bench_output):</div><div class='add'>+	  Added explicit sleep. Windows have imprecise time support.</div><div class='add'>+	  Thus Tms.new.Add!{} may be or may be not equal 0. The</div><div class='add'>+	  test failure started since r30747.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 11:03:47 2011  Ryan Davis  &lt;ryan@lust.local&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.5.0 (released version @ 1fb59d0)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+</div><div class='add'>+Tue Feb  1 08:01:39 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_set_winsize): new method to set</div><div class='add'>+	  console size.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_winsize): use GetWriteFD.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 02:28:14 2011  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, win32/win32.c: add rb_w32_inet_ntop.</div><div class='add'>+	  inet_ntop's minimum supported client is Vista.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 00:10:30 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb: fix benchmark to work with current ruby.</div><div class='add'>+	  patched by Benoit Daloze [ruby-core:33846] [ruby-dev:43143]</div><div class='add'>+	  merged from https://github.com/eregon/ruby/commits/benchmark</div><div class='add'>+</div><div class='add'>+	*  lib/benchmark (Report#width): update documentation</div><div class='add'>+	*  lib/benchmark: document the return value of #benchmark and the</div><div class='add'>+	   :list attribute in Report</div><div class='add'>+	*  lib/benchmark (Tms#format): rename variables, use String#%</div><div class='add'>+	   instead of Kernel.format</div><div class='add'>+	*  lib/benchmark: remove undocumented Benchmark::times (an alias</div><div class='add'>+	   of Process::times used twice)</div><div class='add'>+	*  lib/benchmark (#benchmark): use label_width for the caption</div><div class='add'>+	*  lib/benchmark (Tms#initialize): rename variables</div><div class='add'>+	*  lib/benchmark: allow title to not be a String and call #to_s</div><div class='add'>+	*  lib/benchmark (Benchmark#bm): return an Array of the times with</div><div class='add'>+	   the labels</div><div class='add'>+	*  lib/benchmark: correct output for Benchmark#bmbm</div><div class='add'>+	   (remove the extra space)</div><div class='add'>+	*  lib/benchmark: add a few tests for Benchmark::Tms output</div><div class='add'>+	*  lib/benchmark: improve style (enumerators, ljust, unused vars)</div><div class='add'>+	*  lib/benchmark: add spec about output and return value</div><div class='add'>+	*  lib/benchmark: improve basic style and consistency</div><div class='add'>+	   no parenthesis for print and use interpolation instead of printf</div><div class='add'>+	*  lib/benchmark: remove unnecessary conversions and variables</div><div class='add'>+	*  lib/benchmark: correct indentation</div><div class='add'>+	*  lib/benchmark: rename the FMTSTR constant and variable to FORMAT</div><div class='add'>+	*  lib/benchmark: remove useless exception</div><div class='add'>+</div><div class='add'>+	*  test/benchmark: remove unused variable warnings</div><div class='add'>+</div><div class='add'>+Mon Jan 31 23:27:23 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* node.c (add_id): remove duplicated rb_id2str() call.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 17:19:46 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Jan 31 21:57:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: revert r30698.</div><div class='add'>+</div><div class='add'>+Mon Jan 31 21:32:44 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): check deadlock condition before</div><div class='add'>+	  release thread stack. fix memory violation when deadlock detected.</div><div class='add'>+	  reported by Max Aller. [Bug #4009] [ruby-core:32982]</div><div class='add'>+</div><div class='add'>+Mon Jan 31 14:45:47 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale::#search_file):</div><div class='add'>+	  Gem might be undefined if --disable-gems. [ruby-core:34990]</div><div class='add'>+</div><div class='add'>+Mon Jan 31 12:26:14 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: suppressed shorten-64-to-32 warnings.</div><div class='add'>+	* regcomp.c: ditto.</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+	* regint.h: ditto.</div><div class='add'>+	* regparse.c: ditto.</div><div class='add'>+	* regparse.h: ditto.</div><div class='add'>+	* time.c: ditto.</div><div class='add'>+	* variable.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 31 04:45:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang): call ARY_SET_LEN(ary, 0) before</div><div class='add'>+	  ary_resize_capa because ary_resize_capa expects resized length is</div><div class='add'>+	  smaller than current array length. call rb_ary_unshare before</div><div class='add'>+	  ary_resize_capa because ary_resize_capa lost the reference to</div><div class='add'>+	  original shared array. [ruby-core:34997]</div><div class='add'>+</div><div class='add'>+Sun Jan 30 17:19:46 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/crypt.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 16:40:27 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_security.rb (TestGemSecurity): valid only</div><div class='add'>+	  if OpenSSL is available.</div><div class='add'>+</div><div class='add'>+	* test/dl/test_dl2.rb (TestDL#test_sin): math functions do not</div><div class='add'>+	  work on x86_64 due to the design of DL2.</div><div class='add'>+</div><div class='add'>+	* test/dl/test_func.rb (DL::TestFunc#test_{sinf,sin): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 16:09:22 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): %G produces 4 digits.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 15:13:19 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (emacsmule_islead): 7bit range is also leading</div><div class='add'>+	  byte.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 13:03:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch_m): use useful message for longer key, not a</div><div class='add'>+	  nonsense id value.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ellipsize): new function to ellipsize a string.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_step_back): new function to step</div><div class='add'>+	  back n characters.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 12:53:38 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (emacsmule_islead): fix inverse condition.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 09:37:25 2011  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (struct argf): char behaves like an unsigned char</div><div class='add'>+	  by default on AIX.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 08:02:55 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Mac OS X wrongly reports it has fdatasync(3).</div><div class='add'>+</div><div class='add'>+Sun Jan 30 03:29:47 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (GetBNPtr): add missing nil case.</div><div class='add'>+	  patched by Martin Bosslet. [ruby-core:34987]</div><div class='add'>+</div><div class='add'>+Sun Jan 30 01:02:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: Added NUM2MODET() and MODET2NUM() default</div><div class='add'>+	  definition.</div><div class='add'>+	  Because r30686 introduced win32 build failure.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 22:16:26 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): [].join.encoding must be US-ASCII.</div><div class='add'>+	  [ruby-list:47790]</div><div class='add'>+</div><div class='add'>+Sat Jan 29 20:22:39 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb (BenchmarkDriver#measure): Show command line</div><div class='add'>+	  when abnormal exiting occur.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 10:53:16 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): no-scope reference to toplevel</div><div class='add'>+	  private constant has been prohibited incorrectly.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_toplevel_private_constant): add a</div><div class='add'>+	  test for above.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 08:43:23 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.5.0 (release candidate @ 09893d9)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+</div><div class='add'>+Sat Jan 29 02:02:37 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_of, sv_i): Module#constant should exclude</div><div class='add'>+	  private constants.  see [ruby-core:32912].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_constants_with_private_constant): add</div><div class='add'>+	  a test for above.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 01:36:41 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): const_set should preserve constant</div><div class='add'>+	  visibility.  see [ruby-core:32912].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 01:24:57 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (NODE_CLASS, NODE_MODULE), insns.def (defineclass): raise</div><div class='add'>+	  an exception when "class Foo::Bar" is evaluated and Foo::Bar is</div><div class='add'>+	  private.  To implement this, define_type of "defineclass" is added</div><div class='add'>+	  so that the instruction can distinguish whether the class definition</div><div class='add'>+	  is scoped (class Foo::Bar) or not (class Bar).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb (test_redefine_private_class),</div><div class='add'>+	  test/ruby/test_module.rb</div><div class='add'>+	  (test_define_module_under_private_constant): add tests for above.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 01:19:17 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* constant.h, variable.c: to ensure compatibility, rb_const_get_* must</div><div class='add'>+	  not raise an exception even when the constant is private.  Instead,</div><div class='add'>+	  rb_public_const_get_* and rb_public_const_defined_* are introduced,</div><div class='add'>+	  which raise an exception when the referring constant is private.</div><div class='add'>+	  see [ruby-core:32912].</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): use rb_public_const_get_* instead</div><div class='add'>+	  of rb_const_get_* to follow the constant visibility when user code</div><div class='add'>+	  refers a constant.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb (test_marshal_private_class): add a test.</div><div class='add'>+	  This test had failed because of incompatibility of rb_const_get.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 00:30:44 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): fix typo.  a patch from Tomoyuki</div><div class='add'>+	  Chikanaga in [ruby-core:32919].</div><div class='add'>+</div><div class='add'>+Fri Jan 28 23:20:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_no_create,</div><div class='add'>+	  TestGDBM2#test_writer_open_notexist): We only need to skip libgdbm</div><div class='add'>+	  1.8.0, not all 1.8.x. 1.8.1 or later don't have GDBM_WRITER sickness.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 21:56:57 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: Added new header places for Fedora13.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 21:49:30 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 17:47:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb (TestGDBM2#test_writer_open_notexist):</div><div class='add'>+	  gdbm 1.8.x changed GDBM::WRITER behavior. Thus our testcase need</div><div class='add'>+	  to be changed too.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 17:33:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_no_create): skip</div><div class='add'>+	  the test if gdbm version is 1.8.x.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 16:30:51 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (TestRequire#test_require_too_long_filename):</div><div class='add'>+	  Added -w option because too long path error don't output a message</div><div class='add'>+	  by default since r30660. [Bug #4336] [ruby-dev:43134]</div><div class='add'>+</div><div class='add'>+Fri Jan 28 16:19:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (TestRequire#test_require_path_home_{1,2}):</div><div class='add'>+	  Added -w option because too long path error don't output a message</div><div class='add'>+	  by default since r30660. [Bug #4336] [ruby-dev:43134]</div><div class='add'>+</div><div class='add'>+Fri Jan 28 16:04:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (TestRequire#test_require_path_home_{1,2,3}):</div><div class='add'>+	  split from test_require_path_home.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 13:04:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-valgrind): Fixed r29683. Now this option</div><div class='add'>+	  is really default on.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 12:05:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add #include&lt;sys/stat.h&gt; when struct stat is</div><div class='add'>+	  tested. Otherwise, incomplete type dereference error will occur.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 11:53:19 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: redundant variable names made strange conftest</div><div class='add'>+	  error. Fixed it.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 11:47:00 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_too_long_path{,2}):</div><div class='add'>+	  should handle Errno::E2BIG, because this test checks crash of ruby,</div><div class='add'>+	  not the error type system.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 11:23:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_open): Use NUM2MODET() instead NUM2UINT().</div><div class='add'>+	* io.c (rb_scan_open_args): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 10:58:20 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Added mode_t type checking.</div><div class='add'>+	* process.c (rb_exec_arg_addopt): Use NUM2MODET() instead</div><div class='add'>+	  NUM2LONG because clang makes compile error by this narrowing</div><div class='add'>+	  conversion.</div><div class='add'>+	* process.c (rb_run_exec_options_err): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 02:37:18 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_raise): add GC guard to prevent intermediate</div><div class='add'>+	  variable from GC.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 02:35:41 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch_m): add GC guard to prevent intermediate</div><div class='add'>+	  variable from GC.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 01:33:51 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_too_long_path)</div><div class='add'>+	  TestProcess#test_too_long_path): Reduced string size from 100MB</div><div class='add'>+	  to 10MB. 100MB may cause no memory error. It isn't intended.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 01:27:42 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_too_long_path2):</div><div class='add'>+	  Factored out from test_too_long_path. A test should only do</div><div class='add'>+	  one test.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 23:29:36 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): check if unpacked.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 23:14:19 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-map): remove deprecated binding.</div><div class='add'>+	  use M-; instead.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 21:58:32 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str_to_inum): get rid of too huge alloca().</div><div class='add'>+</div><div class='add'>+Thu Jan 27 21:43:29 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str_to_dbl): rewrite again. use ALLOCV instead</div><div class='add'>+	  rb_str_tmp_new().</div><div class='add'>+</div><div class='add'>+Thu Jan 27 21:41:47 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: get rid of STRNDUPA(). It's dangerous API.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 21:31:57 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): get rid of too huge alloca().</div><div class='add'>+	  [Bug #4330] [ruby-core:34898]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 20:30:18 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): get rid of too huge alloca().</div><div class='add'>+</div><div class='add'>+Thu Jan 27 18:49:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (open_dir_handle): get rid of too huge alloca().</div><div class='add'>+</div><div class='add'>+Thu Jan 27 18:34:58 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): get rid of too huge alloca().</div><div class='add'>+	  [Bug #4313] [ruby-core:34830]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 18:19:51 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wstati64): get rid of too huge alloca().</div><div class='add'>+	  [Bug #4316] [ruby-core:34834]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 15:11:52 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): get rid of too huge</div><div class='add'>+	  alloca(). this is the real fix of [ruby-core:34833].</div><div class='add'>+</div><div class='add'>+Thu Jan 27 12:46:25 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (ALLOC_ARGV_WITH_STR): fix void pointer arithmetic.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 08:41:40 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v, rb_proc_exec_n, rb_proc_exec)</div><div class='add'>+	  (proc_spawn_n, proc_spawn): get rid of too huge alloca().</div><div class='add'>+	  [ruby-core:34827], [ruby-core:34833]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 08:32:17 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ALLOCV): new API for exception-safe</div><div class='add'>+	  temporary buffer.  [ruby-core:34844]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_alloc_tmp_buffer, rb_free_tmp_buffer):</div><div class='add'>+	  implementation of the API.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 08:22:49 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln_find.c (dln_find_1): use rb_warning and return immediately</div><div class='add'>+	  if fname is longer than buffer.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 22:57:30 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (clone_method): add GC guard to prevent intermediate</div><div class='add'>+	  variable from GC. [Bug #4321] [ruby-dev:43107]</div><div class='add'>+</div><div class='add'>+Wed Jan 26 22:45:16 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 22:28:49 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_throw_obj): add GC guard to prevent intermediate</div><div class='add'>+	  variable from GC. [Bug #4322] [ruby-dev:43108]</div><div class='add'>+</div><div class='add'>+Wed Jan 26 17:08:59 2011  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_decode0): OpenSSL::ASN1.decode</div><div class='add'>+	  should reject indefinite length primitive encodings as that is</div><div class='add'>+	  illegal. Patch by Martin Bosslet. See #4324.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 10:36:28 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (=~): documentation fix; the return value is nil when</div><div class='add'>+	  it doesn't match. patched by Andrei Kulakov [ruby-core:34562]</div><div class='add'>+</div><div class='add'>+Tue Jan 25 08:41:58 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln_find.c (dln_find_1): omit too long pathnames.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 08:28:19 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): get rid of out-of-bound access.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 07:48:22 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: remove unused variables.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 07:45:44 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_condvar_nolock_2): get</div><div class='add'>+	  rid of method redefined.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 07:00:52 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_cstr): rb_str_modify can change</div><div class='add'>+	  RSTRING_PTR.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 03:24:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: Added various ConditionVariable tests.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 22:26:33 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str_to_dbl): Fix again. use rb_str_tmp_new()</div><div class='add'>+	  instead ALLOC_N.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 21:50:48 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 21:28:34 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str_to_dbl): use ALLOC_N instead ALLOCA_N because</div><div class='add'>+	  ALLOC_N may cause stack overflow.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 21:04:45 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_invalid_str): prevent intermediate variable from GC.</div><div class='add'>+	  [ruby-core:34820]</div><div class='add'>+</div><div class='add'>+Sun Jan 23 23:01:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/console/test_io_console.rb: Don't run test if the system</div><div class='add'>+	  don't support io/console.</div><div class='add'>+</div><div class='add'>+Sun Jan 23 22:17:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/fiddle/test_fiddle.rb: Don't run test if the system don't support</div><div class='add'>+	  fiddle.</div><div class='add'>+</div><div class='add'>+	* test/fiddle/test_function.rb: ditto.</div><div class='add'>+	* test/fiddle/test_closure.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 23 11:39:18 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Jan 23 10:33:02 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in (ruby): suppress warnings.</div><div class='add'>+</div><div class='add'>+Sun Jan 23 08:00:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_nth_len, str_utf8_nth): return the rest length together.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): get rid of measure the length always</div><div class='add'>+	  to improve performance for huge string.  [ruby-core:34648]</div><div class='add'>+</div><div class='add'>+Sun Jan 23 00:40:10 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_syslog.rb: Fix to make a lot of test failure if</div><div class='add'>+	  the platform doesn't support syslog.</div><div class='add'>+</div><div class='add'>+Sat Jan 22 11:49:55 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: fixing merge key support</div><div class='add'>+	  when multiple merge keys are specified.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_merge_keys.rb: tests for multi-merge key support</div><div class='add'>+</div><div class='add'>+Sat Jan 22 11:33:04 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: merge keys are actually</div><div class='add'>+	  part of YAML 1.1, so they should be supported.  Remove warning and</div><div class='add'>+	  merge keys to parent.  [ruby-core:34679]</div><div class='add'>+</div><div class='add'>+	* test/psych/test_merge_keys.rb: test for merge keys</div><div class='add'>+</div><div class='add'>+Sat Jan 22 10:25:19 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): add the file name to the exception when</div><div class='add'>+	  parse errors occur.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_parser.rb: test for parse error file name</div><div class='add'>+</div><div class='add'>+Sat Jan 22 10:12:30 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): fix assertion error when reusing a</div><div class='add'>+	  parser after an exception has been raised</div><div class='add'>+</div><div class='add'>+	* test/psych/test_parser.rb: test for assertion error</div><div class='add'>+</div><div class='add'>+Sat Jan 22 04:09:22 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/nodes/node.rb: Make Psych::Nodes::Node</div><div class='add'>+	  enumerable.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/depth_first.rb: Add a depth-first</div><div class='add'>+	  visitor to enumerate over a YAML AST in a depth-first fashion</div><div class='add'>+</div><div class='add'>+	* test/psych/nodes/test_enumerable.rb: test for enumerating nodes</div><div class='add'>+</div><div class='add'>+	* test/psych/visitors/test_depth_first.rb: test for depth-first</div><div class='add'>+	  visitor</div><div class='add'>+</div><div class='add'>+Sat Jan 22 00:53:42 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 18:15:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: should not use -Werror=* flags while conftests.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 09:17:00 2011  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Fix incorrectly detected x86_64-w64-mingw32 due</div><div class='add'>+	  canonalization of target_os. Bug #3889 [ruby-core:32634]</div><div class='add'>+</div><div class='add'>+Thu Jan 20 23:44:00 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Fix rb_cv_va_args_macro was broken. We are using</div><div class='add'>+	  -Werror=implicit-function-declaration compile option. therefore</div><div class='add'>+	  we need a function declaration explicitly.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 23:58:02 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 23:25:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add '#include &lt;stdlib.h&gt;' to</div><div class='add'>+	  rb_cv_localtime_overflow test too. It's reported by Tomoyuki</div><div class='add'>+	  Chikanaga. Thanks.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 16:11:00 2011  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: You shouldn't choose ``conftest.c'' as a</div><div class='add'>+	  name of a source file.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 12:15:44 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add stdlib.h inclusion into rb_cv_negative_time_t</div><div class='add'>+	  test because it's required for exit(3). The patch is</div><div class='add'>+	  created by Tomoyuki Chikanaga. [Bug #4287] [ruby-dev:43060]</div><div class='add'>+</div><div class='add'>+Thu Jan 20 11:39:41 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/utils.rb (TestWEBrick::RubyBin): test CGI does not need</div><div class='add'>+	  to load rubygems.  if it activated, ruby raises LoadError about</div><div class='add'>+	  rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 09:19:42 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/json_tree.rb: Fix JSON emit for</div><div class='add'>+	  DateTime and Time classes.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_json_tree.rb: test for JSON emit</div><div class='add'>+</div><div class='add'>+Thu Jan 20 08:02:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/coder.rb (represent_object): arbitrary objects</div><div class='add'>+	  may be passed to the Psych::Coder object.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: support for visiting</div><div class='add'>+	  arbitrary objects set on the coder.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_coder.rb: supporting test case.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 06:03:17 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Jan 19 13:16:05 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: Finish removing code,</div><div class='add'>+	  (fixes sources command test).</div><div class='add'>+</div><div class='add'>+Wed Jan 19 13:04:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_call): Add gc guard to avoid segfault. The fix</div><div class='add'>+	  is created by Tomoyuki Chikanaga. [Bug #4238][ruby-dev:42963]</div><div class='add'>+</div><div class='add'>+Wed Jan 19 12:31:28 2011  Eric Hodel &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Since gem_prelude requires rubygems, enable</div><div class='add'>+	  custom_require always.</div><div class='add'>+</div><div class='add'>+Wed Jan 19 12:08:08 2011  Eric Hodel &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb: Remove require of</div><div class='add'>+	  deleted file.</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb: ditto</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb: ditto</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: ditto</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Jan 19 08:13:59 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.5.0 (release candidate)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='add'>+</div><div class='add'>+Tue Jan 18 23:31:01 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: avoid NULL reference.  [ruby-dev:43067]</div><div class='add'>+</div><div class='add'>+Wed Jan 19 02:54:04 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (cvt): set first byte of buf to NUL for the case when</div><div class='add'>+	  no bytes are written to the buf. [ruby-dev:43062]</div><div class='add'>+</div><div class='add'>+Tue Jan 18 23:04:51 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 18:31:14 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: Irb tab completion support for XX::method</div><div class='add'>+	  forms.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 15:05:55 2011  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: added RDoc document for logging message escape</div><div class='add'>+	  by Hal Brodigan. See #3869</div><div class='add'>+</div><div class='add'>+Tue Jan 18 07:53:52 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 04:42:44 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/parser.rb (Mark): Adding a class to wrap</div><div class='add'>+	  marker information</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (mark): Add a method to return the mark object</div><div class='add'>+	  for the parser</div><div class='add'>+</div><div class='add'>+	* test/psych/test_parser.rb: tests for the Mark class.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 02:46:55 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/json_tree.rb (visit_String): JSON</div><div class='add'>+	  strings should be dumped with double quotes. [ruby-core:34186]</div><div class='add'>+</div><div class='add'>+	* test/psych/test_json_tree.rb: test for double quotes</div><div class='add'>+</div><div class='add'>+Mon Jan 17 23:36:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times): less MEMCPY calls.</div><div class='add'>+</div><div class='add'>+Mon Jan 17 22:54:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.h: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Jan 17 21:40:25 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): revert r30549.</div><div class='add'>+</div><div class='add'>+Sun Jan 16 20:55:45 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Jan 15 11:57:30 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): add -Werror=implicit-function-declaration</div><div class='add'>+	  if available.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): ignore warnings in mkmf tests.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (setup, teardown): restore config values.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/test_flags.rb: split from test_find_executable.rb.</div><div class='add'>+</div><div class='add'>+Sat Jan 15 10:04:14 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): autoload rubygems.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb (Prelude#initialize): ignore empty</div><div class='add'>+	  preludes.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_prelude): get rid of global namespace</div><div class='add'>+	  pollution.</div><div class='add'>+</div><div class='add'>+Sat Jan 15 09:42:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h: missing prototypes.</div><div class='add'>+</div><div class='add'>+Fri Jan 14 23:25:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Jan 14 15:32:29 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: call neither logout nor disconnect</div><div class='add'>+	  unless connected.  patch by Kazuhiro NISHIYAMA.  [ruby-dev:42860]</div><div class='add'>+</div><div class='add'>+Fri Jan 14 14:56:57 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: use bytesize for binary strings.</div><div class='add'>+	  patched by Yoshimasa Niwa. [ruby-core:34222]</div><div class='add'>+</div><div class='add'>+Fri Jan 14 14:01:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): the resulted string of unpack('M') must have</div><div class='add'>+	  ASCII-8BIT encoding (and ENC_CODERANGE_VALID). [ruby-core:34482]</div><div class='add'>+</div><div class='add'>+Fri Jan 14 13:38:58 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_check_footer): ISIZE (Input SIZE) in</div><div class='add'>+	  gzip's header is the size of uncompressed input data modulo 2^32.</div><div class='add'>+	  [ruby-core:34481] http://www.ietf.org/rfc/rfc1952.txt</div><div class='add'>+</div><div class='add'>+Fri Jan 14 11:36:25 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (RUNRUBY): require path should</div><div class='add'>+	  include "." because rbconfig.rb is there.</div><div class='add'>+</div><div class='add'>+Fri Jan 14 10:40:11 2011  Ryan Davis  &lt;ryan@lust.local&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: Just require rubygems. Fixes rubygems 1.4.</div><div class='add'>+	* lib/rubygems.rb: removed all Gem::Quickloader code.</div><div class='add'>+	* ruby.c: renamed ruby_init_gems to ruby_init_prelude. Set</div><div class='add'>+	  $disable_rubygems since there is no fine grained mechanism to</div><div class='add'>+	  skip parts of the prelude. Open to suggestions on how to do this</div><div class='add'>+	  better.</div><div class='add'>+	* test/*.rb: Load path isn't set up correctly, so add</div><div class='add'>+	  --disable-gems as needed to failing tests that are explicitly</div><div class='add'>+	  testing stderr w/ ==.</div><div class='add'>+</div><div class='add'>+Fri Jan 14 07:30:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv): go advance when the next file cannot be</div><div class='add'>+	  read.  [ruby-core:34446]</div><div class='add'>+</div><div class='add'>+Thu Jan 13 20:49:19 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Jan 13 13:21:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: delete dashes to make lines 80 chars, Patched by</div><div class='add'>+	  Shota Fukumori (sora_h).  [Bug #4275] [ruby-dev:43021]</div><div class='add'>+</div><div class='add'>+Thu Jan 13 13:21:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: fix misspelling of CrashReporter, Patched by Shota</div><div class='add'>+	  Fukumori (sora_h).  [Bug #4275] [ruby-dev:43021]</div><div class='add'>+</div><div class='add'>+Thu Jan 13 06:27:29 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: Exception#to_s should actually call to_s.</div><div class='add'>+</div><div class='add'>+Thu Jan 13 00:32:54 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c (get_nth_dirname): decrement the directory index</div><div class='add'>+	  because the index specifies the index of given included_directories</div><div class='add'>+	  which is separated by NUL and its index is begun from 1.</div><div class='add'>+	  Note that 0 specifies the current directory of the compilation.</div><div class='add'>+	  see also http://www.dwarfstd.org/doc/dwarf-2.0.0.pdf</div><div class='add'>+</div><div class='add'>+Thu Jan 13 00:06:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): Add warning messages. [ruby-core:34062]</div><div class='add'>+</div><div class='add'>+Thu Jan 13 00:00:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): Some syscall return unsigned or pointer value.</div><div class='add'>+	  Therefore we should only check the result is -1 or not.</div><div class='add'>+	  [ruby-core:34062]</div><div class='add'>+</div><div class='add'>+Wed Jan 12 23:55:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): Add 64bit Linux support. Some syscall takes</div><div class='add'>+	  long type arguments.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 19:37:10 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 19:28:23 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): reset ruby_current_thread if it points the</div><div class='add'>+	  thread to free.</div><div class='add'>+	* gc.c (slot_sweep): don't call RUBY_VM_SET_FINALIZER_INTERRUPT if</div><div class='add'>+	  there is no current thread.</div><div class='add'>+	  [ruby-dev:43000]</div><div class='add'>+</div><div class='add'>+Wed Jan 12 19:09:29 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): reenter check more strictly.</div><div class='add'>+	  (sort_by_cmp): ditto.</div><div class='add'>+	  [ruby-dev:43003] reported by Usaku NAKAMURA.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 16:25:12 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#connect): makes it timeout during</div><div class='add'>+	  SSL handshake too. [ruby-core:34203]</div><div class='add'>+	  Patch by Marc Slemko.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb (TestNetHTTP_v1_2#test_timeout_during_HTTP_session):</div><div class='add'>+	  test for [ruby-core:34203]</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb (TestNetHTTPS#test_timeout_during_SSL_handshake):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 16:24:53 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: new checks for RL_PROMPT_START_IGNORE</div><div class='add'>+	  and RL_PROMPT_END_IGNORE. [ruby-core:34331]</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: enables USE_INSERT_IGNORE_ESCAPE only if</div><div class='add'>+	  RL_PROMPT_{START,END}_IGNORE are available to get rid of compilation</div><div class='add'>+	  error with libedit.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 15:53:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja (rb_ensure): typo.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 11:33:46 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: OpenBSD uses the elf_abi.h header file instead of the</div><div class='add'>+	  elf.h header file. patched by Jeremy Evans [ruby-core:34384]</div><div class='add'>+</div><div class='add'>+Wed Jan 12 03:59:36 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cgi.rb: Removes usage of deprecated</div><div class='add'>+	  :RequestHandler option.</div><div class='add'>+	  patched by Peter Weldon [ruby-core:34010]</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpproxy.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpserver.rb: Add a test of the deprecation</div><div class='add'>+	  behaviour.</div><div class='add'>+</div><div class='add'>+Wed Jan 12 08:37:07 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_i): return different values for inverse hash.</div><div class='add'>+	  [ruby-core:34334]</div><div class='add'>+</div><div class='add'>+Tue Jan 11 20:32:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Jan 11 13:06:38 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_resize): should care of embeded array when extending</div><div class='add'>+	  the array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_resize): need to set capa when changing the real</div><div class='add'>+	  size of the array.</div><div class='add'>+	  these are latent bugs.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 22:46:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (CASEFOLD_FILESYSTEM): HFS+ is case</div><div class='add'>+	  insensitive.</div><div class='add'>+</div><div class='add'>+	* load.c (loaded_feature_path, rb_feature_p, load_lock): on a</div><div class='add'>+	  case-insensitive filesystem, loaded features search should</div><div class='add'>+	  ignore case.  [ruby-core:34297]</div><div class='add'>+</div><div class='add'>+Mon Jan 10 21:34:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (showflags): show LD commands.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 14:32:55 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb (TestMethod#test_define_method): method</div><div class='add'>+	  transplanting between class and module is impossible.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 13:51:17 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rdoc-mode.el (rdoc-mode): show trailing whitespace.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 11:22:02 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 07:41:31 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/README: mention rdoc-mode.el and ruby-style.el.</div><div class='add'>+</div><div class='add'>+Sun Jan  9 20:37:21 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Jan  9 16:31:53 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Kernel.#syscall): implemented on LP64/LLP64 environments too.</div><div class='add'>+	  also uses __syscall if available for *BSD on 64bit architecture.</div><div class='add'>+	  [ruby-core:34062]</div><div class='add'>+</div><div class='add'>+Sun Jan  9 16:31:34 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale::LOCALE_NAME_RE):</div><div class='add'>+	  some platform has a locale without territory but with</div><div class='add'>+	  encoding.</div><div class='add'>+	  (#each_sub_locale): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan  9 14:47:50 2011  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: apply a patch from Nobuyoshi Nakada.</div><div class='add'>+	  fixed #3616 [ruby-core:31484] IRB + readline incorrectly counts</div><div class='add'>+	  non-printing characters in prompt</div><div class='add'>+</div><div class='add'>+Sat Jan  8 21:47:26 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): use rb_ary_resize.</div><div class='add'>+	  (ary_cutoff): removed.</div><div class='add'>+</div><div class='add'>+Sat Jan  8 21:24:17 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (swapf): compilation condition simplified.</div><div class='add'>+	  (swapd): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  8 20:51:25 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (swapd): remove duplicated code.</div><div class='add'>+</div><div class='add'>+Sat Jan  8 19:28:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 23:07:40 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): backref needs to capture.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 21:57:22 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-variables), misc/ruby-style.el:</div><div class='add'>+	  show trailing whitespace.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): highlight</div><div class='add'>+	  regexp after open bracket.  [ruby-core:34183]</div><div class='add'>+</div><div class='add'>+Fri Jan  7 00:37:35 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 22:42:02 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_karatsuba): avoid overflow that make assertion</div><div class='add'>+	  fail in certain case.  this patch is contributed from Ray Chason</div><div class='add'>+	  &lt;chasonr at gmail.com&gt; in personal communication.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 20:55:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): ignore rest from first dot from</div><div class='add'>+	  TARGET to generate init function name.</div><div class='add'>+	  this is followup of r30464.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 11:27:01 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/tree_builder.rb (start_mapping): tags</div><div class='add'>+	  should not be included in JSON mapping</div><div class='add'>+</div><div class='add'>+Thu Jan  6 09:23:33 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (eof?): BufferedIO should proxy eof? to the</div><div class='add'>+	  underlying IO object.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 09:12:31 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): fixing gsub when multiple error flags</div><div class='add'>+	  are passed to GCC.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 05:25:49 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_modify): export.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 05:14:41 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (get_strio, strio_set_string)</div><div class='add'>+	  (strio_reopen): check if frozen.  [ruby-core:33648]</div><div class='add'>+</div><div class='add'>+Thu Jan  6 05:10:58 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_resize): new utility function.  [ruby-dev:42912]</div><div class='add'>+</div><div class='add'>+Thu Jan  6 05:03:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname_len): ignore rest from first dot.</div><div class='add'>+	  [ruby-dev:41774]</div><div class='add'>+</div><div class='add'>+Thu Jan  6 02:55:48 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: use YAML 1.0 output</div><div class='add'>+	  format for serializing nil values.  Thanks Eric Hodel!</div><div class='add'>+</div><div class='add'>+	* test/psych/test_nil.rb: test for nil values</div><div class='add'>+</div><div class='add'>+Wed Jan  5 14:21:34 2011  Mark Dodwell  &lt;hi@mkdynamic.co.uk&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: fix rdoc typo.</div><div class='add'>+	  https://github.com/shyouhei/ruby/pull/3</div><div class='add'>+</div><div class='add'>+Wed Jan  5 14:06:01 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_options.rb (TestRDocOptions#test_check_files):</div><div class='add'>+	  skip on Windows because chmod 0 doesn't mean unreadable by owner.</div><div class='add'>+</div><div class='add'>+Wed Jan  5 13:56:54 2011  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#get): A header hash given should not</div><div class='add'>+	  be modified.</div><div class='add'>+</div><div class='add'>+Wed Jan  5 12:10:08 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/{cfunc.c,dl.h,handle.c}, ext/fiddle/fiddle.{h,c}: Use _WIN32</div><div class='add'>+	  rather than checking for windows.h.  Thanks Jon Forums!</div><div class='add'>+	  [ruby-core:33977]</div><div class='add'>+</div><div class='add'>+Sat Jan  1 17:02:50 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale#search_file): make it possible</div><div class='add'>+	  to load a localization from a gem.</div><div class='add'>+	  (IRB::Locale#lc_path): obsoleted because of the change of #search_file</div><div class='add'>+	  (IRB::Locale#each_localized_path): new private method, based on</div><div class='add'>+	  lc_path</div><div class='add'>+	  (IRB::Locale#find): follows the change of #search_file.</div><div class='add'>+	  (IRB::Locale#load): removed duplicate with #find.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 11:44:42 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 11:10:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: take care of platforms where long is bigger</div><div class='add'>+	  than int.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 11:03:58 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (optparse): shell completion support.</div><div class='add'>+</div><div class='add'>+	* misc/README (rb_optparse.{bash,zsh}): for shell completion.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (VALUE rb_ary_print_on): I have never seen</div><div class='add'>+	  this function anywhere.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 04:20:11 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write_console): don't raise exception when</div><div class='add'>+	  the conversion is for writing to console.</div><div class='add'>+	  Patched by Heesob Park [ruby-core:33999]</div><div class='add'>+</div><div class='add'>+Fri Dec 31 12:02:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): use less temporary objects.</div><div class='add'>+</div><div class='add'>+Fri Dec 31 11:46:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags), lib/mkmf.rb (configuration): turn</div><div class='add'>+	  warnings into errors only for bundled extensions.</div><div class='add'>+	  [ruby-core:33815]</div><div class='add'>+</div><div class='add'>+Fri Dec 31 11:15:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (sizeof): zlib.h mistakenly assumes the result</div><div class='add'>+	  of sizeof to be int, not size_t.</div><div class='add'>+</div><div class='add'>+Fri Dec 31 10:27:34 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Dec 31 03:23:26 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD__uqtoa): Fix overflow when long != quad_t.</div><div class='add'>+	  patched by Peter Weldon &lt;peter.weldon AT null.net&gt;</div><div class='add'>+	  [ruby-core:33985]</div><div class='add'>+</div><div class='add'>+Fri Dec 31 03:00:34 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: remove unnecessary semicolons.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 23:09:47 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_define_method): guard iseq from GC while method definition.</div><div class='add'>+	  [ruby-dev:42832]</div><div class='add'>+</div><div class='add'>+Thu Dec 30 20:18:32 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 20:57:09 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: Check V=1 argument if run "make clean" or similar.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 20:41:50 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: Kill ugly line continuation.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 11:49:40 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Dec 29 21:20:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (maygvl_copy_stream_wait_readwrite): define if USE_SENDFILE</div><div class='add'>+</div><div class='add'>+Wed Dec 29 20:37:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: strip current directory prefix.</div><div class='add'>+</div><div class='add'>+	* enc/depend (clean): remove name2ctype.h when out-of-place build.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean-enc): pass V to inferior make.</div><div class='add'>+</div><div class='add'>+Wed Dec 29 18:23:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): need to escape if the coderange is invalid.</div><div class='add'>+</div><div class='add'>+Wed Dec 29 10:06:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Dec 29 07:22:15 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/rdoctask.rb: Deprecate in favor of rdoc/task.</div><div class='add'>+</div><div class='add'>+Wed Dec 29 07:07:06 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Import RDoc 3.1</div><div class='add'>+</div><div class='add'>+Tue Dec 28 18:36:38 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c, include/ruby/intern.h (rb_compile_error_with_enc): new</div><div class='add'>+	  function to raise syntax error, with source encoding'ed message.</div><div class='add'>+</div><div class='add'>+	* parse.y (compile_error): use above function.</div><div class='add'>+	  [ruby-core:33951] (#4217)</div><div class='add'>+</div><div class='add'>+Tue Dec 28 07:37:38 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec 28 07:17:11 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add ARGF.write and so on.</div><div class='add'>+</div><div class='add'>+Tue Dec 28 07:12:38 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add new magic-comment. (warn-indent) [ruby-core:25442]</div><div class='add'>+</div><div class='add'>+Tue Dec 28 04:32:37 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/extconf.rb: check for windows.h while building fiddle.</div><div class='add'>+	  Thanks Jon Forums! [ruby-core:33923]</div><div class='add'>+</div><div class='add'>+Tue Dec 28 01:45:12 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Add Zlib.deflate and Zlib.inflate.</div><div class='add'>+	  [ruby-dev:42833]</div><div class='add'>+</div><div class='add'>+Mon Dec 27 21:22:33 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: Remove obsoleted coding rule. Now, we</div><div class='add'>+	  don't support to build on Windows 95/98 and Me.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 18:27:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 15:22:23 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/README.win32: note to need NT based OS to build ruby.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 12:14:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (EXTMK_ARGS): specify to pass macro V, because nmake</div><div class='add'>+	  doesn't pass it via MAKEFLAGS.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 10:33:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Init_zlib): Add Zlib.deflate and Zlib.inflate.</div><div class='add'>+	  [ruby-dev:42833]</div><div class='add'>+</div><div class='add'>+Mon Dec 27 07:38:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rb_optparse.zsh: add compdef for generator.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 07:32:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#compsys): escape brackets too.</div><div class='add'>+	  [ruby-dev:42754]</div><div class='add'>+</div><div class='add'>+Mon Dec 27 01:30:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add IF_NAMESIZE.</div><div class='add'>+	  add a default for INET6_ADDRSTRLEN.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 23:49:47 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: suppress a strange error message when RMALL</div><div class='add'>+	  found no such file.</div><div class='add'>+	* win32/rmall.bat: new.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 21:23:23 2010    &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: fix 'nmake clean-enc' breakage since r28322.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 22:25:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (ripper.y): fix messages with nmake.</div><div class='add'>+	  [ruby-dev:42896]</div><div class='add'>+</div><div class='add'>+Sun Dec 26 22:24:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): get rid of warnings caused by</div><div class='add'>+	  -Wdeclaration-after-statement on cygwin.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 20:28:34 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (before_exec): add small comment.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 20:52:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define INET_ADDRSTRLEN as 16 if not</div><div class='add'>+	  available.  fix compilation error on mswin32-60.  reported by nobu.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 19:37:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c: define IFNAMSIZ if not available.</div><div class='add'>+	  fix compilation error on mingw32.  reported by nobu.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 12:16:29 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths::HOMEDIR): no exception if</div><div class='add'>+	  HOME is not set.  [ruby-core:33867]</div><div class='add'>+</div><div class='add'>+Sun Dec 26 11:39:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): missing ripper rule.  i.e., `a::B ||= c 1'.</div><div class='add'>+	  http://twitter.com/#!/wannabe53/status/18797576396472321</div><div class='add'>+	  http://twitter.com/#!/wannabe53/status/18798416150663168</div><div class='add'>+</div><div class='add'>+Sun Dec 26 11:15:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS): should not affect</div><div class='add'>+	  original classes.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 09:35:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 09:22:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (rb_if_indextoname): new function to abstract</div><div class='add'>+	  environments without if_indextoname.</div><div class='add'>+	  (inspect_ipv6_multicast_if): new function to inspect</div><div class='add'>+	  IPV6_MULTICAST_IF.</div><div class='add'>+	  Socket::Option.new(:INET6, :IPV6, :MULTICAST_IF,</div><div class='add'>+	  [2].pack("I!")).inspect is</div><div class='add'>+	  "#&lt;Socket::Option: INET6 IPV6 MULTICAST_IF eth0&gt;".</div><div class='add'>+</div><div class='add'>+Sun Dec 26 04:31:15 2010  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/registry.rb: Corrected RegCreateKeyExA signature.</div><div class='add'>+	  Patch by Rafal Michalski [ruby-core:33874] [Ruby 1.9-Bug#4203]</div><div class='add'>+</div><div class='add'>+Sun Dec 26 02:31:58 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (advice_arg_check): Change argument check.</div><div class='add'>+	  Now, an unsupported advice makes NotImplementedError.</div><div class='add'>+	  [ruby-dev:42887] [Ruby 1.9-Feature#4204]</div><div class='add'>+</div><div class='add'>+Sun Dec 26 03:00:53 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: Fix build error which was introduced r30372.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 01:37:10 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check the existence of if_indextoname().</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c: yesterday's akr's commits destroyed the build of</div><div class='add'>+	  some unrelated platforms (such as Windows).</div><div class='add'>+</div><div class='add'>+Sat Dec 25 23:29:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_ipv4_add_drop_membership): new function</div><div class='add'>+	  to inspect struct ip_mreq and struct ip_mreqn for</div><div class='add'>+	  IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.</div><div class='add'>+	  Socket::Option.new(:INET, :IP, :ADD_MEMBERSHIP,</div><div class='add'>+	  [239,255,99,81, 0,0,0,0].pack("CCCCCCCC")).inspect is now</div><div class='add'>+	  "#&lt;Socket::Option: INET IP ADD_MEMBERSHIP 239.255.99.81 0.0.0.0&gt;".</div><div class='add'>+	  (inspect_ipv4_multicast_if): new function to inspect struct in_addr</div><div class='add'>+	  and struct ip_mreqn for IP_MULTICAST_IF.</div><div class='add'>+	  Socket::Option.new(:INET, :IP, :MULTICAST_IF,</div><div class='add'>+	  [192,168,0,7].pack("CCCC")).inspect is now</div><div class='add'>+	  "#&lt;Socket::Option: INET IP MULTICAST_IF 192.168.0.7&gt;".</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check struct ip_mreq and struct ip_mreqn.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 22:49:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv: DifferentOFS needs to be include in each classes.</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest_extend.rb (TestDigestExtend#setup):</div><div class='add'>+	  should not depend on the result of previous tests</div><div class='add'>+</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS::WithDifferentOFS): give</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS): test suite for test</div><div class='add'>+	  suites affected by $,.</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest_extend.rb (TestDigestExtend): should not</div><div class='add'>+	  assume $, invariant.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_data_converters.rb, test/csv/test_table.rb: don't</div><div class='add'>+	  call setup within tests.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 20:01:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): Added rb_thread_atfork(). We must reinitialize</div><div class='add'>+	  GVL at new process creation.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 18:26:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_ipv6_mreq): new function to inspect</div><div class='add'>+	  struct ipv6_mreq for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.</div><div class='add'>+	  Socket::Option.new(:INET6, :IPV6, :JOIN_GROUP,</div><div class='add'>+	  [0xff12,0,0,0,0,0,0,1, 2].pack("nnnnnnnnI!")).inspect is now</div><div class='add'>+	  "#&lt;Socket::Option: INET6 IPV6 JOIN_GROUP ff12::1 eth0&gt;".</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check struct ipv6_mreq.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 18:04:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV.foreach): 'rb' mode is defaulted in open.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#init_separators): cannonicalize encoding options</div><div class='add'>+	  as Encoding objects.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 18:30:34 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork): Add small comment why we need</div><div class='add'>+	  reset random seed.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 17:33:55 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/base.rb (TestCSV.with_different_ofs): give name to</div><div class='add'>+	  anonymous classes.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#init_separators): use IO#gets with length</div><div class='add'>+	  parameter to get rid of wrong conversion.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV::foreach, CSV#initialize): directly use encoding</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb, test/csv: should not assume $, invariant.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 16:08:06 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: change rb_atomic_t definition from uchar to uint.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 15:04:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_encodings.rb (TestEncodings#setup): fix evil test</div><div class='add'>+	  suite writing to the source directory.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 15:08:08 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): Added rb_thread_atfork_before_exec().</div><div class='add'>+	  We must reinitialize GVL at new process creation. Otherwise</div><div class='add'>+	  we may meet an insane deadlock. [Bug#4121][ruby-dev:42686]</div><div class='add'>+</div><div class='add'>+Sat Dec 25 14:27:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_encoding_option): accept Encoding object as</div><div class='add'>+	  encoding: optional argument.  [ruby-dev:42884]</div><div class='add'>+</div><div class='add'>+Sat Dec 25 13:37:55 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 2.0.2 r6093.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 13:05:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 12:48:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require_relative): don't omit return type.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 11:06:00 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require_relative): Add documentation.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 11:02:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzreader_gets): support optional length</div><div class='add'>+	  parameter.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read, gzfile_readpartial): length should</div><div class='add'>+	  be long.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 10:51:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/generator/generator.{c,h} (fbuffer_free_only_buffer):</div><div class='add'>+	  unused.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): add casts.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 08:46:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 19:17:14 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/cacert.pem: updated because it has been expired.</div><div class='add'>+</div><div class='add'>+	* test/net/imap/server.crt: signed again because CA cert was expired.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 11:16:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 11:00:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_check_type): check for type from extensions for ruby</div><div class='add'>+	  1.8.  see [ruby-core:33797].</div><div class='add'>+</div><div class='add'>+Thu Dec 23 08:12:59 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: refactoring Net::SMTP#esmtp= to use an</div><div class='add'>+	  attr_accessor</div><div class='add'>+</div><div class='add'>+Thu Dec 23 06:35:41 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: Net::SMTP should close the SSL connection if the</div><div class='add'>+	  connection verification fails.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 01:47:58 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: remove #object_id. [ruby-dev:42840]</div><div class='add'>+</div><div class='add'>+Wed Dec 22 08:56:39 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add Module#private_constant and Module#public_constant.</div><div class='add'>+	  [ruby-dev:39685][ruby-core:32698]</div><div class='add'>+</div><div class='add'>+Wed Dec 22 07:59:23 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add IO#advise. [ruby-core:33110] [Ruby 1.9-Feature#4038]</div><div class='add'>+</div><div class='add'>+Tue Dec 21 23:45:31 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_GC): move back object_id to Kernel. [ruby-dev:42840]</div><div class='add'>+</div><div class='add'>+Tue Dec 21 12:45:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (target_archs): remove temporary objects.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in, enc/depend (clean): remove work directories.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 07:39:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 06:25:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_contrib.rb (ContribTester#test_pos): should not</div><div class='add'>+	  use fixed path name for tests.  [ruby-dev:42827]</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_sax.rb (SAX2Tester#test_socket): should not use</div><div class='add'>+	  fixed port for tests.  [ruby-dev:42828]</div><div class='add'>+</div><div class='add'>+Tue Dec 21 06:10:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (setup_args), vm.c (invoke_block_from_c),</div><div class='add'>+	  vm_insnhelper.c (caller_setup_args): reverted r30241 and r30243</div><div class='add'>+	  except for the test.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 01:41:42 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c : add an extra byte to buffer for the specification of read</div><div class='add'>+	  in Windows. see [ruby-core:33460] and r29980. and, we have to</div><div class='add'>+	  discuss how to do this one byte.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 01:18:06 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: Fix build error for win32. This regression was</div><div class='add'>+	  introduced by r30271.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 00:59:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func): Moved interrupted_lock</div><div class='add'>+	  destroying code from native_thread_destroy() to</div><div class='add'>+	  thread_cleanup_func() because it's platform independent logic.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_thread_destroy): ditto.</div><div class='add'>+	* thread_pthread.c (native_thread_destroy): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 00:46:20 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func): Don't touch native threading</div><div class='add'>+	  resource at fork. Sadly this is purely bandaid. We need to</div><div class='add'>+	  implement proper fix later. [Bug #4169] [ruby-core:33767]</div><div class='add'>+</div><div class='add'>+Tue Dec 21 00:22:44 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exit_success_p): Check status code more carefully.</div><div class='add'>+	  status code may have garbage in upper bit.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 23:12:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 20:04:41 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add #__id__ and #object_id. [ruby-dev:42778]</div><div class='add'>+</div><div class='add'>+Mon Dec 20 20:03:21 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_destroy): Fixed gvl_cond leak.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 13:49:05 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Add item for RDoc 3.0.1</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Import RDoc 3.0.1, remove require for perl parser.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 12:15:32 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Import RDoc 3.0.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 01:55:03 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): Added O_DIRECT. This feature was proposed by</div><div class='add'>+	  Run Paint Run Run.</div><div class='add'>+	  [Feature #4015] [ruby-core:33018]</div><div class='add'>+</div><div class='add'>+Sun Dec 19 19:15:23 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 21:52:37 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): suppress warning: "_WIN32" is not</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 16:02:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (setup_args), vm.c (invoke_block_from_c),</div><div class='add'>+	  vm_insnhelper.c (caller_setup_args): fix of r30241. lambda block</div><div class='add'>+	  should check argument number.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 14:42:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 10:07:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (setup_args, iseq_compile_each): optimize AMPER LAMBDA</div><div class='add'>+	  combination as block.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 22:07:16 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_GC): move #__id__ and #object_id to BasicObject.</div><div class='add'>+	  [ruby-dev:42778]</div><div class='add'>+</div><div class='add'>+Fri Dec 17 19:35:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/test_find_executable.rb (test_find_executable):</div><div class='add'>+	  suppress meaningless differences for chkbuild.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 13:26:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (BASERUBY): quit with an error when BASERUBY was not</div><div class='add'>+	  able to set, just like configure.in does. [ruby-dev:42782]</div><div class='add'>+</div><div class='add'>+Fri Dec 17 07:04:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 04:18:37 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode): Alter comment for better wording and ri</div><div class='add'>+	  output.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 00:05:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_advise): New API. IO#advise() allows to tell the</div><div class='add'>+	  ruby runtime how it expects to use a file handle. This feature</div><div class='add'>+	  can be improved a performance some situations.</div><div class='add'>+	  Note: This feature is mainly developed by Run Paint Run Run.</div><div class='add'>+	  Thank you! [ruby-core:33110] [Ruby 1.9-Feature#4038]</div><div class='add'>+</div><div class='add'>+	* io.c (do_io_advise): Helper function.</div><div class='add'>+	* io.c (io_advise_sym_to_const): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 23:29:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (bin-comm): use transformed name.</div><div class='add'>+	  [ruby-dev:42777]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 21:52:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 21:46:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb (RbConfig): honor ARCHFLAGS and RC_ARCHS to</div><div class='add'>+	  override embedded ARCH_FLAG value on universal-darwin.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 19:50:12 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{configure.bat,setup.mak,Makefile.sub} (PROGRAM_PREFIX,</div><div class='add'>+	  PROGRAM_SUFFIX): unite the differences of the names of macros of</div><div class='add'>+	  prefix and suffix.</div><div class='add'>+	  reported by HANEDA Norikatsu. [ruby-dev:42775]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 08:04:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (RNode): match the type of flags to RBasic, and renamed</div><div class='add'>+	  nd_file as nd_reserved.</div><div class='add'>+</div><div class='add'>+	* iseq.c (set_relation), vm_insnhelper.c (vm_cref_push): nd_file</div><div class='add'>+	  is always zero-cleared.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 07:22:30 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb: Imported minitest 2.0.1 r6079.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 20:45:02 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (process_args): need to setup @help to print options.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 11:19:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb (test_to_io): forgotten to fix with r30201.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 11:07:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (simple_sendfile): enable on Mac OS X.</div><div class='add'>+</div><div class='add'>+	* io.c (nogvl_copy_stream_sendfile): moved precheck of copy length.</div><div class='add'>+</div><div class='add'>+	* io.c (nogvl_copy_stream_sendfile): should wait for both of</div><div class='add'>+	  read/write fds.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 07:11:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 04:02:00 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):</div><div class='add'>+	  fix compile error when !HAVE_X509V3_SET_NCONF. Thanks</div><div class='add'>+	  Chikanaga-san. [ruby-dev:42761] [Ruby 1.9-Bug#4158]</div><div class='add'>+</div><div class='add'>+Wed Dec 15 03:41:31 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_parser_events.rb (TestRipper#test_block_variables):</div><div class='add'>+	  Limit address space 100MB instead 100KB. Quite frankly, This</div><div class='add'>+	  margin is too narrow to contain ruby. [ruby-dev:42763] [Bug#4159]</div><div class='add'>+</div><div class='add'>+Tue Dec 14 23:53:52 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (simple_sendfile): improve linux compatibility on FreeBSD,</div><div class='add'>+	  and now it works. But without cpuset -l 0, it still gets stuck.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 20:31:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 18:31:48 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: help messages.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 18:19:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (help): there is no reason to use the abbreviation for here.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 15:03:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_reopen, test_reinitialize): should close</div><div class='add'>+	  the temporary files.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 14:24:15 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (make_tempfile): change the prefix from 'foo'</div><div class='add'>+	  to 'test_io' because the old one is meaningless and inconvenient.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_binmode_after_closed): the temporary file</div><div class='add'>+	  made by make_temfile is already closed.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 13:52:19 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_flush_in_finalizer[12]): should close</div><div class='add'>+	  temporary file because it's only used for taking pathname and</div><div class='add'>+	  unlinking the file after the end of the test (in GC phase).</div><div class='add'>+</div><div class='add'>+Tue Dec 14 13:34:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_s_open): should close the IO if some error</div><div class='add'>+	  occurs in initializing.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 13:04:16 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPRequest#send_request_body_data):</div><div class='add'>+	  set binmode to tempfile.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 12:55:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb (*): should close files associated with zlib.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 11:30:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb (test_inplace_rename_impossible): unlink</div><div class='add'>+	  the renamed temporary file on no_safe_rename platforms.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb (test_readlines_limit_0,</div><div class='add'>+	  test_each_line_limit_0): should close argf because the associated</div><div class='add'>+	  Tempfile object cannot unlink the temporary file when it's gc'ed</div><div class='add'>+	  on some platforms (Windows, etc.)</div><div class='add'>+</div><div class='add'>+Tue Dec 14 11:27:07 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb (Minitest::Unit#_run_suite): split test</div><div class='add'>+	  name and its time. Thiw allows to know test's name when you are</div><div class='add'>+	  running tests and meet a test which spends long time at realtime.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 11:25:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add -Werror=declaration-after-statement to default</div><div class='add'>+	  warning flag. If you are using GCC, this flag is useful to</div><div class='add'>+	  prevent breaking VC build.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 10:25:57 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_decode0): how many gcc-c99isms</div><div class='add'>+	  must a man mend; before he can build with VC? r30178</div><div class='add'>+</div><div class='add'>+Mon Dec 13 21:26:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (simple_sendfile): disable the use of sendfile(2) on</div><div class='add'>+	  FreeBSD. It blocks on TestIO#test_copy_stream_socket.</div><div class='add'>+</div><div class='add'>+Mon Dec 13 18:35:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: define USE_SENDFILE on FreeBSD or DragonFly BSD.</div><div class='add'>+	  Remove Mac OS X because its argument is different from them.</div><div class='add'>+</div><div class='add'>+Mon Dec 13 12:00:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Mon Dec 13 11:21:14 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (simple_sendfile): added for BSD version of sendfile(2).</div><div class='add'>+</div><div class='add'>+Mon Dec 13 09:50:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPRequest#set_form): Added to support</div><div class='add'>+	  both application/x-www-form-urlencoded and multipart/form-data.</div><div class='add'>+	  There is a similar API, Net::HTTPRequest#set_form_data, but</div><div class='add'>+	  to keep its compatibility this is newly added. [ruby-dev:42729]</div><div class='add'>+</div><div class='add'>+Sun Dec 12 23:45:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix for __goto__ and __label__</div><div class='add'>+	  where were totally broken.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 22:45:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ID_H_INCLUDES): now id.h depends on vm_opts.h.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 20:42:47 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl: suppress all warning: "SUPPORT_JOKE" is not</div><div class='add'>+	  defined.  [ruby-dev:42730]</div><div class='add'>+</div><div class='add'>+Sun Dec 12 20:35:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rb_optparse.zsh: update how to install.</div><div class='add'>+</div><div class='add'>+	* misc/rb_optparse.zsh: avoid error when setopt noclobber.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: fix typo. pointed out at</div><div class='add'>+	  &lt;http://d.hatena.ne.jp/nagachika/20101207&gt;.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 13:27:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 11:53:24 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 04:01:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): fix: extra back slash is added when</div><div class='add'>+	  the string is dummy encoding and includes \x22 or \x5C.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 02:42:24 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: indefinite length BER to DER encoding is</div><div class='add'>+	  properly supported.  Thanks Martin Bosslet! [ruby-core:33082]</div><div class='add'>+</div><div class='add'>+Sat Dec 11 17:43:34 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h: suppress "warning: 'VPrint' declared</div><div class='add'>+	  'static' but never defined".</div><div class='add'>+</div><div class='add'>+Sat Dec 11 09:24:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 08:12:48 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c, ext/openssl/ossl_pkey_rsa.c: Document RSA, RSA</div><div class='add'>+	  encryption/decryption and PKCS #5 encryption/decryption.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 06:23:41 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: include Comparable to provide #==.</div><div class='add'>+	  Document OpenSSL::X509::Name#&lt;=&gt;.  [Ruby 1.9-Feature#4116]</div><div class='add'>+</div><div class='add'>+Sat Dec 11 05:48:28 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: infinite loop on method_missing at loading.</div><div class='add'>+	  [ruby-dev:42716] [Ruby 1.9-Bug#4129]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: when no eventloop is running, ruby freezes at</div><div class='add'>+	  exit.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 02:23:15 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: try pkgconfig first, then fall back to</div><div class='add'>+	  normal have_library, etc.  Thanks Erik Hollensbe. [ruby-core:32406]</div><div class='add'>+</div><div class='add'>+Fri Dec 10 22:33:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln_find.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 20:05:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl (ruby_method_ids): suppress warnings.</div><div class='add'>+	  [ruby-dev:42730]</div><div class='add'>+</div><div class='add'>+Fri Dec 10 18:29:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): relatively called non-shared</div><div class='add'>+	  binary cannot be found in PATH, so use given pathname.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 18:28:40 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (SCRIPTPROGRAMS): ignore backup files and etc.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (scriptbin): set executable bit.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install_recursive): always skip default ignored</div><div class='add'>+	  files.  if block is given, call it instead of calling install.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (bin-comm): use install_recursive.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 18:12:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#config_value): extract macro value from</div><div class='add'>+	  config.h.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/test_sizeof.rb (TestMkmf::TestSizeof#test_sizeof_builtin),</div><div class='add'>+	  (TestMkmf::TestSizeof#test_sizeof_struct): more tests.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_signedness): should use the prelude code.</div><div class='add'>+	  [ruby-dev:42731]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.log_close): separate from Logging.logfile.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf::MKMFLOG): show mkmf.log at failures.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#teardown): close log file for each tests.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 11:36:43 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (enum): remove a comma at end of enumerator list.</div><div class='add'>+</div><div class='add'>+	* constant.h (rb_const_flag_t): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.h (enum catch_type): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.h (enum defined_type): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (enum iseq_type): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (enum vm_special_object_type): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 10:47:53 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (_HAVE_SANE_QUAD_): Don't forget LP64, r30156.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 10:37:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (_HAVE_SANE_QUAD_): if a certain platform has LONG_LONG in</div><div class='add'>+	  8 byte, it might be sane quad. [ruby-core:33634]</div><div class='add'>+</div><div class='add'>+Fri Dec 10 10:07:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: remove version 1.1 features.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 02:18:02 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509stctx_cleanup): removing C</div><div class='add'>+	  implementation of `cleanup`.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb: adding ruby implementation of</div><div class='add'>+	  `cleanup`.  OpenSSL::X509::StoreContext#cleanup is deprecated since</div><div class='add'>+	  reusing the underlying struct doesn't make sense. [ruby-dev:42546]</div><div class='add'>+</div><div class='add'>+Thu Dec  9 20:14:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lvar_defined_gen, shadowing_lvar_gen, dvar_defined): no</div><div class='add'>+	  warnings for unused method and block arguments.</div><div class='add'>+	  [ruby-dev:42718] [ruby-dev:42724]</div><div class='add'>+</div><div class='add'>+Thu Dec  9 19:25:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 18:51:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb (WEBrick::AccessLog#format): support</div><div class='add'>+	  %{remote}p for logging remote (client) port number.</div><div class='add'>+	  [ruby-dev:42670]</div><div class='add'>+</div><div class='add'>+Thu Dec  9 11:00:30 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_dup): should copy contents only.  no instance</div><div class='add'>+	  variable, no class would be copied.  it would affect methods</div><div class='add'>+	  #sort, #reject, #transpose, #uniq, #compact, and #shuffle.</div><div class='add'>+	  [ruby-core:33640]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reverse_m): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_rotate_m): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 21:38:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/struct.rb: clean a warning: assigned but unused</div><div class='add'>+	  variable. patched by Kouhei Yanagita. [ruby-dev:42722]</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 21:36:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): fix line number.  [ruby-dev:42718]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 20:37:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 22:37:15 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): duplicate string if shared. [ruby-dev:42719]</div><div class='add'>+</div><div class='add'>+Tue Dec  7 22:31:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Officious): separate completion</div><div class='add'>+	  options from --help.  [ruby-dev:42690]</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion#candidate),</div><div class='add'>+	  (OptionParser::Switch#compsys): remove unused variables.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 22:05:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): call default handler of the given</div><div class='add'>+	  hash, method, proc or [] method as fallback.  [ruby-dev:42692]</div><div class='add'>+</div><div class='add'>+Tue Dec  7 21:59:37 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/light/node.rb: remove circular require.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 21:56:01 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_light.rb: really suppress a warning.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 21:51:57 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_light.rb: suppress a warning.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 21:14:03 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 21:06:38 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/doctype.rb, test/rexml/test_doctype.rb: suppress warnings.</div><div class='add'>+	  [ruby-core:33305]</div><div class='add'>+	  Reported by Aaron Patterson. Thanks!!!</div><div class='add'>+</div><div class='add'>+Tue Dec  7 18:56:52 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (String#kconv): fix typo and update rdoc.</div><div class='add'>+	  patched by Kouhei Yanagita [ruby-dev:42696]</div><div class='add'>+</div><div class='add'>+Tue Dec  7 20:32:11 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_doctype.rb: add Accessor to test case name.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 20:31:02 2010  Kouhei Sutou  &lt;kou@clear-code.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_doctype.rb: Doctype -&gt; DocType.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 20:29:23 2010  Kouhei Sutou  &lt;kou@clear-code.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_doctype_mixin.rb: rename to ...</div><div class='add'>+	* test/rexml/test_doctype.rb: ... this to remove needless name.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 17:03:16 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (xlist): supported the XLIST command, which is an</div><div class='add'>+	  extension by Apple and Google.  patch by Geoff Youngs.</div><div class='add'>+	  [ruby-core:33521]</div><div class='add'>+</div><div class='add'>+Tue Dec  7 08:00:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (WERRORFLAG): flag to treat</div><div class='add'>+	  warnings as errors.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): yield log file object.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem): add options, :werror only right now.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (with_werror): check as if warnings are errors.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (convertible_int): make declaration conflict</div><div class='add'>+	  warnings errors not to pass wrong type.  [ruby-dev:42684]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (COMMON_MACROS): get rid of conflicts.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (WARNFLAGS): make declaration conflict</div><div class='add'>+	  warnings errors if possible.</div><div class='add'>+</div><div class='add'>+Sun Dec  7 21:16:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 00:27:14 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): fixed more for readline,</div><div class='add'>+	  and so on. [ruby-core:33511]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 23:18:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#setup): run quietly.</div><div class='add'>+</div><div class='add'>+	* test/mkmf/test_find_executable.rb (test_find_executable): use</div><div class='add'>+	  configured results.</div><div class='add'>+</div><div class='add'>+	* common.mk (test-build): test for build process.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 22:47:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#candidate): skip separators.</div><div class='add'>+</div><div class='add'>+	* sample/optparse/opttest.rb: should not override --help.</div><div class='add'>+	  [ruby-dev:42690]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 19:00:48 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rb_optparse.zsh: fix typos.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 18:59:04 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add new encodings.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 18:56:42 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb (TestString#test_scan): add a test for</div><div class='add'>+	  [ruby-core:33338] #4087.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 18:55:36 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/uri/test_common.rb (TestCommon#test_encode_www_form): add</div><div class='add'>+	  tests for r30015.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 10:39:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#initialize_pattern):</div><div class='add'>+	  refix for restrict the pattern.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 09:45:11 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl (OpenSSL): add toplevel documentation</div><div class='add'>+	* ext/openssl/ossl_ssl.c (SSLContext, SSLSocket: add additional</div><div class='add'>+	  documentation</div><div class='add'>+	* ext/openssl: move "let rdoc know about mOSSL" comments so they don't</div><div class='add'>+	  show up in output</div><div class='add'>+</div><div class='add'>+Mon Dec  6 09:16:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#initialize_pattern):</div><div class='add'>+	  workaround fix pattern of hostname for RFC 3986. [ruby-dev:42672]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 09:14:38 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_signedness): rename unused variable prelude.</div><div class='add'>+</div><div class='add'>+Sun Dec  5 17:56:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (make_metaclass): fix probable typo.  builtin type flag</div><div class='add'>+	  cannot be used with FL_TEST.</div><div class='add'>+</div><div class='add'>+Sun Dec  5 12:09:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.parse_opts): fix typo. [ruby-core:33574]</div><div class='add'>+</div><div class='add'>+Sun Dec  5 11:27:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): decrement for ungotten line.</div><div class='add'>+	  [ruby-dev:42680]</div><div class='add'>+</div><div class='add'>+Sun Dec  5 10:32:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 11:39:17 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (initialize): add documentation.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 11:21:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update_by): new API for Hash#update.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 11:18:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 11:07:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_inc_const_missing_count): missing prototype.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 08:50:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Init_iconv): no warnings if $VERBOSE is nil.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 08:25:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): revert r30064 and r30071,</div><div class='add'>+	  because of [ruby-core:26761]. Bug#4106 rejected.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 07:46:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (String#tr_cpp): substitute * with P like as</div><div class='add'>+	  autoconf.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 22:36:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): protected methods should be</div><div class='add'>+	  checked against the real class.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 20:23:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (convertible_int): define printf format prefix too.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (convertible_int): detect convertible integer type.</div><div class='add'>+	  port RUBY_REPLACE_INT from configure.in.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): should return integer always.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 12:54:48 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (RCFLAGS): VC10 and after only. fixed the problem</div><div class='add'>+	  of r30015. [ruby-core:33530]</div><div class='add'>+</div><div class='add'>+Fri Dec  3 12:41:52 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_free): With our "lazy-sweep" GC engine, it is</div><div class='add'>+	  possible for an object to survive until its surrounding object</div><div class='add'>+	  space is about to be freed.  Those objects, if any, remains</div><div class='add'>+	  leaked for the rest of a process life.  This is problematic</div><div class='add'>+	  because for instance a T_DATA object may have its own destructor</div><div class='add'>+	  to terminate something.</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): ruby_current_vm termination should be</div><div class='add'>+	  somewhere after rb_objspace_free for above reason.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 12:17:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): protected singleton methods should</div><div class='add'>+	  be visible from same real class methods.  [ruby-core:33506]</div><div class='add'>+</div><div class='add'>+Fri Dec  3 07:08:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): round upto next char</div><div class='add'>+	  boundary.  [ruby-dev:42674]</div><div class='add'>+</div><div class='add'>+Fri Dec  3 06:52:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 04:08:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_alias_internal): use st_insert2 and change return</div><div class='add'>+	  value to int.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_alias): follow enc_alias_internal.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 01:52:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_alias_internal): use xfree instead of free.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 23:52:26 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: entry for ruby_vm_at_exit().</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): bug fix around at_exit (1) timing was</div><div class='add'>+	  wrong. (2) execution order was opposite.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 23:05:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (RCFLAGS): -nologo switch is only available in</div><div class='add'>+	  newer versions of rc.exe. fixed the problem of r30012.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 21:28:07 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/add/rails.rb: removed.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 21:22:05 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_alias_internal): free the copied key and</div><div class='add'>+	  return NULL when given key is already registered.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_alias): call set_encoding_const only when the</div><div class='add'>+	  alias is not registered yet.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 19:58:24 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_at_exit): new API.  This enables extension libs to</div><div class='add'>+	  hook a VM termination.  Right now, because the VM we have is</div><div class='add'>+	  process global, most extensions do not deallocate resources and</div><div class='add'>+	  leave them to Operating System's reaping userland processes.  But</div><div class='add'>+	  in a future we plan to have multiple VMs to run simultaneously in</div><div class='add'>+	  a single process (MVM project).  At that stage we can no longer</div><div class='add'>+	  rely on OSes and have to manage every resources to be reclaimed</div><div class='add'>+	  properly.  So it is.  For a forward-compatibility reason this API</div><div class='add'>+	  is introduced now, encouraging you to be as gentle as you can for</div><div class='add'>+	  your resources; that is, tidy up your room.</div><div class='add'>+</div><div class='add'>+	* include/ruby/vm.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_struct): new field.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_init2): initialize above new field.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): trigger those hooks.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 17:00:44 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 15:31:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): more fix. [ruby-core:33513]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 13:41:43 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): workaround for console reading troubles.</div><div class='add'>+	  fixed [ruby-core:33511]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 13:10:42 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form):</div><div class='add'>+	  split key-value when the value is Array like object.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:39:39 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#set_form_data):</div><div class='add'>+	  use URI.encode_www_form for application/x-www-form-urlencoded.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:38:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: remove $makeflags.defined?, it should be $mflags.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:19:47 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (rc): suppress meaningless message.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:09:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/generator/extconf.rb: remove the lines which set -O3</div><div class='add'>+	  when -O option is not set.</div><div class='add'>+	  Note that -O3 doesn't always exist.</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:01:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: define $makeflags.defined? like $mflags.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 07:20:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::GCStressOption): --gc-stress</div><div class='add'>+	  option.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Mini#_run_suites): show the result</div><div class='add'>+	  even when interrupted on the way.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 07:08:38 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (setattr): should retry on EINTR.</div><div class='add'>+	  [ruby-dev:42666]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 02:30:50 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: fixed positional wording to match revised order.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 01:24:39 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/common.rb: don't use iconv on 1.9.</div><div class='add'>+	  patched by Shota Fukumori [ruby-core:33164]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 01:02:03 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Update github/flori/json from 1.4.2+ to</div><div class='add'>+	  e22b2f2bdfe6a9b0. this fixes some bugs.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 00:05:44 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: improve rdoc.</div><div class='add'>+	  This change the order of chapter because such overview should</div><div class='add'>+	  begin with simple examples.</div><div class='add'>+	  patched by Eric Hodel [ruby-core:33469]</div><div class='add'>+</div><div class='add'>+Wed Dec  1 22:01:49 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): fixed a potential bug when using bccwin32</div><div class='add'>+	  ruby with Microsoft's dll, though we already gave up of supporting</div><div class='add'>+	  bccwin32. [ruby-core:33503]</div><div class='add'>+</div><div class='add'>+Wed Dec  1 21:43:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Wed Dec  1 21:41:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_addrinfo.rb: extract Errno::EADDRINUSE as a method.</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  1 15:08:32 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (test_not_started_session): non socket</div><div class='add'>+	  argument of SSLSocket.new is not supported on Windows.</div><div class='add'>+</div><div class='add'>+Wed Dec  1 14:36:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_memhash): zero-filled strings should return</div><div class='add'>+	  different values.  [ruby-core:33500]</div><div class='add'>+</div><div class='add'>+Wed Dec  1 14:27:49 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 2.0.0 r5952.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+	* lib/test/unit.rb: Compatibility fix for minitest changes.</div><div class='add'>+</div><div class='add'>+Wed Dec  1 10:16:41 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): fix typo (not 0xFD but 0xFE).</div><div class='add'>+</div><div class='add'>+Wed Dec  1 09:28:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: Follow .gnu_debuglink section.</div><div class='add'>+	  A user of distribution provided ruby will see line</div><div class='add'>+	  info if s/he has a debug package for ruby.</div><div class='add'>+	  patched by Shinichiro Hamaji [ruby-dev:42655]</div><div class='add'>+</div><div class='add'>+Wed Dec  1 01:29:15 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): inspect as a dummy encoding string</div><div class='add'>+	  when a UTF-16/32 (not BE/LE) string does not have a BOM.</div><div class='add'>+	  Unicode and some RFCs say that a string labeled as UTF-16/32</div><div class='add'>+	  doesn't have a BOM, it should be considered big endian.</div><div class='add'>+	  But many Windows programs generates little endian UTF-16</div><div class='add'>+	  strings without a BOM. So String#inspect treats a string</div><div class='add'>+	  labeled UTF-16/32 without a BOM as a dummy encoding string.</div><div class='add'>+	  patched by Martin Duerst. [ruby-core:33461]</div><div class='add'>+</div><div class='add'>+Tue Nov 30 17:04:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c (parse_debug_line_cu): ignore DW_LNE_set_discriminator.</div><div class='add'>+	  To ignore, it needs to read a single unsigned LEB128 integer.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 16:29:19 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: undef HAVE_BACKTRACE when the OS is FreeBSD (in other</div><div class='add'>+	  words backtrace() is libexecinfo) and it is optimized.</div><div class='add'>+	  This temporary hack may be also applied to other libexecinfo</div><div class='add'>+	  environments.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 16:23:23 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: improve rdoc.</div><div class='add'>+	  patched by Eric Hodel ref #4100</div><div class='add'>+</div><div class='add'>+Tue Nov 30 12:23:52 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): read only 1 byte at once on console.</div><div class='add'>+	  workaround of Windows bug. see [ruby-core:33460].</div><div class='add'>+	  this is not the final solution.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 11:39:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: improve rdoc.</div><div class='add'>+	  patched by mathew murphy [ruby-core:33472] ref #4100</div><div class='add'>+</div><div class='add'>+Tue Nov 30 05:03:44 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (encode_www_form, encode_www_form_component):</div><div class='add'>+	  Improve English in documentation.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ssl_version=, ciphers=): Document</div><div class='add'>+	  #ssl_version=, add documentation for #ciphers=.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 22:55:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion</div><div class='add'>+	  by nested repeat operators.  [ruby-core:33464]</div><div class='add'>+</div><div class='add'>+Mon Nov 29 22:53:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (scriptbin.mk): fix generated rules.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write_console): fix argument type.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 21:12:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-forward-sexp): stop after literal hash</div><div class='add'>+	  key labels.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): highlight literal</div><div class='add'>+	  hash key labels as symbols.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 18:31:31 2010  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_unicode_public_review_issue_121):</div><div class='add'>+	  - Removed commented-out options that are no longer under discussion.</div><div class='add'>+	  - Added two more tests for forthcomming clarifications.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 14:31:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_isatty): use GetConsoleMode() to determine the</div><div class='add'>+	  fd is console or not, just like rb_w32_write_console(). [experimental]</div><div class='add'>+</div><div class='add'>+Mon Nov 29 14:19:40 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (rb_w32_write_console): wrong prototype.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 14:10:55 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write_console): fixed indentation.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 22:13:39 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (NATIVE_MUTEX_LOCK_DEBUG): move and use it.</div><div class='add'>+</div><div class='add'>+	* ChangeLog: fix my timezone.</div><div class='add'>+</div><div class='add'>+Mon Nov 28 21:58:58 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: remove pthread_atfork().</div><div class='add'>+</div><div class='add'>+Mon Nov 28 21:54:22 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_*): Check return code.</div><div class='add'>+	  (Some OSes except Linux return error code).</div><div class='add'>+</div><div class='add'>+Sun Nov 28 21:46:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_start_func_1): initialize native thread</div><div class='add'>+	  data immediately before starting.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 14:56:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (struct argf): make lineno long, and reorder members.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 14:55:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (gvl_release, gvl_init): suppress warnings.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 14:48:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_release, gvl_init): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_gvl_destroy): add prototype.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 14:46:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_reinit): register atfork handler only in</div><div class='add'>+	  the parent process, to get rid of dead lock.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 12:23:57 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, vm_core.h: make gvl_acquire/release/init/destruct</div><div class='add'>+	  APIs to modularize GVL implementation.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c, thread_pthread.h: Two GVL implementations.</div><div class='add'>+	  (1) Simple locking GVL which is same as existing GVL.</div><div class='add'>+	  (2) Wake-up queued threads.  The wake-up order is simple FIFO.</div><div class='add'>+	     (We can make several queues to support exact priorities, however</div><div class='add'>+	      this causes some issues such as priority inversion and so on.)</div><div class='add'>+	      This impl. prevents spin-loop (*1) caused on SMP environments.</div><div class='add'>+	  *1: Only one Ruby thread acquires GVL again and again.</div><div class='add'>+	      Bug #2359 [ruby-core:26694]</div><div class='add'>+</div><div class='add'>+	* thread_win32.c, thread_win32.h: Using simple lock</div><div class='add'>+	  not by CRITICAL_SECTION but by Mutex.</div><div class='add'>+	  Bug #3890 [ruby-dev:42315]</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): ditto.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 04:40:00 2010  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): use rb_w32_write_console under Windows.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write_console): added to write to write</div><div class='add'>+	  Unicode using WriteConsoleW for stdout/stderr. [ruby-core:33166]</div><div class='add'>+</div><div class='add'>+Sun Nov 28 03:58:47 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: improve rdoc.</div><div class='add'>+	  patched by Mike Perham [ruby-core:33433]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 19:12:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: parenthesize macro arguments.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 18:08:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (leap_year_v_p): fixed typo.  [ruby-dev:42631]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 17:57:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* resolv.rb (Resolv::DNS): use the same DNS server when retry using</div><div class='add'>+	  TCP.  reported by Julian Mehnle.  [ruby-core:32970]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 15:45:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): see CrashReport log on Mac OS X.</div><div class='add'>+</div><div class='add'>+	* configure.in: link addr2line only for ELF.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 13:58:55 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#candidate): : was missing.  Thanks,</div><div class='add'>+	  Shota Fukumori.  [ruby-dev:42634]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 12:07:05 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* man/ruby.1: Ruby man page from Arthur Gunn in [ruby-core:33412]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 11:29:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#candidate): get rid of 1.9 syntax</div><div class='add'>+	  so that BASERUBY can be 1.8.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 08:16:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c (rb_dump_backtrace_with_lines): should close fd on</div><div class='add'>+	  edge case.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 13:33:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: apply a patch from shinichiro.h.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 12:21:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.c: added to show source filename and line number of</div><div class='add'>+	  functions in backtrace. [ruby-dev:42625]</div><div class='add'>+	  a patch from shinichiro.h &lt;shinichiro.hamaji AT gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* addr2line.h: ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk: add addr2line.$(OBJEXT).</div><div class='add'>+</div><div class='add'>+	* configure.in: check dl_iterate_phdr.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): use rb_dump_backtrace_with_lines in</div><div class='add'>+	  addr2line.c when the binary is ELF.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 12:12:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (setup_tree): restart setup_tree() for a node whose</div><div class='add'>+	  AnchorNode's type is ANCHOR_PREC_BEHIND or ANCHOR_PREC_BEHIND_NOT</div><div class='add'>+	  and divide_look_behind_alternatives() divided it to NT_ALT or</div><div class='add'>+	  NT_LIST. [ruby-core:33370]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 11:40:11 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): get only required rights of the target</div><div class='add'>+	  thread because THREAD_ALL_ACCESS causes an access error on XP.</div><div class='add'>+	  reported by Masaya TARUI via IRC.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 11:09:07 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): show the displacement from the beginning</div><div class='add'>+	  of the symbol.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 10:48:23 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): follow the output of glibc.</div><div class='add'>+	  see [ruby-dev:42627]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 09:48:45 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_str): should succeed the taint status from</div><div class='add'>+	  the origin. [ruby-core:33338]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 09:32:37 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): seems to be necessary the 3rd argument of</div><div class='add'>+	  SymGetLineFromAddr64(), even though MSDN says it can be zero.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 09:03:38 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_is_prelude): added to check whether ruby is still</div><div class='add'>+	  in prelude (or other boot processes) or not.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (optimize_node_left): use onig_is_prelude for printing.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (set_optimize_info_from_tree): ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_compile): ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_compiled_byte_code_list): print its address.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_indent_tree): print its contents tree of</div><div class='add'>+	    ANCHOR_PREC_READ(_NOT) and ANCHOR_PREC_BEHIND(_NOT).</div><div class='add'>+</div><div class='add'>+Thu Nov 25 23:10:49 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_distance_range): use PRIuSIZE.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_optimize_info): use %ld because the type of</div><div class='add'>+	  calculated value of integers is long.</div><div class='add'>+</div><div class='add'>+	* regexec.c (onig_print_compiled_byte_code): add prototype.</div><div class='add'>+</div><div class='add'>+	* regexec.c (match_at): add 2nd argument.</div><div class='add'>+</div><div class='add'>+Thu Nov 25 10:29:55 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/mkcallback.rb (gencallback): shouldn't assume that</div><div class='add'>+	  VALUE is the same size with long.</div><div class='add'>+</div><div class='add'>+Thu Nov 25 10:03:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb (teardown): remove tmp file</div><div class='add'>+	  only when it exists.</div><div class='add'>+</div><div class='add'>+Thu Nov 25 01:38:25 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/big5-hkscs-tbl.rb: Update table as HKSCS-2008.</div><div class='add'>+	  patched by oCameLo oTnTh [ruby-core:33256]</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: add alias Big5-HKSCS:2008 to Big5-HKSCS.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 15:18:07 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf (BSD_vfprintf): use QUADINT macro only when _HAVE_SANE_QUAD_</div><div class='add'>+	  macro is defined.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 12:47:16 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf (BSD_vfprintf): added VC++ compatible size specifications</div><div class='add'>+	  (I, I32, I64).</div><div class='add'>+</div><div class='add'>+Wed Nov 24 11:19:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): treat UTF-16 and UTF-32 as BE or LE.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 06:35:32 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: add the UTF-32 converter.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 05:40:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+Wed Nov 24 06:13:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (filecp, wstr_to_mbstr, mbstr_to_wstr):</div><div class='add'>+	  refactored.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 05:40:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: add a converter from UTF-8 to UTF-16.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 03:21:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: raise error on unpaired upper</div><div class='add'>+	  surrogates.</div><div class='add'>+</div><div class='add'>+Wed Nov 24 01:40:23 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_16_32.h: add UTF-16 and UTF-32 as a dummy encoding.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: add a converter from UTF-16 to UTF-8.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 21:59:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wlink, rb_w32_getppid): use typedef instead of</div><div class='add'>+	  repeating complicated function prototypes.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 18:54:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): should mark self in control</div><div class='add'>+	  frames.  [ruby-core:33289]</div><div class='add'>+</div><div class='add'>+Tue Nov 23 07:57:31 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/delta/parser.{ry,rb}: fixed a bug of token scanner.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 07:29:24 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c ({nucomp,nurat}_expt): added a check.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 07:27:27 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (daynum): should be private.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 07:22:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog (change-log-indent-text): hanging indent.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 06:30:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (SITE_DIR, VENDOR_DIR),</div><div class='add'>+	  version.c (ruby_initial_load_paths): exclude directories that</div><div class='add'>+	  are configured without them from $LOAD_PATH. [ruby-core:33267]</div><div class='add'>+</div><div class='add'>+	* configure.in (rubylibprefix): No ruby, No libprefix.</div><div class='add'>+</div><div class='add'>+Tue Nov 23 01:05:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): don't output floating point</div><div class='add'>+	  when the precision is 0. [ruby-dev:42615]</div><div class='add'>+</div><div class='add'>+Mon Nov 22 21:30:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): fix for ascii-compatible external</div><div class='add'>+	  encoding and different encoding string.  [ruby-core:33283]</div><div class='add'>+</div><div class='add'>+Mon Nov 22 18:45:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): should not duplicate rules.</div><div class='add'>+	  bug fix of r29842.</div><div class='add'>+</div><div class='add'>+Mon Nov 22 18:04:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: split CP950 from Big5.</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: split CP951 from Big5-HKSCS.</div><div class='add'>+</div><div class='add'>+	* enc/trans/big5.trans: import conversion table of Big5, Big5-HKSCS,</div><div class='add'>+	  CP950, and CP951 from ICU. they need fallback conversions.</div><div class='add'>+	  ref [ruby-core:33256]</div><div class='add'>+	  http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (import_ucm): add to import ucm files.</div><div class='add'>+</div><div class='add'>+Mon Nov 22 18:33:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): append for each chars instead of bulk</div><div class='add'>+	  copy if encoding conversion is needed.  [ruby-core:33283]</div><div class='add'>+</div><div class='add'>+Mon Nov 22 14:22:45 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_zone): use rb_locale_str_new_cstr to set encoding</div><div class='add'>+	  as locale and convert its content to internal encoding.</div><div class='add'>+	  [ruby-core:33278]</div><div class='add'>+</div><div class='add'>+Mon Nov 22 11:58:11 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): set ENC_CODERANGE_VALID when the</div><div class='add'>+	  receiver is 7BIT and the argument is non ASCII.</div><div class='add'>+</div><div class='add'>+Mon Nov 22 01:48:58 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: some improvements for performance.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 07:45:50 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: adding compilation support for ObjC/ObjC++ extensions.</div><div class='add'>+	  Thanks Scott Gonyea! [ruby-core:33260]</div><div class='add'>+</div><div class='add'>+Sat Nov 20 01:57:55 2010  Akio Tajima  &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add dependency(insns.inc) to compile.obj</div><div class='add'>+</div><div class='add'>+Fri Nov 19 23:05:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (insns_rules.mk): remove extra backslash.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in, win32/Makefile.sub (clean): rc files are</div><div class='add'>+	  made at compile time, so should be removed by clean.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 22:09:46 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_core.rb</div><div class='add'>+	  (Tester#test_pretty_format_long_text_finite): skip a test that</div><div class='add'>+	  uses long string on small memory system. [ruby-dev:42599]</div><div class='add'>+</div><div class='add'>+Fri Nov 19 21:07:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: shell completion support for zsh.  based on</div><div class='add'>+	  &lt;http://d.hatena.ne.jp/rubikitch/20071002/zshcomplete&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: shell completion support for bash.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 00:00:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (SCRIPTPROGRAMS): no needs on cygwin.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (scriptbin): create script binaries.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 23:21:23 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/formatters/pretty.rb (REXML::Formatters::Pretty#wrap):</div><div class='add'>+	  REXML::Formatters::Pretty#wrap used a recursive method call to</div><div class='add'>+	  format text.  This switches it to use an iterative approach.</div><div class='add'>+	  [ruby-core:33245]</div><div class='add'>+	  Patch by Jeremy Evans. Thanks!!!</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_core.rb: add a test for it.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 22:58:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_buffer_t): extract from rb_io_t.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 07:37:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (reconfig): force reconfigure with previous options.</div><div class='add'>+</div><div class='add'>+	* common.mk (showconfig): show configure flags, like as</div><div class='add'>+	  `config.status --config' generated by recent autoconf.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 07:16:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c (strncasecmp): get rid of redefinition.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 00:02:17 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Upgrading output encoding with ASCII content</div><div class='add'>+	  as needed.  [ruby-core:33229]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 23:19:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: remove quotes from arguments to be quoted.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): use forward slashes in messages.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): make extension libraries messages</div><div class='add'>+	  brief.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (MAKEDIRS): should not include silent flag.</div><div class='add'>+</div><div class='add'>+	* common.mk (ext/ripper/ripper.c, ext/json/parser/parser.c): pass</div><div class='add'>+	  Q and ECHO.  [ruby-core:33226]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 16:09:52 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_tracer.rb: new test case.</div><div class='add'>+	  minimal regression test for r29280.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 16:04:23 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (Test::Unit::Assersions#assert_warn):</div><div class='add'>+	  new assertion to assert that a particular warning message is</div><div class='add'>+	  displayed.</div><div class='add'>+	  forward port from branches/ruby_1_9_2@29795.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 15:16:48 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (OnigOpInfoType): constify name.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (op2name): constify return value.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_print_compiled_byte_code): use PRIuPTR and</div><div class='add'>+	  uintptr_t to clean warnings.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_indent_tree): use PRIxPTR and intptr_t.</div><div class='add'>+</div><div class='add'>+	* regexec.c (match_at): use PRIdPTR and intptr_t.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 09:49:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (property_name_to_ctype): fix memory leak.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (property_name_to_ctype): ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 08:54:04 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Upgrading output encoding as needed.  [ruby-core:33135]</div><div class='add'>+</div><div class='add'>+Tue Nov 16 22:30:39 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_throw): remove fear of undefined behavior :-)</div><div class='add'>+	  Coverity Scan found this bug.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 09:33:00 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (to_digits): avoid unused</div><div class='add'>+	  variables warning, reported by Aaron Patterson.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 06:39:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (PACK_ITEM_ADJUST): return nil not result array and yield</div><div class='add'>+	  values if block is given.  [ruby-core:33193]</div><div class='add'>+</div><div class='add'>+Tue Nov 16 00:21:20 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (and_cclass, or_cclass): fix memory leak.  Coverity Scan</div><div class='add'>+	  found this bug.  [ruby-dev:42579]</div><div class='add'>+</div><div class='add'>+Tue Nov 16 00:07:32 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (assign_heap_slot): fix fear of memory leak and memory</div><div class='add'>+	  violation.  Coverity Scan found this bug.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 23:54:45 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (CHECK_STACK_OVERFLOW): it was not intended to add</div><div class='add'>+	  size_t to a pointer typed VALUE*.  Coverity Scan found this defect.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 23:41:21 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_exception_local_table, iseq_set_local_table,</div><div class='add'>+	  rb_iseq_build_from_ary): fix type inconsistency (which is benign</div><div class='add'>+	  because sizeof(ID) == sizeof(ID*), though).  Coverity Scan found</div><div class='add'>+	  these bugs.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 22:47:27 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_funcall): ensure va_end after va_init_list.  Coverity</div><div class='add'>+	  Scan found this bug.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 08:36:12 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb (do_parse, yyparse): using class eval to define</div><div class='add'>+	  method and avoid __send__.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 06:43:48 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* etc/openssl/ossl_ssl.c (ossl_ssl_get_cert): raise exception if</div><div class='add'>+	  pointer is invalid.  Thanks Ippei Obayashi! [ruby-dev:42573]</div><div class='add'>+</div><div class='add'>+Sun Nov 14 17:57:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (distclean): should not remove sources which are</div><div class='add'>+	  distributed in tarball.</div><div class='add'>+</div><div class='add'>+Sun Nov 14 16:48:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_set_token_info): turn on/off with directives.</div><div class='add'>+	  [ruby-core:25442]</div><div class='add'>+</div><div class='add'>+Sun Nov 14 12:05:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_readlines): forward to current_file for arguments</div><div class='add'>+	  check.  http://twitter.com/nagachika/status/3634254856589312</div><div class='add'>+</div><div class='add'>+Sun Nov 14 08:48:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (-basic-vars-, -runtime-): suppress trailing</div><div class='add'>+	  space and compiler command line.</div><div class='add'>+</div><div class='add'>+Sun Nov 14 04:22:32 2010  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): Added HAVE_LABS and HAVE_LLABS to config.h.</div><div class='add'>+</div><div class='add'>+	* symbian/configure.bat: Changed packaging version in line with API</div><div class='add'>+	  style 3 versioning.</div><div class='add'>+</div><div class='add'>+Sat Nov 13 16:37:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (showflags, help): emit messages at once.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (MSG, EOM): remove surrounding quotes by %~I.</div><div class='add'>+</div><div class='add'>+Sat Nov 13 01:31:30 2010  Akio Tajima &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: reorder variable End Of Message (don't display it)</div><div class='add'>+</div><div class='add'>+Fri Nov 12 20:52:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (showflags, help): use caret to quote leading spaces on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, cygwin/GNUmakefile.in, enc/depend,</div><div class='add'>+	  ext/ripper/depend, lib/mkmf.rb, win32/Makefile.sub: caddle up.</div><div class='add'>+</div><div class='add'>+Fri Nov 12 16:35:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: support C level backtrace information on FreeBSD.</div><div class='add'>+	  When devel/libexecinfo is installed on FreeBSD, now ruby</div><div class='add'>+	  can show C level backtrace information.</div><div class='add'>+	  http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/libexecinfo/</div><div class='add'>+</div><div class='add'>+Fri Nov 12 09:58:30 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: use findstr.exe instead of find.exe, because all</div><div class='add'>+	  target build platforms should have findstr.exe, and, find.exe often</div><div class='add'>+	  means another command such as cygwin's.</div><div class='add'>+</div><div class='add'>+Fri Nov 12 00:30:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): need PRI_LL_PREFIX.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 23:38:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: ANSI C-conforming const and volatile are mandatory</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_C_CONST, AC_C_INLINE, AC_C_VOLATILE): check</div><div class='add'>+	  before used in other checks.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_PRINTF_PREFIX): should not break from</div><div class='add'>+	  RUBY_WERROR_FLAG, so that ac_c_werror_flag gets restored.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 23:04:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (warn_deprecated): show caller position.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 23:03:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_close): untie tied io before closing.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_write): add ARGF.write and so on.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read_nonblock): add ARGF.read_nonblock.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 21:49:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/stats.rb (RDoc#print): get rid of NaN.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 21:47:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (SHOWFLAGS): show compile flags.</div><div class='add'>+</div><div class='add'>+	* common.mk: hide long command lines by default.  verbose-mode is</div><div class='add'>+	  turned on by V=1 as before.</div><div class='add'>+	  http://jarp.does.notwork.org/diary/200605b.html#200605121</div><div class='add'>+</div><div class='add'>+Thu Nov 11 21:32:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): accept variable address.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb: libuuid is needed on cygwin.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 21:24:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): use cygwin_conv_path on cygwin 1.7 or</div><div class='add'>+	  later.</div><div class='add'>+</div><div class='add'>+	* ruby.c (push_include_cygwin): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 20:49:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI_LL_PREFIX): format type specifier for</div><div class='add'>+	  LONG_LONG may vary on platforms.</div><div class='add'>+</div><div class='add'>+Thu Nov 11 20:45:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (SYMBOL_PREFIX): separate from EXPORT_PREFIX.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports#each_export): use SYMBOL_PREFIX.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 07:20:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (scriptbin): make executable file from</div><div class='add'>+	  scripts with stub.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): assume xflag for exe file as well</div><div class='add'>+	  as no-shebang file.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: install script programs.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports#initialize): alias ruby_sysinit for</div><div class='add'>+	  stub.</div><div class='add'>+</div><div class='add'>+	* win32/stub.c: stub for scripts.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Tue Nov  9 21:57:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname): allocate and build initialization</div><div class='add'>+	  funciton name at once.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 21:14:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_FUNC_GETPGRP, AC_FUNC_SETPGRP): no need when</div><div class='add'>+	  not used.</div><div class='add'>+</div><div class='add'>+	* configure.in (EXPORT_PREFIX): check generic prefix.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 13:24:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_minimum_property_name_to_ctype):</div><div class='add'>+	  \p{...} should be case insensitive. [ruby-core:33000]</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_property_list_add_property):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (init_property_list, property_name_to_ctype):</div><div class='add'>+	  to lowercase property names.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (init_property_list, property_name_to_ctype):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 13:29:36 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io): get rid of a warning of 64bit</div><div class='add'>+	  mingw.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 10:44:19 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): this code uses FPU's rounding system.</div><div class='add'>+	  But x86's FPU calculates double precision floating-point</div><div class='add'>+	  numbers in 80bit precision, so it fails to round the value.</div><div class='add'>+	  So ensure the value is assigned a variable. [ruby-dev:42551]</div><div class='add'>+	  see also [ruby-math:00802]</div><div class='add'>+	  http://www.shudo.net/java-grandprix99/strictfp/</div><div class='add'>+</div><div class='add'>+Tue Nov  9 07:30:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_syserr_new): new function to make SystemCallError</div><div class='add'>+	  instance without errno.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* error.c (rb_syserr_fail, rb_mod_syserr_fail): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 05:54:57 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/*.rb: Remove unused variable warnings.</div><div class='add'>+	  Patch by Run Paint [ruby-core:30991]</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/*, lib/rdoc/*.rb, lib/rake/*.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon Nov  8 18:26:03 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_hdtoa): fix type cast and bufsize.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 15:40:56 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): fix precision specifier doesn't</div><div class='add'>+	  work well on %f. [ruby-dev:42552]</div><div class='add'>+</div><div class='add'>+Mon Nov  8 14:41:40 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (get_wsa_extension_function): typos.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 13:41:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb,</div><div class='add'>+	  enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  Add Age property to regexp. [ruby-core:33019]</div><div class='add'>+	  patched by Ammar Ali, tested by Run Paint Run Run</div><div class='add'>+</div><div class='add'>+Mon Nov  8 12:16:39 2010  Ben Walton  &lt;bwalton@artsci.utoronto.ca&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: support -h for solaris linker when gcc not used</div><div class='add'>+</div><div class='add'>+Mon Nov  8 11:47:39 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (finish_overlapped_socket): refactoring.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 11:02:21 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (get_proc_address): refactoring.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (get_wsa_exetinsion_function): refactoring.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 09:45:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/gbk-tbl.rb: Add euro sign. [ruby-core:33094]</div><div class='add'>+	  CP936, which is de facto definition of GBK, has it.</div><div class='add'>+	  http://msdn.microsoft.com/en-us/goglobal/cc305153.aspx</div><div class='add'>+</div><div class='add'>+Mon Nov  8 07:26:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check only the first symbol to get rid of</div><div class='add'>+	  duplication.  [ruby-core:33084] #4031</div><div class='add'>+</div><div class='add'>+Sun Nov  7 10:13:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (NM): check on all platforms.  #4031</div><div class='add'>+</div><div class='add'>+Sun Nov  7 06:16:33 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ocsp.rb: adding test for r29699.  Thanks Elise</div><div class='add'>+	  Huard! [ruby-core:32460]</div><div class='add'>+</div><div class='add'>+Sat Nov  6 07:33:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_export_prefix): check for prefixed</div><div class='add'>+	  underscore of exported symbols</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (bin-comm): prepend prolog shell script if</div><div class='add'>+	  necessary.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_RELATIVE): use rpath token expansion.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 07:24:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in (arch, sitearch): reordered.</div><div class='add'>+</div><div class='add'>+	* configure.in: keep failed file.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 07:03:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork_err): save errinfo before fdopen.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 00:43:58 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspcid_initialize): an optional</div><div class='add'>+	  parameter may be used to specify the OpenSSL::OCSP::CertificateId on</div><div class='add'>+	  initialization.  Thanks Elise Huard! [ruby-core:32460]</div><div class='add'>+</div><div class='add'>+Fri Nov  5 12:23:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_{process,system}.rb (test_fallback_to_sh):</div><div class='add'>+	  meaningless and wrong tests where /bin/sh does not exist.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v): should spawn, not exec.</div><div class='add'>+</div><div class='add'>+Fri Nov  5 01:21:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v, proc_spawn_v): try to execute with sh if</div><div class='add'>+	  no shebang.  [ruby-core:32745] [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Fri Nov  5 00:39:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readlines, rb_io_each_line): limit must not be zero.</div><div class='add'>+	  a patch from Tomoyuki Chikanaga at [ruby-dev:42538].  #4024</div><div class='add'>+</div><div class='add'>+Fri Nov  5 00:14:15 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/extconf.rb: fixing ffi library location on windows.</div><div class='add'>+	  Thanks Usa! [ruby-core:32930]</div><div class='add'>+</div><div class='add'>+Thu Nov  4 20:04:44 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj): force garbage_collect() if GC.stress == true.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 19:48:22 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: missed to write a last ChangeLog.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_finalize_deferred): removed.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_finalize_deferred): Do not invoke a free_unused_heaps().</div><div class='add'>+</div><div class='add'>+Thu Nov  4 19:45:27 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): do not need argument obj.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 19:26:10 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (before_gc_sweep): fix commit miss.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 19:20:46 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (after_gc_sweep, before_gc_sweep):</div><div class='add'>+	  invoke rb_sweep_method_entry() as soon as possible.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 19:13:58 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (after_gc_sweep, slot_sweep): finalizers should be invoked</div><div class='add'>+	  as soon as possible.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 10:30:40 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-valgrind): Now this option is default on.</div><div class='add'>+	  You can still explicitly disable this feature by specifying</div><div class='add'>+	  --without-valgrind.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 02:06:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_t_alloc): raise an error when fiber is going to be</div><div class='add'>+	  initialized twice.  [ruby-dev:42524]</div><div class='add'>+</div><div class='add'>+Thu Nov  4 02:04:25 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_resume): raise an "double resume" error when root</div><div class='add'>+	  fiber is going to be resumed.  [ruby-dev:42523]</div><div class='add'>+</div><div class='add'>+Wed Nov  3 14:17:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct#delete_field): also undefine</div><div class='add'>+	  accessor methods.  [ruby-core:33010]</div><div class='add'>+</div><div class='add'>+Wed Nov  3 14:13:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): concatenation of valid</div><div class='add'>+	  encoding string and invalid encoding string should result</div><div class='add'>+	  invalid encoding.  [ruby-core:33027]</div><div class='add'>+</div><div class='add'>+Wed Nov  3 08:58:59 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c, vm.c, vm_core.h: remove USE_VALUE_CACHE option.</div><div class='add'>+</div><div class='add'>+Wed Nov  3 07:47:25 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#identify_string): parse multiple</div><div class='add'>+	  regex options.  a patch from Heesob Park in [ruby-core:32988].</div><div class='add'>+</div><div class='add'>+Wed Nov  3 07:33:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_clear_cache_by_class): just return if the class has</div><div class='add'>+	  no method.  reported by Eric Wong.  [ruby-core:32689]</div><div class='add'>+</div><div class='add'>+Tue Nov  2 22:50:25 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/visitor.rb (initialize): push accessor</div><div class='add'>+	  methods to subclass that actually uses them.</div><div class='add'>+</div><div class='add'>+Tue Nov  2 22:47:08 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/visitor.rb (accept): switch to</div><div class='add'>+	  a dispatch cache rather than case / when statement.</div><div class='add'>+</div><div class='add'>+Tue Nov  2 21:46:52 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: fix a typo.</div><div class='add'>+</div><div class='add'>+Tue Nov  2 20:10:32 2010  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_tasks.rb: clear env var which is used by the test.</div><div class='add'>+	  [ruby-dev:42508]</div><div class='add'>+</div><div class='add'>+Tue Nov  2 00:25:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: win64 is just same with win32 about socket.</div><div class='add'>+	  notice: but wince is not same.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 21:25:57 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* main.c: &lt;stdlib.h&gt; is needed, to introduce the getenv(3)</div><div class='add'>+	  prototype declaration.  Without it a C compiler shall infer</div><div class='add'>+	  the getenv type as "int getenv(...);", but this is totally</div><div class='add'>+	  wrong, especially when your machine's sizeof(int) and</div><div class='add'>+	  sizeof(char*) differs.  On such environment a return value</div><div class='add'>+	  of getenv(3), which is in fact a char*, might first casted</div><div class='add'>+	  into a int (loses data here), and then casted back to char*</div><div class='add'>+	  by automatic integral promotion to fit to the prototype of</div><div class='add'>+	  ruby_set_debug_option().</div><div class='add'>+</div><div class='add'>+Sun Oct 31 23:27:09 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (finalizer_table, objspace-&gt;final.table):</div><div class='add'>+	  Create finalizer_table at Init_heap().</div><div class='add'>+	  Remove all null checks of finalizer_table.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_tbl): skip if no table entries.</div><div class='add'>+</div><div class='add'>+	* gc.c (slot_swee): remove useless need_call_final check.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 22:32:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_free): finalizers should be called separately</div><div class='add'>+	  from freeing objspace.  [ruby-dev:42479]</div><div class='add'>+</div><div class='add'>+Sun Oct 31 22:24:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): free current VM and its objspace even</div><div class='add'>+	  when exiting by SystemExit.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 22:10:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (new_child_iseq): adjust argument types.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build, rb_iseq_new),</div><div class='add'>+	  (rb_iseq_new_with_bopt_and_opt, rb_iseq_new_with_opt),</div><div class='add'>+	  (rb_iseq_new_with_bopt): ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_exception_table): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* insns.def (putspecialobject, defined): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_load): ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 09:30:51 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: some refactoring.</div><div class='add'>+	  - move decl. of rb_compile_option_struct to iseq.h.</div><div class='add'>+	  - define enum iseq_type.</div><div class='add'>+	  - define enum vm_special_object_type.</div><div class='add'>+</div><div class='add'>+	* compile.c: some refactoring.</div><div class='add'>+	  - apply above changes.</div><div class='add'>+	  - (struct iseq_link_element): change value of type.</div><div class='add'>+	  - remove unused decl.</div><div class='add'>+	  - fix comment.</div><div class='add'>+	  - rename iseq_build_body and iseq_build_exception to</div><div class='add'>+	    iseq_build_from_ary_body and iseq_build_from_ary_exception.</div><div class='add'>+</div><div class='add'>+	* iseq.h: define enum catch_type and enum defined_type.</div><div class='add'>+</div><div class='add'>+	* insns.def: apply above changes.</div><div class='add'>+</div><div class='add'>+	* iseq.c: define ISEQ_MAJOR_VERSION and ISEQ_MINOR_VERSION.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 23:38:59 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb: untabify.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 21:06:37 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb: use Ruby native encoding mechanism.</div><div class='add'>+	  [ruby-dev:42464]</div><div class='add'>+	* lib/rexml/encodings/: remove.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb, lib/rexml/formatters/default.rb,</div><div class='add'>+	  lib/rexml/output.rb, lib/rexml/parseexception.rb,</div><div class='add'>+	  lib/rexml/parsers/baseparser.rb, lib/rexml/source.rb,</div><div class='add'>+	  lib/rexml/xmldecl.rb: use Ruby's native Encoding object.</div><div class='add'>+</div><div class='add'>+	* test/rexml/, test/rss/: follow the above encoding changes.</div><div class='add'>+</div><div class='add'>+	* NEWS: add REXML's incompatible change about encoding.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 17:23:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): get rid of overflow/underflow as possible.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 14:37:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby_pc): erase runtime-defined variables and</div><div class='add'>+	  check if generated pc file is valid.</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in (DEFFILE): need for mingw.</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in (LIBRUBY): fix the order.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 11:33:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (ruby_pc): ignore missing variables.</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in: add missing variables for mswin.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 10:24:35 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Make BasicObject.new accept no parameter.</div><div class='add'>+	  Revert of r26135 [ruby-core:27080], as per [ruby-core:32952].</div><div class='add'>+</div><div class='add'>+Sat Oct 30 09:40:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c: use constants in id.h.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 09:08:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (fiddle_closure): embed cif not reference</div><div class='add'>+	  so that the content surely get initialized.  [ruby-dev:42480]</div><div class='add'>+</div><div class='add'>+Sat Oct 30 07:01:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb: suppress warning.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 06:32:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb (TestPathname#test_grpowned?): the</div><div class='add'>+	  group of the created file is inherited from the parent</div><div class='add'>+	  directory on BSDs and MacOS X.  Linux also inherit the group if</div><div class='add'>+	  the setgid bit of the directory is set.  It causes the test fail.</div><div class='add'>+	  fixed by Shota Fukumori.  [ruby-dev:42458]</div><div class='add'>+</div><div class='add'>+Sat Oct 30 05:58:54 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: retry via TCP if UDP reply is truncated.</div><div class='add'>+	  fixed by Julian Mehnle.  [ruby-core:32407]</div><div class='add'>+</div><div class='add'>+Sat Oct 30 00:35:13 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_compile): fix optional argument.</div><div class='add'>+	  a patch from Yutaka HARA [ruby-core:32953] [Ruby 1.9-Bug#4001]</div><div class='add'>+</div><div class='add'>+Sat Oct 30 00:24:42 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (memsize_of): take care of</div><div class='add'>+	  T_CLASS/const_tbl.</div><div class='add'>+	  a patch from nagachika &lt;nagachika00@gmail.com&gt; [ruby-dev:42490]</div><div class='add'>+</div><div class='add'>+Fri Oct 29 23:32:36 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/profile_test_all.rb: added.</div><div class='add'>+	  You can use test-all profiler with the following command:</div><div class='add'>+	    RUBY_TEST_ALL_PROFILE=true make test-all</div><div class='add'>+	  This command generates ./test_all_profile and you can analyze</div><div class='add'>+	  which tests consume memories.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 10:02:03 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb,</div><div class='add'>+	  enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  Add 'Unknown' Script.</div><div class='add'>+	  patched by Run Paint Run Run. [ruby-core:32937] #3998</div><div class='add'>+</div><div class='add'>+Fri Oct 29 05:13:34 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (ObjectSpace.memsize_of_all): rename</div><div class='add'>+	  ObjectSpace.total_memsize_of_all_objects() to</div><div class='add'>+	  ObjectSpace.memsize_of_all([klass]).</div><div class='add'>+	  Accept Class object to filter the objects.</div><div class='add'>+</div><div class='add'>+	* test/objspace/test_objspace.rb: fix test for above change.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 03:04:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): fix expected length. [ruby-core:32935]</div><div class='add'>+</div><div class='add'>+Thu Oct 28 23:31:39 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (before_gc_sweep, run_final): fix decrement timing of final_num.</div><div class='add'>+</div><div class='add'>+Thu Oct 28 20:11:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb,</div><div class='add'>+	  enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  Update Oniguruma for Unicode 6.</div><div class='add'>+	  patched by Run Paint Run Run. [ruby-core:32923] #3989</div><div class='add'>+</div><div class='add'>+Thu Oct 28 20:06:25 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (ONIGENC_CTYPE_SPECIAL_MASK):</div><div class='add'>+	  change mask from 128 to 256. [ruby-core:32931]</div><div class='add'>+</div><div class='add'>+Thu Oct 28 12:06:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (read_request_line): extend max</div><div class='add'>+	  length to 2083. This is from Internet Explorer's max uri</div><div class='add'>+	  length. http://support.microsoft.com/kb/208427 [ruby-core:32924]</div><div class='add'>+</div><div class='add'>+Thu Oct 28 04:00:08 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GC.stat): added.  [ruby-dev:38607]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Thu Oct 28 03:13:06 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (memsize_of): fix rdoc.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (total_memsize_of_all_objects): added.</div><div class='add'>+</div><div class='add'>+	* test/objspace/test_objspace.rb:</div><div class='add'>+	  - add a test for ObjectSpace.total_memsize_of_all_objects.</div><div class='add'>+	  - add two tests for ObjectSpace.memsize_of (for nil and Fixnum).</div><div class='add'>+</div><div class='add'>+Wed Oct 27 23:55:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Init_iconv): warn deprecated use.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 18:50:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2long, rb_big2ulong): rb2ulong() returns VALUE, but</div><div class='add'>+	  its real range is ulong. So, if the size of VALUE is bigger than</div><div class='add'>+	  ulong, upper bits are always zero even if the actual value is</div><div class='add'>+	  negative.</div><div class='add'>+	  fixed #3490</div><div class='add'>+</div><div class='add'>+Wed Oct 27 18:27:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#pipe): should close write end of pipe</div><div class='add'>+	  before closing read end, to get rid of timing problem.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#pipe): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 18:14:27 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getppid): support Win64.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 15:07:19 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_error): should get error no only once, because</div><div class='add'>+	  the result of the second getting will indicate the error of the</div><div class='add'>+	  first FormatMessage() call.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 13:51:25 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#pipe): need to propagate exceptions</div><div class='add'>+	  in read/write thread. fix r29541.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#pipe): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 12:05:40 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (clone_const): need to return value. fix r29602.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 11:58:58 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2LONG_internal): add cast to get rid of a</div><div class='add'>+	  non GCC compiler warning. this is intentional type conversion.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 09:25:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: apply documentation patch by Run Paint Run Run.</div><div class='add'>+	  [ruby-core:32915]</div><div class='add'>+</div><div class='add'>+Wed Oct 27 02:12:10 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object), constant.h, variable.c</div><div class='add'>+	  (rb_mod_private_constant, rb_mod_public_constant,</div><div class='add'>+	  set_const_visibility, rb_const_get_0): add Module#public_constant</div><div class='add'>+	  and private_constant.  [ruby-dev:39685][ruby-core:32698]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 02:02:54 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, constant.h, gc.c, method.h, object.c, variable.c,</div><div class='add'>+	  vm_insnhelper.c: use struct rb_constant_entry_t as entry of</div><div class='add'>+	  RCLASS_CONST_TBL.  RCLASS_CONST_TBL has contained VALUE of constant</div><div class='add'>+	  directly.  Now instead rb_const_entry_t is contained in</div><div class='add'>+	  RCLASS_CONST_TBL,  rb_const_entry_t is managed by malloc, and</div><div class='add'>+	  have not only the value itself but also visibility flag.</div><div class='add'>+	  This is another preparation for private constant (see</div><div class='add'>+	  [ruby-dev:39685][ruby-core:32698]).</div><div class='add'>+</div><div class='add'>+Wed Oct 27 01:56:34 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, gc.c, object.c, variable.c, vm_insnhelper.c,</div><div class='add'>+	  include/ruby/ruby.h: separate RCLASS_CONST_TBL from RCLASS_IV_TBL.</div><div class='add'>+	  RCLASS_IV_TBL has contained not only instance variable table but</div><div class='add'>+	  also constant table.  Now the two table are separated to</div><div class='add'>+	  RCLASS_CONST_TBL and RCLASS_IV_TBL.  This is a preparation for</div><div class='add'>+	  private constant (see [ruby-dev:39685][ruby-core:32698]).</div><div class='add'>+</div><div class='add'>+Tue Oct 26 18:51:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb (extract_float): allow 2.e+2 style.</div><div class='add'>+	  [ruby-dev:42452] #3978</div><div class='add'>+</div><div class='add'>+Tue Oct 26 18:09:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (ASFLAGS): needs INCFLAGS.</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_dynamic_alloca): check if extra source for</div><div class='add'>+	  dynamic size alloca.</div><div class='add'>+</div><div class='add'>+	* missing/x86_64-chkstk.s (___chkstk): necessary for alloca of</div><div class='add'>+	  amd64-mingw32msvc-gcc on Ubuntu.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (ruby_alloca_chkstk): check stack overflow</div><div class='add'>+</div><div class='add'>+Tue Oct 26 18:04:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in (Libs): needs DLDFLAGS.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 12:47:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (pkgconfig-data): moved from Makefile.in.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: install pc file only if non-empty.</div><div class='add'>+	  [ruby-core:32901] #3983</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (ruby_pc): create pc file.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 09:13:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_gcc_atomic_builtins): check for atomic</div><div class='add'>+	  builtins, all are not available in Apple derivative gcc.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 00:29:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (pkgconfig-data): create pkg-config metadata file.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: install pkg-config metadata file.</div><div class='add'>+</div><div class='add'>+	* template/ruby.pc.in: template of pkg-config metadata file.</div><div class='add'>+</div><div class='add'>+Mon Oct 25 16:38:07 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c  (rb_atomic_t): GCC (of  at least  recent versions)</div><div class='add'>+	  has  ubiquitous  support  for  atomic operations.   On  that</div><div class='add'>+	  compiler a C program can  issue a memory barrier using these</div><div class='add'>+	  dedicated  instructions.  According to  the GCC  manual they</div><div class='add'>+	  cargo culted  this feature form  the Itanium ABI  so chances</div><div class='add'>+	  are that  other compilers  could also support  this feature.</div><div class='add'>+	  But so far GCC is the  only compiler that I know to have it.</div><div class='add'>+	  Also note that this works on non-Itanium machines.</div><div class='add'>+</div><div class='add'>+Mon Oct 25 06:21:35 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): prec digits fractal part should be</div><div class='add'>+	  appended to 0 if prec is given.  [ruby-dev:42453] #3979</div><div class='add'>+</div><div class='add'>+Mon Oct 25 02:57:21 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (run.gdb): Quit gdb on 'make gdb' when</div><div class='add'>+	  no signals are received.</div><div class='add'>+</div><div class='add'>+Mon Oct 25 00:25:23 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: some corrections of documentation.</div><div class='add'>+</div><div class='add'>+Sun Oct 24 17:14:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, gc.c, hash.c, object.c, string.c, struct.c,</div><div class='add'>+	  transcode.c, variable.c, vm.c, vm_insnhelper.c, vm_method.c:</div><div class='add'>+	  replace calls to rb_error_frozen() with rb_check_frozen().  a</div><div class='add'>+	  patch from Run Paint Run Run at [ruby-core:32014]</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_check_frozen): optimize.</div><div class='add'>+	  [ruby-core:32878]</div><div class='add'>+</div><div class='add'>+Sun Oct 24 15:16:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Mini#run): abort if interrupted.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Mini#run_test_suites): show the</div><div class='add'>+	  result even when interrupted on the way.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::Mini#run_test_suites): ensure</div><div class='add'>+	  output sync mode to be restored.</div><div class='add'>+</div><div class='add'>+Sun Oct 24 14:11:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_define_method): defined method is run with the default</div><div class='add'>+	  public visibility regardless the visibility context of definition.</div><div class='add'>+	  [ruby-core:30638]</div><div class='add'>+</div><div class='add'>+Sun Oct 24 12:08:54 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: make test/unit play nicely with the rake test</div><div class='add'>+	  loader. [ruby-core:32864]</div><div class='add'>+</div><div class='add'>+Sun Oct 24 00:25:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_segv_test): follow up the</div><div class='add'>+	  change at r29556.</div><div class='add'>+</div><div class='add'>+Sat Oct 23 14:39:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: $extmk should be true for test/runner.</div><div class='add'>+</div><div class='add'>+Sat Oct 23 10:55:37 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): fix to add bug outputs.</div><div class='add'>+	  - loaded script ($0)</div><div class='add'>+	  - loaded features ($")</div><div class='add'>+	  - process memory map on Linux (/proc/self/maps)</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vmdebug_stack_dump_raw): fix header message.</div><div class='add'>+</div><div class='add'>+Fri Oct 22 14:50:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  assertion message must not be nil.</div><div class='add'>+</div><div class='add'>+Fri Oct 22 13:59:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  treat nil case. Please run test-all before commit such change.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 23:58:14 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_lazy_sweep): Variable declarations should be at</div><div class='add'>+	  the head of block.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 23:56:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (objspace_each_objects, rb_objspace_each_objects): use</div><div class='add'>+	  struct.</div><div class='add'>+</div><div class='add'>+	* gc.c (objspace_each_objects): fix return with no value.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 23:47:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): remove useless intermediate variable.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 16:07:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): change rdoc.</div><div class='add'>+	  patched by Eito Katagiri [ruby-core:31805]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 15:55:21 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb</div><div class='add'>+	  (WEBrick::HTTPAuth::ProxyDigestAuth#check_uri): privated.</div><div class='add'>+	  [ruby-dev:42344]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 15:50:25 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): add correct rdoc.</div><div class='add'>+	  patched by Dave Thomas [ruby-core:32467]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 15:42:01 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (Net::Telnet#close): added.</div><div class='add'>+	  patched by Erik Hollensbe [ruby-dev:42260] #3830</div><div class='add'>+</div><div class='add'>+Thu Oct 21 13:08:00 2010  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_each_objects): don't lazy sweep in</div><div class='add'>+	  rb_objspace_each_objects. [Bug #3940] [ruby-dev:42369]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 00:05:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#pipe): get rid of deadlock on pipe.</div><div class='add'>+	  a patch from Tomoyuki Chikanaga at [ruby-dev:42435].  #3970</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#pipe): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 20 23:54:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: rdoc based on a patch by mathew meta AT</div><div class='add'>+	  pobox.com, at [ruby-core:32853].</div><div class='add'>+</div><div class='add'>+Wed Oct 20 10:47:21 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): reject 0x1.p+0. [ruby-dev:42432] #3966</div><div class='add'>+</div><div class='add'>+Wed Oct 20 10:00:57 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): print floating point on "%#a".</div><div class='add'>+	  [ruby-dev:42431] Bug#3965</div><div class='add'>+</div><div class='add'>+Tue Oct 19 19:30:11 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): clear ALT flag for %a.</div><div class='add'>+	  [ruby-core:32841] [ruby-core:32848]</div><div class='add'>+</div><div class='add'>+Tue Oct 19 12:19:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): fix over-count of field size.</div><div class='add'>+</div><div class='add'>+Tue Oct 19 03:08:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): use HEXPREFIX flag for prefix of %a.</div><div class='add'>+	  [ruby-core:32841]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 13:18:01 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_class_init): Define</div><div class='add'>+	  Digest::Class.new(). [Feature #3954]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 12:58:40 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): refine the document.  [ruby-dev:42397]</div><div class='add'>+	  (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 18 10:19:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (transport_request): @socket may be nil.</div><div class='add'>+	  patched by Egbert Eich [ruby-core:32829]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 09:57:28 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (BSD_vfprintf): wrong padding around prefix and</div><div class='add'>+	  floating point with %a. [ruby-dev:42403] Bug #3956</div><div class='add'>+</div><div class='add'>+Sun Oct 17 22:36:33 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/delta.rb: added an rdoc tag.</div><div class='add'>+</div><div class='add'>+Sun Oct 17 10:47:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_const): update rdoc.</div><div class='add'>+	  [ruby-core:31957]</div><div class='add'>+</div><div class='add'>+Sun Oct 17 10:40:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_{class,module}_id_under): register to be</div><div class='add'>+	  marked, which probably are defined and used internally.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 11:10:55 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_encoding2cp): set codepage 20936</div><div class='add'>+	  according to GB2312. [Bug #3937] [ruby-core:32758]</div><div class='add'>+</div><div class='add'>+Sat Oct 16 10:54:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CPP): already used in .c.i rule.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (DLLWRAP, WINDRES): add --driver-name and</div><div class='add'>+	  --preprocessor options explicitly.  [ruby-core:32776]</div><div class='add'>+</div><div class='add'>+Sat Oct 16 10:06:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (SEEDUPS, BADMESS): make settable using command</div><div class='add'>+	  line options.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (makroom): suppress unused result warning.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/extconf.rb: disable BADMESS, a library should not emit</div><div class='add'>+	  messages directly.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 08:39:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_strerror): get English message first, instead of</div><div class='add'>+	  system default. see [ruby-dev:42358].</div><div class='add'>+</div><div class='add'>+Sat Oct 16 00:08:00 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aref): skip calling "default" method</div><div class='add'>+	  if it is not needed, for speed-up.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 23:36:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (NUM2DEVT, DEVT2NUM, PRI_DEVT_PREFIX): fallback to</div><div class='add'>+	  unsigned int.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 22:54:46 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_hresult2msg): get English message first,</div><div class='add'>+	  instead of system default. [ruby-core:32765]</div><div class='add'>+</div><div class='add'>+Fri Oct 15 22:47:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (VALUE): prefer long over uintptr_t,</div><div class='add'>+	  FIX2LONG expects VALUE to be long at least.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FIX2LONG): parenthesize the argument.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 20:30:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (dev_t): use RUBY_REPLACE_TYPE.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): use PRI_DEVT_PREFIX.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 17:26:57 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): simplify comparison of explicit_endian</div><div class='add'>+	  as pointed by nobu.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 16:40:37 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): fix more than one modifiers appear in the</div><div class='add'>+	  format string. [ruby-core:32793]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 23:20:42 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_folderitem2_invokeverb.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 22:18:29 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, iseq.c, vm_insnhelper.c: rename variable name</div><div class='add'>+	  (ip -&gt; iseq).</div><div class='add'>+</div><div class='add'>+Thu Oct 14 20:41:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): support endian modifiers: &lt; and &gt;.</div><div class='add'>+	  [ruby-dev:42376] Feature #3491</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 20:50:51 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (reg_get_val): expand environment in</div><div class='add'>+	  the pathname. [Bug #3907]</div><div class='add'>+</div><div class='add'>+Thu Oct 14 07:35:07 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (DEVT2NUM): added. Size of dev_t is depend on the</div><div class='add'>+	  environment even if POSIX defines dev_t as unsigned integer.</div><div class='add'>+	  For example, OpenVMS, 64bit Solaris 9, and NetBSD 6 defines</div><div class='add'>+	  dev_t as 64bit unsigned integer.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_dev): use DEVT2NUM.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_dev_major): dev_t is not long. major(3)'s return</div><div class='add'>+	  value is int.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_dev_minor): dev_t is not long. minor(3)'s return</div><div class='add'>+	  value is int.</div><div class='add'>+</div><div class='add'>+	* configure.in: check size of dev_t.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 07:22:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and, rb_ary_or), class.c (rb_mod_init_copy),</div><div class='add'>+	  gc.c (undefine_final), time.c (time_mload): get rid of</div><div class='add'>+	  type-punning casts.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 04:16:41 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (ruby_float_step): fix Numeric#step with infinity unit</div><div class='add'>+	  doesn't works well. [ruby-core:32779]</div><div class='add'>+</div><div class='add'>+Wed Oct 13 23:16:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: get rid of lots of warnings.</div><div class='add'>+</div><div class='add'>+	* iseq.c (insn_operand_intern, rb_iseq_disasm): fix format specifiers.</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint): get rid of overflow on LLP64 platforms.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_case_dispatch): use st_data_t.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 22:32:34 2010  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb (CGI::unescape): bugfix to unescape the multibyte</div><div class='add'>+	  string. Thanks nobu and tDiary dev members. [Bug #3909]</div><div class='add'>+</div><div class='add'>+Wed Oct 13 21:13:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): raise error when the value is negative.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 19:24:08 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): This function type was wrong; correct to the prototype.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 14:58:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_to_uint): fix 32bit logic.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 12:53:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_to_uint): added to check the range of arguments.</div><div class='add'>+	  Mainly for negative value with NUM2UINT on 32bit environment.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): use rb_num_to_uint.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 12:10:02 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_error): get English message first, instead</div><div class='add'>+	  of system default. see [ruby-core:32765].</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+Wed Oct 13 11:04:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_set_debug_option): define always for binary</div><div class='add'>+	  compatibility with debug env enabled binary.</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_enable_coredump): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 10:52:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ruby_executable_node): missing prototype.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 05:23:04 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strchr.c: add strlen's prototype.</div><div class='add'>+</div><div class='add'>+	* missing/strstr.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 00:21:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (struct mktime_arg): constified.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do, mktime_r, rb_syck_mktime): fix</div><div class='add'>+	  function signatures.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 00:18:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (MurmurMagic): get rid of literal overflow.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_PRINTF_PREFIX): check for printf format</div><div class='add'>+	  specifier if possible.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 23:58:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open_osfhandle, rb_w32_wopen, rb_w32_pipe):</div><div class='add'>+	  use uintptr_t instead of long for win64.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (socketpair_internal): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (ftruncate): use HANDLE instead of long for win64.</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): fix cast.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2fix): result of rb_num2long is SIGNED_VALUE.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_body), error.c (set_syserr, get_syserr),</div><div class='add'>+	  (syserr_initialize), gc.c (define_final, rb_gc_copy_finalizer),</div><div class='add'>+	  (run_final), hash.c (rb_hash_aref, rb_hash_lookup2),</div><div class='add'>+	  (rb_hash_fetch_m, rb_hash_clear, rb_hash_aset, eql_i),</div><div class='add'>+	  iseq.c (iseq_load, iseq_data_to_ary), marshal.c (r_symlink),</div><div class='add'>+	  thread.c (rb_thread_local_aref),</div><div class='add'>+	  variable.c (generic_ivar_remove, ivar_get, rb_const_get_0),</div><div class='add'>+	  (rb_cvar_get), vm.c (rb_vm_check_redefinition_opt_method),</div><div class='add'>+	  vm_insnhelper.c (vm_get_ev_const), vm_method.c (remove_method),</div><div class='add'>+	  ext/iconv/iconv.c (map_charset): use st_data_t.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_body), insns.def (getglobal, setglobal),</div><div class='add'>+	  iseq.c (iseq_load, iseq_data_to_ary), util.c (valid_filename):</div><div class='add'>+	  use VALUE.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free, rb_objspace_call_finalizer): fix truncating</div><div class='add'>+	  cast.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_current_machine_context): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix truncating cast.</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_setcontext): missing variable definition.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 19:25:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_to_s): use OBJ_INFECT.</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_to_s): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_to_str): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 19:07:55 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): taint message if mesg is given</div><div class='add'>+	  and it is tainted.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 18:25:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): always see Bignum. On 32bit valid value</div><div class='add'>+	  may be a Bignum. On 64bit for errors. [ruby-dev:42366]</div><div class='add'>+</div><div class='add'>+Tue Oct 12 18:25:04 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): use unsigned int for GB18030.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 17:53:49 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric (check_uint): the mask must refer to VALUE.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 17:47:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric (check_uint): set MSB for negative value.</div><div class='add'>+</div><div class='add'>+	* numeric (rb_num2uint): return value's type of rb_num2ulong</div><div class='add'>+	  is VALUE.</div><div class='add'>+</div><div class='add'>+	* numeric (int_chr): variable i can't be negative.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 16:04:37 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_strerror): get English message first, instead</div><div class='add'>+	  of system default. see [ruby-dev:42358].</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+Tue Oct 12 15:52:35 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_strerror): unmap some range of errno for</div><div class='add'>+	  workaround of VC10's strerror() and sys_nerr problem.</div><div class='add'>+	  based on a patch from Akio Tajima, [ruby-dev:42355].</div><div class='add'>+</div><div class='add'>+Tue Oct 12 15:36:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): use unsigned int for GB18030.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 15:14:21 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_putc): support multibyte characters.</div><div class='add'>+	  [ruby-core:30697]</div><div class='add'>+</div><div class='add'>+Tue Oct 12 15:10:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_enc_uint_chr): split from int_chr.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): use rb_enc_uint_chr.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_uint_chr): added.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 14:04:41 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): a codepoint of Ruby M17N must be 32bit</div><div class='add'>+	  unsigned int; GB18030 uses MSB. Also note that OnigCodePoint</div><div class='add'>+	  is defined as unsigned int.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 12:20:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): foolish mistake.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 10:39:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_MINGW32): canonicalize only on mingw.</div><div class='add'>+</div><div class='add'>+Mon Oct 11 20:20:23 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP.get): specify ASCII-8BIT as the result</div><div class='add'>+	  encoding of Zlib::GzipReader.</div><div class='add'>+	  http://hibari.2ch.net/test/read.cgi/tech/1281473294/271</div><div class='add'>+</div><div class='add'>+Mon Oct 11 17:42:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): use mesg's encoding when locale</div><div class='add'>+	  encoding is US-ASCII. If locale encoding is not US-ASCII,</div><div class='add'>+	  assume err has non ASCII characters. [ruby-dev:42358]</div><div class='add'>+</div><div class='add'>+Mon Oct 11 14:03:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): set the encoding of Errno::*#message</div><div class='add'>+	  as locale. [ruby-dev:42358]</div><div class='add'>+</div><div class='add'>+Mon Oct 11 06:38:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_set_encoding):</div><div class='add'>+	  StringIO#set_encoding can get 2nd argument and optional hash</div><div class='add'>+	  for API compatibility to IO. [ruby-dev:42356]</div><div class='add'>+</div><div class='add'>+Mon Oct 11 06:11:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_set_encoding): use rb_funcall2 when the io is not</div><div class='add'>+	  a T_FILE. [ruby-dev:42356]</div><div class='add'>+</div><div class='add'>+Sun Oct 10 18:42:23 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#replace): Apply a bit of optimization.</div><div class='add'>+</div><div class='add'>+Sun Oct 10 10:20:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_MINGW32): canonicalize as like mswin version.</div><div class='add'>+</div><div class='add'>+Sun Oct 10 05:33:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_signal_buff_size, rb_signal_exec): moved</div><div class='add'>+	  declarations from thread.c.</div><div class='add'>+</div><div class='add'>+Sat Oct  9 16:54:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RSHIFT): quote to get rid of argument expansion</div><div class='add'>+	  for autoconf 2.68.</div><div class='add'>+</div><div class='add'>+Sat Oct  9 11:00:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_reset_event_flags, exec_event_hooks): ignore</div><div class='add'>+	  hooks marked as removed.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_exec_event_hooks): remove hooks to be removed.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_remove_event_hook, rb_remove_event_hook):</div><div class='add'>+	  defer removing hooks if running the hooks.  [ruby-dev:42350]</div><div class='add'>+</div><div class='add'>+Sat Oct  9 10:51:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_exec_event_hooks): suppress each event</div><div class='add'>+	  hooks separately.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_suppress_tracing): split from</div><div class='add'>+	  ruby_suppress_tracing, accepting thread pointer and event mask.</div><div class='add'>+</div><div class='add'>+Sat Oct  9 08:16:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_remove_event_hook): fix typo.</div><div class='add'>+</div><div class='add'>+Fri Oct  8 10:52:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RBCONFIG): depends on version.h due to</div><div class='add'>+	  RUBY_PATCHLEVEL.  [ruby-core:32709]</div><div class='add'>+</div><div class='add'>+Fri Oct  8 00:24:54 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Fixing documentation typos.  [ruby-core:32712]</div><div class='add'>+</div><div class='add'>+Thu Oct  7 09:14:28 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.c (vm_exec_core):  Treat clang as non gcc on this</div><div class='add'>+	  context: It has __asm__ but doesn't works well.</div><div class='add'>+</div><div class='add'>+Wed Oct  6 12:28:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#hostname): new method.</div><div class='add'>+	  (URI::Generic#hostname=): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: use URI#hostname</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+	  reported by Adam Majer.  [ruby-core:32056]</div><div class='add'>+</div><div class='add'>+Wed Oct  6 11:52:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): write_mutex might have been destroyed</div><div class='add'>+	  already in finalization phase, as the order of finalizers is not</div><div class='add'>+	  guaranteed.  rb_mutex_t should be used in place of Mutex object</div><div class='add'>+	  in the future.</div><div class='add'>+</div><div class='add'>+Tue Oct  5 22:17:02 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: revert r29320 and r29402.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 12:43:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (regexp): dregexp has literal string only at the head</div><div class='add'>+	  and successors are array.  [ruby-core:32682]</div><div class='add'>+</div><div class='add'>+Mon Oct  4 10:22:21 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): This checks the value is in 32bit or not,</div><div class='add'>+	  so use int32_t, not int.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 09:47:39 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): remove useless assignment.</div><div class='add'>+</div><div class='add'>+	* re.c (update_char_offset): remove unused variable.</div><div class='add'>+</div><div class='add'>+	* re.c (read_escaped_byte): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 09:30:42 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/bn.rb (Integer#to_bn): OpenSSL::BN.new</div><div class='add'>+	  accepts only Strings, so call Integer#to_s(16).</div><div class='add'>+	  16 is for an optimization. [ruby-dev:42336]</div><div class='add'>+</div><div class='add'>+Mon Oct  4 07:57:51 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_memsize): Return size.</div><div class='add'>+	  Before this change, fiber_memsize always returns 0.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 07:16:55 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/unicode.c (onigenc_unicode_property_name_to_ctype):</div><div class='add'>+	  remove useless assignment.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_proc_from_block): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_count): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 06:40:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (clean-rdoc): Don't use \ in variable expansion.</div><div class='add'>+	  BSD make treats it as an escape character.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 00:01:53 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub: revert r29320, r29324, r29347, r29354, r29365</div><div class='add'>+	  to automake-1.11.1. [ruby-core:32634]</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: no longer use 'mingw64'. a patch from Luis Lavena</div><div class='add'>+	  at [ruby-core:32678].</div><div class='add'>+</div><div class='add'>+Sun Oct  3 20:36:37 2010  Akio Tajima (arton)  &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_folderitem2_invokeverb.rb: Change creating</div><div class='add'>+	  shortcut verb to 'Link' [Bug #3339]</div><div class='add'>+</div><div class='add'>+Sun Oct  3 19:44:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): get rid of duplicated ruby target when</div><div class='add'>+	  already there it was.</div><div class='add'>+</div><div class='add'>+Sat Oct  2 22:59:32 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_thread.rb: add for win32ole with Thread.</div><div class='add'>+</div><div class='add'>+Fri Oct  1 17:03:00 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpproxy.rb (TestWEBrickHTTPProxy::test_upstream_proxy):</div><div class='add'>+	  My machine fails this test at this line, saying 503 service unavailable.</div><div class='add'>+</div><div class='add'>+Thu Sep 30 16:11:08 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getenv): should return NULL if specified name</div><div class='add'>+	  is empty. a patch from Heesob Park at [ruby-core:32650]</div><div class='add'>+</div><div class='add'>+Thu Sep 30 15:18:23 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (command_asgn): allow command_call to be right hand side</div><div class='add'>+	  expression of chained assignment.  [ruby-dev:42313]</div><div class='add'>+</div><div class='add'>+Thu Sep 30 10:55:38 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): workaround for old Windows. a patch from</div><div class='add'>+	  Heesob Park. [ruby-core:32353]</div><div class='add'>+</div><div class='add'>+Thu Sep 30 09:29:06 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form): change treatment of</div><div class='add'>+	  undefined value in given array as latest internet draft for</div><div class='add'>+	  application/www-form-urlencoded.</div><div class='add'>+	  http://tools.ietf.org/html/draft-hoehrmann-urlencoded-01</div><div class='add'>+</div><div class='add'>+Thu Sep 30 09:34:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): fixed wrong type of return value of</div><div class='add'>+	  SymGetModuleBase64(). [ruby-dev:42306]</div><div class='add'>+</div><div class='add'>+Wed Sep 29 21:04:05 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions::test_script_from_stdin):</div><div class='add'>+	  As usual, PTY is not always available.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 18:38:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub (x64): regularize only for pc vendor, and strip</div><div class='add'>+	  useless 64 suffix.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 17:53:02 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BIGDECIMAL_ENABLE_VPRINT):</div><div class='add'>+	  VPrint is usually disabled.  It's only used in debugging.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 17:41:34 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_save_limit):</div><div class='add'>+	  return the result of a block.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_save_limit):</div><div class='add'>+	  add a test for the above change.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 16:18:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (dump_thread): remove unused optional arguments.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 13:26:30 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode):</div><div class='add'>+	  return the result of a block.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_save_rounding_mode):</div><div class='add'>+	  add a test for the above change.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_save_exception_mode):</div><div class='add'>+	  add a test for the return value of BigDecimal.save_exception_mode.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 12:45:30 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_div2, BigDecimal_add2,</div><div class='add'>+	  BigDecimal_sub2, BigDecimal_mult2, VpLimitRound): remove meaningless</div><div class='add'>+	  casts to get rid of compiler warnings.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 12:35:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VPrint, VpToString): fix format.</div><div class='add'>+</div><div class='add'>+Wed Sep 29 12:31:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/known_classes.rb (RDoc::KNOWN_CLASSES): add Encoding.</div><div class='add'>+</div><div class='add'>+Tue Sep 28 20:50:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub (x64): regularize same as mswin.</div><div class='add'>+</div><div class='add'>+Tue Sep 28 20:06:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): add windows support.</div><div class='add'>+	  based on patches from Peter Weldon at [ruby-core:32551]</div><div class='add'>+</div><div class='add'>+Mon Sep 27 23:30:34 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_case_dispatch), vm_insnhelper.c:</div><div class='add'>+	  execute the procedures of "when" clauses by bytecode</div><div class='add'>+	  instead of st_foreach() when the object does not hit</div><div class='add'>+	  prepared hash.  [ruby-dev:42304]</div><div class='add'>+</div><div class='add'>+Mon Sep 27 15:54:03 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb: As always, localhost is not</div><div class='add'>+	  guaranteed to be resolved as 127.0.0.1.  But a SSL</div><div class='add'>+	  certificate needs a socket to listen on a specific address</div><div class='add'>+	  where a CN resolves to.  On situations where localhost is</div><div class='add'>+	  not 127.0.0.1, these tests are not possible.</div><div class='add'>+</div><div class='add'>+Mon Sep 27 15:25:05 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: resurrection of r29259.</div><div class='add'>+	  this change depends on minitest 1.7.1.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 26 22:59:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub (x86_64-pc-mingw64): regularize.</div><div class='add'>+</div><div class='add'>+Sun Sep 26 22:21:07 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c (ossl_hmac_hexdigest, ossl_hmac_s_hexdigest),</div><div class='add'>+	  ext/openssl/ossl_pkey_ec.c (ossl_ec_group_set_seed),</div><div class='add'>+	  ext/openssl/ossl_ssl_session.c (ossl_ssl_session_to_der),</div><div class='add'>+	  ext/openssl/ossl_pkcs7.c (numberof): suppress warnings.</div><div class='add'>+	  [ruby-core:31932]</div><div class='add'>+</div><div class='add'>+Sun Sep 26 10:25:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.{guess,sub}: updated to automake-1.11.1.</div><div class='add'>+</div><div class='add'>+Sat Sep 25 22:48:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_DLDFLAGS): fix quoting.</div><div class='add'>+</div><div class='add'>+Sat Sep 25 10:30:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_DLDFLAGS): use -unexported_symbol only</div><div class='add'>+	  when available.  http://trac.macports.org/ticket/26341</div><div class='add'>+</div><div class='add'>+Sat Sep 25 10:05:49 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Always add -mieee for Renesas SH4.</div><div class='add'>+	  Thanks, Nobuhiro Iwamatsu. [Feature #3874] [ruby-core:32548]</div><div class='add'>+</div><div class='add'>+Sat Sep 25 01:34:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (install-cross): target to install cross-compiling</div><div class='add'>+	  stuff.</div><div class='add'>+</div><div class='add'>+Fri Sep 24 23:44:59 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_call), vm.c (invoke_block_from_c),</div><div class='add'>+	  vm_insnhelper.c (vm_yield_with_cfunc): pass given block.</div><div class='add'>+	  [ruby-core:32075]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_funcall_passing_block): new function to call</div><div class='add'>+	  method with passing given block.</div><div class='add'>+</div><div class='add'>+Fri Sep 24 15:50:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): fix rdoc: String#to_i raises an</div><div class='add'>+	  exception when base is invalid. [ruby-core:31685]</div><div class='add'>+</div><div class='add'>+Fri Sep 24 15:28:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): use rb_enc_prev_char instead of repeated</div><div class='add'>+	  str_nth.</div><div class='add'>+	  patched by Michael Selig [ruby-core:32498]</div><div class='add'>+</div><div class='add'>+Fri Sep 24 14:19:12 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_pty.rb: Same as 229281; existence of PTY class do not</div><div class='add'>+	  guarantee a successful pty operation.</div><div class='add'>+</div><div class='add'>+Fri Sep 24 06:25:55 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.7.2 r5879.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 23 23:09:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_cref0): cref is stacked only in normal</div><div class='add'>+	  iseqs, so check if it is the case first.</div><div class='add'>+</div><div class='add'>+Thu Sep 23 23:08:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub: mingw64 should use x86_64.  [ruby-core:32514]</div><div class='add'>+</div><div class='add'>+Thu Sep 23 21:40:40 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (init_addrinfo, inspect_sockaddr): suppress</div><div class='add'>+	  warnings.  see [ruby-core:31932].</div><div class='add'>+</div><div class='add'>+Thu Sep 23 19:27:57 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_wait_events, w32_close_handle): suppress warnings.</div><div class='add'>+	  see [ruby-core:31932].</div><div class='add'>+</div><div class='add'>+Thu Sep 23 18:54:39 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.sub: add mingw64.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mingw64): added.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mingw32): renamed from Exports::Mingw.</div><div class='add'>+</div><div class='add'>+Thu Sep 23 09:01:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_cref_push): no outer cref is needed for proc</div><div class='add'>+	  from method.  Bug #3786, Bug #3860, [ruby-core:32501]</div><div class='add'>+</div><div class='add'>+Wed Sep 22 17:12:01 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/utils.rb (OpenSSL#silent): always restore $VERBOSE.</div><div class='add'>+	  [ruby-dev:42285]</div><div class='add'>+</div><div class='add'>+Wed Sep 22 16:59:40 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_prime.rb (TestPrime#test_new): the warning expected have</div><div class='add'>+	  not been displayed when $VERBOSE == nil. Patch by Shota Fukumori</div><div class='add'>+	  a.k.a. sora_h. [ruby-dev:42272]</div><div class='add'>+	  Recovers $stderr even if StringIO.new fails. Reported by unak.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 01:55:48 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: fix last commit.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 01:49:52 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add a test for [ruby-core:30534].</div><div class='add'>+</div><div class='add'>+Wed Sep 22 00:52:44 2010  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/store.rb (save_cache): remove duplicate entries.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 00:00:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_f_pathname): Pathname() translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Sep 21 22:18:30 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb: fixed build problem on mswin64 introduced in r29278.</div><div class='add'>+</div><div class='add'>+Tue Sep 21 02:42:35 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb (TestPathname#test_mkdir): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 23:23:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (bracket): get rid of scanning at the end of the pattern</div><div class='add'>+	  string, not to raise an exception while globbing command line.</div><div class='add'>+	  [ruby-core:32478]</div><div class='add'>+</div><div class='add'>+Mon Sep 20 11:25:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (Init_pathname): Pathname#=~ undefinition</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 02:34:11 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (check_rounding_mode, BigDecimal_mode):</div><div class='add'>+	  raise ArgumentError instead of TypeError passing invalid modes.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):</div><div class='add'>+	  change against the above modifications.</div><div class='add'>+</div><div class='add'>+Sun Sep 19 22:08:39 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_link): rdoc</div><div class='add'>+	  (try_compile): ditto</div><div class='add'>+	  (try_cpp): ditto</div><div class='add'>+	  (try_func): ditto</div><div class='add'>+	  (try_var): ditto</div><div class='add'>+	  (try_run): ditto</div><div class='add'>+	  (egrep_cpp): ditto</div><div class='add'>+</div><div class='add'>+Sun Sep 19 20:43:33 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--disable-install-doc): disables capi too, in addition</div><div class='add'>+	  to rdoc.</div><div class='add'>+	  (--disable-install-rdoc): a new option for disabling only rdoc.</div><div class='add'>+	  (--disable-install-capi): a new option for disabling only capi.</div><div class='add'>+</div><div class='add'>+Sun Sep 19 20:37:45 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean): removes all documents on cleaning.o</div><div class='add'>+	  (CAPIOUT): new variable.</div><div class='add'>+	  (clean-capi, distclean-capi, realclean-capi): new targets</div><div class='add'>+</div><div class='add'>+	* Makefile.in (clean-capi, distclean-capi, realclean-capi): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean-capi, distclean-capi, realclean-capi):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 19 13:44:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_SO): fix an oversight of replace</div><div class='add'>+	  RUBY_INSTALL_NAME with RUBY_SO_NAME.  a patch from Jeremy Evans</div><div class='add'>+	  at [ruby-core:32474].</div><div class='add'>+</div><div class='add'>+Sun Sep 19 07:48:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_unlink): Pathname#unlink and</div><div class='add'>+	  Pathname#delete translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep 19 06:06:07 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (check_rounding_mode): added for</div><div class='add'>+	  converting symbol to rounding mode number.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round):</div><div class='add'>+	  support to specify rounding mode by symbol.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):</div><div class='add'>+	  add tests for above changes.</div><div class='add'>+</div><div class='add'>+Sun Sep 19 05:14:35 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: fix rounding algorithms for half-down</div><div class='add'>+	  and half-even.  This change is based on the patch created by Matthew</div><div class='add'>+	  Willson, the reporter of this bug.  [Bug #3803] [ruby-core:32136]</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add tests for above changes.</div><div class='add'>+</div><div class='add'>+Sat Sep 18 20:09:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_each_entry): Pathname#each_entry</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 23:44:07 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/xpath_parser.rb, test/rexml/test_xpath.rb:</div><div class='add'>+	  add missing method availability check. [ruby-core:32447]</div><div class='add'>+	  Reported by Wiebe Cazemier. Thanks!!!</div><div class='add'>+</div><div class='add'>+Fri Sep 17 23:23:26 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_sax.rb: don't use thread and sleep to avoid slow test.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 23:10:44 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_core.rb: enable.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 22:46:02 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/: untabify.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 22:29:56 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/: fix fixture data path. All REXML tests are worked.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 22:15:15 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_listener.rb: remove needless codes.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 22:12:23 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/: import REXML tests from</div><div class='add'>+	  http://www.germane-software.com/repos/rexml/trunk/test/.</div><div class='add'>+	  Many tests are failed temporary. I'll fix them quickly. Sorry.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 16:48:49 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/console/test_io_console.rb (TestIO_Console::helper):</div><div class='add'>+	  PTY.open is not guaranteed to work.  On my machine opening a</div><div class='add'>+	  pty is prohibited via process control group.  On those cases</div><div class='add'>+	  exceptions shall occur, and that doesn't mean our fault.</div><div class='add'>+	  Skip those tests on such situations.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 08:30:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: count only non-internal libraries in stack trace,</div><div class='add'>+	  ignoring custom_require.  [ruby-core:31858]</div><div class='add'>+</div><div class='add'>+Fri Sep 17 02:18:41 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb: Fix build with m4 1.4.15 generating duplicate</div><div class='add'>+	  lines in config.status.  According to nobu, the mswin32 port may</div><div class='add'>+	  depend on the piece of code in question, so the behavior is left</div><div class='add'>+	  unchanged on mswin32.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 23:47:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_opendir): Pathname#opendir translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 21:40:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit::GlobOption): merged RejectOption.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: utilize GlobOption.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 21:31:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (RDoc::RI::Driver.setup_options)</div><div class='add'>+	  (RDoc::RI::Driver.fixup_options): split from process_args.</div><div class='add'>+	  libraries should not parse ARGV inside, since it's a task of</div><div class='add'>+	  applications, not libraries.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 21:02:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths.each): HOMEDIR can be nil</div><div class='add'>+	  if $HOME is unset.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 14:50:42 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb (TestFileExhaustive::test_expand_path):</div><div class='add'>+	  ENV["HOME"] might not be set.  On those cases without it an</div><div class='add'>+	  exception raises here, which effectively disables later</div><div class='add'>+	  tests on this method.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 08:30:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): fix rdoc.  pointed out by Tomoyuki</div><div class='add'>+	  Chikanaga at [ruby-core:32395], and a patch from Daniel</div><div class='add'>+	  Bovensiepen at [ruby-core:32403].</div><div class='add'>+</div><div class='add'>+Thu Sep 16 08:27:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb: use expanded sysconfdir with empty DESTDIR.</div><div class='add'>+	  [ruby-core:32394]</div><div class='add'>+</div><div class='add'>+Thu Sep 16 06:07:24 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_rmdir): Pathname#rmdir translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 00:36:25 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: Remove Readline 6 check because</div><div class='add'>+	  Ruby's license is now GPLv3 compatible. [ruby-core:28736]</div><div class='add'>+</div><div class='add'>+Thu Sep 16 00:26:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* COPYING: change Ruby's License from a dual license with GPLv2</div><div class='add'>+	  to a dual license with 2-clause BSDL.</div><div class='add'>+	  [ruby-dev:42166] [ruby-core:31971]</div><div class='add'>+	  [ruby-dev:39167] [ruby-core:25272]</div><div class='add'>+</div><div class='add'>+	* COPYING.ja: ditto.</div><div class='add'>+</div><div class='add'>+	* BSDL: added. this is from The FreeBSD License.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 21:07:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_mkdir): Pathname#mkdir translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 13:37:00 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: "localhost" not guaranteed to</div><div class='add'>+	  resolve to "127.0.0.1".  On my machine it is "::1" instead.</div><div class='add'>+	  The problem is, you have to connect to the imaps server via</div><div class='add'>+	  the canonical name written in a server certificate, and that</div><div class='add'>+	  of the server.cert is "localhost".  So you have to listen to</div><div class='add'>+	  the address of what "localhost" resolves to.  I think this</div><div class='add'>+	  situation cannot be resolved in a handy manner because the</div><div class='add'>+	  test "test_imaps_post_connection_check" is actually</div><div class='add'>+	  expecting to connect to a server via an address other than</div><div class='add'>+	  the CN.  On my machine several assertions won't pass because</div><div class='add'>+	  the test cannot connect to the server.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 09:12:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): fix for wide char encoding strings.</div><div class='add'>+	  [ruby-dev:42212]</div><div class='add'>+</div><div class='add'>+Wed Sep 15 07:27:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_format_m): mentioned about Hash argument.  a patch</div><div class='add'>+	  from Daniel Bovensiepen at [ruby-core:32386].</div><div class='add'>+</div><div class='add'>+	* sprintf.c (get_hash): ditto, and fix typo.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 07:22:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_entries): Pathname#entries translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 02:13:44 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c : Don't use FFI closure alloc on OpenBSD.</div><div class='add'>+	  Thanks Jeremy Evans! [ruby-core:32384]</div><div class='add'>+</div><div class='add'>+Tue Sep 14 20:17:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_s_getwd): Pathname.getwd and</div><div class='add'>+	  Pathname.pwd translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 05:13:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_s_glob): Pathname.glob translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 01:24:51 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (ruby_getaddrinfo__aix): suppress a</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 20:48:30 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_zero_p): Pathname#zero? translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 19:56:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (__DARWIN_ALIGNBYTES): workaround of a</div><div class='add'>+	  bug in system header of darwin 9.  [ruby-core:32341]</div><div class='add'>+</div><div class='add'>+Mon Sep 13 18:11:55 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_do): fix typo.  a patch from Peter Weldon</div><div class='add'>+	  at [ruby-core:32327].</div><div class='add'>+</div><div class='add'>+Mon Sep 13 10:12:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): reject Float('0x0.').</div><div class='add'>+	  [ruby-dev:42239] Bug #3820</div><div class='add'>+</div><div class='add'>+Mon Sep 13 09:23:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_is_prime): fix comparison</div><div class='add'>+	  with rb_scan_args. Before this fix, OpenSSL::BN#prime?</div><div class='add'>+	  is fully broken. [ruby-dev:42225]</div><div class='add'>+</div><div class='add'>+Mon Sep 13 06:45:24 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_writable_real_p):</div><div class='add'>+	  Pathname#writable_real? translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 21:21:50 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: [ruby-core:32096]  Thanks Colin Bartlett.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 19:30:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_world_writable_p):</div><div class='add'>+	  Pathname#world_writable? translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 09:16:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_writable_p): Pathname#writable?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 08:36:15 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rlimit_resource_name2int): support more limits:</div><div class='add'>+	  RLIMIT_MSGQUEUE, RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_RTTIME and</div><div class='add'>+	  RLIMIT_SIGPENDING.</div><div class='add'>+	  (Init_process): ditto.</div><div class='add'>+	  patch by Run Paint Run Run.  [ruby-core:32262]</div><div class='add'>+</div><div class='add'>+Sun Sep 12 04:27:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rlimit_resource_name2int): use STRCASECMP to avoid</div><div class='add'>+	  ALLOCA_N.</div><div class='add'>+</div><div class='add'>+Sat Sep 11 16:47:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): raise if putenv and SetEnvironmentVariable</div><div class='add'>+	  failed, because of the restriction of the size on Windows.</div><div class='add'>+	  based on a patch from Peter Weldon at [ruby-core:32304].  fix:</div><div class='add'>+	  Bug#3812, [ruby-core:32250]</div><div class='add'>+</div><div class='add'>+Sat Sep 11 15:19:57 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb (WEBrick::Config::DigestAuth):</div><div class='add'>+	  Add documentation</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::DigestAuth): Add</div><div class='add'>+	  documentation</div><div class='add'>+</div><div class='add'>+Sat Sep 11 12:32:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_set_kcode, rb_get_kcode): removed</div><div class='add'>+	  zombie prototype declarations.  a patch from Eric Hodel</div><div class='add'>+	  at [ruby-core:32305].</div><div class='add'>+</div><div class='add'>+Sat Sep 11 06:53:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_symlink_p): Pathname#symlink?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 23:03:43 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_sticky_p): Pathname#sticky? translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 19:11:13 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#continue): add</div><div class='add'>+	  method for generating HTTP/1.1 100 continue response if the client</div><div class='add'>+	  expects it, otherwise does nothing.  Patch by Brian Candler.</div><div class='add'>+	  ref #855.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httprequest.rb: test added.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 17:49:34 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509-internal.rb: removed unused local</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+	* test/openssl/*: less warnings while test running with -w.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 16:49:20 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args): Add support for optional keyword</div><div class='add'>+	  argument hash. [ruby-dev:42221] [ruby-dev:38048]</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: Update documentation accordingly.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): Make use of the new rb_scan_args()</div><div class='add'>+	  feature.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen, rb_scan_open_args, rb_io_initialize)</div><div class='add'>+	  (rb_io_s_pipe, open_key_args, io_s_foreach, io_s_readlines)</div><div class='add'>+	  (rb_io_s_read, rb_io_set_encoding): Ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode, econv_args)</div><div class='add'>+	  (econv_primitive_convert): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_initialize): Ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 10:33:18 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_genrand_ulong_limited): renamed from</div><div class='add'>+	  rb_rand_internal and now this is public API.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_genrand_ulong_limited): added.</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_sparse_p): use rb_genrand_ulong_limited.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 13:07:22 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb: removed unused exception variable</div><div class='add'>+	  assignment to avoid a warning.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 07:29:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_systmpdir): assume system default tmpdir</div><div class='add'>+	  safe.  [ruby-dev:42089]</div><div class='add'>+</div><div class='add'>+Fri Sep 10 07:03:23 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_size_p): Pathname#size? translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 02:15:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_peercred): support OpenBSD-current.</div><div class='add'>+	  patch by Jeremy Evans.  [ruby-core:32240]</div><div class='add'>+</div><div class='add'>+Thu Sep  9 23:25:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): skip allocator frames which have no</div><div class='add'>+	  name.  [ruby-core:32231]</div><div class='add'>+</div><div class='add'>+Thu Sep  9 22:39:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_size): Pathname#size translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep  9 22:34:48 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (case_when_optimizable_literal): When float value can be</div><div class='add'>+	  treated as integer, add to table hash of case that way.</div><div class='add'>+	  based on a patch from Ikuo KOBORI. [ruby-dev:42038]</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_case_dispatch): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_case.rb: add tests.</div><div class='add'>+</div><div class='add'>+Thu Sep  9 17:15:15 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb (test_identity_verify_failure): follows</div><div class='add'>+	  the SSL hostname check error message of openssl.</div><div class='add'>+</div><div class='add'>+Thu Sep  9 10:44:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb (test_aset): OpenBSD acts like NetBSD in</div><div class='add'>+	  that it ignores characters after = in ENV.</div><div class='add'>+	  patched by Jeremy Evans [ruby-core:32184]</div><div class='add'>+</div><div class='add'>+Thu Sep  9 09:02:01 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install?): gemspec filename should include</div><div class='add'>+	  its version. patched by Luis Lavena [ruby-core:32165]</div><div class='add'>+</div><div class='add'>+Wed Sep  8 22:46:31 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ssl_get_error): Thread context switch was</div><div class='add'>+	  blocked on Windows while blocking call for SSLSocket.  Need to</div><div class='add'>+	  convert errno for letting rb_io_wait_readable detect EWOULDBLOCK.</div><div class='add'>+	  Patch by arton. ref #3794.</div><div class='add'>+</div><div class='add'>+Wed Sep  8 20:56:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_setgid_p): Pathname#setgid? translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep  8 06:25:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_setuid_p): Pathname#setuid? translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Sep  7 21:03:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_readable_real_p):</div><div class='add'>+	  Pathname#readable_real?  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Sep  6 23:07:25 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_world_readable_p):</div><div class='add'>+	  Pathname#world_readable?  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Sep  6 11:03:13 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Fixed wrong check of missing functions. Patch by Adrian Quark.</div><div class='add'>+	  ref #3400</div><div class='add'>+	  The patch contains following comment:</div><div class='add'>+	    This patch should avoid unnecessary incompatibility with future</div><div class='add'>+	    versions of Openssl.  Changes suggested by bmaher_at_amazon.com.</div><div class='add'>+</div><div class='add'>+Mon Sep  6 10:46:55 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Fixed exception message for SSL post connection check failure. Patch</div><div class='add'>+	  by Paul Betteridge. ref [Bug #3704]</div><div class='add'>+</div><div class='add'>+Mon Sep  6 10:31:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_get_line_buffer):</div><div class='add'>+	  Readline.line_buffer should return locale string.</div><div class='add'>+	  [ruby-dev:42184] #3791</div><div class='add'>+</div><div class='add'>+Mon Sep  6 09:47:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): check there is at least 1 digit after</div><div class='add'>+	  "0x" before ".". [ruby-dev:42183] #3790</div><div class='add'>+</div><div class='add'>+Mon Sep  6 09:44:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): check integer overflow.</div><div class='add'>+	  [ruby-dev:42180] #3789</div><div class='add'>+</div><div class='add'>+Mon Sep  6 06:17:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_readable_p): Pathname#readable?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep  5 23:02:34 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_owned_p): Pathname#owned?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Sep  4 23:48:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): symlink target should be in</div><div class='add'>+	  filesystem encoding.</div><div class='add'>+</div><div class='add'>+Sat Sep  4 10:40:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (ruby_init_ext): export for golfers.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_iseq_eval, rb_iseq_compile_with_option): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 23 17:29:41 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (capi): uses a timestamp file to get rid of</div><div class='add'>+	  generating twice.</div><div class='add'>+</div><div class='add'>+Fri Jun 18 01:33:21 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (realclean): has been missing. necessary</div><div class='add'>+	  for make realclean-enc.</div><div class='add'>+</div><div class='add'>+Fri Sep  3 23:51:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_socket_p): Pathname#socket?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep  3 06:40:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): pass through exceptions.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_bufwrite, rb_io_bufread): added.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork_err): protect from exceptions.</div><div class='add'>+</div><div class='add'>+Fri Sep  3 06:16:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_pipe_p): Pathname#pipe?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep  3 06:14:40 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): restore errno from SystemCallError and</div><div class='add'>+	  propagate proper exception to the parent.  [ruby-dev:41965]</div><div class='add'>+</div><div class='add'>+Thu Sep  2 22:10:38 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_file_p): Pathname#file?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep  2 09:12:02 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): don't forget to free</div><div class='add'>+	  memory.</div><div class='add'>+</div><div class='add'>+Thu Sep  2 09:01:13 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): unicodize.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): convert arguments of</div><div class='add'>+	  CreateChild() from ACP to WideChar.</div><div class='add'>+</div><div class='add'>+Thu Sep  2 06:53:43 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_directory_p): Pathname#directory?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep  1 22:03:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_grpowned_p): Pathname#grpowned?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep  1 17:39:02 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.7.1 r5835.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  1 16:50:42 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): optimized. don't create hash objects</div><div class='add'>+	  when given pattern is ASCII only.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  1 14:35:29 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_rotate_m): fix typo of rdoc.</div><div class='add'>+	  patched by Andrei Kulakov [ruby-core:31975]</div><div class='add'>+</div><div class='add'>+Wed Sep  1 14:33:36 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): fix typo of rdoc.</div><div class='add'>+	  patched by Andrei Kulakov [ruby-core:31974]</div><div class='add'>+</div><div class='add'>+Wed Sep  1 12:56:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_suppress_tracing): restore the state and invoke</div><div class='add'>+	  the func with normal state.  a patch from Satoshi Shiba &lt;shiba</div><div class='add'>+	  AT rvm.jp&gt; at [ruby-dev:42162].  [ruby-core:31783]</div><div class='add'>+</div><div class='add'>+Tue Aug 31 21:10:23 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_exist_p): Pathname#exist? translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug 31 17:32:34 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: fix [Bug #3771] "VC++ can't make ext/tk with enabling</div><div class='add'>+	  stubs". Thanks, Akio Tajima [ruby-dev:42159].</div><div class='add'>+</div><div class='add'>+Tue Aug 31 03:42:14 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): fix bug in r29146.</div><div class='add'>+	  Initialize table even if cflag is 0; tr_find see whether</div><div class='add'>+	  del is empty or not.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): nodel can't be NULL; if NULL, it means</div><div class='add'>+	  it is not specified.</div><div class='add'>+</div><div class='add'>+Mon Aug 30 21:29:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_executable_real_p):</div><div class='add'>+	  Pathname#executable_real? translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug 30 15:00:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): initialize negating table when</div><div class='add'>+	  negating string is given. [ruby-core:31851]</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): add a sentence for the time when</div><div class='add'>+	  target characters include negating one.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): move definition.</div><div class='add'>+</div><div class='add'>+Mon Aug 30 07:32:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_executable_p): Pathname#executable?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug 29 23:54:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc#parse_call_parameters): don't</div><div class='add'>+	  include assignment.  [Bug #3759], [ruby-dev:42154]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc#parse_class): ignore non-constant</div><div class='add'>+	  name singleton class.  [Bug #3759], [ruby-dev:42154]</div><div class='add'>+</div><div class='add'>+Sun Aug 29 23:25:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path_check): clarify error message for</div><div class='add'>+	  ASCII-incompatible path name.</div><div class='add'>+</div><div class='add'>+Sun Aug 29 16:02:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc): remove command option -n and give</div><div class='add'>+	  file as stdin, because IronRuby 1.1 still doesn't support it.</div><div class='add'>+	  So now we can use ir.exe as BASERUBY.</div><div class='add'>+</div><div class='add'>+	* tool/node_name.rb: read stdin with while gets.</div><div class='add'>+</div><div class='add'>+Sun Aug 29 13:22:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_method_id_and_class): curried proc has no</div><div class='add'>+	  method.  [ruby-core:31871]</div><div class='add'>+</div><div class='add'>+Sun Aug 29 12:51:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_provide_feature): clarify error message for frozen</div><div class='add'>+	  $LOADED_FEATURES.  based on a patch from Run Paint Run Run at</div><div class='add'>+	  [ruby-core:31913].</div><div class='add'>+</div><div class='add'>+Sun Aug 29 12:19:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (load_failed): should honor encoding.  [ruby-core:31915]</div><div class='add'>+</div><div class='add'>+Sun Aug 29 09:35:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean): exclude *.inc. [ruby-dev:41931]</div><div class='add'>+</div><div class='add'>+	* common.mk (distclean): include *.inc.</div><div class='add'>+</div><div class='add'>+	* common.mk (help): change description about clean and distclean.</div><div class='add'>+</div><div class='add'>+Sat Aug 29 06:34:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_chardev_p): Pathname#chardev?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Aug 28 17:39:33 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_save_exception_mode,</div><div class='add'>+	  BigDecimal_save_rounding_mode, BigDecimal_save_limit): added.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: added tests for the above</div><div class='add'>+	  features.</div><div class='add'>+</div><div class='add'>+Sat Aug 28 08:11:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_blockdev_p): Pathname#blockdev?</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 16:20:01 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_prepend): new method by Shota Fukumori (sora_h)</div><div class='add'>+	  [Feature #3765]</div><div class='add'>+</div><div class='add'>+Fri Aug 27 15:24:20 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atan2): you should know that M_PI is not the feature</div><div class='add'>+	  of C90.</div><div class='add'>+	  fixed build failure caused by r29115.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 15:26:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (null_device): move from io.c.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 12:47:44 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atan2): change the behavior when x and y are zero.</div><div class='add'>+	  [ruby-dev:42090] [Bug #3736] [ruby-dev:42116]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb (test_atan2): add tests for the above</div><div class='add'>+	  changes.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 12:26:23 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_class): remove mention of obsolete method.</div><div class='add'>+	  a patch from Run Paint Run Run at [ruby-core:31842].</div><div class='add'>+</div><div class='add'>+Fri Aug 27 12:25:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (null_device): the name of null device.  [ruby-dev:41791]</div><div class='add'>+</div><div class='add'>+Fri Aug 27 07:57:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle_bang): bail out from modification during</div><div class='add'>+	  shuffle.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 05:11:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_sysopen): Pathname#sysopen translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 26 22:53:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle): rdoc fix.  argument name was missing.</div><div class='add'>+	  a patch from Run Paint Run Run at [ruby-core:31848].</div><div class='add'>+</div><div class='add'>+Thu Aug 26 21:49:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_readlines): Pathname#readlines</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 26 10:37:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (OnigStackIndex): the type should be intptr_t.</div><div class='add'>+	  Original Oniguruma assumes the size of long and that of void *</div><div class='add'>+	  are equal, but it's not true on LLP64 platform: mswin64.</div><div class='add'>+	  originally patched by shintaro kuwamoto [ruby-dev:42133]</div><div class='add'>+</div><div class='add'>+Thu Aug 26 10:38:11 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb: AIX does not have dynamically loadable lib[cm].</div><div class='add'>+</div><div class='add'>+	* test/fiddle/helper.rb: AIX does not have dynamically loadable lib[cm].</div><div class='add'>+</div><div class='add'>+Thu Aug 26 09:49:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle_bang): check number of argument.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 09:11:40 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal,</div><div class='add'>+	  rmpd_set_thread_local_exception_mode, VpGetException,</div><div class='add'>+	  VpSetException): thread-local exception mode.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal,</div><div class='add'>+	  rmpd_set_thread_local_precision_limit, VpGetPrecLimit,</div><div class='add'>+	  VpSetPrecLimit): thread-local precision limit.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal,</div><div class='add'>+	  rmpd_set_thread_local_rounding_mode, VpGetRoundMode,</div><div class='add'>+	  VpSetRoundMode, VpException, VpInternalRound):</div><div class='add'>+	  thread-local rounding mode.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round,</div><div class='add'>+	  VpIsRoundMode, VpGetRoundMode, VpSetRoundMode, VpActiveRound,</div><div class='add'>+	  VpMidRound, VpLeftRound), ext/bigdecimal/bigdecimal.h:</div><div class='add'>+	  use unsigned short for rounding mode.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_mode): add test for</div><div class='add'>+	  setting rounding mode.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_thread_local_mode):</div><div class='add'>+	  add test for setting mode thread-locally.</div><div class='add'>+</div><div class='add'>+Thu Aug 26 07:29:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_{shuffle_bang,sample}): use Random class object.</div><div class='add'>+</div><div class='add'>+	* random.c (try_get_rnd): use default_rand for Random as same as</div><div class='add'>+	  singleton methods.</div><div class='add'>+</div><div class='add'>+	* random.c (rb_random_real): check the range of result.</div><div class='add'>+</div><div class='add'>+Wed Aug 25 22:11:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_binread): Pathname#binread translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Aug 25 03:42:43 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): workaround for VC9 for x64.</div><div class='add'>+	  reported by kuwamoto shintaro in [ruby-dev:42125].</div><div class='add'>+</div><div class='add'>+Tue Aug 24 23:28:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* .gitignore: updated.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 22:07:28 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_read): Pathname#read translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 10:11:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: read API version from include/ruby/version.h.</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/setup.mak (-version-): ditto.</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_LIB_VERSION): use API version numbers.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 07:07:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle_bang, rb_ary_sample): add optional</div><div class='add'>+	  argument random.  [ruby-dev:41923] [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* random.c (rb_random_{int32,real,bytes}): fallback to normal</div><div class='add'>+	  method invocation.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 06:08:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/version.h (RUBY_API_VERSION_*): renamed and moved</div><div class='add'>+	  from version.h.  [ruby-dev:42103]</div><div class='add'>+</div><div class='add'>+Tue Aug 24 05:58:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: flushed.  [ruby-dev:42050]</div><div class='add'>+</div><div class='add'>+Tue Aug 24 01:14:58 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): to_f must underflow</div><div class='add'>+	  when the exponent is less than DBL_MIN_10_EXP - BASE_FIG.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_to_f): added test for the above changes.</div><div class='add'>+</div><div class='add'>+Mon Aug 23 23:14:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_each_line): Pathname#each_line</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug 23 22:30:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (version.o): depends on both of version.h and</div><div class='add'>+	  include/ruby/version.h.   [ruby-dev:42063]</div><div class='add'>+</div><div class='add'>+Mon Aug 23 13:09:27 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r29071 from ruby_1_8;</div><div class='add'>+</div><div class='add'>+	  * ext/openssl/ossl_asn1.c (obj_to_asn1bool): fixed ASN1::Boolean</div><div class='add'>+	    encoding issue for OpenSSL 1.0.0 compatibility.</div><div class='add'>+	    ASN1::Boolean.new(false).to_der wrongly generated "\1\1\377" which</div><div class='add'>+	    means 'true'.</div><div class='add'>+</div><div class='add'>+	    ASN1_TYPE_set of OpenSSL &lt;= 0.9.8 treats value 0x100 as 'false'</div><div class='add'>+	    but OpenSSL &gt;= 1.0.0 treats it as 'true'.  ruby-ossl was using</div><div class='add'>+	    0x100 for 'false' for backward compatibility.  Just use 0x0 for</div><div class='add'>+	    the case OpenSSL &gt;= OpenSSL 0.9.7.</div><div class='add'>+</div><div class='add'>+	  * test/openssl/test_asn1.rb: test added.</div><div class='add'>+</div><div class='add'>+Mon Aug 23 12:28:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): fix: 4th argument should be regexp</div><div class='add'>+	  object. patched by shintaro kuwamoto [ruby-dev:41667] #3459</div><div class='add'>+</div><div class='add'>+Mon Aug 23 02:23:05 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): make sure to have digit-sequence after 'p'</div><div class='add'>+	  for hexadecimal-floating-constant. [ruby-dev:42105]</div><div class='add'>+</div><div class='add'>+Mon Aug 23 00:23:07 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: [ruby-core:31695]</div><div class='add'>+</div><div class='add'>+Sun Aug 22 09:08:02 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (UINT2NUM): fix ifdef condition for LLP64.</div><div class='add'>+	  reported by Daniel Gutmanas.  [ruby-core:31778]</div><div class='add'>+</div><div class='add'>+Sun Aug 22 06:46:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (RAND_UPTO): macro for random number.</div><div class='add'>+</div><div class='add'>+Sun Aug 22 05:55:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix typo.  a patch from Eric Wong at</div><div class='add'>+	  [ruby-core:31810].</div><div class='add'>+</div><div class='add'>+Sat Aug 21 20:09:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: add missing prototype of rb_iseq_clone for r29063.</div><div class='add'>+</div><div class='add'>+Sat Aug 21 18:54:56 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_define_method): copy iseq to avoid overwriting iseq-&gt;klass.</div><div class='add'>+	  #2502, #3136. see #2420.</div><div class='add'>+</div><div class='add'>+Sat Aug 21 17:36:42 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_split): Pathname#split translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug 20 10:40:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_expand_path): Pathname#expand_path</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 22:44:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (usage): add usage.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): accept revision as BRANCH@REV.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 19:53:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_timestamp): fix a constant type.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (get_afamily): suppress a warning.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 19:28:47 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): suppress a warning for platforms</div><div class='add'>+	  which time_t is int.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 18:15:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/merger.rb: Add a tool to merge commits between branches.</div><div class='add'>+	  developed by URABE Shyouhei</div><div class='add'>+</div><div class='add'>+Thu Aug 19 17:19:09 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r28621 and r28632 from ruby_1_8;</div><div class='add'>+</div><div class='add'>+	  * ext/openssl/ossl_config.c, ext/openssl/lib/openssl/config.rb,</div><div class='add'>+	    ext/openssl/lib/openssl.rb: reimplement OpenSSL::Config in Ruby.</div><div class='add'>+	    Now it should work on windows.</div><div class='add'>+</div><div class='add'>+	  * test/openssl/test_config.rb: added tests for OpenSSL::Config#dup.</div><div class='add'>+</div><div class='add'>+	  * test/openssl/test_config.rb: added tests for Config#clone.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 12:04:39 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation, rb_ary_repeated_permutation,</div><div class='add'>+	  rb_ary_repeated_combination, rb_ary_product):</div><div class='add'>+	  use ary_make_shared_copy instead of ary_make_substitution.</div><div class='add'>+	  [ruby-dev:42067] [Bug #3708]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_product, test_repeated_permutation,</div><div class='add'>+	  test_repeated_combination): append assertions against [Bug #3708].</div><div class='add'>+</div><div class='add'>+Thu Aug 19 11:11:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): fix typo of rdoc.</div><div class='add'>+	  patched by Andrei Kulakov [ruby-core:31768]</div><div class='add'>+</div><div class='add'>+Thu Aug 19 10:06:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_extname): Pathname#extname translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 06:03:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_push_frame): initialize block_iseq.  a patch</div><div class='add'>+	  from Peter Weldon at [ruby-core:31757].</div><div class='add'>+</div><div class='add'>+Wed Aug 18 19:08:17 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared): revert r29037, it occurs SEGV some</div><div class='add'>+	  situations.</div><div class='add'>+</div><div class='add'>+Wed Aug 18 18:36:32 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared),</div><div class='add'>+	  test/ruby/test_array.rb (test_permutation):</div><div class='add'>+	  always return the original array when it is shared.</div><div class='add'>+	  [ruby-dev:42067] [Bug #3708]</div><div class='add'>+</div><div class='add'>+Wed Aug 18 01:37:49 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c: revert r26701; it introduces Bug #3681.</div><div class='add'>+	  [ruby-core:31677]</div><div class='add'>+</div><div class='add'>+Tue Aug 17 20:05:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_threaded_flush): test "hi" is not output</div><div class='add'>+	  twice.</div><div class='add'>+</div><div class='add'>+Tue Aug 17 15:13:28 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: Re-revert the part of r28950.</div><div class='add'>+	  It reverted the part of r28619.</div><div class='add'>+</div><div class='add'>+Tue Aug 17 13:00:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_dirname): Pathname#dirname translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug 17 07:50:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: check functions more.</div><div class='add'>+	  [ruby-core:31722]</div><div class='add'>+</div><div class='add'>+Tue Aug 17 07:42:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_make_independent_expand): set capacity properly. a</div><div class='add'>+	  patch from Peter Weldon at [ruby-core:31734].  [ruby-core:31653]</div><div class='add'>+</div><div class='add'>+Tue Aug 17 07:38:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb, lib/rubygems.rb (Gem.suffixes): include empty</div><div class='add'>+	  suffix.  [ruby-core:31730]</div><div class='add'>+</div><div class='add'>+Mon Aug 16 22:16:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_basename): unused variable removed.</div><div class='add'>+</div><div class='add'>+Mon Aug 16 21:39:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_basename): Pathname#basename translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug 16 20:26:13 2010  Narihiro Nakamura  &lt;narihiro@netlab.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): Index begins with 1.</div><div class='add'>+</div><div class='add'>+Mon Aug 16 20:21:17 2010  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): use size_t. based on patches from</div><div class='add'>+	Tomoaki NISHIYAMA &lt;tomoakin@kenroku.kanazawa-u.ac.jp&gt; at</div><div class='add'>+	[ruby-dev:42042].</div><div class='add'>+</div><div class='add'>+Mon Aug 16 19:23:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_dtoa, ruby_hdtoa): use same representations for</div><div class='add'>+	  Infinity and NaN.  a part of a patch from Peter Weldon at</div><div class='add'>+	  [ruby-core:31725].</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_hdtoa): fixed buffer overrun.  based on a patch</div><div class='add'>+	  from Peter Weldon at [ruby-core:31725].</div><div class='add'>+</div><div class='add'>+Mon Aug 16 17:44:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (capi): use -b option for doxygen.  It disables stdout</div><div class='add'>+	  buffering and prevents wrong reordering between stdout and stderr</div><div class='add'>+	  even when the output of "make" is redirected.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 19:59:58 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#set_error):</div><div class='add'>+	  Fix for possible cross-site scripting (CVE-2010-0541).</div><div class='add'>+	  Found by Apple, reported by Hideki Yamane.</div><div class='add'>+	  Patch by Hirokazu Nishio &lt;nishio.hirokazu AT gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Mon Aug 16 12:29:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (test-rubyspec-precheck): split</div><div class='add'>+	  from test-rubyspec.</div><div class='add'>+</div><div class='add'>+	* common.mk (test-rubyspec): moved from Makefile.in.</div><div class='add'>+</div><div class='add'>+Mon Aug 16 10:00:45 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h (llabs): never never never never never</div><div class='add'>+	  use "long long".</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal.bigdecimal.c (BigDecimal_to_i): get rid of a warning.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 18:14:20 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_inspect,</div><div class='add'>+	  VPrint, VpToString, VpVarCheck): use PRIuSIZE, PRIdSIZE, PRIdVALUE,</div><div class='add'>+	  and PRIxVALUE.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 16:14:31 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): close @log only when it's available.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 13:30:35 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h (VpVtoD): fix a type of e.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_inspect):</div><div class='add'>+	  fix format for size_t.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 00:22:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h</div><div class='add'>+	  (labs, llabs): support environments missing labs and llabs.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h (vabs): added.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h,</div><div class='add'>+	  ext/bigdecimal/bigdecimal.c, test/bigdecimal/test_bigdecimal.rb</div><div class='add'>+	  (TestBigDecimal#test_new): replace U_LONG, S_LONG, S_INT, and U_INT</div><div class='add'>+	  with appropriate standard or ruby-provided types.</div><div class='add'>+</div><div class='add'>+Sun Aug 15 00:15:45 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_utime): Pathname#utime translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Aug 14 21:04:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_gc_mark_threads): deprecated.</div><div class='add'>+</div><div class='add'>+Sat Aug 14 19:12:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/{coverage,objspace}/extconf.rb ($INCFLAGS): explicitly add</div><div class='add'>+	  topdir and top_srcdir.  [ruby-dev:42031]</div><div class='add'>+</div><div class='add'>+Sat Aug 14 17:48:41 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/objspace/test_objspace.rb: added test for objspace.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c: considers T_ZOMBIE by lazy sweep GC.</div><div class='add'>+</div><div class='add'>+	* gc.c: considers that dsize was 0. [ruby-dev:42022]</div><div class='add'>+</div><div class='add'>+Sat Aug 14 15:33:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, include/ruby/defines.h (RUBY_FUNC_EXPORTED): macro</div><div class='add'>+	  to declare exported function.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_memsize), string.c (rb_str_memsize),</div><div class='add'>+	  variable.c (rb_objspace_data_type_memsize): used in</div><div class='add'>+	  objspace.  [ruby-dev:42022]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_memsize): constified.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_memsize): constified.</div><div class='add'>+</div><div class='add'>+	* gc.h (rb_objspace_each_objects): used in objspace.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_{get,set,reset}_coverages): used in coverage.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_time_interval): used in io/wait.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_make_backtrace, rb_make_exception):</div><div class='add'>+	  used in ripper.</div><div class='add'>+</div><div class='add'>+	* node.h (rb_parser_{malloc,realloc,calloc,free}): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 13 22:48:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_truncate): Pathname#truncate translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug 13 16:11:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (MiniTest::Unit.new): extend before initialize.</div><div class='add'>+	  [ruby-dev:41970]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (MiniTest::Unit.autorun): use Test::Unit::Mini.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 23:39:02 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_make_symlink): Pathname#make_symlink</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 21:18:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_lstat): Pathname#lstat translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 05:58:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_char_to_option_kcode): used in</div><div class='add'>+	  ripper.</div><div class='add'>+</div><div class='add'>+	* node.h (rb_reserved_word): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 00:19:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_script_from_stdin): disable</div><div class='add'>+	  echo.  [ruby-dev:41966]</div><div class='add'>+</div><div class='add'>+Wed Aug 11 23:28:22 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (CMath.sqrt): use floating-point value.</div><div class='add'>+	  [ruby-core:31672] [Bug #3678]</div><div class='add'>+</div><div class='add'>+	* test/test_cmath.rb: added for testing lib/cmath.rb.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 20:57:25 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: merge from branches/ruby_1_9_2, and move io/console.</div><div class='add'>+	  [ruby-dev:41924]</div><div class='add'>+</div><div class='add'>+Wed Aug 11 11:01:15 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: don't use // comment.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 06:18:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_stat): Pathname#stat translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 21:18:04 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_[ifr]): don't allow complex with in-exact</div><div class='add'>+	  imaginary zero to be converted.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 20:56:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: suppress a warning.</div><div class='add'>+</div><div class='add'>+	* test/test_mutex_m.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 20:56:13 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date::Format::Bag): use Struct.</div><div class='add'>+	  as an experimental.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 20:45:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_rename): Pathname#rename translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 20:16:19 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/resolv.rb (get_info): get rid of a warning.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 19:56:13 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: [ruby-core:31658]</div><div class='add'>+</div><div class='add'>+Tue Aug 10 17:24:56 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: rb_tainted_str_new_cstr() is an alias of</div><div class='add'>+	  rb_tainted_str_new2().</div><div class='add'>+</div><div class='add'>+Tue Aug 10 15:24:30 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h,</div><div class='add'>+	  ext/bigdecimal/extconf.rb: BASE and BASE_FIG are defined</div><div class='add'>+	  based on the size of BDIGIT.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h:</div><div class='add'>+	  use BDIGIT for Real#frac.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 15:19:45 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c:</div><div class='add'>+	  add extern declaration of rb_cBigDecimal.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 14:09:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest::parse_uri):</div><div class='add'>+	  rollup leading slashes. [ruby-core:31657]</div><div class='add'>+	  patched by Jamison Wilde</div><div class='add'>+	  NOTE: //authority/path is valid relative URI both RFC2396 and</div><div class='add'>+	  RFC3986. So when give a relative URI-like string to URI lib,</div><div class='add'>+	  users must care leading slashes.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 11:26:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (httpd): SIGQUIT and SIGHUP are not guaranteed to exist.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 06:26:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_readlink): Pathname#readlink translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 22:15:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_open): Pathname#open translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 22:11:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_exit_action): use</div><div class='add'>+	  Process.spawn instead of Process.fork.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 15:59:02 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: rename unused variable.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: rename unused variable.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: remove unused variable.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 14:10:06 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Fix type of mimeout_state.buf.</div><div class='add'>+	  [nkf-bug:20079]</div><div class='add'>+</div><div class='add'>+Mon Aug  9 06:52:59 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (sys_warning_1): show error message.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 06:50:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_require_too_long_filename):</div><div class='add'>+	  clear -w option.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 00:18:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($ignore_error): initialize after $nmake.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 19:16:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_make_link): Pathname#make_link</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 16:42:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem.find_files): reverted to use globbing.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem.find_files): fixed search order same as</div><div class='add'>+	  default behavior.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb, lib/rubygems.rb (Gem.suffixes): return truly</div><div class='add'>+	  require-able suffixes only.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 13:20:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_ftype): Pathname#ftype translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 12:41:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_escape): no similar messages twice.</div><div class='add'>+	  [ruby-core:31048]</div><div class='add'>+</div><div class='add'>+Sun Aug  8 10:07:45 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): suppress warnings.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 08:58:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RUBY_H_INCLUDES): add subst.h.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 08:55:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ruby_snprintf): printf attribute.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 07:47:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rbconfig/obsolete.rb: show the location which use Config.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 07:29:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_fnmatch): Pathname#fnmatch and</div><div class='add'>+	  Pathname#fnmatch? translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 07:18:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/subst.h (snprintf): redefinition moved from ruby.h.</div><div class='add'>+	  (vsnprintf): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 00:41:42 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/subst.h: new file for substitute standard functions.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: don't substitute "close", etc. here.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: include ruby/subst.h at last.</div><div class='add'>+	  This prevents substituting "close" in unistd.h.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 19:51:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil.invoke_ruby): merge stdout and stderr</div><div class='add'>+	  if capture_stderr is :merge_to_stdout.</div><div class='add'>+	  (assert_normal_exit): print abnormal output properly.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 19:04:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/close.c: undef the macros "getpeername", "getsockname" and</div><div class='add'>+	  "shutdown" to prevent infinite recursion.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 18:37:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/close.c: undef the macro "close" to prevent infinite</div><div class='add'>+	  recursion.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 18:20:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_lchown): Pathname#lchown translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 17:49:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: moved BROKEN_CLOSE replacements from</div><div class='add'>+	  include/ruby/ruby.h.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 17:40:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb, lib/rbconfig/obsolete.rb: warn obsolete and</div><div class='add'>+	  deprecated Config.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 17:18:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): follow the change of</div><div class='add'>+	  install-rb-default line format at r28850, which causes second</div><div class='add'>+	  run to create dummy makefiles.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 14:08:44 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: change instance variable to global.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 13:59:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_sub_ext): don't clobber shared string.</div><div class='add'>+	  [ruby-core:31640]</div><div class='add'>+</div><div class='add'>+Sat Aug  7 13:33:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): fix for VM_METHOD_TYPE_NOTIMPLEMENTED.</div><div class='add'>+	  [ruby-dev:41953]</div><div class='add'>+</div><div class='add'>+Sat Aug  7 09:47:06 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: fix checking version of GCC.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 09:31:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (Init_pathname): fix number of arguments for</div><div class='add'>+	  Pathname#chown.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 09:28:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): use assert.  fix</div><div class='add'>+	  faildesc.</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb (test_lchmod): test Pathname#lchmod</div><div class='add'>+	  using assert_normal_exit.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 08:26:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_chown): Pathname#chown translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 02:09:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_lchmod): Pathname#lchmod translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 21:30:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_chmod): Pathname#chmod translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 20:13:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_div): divided by infinity should be zero.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_div): divided by float zero should be</div><div class='add'>+	  infinity.  [ruby-core:31626]</div><div class='add'>+</div><div class='add'>+Fri Aug  6 18:59:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): rb_str_modify depends on the length, so</div><div class='add'>+	  resize instead.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 18:56:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (clean-ext): fixed directories to be removed.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 17:42:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: add space at the beginning of @ignore_error.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 17:38:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean): add  prelude.c, config.log, and rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* common.mk (distclean): remove encdb.h, config.log, and rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 17:35:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: ignore error from RMDIRS.</div><div class='add'>+</div><div class='add'>+	* enc/depend: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 05:53:32 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_mtime): Pathname#mtime translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 22:09:30 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_ctime): Pathname#ctime translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 21:20:31 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (NODE_ARGSCAT, NODE_ARGSPUSH): drop unused ARGSCAT</div><div class='add'>+	  results when popped is true.  [ruby-dev:41933], [Bug #3658]</div><div class='add'>+	  This is retry of r28870 and r28873 which were reverted.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 20:13:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (String functions): mention</div><div class='add'>+	  rb_str_resize and rb_str_set_len.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 19:59:55 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_set_len): bail out when buffer overflowed</div><div class='add'>+	  probably.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 18:36:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_marshal_load): should check the argument.</div><div class='add'>+	  [ruby-core:31622]</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_marshal_load): ditto</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): should not append a dot if no fractal part</div><div class='add'>+	  exists.  [ruby-dev:41936]</div><div class='add'>+</div><div class='add'>+Thu Aug  5 17:11:43 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (void_expr_gen): add 'possibly' to warning message.</div><div class='add'>+	  [ruby-core:31611]</div><div class='add'>+</div><div class='add'>+Thu Aug  5 16:57:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_make_pattern): fold continuous PLAINs to get rid of</div><div class='add'>+	  snail at too deep path.  [ruby-dev:41871]</div><div class='add'>+</div><div class='add'>+Thu Aug  5 16:42:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_set_len): should fail to modify shared string.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 14:12:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): ensure sopath to be modifiable</div><div class='add'>+</div><div class='add'>+Thu Aug  5 12:39:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_make_independent_expand): fix buffer overflow</div><div class='add'>+	  while shrinking.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 06:42:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): call rb_str_modify before rb_str_set_len.</div><div class='add'>+</div><div class='add'>+Wed Aug  4 19:37:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_set_len): rb_str_modify cannot work before the</div><div class='add'>+	  length is set, which is a precondition for rb_str_modify.</div><div class='add'>+</div><div class='add'>+Wed Aug  4 15:47:21 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): no need to create the directory</div><div class='add'>+	  at each library file. this change makes making ext faster.</div><div class='add'>+</div><div class='add'>+Wed Aug  4 06:25:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_atime): Pathname#atime translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 21:16:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (Init_Random): add Random::DEFAULT.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 21:01:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_check_hash_type): added.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 20:30:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): never equal to infinity.</div><div class='add'>+	  [ruby-core:31603]</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_div): hack for integral float divisor.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 14:42:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: remove purelib, fixes a bug in r28440, r28441.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: ditto.</div><div class='add'>+</div><div class='add'>+	* template/Doxyfile.tmpl: ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 14:19:42 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (setup_pager): no need to check the existence</div><div class='add'>+	  of pagers. the following code checks whether they are executable or</div><div class='add'>+	  not.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 12:03:57 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/runruby.rb: no purelib.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 07:52:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/purelib.rb: no longer used since the default load path of</div><div class='add'>+	  miniruby is empty.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 00:53:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_core.h: fixed typo.  reported by Rocky Bernstein</div><div class='add'>+	  &lt;rockyb AT rubyforge.org&gt; at [ruby-core:31596].</div><div class='add'>+</div><div class='add'>+Mon Aug  2 21:51:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): rb_str_set_len modifies ptr</div><div class='add'>+	  since r26303.</div><div class='add'>+</div><div class='add'>+Mon Aug  2 21:16:03 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: NONAMELESSUNION defined only if gcc</div><div class='add'>+	  version is older than 3.4.4. [ruby-core:31567] [Bug #3637]</div><div class='add'>+	* ext/win32ole/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug  2 16:34:32 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_thread_join): need to wait thread, of course.</div><div class='add'>+	  [ruby-dev:41911]</div><div class='add'>+</div><div class='add'>+Mon Aug  2 12:22:22 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): wrong condition. [ruby-core:31591]</div><div class='add'>+</div><div class='add'>+Mon Aug  2 05:34:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_realdirpath): Pathname#realdirpath</div><div class='add'>+	  translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 23:04:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: describe superclasses explicitly.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 23:04:35 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_modify_expand, rb_str_resize): get rid of</div><div class='add'>+	  repeating malloc and realloc.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 22:16:30 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_hash): use rb_memhash and</div><div class='add'>+	  take care of negative finite numbers properly.</div><div class='add'>+	  [ruby-core:31582][Bug #3640]</div><div class='add'>+</div><div class='add'>+Sun Aug  1 20:57:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_realpath): Pathname#realpath translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 17:27:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: needs stddef.h for size_t.  a patch from</div><div class='add'>+	  Akio Tajima at [ruby-dev:41905].</div><div class='add'>+</div><div class='add'>+Sun Aug  1 14:59:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_sub_ext): Pathname#sub_ext translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 10:23:48 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.parse_opts): set VERBOSE to true when debug</div><div class='add'>+	  switch called in irb.  a patch from Andrew Grimm in</div><div class='add'>+	  [ruby-core:31558].</div><div class='add'>+</div><div class='add'>+Sun Aug  1 09:35:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_op): comparison of bignum and infinity has returned 1</div><div class='add'>+	  or -1, but it must return boolean.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 09:44:25 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): don't clear the method cache if the</div><div class='add'>+	  included module has no method.</div><div class='add'>+	  reported by Eric Wong.  [ruby-core:31559]</div><div class='add'>+</div><div class='add'>+Sun Aug  1 09:21:32 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_sub): Pathname#sub translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sun Aug  1 09:12:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: latest x86_64 mingw defines stati64.</div><div class='add'>+	  [ruby-core:27516]</div><div class='add'>+</div><div class='add'>+Sun Aug  1 08:51:52 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: fix typo. [ruby-core:31564][Bug #3636]</div><div class='add'>+</div><div class='add'>+Sat Jul 31 23:15:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_inspect): Pathname#inspect translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 15:50:03 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (Init_pathname): The alias,</div><div class='add'>+	  Pathname#to_path, is translated from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 09:12:36 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_to_s): Pathname#to_s translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 08:20:07 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/ssl.rb (WEBrick::Utils.create_self_signed_cert):</div><div class='add'>+	  merged r28784 from ruby_1_8: wrongly created dummy SSL certificate</div><div class='add'>+	  with version == 3 (no such version) and serial == 0 (must be &gt;0).</div><div class='add'>+</div><div class='add'>+Fri Jul 30 21:43:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_hash): Pathname#hash translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Fri Jul 30 12:42:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (example): use IO#noecho to read password if</div><div class='add'>+	  possible, and defer until needed.  [ruby-dev:41889]</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (example): support starttls option.</div><div class='add'>+	  [ruby-dev:41888]</div><div class='add'>+</div><div class='add'>+Fri Jul 30 08:51:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): home directory must be absolute.</div><div class='add'>+	  [ruby-core:31537]</div><div class='add'>+</div><div class='add'>+Fri Jul 30 08:33:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): should check if could find user.</div><div class='add'>+	  [ruby-core:31538]</div><div class='add'>+</div><div class='add'>+Fri Jul 30 07:59:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_add_suffix): fixed a bug returning uninitialized</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+Fri Jul 30 07:48:04 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: use TK_XINCLUDES on tkConfig.sh when not empty,</div><div class='add'>+	  even if MacOS X Aqua version [ruby-dev:41883].</div><div class='add'>+</div><div class='add'>+Thu Jul 29 22:28:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_cmp): Pathname#&lt;=&gt; translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Thu Jul 29 06:51:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (EXT_SRCS): add ext/json/parser/parser.c.</div><div class='add'>+</div><div class='add'>+Thu Jul 29 05:52:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): pass baselen to rmext.</div><div class='add'>+</div><div class='add'>+Thu Jul 29 02:38:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: not [freebsd] but [freebsd*] for AS_CASE.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 22:23:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_eq): Pathname#{==,===,eql?} translated</div><div class='add'>+	  from pathname.rb.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 19:37:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): VC6 or later have stddef.h.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: need to include stddef.h for size_t.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: shouldn't declare as dllimport when building</div><div class='add'>+	  ruby itself (for Windows).</div><div class='add'>+</div><div class='add'>+Wed Jul 28 17:11:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/*.c: include missing.h</div><div class='add'>+</div><div class='add'>+Wed Jul 28 09:38:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: typos.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 09:24:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: (RB_PAGE_SIZE): renamed from PAGE_SIZE. [ruby-dev:41870]</div><div class='add'>+</div><div class='add'>+	* cont.c: (RB_PAGE_MASK): renamed from PAGE_MASK.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 23:09:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_taint): use rb_obj_taint.</div><div class='add'>+	  (path_untaint): Pathname#untaint translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 18:59:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_framework): added.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 18:33:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h, intern.h, missing.h, ruby.h, st.h, util.h: include</div><div class='add'>+	  config.h and defines.h for autoconf macros.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 16:27:38 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): typo.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 16:09:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, compile.c, dir.c, file.c, iseq.c, parse.y, random.c:</div><div class='add'>+	  clean unused-value warnings.</div><div class='add'>+</div><div class='add'>+	* cont.c, process.c, vm_exec.h: clean cast warnings.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 22:34:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_taint): Pathname#taint translated from</div><div class='add'>+	  pathname.rb.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 18:18:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (config.h): add include guard.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, bcc32/Makefile.sub (config.h): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 14:38:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XCFLAGS): missing.h needs config.h.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 14:08:47 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: revert a part of r28727.  config.h is expected</div><div class='add'>+	  to include only once, before including defines.h.</div><div class='add'>+	  including it here breaks some macro definitions.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 13:52:25 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: define BROKEN_CLOSE only on FreeBSD.</div><div class='add'>+	  This needs to merge to 1.9.2.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 13:01:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): should mark iseq itself other than normal</div><div class='add'>+	  iseq.  [ruby-dev:41880]</div><div class='add'>+</div><div class='add'>+Mon Jul 26 11:51:01 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: define BROKEN_CLOSE on FreeBSD.</div><div class='add'>+	  This fixes build failure on MSVC. [ruby-core:31481]</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, include/ruby/missing.h:</div><div class='add'>+	  use BROKEN_CLOSE for replacing close(2).</div><div class='add'>+</div><div class='add'>+Mon Jul 26 09:51:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): mark only self of normal iseqs, not</div><div class='add'>+	  nodes.  [ruby-dev:41874]</div><div class='add'>+</div><div class='add'>+Sun Jul 25 05:37:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): honor the result of infinite? method of the</div><div class='add'>+	  other.  [ruby-core:31470]</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#.suppress_warning): added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (TestFloat#test_Float): suppress</div><div class='add'>+	  warnings under --verbose.</div><div class='add'>+</div><div class='add'>+Fri Jul 23 16:07:32 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mutex_m.rb (sleep): added Mutex_m#sleep to support</div><div class='add'>+	  ConditionVariable.</div><div class='add'>+</div><div class='add'>+Fri Jul 23 15:09:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_MINGW32): ignore msvc suffix.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_TRY_CFLAGS): try with werror turned on.</div><div class='add'>+</div><div class='add'>+Fri Jul 23 09:02:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): fixed out-of-boundary access at invalid</div><div class='add'>+	  multibyte characters.</div><div class='add'>+</div><div class='add'>+Fri Jul 23 09:00:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XCFLAGS): reverted mistakenly removed option.</div><div class='add'>+	  [ruby-dev:41872]</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: needs ruby/config.h.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 20:58:55 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_EXTERN): unnecessary after all.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 17:33:47 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_i): allow complex with imaginary zero to be</div><div class='add'>+	  converted.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_f, nucomp_to_r): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 20:12:56 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): fix memory leak; pthread_attr_destroy</div><div class='add'>+	  must be called even when pthread_getattr_np is used.</div><div class='add'>+	  [ruby-core:31269]</div><div class='add'>+</div><div class='add'>+Thu Jul 22 16:27:41 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): fix broken Regexp#inspect when it</div><div class='add'>+	  is ASCII-8BIT and non-ASCII character.</div><div class='add'>+	  The length of character should be from original byte string.</div><div class='add'>+	  [ruby-core:31431]</div><div class='add'>+</div><div class='add'>+Thu Jul 22 14:30:17 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: add prototype for ruby_close().</div><div class='add'>+</div><div class='add'>+Thu Jul 22 12:58:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_EXTERN): ignore invalid attribute.</div><div class='add'>+</div><div class='add'>+	* configure.in: fix for older autoconf.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 12:02:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/{intern,io}.h: add missing prototypes.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 06:38:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XCFLAGS): use -fvisibility=hidden if possible.</div><div class='add'>+</div><div class='add'>+	* configure.in (RMDIR): use --ignore-fail-on-non-empty if possible.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_EXTERN): FUNCTION-BODY was missing.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 03:02:55 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: fix signature of rb_ensure and rb_rescue to match</div><div class='add'>+	  implementation.</div><div class='add'>+</div><div class='add'>+Wed Jul 21 23:07:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in: get rid of embedding an absolute path.</div><div class='add'>+</div><div class='add'>+Wed Jul 21 15:22:17 2010  Evan Phoenix &lt;evan@fallingsnow.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb, gem_prelude.rb: Load code from</div><div class='add'>+	  from gems properly.</div><div class='add'>+</div><div class='add'>+Wed Jul 21 15:15:02 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: add short documentation about named reference.</div><div class='add'>+	  [ruby-core:31294]</div><div class='add'>+</div><div class='add'>+Wed Jul 21 15:00:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (local_push_gen): disable unused variable warnings in</div><div class='add'>+	  eval.  [ruby-dev:41869]</div><div class='add'>+</div><div class='add'>+Wed Jul 21 13:57:37 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_boundp): revert r28543, r28564.</div><div class='add'>+	  They may be merged in Ruby 2.0. [ruby-core:31217]</div><div class='add'>+</div><div class='add'>+Wed Jul 21 13:37:35 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb: Have URI#route_to, URI#route_from accept</div><div class='add'>+	  string-like arguments [ruby-core:30961]</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb: ditto for URI.join, URI#merge</div><div class='add'>+</div><div class='add'>+Wed Jul 21 12:39:15 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (CMath#cbrt): cbrt should accept a negative real</div><div class='add'>+	  numbers.  [ruby-core:31234]</div><div class='add'>+</div><div class='add'>+Wed Jul 21 12:31:30 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb: Have URI() and URI.join accept URI objects in</div><div class='add'>+	  addition to strings. [ruby-core:30960]</div><div class='add'>+</div><div class='add'>+Wed Jul 21 11:55:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_hdtoa): renamed from BSD__hdtoa.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 11:35:11 2010  Evan Phoenix  &lt;evan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Load the custom require if --disable-rubygems</div><div class='add'>+	  was used.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 11:27:18 2010  Evan Phoenix  &lt;evan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: Pull in rubygem's custom require</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Handle always having custom require available</div><div class='add'>+</div><div class='add'>+Tue Jul 20 18:39:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RSTRING_GETMEM): new macro to get ptr and</div><div class='add'>+	  len at once.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp, str_eql, rb_str_eql): trivial improvements.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 18:23:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (closure_data_type),</div><div class='add'>+	  ext/fiddle/function.c (function_data_type): rb_data_type_t has</div><div class='add'>+	  changed.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 14:21:38 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: don't call after_gc_sweep() after when garbage_collect()</div><div class='add'>+	  was called, because rb_sweep_method_entry() free live unlinked</div><div class='add'>+	  method entries. [ruby-core:31169]</div><div class='add'>+</div><div class='add'>+Tue Jul 20 12:42:06 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (rb_getaddrinfo): according to my</div><div class='add'>+	  valgrind output this variable should be initialized beforehand.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 12:50:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_flush_buffer): write and buffer operations should be</div><div class='add'>+	  monolithic.  [ruby-core:31348]</div><div class='add'>+</div><div class='add'>+Tue Jul 20 12:27:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#copy): check file name</div><div class='add'>+	  separator boundary.  [ruby-core:31360]</div><div class='add'>+</div><div class='add'>+Mon Jul 19 18:34:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (get_strpath): check the type.</div><div class='add'>+	  (path_initialize): bypass to_path call for T_STRING.</div><div class='add'>+	  (path_freeze): implemented.</div><div class='add'>+</div><div class='add'>+	* ext/pathname/lib/pathname.rb (Pathname#freeze): removed.</div><div class='add'>+</div><div class='add'>+Mon Jul 19 12:33:29 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_clear): should not unshare embedded array, and</div><div class='add'>+	  should make unshared array embedded.</div><div class='add'>+</div><div class='add'>+Mon Jul 19 09:00:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (Kernel#instance_eval): add an incompatible change since</div><div class='add'>+	  the 1.9.1 release.  [ruby-core:31336]</div><div class='add'>+</div><div class='add'>+Mon Jul 19 05:46:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_data_type_t): add new feature macros.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 21:20:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_clear): no need to duplicate buffer just before</div><div class='add'>+	  clearing.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 16:31:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_data_type_t): restructured.  [ruby-dev:41862]</div><div class='add'>+	  add parent member.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_typeddata_inherited_p): new function.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 01:09:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_initialize): return a value.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 00:02:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/lib/pathname.rb (Pathname#initialize): removed.</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c (path_initialize): implemented.</div><div class='add'>+	  (get_strpath): new function.</div><div class='add'>+	  (set_strpath): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 19:01:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (MiniTest::Unit#process_args): refactored.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 18:30:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: don't depend on pathname.rb if File.realpath</div><div class='add'>+	  is available.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 14:10:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_add_suffix): fixed type warnings.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 13:48:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pathname/lib/pathname.rb: moved from lib/pathname.rb.</div><div class='add'>+	  require pathname.so.</div><div class='add'>+</div><div class='add'>+	* ext/pathname/pathname.c: new file to define empty Pathname class.</div><div class='add'>+</div><div class='add'>+	* ext/pathname/extconf.rb: new file.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 13:04:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wakeup_alive): split from rb_thread_wakeup.</div><div class='add'>+	  merged from r13476.  c.f. [ruby-core:31320]</div><div class='add'>+</div><div class='add'>+Sat Jul 17 10:07:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: MiniTest::Unit is different class from</div><div class='add'>+	  Test::Unit, and install runner before loading test/minitest.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 14:58:38 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit.setup_argv): run tests only when</div><div class='add'>+	  any tests have not run.</div><div class='add'>+</div><div class='add'>+	* bin/testrb, test/runner.rb: use Test::Unit.start.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 12:06:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (ext-arch): prune directories start with '-'.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 21:43:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divide): must not use rb_rational_new1 for coercion</div><div class='add'>+	  because it returns an argument itself when canonical mode is set.</div><div class='add'>+	  [ruby-core:31279]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 21:38:31 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (bm_free): fix memory leak.  [ruby-core:30869] [Bug #3466]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 15:47:32 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (onig_search): don't skip non-ANYCHARs when</div><div class='add'>+	  .* fails to match. This causes to fail matching</div><div class='add'>+	  ANYCHAR_STAR with LOOK_BEHIND. This fix is workaround</div><div class='add'>+	  and disable the optimization. [ruby-dev:41851]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 06:11:29 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/attribute_manager.rb: fixing ri output when special</div><div class='add'>+	  characters are inside html tags.  Thanks Tomo Kazahaya! [Bug #3512]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 06:01:42 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (guess_local_offset): use the UTC offset of an older date on</div><div class='add'>+	  64bit time_t environment.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 02:42:51 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (setup_argv): convert to using optparse, adding</div><div class='add'>+	  --help and -I. [ruby-core:30154]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 00:35:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (localtime_with_gmtoff_zone): renamed from</div><div class='add'>+	  localtime_with_gmtoff and return the timezone abbreviation name.</div><div class='add'>+	  (guess_local_offset): return the isdst and timezone abbreviation name.</div><div class='add'>+	  (localtimew): use the returned isdst and timezone abbreviation name.</div><div class='add'>+	  [ruby-core:31275]</div><div class='add'>+</div><div class='add'>+Wed Jul 14 20:23:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_func_id), vm_eval.c (rb_iterate),</div><div class='add'>+	  vm_insnhelper.c (vm_yield_with_cfunc): as the name of a C-level</div><div class='add'>+	  block, use the current method ID at the creation point.</div><div class='add'>+	  [ruby-dev:41852]</div><div class='add'>+</div><div class='add'>+Wed Jul 14 18:18:05 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (match_at): add end point to enclen's argument.</div><div class='add'>+	  This only effect on compiling with -DONIG_DEBUG_MATCH.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 21:34:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: libedit is missing declaration of</div><div class='add'>+	  rl_getc.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 21:31:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_daemon): split from proc_daemon.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork_err): suppress gcc 4.4 warnings.</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 21:01:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (establishShell): chfunc must not raise any</div><div class='add'>+	  exceptions.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 20:58:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_DEFAULT_ARCH): adjust for target</div><div class='add'>+	  cpu. [ruby-core:31243]</div><div class='add'>+</div><div class='add'>+Tue Jul 13 20:46:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_close): should not pass a dynamic</div><div class='add'>+	          string to rb_raise directly.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 12:04:57 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/close.c: keep original errno.</div><div class='add'>+</div><div class='add'>+Mon Jul 12 01:58:56 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Fix unused variable warnings.</div><div class='add'>+	  Patch by Run Paint [ruby-core:30991]</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/drb/invokemethod.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/slex.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun Jul 11 21:20:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT{,.ja} (rb_block_call): fixed about third/fourth</div><div class='add'>+	  arguments to the block.  based on [ruby-core:31192] by Asher</div><div class='add'>+	  Haig.  [Bug #3558]</div><div class='add'>+</div><div class='add'>+Sun Jul 11 17:01:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in ({,dist-,real-}clean-ext): should also omit</div><div class='add'>+	  semicolon when omitting "in WORDS" of FOR-statement.</div><div class='add'>+</div><div class='add'>+	* tool/rmdirs: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 11 11:07:42 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_driver.rb (test_formatter): add a test.  a</div><div class='add'>+	  patch from caleb clausen in [ruby-core:31182].</div><div class='add'>+</div><div class='add'>+Sat Jul 10 21:43:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): fix precision handling for</div><div class='add'>+	  %:z and %::z.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 22:32:54 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: unused declarations removed.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 21:20:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): clear colons at unknown</div><div class='add'>+	  directive.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 21:04:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: don't call tzset.  strftime.c doesn't depend on</div><div class='add'>+	  the global timezone.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 20:30:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): 24:00 should be the beginning of the next</div><div class='add'>+	  day even if the leap second, 23:59:60, exists.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 01:08:46 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/emitter.rb (initialize): line_width is</div><div class='add'>+	  a valid option passed to the emitter.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_psych.rb: corresponding tests.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 00:49:46 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/emitter.c (line_width, set_line_width): preferred line may</div><div class='add'>+	  be set on the emitter.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_emitter.rb: corresponding tests.</div><div class='add'>+</div><div class='add'>+Thu Jul  8 15:47:34 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_conv_enc_opts): fix infinite loop because</div><div class='add'>+	  of ISO-2022-JP conversion with empty string.</div><div class='add'>+	  patched by Brian Buchanan [ruby-core:31107]</div><div class='add'>+</div><div class='add'>+Thu Jul  8 08:16:57 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb (push): adding version</div><div class='add'>+	  and header emit options.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_psych.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Thu Jul  8 08:01:03 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/emitter.c: updating documentation about emit options</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/core_ext.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb (dump): passing emit options to emitter.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/nodes/node.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/emitter.rb: sending emit options to</div><div class='add'>+	  YAML emitter. [ruby-core:28318]</div><div class='add'>+</div><div class='add'>+Thu Jul  8 06:05:58 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): support %:z and %::z.</div><div class='add'>+	  [ruby-dev:41841]</div><div class='add'>+</div><div class='add'>+Thu Jul  8 00:15:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: provide workaround for gem activation.  Currently,</div><div class='add'>+	  gem activation does not work by default.  Now it can be worked</div><div class='add'>+	  around by requiring "rubygems" first.  [ruby-core:29486]</div><div class='add'>+	  a patch from Evan Phoenix in [ruby-core:31096].</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 10:01:34 2010  Adrian Bloomer  &lt;adrian.bloomer@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rev): Replaced fix_rev with '~num | FIXNUM_FLAG'.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 13:22:20 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (ruby_find_basename): set correct baselen.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 13:02:59 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_boundp): respond_to?(:protected_method,</div><div class='add'>+	  true) should return true.  Pointed out by Marc-Andre Lafortune.</div><div class='add'>+	  [ruby-dev:41837]</div><div class='add'>+</div><div class='add'>+Wed Jul  7 12:00:24 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (ruby_find_basename): should initialize f.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 11:44:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_raise): add invalid header to</div><div class='add'>+	  exceptions.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 10:26:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/close.c: ignore ECONNRESET.</div><div class='add'>+	  FreeBSD wrongly sets ECONNRESET on close(2) and</div><div class='add'>+	  it causes false-negative exceptions. [ruby-dev:41778]</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+Tue Jul  6 22:57:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (nogvl_copy_stream_sendfile): jump to retry_sendfile directly</div><div class='add'>+	  to avoid select() on a socket which TCP state is CLOSED.</div><div class='add'>+	  patch by Eric Wong.  [ruby-core:31053]</div><div class='add'>+</div><div class='add'>+Tue Jul  6 21:45:34 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io/console/console.c (winsize_row): should return actual screen</div><div class='add'>+	  size, not buffer size.</div><div class='add'>+</div><div class='add'>+Tue Jul  6 08:35:58 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb (handler): add a more helpful error message</div><div class='add'>+	  when calling import_symbol or import_function without calling</div><div class='add'>+	  dlload.  Thanks nobu! [ruby-core:30996]</div><div class='add'>+</div><div class='add'>+Tue Jul  6 00:34:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): free altstack to prevent memory leak.  a patch</div><div class='add'>+	  from Tomoyuki Chikanaga in [ruby-dev:41815]. [Bug #3537]</div><div class='add'>+</div><div class='add'>+Tue Jul  6 00:29:27 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (NONASCII_MASK): NONASCII_MASK must be unsigned.</div><div class='add'>+	  [ruby-dev:41782]</div><div class='add'>+</div><div class='add'>+Mon Jul  5 16:05:39 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_boundp): Return false for protected</div><div class='add'>+	  methods when called from Kernel#respond_to?. [ruby-dev:40461]</div><div class='add'>+</div><div class='add'>+Mon Jul  5 12:32:01 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb (parse_string): support</div><div class='add'>+	  timezones that are not one hour off. [ruby-core:31023]</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun Jul  4 22:49:54 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_syntax.rb: split test_syntax from test_system.rb.</div><div class='add'>+</div><div class='add'>+Sun Jul  4 22:02:02 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (test_syntax): unified with test_syntax2.</div><div class='add'>+</div><div class='add'>+Sun Jul  4 21:00:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (test_syntax2): moved from sample/test.rb</div><div class='add'>+	  [ruby-dev:41721]</div><div class='add'>+</div><div class='add'>+Sun Jul  4 17:13:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (swallow, prepare_getline_args, rb_io_getline_1): fix for</div><div class='add'>+	  paragraph mode reading in non-ascii-compatible encoding.</div><div class='add'>+	  [ruby-dev:41803]</div><div class='add'>+</div><div class='add'>+Sat Jul  3 16:14:10 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): add two new constants</div><div class='add'>+	  BigDecimal::INFINITY and BigDecimal::NAN.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (BigMath.exp): modify the</div><div class='add'>+	  behaviors for infinity arguments as same as Math.exp.</div><div class='add'>+</div><div class='add'>+Sat Jul  3 09:47:26 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb(visit_Psych_Nodes_Scalar):</div><div class='add'>+	  teaching Psych to deserialize DateTime objects. [Bug #1390]</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb(visit_DateTime): added a</div><div class='add'>+	  method for serializing DateTime objects.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb(parse_time): add method for</div><div class='add'>+	  parsing times objects from a string.</div><div class='add'>+</div><div class='add'>+	* test/psych/test_date_time.rb: tests for dumping DateTime objects.</div><div class='add'>+</div><div class='add'>+Sat Jul  3 09:13:55 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb (visit_Time): use</div><div class='add'>+	  Time#nsec to accurately serialize time objects. [ruby-core:29233]</div><div class='add'>+</div><div class='add'>+Fri Jul  2 23:30:23 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_inplace_mode_set): prohibits an assignment of a tainted</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+	* file.c (ruby_find_basename, ruby_find_extname): split from</div><div class='add'>+	  rb_file_s_basename() and rb_file_s_extname().</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_add_suffix): support arbitrary length of the suffix</div><div class='add'>+	  to get rid of the potential buffer overflow.</div><div class='add'>+	  reported by tarui.</div><div class='add'>+</div><div class='add'>+Fri Jul  2 05:31:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long): accept LONG_MAX &lt; x &lt; LONG_MAX+1 and</div><div class='add'>+	  LONG_MIN-1 &lt; x &lt; LONG_MIN as well because they are converted</div><div class='add'>+	  into the valid range of long by truncation.</div><div class='add'>+	  (rb_num2ulong): accept ULONG_MAX &lt; x &lt; ULONG_MAX+1 and</div><div class='add'>+	  LONG_MIN-1 &lt; x &lt; LONG_MIN as well.</div><div class='add'>+	  (rb_num2ll): accept LLONG_MAX &lt; x &lt; LLONG_MAX+1 and</div><div class='add'>+	  LLONG_MIN-1 &lt; x &lt; LLONG_MIN.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 23:10:25 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Improving documentation.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 22:15:01 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2ulong): fix the lower limit for float.</div><div class='add'>+	  [ruby-dev:41361]</div><div class='add'>+</div><div class='add'>+Thu Jul  1 21:37:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): integrated with</div><div class='add'>+	  runexec.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 16:19:53 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_start_func_1): don't call</div><div class='add'>+	  native_thread_init_stack(th) on cygwin to avoid the segv</div><div class='add'>+	  introduced by r27789. Cygwin's signal implementation is half</div><div class='add'>+	  baked so USE_SIGNALSTACK is not defined and it needs another</div><div class='add'>+	  treatment.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 13:00:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (test-knownbug): ignore known bugs.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 08:40:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): suppress empty instance variable entry on</div><div class='add'>+	  compatible dump objects.</div><div class='add'>+</div><div class='add'>+Wed Jun 30 07:29:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_script_from_stdin): by using</div><div class='add'>+	  a pipe, get rid of not-well-defined behavior after the child</div><div class='add'>+	  process terminated in pty.</div><div class='add'>+</div><div class='add'>+Wed Jun 30 02:30:26 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack): use pthread_getthrds_np() for AIX.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 21:11:15 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_write): add RB_GC_GUARD.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 19:39:59 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb (is_ruby64): check</div><div class='add'>+	  ruby binary is mswin64 or mingw64. [ruby-dev:41756]</div><div class='add'>+</div><div class='add'>+Tue Jun 29 14:18:21 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_realpath_internal, realpath_rec): skip UNC share root</div><div class='add'>+	  on DOSISH platforms.</div><div class='add'>+	  http://pc12.2ch.net/test/read.cgi/tech/1272248179/600</div><div class='add'>+</div><div class='add'>+Tue Jun 29 11:52:33 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (unlink_heap_slot, slot_sweep): unlink heaps_slot of</div><div class='add'>+	  heaps_slot linked list if heaps_slot is empty at slot_sweep.</div><div class='add'>+	  fixed [ruby-dev:41543], [ruby-core:24894].</div><div class='add'>+</div><div class='add'>+Tue Jun 29 01:22:08 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/fiddle.h: added FFI type detection to avoid bug in ffi</div><div class='add'>+	  header files. Thanks Yugui! [ruby-core:30917]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 22:14:22 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_driver.rb (TestRDocRIDriver#test_formatter):</div><div class='add'>+	  fix a test accordingly to r28455.</div><div class='add'>+</div><div class='add'>+Mon Jun 28 21:56:14 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_resize, rb_fd_copy): avoid NULL dereference upon</div><div class='add'>+	  failed realloc by using xrealloc instead of not realloc.  a patch</div><div class='add'>+	  from Jim Meyering &lt;meyering at redhat.com&gt; in [ruby-core:30920]</div><div class='add'>+	  [Bug #3489]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 20:32:33 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb (test_offset_vtbl): check</div><div class='add'>+	  that Ruby is 32bit or 64bit binary in order to get correct offset</div><div class='add'>+	  value. [ruby-dev:41741]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 05:32:51 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (RDoc::RI::Driver#formatter): should use bs</div><div class='add'>+	  format when stdout is piped.  [ruby-core:30734]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 03:12:03 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_class.rb: add a test for [ruby-core:30843].</div><div class='add'>+</div><div class='add'>+Mon Jun 28 02:43:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_init_copy): when class is dup'ed, a metaclass of the</div><div class='add'>+	  class should be attached to the dup'ed class, not the original</div><div class='add'>+	  class.  [ruby-core:30843] [Bug #3461]</div><div class='add'>+</div><div class='add'>+Sun Jun 27 23:31:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h, io.c: reverted r21709.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): nothing to read if EOF reached</div><div class='add'>+	  while reading shebang.  [ruby-core:30910]</div><div class='add'>+</div><div class='add'>+Sun Jun 27 13:25:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (simple_sendfile): don't try to send data more than SSIZE_MAX</div><div class='add'>+	  with single sendfile call..</div><div class='add'>+	  based on the patch by Eric Wong.  [ruby-core:30908]</div><div class='add'>+</div><div class='add'>+Sun Jun 27 10:41:38 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/require_paths_builder.rb (write_require_paths_file_if_needed):</div><div class='add'>+	  no reason that bin directory should be included in $LOAD_PATH.</div><div class='add'>+	  it is for executable files, but not libraries.  [ruby-core:25936]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 13:07:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (enable-debug-env): option for RUBY_DEBUG env.</div><div class='add'>+</div><div class='add'>+Sat Jun 26 11:56:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clear-installed-list): put redirection before set</div><div class='add'>+	  command, since it seems to be handled by nmake in special way.</div><div class='add'>+	  [ruby-dev:41711]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 10:08:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): no needs to copy the</div><div class='add'>+	  original ENV, since it's done in spawn automatically.</div><div class='add'>+	  [ruby-dev:41733]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 08:44:22 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (zlib): new methods.  [ruby-dev:41706] [Bug #3472]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 07:59:18 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb (test_offset_vtbl): check</div><div class='add'>+	  that OS is Windows 32bit or Windows 64bit in order to get</div><div class='add'>+	  correct offset value.</div><div class='add'>+</div><div class='add'>+Sat Jun 26 04:39:12 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/func.rb (call): don't overwrite original arguments</div><div class='add'>+	  to defend from GC.</div><div class='add'>+	* test/dl/test_func.rb (test_string): add test for above.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 11:45:36 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Fixing a bug that prevented CSV from parsing</div><div class='add'>+	  all multi-line fields correctly.  Patch by Rob Biedenharn.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 10:07:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err):</div><div class='add'>+	  return the exit status.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): change the</div><div class='add'>+	  environment of spawned process only.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): get rid of possible</div><div class='add'>+	  deadlock.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 06:24:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (httpd): MaxClients also should be integer.</div><div class='add'>+	  [ruby-dev:41724] [Bug #3477]</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (setup): fix of word splitting.  [ruby-dev:41723]</div><div class='add'>+	  [Bug #3476]</div><div class='add'>+</div><div class='add'>+Fri Jun 25 01:07:17 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (static inline rb_gc_guarded_ptr): prevent</div><div class='add'>+	  RB_GC_GUARD_PTR being removed by optimization.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 06:22:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): the workaround</div><div class='add'>+	  for Mac OS X moved from rsock_getaddrinfo.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 05:44:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (struct dump_arg, struct load_arg): merge taint and</div><div class='add'>+	  untrust flags into infection as bit flags.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_nbyte, clear_dump_arg): infect the buffer as soon</div><div class='add'>+	  as appending, because it might have been finalized already at</div><div class='add'>+	  exit.  based on a patch by Tomoyuki Chikanaga</div><div class='add'>+	  at [ruby-dev:41672].  [Bug #3463]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 23:49:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (str_is_number): renamed from str_isnumber to</div><div class='add'>+	  avoid confusion to str_isnumber in ext/socket/getaddrinfo.c.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 23:45:31 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (stringio): new methods.  [ruby-dev:41687] [Bug #3469]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 22:52:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c: don't use __P.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 21:32:08 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (reg_get_typelib_file_path): try win64</div><div class='add'>+	  registry entry at first. [ruby-dev:41674] [Bug #3464]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 21:17:32 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): new workaround for</div><div class='add'>+	  getaddrinfo problem on Mac OS X Snow Leopard.  [ruby-core:29427]</div><div class='add'>+	  patch by Wataru Kimura.  [ruby-core:30842]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 17:12:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (ptr): new method and deprecated methods.  [ruby-dev:41681]</div><div class='add'>+</div><div class='add'>+	* ext/pty/{README,README.ja}: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_check): add rdoc.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 12:44:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb (test_dup_warn): read in UTF-8</div><div class='add'>+	  encoding regardless environment.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (invoke_ruby): add encoding option.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 06:44:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (fchown): need to check.  a patch by Eric Wong</div><div class='add'>+	  at [ruby-core:30818].</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv): check for setting owner/group.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 23:10:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (num_exact): fix for mathn.  [ruby-dev:41599]</div><div class='add'>+</div><div class='add'>+Tue Jun 22 22:00:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb: suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 21:33:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/optparse/test_summary.rb: fixed superclass so that it run</div><div class='add'>+	  solely.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 19:57:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): should add lvar to vars and</div><div class='add'>+	  used.  [ruby-dev:41666]</div><div class='add'>+</div><div class='add'>+Tue Jun 22 13:23:13 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: Forward #trust, #untrust, #taint and #untaint</div><div class='add'>+	  to both the delegator and __getobj__ [ruby-core:26138]</div><div class='add'>+</div><div class='add'>+Mon Jun 21 23:41:08 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c (error_print): clear raised_flag while error-printing</div><div class='add'>+	  to avoid hang. [ruby-core:27608]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_endblock_raise): add test for</div><div class='add'>+	  above.</div><div class='add'>+</div><div class='add'>+Sun Jun 20 16:17:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.c (Init_id): add underscore name.</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_unused_var): ignore underscore name.</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_unused_var): use same format as shadowing local</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): get rid of adding extra name for</div><div class='add'>+	  shadowing local variable.  [ruby-dev:41628]</div><div class='add'>+</div><div class='add'>+Sat Jun 19 11:11:37 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb: remove double exclamation marks.  a patch from Diego</div><div class='add'>+	  Viola.  [ruby-core:30589]</div><div class='add'>+</div><div class='add'>+Sat Jun 19 03:35:58 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb (resolve_klass): fix the</div><div class='add'>+	  exception message when attempting to load an unknown class.  Thanks</div><div class='add'>+	  nobu! [ruby-dev:41399]</div><div class='add'>+</div><div class='add'>+	* test/psych/test_psych.rb: test for the exception message</div><div class='add'>+</div><div class='add'>+Fri Jun 18 10:37:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_lazy_sweep): clean a warning.</div><div class='add'>+	  "suggest parentheses around assignment used as truth value"</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (getGB4bt1): clean a warning.</div><div class='add'>+	  "suggest parentheses around arithmetic in operand of |"</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (getGB4bt3): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): clean a warning. "format 'p' expects type</div><div class='add'>+	  'void *', but argument 3 has type 'struct rb_mutex_struct *'"</div><div class='add'>+</div><div class='add'>+Fri Jun 18 10:15:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: add prototype of rb_realpath_internal.</div><div class='add'>+</div><div class='add'>+	* load.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 18 01:50:21 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Object#public_methods, private_methods, etc. returns</div><div class='add'>+	  method ids that belong to the class or the singleton class(es) of</div><div class='add'>+	  the object.  [ruby-dev:41613]</div><div class='add'>+</div><div class='add'>+	* class.c: on the other hand, Module#public_instance_methods, etc.</div><div class='add'>+	  returns method ids that belong to the module itself (even if the</div><div class='add'>+	  module is singleton, it does not return method ids of super</div><div class='add'>+	  class(es); see [ruby-core:28837]).</div><div class='add'>+</div><div class='add'>+Fri Jun 18 01:22:55 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (prevent_directory_traversal): apply filesystem encoding to path</div><div class='add'>+	  only during calling File.expand_path.  [ruby-dev:41423]</div><div class='add'>+</div><div class='add'>+Thu Jun 17 23:20:14 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_load_internal): remove call to rb_realpath_internal</div><div class='add'>+	  within rb_load_internal which caused big performance degradation.</div><div class='add'>+	  Instead, call rb_realpath_internal in the caller of</div><div class='add'>+	  rb_load_internal.  [ruby-dev:41502] [ruby-dev:41610]</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_call_cfunc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (rb_vm_call_cfunc): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 17 18:37:47 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_str_encode_ospath): when the encoding of the parameter</div><div class='add'>+	  is ASCII-8BIT, should recognize as filesystem encoding, and convert</div><div class='add'>+	  to UTF-8 on Windows.</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): should convert to ospath encoding before</div><div class='add'>+	  calling lstat().</div><div class='add'>+</div><div class='add'>+	* file.c (rb_realpath_internal): resolved string should take over</div><div class='add'>+	  the encoding of base string.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_encode): should return new string always.</div><div class='add'>+	  fixed #3444.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 18:34:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: ripper needs warn_unused_var(), too.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 18:20:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_unused_var): warn unused variables.</div><div class='add'>+	  [ruby-dev:41620]</div><div class='add'>+</div><div class='add'>+Wed Jun 16 15:40:53 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): existence of _set_abort_behavior() depends on</div><div class='add'>+	  runtime version, not compiler version.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 01:38:40 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/extconf.rb: check ffi.h even when pkg-config succeeded.</div><div class='add'>+	  On Debian/lenny, which is a "supported" platform, ffi.h is installed</div><div class='add'>+	  in /usr/include/i486-linux-gnu/.  This causes build error when using</div><div class='add'>+	  gcc whose target is not i486-linux-gnu.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 00:04:38 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (safe_4): does not use Timeout because</div><div class='add'>+	  Timeout.timeout uses Thread#kill which raises SecurityError when</div><div class='add'>+	  $SAFE == 4.  based on a patch from Tomoyuki Chikanaga.</div><div class='add'>+	  [ruby-dev:41484]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_print_separators): use pipe (test helper</div><div class='add'>+	  method) instead of IO.pipe.  [ruby-dev:41484]</div><div class='add'>+</div><div class='add'>+Tue Jun 15 17:14:58 2010  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/extconf.rb: De Morgan's laws.</div><div class='add'>+</div><div class='add'>+Tue Jun 15 12:09:00 2010  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/extconf.rb: use pkg_config to find ffi.h.</div><div class='add'>+</div><div class='add'>+Tue Jun 15 02:31:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk (clean-ext, clean-enc): clean up cleaning</div><div class='add'>+	  targets.</div><div class='add'>+</div><div class='add'>+Mon Jun 14 22:36:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb (test_udp_server): rescue Errno::ENOSYS</div><div class='add'>+	  for Windows.</div><div class='add'>+</div><div class='add'>+	* test/socket/test_nonblock.rb (test_sendmsg_nonblock_error): ditto.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:41597] reported by Masaya Tarui.</div><div class='add'>+</div><div class='add'>+Mon Jun 14 17:44:39 2010  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: raise DRbConnError instead of ArgumentError if too</div><div class='add'>+	  many arguments. [ruby-dev:41481]</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 14 04:03:55 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (dealloc): refix workaround r28300.</div><div class='add'>+	  don't use ffi_closure_alloc, ffi_prep_closure_loc and</div><div class='add'>+	  ffi_closure_free on MACOSX and __linux__.</div><div class='add'>+	  [ruby-dev:41483] [ruby-dev:41214]</div><div class='add'>+</div><div class='add'>+Sun Jun 13 15:46:07 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: add a simple test for __END__ and</div><div class='add'>+	  DATA.</div><div class='add'>+</div><div class='add'>+Sun Jun 13 04:24:18 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: Delegate !=, eql? and hash [ruby-core:26139]</div><div class='add'>+</div><div class='add'>+Sun Jun 13 02:12:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans (buf_apply): fix for patterns</div><div class='add'>+	  whose result is 2 bytes. [ruby-core:30751]</div><div class='add'>+</div><div class='add'>+Sun Jun 13 01:38:17 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_localtime_r2): fix mixed declarations and code.</div><div class='add'>+</div><div class='add'>+Sun Jun 13 00:27:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl.rb: don't require when already loaded.</div><div class='add'>+</div><div class='add'>+Sun Jun 13 00:02:56 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (dealloc): workaround fix for libffi's</div><div class='add'>+	  ffi_closure_free. [ruby-dev:41483] [ruby-dev:41214]</div><div class='add'>+</div><div class='add'>+Sat Jun 12 10:02:26 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): should check argument string taint before</div><div class='add'>+	  invoking system calls.</div><div class='add'>+</div><div class='add'>+Sat Jun 12 09:18:31 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (uninitialized_constant): process through</div><div class='add'>+	  rb_class_real() to remove "Object::" from error message.</div><div class='add'>+	  [ruby-dev:40951]</div><div class='add'>+</div><div class='add'>+Sat Jun 12 00:38:37 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: accept Berkley DB version 3, 4 and 5.</div><div class='add'>+	  a patch from Takahiro Kambe.  [ruby-dev:41531]</div><div class='add'>+</div><div class='add'>+Fri Jun 11 23:21:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (init_leap_second_info): check the result of</div><div class='add'>+	  gmtime_with_leapsecond.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 23:04:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_get_ciphers):</div><div class='add'>+	  use sk_SSL_CIPHER_num and sk_SSL_CIPHER_value instead of cast.</div><div class='add'>+	  patched by Takahiro Kambe [ruby-dev:41530]</div><div class='add'>+</div><div class='add'>+Fri Jun 11 22:59:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (isnan): fix compilation error on OpenBSD.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 22:39:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/install_update_options.rb</div><div class='add'>+	  (Gem::InstallUpdateOptions#add_install_update_options): deprecate</div><div class='add'>+	  --test option which has not worked.  [ruby-core:21714]</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_command_manager.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 07:34:25 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): test the result of LOCALTIME.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 00:42:45 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_localtime_r2): fix localtime overflow check.</div><div class='add'>+</div><div class='add'>+Thu Jun 10 23:05:44 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_localtime_r2): refine localtime overflow check for</div><div class='add'>+	  FreeBSD 6.4.</div><div class='add'>+</div><div class='add'>+Thu Jun 10 09:10:08 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_putc): documentation updated to mention putc would</div><div class='add'>+	  not work well with multi-byte characters.  [ruby-core:30697]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_putc): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 22:51:50 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): always extrapolate from past.</div><div class='add'>+	  [ruby-core:30672] reported by Benoit Daloze.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 22:13:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (calc_tm_yday): extracted from timegmw_noleapsecond.</div><div class='add'>+</div><div class='add'>+Tue Jun  8 06:27:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: load full rubygems at LoadError for activation</div><div class='add'>+	  check.  [ruby-core:29486]</div><div class='add'>+</div><div class='add'>+Tue Jun  8 06:04:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (parse_mode_enc): set set_by_bom bit.  [ruby-core:30641]</div><div class='add'>+</div><div class='add'>+Sun Jun  6 22:37:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat_escaped_char): get rid of buffer</div><div class='add'>+	  overflow on platforms int is bigger than 32bit, and warnings.</div><div class='add'>+</div><div class='add'>+Sun Jun  6 19:55:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): clear uninitialized elements in temporary</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+Sun Jun  6 12:31:57 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: set_heaps_increment is not</div><div class='add'>+	  called before gc_marks of lazy sweeping because live_num not</div><div class='add'>+	  contain finalize objects. So call set_heaps_increment after lazy</div><div class='add'>+	  sweeping if free_num are not enough. And move free_min to struct</div><div class='add'>+	  rb_objspace for above.  [ruby-dev:41499]</div><div class='add'>+</div><div class='add'>+Sun Jun  6 10:44:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): need to set the length in order to get</div><div class='add'>+	  the entries marked.  [ruby-dev:41540]</div><div class='add'>+</div><div class='add'>+Sun Jun  6 08:26:01 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_BareVM): call Init_native_thread here.</div><div class='add'>+</div><div class='add'>+	* thread.c (Init_Thread): don't call Init_native_thread.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (Init_native_thread): exported.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (Init_native_thread): ditto.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:41536]</div><div class='add'>+</div><div class='add'>+Sun Jun  6 08:21:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Enumerable#join has been reverted.  [ruby-core:30604]</div><div class='add'>+</div><div class='add'>+Sat Jun  5 20:30:49 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): ASCII incompatible strings</div><div class='add'>+	  must always escape or converted.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): use rb_str_buf_cat_escaped_char</div><div class='add'>+	  when resenc is given: for Regexp#inspect or error message.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): add 'n' for ENCODING_NONE.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 01:20:14 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): Escape when the symbol is not</div><div class='add'>+	  resulted encoding and not ascii_only. It had escaped</div><div class='add'>+	  ascii-incompatible string, but it is wrong.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 01:10:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat_escaped_char): defined.</div><div class='add'>+	  Splited from rb_str_inspect.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 16:39:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): show type name for RTypedData.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 15:59:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options, load_file_internal): $0 seen from</div><div class='add'>+	  required libraries by -r option should be the main script.</div><div class='add'>+	  [ruby-core:23717]</div><div class='add'>+</div><div class='add'>+Sat Jun  5 15:15:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil#invoke_ruby): support for child</div><div class='add'>+	  process env.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 14:11:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb (test_exception_during_shutdown):</div><div class='add'>+	  need to raise always.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 13:13:30 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (eql?, ==, minor): Fix bugs when comparing/returning</div><div class='add'>+	  some empty matrices.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 11:00:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_err_mesg_new): guard mesg, recv and method.</div><div class='add'>+	  The problem in [ruby-dev:41464] is caused because mesg is collected.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 10:03:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): detect and show RTypedData.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 08:30:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): 'W' should test writable by real uid/git,</div><div class='add'>+	  not world writable.   [ruby-core:30587]</div><div class='add'>+</div><div class='add'>+Sat Jun  5 06:20:57 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: Clarification of what '*' matches.  Patch by John Wells</div><div class='add'>+	  &lt;john.wells at greatworx.com&gt;</div><div class='add'>+</div><div class='add'>+Fri Jun  4 10:46:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_inspect): should taint the result.</div><div class='add'>+	  [ruby-dev:41533]</div><div class='add'>+</div><div class='add'>+Fri Jun  4 09:37:15 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): suppress a warning on VC, again.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 23:34:55 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Emit a deprecation warning in</div><div class='add'>+	  verbose mode and add a caution to the overview section of the</div><div class='add'>+	  document. [ruby-dev:41525]</div><div class='add'>+</div><div class='add'>+Thu Jun  3 19:33:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_inspect): suppress warnings by</div><div class='add'>+	  rb_sprintf.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_malloc): suppress warnings.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 18:58:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (ruby_init_ext): statically linked extensions have no</div><div class='add'>+	  real path.  [ruby-dev:41526]</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_call_cfunc): add filepath argument.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 18:17:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_win32.rb (Rake::TestWin32): update tests.</div><div class='add'>+	  [ruby-core:30309]</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb (test_flush): try pipe and</div><div class='add'>+	  socketpair.  [ruby-dev:41517]</div><div class='add'>+</div><div class='add'>+Thu Jun  3 09:36:43 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h (DLSTACK_TYPE): type of stack is same as VALUE.</div><div class='add'>+	  reported by sakiyama shin in [ruby-dev:41514]</div><div class='add'>+</div><div class='add'>+Thu Jun  3 06:30:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb (test_path): workaround for drive</div><div class='add'>+	  letter.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb (test_path): get rid of blocking on</div><div class='add'>+	  access to non-existent host.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 05:37:46 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install-bin): Allow bin/* install from dot-dirs.</div><div class='add'>+	  Fixes rvm and multiruby installations.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 01:22:45 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix typo and race condition.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 00:58:45 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/cparser.rb (parse_ctype): add backwards compatibility</div><div class='add'>+	  by supporting "uint" types in the c parser. [ruby-core:29750]</div><div class='add'>+	* test/dl/test_cparser.rb: adding a test for "uint" changes.</div><div class='add'>+</div><div class='add'>+Wed Jun  2 11:40:02 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): should consider block on stack,</div><div class='add'>+	  if block argument is passed.  [ruby-core:30534]</div><div class='add'>+</div><div class='add'>+	* parse.c (arg_concat_gen): should append to nd_head, not to</div><div class='add'>+	  nd_iter for NODE_BLOCK_PASS.</div><div class='add'>+</div><div class='add'>+Tue Jun  1 23:12:06 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_nonascii): \P{FOO} is also Unicode property in</div><div class='add'>+	  regexp. [ruby-core:30540]</div><div class='add'>+</div><div class='add'>+Tue Jun  1 21:29:39 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: adding support to rfc5789 patch verb.</div><div class='add'>+	  Added a Net::HTTP::Patch class which expects a message body</div><div class='add'>+	  and response body. It recycles the post method into a patch one,</div><div class='add'>+	  that will send the encoded representation to the server.</div><div class='add'>+	  Summarizing, a new class has been created, the post method</div><div class='add'>+	  extracted into send_entity, including a new argument,</div><div class='add'>+	  which defines which class to use (Post or Patch) and</div><div class='add'>+	  finally a patch method was created. [ruby-core:30426]</div><div class='add'>+	  Patched by Guilherme Silveira</div><div class='add'>+	  &lt;guilherme.silveira AT caelum.com.br&gt;</div><div class='add'>+</div><div class='add'>+Tue Jun  1 03:46:08 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: reject GPLv3 readline. [ruby-dev:39172]</div><div class='add'>+	  [ruby-core:25272] [ruby-dev:39167] [ruby-core:28736]</div><div class='add'>+</div><div class='add'>+Tue Jun  1 01:14:31 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): add RB_GC_GUARD.</div><div class='add'>+	  This caused failure when test/ruby/test_argf.rb is executed with</div><div class='add'>+	  GC.stress = true in mswin32_90</div><div class='add'>+</div><div class='add'>+Mon May 31 23:44:22 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: use tclConfig.sh/tkConfig.sh when frameworks</div><div class='add'>+	  are enabled on MacOS X.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: dirty hack for frameworks and stubs on MacOS X.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: stop creating a dummy Tcl/Tk interpreter.</div><div class='add'>+	  And hide a root window before starting eventloop. (for ruby 1.9)</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add codes to support Ruby/Tk-Kit (Rubykit).</div><div class='add'>+</div><div class='add'>+Mon May 31 21:49:42 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Requester#request): rescue ECONNRESET</div><div class='add'>+	  for Windows.  reported by U.Nakamura.  [ruby-dev:41477]</div><div class='add'>+</div><div class='add'>+Mon May 31 19:25:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_syntax_warn): do not use external strings as</div><div class='add'>+	  printf format.</div><div class='add'>+</div><div class='add'>+Mon May 31 18:22:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-set-encoding): skip shebang line</div><div class='add'>+	  always regardless of ruby.</div><div class='add'>+</div><div class='add'>+Mon May 31 15:07:18 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): Refix r28102: this breaks</div><div class='add'>+	  r28039. test for [ruby-dev:41429] is added. [ruby-core:30516]</div><div class='add'>+</div><div class='add'>+Mon May 31 14:47:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): inspect as ASCII when the codepoint</div><div class='add'>+	  of a character in Unicode string is ASCII printable one.</div><div class='add'>+</div><div class='add'>+Mon May 31 13:44:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_unicode_p): check the encoding is Unicode</div><div class='add'>+	  or not by the name; not function's pointer. [ruby-dev:41479]</div><div class='add'>+</div><div class='add'>+Mon May 31 04:03:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): check if expanded dname encoding is</div><div class='add'>+	  compatible with fname, not just copying.  [ruby-core:30516]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_endblockwarn): needs</div><div class='add'>+	  encoding comment.</div><div class='add'>+</div><div class='add'>+Mon May 31 02:17:54 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defined): respond_to_missing? may not be available</div><div class='add'>+	  (for BasicObject instances).</div><div class='add'>+</div><div class='add'>+Mon May 31 01:43:42 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate: Delegator: combine (public|protected) methods with</div><div class='add'>+	  those of the delegated object. [ruby-core:27224]</div><div class='add'>+	  DelegateClass: combine (public|protected) instance methods</div><div class='add'>+	  with those of the delegated superclass.</div><div class='add'>+</div><div class='add'>+Sun May 30 22:18:49 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (keep_if, select!): New methods [ruby-core:29749]</div><div class='add'>+</div><div class='add'>+Sun May 30 21:51:59 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_application.rb: update a test because of r28089.</div><div class='add'>+</div><div class='add'>+Sun May 30 21:48:07 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink): leave @data.  Assigning nil to</div><div class='add'>+	  @data caused double closing error of the same IO in finalizer.  a</div><div class='add'>+	  patch from Simon Nicholls.  [ruby-core:29395]</div><div class='add'>+</div><div class='add'>+Sun May 30 18:47:15 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: updated to b856dd07.</div><div class='add'>+	  this cleans warnings.</div><div class='add'>+</div><div class='add'>+Sun May 30 18:25:55 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (load_failed): use more accurate error message.</div><div class='add'>+	  [ruby-core:23851]</div><div class='add'>+</div><div class='add'>+Sun May 30 16:54:34 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_directory_p): update rdoc.  a patch from Ilkka</div><div class='add'>+	  Laukkanen.  [ruby-core:30016]</div><div class='add'>+</div><div class='add'>+Sun May 30 14:59:13 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_all_clear): don't call obj_free() in</div><div class='add'>+	  gc_mark_all_clear(), because obj_free() may make T_ZOMBIE</div><div class='add'>+	  objects.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_clear_mark_on_sweep_slots): renamed.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_call_finalizer): call</div><div class='add'>+	  gc_clear_mark_on_sweep_slots() before calling mark_tbl().</div><div class='add'>+	  [ruby-dev:41459]</div><div class='add'>+</div><div class='add'>+Sun May 30 03:40:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_utf8, parser_tokadd_string): allow NUL</div><div class='add'>+	  containing symbol literals, as well as String#to_sym.</div><div class='add'>+	  [ruby-dev:41447]</div><div class='add'>+</div><div class='add'>+Sun May 30 03:03:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator/template/darkfish/classpage.rhtml:</div><div class='add'>+	  fix encoding value of XML declaration. [ruby-dev:41452]</div><div class='add'>+</div><div class='add'>+Sun May 30 02:20:26 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (RB_GC_SAVE_MACHINE_CONTEXT), gc.c (ruby_gc_stress_start):</div><div class='add'>+	  revert r28078.</div><div class='add'>+</div><div class='add'>+Sun May 30 02:21:34 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_append_input2): add RB_GC_GUARD.</div><div class='add'>+	  This caused failure when test/csv is executed with GC.stress = true.</div><div class='add'>+</div><div class='add'>+Sun May 30 01:25:48 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (RB_GC_SAVE_MACHINE_CONTEXT): start GC</div><div class='add'>+	  by switching the thread if gc_stress == true</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_gc_stress_start): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 30 00:02:39 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (force_chain_object, rb_objspace_call_finalizer): delete</div><div class='add'>+	  finalizer entry after corresponding finalizer is executed.</div><div class='add'>+	  This caused SEGV when test/cgi is executed with GC.stress = true.</div><div class='add'>+</div><div class='add'>+Sat May 29 23:30:33 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace_shared): change embedded state atomically.</div><div class='add'>+	  [ruby-core:29953] [ruby-dev:41456]</div><div class='add'>+</div><div class='add'>+Sat May 29 12:56:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): avoid infinite require</div><div class='add'>+	  loop. [ruby-core:30467]</div><div class='add'>+</div><div class='add'>+Sat May 29 12:05:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc#read_file_contents): take care of BOM.</div><div class='add'>+	  [ruby-dev:41452]</div><div class='add'>+</div><div class='add'>+Sat May 29 10:12:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_PROF_TIMER_STOP): regularize `marked' to suppress</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Sat May 29 09:34:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: fix for --disable-gems.</div><div class='add'>+</div><div class='add'>+Sat May 29 09:04:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Requester#request): rescue ECONNREFUSED.</div><div class='add'>+</div><div class='add'>+Sat May 29 08:46:29 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (allocate_sorted_heaps, before_gc_sweep, gc_sweep): removed</div><div class='add'>+	  unused variables.</div><div class='add'>+</div><div class='add'>+Fri May 28 20:35:21 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()</div><div class='add'>+	  call during GVL state transition. [Bug#3354] [ruby-dev:41435]</div><div class='add'>+</div><div class='add'>+Fri May 28 19:37:47 2010  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: use simple lazy sweep algorithm for response performance</div><div class='add'>+	  gain. See [ruby-dev:41067].</div><div class='add'>+</div><div class='add'>+	* object.c: FL_MARK of some objects by lazy sweep is copied when</div><div class='add'>+	  RVALUE is cloned. These objects are not marked in the mark phase.</div><div class='add'>+	  So delete FL_MARK.</div><div class='add'>+</div><div class='add'>+	* class.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 28 18:39:38 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): escape ASCII-compatible strings.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): escape ASCII-compatible strings.</div><div class='add'>+</div><div class='add'>+Fri May 28 17:34:48 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): Use tmpary instead, to ensure marking</div><div class='add'>+	  arrays by GC.</div><div class='add'>+</div><div class='add'>+Fri May 28 11:40:07 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): Do not rely on GC, t0 should be</div><div class='add'>+	  checked explicitly.</div><div class='add'>+</div><div class='add'>+Fri May 28 10:40:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (checking_for): ignore toplevel.</div><div class='add'>+</div><div class='add'>+Fri May 28 00:47:16 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): suppress the error report dialog if report_bug()</div><div class='add'>+	  is finished successfully.</div><div class='add'>+</div><div class='add'>+Fri May 28 00:32:25 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (invokesuper): check consistency between class of self and</div><div class='add'>+	  class of method being invoked by super.  This is temporary measure</div><div class='add'>+	  for YARV.  See [ruby-core:30313] in detail.  See [ruby-dev:40959]</div><div class='add'>+	  [ruby-dev:39772] [ruby-core:27000] [ruby-core:27230]</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_search_superclass): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 27 23:38:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_home_dir): set filesystem encoding.</div><div class='add'>+</div><div class='add'>+Thu May 27 23:29:18 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): set encoding as the same of fname</div><div class='add'>+	  when _result_ is not filesystem encoding. [ruby-dev:41429]</div><div class='add'>+</div><div class='add'>+Thu May 27 23:07:45 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): use rb_enc_associate_index and</div><div class='add'>+	  rb_filesystem_encindex. Strings related FileSystem should</div><div class='add'>+	  have filesystem_encoding.</div><div class='add'>+</div><div class='add'>+	* file.c (SET_EXTERNAL_ENCODING): removed.</div><div class='add'>+</div><div class='add'>+Thu May 27 23:03:19 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_filesystem_encindex): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_locale_encindex): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): remove static.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encindex): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 27 22:34:27 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): call ReadFile() with len = 0 before</div><div class='add'>+	  reading really on console, because the first ReadFile() call after</div><div class='add'>+	  PeekConsoleInput() always returns broken data. (Windows's bug).</div><div class='add'>+	  [ruby-core:29018]</div><div class='add'>+</div><div class='add'>+Thu May 27 12:42:23 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* LGPL: Removed.  We no longer have LGPL'd source files in our</div><div class='add'>+	  tree.</div><div class='add'>+</div><div class='add'>+Wed May 26 20:19:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): add the result of random to the</div><div class='add'>+	  beginning of range, not the opposite.  [ruby-dev:41415]</div><div class='add'>+</div><div class='add'>+Wed May 26 19:55:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): revert a part of r22392. it's commit miss.</div><div class='add'>+</div><div class='add'>+Wed May 26 18:40:23 2010  Masaya Tarui  &lt;tarui@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb (TupleSpaceTest, TupleSpaceProxyTest):</div><div class='add'>+	  kill a used thread at teardown.  [ruby-dev:41397]</div><div class='add'>+</div><div class='add'>+Wed May 26 12:08:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): subtraction method of non-numeric can</div><div class='add'>+	  return Float.  [ruby-dev:41410]</div><div class='add'>+</div><div class='add'>+Wed May 26 11:50:09 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): document marshal_dump and marshal_load.</div><div class='add'>+</div><div class='add'>+Wed May 26 10:35:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_large_fd_select): needed on mingw, even</div><div class='add'>+	  though fd_mask is not available.  [ruby-core:30401]</div><div class='add'>+</div><div class='add'>+Tue May 25 14:00:51 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range_to_buf0): fix false negative</div><div class='add'>+	  warning when given range is just before previous range.</div><div class='add'>+	  [ruby-dev:41406]</div><div class='add'>+</div><div class='add'>+Tue May 25 16:37:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-version): take revision if</div><div class='add'>+	  keyword is expanded. [ruby-dev:41408]</div><div class='add'>+</div><div class='add'>+Tue May 25 13:26:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/vm.h, include/ruby/encoding.h: add external</div><div class='add'>+	  linkage.</div><div class='add'>+</div><div class='add'>+Tue May 25 01:46:49 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_caller): update rdoc.  a patch from Nobuhiro IMAI</div><div class='add'>+	  &lt;nov at yo.rim.or.jp&gt; in [ruby-dev:41387].</div><div class='add'>+</div><div class='add'>+Mon May 24 23:04:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: fix wrong exception class name in rdoc.</div><div class='add'>+</div><div class='add'>+Mon May 24 19:00:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_balanced, parser_yylex): no warnings after closing</div><div class='add'>+	  parens.</div><div class='add'>+</div><div class='add'>+Mon May 24 12:52:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (change), tool/change_maker.rb: make a brief template</div><div class='add'>+	  for ChangeLog.</div><div class='add'>+</div><div class='add'>+Mon May 24 09:19:59 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): suppress a warning on VC.</div><div class='add'>+</div><div class='add'>+Mon May 24 08:16:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_spawn): use correct command name for the error</div><div class='add'>+	  message.  [ruby-dev:41395]</div><div class='add'>+</div><div class='add'>+Sun May 23 17:48:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509-internal.rb, lib/forwardable.rb,</div><div class='add'>+	  lib/irb/cmd/fork.rb, lib/mutex_m.rb,</div><div class='add'>+	  lib/shell/process-controller.rb, lib/sync.rb, object.c:</div><div class='add'>+	  suppress warnings patched by Benoit Daloze at [ruby-core:30366].</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_balanced): no warning for singleton class.</div><div class='add'>+	  [ruby-core:30366]</div><div class='add'>+</div><div class='add'>+Sun May 23 16:56:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (CONST_ID_CACHE, rb_intern_const): suppress</div><div class='add'>+	  warnings with -Wconversion.</div><div class='add'>+</div><div class='add'>+Sun May 23 07:08:34 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/stream.rb: adding a JSON streaming API</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/stream.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: using autoload</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/json/tree_builder.rb: refactor</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/json_tree.rb: refactor</div><div class='add'>+</div><div class='add'>+Sat May 22 03:53:05 2010  Satoshi Shiba  &lt;shiba@rvm.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_setcontext): Use swapcontext() instead longjmp().</div><div class='add'>+	  [ruby-dev:41316] [Bug #3295]</div><div class='add'>+</div><div class='add'>+Fri May 21 19:11:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert, rb_nkf_guess): check too huge</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Fri May 21 18:12:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_intern): C90 needs nonempty macro</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+Fri May 21 13:55:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBYARG_SHARED): shared library will not be</div><div class='add'>+	  created unless enable-shared.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): use real path for non-shared</div><div class='add'>+	  build.</div><div class='add'>+</div><div class='add'>+Fri May 21 12:25:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): use dtoa directly instead of stripping</div><div class='add'>+	  needless trailing .0.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): reverted.  [ruby-dev:41341]</div><div class='add'>+</div><div class='add'>+Fri May 21 01:06:05 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (subtract_tv): if the rest is zero, should finish waiting</div><div class='add'>+	  immediately.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (subtract): ditto.</div><div class='add'>+	  based on a patch from Roger Pack in [ruby-core:27957].</div><div class='add'>+</div><div class='add'>+Thu May 20 22:49:04 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union_m): update rdoc.  [ruby-dev:41354]</div><div class='add'>+</div><div class='add'>+Thu May 20 22:08:28 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_caller): update rdoc.  a patch from Nobuhiro IMAI</div><div class='add'>+	  &lt;nov at yo.rim.or.jp&gt; in [ruby-dev:41348].</div><div class='add'>+</div><div class='add'>+Thu May 20 22:04:05 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): now takes an init function to distinguish</div><div class='add'>+	  an empty stack from out of stack.  [ruby-dev:41366]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (print_backtrace, rb_thread_backtrace): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 20 20:47:46 2010  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke): raise NoMethodError</div><div class='add'>+	  when COM method is not found. [ruby-core:30160] [Bug #3277]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_no_method_error): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 20 16:17:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/emitter: C99(gcc)-ism.</div><div class='add'>+</div><div class='add'>+Thu May 20 12:59:49 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/stream.rb: adding YAML streaming API for</div><div class='add'>+	  infinite length streams.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: refactoring for streaming API</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/{handler, stream, tree_builder}.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu May 20 02:12:20 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/emitter.c: output strings are automatically transcoded</div><div class='add'>+</div><div class='add'>+Wed May 19 23:36:57 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: [ruby-dev:41334] [Bug #3307] invalid result</div><div class='add'>+	  on searching tcl.h/tk.h. Thanks, Masaya Tarui.</div><div class='add'>+</div><div class='add'>+Wed May 19 23:19:30 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (disconnect): closes the socket of a Net::IMAP</div><div class='add'>+	  object only when it is not closed.  [ruby-dev:41350]</div><div class='add'>+</div><div class='add'>+Wed May 19 20:09:38 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_caller): return [] instead of nil when the function</div><div class='add'>+	  is called on toplevel.  [ruby-dev:41348]</div><div class='add'>+</div><div class='add'>+Wed May 19 19:58:01 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: mswin/mingw ruby has socketpair(), but it's</div><div class='add'>+	  not exist as such name in ruby static library, so mkmf.rb cannot</div><div class='add'>+	  find it.</div><div class='add'>+</div><div class='add'>+Wed May 19 19:45:10 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* iseq_compile_each (NODE_DEFINED): put nil first to fix stack</div><div class='add'>+	  consistency.  [ruby-core:30293]</div><div class='add'>+	  Now, lfinish[0] of defined_expr seems not to be used.  Refactoring</div><div class='add'>+	  may be needed.</div><div class='add'>+</div><div class='add'>+Wed May 19 16:55:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2ulong): use rb_big2ulong for data from</div><div class='add'>+	  Bignum. Without this 32bit integer on 32bit environment</div><div class='add'>+	  can't converted into long.</div><div class='add'>+	  This fixes 1) and 2) of [ruby-dev:41289]</div><div class='add'>+</div><div class='add'>+Mon May 17 22:19:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: suppress warning for signed and unsigned type</div><div class='add'>+	  inconsistency.</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon May 17 21:30:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* .gitignore: updated.</div><div class='add'>+</div><div class='add'>+Mon May 17 21:08:53 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (argv_size): merged into join_argv() to maintain the</div><div class='add'>+	  agreement with it.  removed code has a calculation bug.</div><div class='add'>+	  fixed [Bug#2388]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (join_argv): calc and return the length of joined</div><div class='add'>+	  argv.</div><div class='add'>+	  the cause of the original bug was clarified by Masaya TARUI</div><div class='add'>+	  &lt;tarui AT prx.jp&gt; and the solution was suggested by him, too.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 09:20:08 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso_2022_jp.h: add CP50220.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: add converter for CP50220.</div><div class='add'>+</div><div class='add'>+Mon May 17 09:37:25 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#entries): returns pathname in</div><div class='add'>+	  UTF-8 on Windows to allow FileUtils accessing all pathnames</div><div class='add'>+	  internally.</div><div class='add'>+</div><div class='add'>+Mon May 17 01:07:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (rb_w32_check_imported): workaround for VC6.</div><div class='add'>+</div><div class='add'>+Sun May 16 22:21:32 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): initialize a field.  a patch from Takahiro Kambe.</div><div class='add'>+	  [ruby-dev:41312]</div><div class='add'>+</div><div class='add'>+Sun May 16 22:17:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (setup_exception): let SystemStackError#backtrace return an</div><div class='add'>+	  single element array instead of string itself.  [ruby-core:30196]</div><div class='add'>+</div><div class='add'>+Sun May 16 21:51:04 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape, parser_tokadd_escape): allow a hex or</div><div class='add'>+	  octal encoded character after \c.  This seemed to be prohibited at</div><div class='add'>+	  r13836, but its ChangeLog mentions nothing about this prohibition.</div><div class='add'>+	  So I assume this prohibition is not intended.  [ruby-core:27229]</div><div class='add'>+</div><div class='add'>+Sun May 16 21:14:04 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby/test_rubyoptions.rb (TestRubyOptions#test_segv_test):</div><div class='add'>+	  fixes "NoMethodError: undefined method `[]=' for nil:NilClass"</div><div class='add'>+</div><div class='add'>+Sun May 16 17:16:09 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_binding): don't propagate filename and line_no of</div><div class='add'>+	  binding that is created from C level.  [ruby-dev:41322]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 16 15:09:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (rb_w32_check_imported): check if extension library to be</div><div class='add'>+	  loaded imports from different ruby dll.</div><div class='add'>+</div><div class='add'>+Sun May 16 14:55:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (dln_find.o): fix dependency.</div><div class='add'>+</div><div class='add'>+Sun May 16 13:55:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_loaderror): use locale string, not ascii-8bit.</div><div class='add'>+</div><div class='add'>+Sun May 16 11:39:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (signbit): add missing prototype.</div><div class='add'>+</div><div class='add'>+Sun May 16 10:49:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (rb_iconv_sys_fail): fix number of arguments.</div><div class='add'>+	  a patch by Masaya TARUI &lt;tarui AT prx.jp&gt;.</div><div class='add'>+</div><div class='add'>+Sun May 16 02:24:27 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: can not load libruby.so if gcc is used with</div><div class='add'>+	  --enable-shared on AIX.</div><div class='add'>+</div><div class='add'>+Sat May 15 17:16:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (rb_iconv_sys_fail): raise BrokenLibrary if</div><div class='add'>+	  errno is not set.  [ruby-dev:41317]</div><div class='add'>+</div><div class='add'>+Fri May 14 07:27:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): strip ".0" from end for rubyspec.</div><div class='add'>+</div><div class='add'>+Fri May 14 01:17:10 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.c (rb_thread_struct): add a field for sigaltstack.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_start_func_1): initialize machine stack</div><div class='add'>+	  information.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): set sigaltstack for each sub thread.</div><div class='add'>+	  [ruby-core:24540] [ruby-core:30207]</div><div class='add'>+</div><div class='add'>+Thu May 13 21:40:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/ffs.c (ffs): fixed for non-zero values.</div><div class='add'>+</div><div class='add'>+Thu May 13 18:45:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (get_write_fd): return primary fd if no</div><div class='add'>+	  io is tied for writing.</div><div class='add'>+</div><div class='add'>+Thu May 13 18:15:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (swallow): should use more_char() instead of fill_cbuf().</div><div class='add'>+	  suggested by akr.</div><div class='add'>+</div><div class='add'>+Thu May 13 17:56:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_set_echo, console_echo_p): use</div><div class='add'>+	  primary fd.  [ruby-dev:41309]</div><div class='add'>+</div><div class='add'>+Thu May 13 13:30:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): use minimal representation.</div><div class='add'>+</div><div class='add'>+	* numeric.c (ruby_dbl2cstr): split from rb_float_new.</div><div class='add'>+</div><div class='add'>+Thu May 13 13:09:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_get_sourceline): moved from eval_intern.h for</div><div class='add'>+	  vm_dump.c.</div><div class='add'>+</div><div class='add'>+Thu May 13 12:53:13 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (swallow): support text mode and UTF-16/32 as internal encoding.</div><div class='add'>+	  [Bug #1576]</div><div class='add'>+</div><div class='add'>+	* io.c (io_shift_cbuf): read and throw it away when str is NULL.</div><div class='add'>+</div><div class='add'>+Thu May 13 09:45:27 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: link with ffs.obj.</div><div class='add'>+</div><div class='add'>+Thu May 13 07:37:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: include unistd.h before sdbm.h for off_t.</div><div class='add'>+	  fix compilation problem on FreeBSD 6.4.</div><div class='add'>+</div><div class='add'>+Wed May 12 23:48:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_quad_pack): deprecated.</div><div class='add'>+	  (rb_quad_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Wed May 12 22:22:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_big_abs_find_minbit): use ffs().</div><div class='add'>+</div><div class='add'>+	* configure.in: check ffs().</div><div class='add'>+</div><div class='add'>+	* missing/ffs.c: new file.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (ffs): declared.</div><div class='add'>+</div><div class='add'>+Wed May 12 16:43:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): fixed broken output including nuls.</div><div class='add'>+</div><div class='add'>+Wed May 12 16:25:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): exponent needs 2 digits.</div><div class='add'>+</div><div class='add'>+Wed May 12 16:02:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): fill lower zeros.</div><div class='add'>+</div><div class='add'>+Wed May 12 15:45:36 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator/ri.rb (generate): should load existing cache</div><div class='add'>+	  before generating it.</div><div class='add'>+</div><div class='add'>+Wed May 12 15:04:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (BigMath#log): improved</div><div class='add'>+	  precision and performance. [ruby-dev:41295]</div><div class='add'>+</div><div class='add'>+Wed May 12 11:39:10 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32</div><div class='add'>+	  SDK.</div><div class='add'>+</div><div class='add'>+Wed May 12 10:57:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): make minimum string representation.</div><div class='add'>+	  [ruby-core:30145]</div><div class='add'>+</div><div class='add'>+Wed May 12 09:21:05 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): fix wrong index for the lang</div><div class='add'>+	  option's value 'N'. reported by Masaya TARUI via IRC.</div><div class='add'>+</div><div class='add'>+Tue May 11 23:07:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define macros for enum.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:38849]</div><div class='add'>+</div><div class='add'>+Tue May 11 21:53:18 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_task_arguments.rb: makes ENV empty during tests</div><div class='add'>+	  because ENV may change the behavior of Rake::TaskArguments.</div><div class='add'>+	  [ruby-core:29984]</div><div class='add'>+</div><div class='add'>+Tue May 11 15:14:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: Add new alias UTF-8-HFS for UTF8-MAC.</div><div class='add'>+	  http://www.gnu.org/software/emacs/NEWS.23.2</div><div class='add'>+</div><div class='add'>+Tue May 11 13:46:00 2010  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (atan),</div><div class='add'>+	  test/bigdecimal/test_bigmath.rb (test_atan): explicitly specify</div><div class='add'>+	  the precision for calculating a reciprocal number of an argument.</div><div class='add'>+	  [Bug #3267]</div><div class='add'>+</div><div class='add'>+Tue May 11 11:49:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/sdbm.h (DBM): large file support on win32.</div><div class='add'>+	  [ruby-core:23039]</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/depend: objects depend on sdbm.h.</div><div class='add'>+</div><div class='add'>+Tue May 11 09:57:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (rb_vm_get_sourceline): add prototype.</div><div class='add'>+</div><div class='add'>+Tue May 11 09:53:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (PSYCH_TRANSCODE): get rid of bare use of gcc</div><div class='add'>+	  extension.</div><div class='add'>+</div><div class='add'>+Tue May 11 01:20:43 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): Return strings encoded as</div><div class='add'>+	  Encoding.default_internal if set.</div><div class='add'>+</div><div class='add'>+Mon May 10 23:50:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): add a missing break.</div><div class='add'>+</div><div class='add'>+Mon May 10 14:13:04 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_big_abs_find_minbit): get rid of a warning of VC.</div><div class='add'>+</div><div class='add'>+Mon May 10 13:59:42 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, include/ruby/win32.h (rb_w32_has_cancel_io): new</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* io.c (WAIT_FD_IN_WIN32): check only when it's not cancelable.</div><div class='add'>+</div><div class='add'>+Mon May 10 06:59:19 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): rdoc should depend main. Moreover when XRUBY</div><div class='add'>+	  is miniruby, it can run after miniruby is built.</div><div class='add'>+</div><div class='add'>+Mon May 10 03:36:56 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): propagate filename and line_no</div><div class='add'>+	  of binding.  [ruby-dev:38767] [ruby-core:28307]</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_binding_t), proc.c: add filename and line_no fields to</div><div class='add'>+	  preserve them.</div><div class='add'>+</div><div class='add'>+Mon May 10 02:58:33 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each), vm_insnhelper.c (vm_invoke_block,</div><div class='add'>+	  vm_throw): allow "return" and "yield" even in singleton class</div><div class='add'>+	  definition.  based on a patch from wanabe &lt;s.wanabe AT gmail.com&gt;</div><div class='add'>+	  for "return".  [ruby-core:21379] [ruby-dev:40975]</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): ditto (straightforwardly push block ptr,</div><div class='add'>+	  instead of dfp ptr with special flag).</div><div class='add'>+</div><div class='add'>+	* vm_core.h (RUBY_VM_CLASS_SPECIAL_P): ditto (no longer needed).</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): ditto (remove handling for special flag).</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_jump.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Mon May 10 02:29:51 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_switch): raise FiberError when returning to dead</div><div class='add'>+	  fiber.  [ruby-dev:40833]</div><div class='add'>+</div><div class='add'>+Mon May 10 02:07:20 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (ConditionVariable#wait): ensure to remove the current</div><div class='add'>+	  thread from waiters.  [ruby-core:29835]</div><div class='add'>+</div><div class='add'>+Mon May 10 00:54:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_set_raw): new method.</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (ttymode): reverted previous commit.</div><div class='add'>+</div><div class='add'>+Sun May  9 23:53:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RB_GC_GUARD_PTR): get rid of removal by</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+Sun May  9 23:07:53 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_dup): copy blockprocval.  proc_dup is used by</div><div class='add'>+	  define_method, which made blockprocval be GC'ed mistakenly.</div><div class='add'>+	  [ruby-core:30023]</div><div class='add'>+</div><div class='add'>+Sun May  9 16:28:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_initialize_machine_stack_context): try to release</div><div class='add'>+	  unnecessary fibers and retry to create.  based on a patch from</div><div class='add'>+	  masaya tarui at [ruby-dev:41230].</div><div class='add'>+</div><div class='add'>+Sun May  9 08:32:56 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/generator/generator.c (fbuffer_inc_capa):</div><div class='add'>+	  fix the use of REALLOC_N. [ruby-dev:41227]</div><div class='add'>+</div><div class='add'>+Sun May  9 09:30:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/{generator/generator.c,parser/parser.rl}: fixed indent.</div><div class='add'>+</div><div class='add'>+	* ext/json/{generator,parser}/depend: added.</div><div class='add'>+</div><div class='add'>+Sun May  9 09:15:03 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: use IPv4 for</div><div class='add'>+	  test_imaps_post_connection_check.  [ruby-dev:41189]</div><div class='add'>+</div><div class='add'>+Sun May  9 08:24:24 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (disconnect): terminates @receiver_thread even if</div><div class='add'>+	  @sock.shutdown raises an exception.  [ruby-dev:34881]</div><div class='add'>+</div><div class='add'>+Sun May  9 06:15:21 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (nogvl_copy_stream_sendfile): ISO C90 forbids mixed</div><div class='add'>+	  declarations and code.</div><div class='add'>+</div><div class='add'>+Sun May  9 02:57:02 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/lib/fiddle.rb: only require DL if it hasn't been required</div><div class='add'>+	  yet. [ruby-core:30095]</div><div class='add'>+</div><div class='add'>+Sun May  9 01:15:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (stackgrowdirection): removed duplicated code, use</div><div class='add'>+	  STACK_UPPER macro instead.</div><div class='add'>+</div><div class='add'>+	* gc.h (STACK_DIR_UPPER): moved from thread_pthread.c.</div><div class='add'>+</div><div class='add'>+Sun May  9 00:35:56 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb (libc_so, libm_so): supports solaris.</div><div class='add'>+</div><div class='add'>+Sat May  8 19:03:31 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec (config): . is no longer in $:.</div><div class='add'>+</div><div class='add'>+Sun May  9 00:27:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_aset): fixed argument type.</div><div class='add'>+</div><div class='add'>+Sat May  8 23:09:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS (io/console): IO#noecho and IO#raw without block are</div><div class='add'>+	  obsolete already.  [ruby-dev:41226]</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (ttymode): save duped file descriptors</div><div class='add'>+	  and restore tty modes using them, so that original modes can be</div><div class='add'>+	  restored even if original fds are closed.  [ruby-dev:41225]</div><div class='add'>+</div><div class='add'>+Sat May  8 13:48:31 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fetch, rb_ary_splice, rb_ary_store): Improve</div><div class='add'>+	  IndexError</div><div class='add'>+	  messages [ruby-core:28394]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch_m): Improve KeyError message</div><div class='add'>+</div><div class='add'>+Sat May  8 13:11:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb (Gem::StreamUI#ask_for_password):</div><div class='add'>+	  use io/console.</div><div class='add'>+</div><div class='add'>+	* ext/io/console: imported.  [ruby-dev:40897]</div><div class='add'>+</div><div class='add'>+Sat May  8 12:25:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_systmpdir): moved from ext/tmpdir.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_sysconfdir): added.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb, lib/tmpdir.rb: use etc.</div><div class='add'>+</div><div class='add'>+Sat May  8 11:07:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpAlloc): ensure buf does not get</div><div class='add'>+	  collected.  based on a patch masaya tarui at [ruby-dev:41213].</div><div class='add'>+</div><div class='add'>+Sat May  8 10:03:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (BasicSocket#connect_address): MacOS X 10.6</div><div class='add'>+	  returns "::ffff:a.b.c.d" for IPv4-mapped IPv6 address.</div><div class='add'>+	  [ruby-dev:41215] patch by Tomoyuki Chikanaga.</div><div class='add'>+</div><div class='add'>+Fri May  7 23:51:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: bump up to 1.9.3.</div><div class='add'>+</div><div class='add'>+Fri May  7 11:30:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install-man): install mdocs directly without</div><div class='add'>+	  temporary files.  [ruby-dev:41204]</div><div class='add'>+</div><div class='add'>+Fri May  7 09:16:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb (get_tclConfig_dirs): glob with EXEEXT.</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb (search_tclConfig): fixed typo.</div><div class='add'>+</div><div class='add'>+Fri May  7 06:45:28 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: search directories on PATH, only if containing</div><div class='add'>+	  tclsh or wish command (probably right fix for [ruby-core:30010]).</div><div class='add'>+</div><div class='add'>+Fri May  7 03:40:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.</div><div class='add'>+</div><div class='add'>+Thu May  6 22:19:38 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: define FIBER_USE_NATIVE only when _WIN32_WINNT &gt;= 0x0400</div><div class='add'>+	  on Windows because Fiber APIs are supported only such building</div><div class='add'>+	  (and running) environments.</div><div class='add'>+	  [ruby-dev:41192]</div><div class='add'>+</div><div class='add'>+Thu May  6 19:13:43 2010  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ec.rb: added test_dsa_sign_asn1_FIPS186_3. dgst is</div><div class='add'>+	  truncated with ec_key.group.order.size after openssl 0.9.8m for</div><div class='add'>+	  FIPS 186-3 compliance.</div><div class='add'>+</div><div class='add'>+	  WARNING: ruby-openssl aims to wrap an OpenSSL so when you're using</div><div class='add'>+	  openssl 0.9.8l or earlier version, EC.dsa_sign_asn1 raises</div><div class='add'>+	  OpenSSL::PKey::ECError as before and EC.dsa_verify_asn1 just returns</div><div class='add'>+	  false when you pass dgst longer than expected (no truncation</div><div class='add'>+	  performed).</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c: rdoc typo fixed.</div><div class='add'>+</div><div class='add'>+Thu May  6 18:12:43 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_setcontext): Fix last commit.</div><div class='add'>+</div><div class='add'>+Thu May  6 17:16:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_localtime_r2): get rid of infinite loop bug of</div><div class='add'>+	  localtime() on x86_64-darwin.  [ruby-core:30031]</div><div class='add'>+</div><div class='add'>+Thu May  6 15:56:12 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/*: Adding fiddle library to wrap libffi</div><div class='add'>+	* test/fiddle/*: testing fiddle extension</div><div class='add'>+	* ext/dl/lib/dl.rb: Requiring fiddle if it is available</div><div class='add'>+	* ext/dl/lib/dl/callback.rb: using Fiddle if it is available</div><div class='add'>+	* ext/dl/lib/dl/func.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu May  6 15:04:37 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): add description about optional</div><div class='add'>+	  position parameter. [ruby-list:47064]</div><div class='add'>+	  patched by KISHIMOTO, Makoto &lt;ksmakoto AT dd.iij4u.or.jp&gt;</div><div class='add'>+</div><div class='add'>+Thu May  6 14:12:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: test RUBY_PLATFORM for loading tmpdir.so to avoid</div><div class='add'>+	  LoadError.</div><div class='add'>+</div><div class='add'>+Thu May  6 12:41:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add rationalize methods of Complex, Float, Integer, NilClass,</div><div class='add'>+	  and Rational classes.</div><div class='add'>+</div><div class='add'>+Thu May  6 12:12:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README: update.</div><div class='add'>+</div><div class='add'>+Thu May  6 03:34:29 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: apply FIBER_USE_NATIVE patch.  This patch improve</div><div class='add'>+	  Fiber context switching cost using system APIs.  Detail comments</div><div class='add'>+	  are written in cont.c.</div><div class='add'>+</div><div class='add'>+Thu May  6 02:16:48 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry):</div><div class='add'>+	  added.  Unlinked method entries are collected to</div><div class='add'>+	  vm-&gt;unlinked_method_entry_list.  On the GC timing, mark all method</div><div class='add'>+	  entries which are on all living threads.  Only non-marked method</div><div class='add'>+	  entries are collected.  This hack prevents releasing living method</div><div class='add'>+	  entry.</div><div class='add'>+	  [Performance Consideration] Since this Method Entry GC (MEGC)</div><div class='add'>+	  doesn't occur frequently, MEGC will not be a performance bottleneck.</div><div class='add'>+	  However, to traverse living method entries, every control frame push</div><div class='add'>+	  needs to clear cfp-&gt;me field.  This will be a performance issue</div><div class='add'>+	  (because pushing control frame is occurred frequently).</div><div class='add'>+	  Bug #2777 [ruby-dev:40457]</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_init): init cfp-&gt;me.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): kick rb_sweep_method_entry().</div><div class='add'>+</div><div class='add'>+	* method.h (rb_method_entry_t): add a mark field.</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block_from_c): set passed me.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): mark cfp-&gt;me.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_t): add a field passed_me.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_t): add a field unlinked_method_entry_list.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_push_frame): clear cfp-&gt;me at all times.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_bmethod): pass me.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add a test.</div><div class='add'>+</div><div class='add'>+Wed May  5 22:22:51 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence): fix check range of ic_index.</div><div class='add'>+	  a patch from Tomoyuki Chikanaga.  #3236</div><div class='add'>+</div><div class='add'>+Wed May  5 21:49:31 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): use execerror for load error on AIX.</div><div class='add'>+	  This can avoid SEGV reported by Perry Smith.  [Bug #2063]</div><div class='add'>+</div><div class='add'>+Wed May  5 20:37:54 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_wait_events): get GVL before handle interrupt</div><div class='add'>+	  event.   [ruby-core:27199], [ruby-core:29698]</div><div class='add'>+</div><div class='add'>+Wed May  5 19:00:01 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: revert. enbugged by last commit.</div><div class='add'>+	  ([ruby-dev:41133], [ruby-dev:41134], [ruby-core:30010])</div><div class='add'>+</div><div class='add'>+	* ext/tk/README.tcltklib: ditto.</div><div class='add'>+</div><div class='add'>+Wed May  5 15:54:35 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat): use STAT macro instead of calling stat() directly.</div><div class='add'>+	  reported by Bill Kelly.  [ruby-core:30012]</div><div class='add'>+</div><div class='add'>+Wed May  5 11:43:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb (megacontent-copy_stream): get rid of</div><div class='add'>+	  deadlock.</div><div class='add'>+</div><div class='add'>+Wed May  5 07:27:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_mark_method_entry): renamed.</div><div class='add'>+</div><div class='add'>+Wed May  5 05:20:27 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* method.h, vm_method.c: rename some internal functions related to</div><div class='add'>+	  rb_method_entry_t.</div><div class='add'>+	  rb_add_method_me()        -&gt; rb_method_entry_set().</div><div class='add'>+	  rb_get_method_entry()     -&gt; rb_method_entry_without_cache().</div><div class='add'>+	  rb_gc_mark_method_entry() -&gt; rb_mark_method_entry().</div><div class='add'>+</div><div class='add'>+	* class.c, proc.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue May  4 22:59:48 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_body): update iseq-&gt;ic_size.</div><div class='add'>+	  a patch from Tomoyuki Chikanaga. see #3236.</div><div class='add'>+</div><div class='add'>+Tue May  4 18:51:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_to_str): preserve encoding of inspection.</div><div class='add'>+	  [ruby-core:29948]</div><div class='add'>+</div><div class='add'>+Tue May  4 18:38:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_copy_stream):</div><div class='add'>+	  IO.copy_stream support binmode only currently.</div><div class='add'>+	  [ruby-core:23724]</div><div class='add'>+</div><div class='add'>+Tue May  4 12:46:09 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (argument_error): push correct backtrace.</div><div class='add'>+	  Bug #2281 [ruby-core:26333]</div><div class='add'>+</div><div class='add'>+Tue May  4 12:38:40 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_inspect): use rb_str_cat2 and</div><div class='add'>+	  rb_str_append.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_inspect): refined.</div><div class='add'>+</div><div class='add'>+Tue May  4 11:48:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_inspect): use rb_str_cat2 and</div><div class='add'>+	  rb_str_append.</div><div class='add'>+</div><div class='add'>+Tue May  4 07:52:33 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPResponse#read_chunked): ensure to skip the</div><div class='add'>+	  last newline of chunk.  [ruby-core:29229]</div><div class='add'>+</div><div class='add'>+	* test/net/http/utils.rb: add an option for chunked response test.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: add tests for chunked response.</div><div class='add'>+</div><div class='add'>+Tue May  4 03:37:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Update nkf 2010-04-28.</div><div class='add'>+</div><div class='add'>+Mon May  3 21:08:16 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* sample/README: update file list. [ruby-core:28981]</div><div class='add'>+</div><div class='add'>+Mon May  3 08:15:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_scan_scalar): set SCAN_WHITEEDGE flag</div><div class='add'>+	  when scalar begins with newline.  patches from Dave B &lt;daz AT</div><div class='add'>+	  d10.karoo.co.uk&gt; at [ruby-core:23019] and caleb clausen at</div><div class='add'>+	  [ruby-core:25851].  [ruby-core:23006][ruby-core:29925]</div><div class='add'>+</div><div class='add'>+Sun May  2 17:52:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/task.rb (RDoc::Task): should not override newer code.</div><div class='add'>+</div><div class='add'>+Sun May  2 17:25:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): ignore signedness.</div><div class='add'>+</div><div class='add'>+Sun May  2 12:04:30 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_load): allow filepath to be nil.</div><div class='add'>+	  a patch from Tomoyuki Chikanaga in [Bug #3229].</div><div class='add'>+</div><div class='add'>+Sun May  2 08:54:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::NEEDS_BINMODE): check if O_BINARY value instead</div><div class='add'>+	  of fragile check by platform name.</div><div class='add'>+</div><div class='add'>+Sun May  2 07:38:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): should not modify argument arrays</div><div class='add'>+	  themselves.</div><div class='add'>+</div><div class='add'>+Sat May  1 22:53:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#size): stat by path name when it is</div><div class='add'>+	  closed.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  keep the first trace.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  fixed filtering.  [ruby-core:29908]</div><div class='add'>+</div><div class='add'>+Sat May  1 16:46:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_IsInfinite): don't use</div><div class='add'>+	  non-ascii character.</div><div class='add'>+</div><div class='add'>+Sat May  1 14:08:29 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Fix bug when serving gems.</div><div class='add'>+</div><div class='add'>+Sat May  1 14:05:36 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Upgrade to RDoc 2.5.8.</div><div class='add'>+</div><div class='add'>+Sat May  1 09:43:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  filter out traces in minitest directory.  [ruby-core:29908]</div><div class='add'>+</div><div class='add'>+Sat May  1 06:42:57 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: add declaration of wstati64 for gcc.</div><div class='add'>+</div><div class='add'>+Sat May  1 02:41:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* merge some patches from win32-unicode-test branch.</div><div class='add'>+	  see #1685.</div><div class='add'>+</div><div class='add'>+	* file.c, include/ruby/intern.h (rb_str_encode_ospath): new function</div><div class='add'>+	  to convert encoding for pathname.</div><div class='add'>+</div><div class='add'>+	* win32.c, include/ruby/win32.h (rb_w32_ulink, rb_w32_urename,</div><div class='add'>+	  rb_w32_ustati64, rb_w32_uopen, rb_w32_uutime, rb_w32_uchdir,</div><div class='add'>+	  rb_w32_umkdir, rb_w32_urmdir, rb_w32_uunlink): new functions to</div><div class='add'>+	  accept UTF-8 path.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir, link, rb_w32_stati64, rb_w32_utime,</div><div class='add'>+	  rb_w32_unlink): use WCHAR path internally.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat, eaccess, access_internal, rb_file_s_ftype,</div><div class='add'>+	  chmod_internal, rb_file_chmod, rb_file_chown, utime_internal,</div><div class='add'>+	  rb_file_s_link, unlink_internal, rb_file_s_rename): use UTF-8 version</div><div class='add'>+	  functions on Win32.</div><div class='add'>+</div><div class='add'>+	* file.c (apply2files, rb_stat, rb_file_s_lstat, rb_file_symlink_p,</div><div class='add'>+	  rb_file_readable_p, rb_file_writable_p, rb_file_executable_p,</div><div class='add'>+	  check3rdbyte, rb_file_identical_p, rb_file_chmod, rb_file_chown,</div><div class='add'>+	  rb_file_s_link, rb_file_s_symlink, rb_file_s_rename): call</div><div class='add'>+	  rb_str_encode_ospath() before passing the path to system.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_sysopen): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_chdir, dir_s_mkdir, dir_s_rmdir): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  1 00:26:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  assertion message must be String or Proc.  suggested by caleb</div><div class='add'>+	  clausen at [ruby-core:29884].</div><div class='add'>+</div><div class='add'>+Sat May  1 00:14:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: skip false tests on Windows.</div><div class='add'>+	  [ruby-core:29886]</div><div class='add'>+</div><div class='add'>+Fri Apr 30 22:46:27 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* math.c: Math::DomainError &lt; StandardError [ruby-core:29855]</div><div class='add'>+</div><div class='add'>+Fri Apr 30 21:40:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_open3.rb (TestOpen3#test_commandline): use simple</div><div class='add'>+	  command via shell.  [ruby-dev:41100]</div><div class='add'>+</div><div class='add'>+Fri Apr 30 15:38:45 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: better support for MinGW environment.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 12:05:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): call rb_str_set_len before BUFCHECK to</div><div class='add'>+	  prevent rb_str_resize in BUFCHECK discard the content.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 11:48:31 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): String#sub! now raises an error when</div><div class='add'>+	  called on a frozen string, even if no change is made.</div><div class='add'>+	  See [ruby-core:23657]</div><div class='add'>+</div><div class='add'>+Fri Apr 30 11:40:44 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (make_exception, rb_obj_extend): Fix error messages in case</div><div class='add'>+	  of wrong</div><div class='add'>+	  number of arguments</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test, rb_file_s_umask): ditto</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr, num_step): ditto</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_sleep): ditto</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): ditto</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill, sig_trap): ditto</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aref_m, rb_str_aset_m, rb_str_count,</div><div class='add'>+	  rb_str_delete_bang,</div><div class='add'>+	  rb_str_slice_bang, rb_str_sub_bang, str_gsub): ditto</div><div class='add'>+</div><div class='add'>+	* proc.c (curry): rdoc fix</div><div class='add'>+</div><div class='add'>+Fri Apr 30 04:09:30 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (TIMET_MAX): should be time_t, not unsigned_time_t.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 03:59:08 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_time_unmagnify_to_float): should cast.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 03:38:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): the width of fixnum is same as long's on all</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 03:17:20 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Improve algorithm for Matrix#determinant and</div><div class='add'>+	  Matrix#rank</div><div class='add'>+	  {determinant,det,rank}_e are now deprecated. [ruby-core:28273]</div><div class='add'>+	  Also fixes a bug in Determinant#rank (e.g. [[0,1][0,1][0,1]])</div><div class='add'>+	  Matrix#singular?, Matrix#regular? now raise on rectangular matrices</div><div class='add'>+	  and use determinant instead of rank.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 00:52:56 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define some constants to select</div><div class='add'>+	  collect code for win64.</div><div class='add'>+</div><div class='add'>+Thu Apr 29 20:10:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_open3.rb (test_commandline): use dump instead of</div><div class='add'>+	  shellwords.  [ruby-core:23797]</div><div class='add'>+</div><div class='add'>+Thu Apr 29 18:39:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thwait.rb (ThreadsWait#join): refined rdoc again.</div><div class='add'>+	  [ruby-core:29863] [ruby-dev:41092]</div><div class='add'>+</div><div class='add'>+Thu Apr 29 14:46:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby: use more descriptive assertions.</div><div class='add'>+</div><div class='add'>+	* test/ruby: fixed nonsense assertions.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):</div><div class='add'>+	  reverted.  [ruby-core:29872]</div><div class='add'>+</div><div class='add'>+Thu Apr 29 12:33:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thwait.rb (ThreadsWait#join): refined rdoc.  [ruby-core:29863]</div><div class='add'>+</div><div class='add'>+Thu Apr 29 12:16:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert): reject</div><div class='add'>+	  non-boolean values.  [ruby-core:29868]</div><div class='add'>+</div><div class='add'>+Thu Apr 29 11:20:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (seek_before_access): renamed.  see [ruby-core:29861].</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_binread): fixed rdoc.  parts of a patch from Roger</div><div class='add'>+	  Pack in [ruby-core:29861].</div><div class='add'>+</div><div class='add'>+Thu Apr 29 03:50:49 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/utils.rb: Fixing an incompatibility with</div><div class='add'>+	  reflection methods returning Symbols.  Patch by</div><div class='add'>+	  HD Moore.  [ruby-core:29821]</div><div class='add'>+</div><div class='add'>+Wed Apr 28 23:53:15 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thwait.rb: revise rdoc.  a patch from Roger Pack in</div><div class='add'>+	  [ruby-core:27362].</div><div class='add'>+</div><div class='add'>+Wed Apr 28 23:21:42 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Update to JSON 1.4.2.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 22:53:57 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread. (rb_thread_terminate_all): revert r24591 which caused SEGV</div><div class='add'>+	  sometimes.  [ruby-dev:40936] [ruby-core:27245] [ruby-core:27416]</div><div class='add'>+</div><div class='add'>+Wed Apr 28 22:26:55 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/psych/visitors/test_yaml_tree.rb (test_struct_const): remove</div><div class='add'>+	  Struct::Foo which affects test/ruby/test_struct to warn redefining</div><div class='add'>+	  constant.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 18:04:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): use rb_check_funcall.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 17:14:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: CMSG_ macros are broken on 64bit darwin,</div><div class='add'>+	  because of use of __DARWIN_ALIGN.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 16:44:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h ({RSTRING,RSTRUCT,RBIGNUM}_LENINT): check long</div><div class='add'>+	  to cast to int.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 16:28:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c (sendmsg_blocking, recvmsg_blocking):</div><div class='add'>+	  define only when used.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: non-implemented method definitions need</div><div class='add'>+	  to be shared.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 10:27:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c (ruby_vsnprintf, ruby_snprintf): suppress warnings.</div><div class='add'>+	  why return int in spite of the arguments of size_t?</div><div class='add'>+</div><div class='add'>+Wed Apr 28 09:49:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: enable optimization.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 09:43:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_balanced): do not warn for EXPR_ENDFN.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 23:57:04 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): add exception guard around code running</div><div class='add'>+	  signal handler (of r27513).  Absence of the guard made</div><div class='add'>+	  bootstraptest/test_thread.rb fail sometimes.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 22:55:29 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (onceinlinecache): add exclusion control for a region</div><div class='add'>+	  between onceinlinecache and setinlinecache.  [ruby-dev:39768]</div><div class='add'>+</div><div class='add'>+Tue Apr 27 22:40:54 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (set_relation): do not use top_wrapper as bottom of cref,</div><div class='add'>+	  which caused constant lookup error when "wrapped load" is used;</div><div class='add'>+	  instead, use Object as bottom, and push top_wrapper on Object.</div><div class='add'>+	  [ruby-core:25039]</div><div class='add'>+</div><div class='add'>+Tue Apr 27 21:24:40 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): before cleanup, check signal buffer and run</div><div class='add'>+	  handler if any.  [ruby-core:20970]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_check_signal): separated from</div><div class='add'>+	  timer_thread_function.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 18:00:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP#rcptto_list): fixed typo.</div><div class='add'>+	  [ruby-core:29809]</div><div class='add'>+</div><div class='add'>+Tue Apr 27 12:44:23 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Import RDoc 2.5.7.  Fixes #1318 and ruby-core:29780.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 10:54:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape): deny extra character escapes.</div><div class='add'>+	  [ruby-core:27228]</div><div class='add'>+</div><div class='add'>+Tue Apr 27 06:20:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (select_internal): IO which cbuf is not empty is readable.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 00:07:32 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program): check void_expr when rb_parse_in_main().</div><div class='add'>+	  [ruby-dev:38717]</div><div class='add'>+</div><div class='add'>+Mon Apr 26 20:11:05 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c, lib/cmath.rb, lib/date.rb lib/date/delta*:</div><div class='add'>+	  reverted r27484-27486.  now official spec.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 15:42:59 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/generator/generator.c (convert_UTF8_to_JSON_ASCII): get rid</div><div class='add'>+	  of a warning.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 13:11:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_get_value): escape Qundef.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 12:42:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_balanced): warn according to last state.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 09:05:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Update to JSON 1.4.1.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 23:50:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (ruby_dup): update max fd.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 21:56:49 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (fetch_internal): do not quote message data item</div><div class='add'>+	  names.  Thanks, Eric Hodel.  [ruby-core:23508]</div><div class='add'>+</div><div class='add'>+Sun Apr 25 15:59:02 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: reverted experimental r23900.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 15:51:00 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c: reverted experimental r24565.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 15:34:48 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/delta*: reverted experimental r24567 and</div><div class='add'>+	  r25393.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 11:02:20 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): putenv on msvcrt.dll can't remove empty value.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 23:40:50 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: use [""].pack("p").size to detect the pointer size.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 21:07:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/psych/test_psych.rb: don't leave temporary files.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 16:27:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (RUBY_PROGRAM_VERSION): added</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: expand target file name.</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in: no need for hook if extmk.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 14:40:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: raise IOError when byte oriented operations occur with</div><div class='add'>+	  non-empty character buffer.</div><div class='add'>+	  [ruby-dev:40493] [ruby-dev:40506]</div><div class='add'>+</div><div class='add'>+Sat Apr 24 13:06:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (get_arglen): skip the last terminator of argv before</div><div class='add'>+	  checking environ.</div><div class='add'>+</div><div class='add'>+	* ruby.c (get_arglen): duplicate environ area if setenv and unsetenv</div><div class='add'>+	  are provided.</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): keep empty strings.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 09:44:40 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/yaml2byte.c (bytestring_append, bytestring_extend):</div><div class='add'>+	  removed wrong extra assignments.  a patch from Marcus Rueckert</div><div class='add'>+	  &lt;darix AT opensu.se&gt; at [ruby-core:29759].</div><div class='add'>+</div><div class='add'>+Sat Apr 24 00:41:52 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): remove after_exec() which sometimes caused</div><div class='add'>+	  two timer threads started.  [ruby-core:25217]</div><div class='add'>+</div><div class='add'>+	* signal.c: use pthread_sigmask() instead of sigprocmask().</div><div class='add'>+	  sigprocmask() is unspecified behavior on multi-thread programs.</div><div class='add'>+	  [ruby-core:25217]</div><div class='add'>+</div><div class='add'>+Sat Apr 24 00:36:05 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb: add kfreebsd support.  based on a patch from</div><div class='add'>+	  Petr Salinger in [ruby-core:29769].</div><div class='add'>+	  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560293</div><div class='add'>+</div><div class='add'>+Sat Apr 24 00:14:41 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (SSL_SESSION_cmp): remove static for</div><div class='add'>+	  loopy version of openssl (0.9.8l?).</div><div class='add'>+</div><div class='add'>+Fri Apr 23 23:27:17 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c: fix compilation failure with</div><div class='add'>+	  OpenSSL 0.9.8.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 17:29:35 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c: OpenSSL 1.0.0 support.</div><div class='add'>+	  [ruby-core:29256]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check some functions added/removed at</div><div class='add'>+	  OpenSSL 1.0.0.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_load): use engines which</div><div class='add'>+	  exists.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session (SSL_SESSION_cmp): removed at 1.0.0,</div><div class='add'>+	  so implement compatible function here.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 14:37:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem::QuickLoader.load_full_rubygems_library):</div><div class='add'>+	  get rid of creating same regexps many times.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb (Kernel#require): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 14:07:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/etc.rd, doc/etc.rd.ja: moved from ext/etc.</div><div class='add'>+</div><div class='add'>+	* ext/etc.c (Init_etc): fixed rdoc.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 11:31:25 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Update to RDoc 2.5.6.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 04:11:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_parser_events.rb (test_unterminated_regexp):</div><div class='add'>+	  separate test.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 01:47:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_wopen): shouldn't use FILE_FLAG_OVERLAPPED with</div><div class='add'>+	  normal file.  #1807, #2510, #2549</div><div class='add'>+</div><div class='add'>+Fri Apr 23 01:28:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (ubf_handle): remove unused typedef.</div><div class='add'>+</div><div class='add'>+Thu Apr 22 23:10:59 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): fix wrong error message when Kernel#public_method</div><div class='add'>+	  receives name of private method.  [Bug #2425]</div><div class='add'>+</div><div class='add'>+Thu Apr 22 22:56:42 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: fix test.  [Bug #2342]</div><div class='add'>+</div><div class='add'>+Thu Apr 22 21:50:17 2010  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/multi-irb.rb: fix multi-irb running</div><div class='add'>+	  parallelly. [ruby-dev:41031] [Bug #3182]</div><div class='add'>+</div><div class='add'>+Thu Apr 22 17:13:34 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems: Import RubyGems 1.3.7.pre.1 (as 1.3.6.1).</div><div class='add'>+</div><div class='add'>+Thu Apr 22 16:43:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_balanced): removed false warning.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): skip whitespaces after method name.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 02:16:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.[ch]: replace _DEBUG with BIGDECIMAL_DEBUG</div><div class='add'>+	  to prevent activating debugging code when compiled with -DEBUG flag</div><div class='add'>+	  on Windows. [ruby-core:22989] #1308</div><div class='add'>+</div><div class='add'>+Wed Apr 21 21:24:20 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: check SHA256_CTX and SHA512_CTX to fix</div><div class='add'>+	  compilation failure on OpenBSD 4.4.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 15:13:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): fix incomplete character immediately before EOF</div><div class='add'>+	  with newline converter. [ruby-dev:41024]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 13:44:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (regexp): check each fragments.   [ruby-core:27374]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 13:36:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): reverted r27388 due to backward</div><div class='add'>+	  compatibility.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): warn confusing binary operators after</div><div class='add'>+	  local variable.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 11:53:47 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 2.5.5.  Fixes bugs in ri, Darkfish and</div><div class='add'>+	  rdoc option handling.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 11:31:35 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): abandoned EXPR_VCALL.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 03:17:17 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): set read_encoding to resulted one character</div><div class='add'>+	  string. [ruby-dev:41023]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 00:29:39 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_karatsuba): fix calculation order to prevent</div><div class='add'>+	  underflow.  [ruby-core:29088]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 00:26:17 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (NODE_NEXT, NODE_REDO): add dummy putnil instruction to</div><div class='add'>+	  fix stack consistency error.  [ruby-core:28172]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_jump.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 00:16:44 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_params): update buf_filled count because</div><div class='add'>+	  deflateParams writes to out buffer.  And, revert r18029 because the</div><div class='add'>+	  flush was not needed now and emits garbage.  [ruby-dev:40802]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 00:01:05 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): decrement alias count of</div><div class='add'>+	  rb_method_definition_t to prevent memory leak.  see</div><div class='add'>+	  [ruby-dev:41021].</div><div class='add'>+</div><div class='add'>+Tue Apr 20 21:33:06 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/registry.rb (PredefinedKey#create): root key</div><div class='add'>+	  name should be a string.  fixed [ruby-core:28192]</div><div class='add'>+</div><div class='add'>+Tue Apr 20 19:25:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): fix for tLPAREN_ARG.</div><div class='add'>+</div><div class='add'>+Tue Apr 20 12:34:23 2010  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/{core, util}.rb (RFC822_DAYS, RFC822_MONTHS):</div><div class='add'>+	  move the constant because used only util.rb.</div><div class='add'>+</div><div class='add'>+Tue Apr 20 12:24:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_state_e, IS_END, IS_SPCARG, parser_yylex): separate</div><div class='add'>+	  the state after vcall.  [ruby-core:29578]</div><div class='add'>+</div><div class='add'>+Tue Apr 20 01:03:00 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_fork.rb: add a test for [ruby-core:28924].</div><div class='add'>+</div><div class='add'>+Tue Apr 20 00:43:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): skip last directory separators.</div><div class='add'>+	  [ruby-core:29627]</div><div class='add'>+</div><div class='add'>+Tue Apr 20 00:41:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (internal_{read,write}_func, rb_{read,write}_internal):</div><div class='add'>+	  reverted r27265, since now rb_thread_blocking_region() preserves</div><div class='add'>+	  errno.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 23:14:45 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region, rb_thread_blocking_region_end):</div><div class='add'>+	  preserve errno.  [Bug #2606] [ruby-core:28924]</div><div class='add'>+</div><div class='add'>+Mon Apr 19 19:41:10 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::cp_r): backport r11156 from ruby_1_8.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 19:18:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): reduced duplicated conditions.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 13:58:04 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 2.5.4.  Fixes #3169, #3160, #3023.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 12:46:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout#timeout): propagate errors to the</div><div class='add'>+	  caller.  [ruby-dev:41010]</div><div class='add'>+</div><div class='add'>+Mon Apr 19 00:27:03 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): workaround fix for redefinition</div><div class='add'>+	  of methods. This is because cfp-&gt;me uses the rb_method_entry</div><div class='add'>+	  which is freed by redefinition of remove_method. Note that</div><div class='add'>+	  reusing may cause another problem when the usage is changed.</div><div class='add'>+	  [ruby-core:27320] [ruby-core:29464]</div><div class='add'>+</div><div class='add'>+Sun Apr 18 22:13:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): cond_stack and cmdarg_stack are VALUE.</div><div class='add'>+</div><div class='add'>+Sun Apr 18 18:07:47 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::IPv4::Regex): make it only accept 0 to 255.</div><div class='add'>+	  [ruby-core:29501]</div><div class='add'>+</div><div class='add'>+Sun Apr 18 12:48:51 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): seems like a symbol-literal when spaces</div><div class='add'>+	  are unbalanced.  [ruby-core:29578]</div><div class='add'>+</div><div class='add'>+Sun Apr 18 12:32:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): preserve cond_stack and cmdarg_stack.</div><div class='add'>+	  [ruby-core:29579]</div><div class='add'>+</div><div class='add'>+Sun Apr 18 05:50:58 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: defaulting binary string</div><div class='add'>+	  format to "literal" format.</div><div class='add'>+</div><div class='add'>+Sun Apr 18 02:13:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (identify_identifier): add '_' to the regexp.</div><div class='add'>+</div><div class='add'>+Sat Apr 17 23:21:15 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use AC_TRY_LINK instead of AC_TRY_COMPILE.</div><div class='add'>+	  On Solaris it can compile with signbit but can't link.</div><div class='add'>+</div><div class='add'>+Sat Apr 17 20:34:09 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: update Gem::ConfigMap to fake environment for</div><div class='add'>+	  tests.  Some test of rubygems had failed because envutil.rb changed</div><div class='add'>+	  only RbConfig::CONFIG but not Gem::ConfigMap.</div><div class='add'>+</div><div class='add'>+Sat Apr 17 20:31:08 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (identify_identifier): allow multibyte character</div><div class='add'>+	  as identifier.  [ruby-core:27275]</div><div class='add'>+</div><div class='add'>+Sat Apr 17 09:19:27 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix splat condition in NODE_WHEN.</div><div class='add'>+	  [Bug #2226]</div><div class='add'>+</div><div class='add'>+Sat Apr 17 08:57:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP#rcptto_list): continue when at least</div><div class='add'>+	  one RCPT is accepted.  based on a patch from Kero van Gelder at</div><div class='add'>+	  [ruby-core:26190].</div><div class='add'>+</div><div class='add'>+Sat Apr 17 07:43:55 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/thread/test_queue.rb (TestQueue#grind): fix typos.</div><div class='add'>+</div><div class='add'>+Sat Apr 17 07:27:53 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add Array#repeated_{combination,permutation} [Feature #2981]</div><div class='add'>+</div><div class='add'>+Sat Apr 17 05:30:22 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/core_ext.rb (yaml_as): supporting deprecated</div><div class='add'>+	  "yaml_as" method</div><div class='add'>+	* ext/syck/lib/syck/tag.rb: ditto</div><div class='add'>+</div><div class='add'>+Sat Apr 17 05:25:15 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/coder.rb (scalar): supporting deprecated methods</div><div class='add'>+	* ext/psych/lib/psych/deprecated.rb: supporting deprecated</div><div class='add'>+	  to_yaml_properties method</div><div class='add'>+</div><div class='add'>+Sat Apr 17 01:32:50 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_rewind, rb_io_eof): add rdoc.  based on a patch from</div><div class='add'>+	  Roger Pack in [ruby-core:26771] [Bug #2377].</div><div class='add'>+</div><div class='add'>+Fri Apr 16 23:42:56 2010  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_folderitem2_invokeverb.rb (test_invokeverb):</div><div class='add'>+	  run test only when "Create Shortcut (&amp;S)" menu is found.</div><div class='add'>+	  [ruby-core:29550] [Bug #1602]</div><div class='add'>+</div><div class='add'>+Fri Apr 16 21:52:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content, etc): counts of CMDARG_PUSH and POP were</div><div class='add'>+	  inconsistent.  [ruby-core:22637]</div><div class='add'>+</div><div class='add'>+Fri Apr 16 21:27:57 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): revert r23389,</div><div class='add'>+	  which not only is unnecessary but also causes the inconsistency of</div><div class='add'>+	  return type.  [ruby-core:25706] [Bug #2129]</div><div class='add'>+</div><div class='add'>+Fri Apr 16 20:05:24 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (Queue#push, #pop, SizedQueue#push, #pop): remove</div><div class='add'>+	  code that kicks waiting thread twice, which caused race and</div><div class='add'>+	  deadlock.  a patch from James M. Lawrence.  [ruby-core:25537]</div><div class='add'>+</div><div class='add'>+	* test/thread/test_queue.rb: added.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 20:01:47 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* .gitignore: updated.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 16:51:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS::SVN::get_revisions.): remind about</div><div class='add'>+	  DOSISH, sometimes.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 16:15:40 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_repeated_permutation): new method added. a patch</div><div class='add'>+	  from Makoto Kishimoto in [ruby-core:29267]   [ruby-core:28724]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_repeated_combination): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 22:41:47 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_priority, rb_thread_priority_set): fix rdoc.</div><div class='add'>+	  Lower-priority thread may run even if there are higher-priority</div><div class='add'>+	  threads.  See [ruby-dev:40977].</div><div class='add'>+</div><div class='add'>+Thu Apr 15 22:33:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/ftp.rb (URI::FTP#set_path): added to correct handling of</div><div class='add'>+	  special case where path of ftp is relative.  This converts relative</div><div class='add'>+	  path to absolute one, because external representation of ftp path is</div><div class='add'>+	  relative and internal representation is absolute.  [ruby-core:24077]</div><div class='add'>+</div><div class='add'>+	* lib/uri/ftp.rb (URI::FTP#initialize): converts absolute to relative.</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#check_path): allow relative path</div><div class='add'>+	  when scheme is ftp.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 21:54:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: use backtick for ruby 1.8.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 21:13:29 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: this should run with ruby 1.8.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 20:41:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: make -q effective for files not version</div><div class='add'>+	  controlled.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 14:50:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): get rid of use of malloc from signal</div><div class='add'>+	  handler by using ruby_engine_name.  [ruby-core:29497]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (print_backtrace): file may be nil when segfaulted in</div><div class='add'>+	  very early stage.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (bugreport_backtrace): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 11:51:49 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (help): small fix.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 22:09:28 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/source.rb: force_encoding("UTF-8") when the input</div><div class='add'>+	  is already UTF-8. patched by Kouhei Sutou [ruby-core:23404]</div><div class='add'>+</div><div class='add'>+Wed Apr 14 18:23:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (signbit): signbit is a macro in C99.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 17:56:06 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_shift_cbuf): should terminate.</div><div class='add'>+	  http://golf.shinh.org/p.rb?DECimal+number+to+BINary#Ruby</div><div class='add'>+</div><div class='add'>+Wed Apr 14 16:29:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GET_STACK_BOUNDS): fixed macro argument names.  a patch from</div><div class='add'>+	  Satoshi Shiba &lt;shiba AT rvm.jp&gt; at [ruby-dev:40973].</div><div class='add'>+</div><div class='add'>+	* gc.h (ruby_get_stack_grow_direction): fixed prototype.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack, ruby_stack_overflowed_p): both side</div><div class='add'>+	  should be same type.  [Bug #3145]</div><div class='add'>+</div><div class='add'>+Wed Apr 14 15:58:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_cstr): make NUL terminated if it is</div><div class='add'>+	  not done.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 12:56:21 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap (encode_utf7): encode &amp; properly.  Thanks, Kengo</div><div class='add'>+	  Matsuyama.  [ruby-dev:38063]</div><div class='add'>+</div><div class='add'>+Wed Apr 14 11:39:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/syck/basenode.rb (Syck::BaseNode#match_path): fixed</div><div class='add'>+	  library name.</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/yaml/syck.rb: split from ext/syck/lib/syck.rb for</div><div class='add'>+	  backward compatibility.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 09:24:07 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Refix [nkf-bug:21393]. (explicit -X)</div><div class='add'>+</div><div class='add'>+Tue Apr 13 20:36:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Fix: Windows Codepages wrongly convert</div><div class='add'>+	  Halfwidth Katakana. [nkf-bug:21393]</div><div class='add'>+</div><div class='add'>+Tue Apr 13 15:00:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (make_seed_value): fix leading-zero-guard condition on</div><div class='add'>+	  bdigit is smaller than 32bit.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 13:57:36 2010  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb (CompletionProc): fix [ruby-dev:40953]</div><div class='add'>+	  [Bug #3126]. Thanks Kazuhiro NISHIYAMA.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 09:32:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): insert output the value when</div><div class='add'>+	  fallback hash has a related key. [ruby-dev:40540]</div><div class='add'>+	  [ruby-dev:40829] #3036</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_opts): pass to newhash</div><div class='add'>+	  a value with the key :fallback.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 00:12:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): use the absolute value of seed to</div><div class='add'>+	  make srand(-2**40) portable with 32bit and 64bit.</div><div class='add'>+	  [ruby-core:29292](2)</div><div class='add'>+</div><div class='add'>+Mon Apr 12 22:48:47 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (inspect_enumerator): don't raise for uninitialized</div><div class='add'>+	  enumerator.</div><div class='add'>+</div><div class='add'>+Mon Apr 12 21:47:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL: separated the section for parse.c.  contributed by Paul</div><div class='add'>+	  Betteridge in [ruby-core:29472].</div><div class='add'>+</div><div class='add'>+Mon Apr 12 09:19:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_each_src_dest): ensure src is accessible.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_same): use File.identical? to get rid of</div><div class='add'>+	  exceptions.  [ruby-core:28141]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_have_st_ino): no longer used.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_have_st_ino): check if required method is</div><div class='add'>+	  defined, instead of platform name.</div><div class='add'>+</div><div class='add'>+Mon Apr 12 05:10:20 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: New method Matrix.build [ruby-core:28272]</div><div class='add'>+</div><div class='add'>+Mon Apr 12 03:45:25 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Deprecate elements_to_{f/i/r}</div><div class='add'>+</div><div class='add'>+Mon Apr 12 03:30:29 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Handle coercion errors by raising TypeErrors</div><div class='add'>+	  [ruby-core:26736]</div><div class='add'>+</div><div class='add'>+Mon Apr 12 00:51:21 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast, rb_io_getline_1): fix ARGF.lineno</div><div class='add'>+	  behavior. [ruby-core:25205]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb (TestArgf#test_lineno3): add a test for</div><div class='add'>+	  above.</div><div class='add'>+</div><div class='add'>+Sun Apr 11 23:25:17 2010  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: can not load libraries if --with-opt-dir is used</div><div class='add'>+	  on AIX. [Bug #3107]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 14:44:45 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#getc): revert r10817, which caused</div><div class='add'>+	  regression for handling case when there is no newline at the end of</div><div class='add'>+	  file.  [ruby-core:28248]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 12:08:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_replicate): new encoding name must be valid</div><div class='add'>+	  c-string.  [ruby-dev:40954]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 11:58:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (ftruncate): rename to get rid of conflict</div><div class='add'>+	  with same name but non-LFS function on MinGW.  [ruby-core:24757]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 10:33:34 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 2.5.3.  Includes r27288 and r27290.</div><div class='add'>+</div><div class='add'>+Sun Apr 11 09:31:39 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/syck/*: Moved test/yaml to test/syck since it's actually</div><div class='add'>+	  testing the syck YAML engine.</div><div class='add'>+</div><div class='add'>+Sun Apr 11 08:56:44 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (setup_output_dir): compare by Time#to_i.</div><div class='add'>+	  Cached created time doesn't have fractional times,</div><div class='add'>+	  but FileStat#mtime has; so rdoc almost always judged files</div><div class='add'>+	  are updated.</div><div class='add'>+</div><div class='add'>+Sun Apr 11 07:40:48 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (setup_output_dir): fix typo. [ruby-core:29415]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 07:01:41 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (decode_www_form_component): validate.</div><div class='add'>+	  [ruby-dev:40938]</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (decode_www_form): allow empty string.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb: fix nodoc for constant. [ruby-dev:40949]</div><div class='add'>+</div><div class='add'>+Sat Apr 10 21:26:22 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/preprocess.rb (RDoc::Markup::PreProcess#handle):</div><div class='add'>+	  use File.binread to avoid locale dependency.</div><div class='add'>+</div><div class='add'>+Sat Apr 10 15:18:26 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc: Import RDoc 2.5.2</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc::Parser::Ruby): Don't parse rdoc</div><div class='add'>+	  files, reverts r24976 in favor of include directive support in C</div><div class='add'>+	  parser.</div><div class='add'>+</div><div class='add'>+Sat Apr 10 13:14:22 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): add SSLContext#ssl_timeout=,</div><div class='add'>+	  which allows net/https to specify timeout.  [ruby-core:24812]</div><div class='add'>+</div><div class='add'>+Sat Apr 10 07:36:13 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method): clear attr.location before rb_ary_new3.</div><div class='add'>+	  a patch from Masaya TARUI in [Bug #3108]</div><div class='add'>+</div><div class='add'>+Sat Apr 10 05:27:26 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/deprecated.rb: implementing Psych.quick_emit and</div><div class='add'>+	  adding deprecation warnings.</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: supporting deprecated</div><div class='add'>+	  yaml_initialize api.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: supporting deprecated</div><div class='add'>+	  to_yaml api.</div><div class='add'>+</div><div class='add'>+Sat Apr 10 01:08:53 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c: parse raises a TypeError when nil is passed in.</div><div class='add'>+</div><div class='add'>+Sat Apr 10 00:01:51 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/lib/expect.rb: preserve buffer read, instead of discard.</div><div class='add'>+	  based on a patch from Luiz Angelo Daros de Luca in</div><div class='add'>+	  [ruby-core:23464].</div><div class='add'>+</div><div class='add'>+Fri Apr  9 23:58:58 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/lib/expect.rb: raise an error when argument is unexpected</div><div class='add'>+	  type.  based on a patch from Luiz Angelo Daros de Luca in</div><div class='add'>+	  [ruby-core:23464].</div><div class='add'>+</div><div class='add'>+Fri Apr  9 23:57:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/lib/expect.rb: add rdoc.  based on a patch from Luiz Angelo</div><div class='add'>+	  Daros de Luca in [ruby-core:23464].</div><div class='add'>+</div><div class='add'>+Fri Apr  9 23:54:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb, lib/irb/lc/help-message,</div><div class='add'>+	  lib/irb/lc/ja/help-message: add -w flag.  [ruby-core:24594]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 23:51:45 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c (init_inetsock_internal),</div><div class='add'>+	  ext/socket/unixsocket.c (rsock_init_unixsock): check the result of</div><div class='add'>+	  listen(2).  based on a patch from Mike Pomraning.  [ruby-core:23698]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 21:22:10 2010  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb (CompletionProc): irb will be stuck with</div><div class='add'>+	  long variable name at completion. [Bug#1969]. refix [ruby-core:28366].</div><div class='add'>+</div><div class='add'>+Fri Apr  9 20:54:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (decode_www_form): don't ignore leading '?'.</div><div class='add'>+	  [ruby-dev:40938]</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (decode_www_form): check whether argument is</div><div class='add'>+	  valid application/x-www-form-urlencoded data.</div><div class='add'>+</div><div class='add'>+Fri Apr  9 20:29:13 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): clear up the previous commit (RB_GC_GUARD can</div><div class='add'>+	  precede the last reference).  [ruby-dev:40942]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 20:05:05 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): add RB_GC_GUARD to prevent str being free'ed.</div><div class='add'>+	  a patch from Masaya TARUI in [ruby-dev:40939].  [ruby-dev:40514]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 10:53:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): stop hiding, and freeze unpopped</div><div class='add'>+	  string nodes to allow method redefinition.  [ruby-dev:40641]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 01:26:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (internal_{read,write}_func, rb_{read,write}_internal):</div><div class='add'>+	  preserve errno.  a patch from Takehiro Kubo in [ruby-core:29340].</div><div class='add'>+	  [ruby-core:28924]</div><div class='add'>+</div><div class='add'>+Fri Apr  9 01:12:07 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb (CompletionProc): calling the method "methods"</div><div class='add'>+	  may raise an exception.  [ruby-core:28366]</div><div class='add'>+</div><div class='add'>+Thu Apr  8 14:33:24 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: --disable-install-doc should prohibit doxygen.</div><div class='add'>+</div><div class='add'>+Thu Apr  8 14:23:51 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: include errno.h before defining errnos.</div><div class='add'>+	  see [ruby-core:29314]</div><div class='add'>+</div><div class='add'>+Thu Apr  8 11:45:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: use Psych if only it is loaded already.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::EngineManager#yamler): set the result after</div><div class='add'>+	  successfully switched.</div><div class='add'>+</div><div class='add'>+Thu Apr  8 07:22:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): ignore higher bits if all they are same as</div><div class='add'>+	  the lower sign bit.  [ruby-core:29292](2)</div><div class='add'>+</div><div class='add'>+Thu Apr  8 07:16:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb (IRB::ExtendCommand::Help#execute): use RI</div><div class='add'>+	  interactive mode if no argument.  [ruby-dev:39839]</div><div class='add'>+</div><div class='add'>+Wed Apr  8 02:33:55 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): Remove limitation for lengthy permutations</div><div class='add'>+	  [ruby-core:29240]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Apr  7 23:33:55 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-map): binded C-c C-c and C-c C-c C-u</div><div class='add'>+	  to comment-region and uncomment-region. Thanks Michael Klishin!</div><div class='add'>+	  [Feature #872] [ruby-core:20552]</div><div class='add'>+</div><div class='add'>+Wed Apr  7 21:44:14 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (ASCTIME): unused macro removed.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 16:45:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): reverted r27244.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 11:49:34 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/quickpath.rb (REXML::QuickPath::predicate):</div><div class='add'>+	  fix regexp.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 09:44:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): quote init-commands.</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): `make ruby` builds ruby command</div><div class='add'>+	  even if RUBY_INSTALL_NAME is customized or it has extension.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 03:28:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc#{initialize,setup_output_dir}):</div><div class='add'>+	  initialize @last_created and use it.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 02:05:41 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in: not define $extout to make target in cwd.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 23:01:35 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: Introduce UNINITIALIZED_VAR() macro.</div><div class='add'>+	* thread.c (do_select): Use UNINITIALIZED_VAR() instead FAKE_FD_ZERO().</div><div class='add'>+	  Also, remove FAKE_FD_ZERO completely. [Feature #3018]</div><div class='add'>+</div><div class='add'>+Tue Apr  6 14:53:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: check definition existence before defining</div><div class='add'>+	  errno macros.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (errmap): define winsock errors mappings.</div><div class='add'>+	  these are VC++10 support. see [ruby-core:29278]</div><div class='add'>+</div><div class='add'>+Tue Apr  6 21:55:25 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: test localtime(3) overflow.  [ruby-dev:40910]</div><div class='add'>+</div><div class='add'>+	* time.c (rb_gmtime_r): renamed from rb_gmtime.</div><div class='add'>+	  (rb_localtime_r): renamed from rb_localtime.</div><div class='add'>+	  (rb_localtime_r2): call rb_localtime_r and validate the result if</div><div class='add'>+	  there is overflow problem.</div><div class='add'>+	  (rb_gmtime_r2): call rb_gmtime_r and validate the result if there</div><div class='add'>+	  is overflow problem.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 11:21:23 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in: hooks for extconf.rb.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 06:19:36 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text.check): comment out</div><div class='add'>+	  broken logic.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 05:59:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb (LETTER, DIGIT):</div><div class='add'>+	  always use POSIX charclass.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb (NAMECHAR):</div><div class='add'>+	  remove duplicated range.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/xmltokens.rb (NCNAME_STR, NAMECHAR): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/xpathparser.rb (PathExpr): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text#initialize):</div><div class='add'>+	  initialize @parent.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 19:54:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (make_regexp): use onig_new_with_source to keep</div><div class='add'>+	  sourcefile and sourceline.</div><div class='add'>+</div><div class='add'>+	* re.c (onig_new_with_source): copied from onig_new in</div><div class='add'>+	  regcomp.c for keep sourcefile and sourceline.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 13:20:45 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, win32/win32.c (EWOULDBLOCK): VC10 already</div><div class='add'>+	  defined EWOULDBLOCK.  based on a patch from Charlie Savage,</div><div class='add'>+	  see [ruby-core:29255]</div><div class='add'>+</div><div class='add'>+Mon Apr  5 13:10:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/core_ext.rb: remove before alias.</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/syck.rb: don't warn called by itself.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 13:08:24 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (each_export): VC10 support.</div><div class='add'>+	  a patch from Charlie Savage in [ruby-core:29254]</div><div class='add'>+</div><div class='add'>+Sun Apr  4 22:18:32 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (cmp): optimize for fixnums.</div><div class='add'>+	  (lt): use cmp.</div><div class='add'>+	  (gt): ditto.</div><div class='add'>+	  (le): ditto.</div><div class='add'>+	  (ge): ditto.</div><div class='add'>+	  (wlt): use wcmp.</div><div class='add'>+	  (wgt): ditto.</div><div class='add'>+	  (wle): ditto.</div><div class='add'>+	  (wge): ditto.</div><div class='add'>+	  (time_subsec): use wmod.</div><div class='add'>+</div><div class='add'>+Sun Apr  4 10:04:28 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: replace snprintf and vsnprintf by</div><div class='add'>+	  ruby_snprintf and ruby_vsnprintf. [ruby-dev:40909]</div><div class='add'>+</div><div class='add'>+	* configure.in: don't check snprintf(3) and vsnprintf(3).</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: don't declare snprintf and vsnprintf.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: include stdarg.h.</div><div class='add'>+</div><div class='add'>+	* sprintf.c: include vsnprintf.c</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c: renamed from missing/vsnprintf.c.</div><div class='add'>+</div><div class='add'>+	* vsnprintf.c: remove useless ifdefs.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: use ruby_snprintf and ruby_vsnprintf.</div><div class='add'>+</div><div class='add'>+Sun Apr  4 09:44:01 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (lt): call &lt;=&gt; instead of &lt;.</div><div class='add'>+</div><div class='add'>+Sun Apr  4 06:46:16 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml: Moved to ext/syck/lib, Syck only uses Syck constant.</div><div class='add'>+	* lib/yaml.rb: Added an engine manager for choosing YAML engine.</div><div class='add'>+	* ext/syck/lib/syck/rubytypes.rb: squashed warnings when using Psych</div><div class='add'>+</div><div class='add'>+Sat Apr  3 22:47:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: don't define STRUCT_WIDEVAL.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 18:15:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc#{setup,update}_output_dir): store mtimes</div><div class='add'>+	  per files in the flag file.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc#normalized_file_list): skip already</div><div class='add'>+	  processed and unmodified files.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 15:09:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): no force-update, and add RDOCFLAGS.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (RDoc#parse): no-force-update option.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 10:51:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): raise ArgumentError on nil, as the</div><div class='add'>+	  documentation implies.  [ruby-core:29075]</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): mentioned the case of when max is nil.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 06:56:11 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): Accept a block [ruby-core:29045]</div><div class='add'>+</div><div class='add'>+Sat Apr  3 04:46:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS#relative_to): path and @srcdir may have</div><div class='add'>+	  different relative-ness.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 03:19:01 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Benchmark::Tms#add): fix NameError.</div><div class='add'>+	  [ruby-dev:40906]</div><div class='add'>+</div><div class='add'>+	* test/benchmark/test_benchmark.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 01:50:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc#make_message): no empty lines.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/stats.rb (RDoc::Normal#print_file): send to stdout and</div><div class='add'>+	  flush always</div><div class='add'>+</div><div class='add'>+Sat Apr  3 00:03:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/class_module.rb (RDoc#merge): get rid of stack overflow.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/c.rb (RDoc#handle_method): see source files in</div><div class='add'>+	  source directory.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 22:13:38 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb: reverted r27186 to add generators.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 21:17:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: added reverse_lookup option.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 15:26:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_driver.rb (with_dummy_pager): don't grasp</div><div class='add'>+	  the terminal.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 14:43:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::Generator): defer by autoload.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator/darkfish.rb: use normal library instead of</div><div class='add'>+	  gem.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 14:26:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc#parse_files): don't branch by</div><div class='add'>+	  RUBY_VERSION.  reapplied r24990.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc#parse_files): emacs local variables</div><div class='add'>+	  are delimited by a semicolon.  supported Vim style.  reapplied</div><div class='add'>+	  r24988 with fixing a typo for shebang.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 14:16:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc::Parser::Ruby): parse also rdoc</div><div class='add'>+	  files.  reapplied r24976.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/c.rb: fixed a small error in the documentation.</div><div class='add'>+	  [ruby-core:24744]  reapplied r24395.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser.rb (RDoc::Parser.binary?): blksize may be nil</div><div class='add'>+	  and is irrelevant to whether a file is binary.  TAB and newlines</div><div class='add'>+	  would be usually considered to be included in text data.</div><div class='add'>+	  reapplied r23071 and r24297.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 13:59:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths): Gem::Enable has been</div><div class='add'>+	  obsolete.  reapplied r24599.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb: follows $ridir.  reapplied r23554.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::HOMEDIR): expand_path deals with</div><div class='add'>+	  platform dependent environments.  reapplied r21312.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 12:52:25 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser.rb (binary?): regression.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 11:54:49 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): wrong calculation of the head of setenv</div><div class='add'>+	  string.  [ruby-core:29216]</div><div class='add'>+	  a patch from Heesob Park in [ruby-core:29218]</div><div class='add'>+</div><div class='add'>+Fri Apr  2 08:24:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (ruby_setsid): split from proc_setsid.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): use EXIT_SUCCESS instead of magic number.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 07:00:28 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_inspect): fix format specifiers.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 05:38:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (InitVM): calls per-VM initialization in</div><div class='add'>+	  single VM, but does nothing in MVM.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 02:56:56 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: New instance methods:</div><div class='add'>+	  empty? [ruby-core:26284], each, each_with_index [ruby-core:28400],</div><div class='add'>+	  conjugate, conj, imaginary, imag, real, real?, rectangular, rect</div><div class='add'>+	  [ruby-core:26285]</div><div class='add'>+</div><div class='add'>+	  Removed compare_by*, inspect_org, cf [ruby-core:26268]</div><div class='add'>+</div><div class='add'>+	  Matrix.empty: raise on negative sizes</div><div class='add'>+</div><div class='add'>+	  Matrix.determinant: raise on rectangular matrices [ruby-core:28271]</div><div class='add'>+</div><div class='add'>+Thu Apr  1 17:17:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: CP50221 supports 8bit JIS.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 16:44:00 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc, test/rdoc: Imported RDoc 2.5</div><div class='add'>+</div><div class='add'>+Thu Apr  1 14:30:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_16{be,le}.c (utf16{be,le}_mbc_to_code): simplified.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 14:07:51 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (BSD__hdtoa): don't use C99 macros. (FP_NORMAL etc)</div><div class='add'>+</div><div class='add'>+Thu Apr  1 13:30:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): support %a format. [ruby-dev:40650]</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): ditto.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (cvt): ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (BSD__hdtoa): added.  This is 2-clause BSDL licensed</div><div class='add'>+	  by David Schultz and from FreeBSD.</div><div class='add'>+</div><div class='add'>+	* LEGAL: add about hdtoa() in util.c.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 13:24:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): return 0.0 if hexadecimal and</div><div class='add'>+	  badcheck is FALSE: Float("0x1p+0") works, but "0x1p+0".to_f</div><div class='add'>+	  doesn't. [ruby-dev:40650]</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): allow hexadecimal integers.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 13:20:50 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: support %a format. [ruby-dev:40650]</div><div class='add'>+</div><div class='add'>+Thu Apr  1 12:04:10 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRE_TIMET_PREFIX): define if configure doesn't</div><div class='add'>+	  defines it.  [ruby-core:29190]</div><div class='add'>+</div><div class='add'>+Thu Apr  1 11:36:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): fixed a rdoc miss that textmode and</div><div class='add'>+	  binmode flag explanation was reversed each other.  a patch from</div><div class='add'>+	  Heesob Park in [ruby-core:29166].</div><div class='add'>+</div><div class='add'>+Thu Apr  1 09:54:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RUBY_{DEFAULT,NEVER}_FREE): added.</div><div class='add'>+	  [ruby-dev:40889]</div><div class='add'>+</div><div class='add'>+Thu Apr  1 04:55:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_big_abs_find_minbit): fix handling the last word.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 04:30:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (long_mul): overflow condition changed.</div><div class='add'>+	  (wi_mul): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 23:33:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (long_mul): extracted from mul and avoid integer overflow.</div><div class='add'>+	  (wi_mul): extracted from wmul and avoid integer overflow.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 21:30:38 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: less bignum allocations.</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime_timespec): defined to avoid rational for</div><div class='add'>+	  nano second resolution time.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 16:05:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_{package_task,rules,task_manager}.rb: use</div><div class='add'>+	  temporary directories.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 13:53:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/gemutilities.rb (setup, teardown):</div><div class='add'>+	  Object#to_yaml must use syck on RubyGem.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 06:57:14 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (timew2timespec): fix previous change.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 00:32:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (wdivmod): renamed from wdivmodv.  fix neg/pos and pos/neg.</div><div class='add'>+	  (split_second): return number of seconds as wideval_t.</div><div class='add'>+	  (timet2wv): new function.</div><div class='add'>+	  (wv2timet): new function.</div><div class='add'>+	  (timet2wideval): removed.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 22:24:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: use more polymorphic operations.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 22:12:38 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add URI.decode and URI.encode to Obsoleted methods,</div><div class='add'>+	  and fix typos. [ruby-dev:40852]</div><div class='add'>+</div><div class='add'>+	* NEWS: add Time#subsec.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 22:07:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: reorder wide value implementation.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 22:00:44 2010  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb: support [Feature#988], [ruby-core:21177].</div><div class='add'>+	* lib/irb/context.rb: fix Context#verbose?.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 21:56:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: make wide value more polymorphic.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 21:18:32 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/extconf.rb: install psych .so to not psych/ but direct.</div><div class='add'>+	  This prepends to install *.rb files to psych/psych.</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: require 'psych.so'.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 20:55:14 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (w2v): renamed from w2xv.</div><div class='add'>+	  (v2w): renamed from xv2w.</div><div class='add'>+	  (rb_time_magnify): takes wideval_t.</div><div class='add'>+	  (rb_time_unmagnify): returns wideval_t.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 19:46:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib: moved external library dependent files from lib.</div><div class='add'>+	  [ruby-core:29129]</div><div class='add'>+</div><div class='add'>+Tue Mar 30 18:25:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_dirname): split from rb_file_s_dirname.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require_relative): use absolute path instead of</div><div class='add'>+	  expanded path.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 13:57:08 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): Process.daemon should raise an error on</div><div class='add'>+	  failure regardless of whether the implementation uses daemon(3)</div><div class='add'>+	  or not. [ruby-dev:40832]</div><div class='add'>+</div><div class='add'>+Tue Mar 30 13:11:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS::GIT_SVN): removed because git-log can</div><div class='add'>+	  deal with git-svn repository faster than git-svn-info.</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS#get_revisions): particular commands do</div><div class='add'>+	  not depend on instance.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 08:55:50 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/extconf.rb: Making library detection more agnostic.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 08:10:59 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/psych.rb: Fix problem with empty and white-space only strings.</div><div class='add'>+	  Thanks Peter McLain!</div><div class='add'>+	* test/psych/test_psych.rb: tests for change.</div><div class='add'>+</div><div class='add'>+Tue Mar 30 05:31:39 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/psych.rb: documentation updates.  Thanks Peter McLain!</div><div class='add'>+	* lib/psych/{coder,tree_builder}.rb: ditto</div><div class='add'>+</div><div class='add'>+Tue Mar 30 03:56:13 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/{emitter,parser,psych}.c: move variable</div><div class='add'>+	  declaration to the first of the block.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 21:47:44 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb, .document: Stuff in prelude.rb should be documented</div><div class='add'>+	  as well.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 20:23:05 2010  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb(Vector#each2, Vector#collect2): add type check for</div><div class='add'>+	  Integer[Bug #2495].</div><div class='add'>+</div><div class='add'>+Mon Mar 29 19:45:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: wide value condition changed.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 18:10:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (Numeric): accept rationals.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 15:10:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#open): re-open with same mode and</div><div class='add'>+	  options as initialize.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 09:16:45 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: change include order; ruby.h should be at first.</div><div class='add'>+</div><div class='add'>+Mon Mar 29 06:47:25 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/*: importing Psych to trunk</div><div class='add'>+	* test/psych/*: ditto</div><div class='add'>+	* lib/psych/*: ditto</div><div class='add'>+</div><div class='add'>+Sun Mar 28 10:03:51 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: fix max width modifier for %f.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 10:35:45 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.6.0 r5717.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 10:12:28 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_time_magnify): fix for LP64.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 09:28:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: fix %[egEFG] isn't accept.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 09:53:02 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: rename small integer specialization related identifiers.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 08:20:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (weq): specialize for small integer.</div><div class='add'>+	  (wne): ditto.</div><div class='add'>+	  (wlt): ditto.</div><div class='add'>+	  (wgt): ditto.</div><div class='add'>+	  (wle): ditto.</div><div class='add'>+	  (wge): ditto.</div><div class='add'>+	  (rb_time_magnify): ditto.</div><div class='add'>+	  (rb_time_unmagnify): ditto.</div><div class='add'>+	  (rb_time_unmagnify_to_float): new function to avoid rational for</div><div class='add'>+	  Time#to_f and Time#-.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 07:12:41 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (mul): condition refined.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 02:14:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: fix previous commit.</div><div class='add'>+</div><div class='add'>+Sat Mar 27 23:17:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: use 64bit arithmetic even on platforms with 32bit VALUE.</div><div class='add'>+</div><div class='add'>+Fri Mar 26 23:52:07 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add Thread#add_trace_func and Thread#set_trace_func.</div><div class='add'>+</div><div class='add'>+Fri Mar 26 22:58:10 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_initialize): initialize</div><div class='add'>+	  store-&gt;ex_data.sk.  a patch from Christian Holtje in</div><div class='add'>+	  [ruby-core:28907].  [ruby-core:23971] [ruby-core:18121]</div><div class='add'>+</div><div class='add'>+Fri Mar 26 19:55:41 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (DOXYGEN): Define a missing variable DOXYGEN.  Build</div><div class='add'>+	  has been failing when doxygen(1) is found by configure but the</div><div class='add'>+	  variable is not defined by the system and make(1) does not allow</div><div class='add'>+	  an empty command. ("@$(DOXYGEN)" was the cause)</div><div class='add'>+</div><div class='add'>+Fri Mar 26 19:28:03 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb (test_recursive_key): recursive keys are</div><div class='add'>+	  permitted now.  [ruby-dev:40735]</div><div class='add'>+</div><div class='add'>+Fri Mar 26 12:36:10 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/basenode.rb: deprecating YPath methods</div><div class='add'>+</div><div class='add'>+	* lib/yaml/stream.rb: deprecating YAML::Stream#edit</div><div class='add'>+</div><div class='add'>+Fri Mar 26 12:29:28 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/encoding.rb: YAML.encode, YAML.decode are deprecated.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/stringio.rb: yaml/stringio.rb is deprecated.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/ypath.rb: YAML::YPath is deprecated.</div><div class='add'>+</div><div class='add'>+Fri Mar 26 04:52:19 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: fix [ruby-core:28901] [Bug #2997].</div><div class='add'>+	  Thanks, Michael Graff.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: use xfree() for memories allocated by ALLOC().</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/version.rb: forgot updating.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 23:53:22 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_reset_event_flags): set flags to thread.  [Bug #693]</div><div class='add'>+</div><div class='add'>+Thu Mar 25 23:17:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path_check): prefer #to_path over #to_str.  a patch</div><div class='add'>+	  originally written by me, and modified by Nobuyoshi Nakada.</div><div class='add'>+	  [ruby-core:24257]</div><div class='add'>+</div><div class='add'>+Thu Mar 25 18:10:08 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: Array#{uniq,uniq!} can take a block. see [ruby-dev:37998]</div><div class='add'>+</div><div class='add'>+Thu Mar 25 17:21:49 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add IO#autoclose=, IO#autoclose?, IO#codepoints,</div><div class='add'>+	  IO#each_codepoint.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 14:50:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_{read,write}): fix handle leaks.  based on</div><div class='add'>+	  a patch from Heesob Park in [ruby-core:28919].  [ruby-core:28833]</div><div class='add'>+</div><div class='add'>+Thu Mar 25 12:37:37 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add Kernel#singleton_class.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 11:34:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c, node.h, strftime.c, enc/trans/utf8_mac.trans:</div><div class='add'>+	  added explicit casts for suppressing warnings.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 11:34:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir_m17n.rb: HFS+ escapes invalid byte sequences of</div><div class='add'>+	  filenames.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 05:44:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby_version): needs runnable CPP.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 04:42:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): take a breath for HP-UX make</div><div class='add'>+	  [ruby-core:28938].</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (Dir.mktmpdir): for 1.8.6 backward compatibility.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): $: no longer contains ".", in trunk.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 03:52:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb: update of URL.  [ruby-dev:38360]</div><div class='add'>+</div><div class='add'>+Wed Mar 24 23:43:40 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): let new thread inherit RUBY_EVENT_VM</div><div class='add'>+	  of event_flags.  [ruby-core:25191]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_exec_event_hooks): delete RUBY_EVENT_VM if</div><div class='add'>+	  all event_hooks are removed.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 22:58:02 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: revert the previous commit, which seemed to break make</div><div class='add'>+	  install.  The files of standard libraries are directly installed to</div><div class='add'>+	  $(PREFIX)/lib/ruby instead of $(PREFIX)/lib/ruby/1.9.1</div><div class='add'>+</div><div class='add'>+Wed Mar 24 18:16:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LDSHARED, CPP): keep $(CC).  [ruby-core:28912]</div><div class='add'>+</div><div class='add'>+Wed Mar 24 14:33:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): limit read size to 16KB if the file</div><div class='add'>+	  seems to be console.  [ruby-core:28902]</div><div class='add'>+</div><div class='add'>+Wed Mar 24 10:18:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): set length of string before calling</div><div class='add'>+	  rb_enc_check because rb_enc_check scans its content.</div><div class='add'>+	  This prevents warnings by valgrind.</div><div class='add'>+</div><div class='add'>+Tue Mar 23 23:58:51 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Incorporating the fixes from the recent</div><div class='add'>+	  FasterCSV releases:  1.5.2 and 1.5.3.  New parser</div><div class='add'>+	  by Tim Elliott.  [ruby-core:25038]</div><div class='add'>+</div><div class='add'>+Tue Mar 23 18:35:46 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_singleton_class): new method</div><div class='add'>+	  Kernel#singleton_class.  [ruby-core:21702]</div><div class='add'>+</div><div class='add'>+Tue Mar 23 01:13:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket: use rsock_ prefix for internal initialization functions.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 20:32:22 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_method_location): return attr's location if it is setup.</div><div class='add'>+	  [Feature #2084]</div><div class='add'>+</div><div class='add'>+	* NEWS: follow above.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method): save attr's location.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_method_entry): mark attr's location.</div><div class='add'>+</div><div class='add'>+	* method.h (rb_method_definition_t): add member to save attr's location.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): follow above.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_definition_eq): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 19:31:06 2010  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (Date#&gt;&gt;): fixed.  [ruby-core:28011]</div><div class='add'>+</div><div class='add'>+Mon Mar 22 18:01:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RMDIRS): use rmdir -p if possible.</div><div class='add'>+</div><div class='add'>+	* Makefile.in ({dist,real}clean-ext): fix for removing ext</div><div class='add'>+	  directories.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 09:06:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/.document: extracted from ext/.document.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 00:50:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rsock_revlookup_flag): declared.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 00:01:24 2010  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): RUBY_EXEC_PREFIX defined.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 00:46:29 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form_component):</div><div class='add'>+	  convert strings of HTML5 ASCII incompatible encoding</div><div class='add'>+	  to UTF-8.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form_component):</div><div class='add'>+	  "\x83\x41" of Shift_JIS should be encoded as "%83A".</div><div class='add'>+	  This follows real implementations.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.decode_www_form_component):</div><div class='add'>+	  use given encoding for force_encoding. [ruby-dev:40721]</div><div class='add'>+</div><div class='add'>+Sun Mar 21 21:09:17 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb: specify super class for rdoc.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 19:52:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): add autoclose argument to control close</div><div class='add'>+	  at finalization.  [ruby-core:26222]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_autoclose_p, rb_io_set_autoclose): new methods.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 19:50:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket: make sources rdoc friendly.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 17:57:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (IO_RBUF_CAPA_FOR): use large buffer as cbuf if readconv is</div><div class='add'>+	  needed for performance improvement.  based on a patch by Roger Pack</div><div class='add'>+	  in [ruby-core:28163].  [ruby-core:28162]</div><div class='add'>+</div><div class='add'>+Sun Mar 21 17:14:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: reuse hash object.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 12:32:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_compile_tree): make</div><div class='add'>+	  valid_encoding mandatory unless from_encoding is registered in</div><div class='add'>+	  ValidEncoding.</div><div class='add'>+	  (transcode_tbl_only): ditto.</div><div class='add'>+	  (transcode_tblgen): ditto.</div><div class='add'>+	  (ValidEncoding): new function.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: specify valid_encoding.</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji_sjis_docomo.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji_iso2022_kddi.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/big5.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji_sjis_softbank.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji_sjis_kddi.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/chinese.trans: use ValidEncoding() instead of</div><div class='add'>+	  ValidEncoding[].</div><div class='add'>+</div><div class='add'>+Sun Mar 21 09:43:01 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (IO_[CRW]BUF_CAPA_MIN): replaced magic numbers.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 09:22:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_hash): use LONG2FIX to avoid Bignum allocation.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 22:51:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): use UCHAR_MAX.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 19:16:42 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap.unambiguous_action): use</div><div class='add'>+	  Array#delete.</div><div class='add'>+	  (ActionMap.merge2): defined.</div><div class='add'>+	  (ActionMap::PostMemo): removed.</div><div class='add'>+	  (transcode_compile_tree): use ActionMap.merge2.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 13:26:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang): the array is already unique if the</div><div class='add'>+	  length is zero or one.</div><div class='add'>+	  (rb_ary_uniq): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 12:30:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib: fixed typo.  a patch by Sho Hashimoto in [ruby-dev:40716].</div><div class='add'>+</div><div class='add'>+Sat Mar 20 11:32:18 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (each_firstbyte_range): tuned for less</div><div class='add'>+	  method calls.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 00:59:50 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/pack.rb (DL#pack): allow LLP64.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 05:26:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): don't call method for each byte.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 21:24:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): link $(NORMALMAINOBJ).</div><div class='add'>+</div><div class='add'>+Thu Mar 18 19:52:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: scan singleton mappings sequentially.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 06:28:32 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_EXEC_PREFIX): added to config.h.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): TMP_RUBY_PREFIX should be</div><div class='add'>+	  exec_prefix, not rubylibprefix.  [ruby-core:28718]</div><div class='add'>+</div><div class='add'>+	* version.c (RUBY_LIB_PREFIX): fallback to RUBY_EXEC_PREFIX.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 05:58:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_{to_i,mod,divmod,div2}):</div><div class='add'>+	  removed unused variables.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 04:40:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): get rid of type-punning cast.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 02:29:42 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_body): add mark to jump table hash of case.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 00:58:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): Add support for Hexadecimal</div><div class='add'>+	  floating-point expression [ruby-dev:40650] #2969</div><div class='add'>+</div><div class='add'>+Thu Mar 18 00:00:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.{en,de}code_www_form_component):</div><div class='add'>+	  renamed from URI.{en,de}code_www_component. [ruby-dev:40672]</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form_component): %-encoded</div><div class='add'>+	  element should have always two hex.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form_component):</div><div class='add'>+	  better treatment for ASCII incompatible encodings and</div><div class='add'>+	  encodings whose lead byte may use 7bit.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.decode_www_form_component): add %20.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.decode_www_form_component): add</div><div class='add'>+	  result's encoding as 2nd argument.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.decode_www_form): added.</div><div class='add'>+</div><div class='add'>+Wed Mar 17 16:25:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): allow recursive key.  [ruby-core:24648]</div><div class='add'>+</div><div class='add'>+Wed Mar 17 06:39:59 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_warning, rb_sys_warning): fixed typo in rdoc.</div><div class='add'>+	  [ruby-core:28696]</div><div class='add'>+</div><div class='add'>+Wed Mar 17 02:29:46 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c, ruby.c, vm.c, vm_core.h, vm_eval.c: add absolute</div><div class='add'>+	  path field into rb_iseq_t.  The field contains a string representing</div><div class='add'>+	  a path to corresponding source file. or nil when the iseq is created</div><div class='add'>+	  from -e, stdin, eval, etc.  This field is used for require_relative.</div><div class='add'>+	  [ruby-dev:40004]</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require_relative): add C implementation of</div><div class='add'>+	  require_relative.</div><div class='add'>+</div><div class='add'>+	* prelude.rb (require_relative): get rid of Ruby implementation of</div><div class='add'>+	  require_relative.</div><div class='add'>+</div><div class='add'>+Wed Mar 17 01:24:01 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): prohibit Symbol with an invalid encoding.</div><div class='add'>+	  [ruby-core:24621]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb: modify a test for above.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 22:51:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: specialize for singleton mappings.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 20:13:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji.trans: added codepoints leading 0xf4 into</div><div class='add'>+	  nomap_table.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 17:33:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpCtoV): keep e's sign.</div><div class='add'>+	  When e doesn't over flow e * BASE_FIG but overflow e * 10,</div><div class='add'>+	  e will overflow.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 17:18:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_conv_enc_opts): missing prototype.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 15:20:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tmpdir: split from lib/tmpdir.rb.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_system_tmpdir): extracted from init_env.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getcwd): removed duplicated code.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 14:06:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_TO_ENCINDEX): suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 14:03:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RSHIFT): parenthesize the argument of cast instead</div><div class='add'>+	  of the result.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 11:23:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): ignore dname if it has different</div><div class='add'>+	  drive letter or UNC.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 07:16:56 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: redundant loop removed.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 07:01:43 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: refactored to use tree as memo key.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 04:05:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: more info in generating macro names.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 21:58:03 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: ActionMap#each_firstbyte inlined.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 21:22:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_tblgen): add valid_encoding</div><div class='add'>+	  optional argument.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans use valid_encoding argument for</div><div class='add'>+	  transcode_tblgen.</div><div class='add'>+</div><div class='add'>+	* enc/trans/chinese.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 18:33:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (default_rand): removed initial buffer.</div><div class='add'>+</div><div class='add'>+	* random.c (Init_RandomSeed): initialize seed of default random.</div><div class='add'>+</div><div class='add'>+	* random.c (Init_RandomSeed2): turn the seed to Bignum object.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 17:28:30 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_print): RDoc update.  a patch from Daniel Kelley</div><div class='add'>+	  in [ruby-core:28643].</div><div class='add'>+</div><div class='add'>+Mon Mar 15 14:06:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (next_state): no initialization here.</div><div class='add'>+</div><div class='add'>+	* random.c (default_mt): always return initialized MT.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 11:49:48 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_reset_random_seed): set seed in this.</div><div class='add'>+	  [ruby-core:28655]</div><div class='add'>+</div><div class='add'>+Mon Mar 15 10:26:02 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: import latest nkf. [master 9306cb0]</div><div class='add'>+	  this also fixes [ruby-dev:40607]</div><div class='add'>+</div><div class='add'>+Mon Mar 15 09:34:17 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_component):</div><div class='add'>+	  call str.to_s at first.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 09:36:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/README.SYMBIAN: fixed broken patch and converted to</div><div class='add'>+	  unified diff.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 07:51:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): do not define File::ALT_SEPARATOR on cygwin.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 07:41:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): use same cache.</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_internal): regulate separators in prefix.</div><div class='add'>+	  [ruby-core:28653]</div><div class='add'>+</div><div class='add'>+	* file.c (FILE_ALT_SEPARATOR): separated condition.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 04:41:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_codepoint): read directly when readconv is</div><div class='add'>+	  needed but internal encoding is not set.  [ruby-core:28650]</div><div class='add'>+</div><div class='add'>+Mon Mar 15 04:18:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS::{SVN,GIT}#get_revisions):</div><div class='add'>+	  use block argument 'path' to get the path given by super.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 02:43:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (Action#hash): defined.</div><div class='add'>+	  (Action#eql?): ditto.</div><div class='add'>+	  (Action#==): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 01:52:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: refactored.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 01:18:31 2010  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (*.pkg): Ruby Core installation separated from standard extensions.</div><div class='add'>+</div><div class='add'>+	* symbian/configure.bat: ditto.</div><div class='add'>+</div><div class='add'>+	* symbian/README.SYMBIAN: ditto.</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): support for 2nd internal drive added.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 00:11:23 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS::GIT_SVN#get_revisions) :</div><div class='add'>+	  use block argument 'path' to get the path given by super.</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (VCS::GIT#get_revisions):</div><div class='add'>+	  use double quotes for Windows.</div><div class='add'>+	  patched by Vladimir Sizikov [ruby-core:28651]</div><div class='add'>+</div><div class='add'>+Sun Mar 14 22:38:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: consider valid_encoding for max_input.</div><div class='add'>+</div><div class='add'>+Sun Mar 14 15:46:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/emoji.trans: fix nomap_table.</div><div class='add'>+</div><div class='add'>+Sun Mar 14 09:50:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (insn_data_to_s_detail), iseq.c (insn_operand_intern):</div><div class='add'>+	  fixed format specifiers.</div><div class='add'>+</div><div class='add'>+Sun Mar 14 07:20:17 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (EXPAND_PATH_BUFFER): make it back to usascii, to prevent</div><div class='add'>+	  infinite loop on some platform. [ruby-dev:40629]</div><div class='add'>+</div><div class='add'>+Sun Mar 14 02:40:38 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: reject ambiguous mapping.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: remove ambiguous mapping such as</div><div class='add'>+	  \xD6 -&gt; U+05F2 and \xD6\xC7 -&gt; U+FB1F in Windows-1255</div><div class='add'>+</div><div class='add'>+Sat Mar 13 23:48:27 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): should not just copy the encoding</div><div class='add'>+	  from fname.  [ruby-core:28635]</div><div class='add'>+</div><div class='add'>+	* file.c (EXPAND_PATH_BUFFER): set filesystem_encoding, not</div><div class='add'>+	  usascii for path buffer.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 17:48:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: refactored.  fixed changed revision of git.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 15:44:20 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_print): should not print field separator at the end</div><div class='add'>+	  of arguments.  [ruby-talk:358633]</div><div class='add'>+</div><div class='add'>+Sat Mar 13 14:49:55 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_join): remove Enumerable#join. [ruby-core:24786]</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): use #to_ary to detect recursive array.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 12:26:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (MakeOpenFile): finalize fptr to get rid of</div><div class='add'>+	  memory leak.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 11:14:26 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_get_expanded_load_path): expand paths if any item in $:</div><div class='add'>+	  is not a string.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 10:16:32 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_get_expanded_load_path): does not expand paths if all</div><div class='add'>+	  the items in $: are absolute paths.  [ruby-core:28113]</div><div class='add'>+</div><div class='add'>+Sat Mar 13 10:03:52 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: fix [Bug #2840] Tk doesn't built in mingw.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 03:24:15 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: show consumed time at last.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 00:44:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): check encoding of suffix.</div><div class='add'>+</div><div class='add'>+Sat Mar 13 00:11:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): mark initial load paths.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (push_all_highest_version_gems_on_load_path):</div><div class='add'>+	  search insertion position by initial load path mark.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem.load_path_insert_index): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 21:34:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: emoji encodings.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 17:14:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_form): new method to</div><div class='add'>+	  generate URL-encoded form data. [ruby-dev:39246]</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.encode_www_component,</div><div class='add'>+	  URI.decode_www_component): new method for encode/decode</div><div class='add'>+	  a name/value of HTML form.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 17:36:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::CGIHandler#do_GET):</div><div class='add'>+	  set binary mode for tempfile.</div><div class='add'>+	  http://pc12.2ch.net/test/read.cgi/tech/1265467681/286</div><div class='add'>+</div><div class='add'>+Fri Mar 12 13:52:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: TMP_RUBY_PREFIX should replace</div><div class='add'>+	  rubylibprefix but not prefix.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 09:43:11 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_signbit): remove condition for signbit because</div><div class='add'>+	  all platforms have signbit from r26871.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 07:25:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): get rid of alloca() for outer string.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 07:17:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: suppressed warnings for shortening on</div><div class='add'>+	  platforms where pointer is bigger than int.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 07:15:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe, ruby_init_gems): set and remove</div><div class='add'>+	  TMP_RUBY_PREFIX.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_remove): new function.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: split each preludes.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 07:09:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (config.status): setup MINIRUBY environment for</div><div class='add'>+	  cross-compiling.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 06:48:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: log() is built-in in some compilers and needs</div><div class='add'>+	  proper declaration.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 06:37:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/timeout.rb: split from lib/timeout.rb.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 22:35:27 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_round): new method Time#round.  [ruby-dev:40595]</div><div class='add'>+</div><div class='add'>+Thu Mar 11 17:31:59 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): confirm the code range.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 12:14:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/signbit.c: added.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 11:16:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check if target_archs has changed.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 01:33:30 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (signbit): allow x64.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 01:04:48 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_clone): sets local_iseq and klass properly.</div><div class='add'>+</div><div class='add'>+Wed Mar 10 21:25:41 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (min_ii, max_ii, minmax_ii): remove wrong optimization that</div><div class='add'>+	  reuses array for yield parameter, which caused unexpected behavior.</div><div class='add'>+	  [ruby-core:25989]</div><div class='add'>+</div><div class='add'>+Wed Mar 10 12:10:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/x_emoji.h: renamed from enc/x-emoji.c.</div><div class='add'>+</div><div class='add'>+Wed Mar 10 04:17:08 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr), insns.def (defined): fix to pass a Symbol</div><div class='add'>+	  object such as :$foo for the "defined?($foo)" expression</div><div class='add'>+	  on defined instruction.  This patch fixes ISeq#to_a/load.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 20:50:09 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_method.rb: delete a residual test for dl on libffi.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 18:00:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/EMOJI/*.src, enc/trans/emoji*,</div><div class='add'>+	  enc/x-emoji.c, test/ruby/enc/test_emoji.rb,</div><div class='add'>+	  tool/enc-emoji-citrus-gen.rb, tool/enc-emoji4unicode.rb,</div><div class='add'>+	  tool/jisx0208.rb, tool/test/test_jisx0208.rb:</div><div class='add'>+	  new encodings to support emoji charsets, which are used by</div><div class='add'>+	  Japanese mobile phones [ruby-dev:40528].</div><div class='add'>+	  Thanks Yoji Shidara for a lot of contribution.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: modified for enc-emoji4unicode.rb.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 14:57:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap#generate_node):</div><div class='add'>+	  remove useless dup.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_tbl_only): remove duplicated</div><div class='add'>+	  method call for encode_utf8.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 14:55:00 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_to_s): remove unused variable.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 12:17:34 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (StrSet#parse, ActionMap#generate_node):</div><div class='add'>+	  optimization (reusing object and improving memoize).</div><div class='add'>+	  [ruby-dev:40582]</div><div class='add'>+</div><div class='add'>+Sun Mar  7 02:27:03 2010  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c [DLN_NEEDS_ALT_SEPARATOR] (translit_separator): small typo</div><div class='add'>+	  fixed.</div><div class='add'>+</div><div class='add'>+	* symbian/setup (*.pkg): Shared library installation path fixed to</div><div class='add'>+	  match changes in version.c.</div><div class='add'>+</div><div class='add'>+	* symbian/setup (ruby.mmp): SOURCE dln_find.c added.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 23:14:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pack): use DIGSPERLONG and BITSPERDIG.</div><div class='add'>+	  (rb_big_unpack): use DIGSPERLONG.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 19:21:10 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: Fix documentation for each/each_line/lines, bytes/each_byte,</div><div class='add'>+	  codepoints/each_code_point [ruby-core:23948]</div><div class='add'>+</div><div class='add'>+	* string.c: ditto</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: ditto</div><div class='add'>+</div><div class='add'>+Sun Mar  7 13:49:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: add optional basedir argument for realpath/realdirpath.</div><div class='add'>+	  (realpath_internal): handle basedir.</div><div class='add'>+	  (rb_file_s_realpath): extract basedir from argument list.</div><div class='add'>+	  (rb_file_s_realdirpath): extract basedir from argument list.</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (realpath): pass basedir.</div><div class='add'>+	  (realdirpath): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 02:05:38 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_set_filesystem_encoding):</div><div class='add'>+	  filesystem encoding on Mac OS X is now</div><div class='add'>+	  default external encoding. so Mac OS X is now</div><div class='add'>+	  treated as one of Unix. [ruby-dev:40439]</div><div class='add'>+</div><div class='add'>+	* file.c (file_path_convert): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 22:07:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: fix the prototype of rb_big2ulong_pack.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 13:45:37 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_write, rb_io_s_binwrite): delete File#write and</div><div class='add'>+	  #binwrite.  It may take a long time to make them stable, so 1.9.2</div><div class='add'>+	  should not include them.  We need refactoring to implement them</div><div class='add'>+	  again.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: delete tests for them.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 10:03:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_binwrite): use mode "r+b" instead of "ab" to handle</div><div class='add'>+	  offset correctly.  [ruby-core:28517]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: use assert_equal instead of assert.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 01:08:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): VC6 has __int64.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 19:36:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_opts): set :undef =&gt; :replace when</div><div class='add'>+	  :replace is given and :invalid is not given. [ruby-dev:40554]</div><div class='add'>+</div><div class='add'>+Fri Mar  5 17:51:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): suppressed a warning.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_map_errno, winnt_stat, rb_chsize): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): get rid of overflow.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 11:59:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (signbit): defined on mingw.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 22:49:42 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (setup_exception): avoid line number 0 when setting</div><div class='add'>+	  $DEBUG=true.  [ruby-dev:39116]</div><div class='add'>+</div><div class='add'>+Thu Mar  4 22:45:02 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_write, io_s_binwrite): add File#write and #binwrite.</div><div class='add'>+	  [ruby-core:21701]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Mon Mar  4 13:14:34 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_total_time): add GC::Profiler.total_time.</div><div class='add'>+	  [ruby-core:27169]</div><div class='add'>+</div><div class='add'>+	* NEWS: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 10:15:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (m_log, m_exp): remove unused functions.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 02:34:59 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb (TestEnv#test_select_bang): add tests.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 02:29:52 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb (TestHash#test_keep_if): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 00:10:54 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (HEX2): extracted from regexps.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 23:16:32 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_real_check): raise TypeError instead of</div><div class='add'>+	  ArgumentError when argument is not a real as expected</div><div class='add'>+	  [ruby-core:28395]</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_int_check): ditto (for integers)</div><div class='add'>+</div><div class='add'>+Wed Mar  3 23:07:08 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#each): Return self and optimization</div><div class='add'>+	  [ruby-core:28405]</div><div class='add'>+</div><div class='add'>+Wed Mar  3 18:35:55 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_select_bang): add #select! and keep_if to Hash.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_select_bang): ..and to ENV.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 15:54:20 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#each2, collect2): small refactoring.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 16:14:24 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#each): make Vector enumerable.</div><div class='add'>+	  [ruby-core:28405]</div><div class='add'>+</div><div class='add'>+Wed Mar  3 14:28:23 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_select_bang): select! removes all elements for</div><div class='add'>+	  which block returns false.  [ruby-core:27286]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_keep_if): #keep_if, new method.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 06:19:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (signbit): defined.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, symbian/setup (config.h): pack.c requires</div><div class='add'>+	  SIZEOF_INT*_T now.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 21:16:48 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_lines, rb_io_bytes, rb_io_chars, rb_io_codepoints):</div><div class='add'>+	  change to alias to each_*, in similar way to ARGF and String.</div><div class='add'>+	  [ruby-core:23948]</div><div class='add'>+</div><div class='add'>+Tue Mar  2 15:54:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (noname_disable_map): add NT_ANCHOR case.</div><div class='add'>+	  Without this change, captured groups in anchors (look-ahead,</div><div class='add'>+	  look-behind, and so on) are not removed and</div><div class='add'>+	  unintended invalid backref error occur. [ruby-core:28235]</div><div class='add'>+</div><div class='add'>+	* regcomp.c (renumber_by_map): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 14:42:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_closure.rb: forget to revert at r26764.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 14:29:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext_safe, rb_find_file_safe): skip argument</div><div class='add'>+	  checks in file_expand_path().</div><div class='add'>+</div><div class='add'>+Tue Mar  2 13:54:44 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: Fix lgamma test</div><div class='add'>+</div><div class='add'>+Mon Mar  1 23:26:56 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_open): refine the path for master IO.</div><div class='add'>+</div><div class='add'>+Mon Mar  1 20:07:06 2010  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_expand_buffer_into): remove compare</div><div class='add'>+	  different type values warning.</div><div class='add'>+</div><div class='add'>+Mon Mar  1 17:42:45 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw): do not detect snprintf/vsnprintf.</div><div class='add'>+</div><div class='add'>+Mon Mar  1 16:54:21 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h: updated to follow Oniguruma 5.9.2.</div><div class='add'>+</div><div class='add'>+	* re.c (make_regexp): use onig_new() instead of onig_alloc_init().</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_to_s): ditto.</div><div class='add'>+Sun Feb 28 21:32:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (get_device_once): raise on error when fail is</div><div class='add'>+	  non-zero.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 18:58:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (rb_eMathDomainError): new exception class</div><div class='add'>+	  for representing mathematical domain error instead</div><div class='add'>+	  of Errno::EDOM.</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check, infinity_check): removed,</div><div class='add'>+	  no longer needed.</div><div class='add'>+</div><div class='add'>+	* math.c (math_atan2, math_acos, math_asin, math_acosh,</div><div class='add'>+	  math_atanh, math_log, math_log2, math_log10, math_sqrt,</div><div class='add'>+	  math_gamma, math_lgamma): mathematical domain errors</div><div class='add'>+	  are checked and raised before calling libm's functions.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: updated for changes of math.c.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 15:07:28 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): use union to avoid pointer cast.</div><div class='add'>+	  (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 11:49:35 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* openssl/ossl.c (OSSL_IMPL_SK2ARY): for OpenSSL 1.0.</div><div class='add'>+	  patched by Jeroen van Meeuwen at [ruby-core:25210]</div><div class='add'>+	  fixed by Nobuyoshi Nakada [ruby-core:25238],</div><div class='add'>+	  Hongli Lai [ruby-core:27417],</div><div class='add'>+	  and Motohiro KOSAKI [ruby-core:28063]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (pkcs7_get_certs, pkcs7_get_crls):</div><div class='add'>+	  split pkcs7_get_certs_or_crls.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 11:42:55 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/{test_x509cert.rb,openssl,test_x509crl.rb,</div><div class='add'>+	  test_x509req.rb}:</div><div class='add'>+	  fix false positive tests because of OpenSSL spec change.</div><div class='add'>+	  patched by originally Hongli Lai [ruby-core:27417],</div><div class='add'>+	  and fixed by Motohiro KOSAKI [ruby-core:28063]</div><div class='add'>+</div><div class='add'>+Sun Feb 28 11:21:03 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/{test_x509cert.rb,openssl,test_x509req.rb}:</div><div class='add'>+	  remove false positive tests because of OpenSSL spec change.</div><div class='add'>+	  patched by Motohiro KOSAKI [ruby-core:28063]</div><div class='add'>+	  see also [ruby-dev:40077]</div><div class='add'>+</div><div class='add'>+Sun Feb 28 11:25:16 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): generalized integer packer implemented.</div><div class='add'>+	  (pack_unpack): generalized integer unpacker implemented.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 06:58:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (swap32): use __builtin_bswap32 on gcc 4.3.0 or later.</div><div class='add'>+	  (swap64): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 00:38:18 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: use integer types with explicit size.</div><div class='add'>+</div><div class='add'>+Sat Feb 27 15:54:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: check assumption on QUAD_SIZE and SIZEOF_LONG.</div><div class='add'>+</div><div class='add'>+	* bignum.c: check assumption on SIZEOF_LONG and SIZEOF_BDIGITS.</div><div class='add'>+</div><div class='add'>+Sat Feb 27 03:48:18 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: fix q and Q for big endian environments which have no</div><div class='add'>+	  8 bytes integer type.</div><div class='add'>+	  (pack_pack): use rb_big_pack.</div><div class='add'>+	  (pack_unpack): use rb_big_unpack.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_big_pack): declared.</div><div class='add'>+	  (rb_big_unpack): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pack): new function.</div><div class='add'>+	  (rb_big_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 21:36:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: fix rb_quad_pack and rb_quad_unpack for environments</div><div class='add'>+	  which don't have 8bytes integer type.  This still depends on little</div><div class='add'>+	  endian.</div><div class='add'>+	  (rb_quad_pack): use quad_buf_complement.  don't raise for large</div><div class='add'>+	  values.</div><div class='add'>+	  (rb_quad_unpack): use quad_buf_complement.</div><div class='add'>+	  (quad_buf_complement): new function extracted from rb_quad_pack.</div><div class='add'>+	  add one after bitwise negation.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 21:29:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RSHIFT): add parenthesis to suppress warning.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 20:51:47 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c, ext/socket/udpsocket.c: avoid illegal cast</div><div class='add'>+	  from void-returning function to VALUE-returning one.  It causes SEGV</div><div class='add'>+	  on RubySpec with mingw32.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 20:07:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (QUAD_SIZE): it should be always 8.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): use LONG_LONG version only if</div><div class='add'>+	  SIZEOF_LONG_LONG == QUAD_SIZE.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 16:49:29 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (swap64): fix for VC6.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 14:17:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack, pack_unpack): suppressed warnings.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 07:44:51 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: revert dl with libffi because it can't run on mswin now.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 22:59:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: consider DYNAMIC_ENDIAN.  refactored.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 11:17:01 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_expt): use Float#** when Rational ** Float.</div><div class='add'>+	  This fixes Rational(3,1)**3.0=&gt;26.99999999999999 on FreeBSD.</div><div class='add'>+</div><div class='add'>+	* complex.c (rb_fexpt): removed.</div><div class='add'>+	  Note that this function is not static but is private.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 00:43:57 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: Change the operand type of setinlinecache</div><div class='add'>+	  (OFFSET to IC).  This IC must be same as corresponding</div><div class='add'>+	  getinlinecache instruction's IC operand.</div><div class='add'>+	  This change is for a little performance improvement</div><div class='add'>+	  (getting IC directly) and is for the AOT compilation development.</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c, insns.def: Change the approach to handling inline</div><div class='add'>+	  cache (IC) type operand to enable the above change.</div><div class='add'>+	  This change also affects ISeq#to_a method.  The inline cache operand</div><div class='add'>+	  will be dumped by fixnum, the index of inline cache, in other words,</div><div class='add'>+	  inline cache identity.</div><div class='add'>+</div><div class='add'>+	* template/insns_info.inc.tmpl, tool/instruction.rb: No need to count</div><div class='add'>+	  inline cache size (insn_iclen()).</div><div class='add'>+</div><div class='add'>+Thu Feb 25 00:57:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (swap64): don't redefine.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 00:29:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): don't use OFF32 for gcc 4.5.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 22:39:15 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: fix [ruby-core:28320] reported by Paul Clegg.</div><div class='add'>+	  (Resolv::DNS::Requester#request): raise ResolvTimeout</div><div class='add'>+	  consistently for timeout.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 14:38:16 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer: Removed obsolete files.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 11:52:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (translit_separator): moved back from load.c again.</div><div class='add'>+</div><div class='add'>+	* dln_find.c: split from dln.c.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 09:31:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/extconf.rb: use OpenSSL only when all transform</div><div class='add'>+	  functions are available.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 00:39:17 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new_empty): String#split, partition, rpartition</div><div class='add'>+	  taints the resulting strings if self is tainted.</div><div class='add'>+</div><div class='add'>+Mon Feb 22 21:35:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2init.c: test OpenSSL more strictly.</div><div class='add'>+</div><div class='add'>+Mon Feb 22 11:52:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems: update to 1.3.6.</div><div class='add'>+</div><div class='add'>+Mon Feb 22 11:21:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2: Use OpenSSL's SHA1 engine if available.</div><div class='add'>+</div><div class='add'>+Sun Feb 21 21:20:17 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile, install_files): honor srcprefix</div><div class='add'>+	  argument if given.  [ruby-dev:40449]</div><div class='add'>+</div><div class='add'>+Sun Feb 21 13:29:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: outdated.  [ruby-core:28275]</div><div class='add'>+</div><div class='add'>+Sun Feb 21 06:24:12 2010  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): HAVE_STRUCT_TIMEZONE, VOID_UNSETENV, and RUBY_LIB_VERSION_STYLE defined.</div><div class='add'>+	* symbian/setup (ruby.mmp): SOURCE node.c added.</div><div class='add'>+</div><div class='add'>+Mon Feb 22 09:15:45 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): lost comment added.</div><div class='add'>+</div><div class='add'>+Sat Feb 20 14:42:19 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): should prepare placeholder before</div><div class='add'>+	  processing instance variables.  [ruby-dev:40414]</div><div class='add'>+</div><div class='add'>+	* marshal.c (id2encidx): no longer need arg.</div><div class='add'>+</div><div class='add'>+Sat Feb 20 14:36:16 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): use called_id when method definition</div><div class='add'>+	  structure is already freed.  [ruby-dev:40234] [ruby-core:27959]</div><div class='add'>+</div><div class='add'>+Fri Feb 19 00:04:19 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbServer#stop_service): join killed thread to</div><div class='add'>+	  ensure service stops.  [ruby-dev:40441]</div><div class='add'>+</div><div class='add'>+Thu Feb 18 22:31:15 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atanh): raise ERANGE without calling atanh if absolute</div><div class='add'>+	  value is 1 to achieve platform-independent math.  [ruby-core:28219]</div><div class='add'>+</div><div class='add'>+	* math.c (math_lgamma): return [Infinity, 1] without calling lgamma_r</div><div class='add'>+	  if argument is infinity or -infinity.  [ruby-core:28219]</div><div class='add'>+</div><div class='add'>+Thu Feb 18 22:28:00 2010  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: new --with-ext and --with-out-ext options for extmk.</div><div class='add'>+	* tool/mkconfig.rb: normalizing --with-out-ext to --without-ext.</div><div class='add'>+</div><div class='add'>+Thu Feb 18 21:50:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): call PACK_ITEM_ADJUST for 'Q'.</div><div class='add'>+</div><div class='add'>+Thu Feb 18 02:14:26 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread, io_getpartial, io_read, io_sysread): by using lock,</div><div class='add'>+	  prohibit modification of buffer string during read (which had caused</div><div class='add'>+	  EFAULT or SEGV).  [ruby-dev:40437]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: rewrite tests for the old behavior.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 21:34:01 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (setup_tree, onig_compile): optimize .* at last by</div><div class='add'>+	  converting into (?&gt;.*), which does not backtrack.  [ruby-core:27791]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 21:26:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_normal_exit): add :timeout option.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 17:05:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): removed unused variable.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_frametype_name): define only when VMDEBUG.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 15:34:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl_conversions.c (rb_dl_type_to_ffi_type): support signed</div><div class='add'>+	  long long.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_inspect): get rid of overflow.</div><div class='add'>+</div><div class='add'>+	* ext/dl/closure.c (dlc_callback, rb_dlclosure_init): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_malloc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/method.c (rb_dlfunction_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 01:16:12 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_update): always raise an exception when adding a new</div><div class='add'>+	  key during iteration.  Traditionally, an exception was raised only</div><div class='add'>+	  when rehash occurs, but it may lead to difficult bug to reproduce.</div><div class='add'>+	  [ruby-core:23614]</div><div class='add'>+</div><div class='add'>+Tue Feb 16 22:09:27 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (chain_finalized_object): fix precedence.</div><div class='add'>+</div><div class='add'>+Tue Feb 16 21:32:01 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_call_finalizer): always run finalizer at exit,</div><div class='add'>+	  before object is free'd.  [ruby-dev:40382]</div><div class='add'>+</div><div class='add'>+Tue Feb 16 20:56:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_group_member): renamed from group_member.</div><div class='add'>+	  don't use group_member() in glibc because it's not valgrind clean.</div><div class='add'>+	  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=570047</div><div class='add'>+</div><div class='add'>+Tue Feb 16 19:19:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): convert signed value to</div><div class='add'>+	  unsigned.</div><div class='add'>+</div><div class='add'>+Tue Feb 16 19:02:59 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_{base,handle}.rb: use more verbose assertions.</div><div class='add'>+</div><div class='add'>+	* test/dl/test_import.rb (DL::LIBC::BoundQsortCallback): renamed</div><div class='add'>+	  to get rid of overwriting warning.</div><div class='add'>+</div><div class='add'>+Tue Feb 16 11:03:19 2010  Aaron Patterson  &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/method.c: Adding DL::Method as a superclass for DL::Function</div><div class='add'>+</div><div class='add'>+Mon Feb 15 23:37:30 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: check lseek error by errno.  NetBSD 4.0.1 may return -1 as</div><div class='add'>+	  a file position of tty.</div><div class='add'>+</div><div class='add'>+Mon Feb 15 23:08:56 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore#initialize): initialize @thread_safe.</div><div class='add'>+	  [ruby-core:27853]</div><div class='add'>+</div><div class='add'>+Mon Feb 15 22:45:26 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): don't access ptr-&gt;hash after func call.</div><div class='add'>+	  It may access freed area.</div><div class='add'>+</div><div class='add'>+Mon Feb 15 22:25:16 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zlib_mem_alloc): suppress valgrind warnings.</div><div class='add'>+	  http://www.zlib.net/zlib_faq.html#faq36</div><div class='add'>+</div><div class='add'>+Mon Feb 15 22:18:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_add): propagate fixed time offset.</div><div class='add'>+</div><div class='add'>+Mon Feb 15 17:42:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (USE_SIGALTSTACK): NetBSD can't use sigaltstack(2)</div><div class='add'>+	  with pthread.</div><div class='add'>+	  http://netbsd.gw.com/cgi-bin/man-cgi?sigaltstack++NetBSD-current</div><div class='add'>+</div><div class='add'>+Mon Feb 15 13:11:47 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_push_m): use rb_ary_modify instead of</div><div class='add'>+	  rb_ary_modify_check. This fixes regression due to r26632.</div><div class='add'>+</div><div class='add'>+Sun Feb 14 12:54:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): removed duplicated entry for regexp.</div><div class='add'>+	  [ruby-dev:40416]</div><div class='add'>+</div><div class='add'>+Sun Feb 14 04:45:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): register regexp object before encoding</div><div class='add'>+	  name.  [ruby-dev:40414]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_alloc, rb_reg_init_str): split from rb_reg_new_str.</div><div class='add'>+</div><div class='add'>+Sat Feb 13 17:07:20 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): RDoc update.  a patch from Hugh Sasse.</div><div class='add'>+	  [ruby-core:28128]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_compact_bang): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 13 15:01:24 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (id2encidx): duplicated entry for encoding name.</div><div class='add'>+	  [ruby-dev:40388]</div><div class='add'>+</div><div class='add'>+Sat Feb 13 12:17:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::Remover): new class to replace</div><div class='add'>+	  Tempfile.callback.  port r24902 from Ruby 1.8.</div><div class='add'>+</div><div class='add'>+Fri Feb 12 17:55:21 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): fixed typo.</div><div class='add'>+</div><div class='add'>+Fri Feb 12 02:27:39 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#initialize, Set#replace, Set#merge)</div><div class='add'>+	  (Set#subtract, Set#&amp;): Fix duck type tests. [ruby-core:28078]</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#initialize, Set#replace, Set#merge)</div><div class='add'>+	  (Set#subtract, Set#&amp;): Try #each if #each_entry fails.</div><div class='add'>+</div><div class='add'>+Thu Feb 11 20:43:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_oflags_modestr): return "r" for O_RDONLY|O_APPEND.</div><div class='add'>+	  [ruby-dev:40379]</div><div class='add'>+</div><div class='add'>+Thu Feb 11 19:19:21 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* missing/alloca.c: s/RUBY_LIB/RUBY_LIB_PREFIX/ [ruby-dev:40395]</div><div class='add'>+</div><div class='add'>+Thu Feb 11 17:52:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_exec): reset thread state before restarting vm loop</div><div class='add'>+	  from catch scope.  [ruby-core:28129], [ruby-core:28143]</div><div class='add'>+</div><div class='add'>+Thu Feb 11 14:43:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): read sequentially since marshal source</div><div class='add'>+	  may not be possible to rewind.  [ruby-dev:40386]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): replace non-1.8 escapes directly.</div><div class='add'>+</div><div class='add'>+Thu Feb 11 09:49:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: fix [ruby-core:28144] reported by Hans de Graaff.</div><div class='add'>+	  (Resolv::DNS#make_requester): pass nameserver_port to</div><div class='add'>+	  UnconnectedUDP.new.</div><div class='add'>+	  (Resolv::DNS.bind_random_port): change the is_ipv6 argument to</div><div class='add'>+	  bind_host.</div><div class='add'>+	  (Resolv::DNS::Requester#initialize): change instance variable to</div><div class='add'>+	  store multiple sockets.</div><div class='add'>+	  (Resolv::DNS::Requester#request): pass readable sockets to</div><div class='add'>+	  recv_reply.</div><div class='add'>+	  (Resolv::DNS::Requester#close): close all sockets.</div><div class='add'>+	  (Resolv::DNS::Requester::UnconnectedUDP#initialize): allocate</div><div class='add'>+	  a socket for each address family of name servers.</div><div class='add'>+	  (Resolv::DNS::Requester::UnconnectedUDP#recv_reply): read from the</div><div class='add'>+	  passwd readable socket.</div><div class='add'>+	  (Resolv::DNS::Requester::UnconnectedUDP#sender): use appropriate</div><div class='add'>+	  socket for the target nameserver.</div><div class='add'>+	  (Resolv::DNS::Requester::ConnectedUDP): follow the instance variable</div><div class='add'>+	  change.</div><div class='add'>+	  (Resolv::DNS::Requester::TCP#sender): ditto.</div><div class='add'>+	  (Resolv::DNS::Config#nameserver_port): new method.</div><div class='add'>+</div><div class='add'>+Thu Feb 11 01:45:04 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_exec): temporarily revert r26628, which causes SEGV when</div><div class='add'>+	  executing rubyspec.</div><div class='add'>+</div><div class='add'>+Wed Feb 10 16:31:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_push_m, rb_ary_unshift_m, rb_ary_aset),</div><div class='add'>+	  (rb_ary_insert, rb_ary_replace, rb_ary_concat),</div><div class='add'>+	  (rb_ary_uniq_bang, rb_ary_flatten_bang): check if frozen after</div><div class='add'>+	  wrong number of arguments but before TypeError.</div><div class='add'>+	  [ruby-core:28140]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_replace): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 10 04:06:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_exec): reset thread state before starting vm loop.</div><div class='add'>+	  [ruby-core:28129]</div><div class='add'>+</div><div class='add'>+Tue Feb  9 23:48:25 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): fix precision too.</div><div class='add'>+</div><div class='add'>+Tue Feb  9 23:26:07 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix precision.</div><div class='add'>+	  [ruby-core:17472][ruby-dev:35372][ruby-dev:40105][ruby-dev:40358]</div><div class='add'>+</div><div class='add'>+Tue Feb  9 22:23:27 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (READ_CHECK): do not select fd before reading, that had made</div><div class='add'>+	  TCPServer#gets stuck.  [ruby-dev:40317]</div><div class='add'>+</div><div class='add'>+Tue Feb  9 21:27:38 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text#initialize): REXML::Text.new checks</div><div class='add'>+	  raw text for illegal characters without entity check, for the sake</div><div class='add'>+	  of 1.8 compatibility.  This had caused rubyspec error.</div><div class='add'>+</div><div class='add'>+Mon Feb  8 23:49:24 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): wrong calculation of new position</div><div class='add'>+	  from rb_str_coderange_scan_restartable().  [ruby-core:28103]</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): ditto.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  8 21:03:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_ip_address_list): obtain the scope_id</div><div class='add'>+	  of IPv6 link local address on OpenSolaris.</div><div class='add'>+</div><div class='add'>+Mon Feb  8 16:27:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dmyversion.c: empty load path in miniruby.</div><div class='add'>+</div><div class='add'>+	* common.mk (COMPILE_PRELUDE): rbconfig is loaded on demand.</div><div class='add'>+</div><div class='add'>+	* tool/eval.rb, win32/{mkexports,resource}.rb: miniruby no longer</div><div class='add'>+	  contains "." in $:.</div><div class='add'>+</div><div class='add'>+Mon Feb  8 15:15:07 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_clone): call initialize_clone hook method to</div><div class='add'>+	  call initialize_copy.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): call initialize_dup hook.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#initialize_clone): use new hook to</div><div class='add'>+	  implement deep copy.  [ruby-dev:40242]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#initialize_dup): ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_delegate.rb (TestDelegateClass#test_copy_frozen): add</div><div class='add'>+	  a test to ensure #clone copies frozen status.</div><div class='add'>+</div><div class='add'>+Mon Feb  8 10:28:58 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check pthread_attr_getstack to prevent obsolete</div><div class='add'>+	  warning for pthread_attr_getstackaddr.</div><div class='add'>+</div><div class='add'>+Sun Feb  7 23:12:34 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: sort files for syntax validation.</div><div class='add'>+</div><div class='add'>+Sun Feb  7 23:08:53 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: sort test files.</div><div class='add'>+</div><div class='add'>+Sun Feb  7 12:53:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::FileList::ARRAY_METHODS): fix test failure by &lt;=&gt;</div><div class='add'>+	  definition at Kernel.</div><div class='add'>+</div><div class='add'>+Sun Feb  7 03:01:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_lgamma): initialize sign because</div><div class='add'>+	  lgamma(NaN) doesn't set the sign in OpenSolaris.</div><div class='add'>+</div><div class='add'>+Sun Feb  7 00:23:21 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_init_copy): raise a TypeError if the argument is</div><div class='add'>+	  BasicObject.  [ruby-core:27060]</div><div class='add'>+</div><div class='add'>+Sat Feb  6 23:37:11 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (initialize): set @sock to a NullSocket instance to</div><div class='add'>+	  raise FTPConnectionError when not connected.   [ruby-dev:40258]</div><div class='add'>+</div><div class='add'>+Sat Feb  6 23:25:57 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/view2.rb: replaced with Hugh Sasse's version.</div><div class='add'>+	  [ruby-core:27894]</div><div class='add'>+</div><div class='add'>+Sat Feb  6 22:57:00 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (receive_responses): does not hang when an</div><div class='add'>+	  unexpected BYE response received.  fixed [ruby-core:27944].</div><div class='add'>+	  Thanks, Bob Potter.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 21:31:23 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (wait): supported timeout.</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb (test_exception_during_idle): use timeout.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 19:35:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: fix require path.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 12:02:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#method_missing),</div><div class='add'>+	  (Delegator.delegating_block): don't hide backtrace from</div><div class='add'>+	  __getobj__ and reduced exception messages when $DEBUG.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 11:35:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c (ip_addr, ip_peeraddr),</div><div class='add'>+	  ext/socket/socket.c (sock_s_getaddrinfo): added optional</div><div class='add'>+	  reverse_lookup flag.  [ruby-core:28007]</div><div class='add'>+</div><div class='add'>+Sat Feb  6 01:55:02 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): pads with \000 when the</div><div class='add'>+	  current position is after the end.  [ruby-dev:40271]</div><div class='add'>+</div><div class='add'>+Sat Feb  6 01:14:54 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/purelib.rb, common.mk: to simulate ruby command more precisely,</div><div class='add'>+	  remove "." from $: of virtual environment for build and test.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 00:02:31 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): don't use O_NOFOLLOW because</div><div class='add'>+	  /dev/urandom is a symlink in OpenSolaris.</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.random_bytes): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  5 16:38:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator): include copy of Kernel.</div><div class='add'>+	  [ruby-dev:40314]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#{dup,clone}): class of copy should be</div><div class='add'>+	  Delegator.  [ruby-dev:40313]</div><div class='add'>+</div><div class='add'>+Fri Feb  5 09:26:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_op): remove unused variables.</div><div class='add'>+</div><div class='add'>+Fri Feb  5 02:06:57 2010  Aaron Patterson  &lt;tenderlove@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: Struct members are emitted without a leading</div><div class='add'>+	  colon.  Thanks Yusuke Endoh! [ruby-core:28052]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_struct.rb: fixed tests to go with Struct changes</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: fixed tests to go with Struct changes</div><div class='add'>+</div><div class='add'>+Fri Feb  5 00:34:24 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_gt, big_ge, big_lt, big_ge): added Bignum#&gt;, &gt;=, &lt; and</div><div class='add'>+	  &lt;= to allow to compare with BigDecimal.  [ruby-dev:40167]</div><div class='add'>+</div><div class='add'>+Thu Feb  4 15:47:27 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_init_stack): use get_stack.</div><div class='add'>+	  patched by KOSAKI Motohiro [ruby-dev:40309]</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): use get_stack</div><div class='add'>+	  on platforms which have pthread_attr_get_np.</div><div class='add'>+	  (FreeBSD, DragonFlyBSD and NetBSD)</div><div class='add'>+	  This is because FreeBSD and DragonFly BSD must use</div><div class='add'>+	  pthread_attr_get_np to get stack size of main thread,</div><div class='add'>+	  but Mac OS X and Linux with LinuxThreads must use getrlimit.</div><div class='add'>+	  &lt;http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html&gt;</div><div class='add'>+	  &lt;http://d.hatena.ne.jp/nurse/20100204&gt;</div><div class='add'>+</div><div class='add'>+Thu Feb  4 09:55:38 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: FreeBSD, DragonFly BSD and OpenBSD needs</div><div class='add'>+	  pthread_np.h to use pthread_*_np functions.</div><div class='add'>+	  OpenBSD's pthread_*_np also depend sys/signal.h,</div><div class='add'>+	  but it is included at signal.h via vm_core.h via thread.c.</div><div class='add'>+</div><div class='add'>+Thu Feb  4 08:15:53 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator): now inherits BasicObject.</div><div class='add'>+	  [ruby-dev:39154], [Bug #2679], [ruby-dev:40242]</div><div class='add'>+</div><div class='add'>+Thu Feb  4 03:00:59 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): get red of</div><div class='add'>+	  floating point exception.</div><div class='add'>+</div><div class='add'>+Thu Feb  4 01:24:01 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix infinity</div><div class='add'>+	  handling.  1 / Infinity was evaluated to NaN.</div><div class='add'>+</div><div class='add'>+Thu Feb  4 00:37:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mdump, time_mload): dump/load utc_offset.</div><div class='add'>+	  [ruby-dev:40063]</div><div class='add'>+</div><div class='add'>+Wed Feb  3 22:22:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check for non-portable stack attribute functions.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 20:10:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb: pass block argument to outer local</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 20:08:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): rb_path_last_separator may return NULL.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 13:15:24 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: DragonFlyBSD is also the same as FreeBSD</div><div class='add'>+	  on getting the stack size of the main thread.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 12:30:10 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): use pthread_get_attr_np</div><div class='add'>+	  to get the stack size of the main thread on FreeBSD.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: include pthread_np.h on FreeBSD.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 11:38:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/{closure,function}.c: removed C99 features and warnings.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 10:12:09 2010  Aaron Patterson  &lt;tenderlove@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/function.c: DL::Function now uses libffi</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dl_set_last_error): set to non static so errors</div><div class='add'>+	  can be exposed.</div><div class='add'>+</div><div class='add'>+	* ext/dl/closure.c: DL::Closure will now be used in place of</div><div class='add'>+	  ext/dl/callback/*.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c: legacy callbacks removed in favor of libffi</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl_conversions.(c,h): used for converting ruby types to FFI</div><div class='add'>+	  types.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/*: replaced by libffi callbacks.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/callback.rb: Converting internal callbacks to use</div><div class='add'>+	  DL::Closure</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/closure.rb: Ruby parts of the new DL::Closure object</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb: More conversion to use DL::Closure object</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/value.rb (ruby2ffi): adding private method for</div><div class='add'>+	  DL::CPtr to ffi value conversion.</div><div class='add'>+</div><div class='add'>+Tue Feb  2 18:15:12 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: turn on do_not_reverse_lookup by default,</div><div class='add'>+	  which has been reverted in r9880 probably unintentionally,</div><div class='add'>+	  according to matz.  [ruby-core:24530]</div><div class='add'>+</div><div class='add'>+Tue Feb  2 14:46:06 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: move implementation of each_slice, each_cons,</div><div class='add'>+	  each_with_object to enum.c.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_slice_i): convert multiple values from yield into</div><div class='add'>+	  an array.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_cons_i): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_object_i): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  2 14:30:27 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_entry): new method #each_entry to pack values</div><div class='add'>+	  from yield into an array.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#merge): use Enumerable#each_entry to implement</div><div class='add'>+	  Set compatible to 1.8 behavior.  [ruby-core:27985]</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: replace is_a?(Enumerable) with respond_to?(:each)</div><div class='add'>+	  for duck typing.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet#add): typo fixed.</div><div class='add'>+</div><div class='add'>+Tue Feb  2 11:13:56 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#marshal_dump): exclude</div><div class='add'>+	  delegator-specific instance variables.</div><div class='add'>+</div><div class='add'>+Mon Feb  1 21:26:41 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#each2): returns a self.  [ruby-dev:40241]</div><div class='add'>+</div><div class='add'>+Mon Feb  1 17:08:42 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_minus): RDoc update.  a patch from red stun</div><div class='add'>+	  in [ruby-core:27951]</div><div class='add'>+</div><div class='add'>+Mon Feb  1 07:36:33 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: fix SEGV on TkUtil::CallbackSubst._setup_subst_table.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: [ruby1.9] fix freeze at exit.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: [POTENTIAL INCOMPATIBLE] return NoMethodError</div><div class='add'>+	  for TkWindow#to_ary and to_str.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tcllib/plotchart.rb: wrong arguments.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkballoonhelp.rb: fail to support TkEntry widgets.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 23:20:43 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_codepoint): use cbuf when needs readconv.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 23:07:23 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: use string instead of symbol as file name.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 22:41:33 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value): fix the previous commit.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 21:43:35 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value): make no exception for Symbol.</div><div class='add'>+	  [ruby-dev:40274]</div><div class='add'>+</div><div class='add'>+Sun Jan 31 21:10:15 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_throw): fixed infinite loop.  [ruby-core:27969]</div><div class='add'>+</div><div class='add'>+Sun Jan 31 21:29:58 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text#initialize): do Text.check only when</div><div class='add'>+	  parent is specified, since Text.check may need doctype.  partially</div><div class='add'>+	  revert r26518.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 15:50:34 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (REXML::Text#initialize): fix typo and a bug that</div><div class='add'>+	  seems to be caused by refactoring.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 15:46:37 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parent.rb (REXML::Parent#delete): return the deleted node</div><div class='add'>+	  because the rdoc of REXML::Element#delete_element says it returns</div><div class='add'>+	  "the element that was removed."  [REXMLTracker#161]</div><div class='add'>+</div><div class='add'>+Sun Jan 31 14:33:00 2010  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: A bug fix for deleting blank Table rows from Andy Hartford.</div><div class='add'>+</div><div class='add'>+Sun Jan 31 13:31:43 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): free rb_classext_t of eigenclass.  [Bug #1392]</div><div class='add'>+</div><div class='add'>+Sun Jan 31 13:00:14 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb (REXML::Document#add): fix duplicate XMLDecls</div><div class='add'>+	  and bad DocTypes in REXML::Document.    (Bug #19058) [ruby-core:27979]</div><div class='add'>+	  based on the patch by Federico Builes.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 22:49:21 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb (set_options): ensure that the type of argument is</div><div class='add'>+	  Array, restoring this check that was deleted at r10239.  This caused</div><div class='add'>+	  rubyspec error.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 12:59:33 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw): needs $(DEFFILE) for extension libraries.</div><div class='add'>+	  [ruby-core:27946]</div><div class='add'>+</div><div class='add'>+Fri Jan 29 11:09:49 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_do): log no source when no development env.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): srcprefix always needs $(srcdir).</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): yield configuration if a block is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 09:43:30 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans (buf_shift_char): don't see uninitialized</div><div class='add'>+	  value. [ruby-dev:40233]</div><div class='add'>+</div><div class='add'>+Fri Jan 29 01:42:24 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#initialize_copy): use initialize_copy</div><div class='add'>+	  instead of overriding clone/dup.  [ruby-dev:40221]</div><div class='add'>+	  it now always clones the target, it might cause incompatibility.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 01:26:53 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): update RDoc to</div><div class='add'>+	  denote that #to_i raises FloatDomainError for Inf and NaN.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): fast #to_i using</div><div class='add'>+	  BigDecimal_split().</div><div class='add'>+</div><div class='add'>+	* bignum.c (conv_digit): use faster ISDIGIT() assuming ASCII.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 00:18:54 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: set autoload to CGI::HtmlExtension.  [ruby-dev:40194]</div><div class='add'>+</div><div class='add'>+Thu Jan 28 09:44:19 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_compile): initialize ScanEnv.</div><div class='add'>+	  mainly to initialize env-&gt;warnings_flag [ruby-dev:40196]</div><div class='add'>+</div><div class='add'>+	* regparse.c (scan_env_clear): clear warnings_flag.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 23:33:21 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_matrix.rb, test/matrix/test_vector.rb: add some</div><div class='add'>+	  tests.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 23:29:36 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (ConditionVariable#wait, signal, broadcast): return</div><div class='add'>+	  self (for 1.8 compatibility).</div><div class='add'>+</div><div class='add'>+Wed Jan 27 23:27:54 2010  Keiju Ishitsuka  &lt;keiju@emperor2.pendome&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: add exception Matrix::ErrOperationNotImplemented</div><div class='add'>+	  [ruby-dev:40149].</div><div class='add'>+	* lib/matrix.rb: change message of exception</div><div class='add'>+	  Matrix::ErrOperationNotDefined [ruby-dev:40150], [ruby-dev:40176].</div><div class='add'>+	* lib/matrix.rb: add method Vector#/ [ruby-dev:40151].</div><div class='add'>+	* lib/matrix.rb(Matrix::Scalar#+,-,/): delete meaningless when</div><div class='add'>+	  switch. [ruby-dev:40149]</div><div class='add'>+</div><div class='add'>+Wed Jan 27 23:22:54 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (bugreport_backtrace): trivial change.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): uninitialized local variable i.</div><div class='add'>+	  [ruby-dev:40169]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_segv_test):</div><div class='add'>+	  follow above change.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 23:20:52 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb</div><div class='add'>+	  (TestException#test_thread_signal_location):</div><div class='add'>+	  change test method name.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 22:48:40 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (determinant): fix name error.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 22:26:25 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_backtrace): "circular require" warning was output to</div><div class='add'>+	  stdout except the first line.  All line is output to stderr now.</div><div class='add'>+	  [ruby-dev:40147]</div><div class='add'>+</div><div class='add'>+Wed Jan 27 00:22:20 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod, BigDecimal_mod,</div><div class='add'>+	  BigDecimal_divmod, BigDecimal_div2): BigDecimal#% and #div returned</div><div class='add'>+	  an array itself that was returned by #divmod.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 00:19:30 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpCtoV): do not raise infinity</div><div class='add'>+	  exception for BigDecimal("0E200000000000").</div><div class='add'>+</div><div class='add'>+Tue Jan 26 21:50:31 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpCtoV): BigDecimal("0E200000000000")</div><div class='add'>+	  was Infinity, not 0.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 21:36:22 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: test unsetenv returns a value.</div><div class='add'>+	  unsetenv is void in older BSDs (FreeBSD 6 and OpenBSD 4.5 at least).</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): don't use the result of unsetenv if unsetenv</div><div class='add'>+	  doesn't return a value.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 21:32:03 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: suppress a warning.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 20:23:22 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_invoke_proc): this function must not catch TAG_RETURN</div><div class='add'>+	  because vm_exec does.  This caused rubyspec error.  [ruby-dev:40158]</div><div class='add'>+</div><div class='add'>+Tue Jan 26 20:21:28 2010  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/eq.rb: fix circular require in drb.</div><div class='add'>+	  reported by akr. see [ruby-dev:40156] [ruby-core:27661]</div><div class='add'>+</div><div class='add'>+Tue Jan 26 19:59:17 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzfile_s_wrap): add rdoc. [Bug #2656]</div><div class='add'>+	  patched by Hugh Sasse [ruby-core:27692] [ruby-core:27852]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/doc/zlib.rd: removed.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 16:43:34 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: fix rdoc. (length -&gt; bytesize)</div><div class='add'>+	  reported by Kornelius Kalnbach. see [ruby-core:27792]</div><div class='add'>+</div><div class='add'>+Tue Jan 26 07:06:05 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 03:16:45 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c, vm_core.h, eval.c: because rb_protect must not be jumped by</div><div class='add'>+	  callcc, revert r26407.  And rename trap_tag to protect_tag and</div><div class='add'>+	  change exception message (across trap -&gt; across stack rewinding</div><div class='add'>+	  barrier).</div><div class='add'>+</div><div class='add'>+Mon Jan 25 23:08:10 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): wrong conditions.  [ruby-core:27753]</div><div class='add'>+</div><div class='add'>+Mon Jan 25 22:31:53 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: use method_defined? instead of</div><div class='add'>+	  instance_methods.include?.</div><div class='add'>+</div><div class='add'>+Mon Jan 25 22:08:20 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_cont_call, cont_restore_1): remove trap_tag check because</div><div class='add'>+	  it seems not to make sense.  [ruby-dev:40121]</div><div class='add'>+</div><div class='add'>+	* vm_core.h, eval.c (rb_protect): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 25 21:43:05 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: fix the check if instance method `ruby' is</div><div class='add'>+	  defined or not.</div><div class='add'>+</div><div class='add'>+Mon Jan 25 21:17:32 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_segv_test): add a test for</div><div class='add'>+	  bugreport trace dumper.</div><div class='add'>+</div><div class='add'>+Mon Jan 25 17:47:02 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_check): needs WNOHANG to poll, return $?, and</div><div class='add'>+	  call raise_from_check() with pid_t.  [ruby-dev:40141]</div><div class='add'>+</div><div class='add'>+Mon Jan 25 17:36:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.c (RUBY_LIB, RUBY_*_LIB): moved from configures.</div><div class='add'>+</div><div class='add'>+Mon Jan 25 12:11:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (USE_SIGALTSTACK): only when SA_SIGINFO also is</div><div class='add'>+	  available.  see [ruby-core:27768].</div><div class='add'>+</div><div class='add'>+Mon Jan 25 12:02:34 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c, file.c, io.c, signal.c: add __HAIKU__.</div><div class='add'>+	  patched by Alexander von Gluck [ruby-core:27767]</div><div class='add'>+</div><div class='add'>+Mon Jan 25 11:45:47 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): ignore errno if y is inf.</div><div class='add'>+	  r26335 is because NetBSD 5.0's asin and acos returns</div><div class='add'>+	  0.0 with errno EDOM. But it breaks Linux whose gamma returns inf</div><div class='add'>+	  with errno ERANGE on.</div><div class='add'>+</div><div class='add'>+Sun Jan 24 22:48:05 2010  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, vm.c, vm_eval.c, vm_insnhelper.c: fix issues about</div><div class='add'>+	  return and c-return trace.  This issue skips (c-)return event</div><div class='add'>+	  with global jump such as break or return.  This fix make vm invoke</div><div class='add'>+	  hooks at stack rewind timing.  fix [ruby-core:27606] [Bug #2610].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sun Jan 24 14:21:48 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen_cr): increment by rb_enc_mbminlen(enc) for</div><div class='add'>+	  broken byte sequence.  [ruby-core:27748]</div><div class='add'>+	  (rb_str_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 24 05:18:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): unlock all locking mutexes</div><div class='add'>+	  before clean up.  [ruby-core:26877]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork): no other threads to be joined.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_lock_unlock, rb_thread_lock_destroy):</div><div class='add'>+	  new functions.</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): unlock and destroy global VM lock.</div><div class='add'>+</div><div class='add'>+Sun Jan 24 00:31:39 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb: fix typo.</div><div class='add'>+	  patched by Hal Brodigan [ruby-core:21536]</div><div class='add'>+</div><div class='add'>+Sun Jan 24 00:02:18 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/to_html_crossref.rb: fix failure of the test.</div><div class='add'>+	  patched by Tomoyuki Chikanaga and nobu [ruby-core:20564]</div><div class='add'>+</div><div class='add'>+Sat Jan 23 23:27:12 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): add rdoc by Roger Pack. [ruby-core:27669]</div><div class='add'>+</div><div class='add'>+Sat Jan 23 23:12:56 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator/html.rb (RDoc::Generator::HTML#gen_into):</div><div class='add'>+	  make the rdoc(generating html) run faster and use less memory.</div><div class='add'>+	  patch by Tetsu Soh [ruby-core:27656]</div><div class='add'>+</div><div class='add'>+Sat Jan 23 19:54:48 2010  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE.ole_initialize,</div><div class='add'>+	  WIN32OLE.ole_uninitialize to use in win32ole.rb.</div><div class='add'>+	  You must not use these methods.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/lib/win32ole.rb: add win32ole.rb</div><div class='add'>+	  re-define Thread#initialize (fix ruby-core:27634)</div><div class='add'>+</div><div class='add'>+Sat Jan 23 00:25:19 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/coverage.rb: preserve exit status.</div><div class='add'>+</div><div class='add'>+Sat Jan 23 00:21:18 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: get rid of debug print.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: fixed to make test-all work.</div><div class='add'>+</div><div class='add'>+Fri Jan 22 23:54:04 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add a test for Array#rotate, rotate!.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb, test/ruby/test_fnmatch.rb: add some tests</div><div class='add'>+	  (for coverage of dir.c).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb: add a test for Enumerable#minmax.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: add some tests for Enumerator#inspect,</div><div class='add'>+	  Enumerator::Generator and Yielder.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: add a test for ENV#index.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb: add some tests (for coverage of</div><div class='add'>+	  error.c).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: add a test for recursive check.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb: add a test for number of argument of</div><div class='add'>+	  Integer.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: add a test for define_method.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: add a test for constant of included</div><div class='add'>+	  module.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: add a test for parameters with cfunc.</div><div class='add'>+</div><div class='add'>+Fri Jan 22 23:50:03 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb, test/ruby/test_symbol.rb,</div><div class='add'>+	  test/ruby/test_variable.rb: add some tests (for coverage of</div><div class='add'>+	  compile.c).</div><div class='add'>+</div><div class='add'>+Fri Jan 22 21:05:34 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mload): add submicro into vtm.subsecx.  [ruby-dev:40133]</div><div class='add'>+</div><div class='add'>+Fri Jan 22 14:26:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): needs encodings and exts.</div><div class='add'>+</div><div class='add'>+Fri Jan 22 14:16:18 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add missing comma.</div><div class='add'>+</div><div class='add'>+Fri Jan 22 01:07:16 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb, test/ruby/test_class.rb,</div><div class='add'>+	  test/ruby/test_defined.rb, test/ruby/test_hash.rb,</div><div class='add'>+	  test/ruby/test_primitive.rb, test/ruby/test_variable.rb: add some</div><div class='add'>+	  tests (for coverage).</div><div class='add'>+</div><div class='add'>+Fri Jan 22 01:03:28 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_define_class): expect TypeError</div><div class='add'>+	  instead of NameError.  [ruby-core:27504]</div><div class='add'>+</div><div class='add'>+Thu Jan 21 15:09:35 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: some tidy.</div><div class='add'>+</div><div class='add'>+Thu Jan 21 11:15:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_rotate): new methods, Array#rotate! and</div><div class='add'>+	  Array#rotate.  [ruby-dev:17194]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reverse_m): copy directly.</div><div class='add'>+</div><div class='add'>+Thu Jan 21 09:38:00 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use AS_CASE instead of when, to get rid of</div><div class='add'>+	  an unintentional substitution.</div><div class='add'>+</div><div class='add'>+Thu Jan 21 08:45:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_disasm): check for proc first.  based on the</div><div class='add'>+	  patch by Roger Pack in [ruby-core:27626].  [ruby-core:27227]</div><div class='add'>+</div><div class='add'>+Wed Jan 20 16:09:59 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (compile.$(OBJEXT)): dependencies lacking.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_cfunc): invalid initializer for C89</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_insns_unification): int might be smaller than int*</div><div class='add'>+</div><div class='add'>+Tue Jan 19 20:00:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::Config.default_config_hash): return an</div><div class='add'>+	  empty hash when resolv.conf is not available.  [ruby-core:27620]</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Config#lazy_initialize): fixed the</div><div class='add'>+	  defaults of nameserver and port.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 14:29:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (clean-ext): allow glob patterns.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 14:19:26 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/{extconf.rb, zlib.c): crc32_combine and adler32_combine is</div><div class='add'>+	  supported on Zlib 1.2.2.1, so check them for old zlib.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 09:03:37 2010  Aaron Patterson  &lt;tenderlove@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: added Zlib.crc32_combine and Zlib.adler32_combine</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb: corresponding tests [ruby-core:27551]</div><div class='add'>+</div><div class='add'>+Tue Jan 19 02:02:32 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add some tests (for coverage).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 01:57:12 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: some coerce definitions (for test) was</div><div class='add'>+	  wrong.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 01:53:11 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsub_int): remove nonsense loop.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 01:42:36 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (top_compstmt, top_stmts, top_stmt): prohibit BEGIN {} in</div><div class='add'>+	  non-toplevel scope.  [ruby-core:21657]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_begininclass): add a test for</div><div class='add'>+	  above.</div><div class='add'>+</div><div class='add'>+Mon Jan 18 17:16:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb (make_partial_content):</div><div class='add'>+	  add bytes-unit.  [ruby-dev:40030]</div><div class='add'>+</div><div class='add'>+Mon Jan 18 15:49:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPHeader#{content_range,range_length}):</div><div class='add'>+	  use inclusive range same as the header representation.</div><div class='add'>+</div><div class='add'>+Mon Jan 18 03:59:57 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_hexdigest_bang): Fix</div><div class='add'>+	  rdoc.</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest::Class.base64digest)</div><div class='add'>+	  (Digest::Instance#base64digest{,!}): New methods.</div><div class='add'>+</div><div class='add'>+Sun Jan 17 22:48:44 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_digest)</div><div class='add'>+	  (rb_digest_instance_hexdigest): Save a method call of reset()</div><div class='add'>+	  for a disposable clone.</div><div class='add'>+</div><div class='add'>+Sun Jan 17 19:24:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): check errno first.</div><div class='add'>+	  NetBSD 5.0's asin and acos returns 0.0 with errno EDOM.</div><div class='add'>+</div><div class='add'>+Sun Jan 17 14:24:35 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (rb_str_derive): use long.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): suppress a warning.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_signedness): new method.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_header, create_header): use String#tr_cpp.</div><div class='add'>+</div><div class='add'>+Thu Jan 14 13:06:58 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_hash, int_chr): fixed type.</div><div class='add'>+</div><div class='add'>+Thu Jan 14 12:50:37 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): fixed range check for Fixnum, and</div><div class='add'>+	  added checks for integer overflow and invalid char code.</div><div class='add'>+</div><div class='add'>+Thu Jan 14 09:34:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): raise RangeError when the argument is</div><div class='add'>+	  negative value. [ruby-core:27583]</div><div class='add'>+</div><div class='add'>+Thu Jan 14 08:49:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_r): convert to rational if internal representation</div><div class='add'>+	  is not rational.</div><div class='add'>+</div><div class='add'>+Thu Jan 14 04:01:50 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mdump): use nano_num and nano_den instead of subnano to</div><div class='add'>+	  avoid Rational class in marshaled data which prevent unmarshal by</div><div class='add'>+	  Ruby 1.8.</div><div class='add'>+	  (time_mload): use nano_num and nano_den.</div><div class='add'>+</div><div class='add'>+Wed Jan 13 11:57:38 2010  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_initialize): Make sure BasicObject doesn't get</div><div class='add'>+	  initialized twice [ruby-core:27577]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_init_copy): ditto</div><div class='add'>+</div><div class='add'>+Wed Jan 13 06:54:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check for if struct timezone is defined.</div><div class='add'>+</div><div class='add'>+	* missing.h (struct timezone): define if not defined.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (struct timezone): defined in the newer w32api.</div><div class='add'>+	  [ruby-core:27515]</div><div class='add'>+</div><div class='add'>+Wed Jan 13 00:33:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb: fix typo by Sho Hashimoto.</div><div class='add'>+	  reported and patched at [ruby-dev:40058] [Bug #2599]</div><div class='add'>+</div><div class='add'>+Tue Jan 12 23:48:29 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb, test/rss/test_maker_0.9.rb:</div><div class='add'>+	  accept any time format in maker. [ruby-core:26923]</div><div class='add'>+</div><div class='add'>+Tue Jan 12 21:56:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_set_len): call rb_str_modify.</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): don't call rb_str_modify before</div><div class='add'>+	  rb_str_set_len.</div><div class='add'>+</div><div class='add'>+Tue Jan 12 20:44:14 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_internal): call rb_secure.</div><div class='add'>+</div><div class='add'>+Tue Jan 12 16:48:46 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP.start): options may not be given.</div><div class='add'>+</div><div class='add'>+Tue Jan 12 16:48:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): check if instream</div><div class='add'>+	  is closed instead of fd 0.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): use STDIN for input.</div><div class='add'>+	  Reported by Sora Harakami. See</div><div class='add'>+	  http://d.hatena.ne.jp/codnote/20100111/1263174134</div><div class='add'>+</div><div class='add'>+Tue Jan 12 16:09:02 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_execopts_env): MANDATORY_ENVS might</div><div class='add'>+	  not be a part of ENV.  e.g. TMPDIR.</div><div class='add'>+</div><div class='add'>+Tue Jan 12 14:07:31 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP.start): add hash argument to</div><div class='add'>+	  set ssl related options. when use_ssl is set default value</div><div class='add'>+	  of verify_mode is OpenSSL::SSL::VERIFY_PEER. [ruby-dev:40003]</div><div class='add'>+</div><div class='add'>+Tue Jan 12 14:53:07 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): use _wputenv() instead of</div><div class='add'>+	  SetEnvironmentVariableW() because latter doesn't set msvcrt's environ</div><div class='add'>+	  work area, of course.</div><div class='add'>+	  [Bug #2552]</div><div class='add'>+</div><div class='add'>+Tue Jan 12 13:33:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (realpath_rec): trace symbolic link only when supporting</div><div class='add'>+	  readlink().</div><div class='add'>+</div><div class='add'>+Tue Jan 12 12:49:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-here-doc-beg-match): fix for here-doc</div><div class='add'>+	  which ends with an underscore.</div><div class='add'>+</div><div class='add'>+Tue Jan 12 09:58:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c: need to include errno.h for EINVAL.</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): fixed typo.  see [ruby-dev:40026]</div><div class='add'>+</div><div class='add'>+Tue Jan 12 09:22:43 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb (require_relative): use File.realpath.  [ruby-dev:40040]</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: declare rb_dir_getwd.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_dir_getwd): copied from dir_s_getwd to export.</div><div class='add'>+	  (dir_s_getwd): use rb_dir_getwd.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_realpath): new method File.realpath.</div><div class='add'>+	  (rb_file_s_realdirpath): new method File.realdirpath.</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#realpath): use File.realpath.</div><div class='add'>+	  (Pathname#realdirpath): use File.realdirpath.</div><div class='add'>+</div><div class='add'>+Mon Jan 11 22:45:08 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): Improve the emulation of setenv(3) on</div><div class='add'>+	  environments where putenv(3) is used.  Raise EINVAL If a</div><div class='add'>+	  variable name contains an '='.</div><div class='add'>+</div><div class='add'>+Mon Jan 11 18:16:38 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (GET_BLOCK_PTR): return 0 when in class frame.</div><div class='add'>+	  [Bug #2583]</div><div class='add'>+</div><div class='add'>+Mon Jan 11 16:52:05 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_strlen): added. [ruby-dev:40028]</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_strlen): declared.</div><div class='add'>+</div><div class='add'>+Mon Jan 11 13:30:35 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb (WEBrick::AccessLog#format): fixed typo.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpstatus.rb (WEBrick::HTTPStatus::Status#initialize):</div><div class='add'>+	  accept 0 or more arguments.  [ruby-dev:40021]</div><div class='add'>+</div><div class='add'>+Mon Jan 11 12:47:58 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): ENV.[]= should raise an error if setenv(3)</div><div class='add'>+	  or putenv(3) fails.  [ruby-dev:40023]</div><div class='add'>+</div><div class='add'>+Sun Jan 10 17:25:24 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb : Escape needed.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpstatus.rb : ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb : ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb : ditto.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cgi.rb (TestWEBrickCGI::test_bad_): Test for it.</div><div class='add'>+</div><div class='add'>+Sun Jan 10 04:54:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): raise TypeError same as class</div><div class='add'>+	  statement.  [ruby-core:27504]</div><div class='add'>+</div><div class='add'>+Sun Jan 10 04:41:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): needs ARCH_FLAG.</div><div class='add'>+</div><div class='add'>+Sat Jan  9 14:20:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (install-all): maybe typo.</div><div class='add'>+</div><div class='add'>+Sat Jan  9 14:01:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): get rid of a warning of VC++ x64.</div><div class='add'>+</div><div class='add'>+Sat Jan  9 08:40:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat (WIN32DIR): regularise file separators.</div><div class='add'>+</div><div class='add'>+Fri Jan  8 23:35:18 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): don't check visibility of method body if public</div><div class='add'>+	  ZSUPER method is found.  [ruby-dev:39767]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Fri Jan  8 22:59:40 2010  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_alias): skip ZSUPER method when searching body of</div><div class='add'>+	  source method.  [ruby-dev:39760]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Fri Jan  8 21:15:21 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http, lib/net/https: move content from net/https to</div><div class='add'>+	  net/http. [ruby-dev:39986]</div><div class='add'>+</div><div class='add'>+Fri Jan  8 14:06:01 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_read): close the IO if an exception is raised on</div><div class='add'>+	  seeking. [ruby-core:27429]</div><div class='add'>+</div><div class='add'>+Fri Jan  8 13:12:26 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol): dump no encoding for 7bit only coderange</div><div class='add'>+	  symbol.  [ruby-core:27375]</div><div class='add'>+</div><div class='add'>+Thu Jan  7 07:56:09 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.5.0 r5596.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan  5 19:30:53 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb: add a test. cf [ruby-dev:39116]</div><div class='add'>+</div><div class='add'>+Tue Jan  5 02:03:34 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (DTRACE): clear this when `dtrace -l` fails.</div><div class='add'>+	  Note that current FreeBSD needs privilege to call it;</div><div class='add'>+	  so to use DTrace on FreeBSD, you should run configure as root.</div><div class='add'>+</div><div class='add'>+Mon Jan  4 21:24:18 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: added UNLIKELY to probes for optimization.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  4 09:30:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (TRACING_MODEL): follow yugui's previous changes.</div><div class='add'>+</div><div class='add'>+Mon Jan  4 09:30:25 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (InterlockedExchangePointer): old SDK support.</div><div class='add'>+</div><div class='add'>+Sun Jan  3 23:54:51 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* trace.h: new file. wraps tracing mechanisms.</div><div class='add'>+</div><div class='add'>+	* defs/dtrace.d: new file. defined a dtrace provider "ruby".</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (LIKELY): moved from vm.c.</div><div class='add'>+	  (UNLIKELY): ditto.</div><div class='add'>+	  (OBJSETUP): probe "object-create".</div><div class='add'>+	  (RUBY_EVENT_RESCUE): new event.</div><div class='add'>+</div><div class='add'>+	* vm_exec.c (DEBUG_ENTER_INSN): embedded a probe insn-entry into it.</div><div class='add'>+	  (DEBUG_END_INSN): insn-return.</div><div class='add'>+</div><div class='add'>+	* vm.c (LIKELY): moved into ruby.h.</div><div class='add'>+	  (UNLIKELY): ditto.</div><div class='add'>+	  (Init_BareVM): embedded a probe "raise" into it.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class2name_without_alloc): new utility function.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install?(:ext, :arch, :'ext-arch')): installs</div><div class='add'>+	  dtrace.d if necessary.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (add_signal_thread_list): probe "raise".</div><div class='add'>+	  (rb_thread_create_timer_thread): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule_rec): probes "thread-enter" and</div><div class='add'>+	  "thread-leave",</div><div class='add'>+	  (thread_start_func_2): ditto.</div><div class='add'>+	  (thread_cleanup_func): probe "thread-term"</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: supports dtrace postprocessor on making an extension.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_vm_insn_name): new utility function.</div><div class='add'>+	  (rb_vm_insn_len): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def (hook): probes "method-entry", "method-return", "line",</div><div class='add'>+	  and "rescue".</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): adds a trace op for "rescue" probe.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): probes "gc-begin" and "gc-end".</div><div class='add'>+	  (obj_free): probe "object-free"</div><div class='add'>+	  (garbage_collect_with_gvl): probe "raise"</div><div class='add'>+	  (negative_size_allocation_error): ditto.</div><div class='add'>+	  (rb_memerror): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): probe "rescue"</div><div class='add'>+	  (rb_longjmp): probe "raise"</div><div class='add'>+</div><div class='add'>+	* ext/probe/probe.c: new extension for application defined probes.</div><div class='add'>+</div><div class='add'>+	* ext/probe/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-tracing-model): new option to choose a tracing</div><div class='add'>+	  mechanism.</div><div class='add'>+	  (DTRACE): new substitution. name of dtrace(1).</div><div class='add'>+	  (RUBY_TRACING_MODEL): new substitution.</div><div class='add'>+	  (DTRACE_OBJ): ditto.</div><div class='add'>+	  (MINIDTRACE_OBJ): ditto.</div><div class='add'>+	  (GOLFDTRACE_OBJ): ditto.</div><div class='add'>+	  (LIBRUBY_DTRACE_OBJ): ditto.</div><div class='add'>+	  (RUBY_DTRACE_POSTPROCESS): new macro. checks whether the dtrace on</div><div class='add'>+	  the system needs postprocessing.</div><div class='add'>+	  (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether the dtrace</div><div class='add'>+	  supports USDT.</div><div class='add'>+</div><div class='add'>+	* Makefile.in:</div><div class='add'>+	  (DTRACE): new variable. name of dtrace(1).</div><div class='add'>+	  (TRACING_MODEL): new variable. name of the chosen tracing mechanism.</div><div class='add'>+	  (DTRACE_OBJ): same as the one in configure.in.</div><div class='add'>+	  (MINIDTRACE_OBJ): ditto.</div><div class='add'>+	  (GOLFDTRACE_OBJ): ditto.</div><div class='add'>+	  (LIBRUBY_DTRACE_OBJ): ditto.</div><div class='add'>+	  (CPPOUTFILE): new substitution. necessary for generating dtrace.d</div><div class='add'>+	  (trace_none.h): new target for TRACING_MODEL=none</div><div class='add'>+	  (RUBY_H_INCLUDES): appended a header for tracing.</div><div class='add'>+	  (distclean-local): also removes preprocessed version of dtrace.d</div><div class='add'>+	  ($(LIBRUBY_A)): needs $(LIBRUBY_DTRACE_OBJ) if dtrace needs</div><div class='add'>+	  postprocessing.</div><div class='add'>+	  ($(PROGRAM)): ditto.</div><div class='add'>+	  (golf): ditto.</div><div class='add'>+	  (miniruby): ditto.</div><div class='add'>+	  ($(arch_hdrdir)/ruby/dtrace.d): new target. preprocessed version</div><div class='add'>+	  of defs/dtrace.d. generated if necessary.</div><div class='add'>+	  ($(arch_hdrdir)/ruby/trace_dtrace.h): new target.</div><div class='add'>+	  definition of probes.</div><div class='add'>+	  ($(LIBRUBY_DTRACE_OBJ)): new target. generated if dtrace needs</div><div class='add'>+	  postprocessing.</div><div class='add'>+	  ($(DTRACE_OBJ)): ditto.</div><div class='add'>+	  ($(MINIDTRACE_OBJ)): ditto.</div><div class='add'>+	  ($(GOLFDTRACE_OBJ)): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan  3 15:34:19 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb: String no longer has #each.</div><div class='add'>+	  Patch by Mitsutaka Mimura (takkanm). [ruby-dev:39949].</div><div class='add'>+</div><div class='add'>+Sun Jan  3 01:29:18 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#inspect):</div><div class='add'>+	  implemented.</div><div class='add'>+</div><div class='add'>+Sat Jan  2 15:57:54 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS#initialize): new option :nameserver_port.</div><div class='add'>+	  (Resolv::DNS#each_resource): pass port number.</div><div class='add'>+	  (Resolv::DNS#make_requester): ditto.</div><div class='add'>+	  (Resolv::DNS::Config#lazy_initialize): initialize @nameserver_port</div><div class='add'>+	  instead of @nameserver.</div><div class='add'>+	  (Resolv::DNS::Config#single?): return port number addition to the</div><div class='add'>+	  nameserver.</div><div class='add'>+	  (Resolv::DNS::Config#generate_timeouts): use @nameserver_port.</div><div class='add'>+	  (Resolv::DNS::Config#resolv): yield port number.</div><div class='add'>+</div><div class='add'>+Sat Jan  2 00:43:22 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (initialize_regexp): allow leading</div><div class='add'>+	  and trailing white space, and forbid extra characters</div><div class='add'>+	  on another lines. [ruby-core:26223]</div><div class='add'>+	  RFC 3986  Appendix C.  Delimiting a URI in Context</div><div class='add'>+	  draft-duerst-iri-bis-07  7.2.  Web Address processing</div><div class='add'>+</div><div class='add'>+Fri Jan  1 23:17:49 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI#normalize!): normalize case of</div><div class='add'>+	  scheme. [ruby-core:27309]</div><div class='add'>+</div><div class='add'>+Fri Jan  1 00:47:57 2010  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_method_unimpl): Suppress</div><div class='add'>+	  compiler warnings.</div><div class='add'>+</div><div class='add'>+Fri Jan  1 00:00:00 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb: generate RbConfig.ruby in rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb: use RbConfig.ruby.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/report.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/runc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* tool/eval.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 31 18:18:55 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include addrinfo.h only when using our own</div><div class='add'>+	  getaddrinfo.c.</div><div class='add'>+</div><div class='add'>+Thu Dec 31 14:20:11 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (save_redirect_fd): consider EBADF that the fd is not used.</div><div class='add'>+	  [ruby-dev:39938]</div><div class='add'>+</div><div class='add'>+Thu Dec 31 06:03:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_type): typed.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: fix for wide-getaddrinfo option.</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.c: rename {addr,name}info functions to ensure</div><div class='add'>+	  those are used on darwin.</div><div class='add'>+</div><div class='add'>+Thu Dec 31 03:27:53 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_thread_destroy): decreased the probability of</div><div class='add'>+	  using the interrupt event in the thread termination.</div><div class='add'>+	  see [ruby-core:27199].</div><div class='add'>+</div><div class='add'>+Thu Dec 31 02:35:57 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_error): should report the function.</div><div class='add'>+</div><div class='add'>+Thu Dec 31 01:58:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: fix for extstatic.</div><div class='add'>+</div><div class='add'>+Wed Dec 30 19:43:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RREGEXP_SRC_END): added.</div><div class='add'>+</div><div class='add'>+Wed Dec 30 19:40:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (INFINITY): this is float.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (NAN): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_infinity): change content as float.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_nan): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 30 17:59:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (push_all_highest_version_gems_on_load_path):</div><div class='add'>+	  simplified.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command_manager.rb (Gem#load_and_instantiate):</div><div class='add'>+	  rescue only NameError from const_get.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem#load_specification): don't use</div><div class='add'>+	  RUBY_VERSION to branch.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb (Gem::TestRunner, Gem#alien): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Kernel#gem is already defined, and workaround</div><div class='add'>+	  for home directory and custom_require are no longer needed.</div><div class='add'>+</div><div class='add'>+Tue Dec 29 16:03:33 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): Add Float::INFINITY and Float::NAN.</div><div class='add'>+	  [ruby-dev:1657] [ruby-dev:4760] [ruby-list:7023]</div><div class='add'>+	  [ruby-list:46690]</div><div class='add'>+	  [ruby-core:26632] [ruby-talk:41352] [ruby-talk:203333]</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (INFINITY): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (NAN): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/util.h (ruby_div0): removed.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): use INFINITY and NAN</div><div class='add'>+	  instead of ruby_div0(1.0).</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_fdiv): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 29 10:36:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::STANDALONE):</div><div class='add'>+	  any number spaces can be placed between equal-sign and the value.</div><div class='add'>+	  patch from Ed Howland in [ruby-core:27345].</div><div class='add'>+</div><div class='add'>+Mon Dec 28 22:33:58 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): force to inherit standard I/O handles.</div><div class='add'>+	  this change fixes [ruby-core:27273], but other side effects might</div><div class='add'>+	  exist.</div><div class='add'>+</div><div class='add'>+Mon Dec 28 22:00:10 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: added tests for taintness/untrustness</div><div class='add'>+	  propagation.</div><div class='add'>+</div><div class='add'>+Mon Dec 28 18:13:26 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/occur2.rb: reimplemented in modern style. [ruby-dev:39927].</div><div class='add'>+</div><div class='add'>+Mon Dec 28 17:19:37 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/install-sh: correction by Hiro Asari.</div><div class='add'>+	  https://gist.github.com/264558/58ad1cae45cde49600bbb39286af2aae23e639d5</div><div class='add'>+</div><div class='add'>+Mon Dec 28 13:18:52 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/install-sh: wrote the intention. [ruby-dev:39928]</div><div class='add'>+</div><div class='add'>+Sun Dec 27 10:45:00 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (foleparam_initialize): add foleparam_initialize</div><div class='add'>+	  to check argument of WIN32OLE_PARAM.new</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_param.rb (test_s_new): add some assertion</div><div class='add'>+	  to test WIN32OLE_PARAM.new</div><div class='add'>+</div><div class='add'>+Sun Dec 27 09:41:54 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install?(:local, :comm, :bin, :'bin-comm')):</div><div class='add'>+	  Makes it vim friendly.  __END__ in a heredoc is confusing with</div><div class='add'>+	  the script end for vim.</div><div class='add'>+</div><div class='add'>+Sun Dec 27 09:13:55 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/occur2.rb: have been broken. fixed for Ruby 1.9 feature.</div><div class='add'>+</div><div class='add'>+Thu Dec 24 16:32:30 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (eql?): Check the class of the compared object.</div><div class='add'>+	  Based on a patch by Peter McLain [ruby-core:27019]</div><div class='add'>+</div><div class='add'>+Thu Dec 24 15:20:03 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (match_at): follow enclen's change.</div><div class='add'>+</div><div class='add'>+Thu Dec 24 12:08:00 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (marshal_dump/load): dump &amp; load instance variables</div><div class='add'>+	  by default [ruby-core:24211]</div><div class='add'>+</div><div class='add'>+Thu Dec 24 10:31:50 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/object.c (rb_obj_cmp): Default &lt;=&gt; operator returns 0 if</div><div class='add'>+	  objects are == [ruby-core:24063]</div><div class='add'>+</div><div class='add'>+Wed Dec 23 09:12:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb (CGIMultipartTest#_prepare):</div><div class='add'>+	  always must be binary mode.  c.f. Bug#2341</div><div class='add'>+</div><div class='add'>+Thu Dec 10 09:20:58 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): undef Encoding.new because</div><div class='add'>+	  a class which is rb_undef_alloc-func-ed can't call new method.</div><div class='add'>+	  [ruby-dev:39862]</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): undef RubyVM.new and RubyVM::Env.new.</div><div class='add'>+</div><div class='add'>+Mon Dec 21 17:51:44 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (optimize_node_left): include equal on the condition of for-loop.</div><div class='add'>+	  This bug also affects original Oniguruma. [ruby-core:27247]</div><div class='add'>+</div><div class='add'>+Mon Dec 21 10:03:33 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (print_enc_string): follow enclen's change.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_print_compiled_byte_code): ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_print_compiled_byte_code): change prototype.</div><div class='add'>+</div><div class='add'>+	* regint.c (onig_print_compiled_byte_code): comment out.</div><div class='add'>+</div><div class='add'>+Mon Dec 21 08:04:34 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: BasicObject#initialize accepts any number of arguments</div><div class='add'>+	  [ruby-core:27080]</div><div class='add'>+</div><div class='add'>+Mon Dec 21 02:45:46 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_iterate): remove SEGV (retry).</div><div class='add'>+</div><div class='add'>+Sun Dec 20 23:18:23 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_iterate): remove SEGV (use the original patch).</div><div class='add'>+	  [ruby-dev:39874]</div><div class='add'>+</div><div class='add'>+Sun Dec 20 21:26:05 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_iterate): pass current block when the argument bl_proc</div><div class='add'>+	  is NULL.  This behavior can be used to make enumerator faster</div><div class='add'>+	  [ruby-dev:39874]</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_each): pass current block directly instead</div><div class='add'>+	  of trampoline block (enumerator_each_i).</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_line, argf_each_byte, argf_each_char): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 19 14:59:30 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Kernel#gem): should make gem private.  a patch</div><div class='add'>+	  from Sho Hashimoto in [ruby-dev:39838].</div><div class='add'>+</div><div class='add'>+Sat Dec 19 14:57:17 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config): typo fixed.  a patch</div><div class='add'>+	  from Sho Hashimoto in [ruby-dev:39835].</div><div class='add'>+</div><div class='add'>+Sat Dec 19 11:06:48 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (each2,collect2,map2): Fix enumerator</div><div class='add'>+	  [ruby-core:27225]</div><div class='add'>+</div><div class='add'>+Sat Dec 19 09:58:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall): reset method_missing_reason before</div><div class='add'>+	  trying the call.  based on a patch from Yehuda Katz in</div><div class='add'>+	  [ruby-core:27219].</div><div class='add'>+</div><div class='add'>+Sat Dec 19 09:29:22 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Add checks that passed argument is Enumerable.</div><div class='add'>+	  [ruby-core:23844]</div><div class='add'>+</div><div class='add'>+Wed Dec 16 20:28:46 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: fix a typo in assert message.</div><div class='add'>+</div><div class='add'>+Wed Dec 16 16:57:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (httpd): try to convert port number to integer.</div><div class='add'>+</div><div class='add'>+Wed Dec 16 11:18:30 2009  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in(MINIRUBY): use "$BASERUBY" as a default ruby executable</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+Wed Dec 16 00:53:14 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): rescue more exceptions which is possible to</div><div class='add'>+	  occur by other process change the directory tree.</div><div class='add'>+</div><div class='add'>+Tue Dec 15 09:06:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): get rid of race condition.</div><div class='add'>+</div><div class='add'>+Mon Dec 14 22:33:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): rescue only ENOENT and EACCES for lstat.</div><div class='add'>+</div><div class='add'>+Mon Dec 14 21:49:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): narrow rescue region.</div><div class='add'>+</div><div class='add'>+Mon Dec 14 09:20:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): removed already unnecessary code.</div><div class='add'>+</div><div class='add'>+Sun Dec 13 23:48:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): sort directory entries.  [ruby-dev:39847]</div><div class='add'>+</div><div class='add'>+Sun Dec 13 20:55:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (invoke_ruby): call to_str for stdin_data to</div><div class='add'>+	  reject non-string.</div><div class='add'>+</div><div class='add'>+Sun Dec 13 20:26:57 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rb_parser_dump_tree): add prototype.</div><div class='add'>+</div><div class='add'>+Thu Dec 10 20:55:55 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h, transcode.c, tool/transcode-tblgen.rb: Added</div><div class='add'>+	  support for new transcoding instruction FUNsio (with Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+	* enc/trans/gb18030.trans: Significantly reduced GB18030 conversion</div><div class='add'>+	  table footprint using FUNsio and differences (with Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Minor name fix (from Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+Thu Dec 10 17:22:36 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (yield_under): yields self the same as 1.8.</div><div class='add'>+</div><div class='add'>+Thu Dec 10 15:49:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_mutex_reinitialize_atfork): release and</div><div class='add'>+	  re-acquire the lock at re-initialization.</div><div class='add'>+</div><div class='add'>+Thu Dec 10 12:56:02 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_replicate): add Encoding#replicate(name).</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_replicate_with_index): renamed from old</div><div class='add'>+	  enc_replicate.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_from_encoding_index): split from</div><div class='add'>+	  rb_enc_from_encoding.</div><div class='add'>+</div><div class='add'>+Thu Dec 10 09:15:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): CHAR_ESC_LEN should be 13.</div><div class='add'>+</div><div class='add'>+Thu Dec 10 01:12:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_pop_gen): pop dvars.  [ruby-dev:39861]</div><div class='add'>+</div><div class='add'>+Thu Dec 10 00:46:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.c (dump_node): fixed for long members.</div><div class='add'>+</div><div class='add'>+Wed Dec  9 22:57:04 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* node.c: node management added.  Currently, only pretty-dumper is</div><div class='add'>+	  implemented.  [ruby-dev:39853]</div><div class='add'>+</div><div class='add'>+	* ruby.c: --dump=parsetree and --dump=parsetree_with_comment options</div><div class='add'>+	  added.  This is just for debug or research purpose.  Note that the</div><div class='add'>+	  compatibility of these options are not supported at all.</div><div class='add'>+</div><div class='add'>+Wed Dec  9 09:50:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): fixed the case a fill size is a</div><div class='add'>+	  multiple of the length of the padding.  [ruby-dev:39856]</div><div class='add'>+</div><div class='add'>+Tue Dec  8 23:41:34 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: now recognize --with-*-{dir,include,lib} options</div><div class='add'>+	  and pass them to mkmf.</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: general conversion from ``/'' to ``\'' of</div><div class='add'>+	  configure_args is not necessary any longer.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: BASERUBY is used as command, so always need to</div><div class='add'>+	  convert ``/'' to ``\'' within it.</div><div class='add'>+</div><div class='add'>+Tue Dec  8 23:39:52 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq): suppress a warning on VC++ for x64.</div><div class='add'>+</div><div class='add'>+Tue Dec  8 16:19:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems: update to 1.3.5.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb (Gem::default_dir): removed a clause</div><div class='add'>+	  doing nothing.</div><div class='add'>+</div><div class='add'>+Tue Dec  8 03:50:24 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): use string form in unknown command error</div><div class='add'>+	  message.</div><div class='add'>+</div><div class='add'>+Mon Dec  7 14:11:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): reverted r26007.  [ruby-dev:39845]</div><div class='add'>+</div><div class='add'>+	* test/test_delegate.rb (test_marshal): moved from test_marshal.rb.</div><div class='add'>+</div><div class='add'>+Mon Dec  7 13:05:59 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): CVE-2009-4124.</div><div class='add'>+	  Fixes a bug reported by</div><div class='add'>+	  Emmanouel Kellinis &lt;Emmanouel.Kellinis AT kpmg.co.uk&gt;, KPMG London;</div><div class='add'>+	  Patch by nobu.</div><div class='add'>+</div><div class='add'>+Sun Dec  6 23:50:46 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: %l should be 1..12 instead of 0..12 [ruby-core:27072]</div><div class='add'>+</div><div class='add'>+Sun Dec  6 23:16:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find.find): reduce stat system call.</div><div class='add'>+</div><div class='add'>+Sun Dec  6 16:02:15 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb: escape filename of index.</div><div class='add'>+	  [ruby-dev:37768]</div><div class='add'>+</div><div class='add'>+Sun Dec  6 00:35:16 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): EXECUTABLE_EXTS moved from</div><div class='add'>+	  dln.c:dln_find_1().</div><div class='add'>+</div><div class='add'>+Sat Dec  5 15:35:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): dump instance variables when using</div><div class='add'>+	  marshal_dump.   [ruby-core:24211]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_count): added.</div><div class='add'>+</div><div class='add'>+Sat Dec  5 13:19:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: default ac_cv_prog_CC to CC.</div><div class='add'>+</div><div class='add'>+Sat Dec  5 10:18:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb (def_extend_command): fixed argument</div><div class='add'>+	  number for negative arity.</div><div class='add'>+</div><div class='add'>+Fri Dec  4 16:50:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (k_def): adjust the location of method definition to the</div><div class='add'>+	  line of def.  [Bug #2427]</div><div class='add'>+</div><div class='add'>+Fri Dec  4 19:05:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defined): should respect #respond_to_missing? as</div><div class='add'>+	  #respond_to? does.</div><div class='add'>+</div><div class='add'>+Fri Dec  4 15:50:18 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (yield_under): does not yield self, and passes blockptr</div><div class='add'>+	  instead of &amp;block to vm_cref_push().  [ruby-dev:39833]</div><div class='add'>+</div><div class='add'>+Fri Dec  4 15:15:43 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (num_exact): should not accept strings as operands, even</div><div class='add'>+	  though they respond to #to_r.  ideally, strict rational</div><div class='add'>+	  conversion should be done by a method like #to_rational, not #to_r.</div><div class='add'>+	  [ruby-core:23729]</div><div class='add'>+</div><div class='add'>+Fri Dec  4 13:10:23 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (ungetc): RDoc updated.  trunk allows</div><div class='add'>+	  pushing back behind the beginning of the pseudo stream.</div><div class='add'>+</div><div class='add'>+Fri Dec  4 03:10:38 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_cpath, iseq_compile_each): reverted</div><div class='add'>+	  constant/class variable lookup in instance_eval etc. to the</div><div class='add'>+	  behavior of 1.8.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_nesting): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def (putspecialobject, defineclass): ditto.</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_FL_CREF_PUSHED_BY_EVAL): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (VM_SPECIAL_OBJECT_CONST_BASE): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (yield_under, eval_under): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_cref_push, vm_get_const_base,</div><div class='add'>+	  vm_get_ev_const, vm_get_cvar_base): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 3 20:27:27 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/gb18030-tbl.rb: Fix omission of C1 region in code table</div><div class='add'>+	  (from Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added test for converting full range of</div><div class='add'>+	  Unicode codepoints from/to GB18030 (from Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+Wed Dec  2 23:51:28 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: initialize @hostname of SSLSocket to avoid</div><div class='add'>+	  warning at SSLSocket#connect.</div><div class='add'>+</div><div class='add'>+Tue Dec  1 18:01:43 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest_extend.rb: added tests for digest framework.</div><div class='add'>+</div><div class='add'>+Tue Dec  1 12:01:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_push_gen, dyna_pop_gen): no needs to save both of</div><div class='add'>+	  args and vars.  [ruby-core:26961]</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_push_gen): use rb_node_newnode() for ripper.</div><div class='add'>+	  [ruby-core:26961]</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_push_gen, dyna_pop_gen): adjust local vtable level</div><div class='add'>+	  for the case of syntax errors in method name or argument inside</div><div class='add'>+	  do block.   [ruby-core:26961]</div><div class='add'>+</div><div class='add'>+Mon Nov 30 16:57:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (command_output): $makeflags are already quoted.</div><div class='add'>+</div><div class='add'>+Mon Nov 30 16:54:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (EXECUTABLE_EXTS): moved from</div><div class='add'>+	  dln.c:dln_find_1().</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (def find_executable0): use EXECUTABLE_EXTS, not</div><div class='add'>+	  only EXEEXT.  [ruby-core:26821]</div><div class='add'>+</div><div class='add'>+Mon Nov 30 11:00:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): suppress an extra error message after</div><div class='add'>+	  numeric literal without digits.  based on a patch from ujihisa .</div><div class='add'>+	  in [ruby-dev:39811].  [ruby-dev:39798]</div><div class='add'>+</div><div class='add'>+Sun Nov 29 16:56:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall_failed): pass ID.  [ruby-core:26934]</div><div class='add'>+</div><div class='add'>+Sun Nov 29 06:37:53 2009  Aaron Patterson  &lt;tenderlove@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/formatters/default.rb (write_attribute): fix an</div><div class='add'>+	  exception when printing a document when duplicate namespaced</div><div class='add'>+	  attributes exist. Thanks, Alexey Froloff [ruby-core:26837]</div><div class='add'>+</div><div class='add'>+Sat Nov 28 09:05:53 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall_failed): should rescue user raised</div><div class='add'>+	  NoMethodError.  rescue all NoMethodError if receiver does not</div><div class='add'>+	  respond to the method name.  [ruby-dev:39796]</div><div class='add'>+</div><div class='add'>+Thu Nov 26 21:14:30 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb (@unify): fix the detection if math</div><div class='add'>+	  loaded. This makes test_complex.rb work fine with the previous</div><div class='add'>+	  commit.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb (@unify): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 21:13:36 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_mathn.rb (TestMathn): new test case.</div><div class='add'>+	  test for r25067.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 21:11:23 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_config.rb (OpenSSL::TestConfig): new test case.</div><div class='add'>+	  test for r25017.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 21:08:54 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb (TestRange#test_comparison_when_recursive):</div><div class='add'>+	  test for r25010.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_struct.rb (TestStruct#test_comparison_when_recursive):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 20:18:02 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.set_home): must dup before force_encoding</div><div class='add'>+	  and must force_encoding before gsub.</div><div class='add'>+	  cf. Yen Sign problem of SJIS [ruby-core:26910]</div><div class='add'>+</div><div class='add'>+Thu Nov 26 17:54:37 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{configure.bat, setup.mak, Makefile.sub}: add new configure</div><div class='add'>+	  option ``--with-ntver''.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 11:42:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb: use $INCFLAGS to add -I option.  [Bug#2387]</div><div class='add'>+</div><div class='add'>+Thu Nov 26 07:17:58 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (mark_dump_arg): mark str.  see also [ruby-dev:39735]</div><div class='add'>+</div><div class='add'>+Thu Nov 26 00:05:58 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest_extend.rb: Added tests for current digest</div><div class='add'>+	  framework.</div><div class='add'>+</div><div class='add'>+Wed Nov 25 20:46:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry): refine error message.</div><div class='add'>+</div><div class='add'>+Wed Nov 25 19:29:05 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_method_unimpl): Do not</div><div class='add'>+	  call rb_inspect() on an object that does not implement necessary</div><div class='add'>+	  methods; reported by NaHi.</div><div class='add'>+</div><div class='add'>+Wed Nov 25 19:30:30 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: Added a check for an internal error</div><div class='add'>+	  (with Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+Tue Nov 24 22:57:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil.invoke_ruby): raise Timeout::Error</div><div class='add'>+	  instead of flunk.  reported by Yusuke Endoh.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 22:31:44 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct, thread_memsize): fix argument type to make</div><div class='add'>+	  RUBY_MARK_FREE_DEBUG available.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 21:25:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: include errno.h at beginning.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 20:11:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: %Y format a year with 4 digits at least.</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: format a year with 4 digits at least.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 20:05:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* defs/known_errors.def: more errors.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 20:01:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_bug_errno): declared.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_strerrno): declaration removed.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_strerrno): make it static.  return NULL for unknown</div><div class='add'>+	  errors.</div><div class='add'>+	  (rb_bug_errno): defined.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: use rb_bug_errno.</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal): use rb_bug_errno.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 10:17:38 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_path_convert): fix fs_encoding is not assign.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 10:00:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_strerrno): constified.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 09:49:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_strerrno): return "UNKNOWNERROR" for non-zero unknown</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+Tue Nov 24 09:18:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_strerrno): declared.</div><div class='add'>+</div><div class='add'>+	* template/known_errors.inc.tmpl: generate defined_error() and</div><div class='add'>+	  undefined_error() instead of set_syserr.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_syserr): define defined_error() and undefined_error()</div><div class='add'>+	  to follow the above change.</div><div class='add'>+	  (rb_strerrno): defined.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: show error message and errno macro name with</div><div class='add'>+	  rb_bug.</div><div class='add'>+</div><div class='add'>+Mon Nov 23 16:06:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (RUBY_STACK_MIN, RUBY_STACK_SPACE): delay for</div><div class='add'>+	  platforms where PTHREAD_STACK_MIN is not compile time constant.</div><div class='add'>+	  [ruby-dev:39751]</div><div class='add'>+</div><div class='add'>+Mon Nov 23 11:26:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): removed duplication.</div><div class='add'>+</div><div class='add'>+Mon Nov 23 04:12:00 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (fun_so_universal_newline): generate \n</div><div class='add'>+	  after \r\n detection instead of just after \r.</div><div class='add'>+	  [ruby-list:45988] [ruby-core:25881] [ruby-core:26788]</div><div class='add'>+</div><div class='add'>+Sat Nov 21 18:48:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry): show flags and klass value in</div><div class='add'>+	  not implemented error message.</div><div class='add'>+</div><div class='add'>+Sat Nov 21 16:38:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): use normal object as the buffer so</div><div class='add'>+	  that no hidden object is exposed to ruby-level.  [ruby-dev:39744]</div><div class='add'>+</div><div class='add'>+Sat Nov 21 15:58:43 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): fix: false negative invalid byte sequence</div><div class='add'>+	  on reading from pipes. [ruby-dev:39743]</div><div class='add'>+	  fix: assign the variable 'pos' as relative value from recent pos.</div><div class='add'>+</div><div class='add'>+Sat Nov 21 14:44:16 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_path_convert): delay getting UTF8-MAC encoding</div><div class='add'>+	  while really needed. [ruby-core:26807]</div><div class='add'>+</div><div class='add'>+Fri Nov 20 21:16:54 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry): avoid trigraph.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 23:17:06 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (putbinaryfile): use APPE for resume.</div><div class='add'>+	  Thanks, Tomoyuki Chikanaga.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 22:50:05 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (flag_list): untaint strings to intern in the safe</div><div class='add'>+	  level 1.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (max_flag_count=): new methods to set the max</div><div class='add'>+	  number of flags interned to symbols.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 20:43:39 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getnameinfo.c: need to include extconf.h for HAVE_* macros.</div><div class='add'>+	  reported by Kenta Murata &lt;mrkn AT mrkn.jp&gt; via IRC.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 17:00:59 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: nmake execute the file named echo if it exists</div><div class='add'>+	  in the PATH.  reported by Kenta Murata &lt;mrkn AT mrkn.jp&gt; via IRC.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 02:50:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry): show the type of the hidden</div><div class='add'>+	  object.</div><div class='add'>+	  (rb_type_str): new function for above.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 00:47:09 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (MORE_CHAR_SUSPENDED): renamed from MORE_CHAR_CBUF_FULL.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 22:00:13 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fill_cbuf): extracted from more_char.</div><div class='add'>+	  (io_shift_cbuf): fix memmove condition.</div><div class='add'>+	  (read_all): use fill_cbuf directly to avoid ECONV_AFTER_OUTPUT.</div><div class='add'>+	  [ruby-dev:39708]</div><div class='add'>+</div><div class='add'>+Wed Nov 18 18:25:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork_internal): reinitialize global lock</div><div class='add'>+	  at fork to get rid of deadlock.  based on the patch from Hongli</div><div class='add'>+	  Lai in [ruby-core:26783].  [ruby-core:23572]</div><div class='add'>+</div><div class='add'>+Wed Nov 18 17:48:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (terminate_atfork_i): all mutex locks by other threads</div><div class='add'>+	  have been abandoned at fork.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 15:27:20 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_path_convert): delay getting filesystem encoding</div><div class='add'>+	  while really needed.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 12:33:42 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_set_default_encoding): reset filesystem</div><div class='add'>+	  encoding because on resetting default_external because</div><div class='add'>+	  Unix's filesystem encoding depends on default_external.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_set_filesystem_encoding): added.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): don't call rb_filesystem_encoding</div><div class='add'>+	  because filesystem encoding is reset when default_external</div><div class='add'>+	  is reset.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 11:57:32 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_gamma): fix incorrect comparison expression.</div><div class='add'>+	  see also [ruby-dev:39709] [Bug #2381]</div><div class='add'>+</div><div class='add'>+Wed Nov 18 11:37:05 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): move path encoding conversion</div><div class='add'>+	  for filesystem encoding of Mac OS X.</div><div class='add'>+</div><div class='add'>+	* file.c (file_path_convert): added for convert encoding</div><div class='add'>+	  of file path.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path_check): add file_path_convert.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 10:17:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_nth): no count_utf8_lead_bytes_with_word</div><div class='add'>+	  optimization for short string.  [ruby-core:26787]</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_offset): str_utf8_nth never return NULL.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 10:12:34 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_undef): should raise TypeError if klass is nil.</div><div class='add'>+	  1.instance_eval { undef to_s } causes SEGV before this fix.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_undef.rb: new tests for undef.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 08:41:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_nth): fixed overrun.  [ruby-core:26787]</div><div class='add'>+</div><div class='add'>+Wed Nov 18 07:51:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (parse_mode_enc): fix invalid access.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 23:50:06 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_alias): should raise TypeError if klass is nil.</div><div class='add'>+	  1.instance_eval { alias to_string to_s } causes SEGV before this</div><div class='add'>+	  fix.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb (test_special_const_alias): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 17:53:53 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/big5.c, enc/trans/big5.trans, enc/trans/big5-uao-tbl.rb,</div><div class='add'>+	  test/ruby/test-transcode.rb: Added Encoding 'Big5-UAO' and transcoding</div><div class='add'>+	  for it (from Tatsuya Mizuno) (see Bug #1784)</div><div class='add'>+</div><div class='add'>+Tue Nov 17 16:26:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_case_dispatch): runtime value cannot be used as</div><div class='add'>+	  an element initializer.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (opt_case_dispatch_i): gets rid of type-punning</div><div class='add'>+	  calls.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 15:51:53 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): protected singleton methods of</div><div class='add'>+	  an object should not be able to called from other instances of the</div><div class='add'>+	  class of the object.  [ruby-core:26761]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_method_call_status): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_protected_singleton_method): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 14:03:53 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): shift read buffer if exception occurred.</div><div class='add'>+	  pointed out in [ruby-dev:39702].</div><div class='add'>+</div><div class='add'>+Mon Nov 16 07:59:38 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): don't call io_shift_cbuf until buffering enough or</div><div class='add'>+	  econv_finished.   [ruby-dev:39696]</div><div class='add'>+</div><div class='add'>+	* io.c (more_char): don't call clear_readconv to read buffer after</div><div class='add'>+	  econv_finished.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline, rb_io_each_codepoint): clear readconv when done.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 01:58:08 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_classext_t): annotate @internal.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 01:35:34 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): use default external encoding</div><div class='add'>+	  instead of locale encoding in Unix.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): delay filesystem encoding</div><div class='add'>+	  initialization until default external encoding initialization.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 00:06:26 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func): delete locking_mutex when thread</div><div class='add'>+	  object become dummy because of fork.  [ruby-core:26744]</div><div class='add'>+	  [ruby-core:26745]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sat Nov 14 21:54:46 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_init_copy): fix memory leak of Class#dup.</div><div class='add'>+	  [ruby-dev:39687]</div><div class='add'>+</div><div class='add'>+Sat Nov 14 17:09:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-opt-dir): ignore and suppress a warning.</div><div class='add'>+	  [ruby-dev:39684]</div><div class='add'>+</div><div class='add'>+Sat Nov 14 16:43:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): get rid of crash in Solaris 8 and 10.</div><div class='add'>+	  [ruby-core:26668]</div><div class='add'>+</div><div class='add'>+Sat Nov 14 09:16:54 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): Fix comparisons</div><div class='add'>+	  [ruby-core:26646]</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (class): Fix and improve tests.</div><div class='add'>+</div><div class='add'>+Sat Nov 14 04:07:06 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb (TkVariable::coerce): fix bug on a</div><div class='add'>+	  numeric value.</div><div class='add'>+</div><div class='add'>+Sat Nov 14 03:35:29 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: TkVariable#*(other) and /(other) have a</div><div class='add'>+	  bug on handling of the "other" value.</div><div class='add'>+</div><div class='add'>+Fri Nov 13 21:18:15 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_zlib_adler32): fix typo.</div><div class='add'>+</div><div class='add'>+Fri Nov 13 16:22:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): see first_func, not first_proc,</div><div class='add'>+	  to decide which to use.</div><div class='add'>+</div><div class='add'>+	* gc.c (vm_xrealloc): use the given object space.</div><div class='add'>+</div><div class='add'>+Fri Nov 13 00:46:24 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb (CGI::pretty): fix the overflow bug</div><div class='add'>+	  if stripped string.[ruby-dev:37975]</div><div class='add'>+</div><div class='add'>+Thu Nov 12 23:08:11 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (read_from_cmdline): this code is better.</div><div class='add'>+	  [ruby-core:25991]</div><div class='add'>+</div><div class='add'>+Thu Nov 12 22:55:42 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: don't use simple delegate.</div><div class='add'>+	  because SimpleDelegate behavior changed.</div><div class='add'>+</div><div class='add'>+Thu Nov 12 14:33:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (thread_errno): CreateThread does not set errno.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): moved failure handling from</div><div class='add'>+	  native_thread_core().</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_create): constified.</div><div class='add'>+</div><div class='add'>+Thu Nov 12 10:08:56 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .document: remove documents not in rdoc format until</div><div class='add'>+	  rdoc supports non rdoc files. [ruby-core:26459]</div><div class='add'>+</div><div class='add'>+Thu Nov 12 06:42:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#initialize): option hash may not be</div><div class='add'>+	  given.  [ruby-core:26681]</div><div class='add'>+</div><div class='add'>+Thu Nov 12 01:29:15 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (yielder_yield_push): Yielder#&lt;&lt; should return self.</div><div class='add'>+	  [ruby-dev:39660]</div><div class='add'>+</div><div class='add'>+Wed Nov 11 19:17:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#initialize): merge mode option.</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir::Tmpname#create): splat options.</div><div class='add'>+</div><div class='add'>+Wed Nov 11 12:54:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): use ruby_strdup().</div><div class='add'>+</div><div class='add'>+Wed Nov 11 12:19:27 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): also set CRT workarea.  ref [ruby-core:25010]</div><div class='add'>+</div><div class='add'>+Wed Nov 11 09:36:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object, r_object0): use RHASH_IFNONE but not ifnone</div><div class='add'>+	  directly.</div><div class='add'>+</div><div class='add'>+Wed Nov 11 08:32:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (blocking_region_begin): define before BLOCKING_REGION.</div><div class='add'>+	  reported by Luis Lavena.  [ruby-core:26670]</div><div class='add'>+</div><div class='add'>+Wed Nov 11 08:22:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): use dval() consistently.</div><div class='add'>+</div><div class='add'>+Wed Nov 11 02:14:48 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_matrix.rb (TestMatrix#test_rank):</div><div class='add'>+	  added a test method for r24969.</div><div class='add'>+</div><div class='add'>+Tue Nov 10 08:23:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_exec, rb_f_system, rb_f_spawn): mentioned about</div><div class='add'>+	  the shell to be used when the command line is single string.</div><div class='add'>+	  See [ruby-core:26652]</div><div class='add'>+</div><div class='add'>+Mon Nov  9 20:15:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_gc_save_machine_context): don't save the stack pointer</div><div class='add'>+	  in this function.</div><div class='add'>+	  (RB_GC_SAVE_MACHINE_CONTEXT): call rb_gc_save_machine_context and</div><div class='add'>+	  save the stack pointer at caller side.</div><div class='add'>+	  (rb_thread_schedule_rec): use RB_GC_SAVE_MACHINE_CONTEXT instead of</div><div class='add'>+	  rb_gc_save_machine_context.</div><div class='add'>+	  (blocking_region_begin): changed to a macro.  use</div><div class='add'>+	  RB_GC_SAVE_MACHINE_CONTEXT instead of rb_gc_save_machine_context.</div><div class='add'>+	  [ruby-dev:39659]</div><div class='add'>+</div><div class='add'>+Mon Nov  9 11:28:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): add -Wno-long-long.</div><div class='add'>+</div><div class='add'>+Sun Nov  8 18:13:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c: use RHASH_IFNONE but not ifnone directly.</div><div class='add'>+</div><div class='add'>+Sat Nov  7 21:02:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::ObjectMixin#pretty_print): use to_s regardless of</div><div class='add'>+	  instance variables.</div><div class='add'>+</div><div class='add'>+Sat Nov  7 20:59:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_push_frame): get rid of out-of-bounds</div><div class='add'>+	  access.</div><div class='add'>+</div><div class='add'>+Sat Nov  7 12:41:19 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (VM_CALLEE_SETUP_ARG): revert r25521.</div><div class='add'>+	   [ruby-core:26427] [ruby-core:26447]</div><div class='add'>+</div><div class='add'>+Fri Nov  6 18:33:47 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_push_frame): add CHECK_STACK_OVERFLOW.</div><div class='add'>+	  [ruby-dev:39592]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): add 1 level backtrace for sysstack_error</div><div class='add'>+	  without calling any method to prevent further stack overflow.</div><div class='add'>+</div><div class='add'>+	* eval.c (make_exception): don't call #exception for</div><div class='add'>+	  sysstack_error to prevent stack overflow.</div><div class='add'>+</div><div class='add'>+	* proc.c (Init_Proc): don't freeze sysstack_error.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): move reentrant check after exception</div><div class='add'>+	  preparation.</div><div class='add'>+</div><div class='add'>+Fri Nov  6 17:13:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_header): split the line by tabs.</div><div class='add'>+</div><div class='add'>+Fri Nov  6 12:02:32 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIDLNOBJ): set default as dmydln.o.</div><div class='add'>+	  Now LLVM clang seems to be able to build Ruby 1.9.</div><div class='add'>+</div><div class='add'>+Fri Nov  6 09:29:32 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): add fallback to</div><div class='add'>+	  ASCII-8BIT on Windows.</div><div class='add'>+</div><div class='add'>+Fri Nov  6 07:29:07 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_case.rb: merged r25658 from ruby_1_8.</div><div class='add'>+</div><div class='add'>+Thu Nov  5 12:27:07 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.user_home): force_encoding(</div><div class='add'>+	  Encoding.find('filesystem')). [ruby-core:26525]</div><div class='add'>+</div><div class='add'>+Thu Nov  5 07:47:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (BEGIN): now local_push and local_pop are necessary in</div><div class='add'>+	  ripper.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 21:39:10 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .document: add some README files to default rdoc's of trunk.</div><div class='add'>+	  patched by Roger Pack [ruby-core:26459]</div><div class='add'>+</div><div class='add'>+Wed Nov  4 16:06:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (SIZEOF_ST_INDEX_T): moved from st.c for</div><div class='add'>+	  Init_RandomSeed().</div><div class='add'>+</div><div class='add'>+Wed Nov  4 15:50:16 2009  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2CHR): prefix __extension__ for</div><div class='add'>+	  braced-groups within expressions.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 15:46:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_{internal,external}_encoding_once): fixed typos.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 12:49:18 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): Fix scope issue [ruby-core:26069]</div><div class='add'>+</div><div class='add'>+Wed Nov  4 08:50:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_hash_start): moved from string.c.</div><div class='add'>+</div><div class='add'>+	* random.c (Init_RandomSeed2): register global address before set.</div><div class='add'>+</div><div class='add'>+	* random.c (Init_RandomSeed): initialize hashseed.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 08:26:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_check): moved other checks from GetDIR.</div><div class='add'>+</div><div class='add'>+	* dir.c (GetDIR): fixed a variable name.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 08:19:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_start): fixed unconditional test.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 02:08:14 2009  Aaron Patterson  &lt;tenderlove@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_eql, rb_dlptr_cmp): DL::CPtr#== and DL::CPtr#&lt;=&gt;</div><div class='add'>+	  should not raise an exception when compared to a different object.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 00:05:36 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): make next object before yield its block.</div><div class='add'>+	  fix: can modify original begin string of String#upto.</div><div class='add'>+	  [ruby-dev:26384] [ruby-dev:39626]</div><div class='add'>+</div><div class='add'>+Mon Nov  2 18:33:21 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_free): don't free unallocated local_storage. see #1325.</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_init): clear local_storage not to use current thread's.</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_t_alloc, root_fiber_alloc): link itself always for</div><div class='add'>+	  a case that fiber_link_remove() is called before fiber_link_join().</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_init): clear cont-&gt;vm_stack and th-&gt;stack before</div><div class='add'>+	  root_fiber_alloc() in rb_fiber_current().</div><div class='add'>+</div><div class='add'>+Mon Nov  2 14:52:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exc_raise, rb_exc_fatal, rb_make_exception):</div><div class='add'>+	  suppressed shorten-64-to-32 warnings.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 14:43:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_stop_timer_thread): delay joining timer</div><div class='add'>+	  thread after unlocking mutex.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 13:31:14 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_stop_timer_thread): need to join timer thread</div><div class='add'>+	  only when really stopping it.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 12:55:50 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_{pthread,win32}.c (native_stop_timer_thread): join the thread</div><div class='add'>+	  here.</div><div class='add'>+</div><div class='add'>+	* thread_{pthread,win32}.c (native_reset_timer_thread): new function.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop_timer_thread, rb_thread_reset_timer_thread):</div><div class='add'>+	  call above function instead of simply setting 0.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 11:22:19 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/registry.rb: update rdoc. [ruby-core:26022]</div><div class='add'>+</div><div class='add'>+Sun Nov  1 20:16:03 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: fixed rdoc. [ruby-core:26457]</div><div class='add'>+</div><div class='add'>+Sun Nov  1 16:24:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_stack_grow_dir): fix for universal binary.</div><div class='add'>+</div><div class='add'>+	* configure.in (sitehdrdir, vendorhdrdir): fixed default values.</div><div class='add'>+</div><div class='add'>+Sun Nov  1 13:31:16 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io, recvmsg, sendmsg): pass handle</div><div class='add'>+	  instead of pointer to CloseHandle().</div><div class='add'>+</div><div class='add'>+Sun Nov  1 13:11:27 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_ip_address_list): use FreeLibrary() to</div><div class='add'>+	  free HMODULE.</div><div class='add'>+</div><div class='add'>+Sun Nov  1 08:17:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GET_STACK_BOUNDS): refactored common code.  based on a</div><div class='add'>+	  patch from Suraj N. Kurapati &lt;sunaku AT gmail.com&gt; in</div><div class='add'>+	  [ruby-core:26443].</div><div class='add'>+</div><div class='add'>+Sat Oct 31 23:44:35 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count): remove optimization using #size.</div><div class='add'>+	  revert r25560.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_funcall_no_recursive): remove method.</div><div class='add'>+</div><div class='add'>+Sat Oct 31 23:28:49 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall): logic updated according to</div><div class='add'>+	  [ruby-dev:39594].  search method entry, call if it exists;</div><div class='add'>+	  otherwise check method_missing, call if it was overridden,</div><div class='add'>+	  protecting exceptions; if NoMethodError happens, check method</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): use idMethodMissing.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry): typo fixed.</div><div class='add'>+</div><div class='add'>+Sat Oct 31 17:19:28 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPResponse#each_response_header):</div><div class='add'>+	  cosmetic: '?\ ' -&gt; '?\s'</div><div class='add'>+</div><div class='add'>+Fri Oct 30 22:09:47 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPResponse#each_response_header):</div><div class='add'>+	  accept multiline message header of HTTP response.  see #1796.</div><div class='add'>+	  cf. RFC 2616 '4.2 Message Header'.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_httpresponse.rb: added.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 18:54:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): detect empty range and raise exception.</div><div class='add'>+	   [ruby-dev:39108]</div><div class='add'>+</div><div class='add'>+Fri Oct 30 17:01:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (enum call_type): get rid of last comma.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0, vm_call_super, rb_f_send, rb_f_public_send):</div><div class='add'>+	  fixed call_type.  [ruby-dev:39581]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_search_method_entry, rb_method_call_status): split</div><div class='add'>+	  from rb_call0().</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_check_funcall): get rid of raising exceptions and</div><div class='add'>+	  hiding further exceptions.  [ruby-dev:39584]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_funcall_no_recursive): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 13:36:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): reverted r25566, and added</div><div class='add'>+	  description that no exception is allowed inside `func', instead.</div><div class='add'>+	  see [ruby-dev:39582]</div><div class='add'>+</div><div class='add'>+Fri Oct 30 13:13:16 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32.c (recvmsg, sendmsg, link): shouldn't raise ruby's exceptions</div><div class='add'>+	  in the functions expected as system API.  see [ruby-dev:39579] and</div><div class='add'>+	  [ruby-dev:39582]</div><div class='add'>+</div><div class='add'>+Fri Oct 30 12:59:20 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): standard C doesn't accept</div><div class='add'>+	  preprocessing directive within macro expansion.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 10:55:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): must ensure to unlock GVL.</div><div class='add'>+	  [ruby-dev:39579]</div><div class='add'>+</div><div class='add'>+Fri Oct 30 04:47:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RSTRING_END): trivial optimization.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): trivial optimization.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 02:11:36 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count): call #size using rb_funcall_no_recursive()</div><div class='add'>+	  to prevent infinite recursive calls.  [ruby-core:24794]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_funcall_no_recursive): utility function to check</div><div class='add'>+	  direct recursive call.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_check_funcall): move from eval.c. [refactoring]</div><div class='add'>+</div><div class='add'>+Thu Oct 29 18:37:02 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): revert previous commit.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 29 15:35:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): set locale and filesystem encindex.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): move setting func of filesystem</div><div class='add'>+	  encoding to Init_Encoding.</div><div class='add'>+</div><div class='add'>+Thu Oct 29 15:43:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_name_err_mesg_new): added prototype.</div><div class='add'>+</div><div class='add'>+Thu Oct 29 13:53:18 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_to_ary): do not use #respond_to? to detect</div><div class='add'>+	  to_ary.  Just call.  [ruby-core:23738]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_check_funcall): new function with method existence</div><div class='add'>+	  check.  returns Qundef when the method does not exist.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_rewind): just call method, using</div><div class='add'>+	  rb_check_funcall().  [ruby-core:23738]</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_err_mesg_new): export function.</div><div class='add'>+</div><div class='add'>+	* eval.c (make_exception): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (pop_last_hash): return early when the last argument is nil.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): treat T_STRING specially for small</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (raise_method_missing): skip method call if possible</div><div class='add'>+	  using rb_method_basic_definition_p().</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (method_missing): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_debug): test</div><div class='add'>+	  suites changed to ignore exceptions caused by just-call policy.</div><div class='add'>+</div><div class='add'>+Thu Oct 29 04:41:44 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): call rb_filesystem_encoding().</div><div class='add'>+</div><div class='add'>+Thu Oct 29 04:40:36 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): rb_default_rs should be US-ASCII.</div><div class='add'>+</div><div class='add'>+Thu Oct 29 01:22:01 2009  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb : Compilation failure on AIX.</div><div class='add'>+	  ss_len (a member of struct sockaddr_storage) has preceding __,</div><div class='add'>+	  but ss_family does not have it from AIX 5.2.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 16:32:49 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (get_filesystem_encoding): removed.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encindex): added.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): added.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encindex): add an alias 'filesystem'.</div><div class='add'>+	  [ruby-dev:39574]</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): add rdoc about special aliases.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.set_home): use Encoding.find('filesystem').</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.set_paths): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 15:02:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.set_home):</div><div class='add'>+	  force_encoding(Encoding.filesystem_encoding)</div><div class='add'>+	  [ruby-core:25959]</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.set_paths): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 14:24:45 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (get_filesystem_encoding):</div><div class='add'>+	  add Encoding.filesystem_encoding [ruby-dev:39546]</div><div class='add'>+	  also see [ruby-core:25959]</div><div class='add'>+</div><div class='add'>+Wed Oct 28 14:51:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_each_group): fixed typo.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 13:02:10 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#initialize): sets @binary to true.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#binary=): sends a TYPE command only when</div><div class='add'>+	  logged in. [ruby-dev:39548]</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#send_type_command): new private method</div><div class='add'>+	  which sends an appropriate TYPE command according to the value of</div><div class='add'>+	  @binary.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#login): calls send_type_command instead</div><div class='add'>+	  of binary=.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 12:26:51 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_setup_method): should push call frame before</div><div class='add'>+	  raising exception, to put the Ruby-defined method name in the</div><div class='add'>+	  error message.  [ruby-core:26333]</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (VM_CALLEE_SETUP_ARG): macro modified.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_args): modified for new</div><div class='add'>+	  VM_CALLEE_SETUP_ARG macro.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 22:46:44 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#initialize): @sock = nil.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#binary=): send command only when</div><div class='add'>+	  socket is open. [ruby-dev:39548]</div><div class='add'>+</div><div class='add'>+Tue Oct 27 22:22:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (Init_stringio): added read_nonblock and</div><div class='add'>+	  write_nonblock aliases.  [ruby-dev:39551]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_data_type): typed.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 21:20:35 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: add TkVariable#+@ and -@ method.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 16:36:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (chopped_length): get rid of unexpected exception.</div><div class='add'>+	  see [ruby-core:26336].</div><div class='add'>+</div><div class='add'>+Tue Oct 27 15:53:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (SET_MACHINE_STACK_END): use __i386.</div><div class='add'>+	  Some compiler may not define __i386__.</div><div class='add'>+	  Solaris 64-bit Developer's Guide:</div><div class='add'>+	  http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&amp;a=view</div><div class='add'>+</div><div class='add'>+Tue Oct 27 15:44:48 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (getbinaryfile, list): call to_s to convert</div><div class='add'>+	  a Pathname instance into a string.  [ruby-core:26237]</div><div class='add'>+</div><div class='add'>+Tue Oct 27 12:30:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (SET_MACHINE_STACK_END): use __i386__ instead of __i386,</div><div class='add'>+	  and explicit size qualifiers.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 09:40:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (SET_MACHINE_STACK_END): add x86_64 version by nobu.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 09:27:59 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.c (DECL_SC_REG): use __clang__.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 08:56:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: reverted r25443 because build_os is used in mkmf.rb</div><div class='add'>+	  on some platforms.  [ruby-core:26332]</div><div class='add'>+</div><div class='add'>+Tue Oct 27 08:01:57 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_filename): add Ripper#filename. [ruby-dev:37856]</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_filter.rb: add more tests.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 07:53:25 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect_with_gvl): do not garbage_collect when</div><div class='add'>+	  dont_gc flag turned on.  [ruby-core:26327]</div><div class='add'>+</div><div class='add'>+Tue Oct 27 07:38:39 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c,stubs.c: remove errors or warnings when compiled</div><div class='add'>+	  with old ruby 1.8.x.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 05:56:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block_from_c): return Qnil when its iseq is</div><div class='add'>+	  SPECIAL CONST. [ruby-core:26335]</div><div class='add'>+</div><div class='add'>+Tue Oct 27 05:11:49 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.c (DECL_SC_REG): check defined(__asm__) before use it.</div><div class='add'>+	  LLVM/clang defines __GNUC__ but doesn't have __asm__.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 03:45:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): added RUBY_SITEARCH to use</div><div class='add'>+	  different name from RUBY_ARCH.  [ruby-core:26324]</div><div class='add'>+</div><div class='add'>+Mon Oct 26 20:04:13 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_cmp): Array#&lt;=&gt; returns nil when comparison fails</div><div class='add'>+	  [ruby-core:26316]</div><div class='add'>+</div><div class='add'>+Mon Oct 26 18:37:57 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (default_proc_arity_check): new support function.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_initialize): should do arity check as #default_proc=.</div><div class='add'>+	  [ruby-core:26281]</div><div class='add'>+</div><div class='add'>+Mon Oct 26 13:24:17 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: typo fixed.</div><div class='add'>+</div><div class='add'>+Mon Oct 26 12:34:08 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): -T and -W descriptions updated.  see</div><div class='add'>+	  [ruby-dev:39539]</div><div class='add'>+</div><div class='add'>+	* man/ruby.1: ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 26 12:06:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): adjust stdio file position after direct write on</div><div class='add'>+	  BSDish platforms.   [ruby-core:26300]</div><div class='add'>+</div><div class='add'>+Sun Oct 25 15:44:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (dlhandle_sym): fixed an invalid local variable</div><div class='add'>+	  declaration.</div><div class='add'>+</div><div class='add'>+Sun Oct 25 13:33:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_cntl): F_DUPFD is platform dependent.</div><div class='add'>+</div><div class='add'>+Sun Oct 25 10:19:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_close): fixed an invalid local</div><div class='add'>+	  variable declaration.</div><div class='add'>+</div><div class='add'>+Sun Oct 25 05:44:34 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (**): Optimization (up to 45% faster)</div><div class='add'>+</div><div class='add'>+Sat Oct 24 14:28:40 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_set_default_proc): checks arity of default_proc</div><div class='add'>+	  of a Hash.  [ruby-core:26087]</div><div class='add'>+</div><div class='add'>+Sat Oct 24 13:38:45 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_cmp): defines Object#&lt;=&gt;.  [ruby-core:24063]</div><div class='add'>+</div><div class='add'>+Sat Oct 24 09:51:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_flat_map): new method that concatenates the values</div><div class='add'>+	  from given block.  also provides alias #collect_concat.</div><div class='add'>+</div><div class='add'>+Sat Oct 24 00:36:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_cntl): update max file descriptor by the result of</div><div class='add'>+	  fcntl(F_DUPFD).</div><div class='add'>+</div><div class='add'>+Fri Oct 23 16:31:14 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_new): move class check to rb_check_inheritable().</div><div class='add'>+</div><div class='add'>+	* class.c (rb_check_inheritable): should not allow subclass of</div><div class='add'>+	  class Class.  [ruby-core:26225]</div><div class='add'>+</div><div class='add'>+Fri Oct 23 14:25:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (target, target_alias): replace with real cpu.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: build* are not needed in rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): use -Wextra only when</div><div class='add'>+	  -Wno-missing-field-initializers is available.</div><div class='add'>+</div><div class='add'>+	* configure.in (optflags): removed -fomit-frame-pointer by default.</div><div class='add'>+</div><div class='add'>+Fri Oct 23 09:12:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname::SAME_PATHS): FNM_SYSCASE is always</div><div class='add'>+	  non-nil.</div><div class='add'>+</div><div class='add'>+Fri Oct 23 07:32:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, Makefile.in, win32/Makefile.sub (XRUBY): runnable</div><div class='add'>+	  ruby without current libraries.</div><div class='add'>+</div><div class='add'>+	* common.mk (rdoc): use XRUBY.</div><div class='add'>+</div><div class='add'>+Fri Oct 23 07:28:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): use -Wextra instead of -Wall.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_current_machine_context): get rid of warning.</div><div class='add'>+</div><div class='add'>+Thu Oct 22 21:10:39 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_basic_to_s_p): typo.  Please become familiar with</div><div class='add'>+	  the ANSI style.</div><div class='add'>+</div><div class='add'>+Thu Oct 22 20:20:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_in_out_err): test_stdout and</div><div class='add'>+	  test_stderr should be an array.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_notfound): test_stdin of</div><div class='add'>+	  assert_in_out_err should be a string.</div><div class='add'>+</div><div class='add'>+Thu Oct 22 17:49:05 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#fu_get_uid, fu_get_gid): Do not</div><div class='add'>+	  convert an integer back and forth.</div><div class='add'>+</div><div class='add'>+Thu Oct 22 17:29:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_prepend): removed.  a patch from Mikhail T. in</div><div class='add'>+	  [ruby-core:26217].</div><div class='add'>+</div><div class='add'>+Thu Oct 22 04:54:41 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): print instance variables only when</div><div class='add'>+	  Object#to_s is not overridden.  [ruby-core:24425]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_basic_to_s_p): new function.</div><div class='add'>+</div><div class='add'>+Wed Oct 21 19:32:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): fixed rdoc about the case that to_s</div><div class='add'>+	  is called.  [ruby-core:24425]</div><div class='add'>+</div><div class='add'>+Wed Oct 21 08:17:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb (TestLogDevice#test_write): check</div><div class='add'>+	  also error message.</div><div class='add'>+</div><div class='add'>+Wed Oct 21 03:54:41 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb:</div><div class='add'>+	  Creator functions now strict with their arguments</div><div class='add'>+	  Support for empty matrices (see new method Matrix.empty)</div><div class='add'>+	  Matrix#trace raises an ErrDimensionMismatch if the matrix is not square</div><div class='add'>+	  Enumerators are returned when no block given</div><div class='add'>+	  Consistent results when accessing elements with out of bounds indices</div><div class='add'>+	  Details in [ruby-core:23598].</div><div class='add'>+</div><div class='add'>+Wed Oct 21 00:27:15 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb: typo in exception message fixed.</div><div class='add'>+</div><div class='add'>+Wed Oct 21 00:17:28 2009  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: imported upstream version (logger/1.2.7) see #2238.</div><div class='add'>+	  * do not raise an exception even if log writing failed.</div><div class='add'>+	  * do not raise ShiftingError if an aged file already exists.</div><div class='add'>+	    (no ShiftingError will be raised from 1.2.7, just warn() instead)</div><div class='add'>+	* test/logger/test_logger.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 20 22:29:06 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb:  Bug fix. See detail [ruby-core:23598].</div><div class='add'>+</div><div class='add'>+Tue Oct 20 17:57:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol, r_symreal): fixed the order of symbol and</div><div class='add'>+	  its encoding modifier, in order to make the dump readable from</div><div class='add'>+	  1.8.  [ruby-dev:39515]</div><div class='add'>+</div><div class='add'>+Tue Oct 20 16:41:18 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (finite, scalb): inline'ed non-standard</div><div class='add'>+	  identifier macros.  [ruby-core:26166]</div><div class='add'>+</div><div class='add'>+Tue Oct 20 15:38:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_intern): enable literal optimization.</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): dispatch symbols.  a patch from Andy Keep in</div><div class='add'>+	  [ruby-core:26169].  [ruby-core:26165]</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_basic): fixed handling splat in middle of mlhs.  a</div><div class='add'>+	  patch from Andy Keep in [ruby-core:26163]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_here_document): dispatch delayed heredoc</div><div class='add'>+	  contents.  based on a patch from Andy Keep in [ruby-core:24855].</div><div class='add'>+</div><div class='add'>+Mon Oct 19 15:17:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rb_method_entry): search method entry by class and id.</div><div class='add'>+</div><div class='add'>+Mon Oct 19 15:03:31 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (enc/unicode/name2ctype.h): no need to create</div><div class='add'>+	  directory if it already exists.</div><div class='add'>+</div><div class='add'>+Mon Oct 19 11:34:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rb_ps): dump all threads and their callstacks.  based</div><div class='add'>+	  on [ruby-core:26155] by Joshua ben Jore &lt;twists AT gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Mon Oct 19 10:59:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build, rb_iseq_build_for_ruby2cext):</div><div class='add'>+	  untrust mark array.  [ruby-core:26137]</div><div class='add'>+</div><div class='add'>+Mon Oct 19 05:49:53 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/element.rb (text=): false should be converted to string.</div><div class='add'>+	  A patch by Teruo Oshida [ruby-dev:38351]</div><div class='add'>+</div><div class='add'>+Sun Oct 18 22:33:25 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: do not require lib/delta.rb.</div><div class='add'>+</div><div class='add'>+	* lib/date/delta.rb: follows the above change.</div><div class='add'>+</div><div class='add'>+Sun Oct 18 19:14:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (is_special_global_name): add boundary check.</div><div class='add'>+</div><div class='add'>+Sun Oct 18 18:31:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): should not dup tmp string.  a</div><div class='add'>+	  patch from neomjp neomjp in [ruby-core:24251].</div><div class='add'>+</div><div class='add'>+Sun Oct 18 09:49:14 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_prime.rb</div><div class='add'>+	  (TestPrime#test_eratosthenes_works_fine_after_timeout):</div><div class='add'>+	  test for [ruby-dev:39465].</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (Prime::EratosthenesSieve):</div><div class='add'>+	  fixed [ruby-dev:39465].</div><div class='add'>+	  suppressed memory reallocation.</div><div class='add'>+	  constantified some magic numbers.</div><div class='add'>+</div><div class='add'>+Sat Oct 17 22:11:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (id2encidx): register encoding name.</div><div class='add'>+	  (r_object0): register object before encoding name.</div><div class='add'>+	  [ruby-core:24882]</div><div class='add'>+</div><div class='add'>+Sat Oct 17 17:56:58 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_fileutils.rb (Rake::TestFileUtils#test_sh): uses</div><div class='add'>+	  FileUtils::RUBY instead of fixed "ruby" so that the ruby command</div><div class='add'>+	  works fine in Ruby's "make test-all".</div><div class='add'>+	  (test_sh_with_a_single_string_argument): ditto.</div><div class='add'>+	  (test_sh_with_multiple_arguments): ditto.</div><div class='add'>+	  (test_sh_failure): ditto</div><div class='add'>+	  (test_sh_special_handling): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 17 17:30:06 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_split): fix off-by-one error.  [ruby-dev:39501]</div><div class='add'>+</div><div class='add'>+Sat Oct 17 16:34:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): fix token even after trailing under score.</div><div class='add'>+</div><div class='add'>+Sat Oct 17 11:27:44 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (basic_obj_respond_to): call #respond_to_missing?</div><div class='add'>+	  always with two arguments.  [ruby-core:26090]</div><div class='add'>+</div><div class='add'>+Sat Oct 17 08:51:44 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#respond_to_missing): warn only when</div><div class='add'>+	  specified method is a private.  [ruby-dev:39498]</div><div class='add'>+</div><div class='add'>+Fri Oct 17 00:05:53 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (unpack_entries): save table-&gt;bins and never change the table</div><div class='add'>+	  during unpacking. Because st_insert() may cause GC and refer the</div><div class='add'>+	  table, i.e. st_foreach().  [Bug #2196]</div><div class='add'>+</div><div class='add'>+Fri Oct 16 22:20:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb (require_relative): defined as a module function of</div><div class='add'>+	  Kernel.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 20:18:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#method_missing): remove backtrace</div><div class='add'>+	  lines _until_ `method_missing'.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 20:09:55 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#freeze): #freeze should freeze self</div><div class='add'>+	  and the target at once.   [ruby-core:26118]</div><div class='add'>+</div><div class='add'>+Fri Oct 16 19:39:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#respond_to_missing): warn if optional</div><div class='add'>+	  include_private argument is not false.  Delegator does (and</div><div class='add'>+	  should) not forward private methods.  [ruby-core:26080]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#respond_to_missing): instead of</div><div class='add'>+	  redefining #respond_to?, use #respond_to_missing?.  [ruby-core:26081]</div><div class='add'>+</div><div class='add'>+Fri Oct 16 18:42:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_gc.rb: added tests based on [ruby-dev:39484]</div><div class='add'>+	  from wanabe &lt;s.wanabe AT gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 16:09:01 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): `\'' is also quote character.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 13:40:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (rb_gc_debug_body): constified.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 13:20:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpMidRound): remove warnings.</div><div class='add'>+	  patch from Charlie Savage. [ruby-core:22869]</div><div class='add'>+</div><div class='add'>+	* ext/digest/bubblebabble/bubblebabble.c (bubblebabble_str_new): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (hexencode_str_new): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (inspect_sockaddr): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (sockaddr_obj): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emitter_write): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emitter_flush): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emit_tag): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 12:03:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#raw_encoding): returns ASCII-8BIT when the io</div><div class='add'>+	  doesn't have encoding.</div><div class='add'>+</div><div class='add'>+Fri Oct 16 03:15:52 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#read_to_char): set encoding and verify data</div><div class='add'>+	  which read from io before encode it to @encoding.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#raw_encoding): add to get @io's encoding.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV#read_io): add to read string and set @io's</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+Thu Oct 15 18:26:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): check symbol table overflow before generate</div><div class='add'>+	  next id.  [ruby-core:26092]</div><div class='add'>+</div><div class='add'>+Thu Oct 15 15:14:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): get rid of parsing non-ascii string, and</div><div class='add'>+	  refine messages for invalid name encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): unread current buffer before telling the</div><div class='add'>+	  position, for the case of reopening same file.  [ruby-dev:39479]</div><div class='add'>+</div><div class='add'>+Thu Oct 15 14:20:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): cannot retry with given block.</div><div class='add'>+	  [ruby-dev:39487]</div><div class='add'>+</div><div class='add'>+Thu Oct 15 09:25:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rsock_init_sock): mswin doesn't have S_IFSOCK</div><div class='add'>+	  flag in st_mode of struct stat. so, use rb_w32_issocket() function</div><div class='add'>+	  instead of S_ISSOCK macro.</div><div class='add'>+</div><div class='add'>+Thu Oct 15 00:47:42 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb,</div><div class='add'>+	  enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  use UTS#18 for POSIX character class.</div><div class='add'>+	  http://rubyspec.org/issues/show/161</div><div class='add'>+</div><div class='add'>+Thu Oct 15 00:26:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rsock_init_sock): validate file descriptor.</div><div class='add'>+</div><div class='add'>+Wed Oct 14 13:24:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): script name should not be shown in an</div><div class='add'>+	  error message before loaded.</div><div class='add'>+</div><div class='add'>+Wed Oct 14 09:06:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run_node): need to call ruby_cleanup() always even</div><div class='add'>+	  if any error occurred so far.</div><div class='add'>+</div><div class='add'>+Wed Oct 14 08:08:12 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): Method#new checks for respond_to_missing? with</div><div class='add'>+	  private set to true</div><div class='add'>+	  [ruby-core:26069]</div><div class='add'>+</div><div class='add'>+Tue Oct 13 21:05:01 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb,</div><div class='add'>+	  enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  Add DerivedCoreProperties, PropList (Binary Property),</div><div class='add'>+	  PropertyAlias and PropertyValueAlias.</div><div class='add'>+	  Now users of tool/enc-unicode.rb should specify</div><div class='add'>+	  the directory of UCD files.</div><div class='add'>+</div><div class='add'>+Tue Oct 13 18:54:25 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/variable.rb: bug fix. additional trace definition changes the</div><div class='add'>+	  option of first trace definition.</div><div class='add'>+</div><div class='add'>+Tue Oct 13 18:23:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (token_info_push, token_info_pop): reduced ifdefs.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_magic_comment): fixed normalization.</div><div class='add'>+</div><div class='add'>+Tue Oct 13 09:04:14 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: Revert changes to Thread#raise made in r25278</div><div class='add'>+	  [ruby-core:25367]</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: ditto</div><div class='add'>+</div><div class='add'>+Mon Oct 12 23:27:57 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (login): use "anonymous@" as a default password.</div><div class='add'>+	  [ruby-dev:39451]</div><div class='add'>+</div><div class='add'>+Mon Oct 12 22:48:25 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (retrlines): added a new block parameter.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (gettextfile): preserve missing end-of-line at end</div><div class='add'>+	  of files.  [ruby-core:24590]</div><div class='add'>+</div><div class='add'>+Mon Oct 12 19:48:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run_node): if an exception occurred in ruby_option,</div><div class='add'>+	  the result is not executable.</div><div class='add'>+</div><div class='add'>+Mon Oct 12 05:51:11 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token): warn invalid back reference</div><div class='add'>+	  and subexp call. (\k and \g).</div><div class='add'>+</div><div class='add'>+Mon Oct 12 03:47:42 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (has_encoding): added for check the regexp</div><div class='add'>+	  is dumped by 1.8 or 1.9.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): use has_encoding.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 15:54:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_select): fixed rdoc.  a patch from Justin</div><div class='add'>+	  Collins in [ruby-core:26050].</div><div class='add'>+</div><div class='add'>+Sun Oct 11 10:27:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/context.rb (IRB::Context#irb_name): removed duplicated</div><div class='add'>+	  attr_reader.  [ruby-core:26047]</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#lex_int2): removed duplicated</div><div class='add'>+	  character class range.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 10:04:35 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token_in_cc): warn when \p is not</div><div class='add'>+	  followed by property name.</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token): ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 09:44:46 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regerror.c (onig_vsnprintf_with_pattern): added.</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_syntax_warn): use above.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 09:04:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RB_GC_GUARD_PTR): workaround for gcc</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ruby_exec_node): declared.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 03:10:50 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_syntax_warn): added.</div><div class='add'>+</div><div class='add'>+	* regparse.c (CC_ESC_WARN, CLOSE_BRACKET_WITHOUT_ESC_WARN,</div><div class='add'>+	  CC_DUP_WARN, UNKNOWN_ESC_WARN): use onig_syntax_warn.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 00:14:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump, marshal_load): prevent from GC.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 23:57:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_0): prevent from GC.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 23:51:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_transcoding, str_transcoding_resize): fixed</div><div class='add'>+	  types.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 20:35:27 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atanh): reverted r25279.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 19:03:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: use rb_thread_blocking_region to avoid</div><div class='add'>+	  rb_read_check.  This makes other threads runnable in getstr and</div><div class='add'>+	  wgetstr.</div><div class='add'>+	  (getch_func): extracted from curses_getch.</div><div class='add'>+	  (curses_getch): use rb_thread_blocking_region with getch_func.</div><div class='add'>+	  (getstr_func): extracted from curses_getstr.</div><div class='add'>+	  (curses_getstr): use rb_thread_blocking_region with getstr_func.</div><div class='add'>+	  (wgetch_func): extracted from window_getch.</div><div class='add'>+	  (window_getch): use rb_thread_blocking_region with wgetch_func.</div><div class='add'>+	  (wgetstr_func): extracted from window_getstr.</div><div class='add'>+	  (window_getstr): use rb_thread_blocking_region with wgetstr_func.</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_read_check): deprecated because it access</div><div class='add'>+	  internal of stdio.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 18:59:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (cflags, cxxflags): remove duplicating options.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 18:19:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, Makefile.in (LIBRUBY_SO), common.mk (ruby.imp),</div><div class='add'>+	  win32/mkexports.rb (each_export): exclude _threadptr_ functions.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 17:55:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_threadptr_errinfo): renamed.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 17:03:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_node): removed unused argument.</div><div class='add'>+</div><div class='add'>+Sat Oct 10 14:55:55 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atanh): Fix bug for Math.atanh(+/-1). It now returns</div><div class='add'>+	  +-Infinity. [ruby-core:26028]</div><div class='add'>+</div><div class='add'>+Sat Oct 10 14:09:40 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_rec, rb_threadptr_raise):</div><div class='add'>+	  Thread#raise with no argument will now re-raise the current exception</div><div class='add'>+	  if there is one [ruby-core:25367]</div><div class='add'>+</div><div class='add'>+	* eval.c (get_errinfo, rb_rubylevel_thread_errinfo): Getter for</div><div class='add'>+	  current exception for a given thread</div><div class='add'>+</div><div class='add'>+Fri Oct  9 23:10:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_boundp): should exclude NOEX_RESPONDS.</div><div class='add'>+	  based on the patch from Nikolai Lugovoi.  [ruby-core:25949]</div><div class='add'>+</div><div class='add'>+Fri Oct  9 21:14:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Requester::ConnectedUDP): disable</div><div class='add'>+	  reverse lookup.</div><div class='add'>+	  (Resolv::DNS::Requester::UnconnectedUDP): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct  9 10:12:13 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/context.rb (IRB::Context#initialize):</div><div class='add'>+	  remove warnings when $VERBOSE is set as true in .irbrc.</div><div class='add'>+</div><div class='add'>+Fri Oct  9 02:58:18 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: optimized.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  U+100000-U+10FFFD is assigned, not Cn.</div><div class='add'>+</div><div class='add'>+Fri Oct  9 02:12:02 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: Many functions of module Curses could cause a</div><div class='add'>+	  crash if the ncurses library was not properly initialized.</div><div class='add'>+	  Fix pointed out by Alexander Beisig [ruby-core:22592]</div><div class='add'>+	  Functions fixed: attroff, attron, attrset, bkgd, bkgdset,</div><div class='add'>+	  can_change_color, close_screen, closed, color_content, curs_set,</div><div class='add'>+	  def_prog_mode, delch, deleteln, getmouse, getstr, has_colors,</div><div class='add'>+	  init_color, init_pair, insertln, keyname, mouseinterval, mousemask,</div><div class='add'>+	  pair_content, pair_number, reset_prog_mode, resizeterm, scrl,</div><div class='add'>+	  setscrreg, standend, standout, start_color, timeout, ungetmouse,</div><div class='add'>+	  use_default_colors</div><div class='add'>+</div><div class='add'>+Fri Oct  9 01:07:34 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (ADD_TRACE): fire coverage event in ensure clause.</div><div class='add'>+	  [ruby-dev:39303]</div><div class='add'>+</div><div class='add'>+	* iseq.h, iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct  9 00:33:29 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (cmd): Pass FailEOF options: patch by Brian</div><div class='add'>+	  Candler [ruby-core:22723]</div><div class='add'>+</div><div class='add'>+Fri Oct  9 00:01:17 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.udp_server_recv): extracted from</div><div class='add'>+	  Socket.udp_server_loop_on.</div><div class='add'>+</div><div class='add'>+Thu Oct  8 05:45:14 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: parse range notation of UnicodeData.txt.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  follow above change. [ruby-dev:39444]</div><div class='add'>+</div><div class='add'>+Thu Oct  8 02:46:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): copy by chunks.</div><div class='add'>+</div><div class='add'>+Thu Oct  8 01:23:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_disasm): accept proc objects.  [ruby-core:18762]</div><div class='add'>+</div><div class='add'>+Wed Oct  7 16:42:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (mark_dump_arg, mark_load_arg): ignore already cleaned</div><div class='add'>+	  data.  [ruby-core:25969]</div><div class='add'>+</div><div class='add'>+	* marshal.c (clear_dump_arg, clear_load_arg): clear freed fields.</div><div class='add'>+</div><div class='add'>+Wed Oct  7 16:06:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_long2int): evaluates the argument only</div><div class='add'>+	  once.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_alloc): check array length overflow.</div><div class='add'>+</div><div class='add'>+Wed Oct  7 09:23:49 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): don't assign -1 to unsigned int.</div><div class='add'>+</div><div class='add'>+Wed Oct  7 00:27:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS.bind_random_port): bind to "::" for IPv6.</div><div class='add'>+	  (Resolv::DNS::ConnectedUDP#initialize): specify is_ipv6 argument of</div><div class='add'>+	  bind_random_port.</div><div class='add'>+	  [ruby-core:25970]</div><div class='add'>+</div><div class='add'>+Tue Oct  6 23:32:38 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): RDoc updated.  a patch from Nobuhiro</div><div class='add'>+	  IMAI &lt;nov at yo.rim.or.jp&gt; in [ruby-dev:39440]. [ruby-dev:39439]</div><div class='add'>+</div><div class='add'>+Tue Oct  6 21:30:58 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): avoid close if possible.</div><div class='add'>+</div><div class='add'>+Tue Oct  6 18:56:09 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_select): Struct#select should return</div><div class='add'>+	  enumerator when no block given.</div><div class='add'>+</div><div class='add'>+Tue Oct  6 06:26:00 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* * ext/tk/lib/tk/canvas.rb: *** POTENTIALLY INCOMPATIBLE ***</div><div class='add'>+	  'tags' option of a TkcItem object should give a list of TkcTag objs.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/vu/dial.rb: fix logical bug.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb, ext/tk/lib/tkextlib/blt/component.rb:</div><div class='add'>+	  lack of support for methodcall_optkeys.</div><div class='add'>+</div><div class='add'>+Mon Oct  5 17:19:33 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::public_api): take snapshot of</div><div class='add'>+	  public method at the beginning time.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (SimpleDelegator#initialize): use</div><div class='add'>+	  Delegator.public_api since public_method might be added after</div><div class='add'>+	  initialization.  [ruby-dev:39383]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  5 12:22:12 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_{times, shuffle_bang, sample}): reducing macro</div><div class='add'>+	  calls inside of the loop by keeping pointers in local</div><div class='add'>+	  variables. a patch from Masahiro Kanai (CanI) in [ruby-dev:39406].</div><div class='add'>+	  It was found and fixed at Security and Programming camp 2009.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_{times, split_m}): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_{getmember, set, aref_id, aset_id}, {make,</div><div class='add'>+	  inspect}_struct, recursive_{equal, hash, eql}): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  5 00:09:57 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (basic_obj_respond_to): should not call</div><div class='add'>+	  #respond_to_missing? for not implemented methods.</div><div class='add'>+	  [ruby-core:25909]</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_boundp): returns exceptional value 2 for</div><div class='add'>+	  not-implemented methods when called from #respond_to? (specifies</div><div class='add'>+	  by new constant NOEX_RESPONDS).</div><div class='add'>+</div><div class='add'>+	* method.h (enum): new constant NOEX_RESPONDS added.</div><div class='add'>+</div><div class='add'>+Sun Oct  4 22:16:29 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/cookie.rb: add default value to @@accept_charset</div><div class='add'>+	  if have not defined. [ruby-dev:38987]</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct  4 19:30:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (struct {dump,load}_arg): manage with dfree, instead</div><div class='add'>+	  of using local variable which may be moved by context switch.</div><div class='add'>+	  [ruby-dev:39425]</div><div class='add'>+</div><div class='add'>+Sun Oct  4 15:00:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (NATINT_LEN, pack_pack): suppressed warnings.</div><div class='add'>+</div><div class='add'>+Sun Oct  4 14:01:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::binary_mode): binary mode uses binary</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+Sun Oct  4 08:27:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (slicebefore_ii): use id_eqq.</div><div class='add'>+</div><div class='add'>+Sun Oct  4 06:40:09 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (ruby.mmp): added macro RUBY_EXPORT to match the</div><div class='add'>+	  change in dln.c</div><div class='add'>+</div><div class='add'>+Sun Oct  4 05:34:34 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: add TkVariable#to_hash,to_proc,to_int,</div><div class='add'>+	  to_str,to_ary</div><div class='add'>+</div><div class='add'>+Sun Oct  4 00:59:52 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb: fix command-line option of</div><div class='add'>+	  non-interactive terminal. [ruby-core:23016]</div><div class='add'>+</div><div class='add'>+Sun Oct  4 00:40:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/contrib: added.  [ruby-core:25918]</div><div class='add'>+</div><div class='add'>+Sat Oct  3 22:14:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (bv_decls, bvar): fix for block variables.</div><div class='add'>+	  [ruby-dev:39423]</div><div class='add'>+</div><div class='add'>+Sat Oct  3 21:19:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): no redefinition warning on</div><div class='add'>+	  undef.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 18:51:11 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_f_integer): now Integer() takes optional base</div><div class='add'>+	  argument.  base will be ignored for non string values.</div><div class='add'>+	  suggested by Sam Carr at RubyFoo Lounge at London.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb (TestInteger#test_Integer): test</div><div class='add'>+	  updated.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 04:34:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen): parser_yyerror takes two arguments.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 04:07:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake: updated to rake code to rake-0.8.7 source code base.</div><div class='add'>+</div><div class='add'>+	* lib/rake/loaders/makefile.rb (Rake::MakefileLoader#process_line):</div><div class='add'>+	  respace dependencies too.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 02:59:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen): get rid of macro collision.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 02:49:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared): should count frozen array itself.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 01:01:20 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h: Updated to Unicode 5.2.0.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 01:01:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: workaround for regexp metacharacters of expr in</div><div class='add'>+	  prefix path.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 00:47:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/dummyparser.rb (DummyParser): improvement by Magnus</div><div class='add'>+	  Holm in [ruby-core:25884].</div><div class='add'>+	  * remove scanner events which simply returned the first argument.</div><div class='add'>+	  * all parser events are now automatically generated.</div><div class='add'>+	  * simplify blocks.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 00:43:52 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h (rb_method_type_t): remove a comma at end of</div><div class='add'>+	  enumerator list.</div><div class='add'>+</div><div class='add'>+Sat Oct  3 00:31:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (discrete_object_p): needs the argument type to get rid</div><div class='add'>+	  of truncation on platforms where VALUE is larger than int.</div><div class='add'>+</div><div class='add'>+Fri Oct  2 22:30:15 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h.blt, enc/unicode/name2ctype.kwd,</div><div class='add'>+	  enc/unicode/name2ctype.src: Updated to Unicode 5.2.0.</div><div class='add'>+	  NOTE: when you update these data, download UnicodeData.txt</div><div class='add'>+	  and Scripts.txt from http://www.unicode.org/Public/UNIDATA/</div><div class='add'>+	  and run</div><div class='add'>+	  ruby1.9 tool/enc-unicode.rb UnicodeData.txt Scripts.txt \</div><div class='add'>+	  &gt; enc/unicode/name2ctype.kwd</div><div class='add'>+</div><div class='add'>+	* enc/unicode/Scripts.txt: removed.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/UnicodeData.txt: removed.</div><div class='add'>+</div><div class='add'>+Fri Oct  2 20:49:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_slice_before): take a pattern if no block given.</div><div class='add'>+</div><div class='add'>+Fri Oct  2 20:37:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_yylval_id, ripper_get_{id,value}): wrap ID by</div><div class='add'>+	  NODE to track local variable assignment.</div><div class='add'>+</div><div class='add'>+	* parse.y (lvar_defined_gen, assignable_gen): enable local</div><div class='add'>+	  variable check.  [ruby-core:24923]</div><div class='add'>+</div><div class='add'>+	* parse.y (validate): use value only.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_parser_events.rb (test_local_variables): tests</div><div class='add'>+	  based on a patch from Magnus Holm in [ruby-core:25885].</div><div class='add'>+</div><div class='add'>+Fri Oct  2 15:34:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_suppress_tracing): get rid of clobbering by</div><div class='add'>+	  longjmp.</div><div class='add'>+</div><div class='add'>+Fri Oct  2 09:20:35 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_origenviron): remove unused old variable.</div><div class='add'>+	  [ruby-dev:39412]</div><div class='add'>+</div><div class='add'>+Thu Oct  1 14:16:39 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{setup.mak,Makefile.sub,win32.c},include/ruby/win32.h (RT_VER):</div><div class='add'>+	  split compiler specification and runtime library specification.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LD_SHARED*, config.status): no need to embed</div><div class='add'>+	  manifest if not exist.</div><div class='add'>+</div><div class='add'>+Thu Oct  1 13:23:14 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getpid): simply call GetCurrentProcessId()</div><div class='add'>+	  instead of calling MSVCRT's getpid().</div><div class='add'>+</div><div class='add'>+Wed Sep 30 13:15:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): show the location where</div><div class='add'>+	  overwritten method was defined.  [ruby-dev:39400]</div><div class='add'>+</div><div class='add'>+Wed Sep 30 00:37:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_block_call): extracted.</div><div class='add'>+</div><div class='add'>+Wed Sep 30 00:00:25 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): escape as \x{XXXX} when the encoding is</div><div class='add'>+	  other than Unicode. [ruby-dev:39388]</div><div class='add'>+</div><div class='add'>+Wed Sep 30 00:00:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (THREAD_MODEL): modified message when no thread</div><div class='add'>+	  model is available.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 23:17:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): rb_utf8mac_encoding is undefined.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 22:25:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_struct_iv_get): deprecated because it is</div><div class='add'>+	  not used and access internal structure.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 22:19:36 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_equal): use Time#subsec if nsec</div><div class='add'>+	  is not enough to distinguish arguments.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 21:16:35 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): add UTF8-MAC to no-conversion encoding.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 21:21:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--enable-pthread): deprecated.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 21:03:59 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Kernel#pp): returns its arguments, like Kernel#p.</div><div class='add'>+	  [ruby-dev:34830]</div><div class='add'>+</div><div class='add'>+Tue Sep 29 17:02:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/common.rb (recurse_proc): removed needless</div><div class='add'>+	  module_function, since visibility is already module_function.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 13:48:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_definition_eq): non-null definition is</div><div class='add'>+	  not equal to null definition.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): nothing to do if old method had</div><div class='add'>+	  same definition.  [ruby-dev:39397]</div><div class='add'>+</div><div class='add'>+Tue Sep 29 06:50:32 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): dump as \uXXXX when the</div><div class='add'>+	  string is in Unicode. [ruby-dev:39388]</div><div class='add'>+</div><div class='add'>+Tue Sep 29 06:49:16 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_unicode_p): defined.</div><div class='add'>+	  Returns 1 when the encoding is Unicode series</div><div class='add'>+	  other than UTF-7 else 0.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 04:14:08 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): On Unix systems,</div><div class='add'>+	  filesystem encoding should be locale encoding.</div><div class='add'>+	  [ruby-dev:39393]</div><div class='add'>+</div><div class='add'>+Tue Sep 29 04:07:58 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_getenv): use rb_filesystem_str_new_cstr</div><div class='add'>+	  instead of rb_str_new2.</div><div class='add'>+	  ENV['PATH'].encoding should be Filesystem Encoding</div><div class='add'>+	  because its content is related to filesystem.</div><div class='add'>+	  see [ruby-dev:39393]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_fetch): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_filesystem_str_new): defined.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_filesystem_str_new_cstr): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_filesystem_str_new): added.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_filesystem_str_new_cstr): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 04:06:18 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h: include inttypes.h and stdint.h.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 00:07:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_getenv, env_fetch): env string may be overwritten.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 23:30:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (load_lib, dln_find_exe_r): env string may be overwritten.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_{exit,loaderror,memerror,notimplement}): renamed as</div><div class='add'>+	  independent names.</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): needs format string.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 19:36:20 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (LK_ERR): with overlapped I/O, LockFileEx() returns</div><div class='add'>+	  ERROR_IO_PENDING if the file is locked.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 19:05:05 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h: aligned prototype of st_hash_uint32 with function</div><div class='add'>+	  definition (fixing compiling problem on cygwin)</div><div class='add'>+</div><div class='add'>+Mon Sep 28 12:13:15 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h (enum): new method type VM_METHOD_TYPE_MISSING.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): invoking VM_METHOD_TYPE_MISSING method</div><div class='add'>+	  objects.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): invoking method defined from</div><div class='add'>+	  VM_METHOD_TYPE_MISSING.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_method_entry_arity): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_entry_eq): two method object wraps</div><div class='add'>+	  method_missing with same symbol should be equal.</div><div class='add'>+	  [ruby-core:25755]</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): should always return method object.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 11:38:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_string): the byte after ``\'' may be a part of</div><div class='add'>+	  multibyte character, so pushback it. [ruby-list:46416]</div><div class='add'>+</div><div class='add'>+Mon Sep 28 10:06:38 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stringio/stringio.c (strio_read): set ASCII-8BIT encoding</div><div class='add'>+	  when length argument is given.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 01:28:17 2009  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): suppress duplication warning on AIX.</div><div class='add'>+</div><div class='add'>+Mon Sep 28 01:13:25 2009  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ruby.imp): add text section [Bug #2064].</div><div class='add'>+</div><div class='add'>+	* common.mk (ruby.imp): do not export Init_*.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 13:06:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP:ObjectMixin#pretty_print): delegates has no inspect</div><div class='add'>+	  method.  [ruby-core:25804]</div><div class='add'>+</div><div class='add'>+Sun Sep 27 12:01:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_buf_cat2): optimize since all second arguments are</div><div class='add'>+	  constant literals.</div><div class='add'>+</div><div class='add'>+	* string.c (str_cat_char): unused now.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_hash_{uint{32,},end}): removed.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 11:58:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (optflags): add -fomit-frame-pointer by default.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 11:28:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_minmax): use struct for memo.</div><div class='add'>+	  (enum_minmax_by): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 10:21:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): check all flags if each are available.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 05:35:17 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/generator.c: Documentation patch by okkez.</div><div class='add'>+	  [Bug #2075]</div><div class='add'>+</div><div class='add'>+Sun Sep 27 04:20:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): result's encoding should be fixed.</div><div class='add'>+	  If default_internal is not nil, the encoding is default_internal.</div><div class='add'>+	  Else if default_external is not nil, the encoding is default_external.</div><div class='add'>+	  But the encoding is not ASCII-compatible, the encoding is replaced by</div><div class='add'>+	  US-ASCII.</div><div class='add'>+	  Characters in ASCII-incompatible encoding or non ASCII characters</div><div class='add'>+	  in other than the encoding will be \xXX escaped.</div><div class='add'>+	  [ruby-dev:39343]</div><div class='add'>+</div><div class='add'>+	* string.c (str_buf_cat2): defined.</div><div class='add'>+</div><div class='add'>+	* string.c (prefix_escape): removed.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 05:37:45 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/missing-pips.c: Updated to work with the latest PIPS 1.6.</div><div class='add'>+</div><div class='add'>+	* symbian/setup: ditto.</div><div class='add'>+</div><div class='add'>+	* symbian/README.SYMBIAN: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 27 02:00:46 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: use rename-macro instead of RUBY_ALIAS_FUNCTION_TYPE.</div><div class='add'>+	  Because build causes failure.</div><div class='add'>+</div><div class='add'>+Sat Sep 26 23:29:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c: moved murmur hash from string.c.  [ruby-dev:39376]</div><div class='add'>+</div><div class='add'>+Sun Sep 26 00:24:14 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup: Updated .mmp file generation due to blockinlining.c removal.</div><div class='add'>+</div><div class='add'>+Sat Sep 26 22:39:24 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in(test-rubyspec): explicitly executes run subcommand of</div><div class='add'>+	  mspec.</div><div class='add'>+</div><div class='add'>+	* spec/README: typo fix</div><div class='add'>+</div><div class='add'>+Sat Sep 26 17:53:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (COLLISION): improved collision log feature.</div><div class='add'>+</div><div class='add'>+	* string.c (hash): updated to MurmurHash 2.0 2009-09-19.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_hash_start): fixed shift width on 128bit platform.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_hash_{start,uint32,uint,end}): fixed</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+Sat Sep 26 13:26:55 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (transport_request): Handle timeout error by</div><div class='add'>+	  closing socket if exception raised. [ruby-core:20976]</div><div class='add'>+</div><div class='add'>+Sat Sep 26 12:08:17 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_entry_eq): method defined from same</div><div class='add'>+	  block/proc should be equal.  [ruby-core:25755] [ruby-core:24791]</div><div class='add'>+</div><div class='add'>+Sat Sep 26 08:35:12 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (compile_string): rename to parse_string(), because</div><div class='add'>+	  this function only parse String to NODE.</div><div class='add'>+</div><div class='add'>+Fri Sep 25 16:01:45 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, include/ruby/win32.h (rb_w32_access): new function to</div><div class='add'>+	  replace MSVCRT's access().</div><div class='add'>+	  [ruby-core:25761]</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): workaround for recent MSVCRT is no longer needed.</div><div class='add'>+</div><div class='add'>+Fri Sep 25 13:04:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): fix for instance method of Module, BasicObject</div><div class='add'>+	  and subclass of a class which overrides respond_to_missing?.</div><div class='add'>+	  based on a patch from Nikolai Lugovoi &lt;nlugovoi AT gmail.com&gt; in</div><div class='add'>+	  [ruby-core:25748].</div><div class='add'>+</div><div class='add'>+Fri Sep 25 11:56:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_mod_method_defined): should return true or false.</div><div class='add'>+</div><div class='add'>+Thu Sep 24 13:32:53 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): generate method object that wraps method_missing,</div><div class='add'>+	  when #respond_to_missing? is defined.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb (test_respond_to_missing): add test</div><div class='add'>+	  suites for #respond_to_missing? changes.</div><div class='add'>+</div><div class='add'>+Thu Sep 24 09:41:42 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Bignum#**): Fixed bignum**fixnum that was broken when</div><div class='add'>+	  requiring lib/mathn</div><div class='add'>+	  [ruby-core:25740]</div><div class='add'>+</div><div class='add'>+Thu Sep 24 02:21:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (atan): atan(Infinity) is</div><div class='add'>+	  PI/2.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (atan): reduce loop with</div><div class='add'>+	  the double-angle formula.  based on a patch from Masahiro</div><div class='add'>+	  Kanai (CanI) in [ruby-dev:39367].</div><div class='add'>+</div><div class='add'>+Thu Sep 24 01:14:18 2009  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): fixed typo. suppress warnings.</div><div class='add'>+</div><div class='add'>+Thu Sep 24 00:17:06 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_minmax): reduce comparison.</div><div class='add'>+	  (enum_minmax_by): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 23 22:58:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (ConditionVariable#wait): add timeout argument.</div><div class='add'>+	  [ruby-talk:346154]</div><div class='add'>+</div><div class='add'>+Wed Sep 23 21:25:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (atan): refined.</div><div class='add'>+</div><div class='add'>+Wed Sep 23 17:08:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assign_in_cond): also should warn assignment to dvar in</div><div class='add'>+	  conditional.  [ruby-dev:39363]</div><div class='add'>+</div><div class='add'>+Wed Sep 23 13:14:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): keep first width.  [ruby-dev:39361]</div><div class='add'>+</div><div class='add'>+Wed Sep 23 11:28:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb (make_header_prepare_stack): check stack</div><div class='add'>+	  overflow.  [ruby-core:25714]</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb (make_footer_stack_val): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 23 05:03:36 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (umethod_bind, rb_mod_define_method): Fix bug that</div><div class='add'>+	  disallowed methods from singleton classes to be used for</div><div class='add'>+	  UnboundMethod#bind, Kernel#define_singleton_method and</div><div class='add'>+	  Module#define_method, even when that singleton class was of the right</div><div class='add'>+	  kind_of. A patch by Shane O'Brien [ruby-core:25632]</div><div class='add'>+</div><div class='add'>+Tue Sep 22 22:56:48 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (basic_obj_respond_to): new function to fundamental</div><div class='add'>+	  behavior for #respond_to?</div><div class='add'>+</div><div class='add'>+	* vm_method.c (basic_obj_respond_to): calls #respond_to_missing</div><div class='add'>+	  method if overridden, to check responsiveness of methods</div><div class='add'>+	  implemented by #method_missing.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 16:34:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_table_entry, st_get_key): use st_index_t.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 16:28:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.h (PosixBracketEntryType): constified.</div><div class='add'>+</div><div class='add'>+	* regenc.h (PosixBracketEntryInit): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* regerror.c (onig_error_code_to_str, onig_snprintf_with_pattern):</div><div class='add'>+	  fixed type.</div><div class='add'>+</div><div class='add'>+	* regparse.c (st_str_end_key, str_end_cmp, str_end_hash):</div><div class='add'>+	  constified.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_generated_code): fixed type.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 10:29:06 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_chunk): new method Enumerable#chunk.</div><div class='add'>+	* enum.c (enum_slice_before): new method Enumerable#slice_before.</div><div class='add'>+	  [ruby-dev:38392] [ruby-dev:39240]</div><div class='add'>+</div><div class='add'>+Tue Sep 22 05:58:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, cont.c, gc.c, insns.def, iseq.c, iseq.h, process.c,</div><div class='add'>+	  thread.c, vm.c, vm_core.h, vm_dump.c, vm_eval.c,</div><div class='add'>+	  vm_insnhelper.c, vm_method.c, template/insns_info.inc.tmpl,</div><div class='add'>+	  tool/instruction.rb: fixed types.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 05:04:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/{ludcmp,math}.rb: depend on</div><div class='add'>+	  bigdecimal.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/*.rb: made module functions.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 04:47:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValue): support conversion from</div><div class='add'>+	  Rational.  [ruby-core:25697]</div><div class='add'>+</div><div class='add'>+Tue Sep 22 04:43:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (INSNS): depend on tools.</div><div class='add'>+</div><div class='add'>+Tue Sep 22 01:10:22 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* ossl_ocsp.c (ossl_ocspres_to_der): Bug fix in Response#to_def.</div><div class='add'>+	  Patch by Chris Chandler [ruby-core:18411]</div><div class='add'>+</div><div class='add'>+Tue Sep 22 01:10:02 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* ossl_config.c (ossl_config_add_value_m, ossl_config_set_section):</div><div class='add'>+	  Check if frozen (or untrusted for $SAFE &gt;= 4) [ruby-core:18377]</div><div class='add'>+</div><div class='add'>+Mon Sep 21 17:12:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_binding): allow proc from method.  [ruby-core:25589]</div><div class='add'>+</div><div class='add'>+	* vm.c (collect_local_variables_in_env): block iseq can be NULL.</div><div class='add'>+</div><div class='add'>+Mon Sep 21 10:50:37 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_time_succ): make Time#succ obsolete since time is not</div><div class='add'>+	  a discrete value.</div><div class='add'>+</div><div class='add'>+	* range.c (discrete_object_p): treat time objects specially to</div><div class='add'>+	  determine discrete values, since time objects have #succ yet are</div><div class='add'>+	  discrete (for now at least).</div><div class='add'>+</div><div class='add'>+Mon Sep 21 10:13:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_new, cont_capture, fiber_t_alloc): needs already</div><div class='add'>+	  running thread.  cf. [ruby-core:25681]</div><div class='add'>+</div><div class='add'>+Mon Sep 21 00:07:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb (sin, cos, atan, exp, log):</div><div class='add'>+	  improved precision and performance.  based on a patch from Makoto</div><div class='add'>+	  Yamashita in [ruby-core:25600] and [ruby-core:25602].</div><div class='add'>+</div><div class='add'>+Sun Sep 20 11:11:34 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_equal, rb_struct_eql): Handle comparison of</div><div class='add'>+	  recursive structures [ruby-core:24759]</div><div class='add'>+</div><div class='add'>+	* range.c (range_eq, range_eql):  ditto for ranges</div><div class='add'>+</div><div class='add'>+Sat Sep 19 17:46:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (ENABLE_VM_OBJSPACE): socklist needs st_table in</div><div class='add'>+	  rb_w32_sysinit(), before object space initialization.</div><div class='add'>+</div><div class='add'>+Sat Sep 19 17:32:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (GlobPathValue), file.c (rb_get_path_check): path names</div><div class='add'>+	  must be ASCII compatible.</div><div class='add'>+</div><div class='add'>+Sat Sep 19 00:02:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_type): forward declaration to suppress a</div><div class='add'>+	  warning.  a patch from Naohisa Goto at [ruby-dev:39350]</div><div class='add'>+</div><div class='add'>+Fri Sep 18 23:59:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (GlobPathValue): adjust return types.  based on a patch</div><div class='add'>+	  from Naohisa Goto at [ruby-dev:39350].</div><div class='add'>+</div><div class='add'>+Fri Sep 18 23:51:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): entry regexp object before its encoding</div><div class='add'>+	  name.  [ruby-core:25625]</div><div class='add'>+</div><div class='add'>+Fri Sep 18 16:29:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (eval.o): needs vm.h.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): destruct current VM before exit.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_free): free object space.</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): destruct and free VM struct.</div><div class='add'>+</div><div class='add'>+Fri Sep 18 16:15:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each), parse.y (stmt, arg): arg_concat()</div><div class='add'>+	  on op_asgn was inversed.  [ruby-core:25629] [Bug #2050]</div><div class='add'>+</div><div class='add'>+Fri Sep 18 16:06:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (GlobPathValue): glob allows null bytes as separators.</div><div class='add'>+</div><div class='add'>+Fri Sep 18 10:11:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/re.rdoc: use rdoc mode.</div><div class='add'>+</div><div class='add'>+	* misc/rdoc-mode.el: added.</div><div class='add'>+</div><div class='add'>+Fri Sep 18 09:02:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc#parse_files): don't branch by</div><div class='add'>+	  RUBY_VERSION.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc#parse_files): emacs local variables</div><div class='add'>+	  are delimited by a semicolon.  supported Vim style.</div><div class='add'>+</div><div class='add'>+Fri Sep 18 07:06:41 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: add a test for [ruby-dev:39345]</div><div class='add'>+</div><div class='add'>+Fri Sep 18 06:47:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): str should be a string always.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob, dir_globs): use #to_path to convert non-</div><div class='add'>+	  string values.  cf. [ruby-dev:39345]</div><div class='add'>+</div><div class='add'>+Fri Sep 18 06:36:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (rm_f, rm_rf): FileUtils.rm can take an array.</div><div class='add'>+	  [ruby-dev:39345]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_header): open in binmode.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 18:34:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (vm_xrealloc): free as like standard free if size is zero.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 15:41:02 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: use rb_node_newnode() directly.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 15:01:32 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c: removed.</div><div class='add'>+</div><div class='add'>+	* README.EXT: ditto.</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 13:50:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_s_debug_set): set level, not only boolean.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 13:12:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/ruby.rb (RDoc::Parser::Ruby): parse also rdoc</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+	* doc/re.rdoc: renamed from re.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 09:37:28 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/re.rb: New document for Ruby's fork of Oniguruma.</div><div class='add'>+	  written by Run Paint Run Run [ruby-core:25420]</div><div class='add'>+</div><div class='add'>+	* re.c: import document in doc/re.rb.</div><div class='add'>+</div><div class='add'>+	* .document: add doc/re.rb.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 06:03:40 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix#rank): Two bug fixes. One made</div><div class='add'>+	  Matrix[[0,0],[0,0],[1,0]].rank raise a NoMethodError while the other</div><div class='add'>+	  one had Matrix[[0,1],[0,0],[1,0]].rank raise a TypeError.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 06:02:04 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: Optimizations</div><div class='add'>+</div><div class='add'>+Thu Sep 17 00:36:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mdump): error message refined.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 19:27:43 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_recursive): remove</div><div class='add'>+	  implementation dependent test.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 17:42:52 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): install-capi needs docdir.  And,</div><div class='add'>+	  mandir, infodir and ridir are also depend on datadir like docdir.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 17:20:49 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix#/): Fix obvious bug</div><div class='add'>+</div><div class='add'>+Wed Sep 16 16:59:34 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (DOCTARGETS): rdoc is default.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 16:27:40 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: typo.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 16:20:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CAPITARGET): enable iff doxygen is available.</div><div class='add'>+</div><div class='add'>+	* configure.in (INSTALLDOC): enable if rdoc or doxygen are enabled.</div><div class='add'>+</div><div class='add'>+	* common.mk (docs): target to make documents.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (install-{all,nodoc}): trigger</div><div class='add'>+	  by $(INSTALLDOC) from install.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 13:39:10 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (determinant): Bug fix where determinant failed on</div><div class='add'>+	  some matrices [ruby-core:23597]</div><div class='add'>+</div><div class='add'>+Wed Sep 16 13:30:20 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb:  trivial optimizations</div><div class='add'>+</div><div class='add'>+Wed Sep 16 13:15:17 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/Doxyfile.tmpl: RbConfig::CONFIG['DOT'] is sometimes nil.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 10:14:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (rb_protect, rb_jump_tag): added.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 10:12:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (main): makes also encs.</div><div class='add'>+</div><div class='add'>+Wed Sep 16 06:30:07 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_exec_recursive_outer, rb_exec_recursive): Added method</div><div class='add'>+	  to short-circuit to the outermost level in case of recursion</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (test_recursive_outer): Test for above</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_hash): Return a sensible hash for in case of</div><div class='add'>+	  recursion [ruby-core:24648]</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_hash): ditto</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_hash): ditto</div><div class='add'>+</div><div class='add'>+	* array.c (rb_array_hash): ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_hash2): test for above</div><div class='add'>+</div><div class='add'>+Wed Sep 16 06:17:33 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_catch_obj, rb_catch, rb_f_catch): No longer use the</div><div class='add'>+	  obsolete function rb_iterate.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 21:48:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--enable-frame-address): removed.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 15:21:01 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{configure.bat,Makefile.sub} (RDOCTARGET): the meaning of this</div><div class='add'>+	  macro was changed at r24923.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 15:16:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (install-rdoc), configure.in (RDOCTARGET): removed</div><div class='add'>+	  circular dependency.  [ruby-dev:39339]</div><div class='add'>+</div><div class='add'>+Tue Sep 15 15:09:13 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: need a space before a tab to output the tab by</div><div class='add'>+	  echo.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 14:24:52 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): use rb_isspace when the</div><div class='add'>+	  string may be ASCII-incompatible.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 12:12:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_USE_BUILTIN_FRAME_ADDRESS): check after real</div><div class='add'>+	  target CPU is set.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_UNIVERSAL_ARCH): check real target CPU after</div><div class='add'>+	  AC_PROG_CC.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 06:42:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (install-all): target to install all.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (parse_args): accept all install targets.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (parse_args): show help message and exit if</div><div class='add'>+	  rbconfig could not load.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 04:25:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RDOCTARGET): use install-all.  [ruby-dev:39334]</div><div class='add'>+</div><div class='add'>+Tue Sep 15 03:00:35 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang): use ascii_isspace().  [ruby-dev:39322]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 16:39:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c, parse.y: fixed types.</div><div class='add'>+</div><div class='add'>+	* node.h (nd_line): limit to int.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 11:23:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, common.mk, */configure.bat (rdoc): make before</div><div class='add'>+	  install if rdoc is enabled.  [ruby-dev:39325]</div><div class='add'>+</div><div class='add'>+Mon Sep 14 10:56:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (check-ruby): run all test of ruby itself.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 10:44:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RB_TYPE_P): should not use BUILTIN_TYPE for</div><div class='add'>+	  special constants.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 10:08:19 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): use rb_enc_mbc_to_codepoint</div><div class='add'>+	  because we already knew char is found and got length.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 09:59:03 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2INT, NUM2LL, INT2NUM, UINT2NUM),</div><div class='add'>+	  (LONG2NUM, ULONG2NUM, NUM2CHR): get rid of backward references of</div><div class='add'>+	  macros.  the code couldn't compile by VC.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 08:33:11 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (each_*): return enumerator if no block present.</div><div class='add'>+	  Patch by Arthur Schreiber [ruby-core:18310]</div><div class='add'>+</div><div class='add'>+Mon Sep 14 06:42:21 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/cookie.rb (value): Keep CGI::Cookie#value in sync with the</div><div class='add'>+	  cookie itself. Based on a patch by Arthur Schreiber [ruby-core:17634]</div><div class='add'>+</div><div class='add'>+Mon Sep 14 05:21:12 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (fetch): Handle properly default values; a patch by</div><div class='add'>+	  Arthur Schreiber [ruby-core:18308]</div><div class='add'>+</div><div class='add'>+Mon Sep 14 04:07:09 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (==): Optimization; patch by Arthur Schreiber [ruby-core:17203]</div><div class='add'>+</div><div class='add'>+Mon Sep 14 03:30:23 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/pre-build: added rule to generate id.h for Symbian build.</div><div class='add'>+</div><div class='add'>+	* symbian/configure.bat: fixed harmless error message.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 22:18:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_const): do not change VM state when an</div><div class='add'>+	  exception will occur.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 21:25:01 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (oletypelib_get_libattr): some refactoring</div><div class='add'>+	  by adding oletypelib_get_libattr.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 20:55:19 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (oletypelib_get_typelib): some refactoring</div><div class='add'>+	  by adding oletypelib_get_typelib.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 20:18:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_sflag, proc_options, load_file_internal): fixed</div><div class='add'>+	  types.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 19:39:59 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: some refactoring.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 19:38:34 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): no need to define DATA when error.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 18:48:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XLDFLAGS): link startup code with ObjC support.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 13:38:00 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (recursive_*): refactored the access to the inspect</div><div class='add'>+	  table used by rb_exec_recursive_*. The functions recursive_push,</div><div class='add'>+	  pop and check now assume a valid hash table as their first</div><div class='add'>+	  argument. Added documentation.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 12:07:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (SYM2ID): needs parens.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2INT, NUM2LL, INT2NUM, UINT2NUM),</div><div class='add'>+	  (LONG2NUM, ULONG2NUM, NUM2CHR, rb_type_p, rb_special_const_p):</div><div class='add'>+	  GCC specific optimization.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 11:06:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Meta#content_type_parse): strip quotes.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 09:38:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (EratosthenesGenerator#initialize): call super.</div><div class='add'>+	  (TrialDivisionGenerator, Generator23): ditto.  [ruby-core:25539]</div><div class='add'>+</div><div class='add'>+Sun Sep 13 09:34:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method_def): no warning for inherited</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 08:30:30 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: fix WIN32OLE_TYPELIB.new when the 1st</div><div class='add'>+	  argument is the non-registered file.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 02:08:43 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: change members of iseq_inline_cache_entry.</div><div class='add'>+	  make cache value members to one union member "ic_value".</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 01:15:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::FTP#buffer_open): fix the %2F handling.</div><div class='add'>+</div><div class='add'>+Sun Sep 13 00:46:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (CALL_METHOD_HOOK): refined with macro.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_remove_method_id): no definition body is</div><div class='add'>+	  undefined.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method, rb_add_method_me): call method added</div><div class='add'>+	  hook after definition.  [ruby-core:25536]</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_alias): hooks are called from rb_add_method_def.</div><div class='add'>+</div><div class='add'>+Sat Sep 12 22:47:24 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::FTP#buffer_open): use the port specified in</div><div class='add'>+	  the URI.</div><div class='add'>+</div><div class='add'>+Sat Sep 12 17:31:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (GCC): subst for GCC depending extension libraries.</div><div class='add'>+</div><div class='add'>+Sat Sep 12 07:52:59 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Invoke): initialize result</div><div class='add'>+	  variant value.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 21:52:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: update for 1.9.2.  based on a patch from Run Paint Run Run</div><div class='add'>+	  in [ruby-core:25534].</div><div class='add'>+</div><div class='add'>+Fri Sep 11 21:38:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check for real target cpu on darwin 10.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 18:51:57 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils: use require_relative to require fileasserts.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 14:22:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (debugflags): use gdb by default on linux and</div><div class='add'>+	  darwin.</div><div class='add'>+</div><div class='add'>+	* configure.in (XLDFLAGS): keep ARCHFILE macro on AIX.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): define typename to default</div><div class='add'>+	  type if the latter is found.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 13:57:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (fstat): override if large file support is</div><div class='add'>+	  enabled.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 11:33:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/config.{guess,sub}: updated to automake-1.11.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 10:38:33 2009  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPHeader::encode_kvpair): also call to_s</div><div class='add'>+	  to k.  A patch from swdyh &lt;youhei@gmail.com&gt;</div><div class='add'>+	  http://github.com/swdyh/ruby/tree/c847f43c2ccb679b9ff728f8b1b16c6ceeb57f39</div><div class='add'>+</div><div class='add'>+Fri Sep 11 09:45:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): get rid of using uninitialized value in the</div><div class='add'>+	  case loadquery fails.  fixed wrong index variable usage.  see</div><div class='add'>+	  [ruby-core:25479].</div><div class='add'>+</div><div class='add'>+Fri Sep 11 07:52:43 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* unicode.c (onigenc_unicode_property_name_to_ctype):</div><div class='add'>+	  ignore case of properties.</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: downcase properties list.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h, enc/unicode/name2ctype.h.blt,</div><div class='add'>+	  enc/unicode/name2ctype.kwd, enc/unicode/name2ctype.src:</div><div class='add'>+	  follow above.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 05:00:19 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_data_type_t): Add comments.</div><div class='add'>+	  And add a member variable "data", a multi-purpose storage</div><div class='add'>+	  area for rb_data_type.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 02:14:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl: use require_relative to require test_base.rb.</div><div class='add'>+</div><div class='add'>+Fri Sep 11 02:06:44 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_char_to_option_kcode): ASCII-8BIT should</div><div class='add'>+	  also delay.</div><div class='add'>+</div><div class='add'>+	* re.c (parser_regx_options): return rb_ascii8bit_encindex on</div><div class='add'>+	  ASCII-8BIT. [ruby-dev:39300]</div><div class='add'>+</div><div class='add'>+Fri Sep 11 01:14:00 2009  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (fetch): rdoc fix, patch by Arthur Schreiber.</div><div class='add'>+	  [ruby-core:18309].</div><div class='add'>+</div><div class='add'>+Thu Sep 10 23:00:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): fix for parallel execution.</div><div class='add'>+	  [ruby-core:25509]</div><div class='add'>+</div><div class='add'>+Thu Sep 10 21:22:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_cptr.rb (test_free=): test SEGV at first.</div><div class='add'>+	  [ruby-dev:39269]</div><div class='add'>+</div><div class='add'>+Thu Sep 10 21:20:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): Don't use</div><div class='add'>+	  AssertionMessage.</div><div class='add'>+</div><div class='add'>+Thu Sep 10 15:59:05 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (UNKNOWN_ESC_WARN): added.</div><div class='add'>+</div><div class='add'>+	* regparse.c (conv_backslash_value): Warn unknown</div><div class='add'>+	  escaped chars in regexp. [ruby-dev:39104]</div><div class='add'>+</div><div class='add'>+Wed Sep  9 22:02:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#copy_file): open the source</div><div class='add'>+	  file first to ensure it can be copied.  [ruby-core:25498]</div><div class='add'>+</div><div class='add'>+Wed Sep  9 21:20:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (dlcfunc_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (dlptr_data_type): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (dlhandle_data_type): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 17:17:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (parser_regx_options): only one kcode should effect</div><div class='add'>+	  options [ruby-core:25411]</div><div class='add'>+</div><div class='add'>+Wed Sep  9 15:46:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_provided): fixed for autoloading extension</div><div class='add'>+	  library without suffix.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 15:24:32 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h : revert previous commit.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c : remove st_memsize declare.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 14:07:19 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h : fix duplicate st_memsize declare.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 13:33:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload): initialize typed data.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 13:10:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_free_table): constified.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 13:09:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_data_type): typed.</div><div class='add'>+	  (yielder_data_type, generator_data_type): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* file.c (stat_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* thread.c (thgroup_data_type, mutex_data_type, barrier_data_type):</div><div class='add'>+	  typed.</div><div class='add'>+</div><div class='add'>+	* time.c (time_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_data_type): typed.</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_data_type): typed.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 11:11:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_data_type_struct): constified dsize.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 11:07:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_memsize): fixed wrong expression on IA64.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 10:51:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1, rb_cont_call): should be Fiber.</div><div class='add'>+</div><div class='add'>+Wed Sep  9 00:27:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_data_type, fiber_data_type): typed.</div><div class='add'>+</div><div class='add'>+Tue Sep  8 22:37:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb, lib/tmpdir.rb (Tmpname): extracted new module.</div><div class='add'>+	  [ruby-dev:39197]</div><div class='add'>+</div><div class='add'>+Tue Sep  8 22:18:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_init_*table_with_size): use st_index_t.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (st_hash_func): use st_index_t.</div><div class='add'>+</div><div class='add'>+Tue Sep  8 21:48:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): mark callers iseqs.  [ruby-core:25474]</div><div class='add'>+	  [Bug #2062]</div><div class='add'>+</div><div class='add'>+Tue Sep  8 11:53:58 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_mark): no need to mark inline cache entries.</div><div class='add'>+</div><div class='add'>+	* insns.def (onceinlinecache, setinlinecache): save a value</div><div class='add'>+	  to mark cached value.</div><div class='add'>+</div><div class='add'>+Tue Sep  8 08:32:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_{cfunc,ptr}.rb: added tests from Aaron Patterson.</div><div class='add'>+	  see [ruby-dev:39249].</div><div class='add'>+</div><div class='add'>+Mon Sep  7 17:22:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_tell): adjustment for ungotten data.</div><div class='add'>+</div><div class='add'>+Mon Sep  7 17:13:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encname_bom_p): removed magic number.</div><div class='add'>+</div><div class='add'>+Mon Sep  7 12:26:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/inspector.rb (IRB::INSPECTORS.def_inspector): support</div><div class='add'>+	  object without #inspect defined.  a patch from Daniel</div><div class='add'>+	  Bovensiepen.  [ruby-core:25200]</div><div class='add'>+</div><div class='add'>+Mon Sep  7 05:38:34 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_*): add IC operands.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (CALL_SIMPLE_METHOD): add a version which</div><div class='add'>+	  use an inline cache.  USE_IC_FOR_SPECIALIZED_METHOD macro</div><div class='add'>+	  switches the behaviour.  This change also removes</div><div class='add'>+	  CALL_SIMPLE_METHOD_IC() macro.</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb: fix elimination process to ignore</div><div class='add'>+	  variable "ic".</div><div class='add'>+</div><div class='add'>+Mon Sep  7 05:21:09 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk: move a id.h generation rule.</div><div class='add'>+</div><div class='add'>+Mon Sep  7 05:07:59 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: remove RUBY_VERSION output.</div><div class='add'>+</div><div class='add'>+Mon Sep  7 05:06:16 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c: rename macro name ENABLE_IC_FOR_IVAR</div><div class='add'>+	  to USE_IC_FOR_IVAR.</div><div class='add'>+</div><div class='add'>+Mon Sep  7 03:21:40 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.escape): obsoleted.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.unescape): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep  6 18:13:54 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (CALL_SIMPLE_METHOD_IC): make a macro</div><div class='add'>+	  invoke simple method with inline cache entry.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_length, opt_size): fix to use inline method cache.</div><div class='add'>+</div><div class='add'>+Sun Sep  6 17:47:21 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl: fix this.</div><div class='add'>+</div><div class='add'>+	* id.h: removed.  Because this file is generated automatically.</div><div class='add'>+</div><div class='add'>+Sun Sep  6 17:31:28 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_specialized_instruction), insns.def (opt_size):</div><div class='add'>+	  optimize #size methods (by specialized instruction).</div><div class='add'>+</div><div class='add'>+	* id.c, id.h, vm.c, vm_insnhelper.h: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep  6 16:13:06 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (setinstancevariable), vm_insnhelper.c (vm_setivar):</div><div class='add'>+	  fix to use inline cache (trivial optimization).</div><div class='add'>+</div><div class='add'>+Sun Sep  6 10:34:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: fixed rdoc, a patch from Nobuhiro IMAI at [ruby-core:25433].</div><div class='add'>+</div><div class='add'>+Sun Sep  6 05:19:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: Add rdoc for ARGF.</div><div class='add'>+	  contributed by Run Paint Run Run. [ruby-core:23854]</div><div class='add'>+</div><div class='add'>+Sat Sep  5 15:21:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): op_asgn to aref should return rhs.</div><div class='add'>+	  [ruby-core:25387]</div><div class='add'>+</div><div class='add'>+Sat Sep  5 10:38:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): &amp;&amp;= and ||= should return rhs.</div><div class='add'>+	  [ruby-dev:39163] (#1996), [ruby-core:25143]</div><div class='add'>+</div><div class='add'>+Sat Sep  5 08:51:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (update_char_offset): position should be long.</div><div class='add'>+</div><div class='add'>+	* re.c (match_hash, match_equal): new methods.  [ruby-core:24748]</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match_pos, rb_reg_eqq, rb_reg_s_quote): get rid of use</div><div class='add'>+	  VALUE as int.</div><div class='add'>+</div><div class='add'>+Fri Sep  4 20:40:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (round): added declaration.  [ruby-dev:39222]</div><div class='add'>+</div><div class='add'>+Fri Sep  4 06:15:39 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): alias Dir#path to Dir#to_path.  [ruby-core:25326]</div><div class='add'>+</div><div class='add'>+Fri Sep  4 04:49:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): fixed rdoc.  [ruby-core:25332]</div><div class='add'>+</div><div class='add'>+Fri Sep  4 04:46:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/abstract.rb (do_OPTIONS): method names</div><div class='add'>+	  are symbols now.  [ruby-core:24580]</div><div class='add'>+</div><div class='add'>+Thu Sep  3 17:56:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_gen): concat body from dstr instead of</div><div class='add'>+	  nd_next.  [ruby-core:25284]</div><div class='add'>+</div><div class='add'>+Wed Sep  2 16:49:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_gamma): get rid of direct comparison between too</div><div class='add'>+	  big double and integer, with gcc on x86_64.  [ruby-core:25257]</div><div class='add'>+</div><div class='add'>+Wed Sep  2 13:47:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): simplified.</div><div class='add'>+</div><div class='add'>+Wed Sep  2 11:32:24 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): fix to free method table (fix memory leak).</div><div class='add'>+</div><div class='add'>+Wed Sep  2 07:42:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb (RubyVM::InstructionsLoader#make_stackcaching_insns):</div><div class='add'>+	  simplified.</div><div class='add'>+</div><div class='add'>+Wed Sep  2 02:32:46 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/common.rb (NaN): Change definition</div><div class='add'>+	  of NaN to 0.0/0 for 1.8/1.9 compatibility.</div><div class='add'>+</div><div class='add'>+Wed Sep  2 01:16:32 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Update to JSON 1.1.9.</div><div class='add'>+</div><div class='add'>+Tue Sep  1 19:56:28 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): fix to check local_table_size.</div><div class='add'>+	  [ruby-dev:39205] [Bug #2024]</div><div class='add'>+</div><div class='add'>+Mon Aug 31 16:20:41 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (make_singleton_class): variable name changed.</div><div class='add'>+	  removed an unnecessary conditional.</div><div class='add'>+</div><div class='add'>+Mon Aug 31 14:17:09 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c: refactored singleton class related matters.</div><div class='add'>+	  Handles eigenclasses and plain classes transparently.</div><div class='add'>+</div><div class='add'>+	  (make_metaclass): renamed from make_metametaclass.</div><div class='add'>+	  (METACLASS_OF): new utility macro</div><div class='add'>+	  (META_CLASS_OF_CLASS_CLASS): ditto.</div><div class='add'>+	  (ENSURE_EIGENCLASS): ditto.</div><div class='add'>+	  (make_singleton_class): extracted from rb_singleton_class.</div><div class='add'>+	  (boot_defclass): moved from object.c</div><div class='add'>+	  (Init_class_hierarchy): extracted from Init_Object.</div><div class='add'>+	  (rb_make_metaclass): refactored.</div><div class='add'>+	  (singleton_class_of): extracted from rb_singleton_class.</div><div class='add'>+	  (rb_singleton_class): refactored.</div><div class='add'>+	  (rb_define_singleton_method): it needs a metaclass only</div><div class='add'>+	  but not its metametaclass.</div><div class='add'>+</div><div class='add'>+	* object.c: booting class hierarchy was moved to class.c</div><div class='add'>+	  for keeping dependency between compilation units least.</div><div class='add'>+	  (Init_Object): extracting the booting into</div><div class='add'>+	  Init_class_hierarchy.</div><div class='add'>+	  (boot_defclass): moved to class.c.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 23:44:09 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): use mktime for the first guess.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 16:38:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname2_p): not depend on nul terminator.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 14:11:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: dependencies updated.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 13:00:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (add): shortcut implemented for fixnums.</div><div class='add'>+	  (sub): ditto.</div><div class='add'>+	  (mul): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 10:24:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (eq): apply RTEST.</div><div class='add'>+	  (ne): ditto.</div><div class='add'>+	  (add): avoid method dispatch for bignums.</div><div class='add'>+	  (sub): ditto.</div><div class='add'>+	  (mul): ditto.</div><div class='add'>+	  (mod): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 09:45:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_single): new function specialized respect to</div><div class='add'>+	  multiply two single digit bignums.</div><div class='add'>+	  (bigmul0): use bigmul1_single.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 03:59:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* timev.h (TIME_SCALE): defined as 1000000000.</div><div class='add'>+	  (struct vtm): subsec is replaced by subsecx.</div><div class='add'>+	  subsec * TIME_SCALE == subsecx.</div><div class='add'>+</div><div class='add'>+	* time.c: avoid rational in most cases.</div><div class='add'>+	  (struct time_object): timev is replaced by timexv.</div><div class='add'>+	  timev * TIME_SCALE == timexv.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 03:17:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (init_leap_second_info): use TIMET_MAX.</div><div class='add'>+</div><div class='add'>+Sun Aug 30 01:15:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read_all): use gzfile_newstr;</div><div class='add'>+	  set and convert its encoding. [ruby-dev:38304]</div><div class='add'>+</div><div class='add'>+Sat Aug 29 20:40:02 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_call0): gets rid of checking method cache twice.</div><div class='add'>+</div><div class='add'>+	* method.h (rb_get_method_entry): added a prototype of the function.</div><div class='add'>+	  (rb_method_entry_without_cache): more friendly name.</div><div class='add'>+</div><div class='add'>+Sat Aug 29 12:16:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir.mktmpdir): rolled back r24699.  [ruby-dev:39193]</div><div class='add'>+</div><div class='add'>+Sat Aug 29 03:27:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#make_tmpname): removed thread race</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir.mktmpdir): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 20:29:34 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#callback): Debug information should be</div><div class='add'>+	  output to stderr, not stdout; pointed out by akira yamada.</div><div class='add'>+	  cf. [ruby-dev:39072]</div><div class='add'>+</div><div class='add'>+Fri Aug 28 20:34:24 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: use SafeStringValue instead of</div><div class='add'>+	  Check_SafeStr.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 13:30:43 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): rollback r24680. void struct initializer is</div><div class='add'>+	  invalid.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 11:45:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h (rb_method_definition_t): split from rb_method_entry_</div><div class='add'>+	  to deal aliases.  [ruby-dev:39165]</div><div class='add'>+</div><div class='add'>+	* proc.c (struct METHOD): contains rb_method_entry_t copy.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 10:21:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_mark): skip outdated cache entries.</div><div class='add'>+</div><div class='add'>+	* vm_core.h ({GET,INC}_VM_STATE_VERSION): moved from</div><div class='add'>+	  vm_insnhelper.h.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 07:25:25 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_i): typo fixed (reached at end -&gt; reached an</div><div class='add'>+	  end).  pointed out by James Edward Gray II at LoneStar RubyConf.</div><div class='add'>+</div><div class='add'>+Thu Aug 27 18:31:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_remove_method_id): exported.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_sadded): fix for non-ascii method name.</div><div class='add'>+</div><div class='add'>+Thu Aug 27 14:32:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): set encoding as ASCII-8BIT</div><div class='add'>+	  when /n is specified and the embedded string is escaped text.</div><div class='add'>+</div><div class='add'>+Thu Aug 27 13:51:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): random integer can be a fixnum for</div><div class='add'>+	  bignum range.  [ruby-dev:39173]</div><div class='add'>+</div><div class='add'>+Thu Aug 27 08:16:34 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_set_string): set string should not be</div><div class='add'>+	  duped or frozen, because freezing it causes #concat method failure,</div><div class='add'>+	  and unnecessary to dup without freezing.  a patch from Aaron</div><div class='add'>+	  Patterson at [ruby-core:25145].</div><div class='add'>+</div><div class='add'>+Thu Aug 27 02:06:11 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (enc/unicode/name2ctype.kwd):</div><div class='add'>+	  remove rules to generate name2ctype.kwd from</div><div class='add'>+	  UnicodeData.txt and Scripts.txt.</div><div class='add'>+	  if you want to generate, use tool/enc-unicode.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 27 02:00:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* unicode.c (PROPERTY_NAME_MAX_SIZE): use MAX_WORD_LENGTH.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 23:59:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): refined error message.</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): fixed for edge cases of ranges.</div><div class='add'>+	  [ruby-dev:39166]</div><div class='add'>+</div><div class='add'>+Wed Aug 26 21:49:23 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: add documents from Hongli Lai's fork.</div><div class='add'>+	  cf [ruby-core:25131].</div><div class='add'>+</div><div class='add'>+Wed Aug 26 19:51:13 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb (program_transform_name): fix for multiple trans</div><div class='add'>+	  rules for autoconf 2.61 or earlier.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (program_transform_name): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 19:20:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_rand): unified random_int and random_float.</div><div class='add'>+	  [ruby-dev:39158].  and fixes [ruby-core:24655], [ruby-core:24677],</div><div class='add'>+	  [ruby-core:24679].</div><div class='add'>+</div><div class='add'>+Wed Aug 26 18:59:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_tempfile.rb: merged from Hongli Lai's fork.</div><div class='add'>+	  cf [ruby-core:25131].</div><div class='add'>+</div><div class='add'>+Wed Aug 26 18:49:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#close!): should not undefine finalizer</div><div class='add'>+	  by just unlink.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 17:00:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb (program_transform_name): fix for autoconf 2.61</div><div class='add'>+	  or earlier.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 14:34:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#close!, Tempfile#path): added side</div><div class='add'>+	  notes from Hongli Lai's fork.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink, Tempfile.callback): do nothing</div><div class='add'>+	  any more once unlinked.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 13:48:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink): reverted r23494, since the</div><div class='add'>+	  usage in RubyInline is considered wrong.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 12:36:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (collect_local_variables_in_env): skips internal variables.</div><div class='add'>+	  [ruby-core:25125]</div><div class='add'>+</div><div class='add'>+Tue Aug 25 23:51:07 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: added for generate name2ctype.kwd.</div><div class='add'>+	  contributed by Run Paint Run Run [ruby-core:24775]</div><div class='add'>+</div><div class='add'>+	* enc/unicode.c (CodeRanges): move definitions to name2ctype.h.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h.blt, enc/unicode/name2ctype.kwd,</div><div class='add'>+	  enc/unicode/name2ctype.src: updated to v5.1.</div><div class='add'>+</div><div class='add'>+	* enc/unicode/UnicodeData.txt, enc/unicode/Scripts.txt: added v5.1.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add rule to generate name2ctype.kwd from</div><div class='add'>+	  UnicodeData.txt and Scripts.txt.</div><div class='add'>+</div><div class='add'>+Tue Aug 25 22:31:51 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MKDIR_P): Set 'mkdir -p' to MKDIR_P</div><div class='add'>+	  when AC_PROG_MKDIR_P doesn't set MKDIR_P.</div><div class='add'>+</div><div class='add'>+Tue Aug 25 17:38:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_clone, bigmul1_normal, bigdivrem): trivial</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2dbl): truncates zero digits to get rid of possible</div><div class='add'>+	  underflow.</div><div class='add'>+</div><div class='add'>+Tue Aug 25 12:22:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (enc/unicode/name2ctype.h): explicitly ignores the</div><div class='add'>+	  result of diff and turns -e option off, because *BSD make passes</div><div class='add'>+	  it by default.</div><div class='add'>+</div><div class='add'>+Tue Aug 25 02:16:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (DLDFLAGS): use linker_flag and changed undefined</div><div class='add'>+	  and multiply_defined behaviors. cf [ruby-core:25086].</div><div class='add'>+</div><div class='add'>+Mon Aug 24 21:31:37 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb, test/rss/test_maker_2.0.rb: fix a bug</div><div class='add'>+	  that RSS Maker doesn't accept 'false' as guid's isPermaLink.</div><div class='add'>+	  Reported by Joe Holt. Thanks!!!</div><div class='add'>+</div><div class='add'>+Mon Aug 24 18:58:56 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (vsnprintf): rollback a part of r24179, because</div><div class='add'>+	  it's meaningless.</div><div class='add'>+</div><div class='add'>+Mon Aug 24 16:35:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_delete_safe): deals with packed entries.</div><div class='add'>+	  [ruby-core:25080]</div><div class='add'>+</div><div class='add'>+	* st.c (st_cleanup_safe): ditto.  [ruby-core:25081]</div><div class='add'>+</div><div class='add'>+Mon Aug 24 13:24:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (MAKEDIRS): define.</div><div class='add'>+</div><div class='add'>+	* common.mk (capi): using $(MAKEDIRS), so depends on $(PREP).</div><div class='add'>+</div><div class='add'>+Mon Aug 24 13:14:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): set cross_compiling only when</div><div class='add'>+	  universal binary.</div><div class='add'>+</div><div class='add'>+Mon Aug 24 12:55:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (enc/unicode/name2ctype.h): use md instead of</div><div class='add'>+	  $(MAKEDIRS).</div><div class='add'>+</div><div class='add'>+Sun Aug 23 15:22:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (main): "usage" description updated.</div><div class='add'>+</div><div class='add'>+Sun Aug 23 15:12:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (Dir.mktmpdir): updated to latest.</div><div class='add'>+	  (in_temporary_working_directory): temporary directory name changed.</div><div class='add'>+</div><div class='add'>+Sun Aug 23 00:56:13 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_schedule): don't recur infinitely.</div><div class='add'>+	  (rb_threadptr_execute_interrupts): ditto.</div><div class='add'>+	  [ruby-dev:38060]</div><div class='add'>+</div><div class='add'>+Sat Aug 22 15:07:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (id_hash_new): new function to create a hash</div><div class='add'>+	  which key is compared by object id.</div><div class='add'>+	  (syck_emitter_reset): use id_hash_new for bonus-&gt;data.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML.quick_emit): give the object itself to emitter.</div><div class='add'>+	  don't use object_id and hash.</div><div class='add'>+</div><div class='add'>+Sat Aug 22 13:05:22 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: use CP and MV macros.</div><div class='add'>+</div><div class='add'>+Sat Aug 22 01:29:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (rm_f, rm_rf): pass the last hash through if exists.</div><div class='add'>+	  [ruby-dev:39153]</div><div class='add'>+</div><div class='add'>+Sat Aug 22 00:48:08 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (ary2sv): add dup argument.</div><div class='add'>+	  (enumerator_next): call ary2sv with dup=0.</div><div class='add'>+	  (enumerator_peek): call ary2sv with dup=1 to return duplicated array.</div><div class='add'>+	  (enumerator_peek_values_m): new function to return duplicated array.</div><div class='add'>+	  (Init_Enumerator): use enumerator_peek_values_m as</div><div class='add'>+	  Enumerator#peek_value.</div><div class='add'>+</div><div class='add'>+Sat Aug 22 00:03:19 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_check_deadlock): decrease number of sleepers before</div><div class='add'>+	  deadlock detection because the deadlock exception makes main thread</div><div class='add'>+	  run.  [ruby-dev:39142]</div><div class='add'>+</div><div class='add'>+Fri Aug 21 22:34:58 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (get_next_values): extracted from</div><div class='add'>+	  enumerator_next_values.</div><div class='add'>+	  (enumerator_next_values): use get_next_values.</div><div class='add'>+	  (enumerator_peek_values): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 17:01:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/unicode/name2ctype.h: split from enc/unicode.c and made a</div><div class='add'>+	  perfect hash.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 15:13:08 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h, io.c (FMODE_SETENC_BY_BOM):</div><div class='add'>+	  renamed from FMODE_STRIP_BOM.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 01:24:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fmode_modestr): change modestr syntax for BOM</div><div class='add'>+	  to "BOM|UTF-*". [ruby-dev:39106]</div><div class='add'>+</div><div class='add'>+	* io.c (parse_mode_enc): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 15:01:35 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): use rb_prep_terminal</div><div class='add'>+	  only on Windows.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 07:25:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/gemdirs.rb: split from lib/rdoc/ri/paths.rb to ge</div><div class='add'>+	  rid of loading rubygems and searching all gems always.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 07:14:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_PROGRAM_VERSION, RUBY_RELEASE_DATE): extracts</div><div class='add'>+	  from version.h for cross-compiling.</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in (RUBY_VERSION, RUBY_DESCRIPTION): use above.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 00:08:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths): Gem::Enable has been obsolete.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 23:56:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_sysopen): moved sysopen_struct from rb_sysopen_internal.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 23:39:51 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reduce_nodes_gen): preserve NODE_FL_NEWLINE flag during</div><div class='add'>+	  node reducing.  [ruby-core:24463]</div><div class='add'>+</div><div class='add'>+Thu Aug 20 14:39:47 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_get): add rl_prep_terminal(1).</div><div class='add'>+	  incited by jitte [ruby-list:43546]</div><div class='add'>+</div><div class='add'>+Thu Aug 20 12:09:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ivar2_hash_type): disabled for now.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 08:39:50 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_terminate_all): do not ignore interrupt when</div><div class='add'>+	  reaping threads on termination.  [ruby-dev:39107]</div><div class='add'>+</div><div class='add'>+Thu Aug 20 02:32:08 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_init): don't clear feedvalue.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 01:28:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: implement Enumerator#{next_values,peek_values,feed}</div><div class='add'>+	  and StopIteration#result.  [ruby-dev:39109]</div><div class='add'>+	  (struct enumerator): replace no_next by stop_exc.</div><div class='add'>+	  new field feedvalue.</div><div class='add'>+	  (enumerator_mark): mark feedvalue and stop_exc.</div><div class='add'>+	  (enumerator_init): initialize feedvalue and stop_exc.</div><div class='add'>+	  (enumerator_init_copy): initialize feedvalue.</div><div class='add'>+	  (next_ii): send yield arguments as an array.  return feedvalue.</div><div class='add'>+	  (next_i): generate StopIteration exception here.  set result.</div><div class='add'>+	  (next_init): initialize feedvalue.</div><div class='add'>+	  (enumerator_next_values): new method Enumerator#next_values.</div><div class='add'>+	  (ary2sv): new function.</div><div class='add'>+	  (enumerator_peek_values): new method Enumerator#peek_values.</div><div class='add'>+	  (enumerator_feed): new method Enumerator#feed.</div><div class='add'>+	  (yielder_yield): return the yield value.</div><div class='add'>+	  (generator_each): return the iterator value.</div><div class='add'>+	  (stop_result): new method StopIteration#result.</div><div class='add'>+</div><div class='add'>+Thu Aug 20 01:06:48 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (DEFINE_STRUCT_DIRENT): use union to allocate sufficient</div><div class='add'>+	  memory space for Solaris.  a patch from Naohisa GOTO</div><div class='add'>+	  &lt;ngoto at gen-info.osaka-u.ac.jp&gt; in [ruby-dev:39132].</div><div class='add'>+	  [ruby-dev:39062]</div><div class='add'>+</div><div class='add'>+	* configure.in (SIZEOF_STRUCT_DIRENT_TOO_SMALL): Solaris dirent</div><div class='add'>+	  check.</div><div class='add'>+</div><div class='add'>+Wed Aug 19 11:32:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/unicode.c (CodeRanges): initialized statically.</div><div class='add'>+</div><div class='add'>+Wed Aug 19 02:54:01 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (test_return, test_return2): add two</div><div class='add'>+	  tests for [ruby-dev:38701] and [ruby-core:24463].</div><div class='add'>+</div><div class='add'>+Wed Aug 19 01:08:34 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (NODE_RETURN): fire return event at explicit return.</div><div class='add'>+	  [ruby-dev:38701]</div><div class='add'>+</div><div class='add'>+Tue Aug 18 21:00:26 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_peek): new method Enumerator#peek.</div><div class='add'>+	  (enumerator_next): don't rewind at end.</div><div class='add'>+	  [ruby-dev:38932]</div><div class='add'>+</div><div class='add'>+Tue Aug 18 13:46:14 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* touch test/rdoc/empty.dat to run test_rdoc_parser.rb</div><div class='add'>+</div><div class='add'>+Tue Aug 18 11:37:24 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): ensure hook c-return.</div><div class='add'>+	  [Bug #1588]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_raise):</div><div class='add'>+	  follow above.</div><div class='add'>+</div><div class='add'>+Tue Aug 18 01:57:00 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): treat symbols specially so that iterating</div><div class='add'>+	  over symbols should work like strings.  [ruby-core:24780]</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 18 01:21:31 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): should honor to_str conversion.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 23:45:40 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/delta.rb: removed require 'date'.  added to_c.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 14:35:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_get_str, lex_io_gets, rb_parser_compile_string):</div><div class='add'>+	  must be ascii compatible.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 10:37:41 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range_to_buf0): added with checkdup argument.</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range_to_buf): use above.</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range0): added with checkdup argument.</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range): use above.</div><div class='add'>+</div><div class='add'>+	* regparse.c (i_apply_case_fold): don't warn if the duplicate is</div><div class='add'>+	  caused by case folding.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 08:31:56 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/delta.rb: merged from date4.  [experimental]</div><div class='add'>+</div><div class='add'>+	* lib/date/delta/parser.*: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: followed the above changes.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 08:19:03 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (strptime): removed \v; since \s includes \v.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 08:14:26 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_rationalize) added.  [experimental]</div><div class='add'>+</div><div class='add'>+	* rational.c ({nurat,nilclass,integer,float}_rationalize) ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 08:11:53 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: use num#i.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 07:59:00 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_pow,fix_pow): may return complex number.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 07:16:10 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_imaginary): num#i to return imaginary counterpart</div><div class='add'>+	  of the given numeric.</div><div class='add'>+</div><div class='add'>+	* complex.c (Init_Complex): undef #i for complex numbers.</div><div class='add'>+</div><div class='add'>+Mon Aug 17 00:17:33 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb, lib/rational.rb: added warning messages.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 23:58:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should dispatch scan-event even when follows</div><div class='add'>+	  just after delayed-token.  [ruby-dev:37855] [Bug #1071]</div><div class='add'>+</div><div class='add'>+Sun Aug 16 22:20:16 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: reverted.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 21:31:21 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: suppressed a warning.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 15:25:26 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Change magic comment to US-ASCII in order to</div><div class='add'>+	  make literals as US-ASCII.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 10:45:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (parse_char_class, parse_exp, parse_branch),</div><div class='add'>+	  (parse_subexp): fixed memory leak.  a patch from Ralf Junker</div><div class='add'>+	  &lt;ralfjunker AT gmx.de&gt; at [ruby-core:24921].</div><div class='add'>+</div><div class='add'>+Sun Aug 16 10:38:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each, vm_backtrace_push),</div><div class='add'>+	  vm_eval.c (print_backtrace), vm_dump.c (bugreport_backtrace):</div><div class='add'>+	  rb_backtrace_iter_func now takes VALUE as file and method names.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 03:06:59 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (opt_eq_func): fix optimization bug.  This issue</div><div class='add'>+	  was found out and debugged with Takuto Hayashi at Security and</div><div class='add'>+	  Programming camp 2009.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 01:10:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_ctype_to_cc_by_range): fix the first</div><div class='add'>+	  character bigger than sb_out was dropped.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#test_posix_bracket):</div><div class='add'>+	  add tests for above.</div><div class='add'>+</div><div class='add'>+Sun Aug 16 00:30:33 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h</div><div class='add'>+	  (ONIGENC_CTYPE_SPECIAL_MASK): added.</div><div class='add'>+	  (ONIGENC_CTYPE_D): ditto.</div><div class='add'>+	  (ONIGENC_CTYPE_S): ditto.</div><div class='add'>+	  (ONIGENC_CTYPE_W): ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.c: \d, \s and \w are now non Unicode class.</div><div class='add'>+	  [ruby-dev:39026]</div><div class='add'>+	  (fetch_token_in_cc): use ONIGENC_CTYPE_[DSW] for \d/\s/\w.</div><div class='add'>+	  (fetch_token): ditto.</div><div class='add'>+	  (add_ctype_to_cc): add routines for ONIGENC_CTYPE_[DSW].</div><div class='add'>+	  (parse_exp): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#test_char_class):</div><div class='add'>+	  add tests for above.</div><div class='add'>+</div><div class='add'>+Sat Aug 15 10:39:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (fname, string_dvar, sym, dsym, f_arglist): removed</div><div class='add'>+	  duplications.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 20:03:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_check_safe_str): deprecated.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_add_{file,path}):</div><div class='add'>+	  replaced deprecated function.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 17:59:12 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): change Exception class to</div><div class='add'>+	  RegexpError.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_regexp_usascii): follow above.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_regexp_embed): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 17:17:42 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (MKDIRS): revert r24525.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 16:28:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb (Digest::HMAC#initialize): faster</div><div class='add'>+	  code.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 14:31:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rubyhdrdir): fixed typo.  [ruby-dev:39079]</div><div class='add'>+</div><div class='add'>+Fri Aug 14 00:29:22 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/ChangeLog-1.8.0: add forgotten entry contributed by</div><div class='add'>+	  TAKAHASHI Kaoru.  [ruby-dev:39065]</div><div class='add'>+</div><div class='add'>+Fri Aug 14 00:19:49 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator#method_missing): __FILE__ may contain</div><div class='add'>+	  multi-byte characters.  a patch from Kenta Murata in [ruby-dev:39066].</div><div class='add'>+</div><div class='add'>+Thu Aug 13 21:01:03 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_exec): returning from lambda runs ensure section.</div><div class='add'>+	  [Bug #1729]</div><div class='add'>+</div><div class='add'>+Thu Aug 13 18:40:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): set cross_compiling to yes</div><div class='add'>+	  only when AC_COMPUTE_INT, and inverted the arguments.</div><div class='add'>+</div><div class='add'>+Thu Aug 13 18:22:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): use AC_COMPUTE_INT instead of</div><div class='add'>+	  _AC_COMPUTE_INT_COMPILE with cross compiling, since its arguments</div><div class='add'>+	  have been changed at autoconf 2.64.</div><div class='add'>+</div><div class='add'>+Thu Aug 13 16:31:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_case_dispatch): suppressed a warning.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (opt_case_dispatch_i): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 13 16:20:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, Makefile.in (MAKEDIRS): used MKDIR_P instead of</div><div class='add'>+	  as_mkdir_p.  [ruby-dev:39063]</div><div class='add'>+</div><div class='add'>+Thu Aug 13 15:37:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_strlen_null, onigenc_str_bytelen_null): fixed</div><div class='add'>+	  infinite loop for wide encodings.  reported by Ralf Junker a</div><div class='add'>+	  [ruby-core:24892].  [ruby-core:24904]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 21:07:46 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: if ipv6 is enabled, the version of Windows</div><div class='add'>+	  must be XP or later.</div><div class='add'>+	  [ruby-core:24601]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 15:59:29 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (yes-test-knownbug): use RUNRUBY instead of MINIRUBY.</div><div class='add'>+</div><div class='add'>+Wed Aug 12 15:52:04 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module_id_under): fix the name.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module_under): fix for previous changes.</div><div class='add'>+</div><div class='add'>+Wed Aug 12 15:32:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_id_under, rb_define_module_id_under):</div><div class='add'>+	  new functions to define a nested class/module with non-ascii</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): use name with encoding.</div><div class='add'>+</div><div class='add'>+	* struct.c (inspect_struct): ditto.  [ruby-core:24849]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 Wed Aug 12 14:54:34 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h: check</div><div class='add'>+	  definition of (classes)#=== for case/when optimization.</div><div class='add'>+	  Fix Bug #1376 [ruby-core:23190].</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String), bignum.c (Init_Bignum),</div><div class='add'>+	  numeric.c (Init_Numeric): define String#===, Symbol#===,</div><div class='add'>+	  Bignum#===, Fixnum#===, Float#=== as same as (classes)#==.</div><div class='add'>+</div><div class='add'>+Wed Aug 12 14:14:42 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (readdir_internal): free old temporary filename.</div><div class='add'>+	  [ruby-core:24820]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 12:59:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new_frozen): must not change encoding of frozen</div><div class='add'>+	  shared string.  [ruby-dev:39068]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 11:51:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_broken_crypt): needs more checks.</div><div class='add'>+</div><div class='add'>+Wed Aug 12 07:41:31 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): If a string is empty and</div><div class='add'>+	  other's encoding is US-ASCII, returns the empty string's encoding.</div><div class='add'>+	  [ruby-list:46274]</div><div class='add'>+</div><div class='add'>+Wed Aug 12 07:38:12 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (is_data_encoding): fix condition.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_capable): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 11 23:12:31 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (complete_frags): Monday must be suitable for %W's</div><div class='add'>+	  default day.</div><div class='add'>+</div><div class='add'>+Tue Aug 11 21:42:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_divmod): fixed rdoc.  [ruby-core:24862]</div><div class='add'>+</div><div class='add'>+Mon Aug 10 21:45:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_path2class): no deprecation.</div><div class='add'>+</div><div class='add'>+Mon Aug 10 10:57:59 2009  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: reject unused longlife gc. longlife gc target is longlife</div><div class='add'>+	  NODE by method table and vm inline cache. but, fixed it at</div><div class='add'>+	  r24085, r24128. so I rejected longlife gc.</div><div class='add'>+</div><div class='add'>+	* debug.c: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* node.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h: ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 10 06:55:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (class2path, w_unique, w_extended, w_class, w_uclass):</div><div class='add'>+	  deal with non-ascii class path.  [ruby-core:24790]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_unique, path2class, path2module, obj_alloc_by_path),</div><div class='add'>+	  (r_object0): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path_to_class): new encoding-aware function to</div><div class='add'>+	  get a class from its name.</div><div class='add'>+</div><div class='add'>+Sun Aug  9 21:14:03 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb (search_tclConfig): last change isn't enough.</div><div class='add'>+	  fixed it.</div><div class='add'>+</div><div class='add'>+Sun Aug  9 16:36:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ruby.imp): excluded prelude.o to get rid of circular</div><div class='add'>+	  dependency.  [ruby-dev:39052]</div><div class='add'>+</div><div class='add'>+Sun Aug  9 14:49:24 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp, bigsub, big_real_len, bigmul1_normal,</div><div class='add'>+	  bigmul1_balance, big_split): remove BDIGITS() inside of the loops.</div><div class='add'>+	  same as r24444.</div><div class='add'>+</div><div class='add'>+Sat Aug  8 17:03:21 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_ascii_compatible_p): added. [ruby-core:24793]</div><div class='add'>+	  (Init_Encoding): New API Encoding#ascii_compatible?.</div><div class='add'>+</div><div class='add'>+Sun Aug  9 07:25:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c (token_to_eventid): added</div><div class='add'>+	  keyword_do_LAMBDA.  [ruby-dev:39049]</div><div class='add'>+</div><div class='add'>+Sun Aug  9 02:07:41 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: fixes a regexp pattern for require.</div><div class='add'>+	  It had matched 'require("foo"('.</div><div class='add'>+</div><div class='add'>+Sat Aug  8 11:42:44 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigzero_p): removing BDIGITS() inside of the</div><div class='add'>+	  loop. inspired by Masahiro Kanai's blog entry</div><div class='add'>+	  &lt;http://d.hatena.ne.jp/CanI/20090807/1249657492&gt;.</div><div class='add'>+</div><div class='add'>+Sat Aug  8 06:18:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol r_symlink, r_symbol, r_object0): fix for</div><div class='add'>+	  non-ascii symbols.  loading such symbols can cause segfaults in</div><div class='add'>+	  older versions.  [ruby-core:24788]</div><div class='add'>+</div><div class='add'>+Fri Aug  7 03:25:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c (error_print): removed an extra argument.</div><div class='add'>+</div><div class='add'>+Fri Aug  7 03:22:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exc_raise, rb_exc_fatal): nil is used to reraise.</div><div class='add'>+</div><div class='add'>+Fri Aug  7 01:49:41 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c: The ULL suffix is not supported by</div><div class='add'>+	  pre-C99 compilers, so resurrect the ULL() macro to regain</div><div class='add'>+	  portability. [ruby-dev:39032]</div><div class='add'>+</div><div class='add'>+Fri Aug  7 01:35:26 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/extconf.rb: inttypes.h and unistd.h need not be</div><div class='add'>+	  checked here. [ruby-dev:39032]</div><div class='add'>+</div><div class='add'>+Fri Aug  7 01:04:17 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb (search_tclConfig): fix logic bug.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 21:18:15 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/lib/sha2.rb: should require sha2.so.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 21:11:40 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c (*_Final): typos.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 19:46:56 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.h (BYTE_ORDER): Define BYTE_ORDER as</div><div class='add'>+	  necessary. [ruby-dev:39029]</div><div class='add'>+</div><div class='add'>+Thu Aug  6 16:36:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (valid_encoding_name_p): rejects too long encoding</div><div class='add'>+	  names.</div><div class='add'>+</div><div class='add'>+	* encoding.c (encoding_data_type): typed data.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_capable, rb_enc_get_index): Symbol is encoding</div><div class='add'>+	  capable.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_associate_index): cannot set encoding on</div><div class='add'>+	  special constants.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 15:44:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_entry_eq): deals with optimized method</div><div class='add'>+	  properly.  [ruby-core:24789]</div><div class='add'>+</div><div class='add'>+Thu Aug  6 13:30:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf): was turned into a class, because</div><div class='add'>+	  MiniUnit doesn't complain even if a testcase has no tests.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 13:00:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): added optional compiler option</div><div class='add'>+	  argument.  [ruby-core:24785]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): suppressed shadowing outer local</div><div class='add'>+	  variable warnings.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 12:05:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb (Test::Unit): removes silly TestCase</div><div class='add'>+	  class.</div><div class='add'>+</div><div class='add'>+Thu Aug  6 01:37:20 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE which fixes an</div><div class='add'>+	  off-by-one bug in SHA-256 hashing.  Reduce differences from</div><div class='add'>+	  the original while at it. [Bug #1799]</div><div class='add'>+</div><div class='add'>+Thu Aug  6 00:09:56 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (IPAddr#hash): Take account of netmask; submitted</div><div class='add'>+	  by Nobuhiro IMAI in [ruby-dev:39011]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 19:19:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): assumes -x flag if no "ruby" is in</div><div class='add'>+	  the shebang line.  [ruby-dev:39015]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 19:11:01 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rb_stdio_set_default_encoding): declared.</div><div class='add'>+</div><div class='add'>+Wed Aug  5 18:46:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_dummy_gdb_enums): made public.  [ruby-dev:39001]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 13:49:09 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): generate numerical sequence when</div><div class='add'>+	  characters in both edges are all digits.  [ruby-talk:343186]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 12:54:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exc_raise, rb_exc_fatal): require exception object.</div><div class='add'>+	  [ruby-core:24767]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 12:39:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): reset raised flag before fatal error.</div><div class='add'>+</div><div class='add'>+Wed Aug  5 10:20:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): add options to arguments.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_new_ary): follow above.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): change error message when</div><div class='add'>+	  /.../n has a non escaped non ASCII character in non ASCII-8BIT</div><div class='add'>+	  script. [ruby-dev:38524]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 03:28:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit.setup_argv): expands paths before</div><div class='add'>+	  requiring.  [ruby-dev:39012]</div><div class='add'>+</div><div class='add'>+Wed Aug  5 01:38:27 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (guard_inspect_key): untrust internal hash to prevent</div><div class='add'>+	  unexpected SecurityError.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb: add a test for [ruby-dev:38982].</div><div class='add'>+</div><div class='add'>+Wed Aug  5 00:33:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/c.rb: fixed a small error in the documentation.</div><div class='add'>+	  [ruby-core:24744]</div><div class='add'>+</div><div class='add'>+Tue Aug  4 22:10:34 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (has_redirection): need to execute shell if commandline</div><div class='add'>+	  includes newline.  cf. [ruby-core:24560]</div><div class='add'>+</div><div class='add'>+Tue Aug  4 15:06:58 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (IPAddr#{eql?,hash}): Add IPAddr#{eql?,hash} so</div><div class='add'>+	  that an IPAddr object can be used as a hash key, a set element,</div><div class='add'>+	  etc.; suggested by Nick Brown &lt;nick@nick-brown.com&gt;.</div><div class='add'>+</div><div class='add'>+Tue Aug  4 13:07:10 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (ONIG_SYN_WARN_CC_DUP): defined.</div><div class='add'>+	* regparse.h (ScanEnv): add warnings_flag.</div><div class='add'>+	* regparse.c (CC_DUP_WARN): defined for warn duplicated characters in</div><div class='add'>+	  character class of regexp. [ruby-core:24593]</div><div class='add'>+	  (add_code_range_to_buf): add CC_DUP_WARN.</div><div class='add'>+	  (next_state_val): add CC_DUP_WARN.</div><div class='add'>+	  (OnigSyntaxRuby): add ONIG_SYN_WARN_CC_DUP.</div><div class='add'>+	  (SET_ALL_MULTI_BYTE_RANGE): add env to arguments.</div><div class='add'>+	  (add_code_range): ditto.</div><div class='add'>+	  (add_code_range_to_buf): ditto.</div><div class='add'>+	  (not_code_range_buf): ditto.</div><div class='add'>+	  (or_code_range_buf): ditto.</div><div class='add'>+	  (and_code_range1): ditto.</div><div class='add'>+	  (and_code_range_buf): ditto.</div><div class='add'>+	  (and_cclass): ditto.</div><div class='add'>+	  (or_cclass): ditto.</div><div class='add'>+	  (add_ctype_to_cc_by_range): ditto.</div><div class='add'>+	  (add_ctype_to_cc): ditto.</div><div class='add'>+	  (parse_char_class): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  4 12:40:45 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/encdb.c (ENC_SET_BASE): fix typo.</div><div class='add'>+	  patch by ujihisa [ruby-dev:39004]</div><div class='add'>+</div><div class='add'>+Tue Aug  4 11:57:39 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eql, range_eq): fixed equality to work for</div><div class='add'>+	  subclasses of Range.  a patch from Marc-Andre Lafortune.</div><div class='add'>+	   [ruby-core:22190]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb: add assertions for above.</div><div class='add'>+</div><div class='add'>+Tue Aug  4 09:41:11 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/big5.c (EncLen_Big5): back to original Big5 table.</div><div class='add'>+	  (EncLen_Big5_HKSCS): for Big5-HKSCS.</div><div class='add'>+	  (trans): add the lead byte table for Big5-HKSCS.</div><div class='add'>+	  (big5_mbc_enc_len): abstract function for Big5 series.</div><div class='add'>+	  (big5_mbc_enc_len): for Big5.</div><div class='add'>+	  (big5_hkscs_mbc_enc_len): for Big5-HKSCS.</div><div class='add'>+	  (BIG5_HKSCS_P): added.</div><div class='add'>+	  (BIG5_ISMB_FIRST): add routine for Big5-HKSCS.</div><div class='add'>+	  (big5_hkscs): add for Big5-HKSCS.</div><div class='add'>+</div><div class='add'>+Tue Aug  4 09:33:54 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_base): Add for setting base encoding</div><div class='add'>+	  with their names. this is internal function.</div><div class='add'>+</div><div class='add'>+	* template/encdb.h.tmpl: specify ENC_SET_BASE for second encodings in</div><div class='add'>+	  each encoding files.</div><div class='add'>+</div><div class='add'>+	* enc/encdb.c (rb_enc_set_base): add a declaration.</div><div class='add'>+	  (ENC_SET_BASE): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  4 06:30:01 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_replace): should copy compare_by_identity status as well.</div><div class='add'>+	  [ruby-core:24728]</div><div class='add'>+</div><div class='add'>+Tue Aug  4 05:43:03 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (recursive_push): need to set UNTRUST.  [ruby-dev:38997]</div><div class='add'>+</div><div class='add'>+Tue Aug  4 03:56:51 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tcltklib.c: fix trouble on old-style C function</div><div class='add'>+	  declarations [ruby-core:22871].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tcltklib.c: (ruby_1_8) fix warning about RUBY_RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/multi-tk.rb: kill zombie threads.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/fontchooser.rb: fix typo and support OptionObj.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/{canvas.rb,virtevent.rb,image.rb,timer.rb}:</div><div class='add'>+	  don't create unnecessary array.</div><div class='add'>+</div><div class='add'>+Mon Aug  3 22:19:24 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_include): fix document.  [ruby-core:24675]</div><div class='add'>+</div><div class='add'>+Mon Aug  3 18:25:08 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/svr.rb: obsolete TCPserver renamed.  [ruby-core:24712]</div><div class='add'>+</div><div class='add'>+	* sample/tsvr.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/dualstack-httpd.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug  3 18:12:54 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (recursive_push): untrust internal hash to prevent</div><div class='add'>+	  unexpected SecurityError.  a patch from Kazuhiro NISHIYAMA.</div><div class='add'>+	  Fix: #1864  [ruby-dev:38982]</div><div class='add'>+</div><div class='add'>+Mon Aug  3 17:06:05 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README: updated.  a patch from Daniel Bovensiepen.</div><div class='add'>+	  [ruby-core:24693]</div><div class='add'>+</div><div class='add'>+Mon Aug  3 16:28:09 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_connect): return value was broken when some</div><div class='add'>+	  error occurred.</div><div class='add'>+	  [ruby-core:24234]</div><div class='add'>+</div><div class='add'>+Mon Aug  3 15:56:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (permute0): use chars for boolean array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_{permutation,combination}): disallow reentrance</div><div class='add'>+	  with continuation since work-buffers cannot restore.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_{permutation,combination,product}): must not use</div><div class='add'>+	  ary_discard on strings.</div><div class='add'>+</div><div class='add'>+Mon Aug  3 06:43:25 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_hash): normalize -0.0 to 0.0.  [ruby-core:24577]</div><div class='add'>+</div><div class='add'>+Mon Aug  3 00:32:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_random_int): arguments have to be converted to</div><div class='add'>+	  integer.  [ruby-core:24679]</div><div class='add'>+</div><div class='add'>+Sun Aug  2 21:04:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat0): tail can be nil.  [ruby-dev:38980]</div><div class='add'>+</div><div class='add'>+Sun Aug  2 20:09:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_combination, rb_ary_product): prevent from GC.</div><div class='add'>+</div><div class='add'>+Sun Aug  2 16:53:19 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.rb: add tests for Random#float's rejection</div><div class='add'>+	  against Infinity and NaN.</div><div class='add'>+</div><div class='add'>+Sun Aug  2 14:20:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_int): prevent from GC.</div><div class='add'>+</div><div class='add'>+Sat Aug  1 19:23:27 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): change condition of singlebyte</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+Sat Aug  1 18:50:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_float): rejects Infinity and NaN.</div><div class='add'>+	  [ruby-core:24651]</div><div class='add'>+</div><div class='add'>+Sat Aug  1 18:34:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (gem): suppressed warnings.</div><div class='add'>+	  cf: [ruby-dev:38975]</div><div class='add'>+</div><div class='add'>+Sat Aug  1 05:18:36 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): can't use singlebyte optimization when</div><div class='add'>+	  the replacement is multibyte. [ruby-core:24612]</div><div class='add'>+</div><div class='add'>+Fri Jul 31 18:01:34 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.random_bytes): return string should</div><div class='add'>+	  be ASCII-8BIT.  [ruby-core:24640]</div><div class='add'>+</div><div class='add'>+Fri Jul 31 16:28:33 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_stdio_set_default_encoding): added.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): call rb_stdio_set_default_encoding</div><div class='add'>+	  after setting default internal and external.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 15:06:33 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: too long string literal causes compile error</div><div class='add'>+	  on some platforms.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 13:15:27 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode_bang): C99ism.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 11:48:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): used more appropriate construct.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 10:54:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_gen): reduced unnecessary node at string</div><div class='add'>+	  literal concatenation with empty head dstr.  [ruby-dev:38968]</div><div class='add'>+</div><div class='add'>+Fri Jul 31 02:57:39 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_gen): NODE_DSTR was incorrectly handled as</div><div class='add'>+	  NODE_STR.  [ruby-dev:38968]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 00:55:48 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_ancestors, test_included_modules):</div><div class='add'>+	  ignore rake mixins.</div><div class='add'>+</div><div class='add'>+Fri Jul 31 00:30:54 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): let set_trace_func use called_id</div><div class='add'>+	  instead of original_id.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 23:04:32 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.path): uses Gem.default_path as a default value</div><div class='add'>+	  so that ruby finds gems in ~/.gem/.</div><div class='add'>+	  (Gem.user_home): reduced version of lib/rubygems.rb's.</div><div class='add'>+	  Gem.default_path needs it.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 22:28:04 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: replaces "require" with in-place evaluation</div><div class='add'>+	  so that copy &amp; paste for lib/rubygems/default.rb is not necessary.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: removes copied codes from lib/rubygems/defaults.rb.</div><div class='add'>+	  uses require instead.</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c): adds dependency for lib/rubygems/defaults.rb.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 21:56:18 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.rb: add tests for Random class.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 21:48:56 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (init_genrand): ensure invariant of mt-&gt;next and mt-&gt;left.</div><div class='add'>+	  mt-&gt;next should always equal mt-&gt;state + N + 1 - mt-&gt;left.</div><div class='add'>+	  In fact, 'r = Random.new(0); r == r.dup' has returned false.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 21:43:41 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_bytes): use NUM2LONG instead of FIX2LONG because</div><div class='add'>+	  Random#bytes may receive bignum.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 21:39:42 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix stack consistency error.</div><div class='add'>+	  [ruby-core:24611]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 18:39:39 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: added check for frozen string for encode! (see Bug #1836)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for the above</div><div class='add'>+</div><div class='add'>+Thu Jul 30 16:45:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): preserve encoding of class/module</div><div class='add'>+	  names.  [ruby-core:24600]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_set_class_path_string): set class path with a</div><div class='add'>+	  string value.</div><div class='add'>+</div><div class='add'>+Thu Jul 30 16:12:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (Init_var_tables): initializes __classid__ ID.</div><div class='add'>+</div><div class='add'>+	* variable.c: use st_data_t for st functions.</div><div class='add'>+</div><div class='add'>+Thu Jul 29 14:25:14 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/util.rb (CGI::unescape): support encoding option.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/cookie.rb (CGI::Cookie.parse): fix for the encoded value.</div><div class='add'>+</div><div class='add'>+Wed Jul 29 08:08:07 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (regexp): regexp literal at the top of dstr is still needed</div><div class='add'>+	  even if it is empty.</div><div class='add'>+</div><div class='add'>+Wed Jul 29 03:36:24 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/common.rb (JSON#recurse_proc): remove</div><div class='add'>+	  unnecessary private specifier.  [ruby-dev:38929]</div><div class='add'>+</div><div class='add'>+Wed Jul 29 03:34:46 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, vm_insnhelper.c (vm_call_method): revive</div><div class='add'>+	  VM_CALL_OPT_SEND_BIT and use it to recognize "send" method.</div><div class='add'>+</div><div class='add'>+Wed Jul 29 03:11:59 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_method_entry_arity): support not_implemented method.</div><div class='add'>+	  (I have no idea to test it)</div><div class='add'>+</div><div class='add'>+Tue Jul 28 19:36:26 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_method_entry_arity): support optimized method (send).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Tue Jul 28 04:34:05 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/extconf.rb: bug fix and ignore invalid Tcl/Tk libraries.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/config_list.in: bug fix and add a new option.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/README.tcltklib: update for a new option.</div><div class='add'>+</div><div class='add'>+Mon Jul 27 19:03:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_*str_new_cstr, rb_str_buf_new_cstr),</div><div class='add'>+	  (rb_str_buf_cat2, rb_str_cat2, rb_exc_new2): suppress warnings.</div><div class='add'>+</div><div class='add'>+Mon Jul 27 10:24:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser.rb (RDoc::Parser.binary?): fix for empty files.</div><div class='add'>+	  [ruby-dev:38848]</div><div class='add'>+</div><div class='add'>+Mon Jul 27 06:51:41 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): should call next_argv() before testing.</div><div class='add'>+	  [ruby-core:24561]</div><div class='add'>+</div><div class='add'>+Sun Jul 26 19:17:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): go to the next file if called after ARGF.close</div><div class='add'>+	  or ARGF.skip.  a patch from Mike Kasick at [ruby-core:24561].</div><div class='add'>+</div><div class='add'>+Sun Jul 26 18:30:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): __send__ can call protected</div><div class='add'>+	  methods.  [ruby-core:24500]</div><div class='add'>+</div><div class='add'>+Sun Jul 26 01:09:14 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal.c: moved BASE_FIG definition before it is used</div><div class='add'>+	  first time.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h [__SYMBIAN32__]: defined TRUE and FALSE to match</div><div class='add'>+	  changes in bignum.c and array.c.</div><div class='add'>+</div><div class='add'>+Sat Jul 25 17:49:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): should not have reached EOF before trying to</div><div class='add'>+	  read.  based on a patch by Heesob Park &lt;phasis AT gmail.com&gt; in</div><div class='add'>+	  [ruby-core:24559].  [ruby-core:24557]</div><div class='add'>+</div><div class='add'>+Sat Jul 25 13:44:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_hash), rational.c (nurat_hash): not to use</div><div class='add'>+	  hash value of class so that equality against subclasses can</div><div class='add'>+	  work.  [ruby-dev:38850]</div><div class='add'>+</div><div class='add'>+Sat Jul 25 01:05:59 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: Fix EncLen_BIG5 for Big5-HKSCS. see [ruby-core:24390]</div><div class='add'>+</div><div class='add'>+Fri Jul 24 19:19:19 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/big5.trans, big5-hkscs-tbl.rb:</div><div class='add'>+	  new Chinese BIG5-HKSCS transcoding (with Tatsuya Mizuno)</div><div class='add'>+	  see [ruby-core:24390]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for the above</div><div class='add'>+	  (with Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: Added BIG5-HKSCS as a replicate encoding of BIG5</div><div class='add'>+	  (short term solution, needs more work; with Tatsuya Mizuno)</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: made 'pat' directly accessible in</div><div class='add'>+	  class StrSet</div><div class='add'>+</div><div class='add'>+Fri Jul 24 18:03:01 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (idle): leaves IDLE in a ensure clause.  a patch</div><div class='add'>+	  from Eric Hodel.</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb (setup, teardown): turn on</div><div class='add'>+	  Socket.do_not_reverse_lookup in tests.</div><div class='add'>+</div><div class='add'>+Fri Jul 24 00:13:41 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (resp_text_code): accepts response codes without</div><div class='add'>+	  text.  [ruby-core:24194]</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (idle, idle_done): new methods for the IMAP4 IDLE</div><div class='add'>+	  command (RFC 2177).  Thanks, Eric Hodel.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (format_date, format_datetime): new method to</div><div class='add'>+	  format IMAP-style date/datetime. Thanks, Eric Hodel.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 17:31:02 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: make irb be able to parse</div><div class='add'>+	  string_dvar. [ruby-core: 24051]</div><div class='add'>+</div><div class='add'>+Thu Jul 23 17:26:51 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: should not create "config_list" in a $srcdir.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 14:35:02 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_{open,wopen}): fixed typos. these conditions</div><div class='add'>+	  mean to call runtime's open() if textmode.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 08:53:24 2009  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup/: Remove useless directory.</div><div class='add'>+	  [Bug #1343]</div><div class='add'>+</div><div class='add'>+Thu Jul 23 08:52:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_{state,left}): internal/debug use.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 19:29:26 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#test_alias): warning</div><div class='add'>+	  message updated.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 00:39:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (class.o): depends on vm_core.h.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 00:10:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (init_leap_second_info): checks the result of gmtime to</div><div class='add'>+	  suppress warnings.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 22:23:24 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_iseq_t): add a new field line_no.  This field</div><div class='add'>+	  represents line number from which the original code of the iseq</div><div class='add'>+	  starts.  [ruby-dev:38698]</div><div class='add'>+</div><div class='add'>+	* iseq.c, compile.c: ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y: line number hack (for Proc#source_location) is no longer</div><div class='add'>+	  needed.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: line number of set_trace_func is now</div><div class='add'>+	  compatible with 1.8's.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 22:16:48 2009  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* method.h: Commas at end of enum list not allowed as of C89</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method): avoid C++ comment</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 20:42:52 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: define IPPROTO_IPV6 macro for recent Windows</div><div class='add'>+	  SDK.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 19:32:10 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define IPV6_* constants only when INET6</div><div class='add'>+	  is defined.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 19:23:04 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: ipv6 support is disabled by default on mswin.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 17:41:08 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c (init_inetsock_internal): drop IPv6 addresses</div><div class='add'>+	  if INET6 is not defined.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 17:29:59 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: enable ipv6 support for win32.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 16:38:39 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (Hash::[]): rdoc. patch by Marc-Andre Lafortune.</div><div class='add'>+	  #1385.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 10:00:53 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (WSAMSG): get rid of compile error on VC9 and mingw.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 06:35:56 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb (TestEnumerable#each): recursive join now</div><div class='add'>+	  raises ArgumentError.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 02:33:57 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb: forget svn commit.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 01:20:54 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb: block write may block for long time.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 00:34:39 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb, lib/irb/init.rb, lib/irb/ext/save-history.rb: add</div><div class='add'>+	  IRB::irb_at_exit. no use finalizer saving history. [ruby-dev-38563]</div><div class='add'>+</div><div class='add'>+Tue Jul 21 23:47:38 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): array length of random seed was broken, which</div><div class='add'>+	  causes memory error with srand(2**1000000-1).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.c: test for above.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 21:37:19 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb: fixed irb's "help" command. [ruby-core:22310].</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: no show lines unknown line number. [ruby-core:22096],</div><div class='add'>+	  no trace display  c-call and c-return as default.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 16:24:41 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (vtdate2rbtime): VT_DATE variant object</div><div class='add'>+	  is converted to Time object now.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb (test_s_new_with_nil,</div><div class='add'>+	  test_conversion_time2date, test_conversion_str2date,</div><div class='add'>+	  test_conversion_vt_date, test_set_value): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (rbtime2vtdate): refactoring.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 16:07:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: toplevel caller exists now.  [ruby-core:24454]</div><div class='add'>+</div><div class='add'>+Tue Jul 21 13:36:20 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (recvmsg, sendmsg): new functions to support recvmsg/</div><div class='add'>+	  sendmsg like UNIX. these functions are experimental and not tested</div><div class='add'>+	  well. bug reports are welcome.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 13:35:21 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (TEST_RUNNABLE): follow r24209.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 12:45:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_enable, rb_gc_disable): should return Qtrue/Qfalse.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 12:38:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_generic_ivar_memsize): should not remove generic</div><div class='add'>+	  instance variable table.</div><div class='add'>+</div><div class='add'>+Mon Jul 20 20:35:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): add rdoc about specifying ext_enc as *-bom.</div><div class='add'>+</div><div class='add'>+Mon Jul 20 19:00:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_dstr_fragments): reduced needless literal.</div><div class='add'>+</div><div class='add'>+	* parse.y (xstring, regexp, dsym, literal_concat, evstr2dstr):</div><div class='add'>+	  literal at the top of dstr is no longer needed if it is empty,</div><div class='add'>+	  since concatstrings and toregexp always create new strings.</div><div class='add'>+</div><div class='add'>+Mon Jul 20 12:51:39 2009  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix#rank): revert a part of r20859 to avoid</div><div class='add'>+	  infinite loop.  [Bug #1020]</div><div class='add'>+</div><div class='add'>+Mon Jul 20 11:12:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, Makefile.in (TEST_RUNNABLE): tests are no</div><div class='add'>+	  runnable if cross-compiling.</div><div class='add'>+</div><div class='add'>+	* common.mk (btest*, test*): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 20 10:55:18 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Addrinfo#family_addrinfo): fix a typo in</div><div class='add'>+	  error message.  patch by Nobuhiro IMAI.  [ruby-dev:38828]</div><div class='add'>+</div><div class='add'>+Sun Jul 19 22:22:54 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (float_to_r): an improvement.</div><div class='add'>+</div><div class='add'>+Sun Jul 19 20:41:24 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (make_patterns): do not use \d.</div><div class='add'>+</div><div class='add'>+	* rational.c (make_patterns): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 19 17:32:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): should taint the result.  [ruby-dev:38826]</div><div class='add'>+</div><div class='add'>+Sun Jul 19 11:00:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (me_opts): fixed optimized method aliasing.</div><div class='add'>+	  [ruby-dev:38824]</div><div class='add'>+</div><div class='add'>+Sun Jul 19 10:54:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.accept_loop): rescue</div><div class='add'>+	  IO::WaitReadable instead of Errno::EWOULDBLOCK.</div><div class='add'>+	  (Socket.udp_server_loop_on): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 23:44:59 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_enc_error): use rb_enc_get to get the encoding of</div><div class='add'>+	  a Regexp object. REGEXP(re)-&gt;ptr-&gt;enc is the encoding of the</div><div class='add'>+	  regexp engine for patterns and target strings.</div><div class='add'>+	  [ruby-core:23208]</div><div class='add'>+</div><div class='add'>+Sat Jul 18 17:43:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash_cmp): got rid of overflow.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 16:03:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (TRUE, FALSE): for internal use.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 11:39:49 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: workaround for VC++ 6.0.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 09:16:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_random_{int32,real,bytes,int}): added functions for</div><div class='add'>+	  extension libraries.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 09:07:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): use cryptographic service on Windows.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 07:56:00 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fail to create a widget object for an unknown</div><div class='add'>+	  widget path.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 07:06:31 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb,ext/tk/lib/tk/grid.rb: Bug fix on grid_slaves().</div><div class='add'>+	  Extend usage pattern of grid_column()/grid_row().</div><div class='add'>+</div><div class='add'>+Sat Jul 18 06:30:35 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: include winsock headers in extern "C++" for</div><div class='add'>+	  C++ extension libraries.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (vsnprintf): workaround for VC++.</div><div class='add'>+	  [ruby-core:23096]</div><div class='add'>+</div><div class='add'>+Sat Jul 18 00:23:47 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): rl_catch_signals does</div><div class='add'>+	  not exist on some platform like Mac OS X 10.5.</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checks existence of rl_catch_signals.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 22:37:22 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_ip_address_list): drop inactive</div><div class='add'>+	  adapters.</div><div class='add'>+</div><div class='add'>+	* test/socket/test_{nonblock,addrinfo,socket}.rb: skip some tests on</div><div class='add'>+	  Windows.</div><div class='add'>+	  [ruby-core:23051]</div><div class='add'>+</div><div class='add'>+Fri Jul 17 22:29:21 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): use rl_catch_sigwinch only</div><div class='add'>+	  when existing.</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: check existence of rl_catch_sigwinch, and</div><div class='add'>+	  workaround for native Win32 readline port.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 18:18:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (recursive_hash): extracted from range_hash.  reject</div><div class='add'>+	  recursive key.</div><div class='add'>+	  (range_hash): use recursive_hash.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 18:11:32 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (recursive_hash): extracted from rb_struct_hash.  reject</div><div class='add'>+	  recursive key.</div><div class='add'>+	  (rb_struct_hash): use recursive_hash.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 16:45:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (recursive_hash): reject recursive key.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 15:20:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (DIGSPERINT): fix for LP64.</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): /dev/urandom is not available on</div><div class='add'>+	  DOSISH systems.</div><div class='add'>+</div><div class='add'>+	* random.c (random_equal): new method Random#==.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 13:35:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rsock_getfamily): return AF_UNSPEC if getsockname</div><div class='add'>+	  is failed.  [ruby-core:24383]</div><div class='add'>+</div><div class='add'>+Fri Jul 17 01:22:57 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (recursive_join): raise ArgumentError for joining</div><div class='add'>+	  recursive array.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (TestArray#test_join2): test updated for</div><div class='add'>+	  recursive join.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 23:32:16 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb,ext/tk/config_list.in: ignore paths which includes</div><div class='add'>+	  white space characters on Windows.[ruby-dev:38794]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: works on Cygwin (limitation:: Tk.mainloop works on</div><div class='add'>+	  the main thread only).</div><div class='add'>+</div><div class='add'>+Thu Jul 16 20:58:18 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_s_codepage_changed,</div><div class='add'>+	  test_s_locale_set, test_s_locale_change): skip test if Japanese</div><div class='add'>+	  locale is not installed. [ruby-core:23806]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb (test_conversion_str2cy):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 19:02:28 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): servers</div><div class='add'>+	  is nil if an error occurs before setting it.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 18:42:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): suppress a warning.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 18:30:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset, recursive_hash): rejects recursive hash.</div><div class='add'>+	  [ruby-core:22921]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 18:28:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.c (Init_id), vm.c (vm_exec): @#__ThrowState__ is no longer</div><div class='add'>+	  used.  [ruby-dev:38760]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 17:41:28 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_alias): fix a case which try non-existing method alias.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 16:00:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): discards read buffer.  [ruby-core:24240]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 15:52:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_new, rb_bigzero_p), range.c (rb_range_values):</div><div class='add'>+	  added for random.c.</div><div class='add'>+</div><div class='add'>+	* random.c (rb_random_t): objectified.  [EXPERIMENTAL]</div><div class='add'>+	  [ruby-dev:30954]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 14:08:44 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): RDoc update.  a patch from Florian</div><div class='add'>+	  Frank.   [ruby-core:24347]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 12:42:10 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): rl_free_line_state</div><div class='add'>+	  before rl_cleanup_after_signal.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): set rl_catch_signals and</div><div class='add'>+	  rl_catch_sigwinch as 0. [ruby-core:21884]</div><div class='add'>+</div><div class='add'>+Thu Jul 16 08:59:22 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* node.h, vm_core.h, variable.c: rename global_entry to rb_global_entry.</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def, iseq.c, vm_insnhelper.h: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 08:57:44 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c: separate clearing cache entry code.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 08:56:32 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): re-fix GC problem.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 08:55:27 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add method.h.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 08:53:26 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_free): free data body.</div><div class='add'>+</div><div class='add'>+Wed Jul 15 23:46:55 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* method.h, vm_core.h: add rb_method_entry_t.  Remove nodes around</div><div class='add'>+	  method management.  This change affect some VM control stack structure.</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_insnhelper.c, vm_method.c, vm_eval.c: ditto.  and make some</div><div class='add'>+	  refactoring.</div><div class='add'>+</div><div class='add'>+	* insns.def, class.c, eval.c, proc.c, vm_dump.c : ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h, compile.c (iseq_specialized_instruction): remove</div><div class='add'>+	  VM_CALL_SEND_BIT.  use another optimization tech for Kernel#send.</div><div class='add'>+</div><div class='add'>+	* node.h: remove unused node types.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (count_nodes): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: add mark/free functions for method entry.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove decl of</div><div class='add'>+	  rb_define_notimplement_method_id().  nobody can use it</div><div class='add'>+	  because noex is not opened.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_mark): fix to check ic_method is available.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_disasm): fix to use rb_method_get_iseq().</div><div class='add'>+</div><div class='add'>+Wed Jul 15 23:45:11 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): fix GC problem.</div><div class='add'>+</div><div class='add'>+Wed Jul 15 17:33:52 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/purelib.rb: translates a fake path to rubygems in $" into</div><div class='add'>+	  an alternative in $: so that Kernel.#require does not load</div><div class='add'>+	  more rubygems.rb.</div><div class='add'>+	  Resolves many failures in test/rubygems/*.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.load_full_rubygems_library): supports case</div><div class='add'>+	  the rubygems to load is not in $(rubylibprefix).</div><div class='add'>+	  (Gem.path_to_full_rubygems_library): new method for the changes in</div><div class='add'>+	  purelib.rb and Gem.load_full_rubygems_library.</div><div class='add'>+	  (Gem.fake_rubygems_as_loaded): new method.</div><div class='add'>+</div><div class='add'>+Wed Jul 15 16:29:35 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LIBPATHFLAG): path is already quoted in mkmf.rb.</div><div class='add'>+</div><div class='add'>+Wed Jul 15 06:21:50 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: --with-{tcl,tk}-dir doesn't work.[ruby-dev:38782]</div><div class='add'>+</div><div class='add'>+Wed Jul 15 04:22:54 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb (CGIMultipartTest#_prepare):</div><div class='add'>+	  set tempfile name with literal.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 21:53:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/nonblock: moved from ext/io/wait/lib.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 17:29:20 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): return nil if pos is out of string.</div><div class='add'>+	  [ruby-core:23660]</div><div class='add'>+</div><div class='add'>+Tue Jul 14 16:13:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): check if the descriptor can be accessed</div><div class='add'>+	  in the specified open mode.  [ruby-dev:38571]</div><div class='add'>+</div><div class='add'>+Tue Jul 14 09:26:14 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: Long-term-callback support isn't stable yet.</div><div class='add'>+	  So, disable the feature and waiting for improvement in the future.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 01:28:17 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N#test_env): the encoding of</div><div class='add'>+	  ENV is now locale encoding.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 01:24:56 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): should return real object.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 01:06:31 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (yielder_yield_i): use rb_proc_new instead of</div><div class='add'>+	  rb_iterate.  [ruby-dev:38518]</div><div class='add'>+</div><div class='add'>+	* README.EXT: rb_iterate is obsolete since 1.9; use rb_block_call</div><div class='add'>+	  instead.</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 00:45:41 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_case.rb (TestCase#test_deoptimization):</div><div class='add'>+	  test for [ruby-core:23190].</div><div class='add'>+</div><div class='add'>+Mon Jul 13 22:49:50 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (Prime#prime_division): now decomposes</div><div class='add'>+	  negative integer into a decomposition with element [-1, 1].</div><div class='add'>+</div><div class='add'>+	* test/test_prime.rb: test for it.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 22:28:03 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): handles leaked on win32 when an error occurs.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 20:21:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): should not shadow outer variable not to</div><div class='add'>+	  return Qnil always.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 19:41:05 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): copy instance variables to new regexp.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 17:49:11 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, compile.c: declare struct iseq_inline_cache_entry.</div><div class='add'>+	  Inline cache (IC) entries are no longer GC managed object.</div><div class='add'>+	  IC entries are freed when ISeq is freed.</div><div class='add'>+</div><div class='add'>+	* iseq.c: fix mark, free, memsize functions for above change.</div><div class='add'>+</div><div class='add'>+	* insns.def: remove rb_gc_write_barrier().</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_search): ditto.</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb, template/insns_info.inc.tmpl (insn_iclen):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 13:35:08 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_insnhelper.c (getinstancevariable):</div><div class='add'>+	  fix to use inline cache.</div><div class='add'>+</div><div class='add'>+	* compile.c: fix to skip inline cache entry (IC).  IC is added</div><div class='add'>+	  automatically by compiler.</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_insnhelper.h: fix IC positions.</div><div class='add'>+</div><div class='add'>+	* iseq.c: increment minor_version of ISeq because of above change.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 08:01:00 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: New strategy for searching Tcl/Tk libraries.</div><div class='add'>+</div><div class='add'>+	* ext/tk/*: Support new features of Tcl/Tk8.6b1 and minor bug fixes.</div><div class='add'>+	     ( [KNOWN BUG] Ruby/Tk on Ruby 1.9 will not work on Cygwin. )</div><div class='add'>+</div><div class='add'>+	* ext/tk/*: Unify sources between Ruby 1.8 &amp; 1.9.</div><div class='add'>+	            Improve default_widget_set handling.</div><div class='add'>+</div><div class='add'>+	* ext/tk/*: Multi-TkInterpreter (multi-tk.rb) works on Ruby 1.8 &amp; 1.9.</div><div class='add'>+	     ( [KNOWN BUG] On Ruby 1.8, join to a long term Thread on Tk</div><div class='add'>+	        callbacks may freeze. On Ruby 1.9, cannot create a second</div><div class='add'>+	        master interpreter (creating slaves are OK); supported master</div><div class='add'>+	        interpreter is the default master interpreter only. )</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: Update supported versions of Tk extensions.</div><div class='add'>+	         Tcllib 1.8/Tklib 0.4.1  ==&gt;  Tcllib 1.11.1/Tklib 0.5</div><div class='add'>+	         BWidgets 1.7            ==&gt;  BWidgets 1.8</div><div class='add'>+	         TkTable 2.9             ==&gt;  TkTable 2.10</div><div class='add'>+	         TkTreeCtrl 2005-12-02   ==&gt;  TkTreeCtrl 2.2.9</div><div class='add'>+	         Tile 0.8.0/8.5.1        ==&gt;  Tile 0.8.3/8.6b1</div><div class='add'>+	         IncrTcl 2005-02-14      ==&gt;  IncrTcl 2008-12-15</div><div class='add'>+	         TclX 2005-02-07         ==&gt;  TclX 2008-12-15</div><div class='add'>+	         Trofs 0.4.3             ==&gt;  Trofs 0.4.4</div><div class='add'>+</div><div class='add'>+Mon Jul 13 01:18:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): rounds subsecond toward zero.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 23:51:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_str_new): use rb_locale_str_new instead of</div><div class='add'>+	  rb_tainted_str_new. rb_locale_str_new set string locale</div><div class='add'>+	  encoding and tainted.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 23:56:40 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: added some shortcuts.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 23:30:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_integer, rb_check_to_integer): return Bignum</div><div class='add'>+	  as-is.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 21:07:46 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: use k_exact_{zero,one}_p macro.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 20:42:58 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divide): added an entry to rational.</div><div class='add'>+</div><div class='add'>+	* rational.c (rb_rational_reciprocal): added.</div><div class='add'>+</div><div class='add'>+	* complex.c (f_reciprocal): added.</div><div class='add'>+</div><div class='add'>+Sun Jul 12 02:24:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): use fixed buffer for small numbers.</div><div class='add'>+</div><div class='add'>+Sat Jul 11 14:43:34 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (test_strip_bom): added.</div><div class='add'>+</div><div class='add'>+Sat Jul 11 07:11:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_attempted_completion_function):</div><div class='add'>+	  array length is long.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_get_filename_quote_characters):</div><div class='add'>+	  missing type of self.</div><div class='add'>+</div><div class='add'>+Sat Jul 11 02:37:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (limited_rand): expands to long before shift so that</div><div class='add'>+	  the result does not overflow.</div><div class='add'>+</div><div class='add'>+Sat Jul 11 00:16:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): got rid of buffer overflow.</div><div class='add'>+</div><div class='add'>+Sat Jul 11 00:11:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): should recurse for element array.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 23:10:11 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_strip_bom): ungetbyte third byte when UTF-16LE.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 23:04:16 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_strip_bom): Fix condition of second byte of</div><div class='add'>+	  UTF-16LE/UTF-32LE.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 21:45:30 2009  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checked rl_refresh_line in readline.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_refresh_line): add new</div><div class='add'>+	  method, a patch from Koichiro Ohba. see [ruby-list:45922].</div><div class='add'>+</div><div class='add'>+Fri Jul 10 21:00:05 2009  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checked rl_line_buffer and rl_point in</div><div class='add'>+	  readline.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_get_line_buffer): new method.</div><div class='add'>+	  (readline_s_get_point): new method.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 16:30:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (recursive_join): use obj to tell if recursion occurs.</div><div class='add'>+	  [ruby-core:24150]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_join): reverted r23966.  [ruby-core:24196]</div><div class='add'>+</div><div class='add'>+Fri Jul 10 14:41:34 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): set encoding only if the encoding</div><div class='add'>+	  is not US-ASCII.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 14:44:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (struct MT): ruby already assumes int has 32bit a</div><div class='add'>+	  least, so no needs to use long.</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): copies data to be used really only.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 11:41:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_obj_{untrust,untrusted,trust}): added</div><div class='add'>+	  prototypes.  [ruby-dev:38756]</div><div class='add'>+</div><div class='add'>+Fri Jul 10 10:25:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_search_superclass): checks for implicit</div><div class='add'>+	  argument passing before method search.  [ruby-core:24244]</div><div class='add'>+</div><div class='add'>+Fri Jul 10 07:22:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_data_type): typed.</div><div class='add'>+</div><div class='add'>+Thu Jul  9 23:28:48 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_STRIP_BOM): new constant.</div><div class='add'>+</div><div class='add'>+	* io.c (io_encname_bom_p): judge whether the encoding name</div><div class='add'>+	  is *-bom or not.</div><div class='add'>+	  (parse_mode_enc): drop "-bom".</div><div class='add'>+	  (rb_io_modestr_fmode): set FMODE_STRIP_BOM if needed.</div><div class='add'>+	  (rb_io_extract_modeenc): ditto.</div><div class='add'>+	  (io_strip_bom): strip bom if exists.</div><div class='add'>+	  (io_set_encoding_by_bom): set encoding if there is bom.</div><div class='add'>+	  Set encoding and strip bom when modeenc string is "r:foo-bom"</div><div class='add'>+	  [ruby-dev:37236]</div><div class='add'>+</div><div class='add'>+Thu Jul  9 21:56:59 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): replace \u by u when the regexp is</div><div class='add'>+	  made by Ruby 1.8. [ruby-dev:36750]</div><div class='add'>+</div><div class='add'>+Wed Jul  8 23:13:54 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_div): omitted zero division check.</div><div class='add'>+</div><div class='add'>+Wed Jul  8 21:00:37 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/inspector.rb: forget svn add.</div><div class='add'>+</div><div class='add'>+Wed Jul  8 19:10:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_check_type): rejects typed data.</div><div class='add'>+</div><div class='add'>+Wed Jul  8 18:28:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c ({proc,binding,method}_data_type): typed.</div><div class='add'>+</div><div class='add'>+Wed Jul  8 16:47:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): returns new string instead of</div><div class='add'>+	  shared string from FilePathStringValue().  [ruby-core:24199]</div><div class='add'>+</div><div class='add'>+Wed Jul  8 04:28:16 2009  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/.document:  Update with extensions that appear to have</div><div class='add'>+	  documentation.  [ruby-core:24181]</div><div class='add'>+</div><div class='add'>+Wed Jul  8 04:28:16 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h:</div><div class='add'>+	  rename</div><div class='add'>+	    "...TypeStruct" and "typed_struct" to</div><div class='add'>+	    "TypedData..." and "typeddata", respectively.</div><div class='add'>+	  rename</div><div class='add'>+	    rb_data_type_t#name to</div><div class='add'>+	    rb_data_type_t#wrap_struct_name.</div><div class='add'>+</div><div class='add'>+	* error.c, gc.c, iseq.c, vm.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  7 20:23:27 2009  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/irb, lib/irb.rb lib/irb/*: irb-0.9.6, extend inspect-mode</div><div class='add'>+</div><div class='add'>+Tue Jul  7 17:00:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): deal with typed struct like</div><div class='add'>+	  as obj_free().</div><div class='add'>+</div><div class='add'>+	* error.c (rb_typed_struct_is_kind_of): new function to see if the</div><div class='add'>+	  given typed struct.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_check_typed_struct): new function to check typed</div><div class='add'>+	  struct.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (Check_TypedStruct, Data_Get_TypedStruct):</div><div class='add'>+	  new macro to check typed struct.</div><div class='add'>+</div><div class='add'>+Tue Jul  7 13:36:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (DEFINE_ENUMFUNCS): included function signature.</div><div class='add'>+</div><div class='add'>+	* enum.c (rb_enum_join): non-nil separator must be convertible to</div><div class='add'>+	  String.  [ruby-core:24172]</div><div class='add'>+</div><div class='add'>+Tue Jul  7 12:47:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (rb_enum_join): should propagate taint to the return</div><div class='add'>+	  value.  the change was overridden by r23967.  [ruby-core:24176]</div><div class='add'>+</div><div class='add'>+Tue Jul  7 11:56:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_PROF_SET_MALLOC_INFO, GC_PROF_SET_HEAP_INFO): simplified.</div><div class='add'>+</div><div class='add'>+Tue Jul  7 10:12:37 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ext_int_to_encs): Set external encoding if</div><div class='add'>+	  ext==intern. [ruby-dev:38278]</div><div class='add'>+</div><div class='add'>+Mon Jul  6 09:31:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (make_curry_proc): should propagate lambda-ness.</div><div class='add'>+	  [ruby-core:24127]</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_hash): use long.</div><div class='add'>+</div><div class='add'>+Mon Jul  6 09:06:49 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#test_undef): adjust to</div><div class='add'>+	  message change.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb (TestObject#test_redefine_method_which_may_case_serious_problem): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb (TestObject#test_remove_method): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul  6 09:04:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_join): deals with self recursive objects to get rid</div><div class='add'>+	  of infinite recursion.  [ruby-core:24150]</div><div class='add'>+</div><div class='add'>+Mon Jul  6 08:00:10 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_to_a): should propagate taint to the return value.</div><div class='add'>+	  [ruby-core:24152]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul  6 00:41:41 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+Sun Jul  5 23:55:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): fix Time.local(2009,2,31) failure on 64bit</div><div class='add'>+	  time_t environment.</div><div class='add'>+</div><div class='add'>+Sun Jul  5 22:43:13 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_polar): now arg is optional.</div><div class='add'>+</div><div class='add'>+Sun Jul  5 20:40:35 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (float_arg): returns PI for -0.0.</div><div class='add'>+</div><div class='add'>+Sun Jul  5 14:04:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_threadptr_exec_event_hooks): new function to</div><div class='add'>+	  execute event hooks, with preserving errinfo.  [ruby-core:24118]</div><div class='add'>+</div><div class='add'>+Sun Jul  5 08:14:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method, remove_method, rb_undef): fixed</div><div class='add'>+	  minor grammatical errors in warnings.  a patch from Run Pain</div><div class='add'>+	  Run Run at [ruby-core:24141].</div><div class='add'>+</div><div class='add'>+	* vm_method.c (Init_eval_method): registers notimplement_body as a</div><div class='add'>+	  mark-object.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_block_args): restores the firs</div><div class='add'>+	  arg where is overwritten at funcall.  [ruby-core:24139]</div><div class='add'>+</div><div class='add'>+Sat Jul  4 08:20:03 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (dbl2ival): should raise FloatDomainError on Infinity</div><div class='add'>+	  and NaN as 1.8 does.  [ruby-dev:38726]</div><div class='add'>+</div><div class='add'>+Fri Jul  3 22:48:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): less number of guesses for hh:mm:60.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 21:30:14 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_equal_p): removed.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 21:07:29 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: renamed equal_p to eqeq_p.</div><div class='add'>+</div><div class='add'>+	* complex.c: ditto.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_equal_p): added.</div><div class='add'>+	  Complex(NaN).equal?(Complex(NaN)) should return true.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 19:48:40 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: undef-ed some methods.  [ruby-core:24110]</div><div class='add'>+</div><div class='add'>+	* complex.c (Numeric#arg): NaN for NaN.  [ruby-core:24116]</div><div class='add'>+</div><div class='add'>+Fri Jul  3 18:35:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_iseq_struct): fixed types.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (ic_vmstat): VM state version is VALUE.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 02:52:20 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): time guess strategy refined again.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 00:36:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): time guess strategy refined.</div><div class='add'>+</div><div class='add'>+Thu Jul  2 11:16:25 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: added response to Net::IMAP::ResponseError.</div><div class='add'>+	  a patch from Eric Hodel in [ruby-core:24111].</div><div class='add'>+</div><div class='add'>+Thu Jul  2 08:04:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (num_exact): rb_check_to_integer() can deal with both of</div><div class='add'>+	  Fixnum and Bignum together.</div><div class='add'>+</div><div class='add'>+Thu Jul  2 07:53:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): fixed wrong variable.</div><div class='add'>+</div><div class='add'>+Thu Jul  2 05:37:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (num_exact): use to_r for T_FLOAT.</div><div class='add'>+</div><div class='add'>+Thu Jul  2 05:15:54 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (quo): return an integer if possible.</div><div class='add'>+</div><div class='add'>+Wed Jul  1 21:09:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_time_num_new): declared.</div><div class='add'>+</div><div class='add'>+	* time.c (nsec2timev): extracted from time_new_internal.</div><div class='add'>+	  (time_new_internal): change argument to VALUE.</div><div class='add'>+	  (rb_time_new): follow the argument change.</div><div class='add'>+	  (rb_time_nano_new): ditto.</div><div class='add'>+	  (rb_time_num_new): new function.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_timestamp): use rb_time_num_new to</div><div class='add'>+	  represent struct bintime preciously.</div><div class='add'>+</div><div class='add'>+Wed Jul  1 08:46:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_encoding): encodings need extra depth.</div><div class='add'>+	  [ruby-core:24100]</div><div class='add'>+</div><div class='add'>+Wed Jul  1 06:47:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_grep): gets rid of type-punning calls.</div><div class='add'>+</div><div class='add'>+Wed Jul  1 06:36:28 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_join): add Enumerable#join.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): recursive join for Enumerators (and</div><div class='add'>+	  objects with #to_a).</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): performance tune.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 18:19:07 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_hash): documentation fix.  a patch from</div><div class='add'>+	  Marc-Andre Lafortune.  [ruby-core:23943]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cmp): ditto.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eq): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition, rb_str_rpartition): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_def): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 17:44:24 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match_pos): adjust offset based on characters, not</div><div class='add'>+	  bytes.  [ruby-dev:38722]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_offset): new function.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): no call to rb_reg_adjust_startpos().</div><div class='add'>+</div><div class='add'>+Tue Jun 30 16:57:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: renamed to get rid of collision against</div><div class='add'>+	  instruction.rb on command line completion of shell.</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb (RbConfig.expand): get rid of exceptions on</div><div class='add'>+	  frozen strings unless really changed.</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: get rid of global variables.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: use US-ASCII name.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 16:46:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, tool/instruction.rb: fixed types.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 11:08:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h, include/ruby/re.h, re.c, regcomp.c,</div><div class='add'>+	  regenc.c, regerror.c, regexec.c, regint.h, regparse.c: use long.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 11:05:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): fixed index overrun.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 08:42:34 2009  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/instruby.rb: summary is required in a .gemspec.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 01:35:12 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/strip-rdocs.rb: supports QT style doxy-comments.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 01:24:10 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (log2, cbrt): added.  [experimental]</div><div class='add'>+</div><div class='add'>+Tue Jun 30 01:19:53 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_expt): do not use rb_fexpt.</div><div class='add'>+</div><div class='add'>+Mon Jun 29 22:50:10 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Doxyfile.in: removed. merged into template/Doxyfile.template</div><div class='add'>+</div><div class='add'>+	* configure.in: new checking for dot and doxygen.</div><div class='add'>+</div><div class='add'>+	* template/Doxyfile.template: merged with Doxyfile.in.</div><div class='add'>+	  configured some options.</div><div class='add'>+</div><div class='add'>+	* common.mk (capi): use $(DOXYGEN) instead of "doxygen".</div><div class='add'>+	  (Doxyfile): removed a duplicate entry in the dependency.</div><div class='add'>+</div><div class='add'>+Mon Jun 29 21:01:31 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_expt): checks exactness.</div><div class='add'>+</div><div class='add'>+Mon Jun 29 20:29:11 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (float_to_r): always returns rational.</div><div class='add'>+</div><div class='add'>+Mon Jun 29 18:55:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): fix for files with dots.  [ruby-dev:38588]</div><div class='add'>+</div><div class='add'>+Mon Jun 29 17:14:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): should copy original encoding.</div><div class='add'>+	  [ruby-dev:38612]</div><div class='add'>+</div><div class='add'>+Sun Jun 28 23:10:55 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.c (Gem.default_dir): follows the change on</div><div class='add'>+	  lib/rubygems/default.rb in r23879</div><div class='add'>+</div><div class='add'>+Sun Jun 28 23:32:11 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_div): raises ZeroDivisionError immediately</div><div class='add'>+	  when the given second argument is zero.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_fdiv): never raise even if the given second</div><div class='add'>+	  argument is zero.</div><div class='add'>+</div><div class='add'>+	* rational.c (rb_raise_zerodiv): changed the message (zero to 0).</div><div class='add'>+</div><div class='add'>+Sun Jun 28 22:25:07 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_expt): convert to a float when the given power</div><div class='add'>+	  is a bignum.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_expt): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 28 21:16:48 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (sqrt): fixed an issue [ruby-list:45852].</div><div class='add'>+</div><div class='add'>+Sun Jun 28 19:48:29 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_expt): some improvements.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_expt): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 28 19:03:46 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/instruby.rb (:gem): registers the bundled version</div><div class='add'>+	  of minitest as a gem as rdoc or rake.</div><div class='add'>+	  c.f. [ruby-dev:38692].</div><div class='add'>+</div><div class='add'>+Sun Jun 28 19:02:07 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (ConfigMap[:rubylibprefix]): new entry.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb (Gem.default_dir): considers</div><div class='add'>+	  "--with-rubylibprefix" configure option.</div><div class='add'>+</div><div class='add'>+Sun Jun 28 09:21:00 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: renamed some static functions.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 19:06:22 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_addsub): new</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_{add,sub}): use nucomp_addsub.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_divide): changed the algorithm.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_abs): added shortcuts.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 16:56:33 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_cmp): use rb_num_coerce_cmp.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 16:45:10 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: revised rdoc.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 13:44:48 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS, lib/rss/maker/base.rb, test/rss/test_maker_2.0.rb: add</div><div class='add'>+	  item.guid.permanent_link? and item.guid.permanent_link=.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 13:41:00 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: rss: 0.2.5 -&gt; 0.2.7.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, test/rss/test_version.rb: 0.2.6 -&gt; 0.2.7.</div><div class='add'>+</div><div class='add'>+Sat Jun 27 03:16:56 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): use default_internal encoding as default</div><div class='add'>+	  destination encoding if set.  [ruby-core:23997]</div><div class='add'>+</div><div class='add'>+Sat Jun 27 03:09:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_rewind): need to rewind $. and ARGF.lineno.</div><div class='add'>+	  [ruby-core:24046]</div><div class='add'>+</div><div class='add'>+	* io.c (struct argf): refactoring on $. and ARGF.lineno behavior.</div><div class='add'>+</div><div class='add'>+Fri Jun 26 21:48:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_getpty): check dup failure.</div><div class='add'>+</div><div class='add'>+Fri Jun 26 17:33:46 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_rubyopt):</div><div class='add'>+	  test suite add '.' to RUBYLIB.  remove checks.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (TestRequire#test_tainted_loadpath):</div><div class='add'>+	  the default tempdir directory /tmp is world writable, so</div><div class='add'>+	  SecurityError would be raised.  check removed.</div><div class='add'>+</div><div class='add'>+Fri Jun 26 16:32:59 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (COMPILE_PRELUDE): need -I. before -rrbconfig.</div><div class='add'>+	  [ruby-dev:38714]</div><div class='add'>+</div><div class='add'>+Thu Jun 25 18:41:51 2009  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.4.2 r5269.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 25 17:58:39 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_binmode_m): should call rb_io_ascii8bit_binmode() to</div><div class='add'>+	  set its encoding to ASCII-8BIT.  [ruby-core:24029]</div><div class='add'>+</div><div class='add'>+Thu Jun 25 13:04:58 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: '&amp;' in sed s command's replacement is '\&amp;' in ruby.</div><div class='add'>+	  [ruby-dev:38713]</div><div class='add'>+</div><div class='add'>+Thu Jun 25 06:50:23 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_codepoint): uninitialized local variable enc.</div><div class='add'>+</div><div class='add'>+Thu Jun 25 06:25:49 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (first_i): wrong condition for no argument #first.</div><div class='add'>+	  [ruby-core:24017]</div><div class='add'>+</div><div class='add'>+Wed Jun 24 20:19:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_now): new function.  Time.now don't take arguments.</div><div class='add'>+</div><div class='add'>+Wed Jun 24 16:08:03 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: CONFIG["TEENY"] is not ruby's version but API's</div><div class='add'>+	  one.  So need to use RUBY_VERSION instead.</div><div class='add'>+</div><div class='add'>+Wed Jun 24 16:07:04 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: rbconfig.rb exists at ".".</div><div class='add'>+</div><div class='add'>+Wed Jun 24 15:02:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_set_encode): show the erred file name instead of</div><div class='add'>+	  the file that requires it.  [ruby-core:24006]</div><div class='add'>+</div><div class='add'>+Wed Jun 24 11:41:20 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el: It is too late to set c-file-style in</div><div class='add'>+	  c-mode-hook (at least on Emacs 23).  Call c-set-style instead.</div><div class='add'>+</div><div class='add'>+Tue Jun 23 21:28:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path_check): check with given safe level.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext_safe, rb_find_file_safe): ditto.</div><div class='add'>+</div><div class='add'>+	* safe.c (rb_insecure_operation): function to raise security</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+Tue Jun 23 20:32:43 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: remove the definition of GC_DEBUG (debugging macro).</div><div class='add'>+</div><div class='add'>+Tue Jun 23 16:16:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby_version): defaults revision to 0 when no</div><div class='add'>+	  revision.h exists.</div><div class='add'>+</div><div class='add'>+Tue Jun 23 16:04:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext, rb_find_file): no needs to expand</div><div class='add'>+	  paths with tilde twice.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_load): load the given path directly if not found in</div><div class='add'>+	  load_path.</div><div class='add'>+</div><div class='add'>+	* load.c (search_required): search file in specified safe level.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_require_safe): path to load is already searched in</div><div class='add'>+	  search_required().</div><div class='add'>+</div><div class='add'>+Tue Jun 23 12:43:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove PACKAGE_* macros generated by autotools.</div><div class='add'>+	  [ruby-core:20938]</div><div class='add'>+</div><div class='add'>+Tue Jun 23 01:17:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): don't specify .so for encdb here.</div><div class='add'>+	  "." is replaced by "_" in load_encoding.</div><div class='add'>+</div><div class='add'>+	* encoding.c (load_encoding): add .so here.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 23:24:22 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_generic_ivar_memsize): typo fixed.  a patch from</div><div class='add'>+	  Kazuhiro NISHIYAMA.  [ruby-dev:38700]</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c (memsize_of): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 21:21:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: remove __CHECKER__ test.</div><div class='add'>+</div><div class='add'>+	* dir.c: ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c: ditto.</div><div class='add'>+</div><div class='add'>+	* file.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 17:15:38 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each_codepoint): new method.</div><div class='add'>+	  [ruby-core:23949]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each_codepoint): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 16:26:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): removed "." from load_path.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 16:14:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_arguments, iseq_compile_each): internal</div><div class='add'>+	  arrays must be hidden.  [ruby-dev:38613]</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_top_self): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 14:41:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options), enc/prelude.rb: encdb and transdb are</div><div class='add'>+	  extension libraries.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set progname earlier.</div><div class='add'>+</div><div class='add'>+Mon Jun 22 13:50:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fdatasync): new method IO#fdatasync.</div><div class='add'>+</div><div class='add'>+Sun Jun 21 22:33:05 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (Init_load): $: must be readonly.  [ruby-dev:38690]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): $-W must be readonly.  [ruby-dev:38691]</div><div class='add'>+</div><div class='add'>+Sun Jun 21 10:47:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#copy_file): open with</div><div class='add'>+	  default umask.  [ruby-core:23952]</div><div class='add'>+</div><div class='add'>+Sun Jun 21 10:46:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): default internal encoding may not be set.</div><div class='add'>+	  [ruby-core:23932]</div><div class='add'>+</div><div class='add'>+Sat Jun 20 21:11:43 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_div): don't use num_floor which is actually</div><div class='add'>+	  flo_floor.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_modulo): don't call '%'.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_divmod): use num_modulo.</div><div class='add'>+</div><div class='add'>+	* numeric.c: defined '%'.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_idiv,nurat_mod,nurat_divmod,nurat_rem): removed.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 20:28:44 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+	* numeric.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 08:56:47 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 07:17:52 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (MonitorMixin::extend_object): should use</div><div class='add'>+	  #__send__ instead of #send to avoid possible name conflict.</div><div class='add'>+	  [ruby-core:23907]</div><div class='add'>+</div><div class='add'>+Sat Jun 20 06:56:31 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 05:08:59 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 04:30:35 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_abs): removed.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 03:34:16 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: added rdoc.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 23:43:38 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 22:58:16 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 22:21:17 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 21:56:01 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_expt): delegates to complex when self is</div><div class='add'>+	  negative.  because Float#** does not produce complex.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 21:40:58 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: edited rdoc.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 20:53:54 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_name_list): update RDoc.  [ruby-core:23926]</div><div class='add'>+</div><div class='add'>+Fri Jun 19 20:44:45 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: constant COMPLEX_NAME has been removed.</div><div class='add'>+</div><div class='add'>+	* rational.c: constant RATIONAL_NAME has been removed.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 20:39:46 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: added rdoc.  a patch from Run Paint Run Run.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 17:04:59 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): should always return nil for NaN.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): handle infinite value specially using</div><div class='add'>+	  infinite? method internally.  [ruby-dev:38681]</div><div class='add'>+</div><div class='add'>+Fri Jun 19 09:28:45 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (*_numerator,*_denominator): moved to rational.c.</div><div class='add'>+</div><div class='add'>+	* rational.c (*_numerator,*_denominator): moved from numeric.c.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 08:14:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_lshift, big_rshift): return Bignum always without</div><div class='add'>+	  normalization.  [ruby-dev:38679]</div><div class='add'>+</div><div class='add'>+Thu Jun 18 22:31:38 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_convert): calls to_r when the given argument</div><div class='add'>+	  is non-integer.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_convert): raises TypeError when the given</div><div class='add'>+	  argument is nil.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 18 20:32:11 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_numerator, num_denominator): use</div><div class='add'>+	  to_r [ruby-core:23910].</div><div class='add'>+</div><div class='add'>+Thu Jun 18 16:21:05 2009  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.4.0 r5083.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 18 10:12:49 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): went infinity too</div><div class='add'>+	  early.  add BASE_FIG margin.  [ruby-dev:38673]</div><div class='add'>+</div><div class='add'>+Thu Jun 18 01:35:51 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): Infinity is greater than any bignum</div><div class='add'>+	  number.  [ruby-dev:38672]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 18 01:29:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): drive letter is ascii only.</div><div class='add'>+	  [ruby-dev:38612]</div><div class='add'>+</div><div class='add'>+Thu Jun 18 01:09:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ridir, RI_BASE_NAME): fixed for path expansion.</div><div class='add'>+	  [ruby-core:23876]</div><div class='add'>+</div><div class='add'>+Wed Jun 17 23:46:08 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_coerce): accepts Complex when the imag is</div><div class='add'>+	  exact zero.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 21:25:54 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_fdiv): checks whether the given second argument</div><div class='add'>+	  can be converted to float properly.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_fdiv): calls rb_big_fdiv when the given second</div><div class='add'>+	  argument is a bignum.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_fdiv): should calculate Float(x/y), not</div><div class='add'>+	  Float(x)/Float(y).</div><div class='add'>+</div><div class='add'>+Wed Jun 17 16:57:40 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require): RDoc updated.  a patch from Run Paint Run</div><div class='add'>+	  Run in [ruby-core:23833].</div><div class='add'>+</div><div class='add'>+	* load.c (rb_mod_autoload): ditto.  [ruby-core:23835]</div><div class='add'>+</div><div class='add'>+Wed Jun 17 14:37:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (valid_syntax?): skips BOM.  [ruby-dev:38666]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem#valid_syntax?): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 13:54:18 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (Init_strscan): remove obsolete</div><div class='add'>+	  matchedsize method, use matched_size instead.  [ruby-dev:38591]</div><div class='add'>+</div><div class='add'>+Wed Jun 17 12:37:37 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_thread_stack_overflow): call rb_exc_raise() on</div><div class='add'>+	  stack overflows in the signal handler, if sigaltstack is</div><div class='add'>+	  available.  On stack overflow (and with sigaltstack), the signal</div><div class='add'>+	  handler is more likely to have room to create an exception</div><div class='add'>+	  object.  [ruby-core:23813]</div><div class='add'>+</div><div class='add'>+Wed Jun 17 08:10:38 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/objspace: added.  objspace library extends some methods to</div><div class='add'>+	  ObjectSpace module.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 08:14:01 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_coerce): accepts Complex instances.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_coerce): accepts Rational</div><div class='add'>+	  instances. [ruby-core:23859]</div><div class='add'>+</div><div class='add'>+Wed Jun 17 07:36:22 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (parse_form_data): escape boundary of</div><div class='add'>+	  multipart/form-data when embed in regexp.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 07:24:26 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_memsize): added.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_memsize): added.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (onig_memsize): added.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_memsize): added.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_transcoding_memsize, rb_econv_memsize): added.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_geneic_ivar_memsize): added.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 07:04:33 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_memsize): added.  Use RTypedData instead of RData</div><div class='add'>+	  for ISeq.</div><div class='add'>+</div><div class='add'>+	* vm.c (env_memsize, vm_memsize, thread_memsize): added.  Use</div><div class='add'>+	  RTypedData instead of RData for Env, VM, Thread.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 06:48:28 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* st.c, include/ruby/st.h (st_memsize): added.  This function returns</div><div class='add'>+	  the memory usage of st_table.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 06:19:06 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: New structure RTypedData, added.</div><div class='add'>+	  This structure includes more explicit type information for</div><div class='add'>+	  T_DATA objects.  If RData(obj)-&gt;dfree is immediate value `1' on</div><div class='add'>+	  T_DATA object obj, obj is needed to be accessed with RTYPEDDATA(obj)</div><div class='add'>+	  instead of RDATA(obj).  A RTypedData structure points the structure</div><div class='add'>+	  rb_typed_data_t.  rb_typed_data_t includes information such as the</div><div class='add'>+	  type name of this data, mark and free function what RData includes,</div><div class='add'>+	  and memsize function show how data consuming the memory size.</div><div class='add'>+	  Note that you do not need any change existing T_DATA objects.</div><div class='add'>+	  If you use RDataType instead of RData on T_DATA object,</div><div class='add'>+	  you can specify explicit type information.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_data_typed_object_alloc, rb_objspace_data_type_memsize,</div><div class='add'>+	  rb_objspace_data_type_name): added.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 06:14:23 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: fix indent.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 06:05:03 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_each_objects): New C API, added.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 00:31:30 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb (TestArgf#test_skip): updated test</div><div class='add'>+	  according to clarified behavior.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 22:47:37 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): revert last change.  [ruby-dev:38648]</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): skip close(2) for fd 0,1,2.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 20:07:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): refix can't build with VC9.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 16:09:59 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape, parser_tokadd_escape):</div><div class='add'>+	  replace scan_oct as ruby_scan_oct.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 06:40:31 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): should close stdin/stdout/stderr when</div><div class='add'>+	  closed explicitly.   [ruby-core:23853]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_skip): should close only when current_file is available.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 01:50:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_call0): refine exception message for hidden objects.</div><div class='add'>+</div><div class='add'>+Mon Jun 15 22:35:31 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2db): (-Float::MAX.to_i*2).to_f should return</div><div class='add'>+	  -HUGE_VAL (-Infinity).</div><div class='add'>+</div><div class='add'>+Mon Jun 15 18:48:41 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_line): should return self.  [ruby-core:23852]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_byte, argf_each_char): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 15 17:48:42 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): invoke garbage collection before iteration, to</div><div class='add'>+	  avoid accessing half recycled object references.  [ruby-dev:38613]</div><div class='add'>+</div><div class='add'>+Mon Jun 15 11:04:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp, iseq): load dummy_gdb_enums on demand.</div><div class='add'>+	  [ruby-dev:38606]</div><div class='add'>+</div><div class='add'>+Sun Jun 14 14:57:57 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, vm_eval.c: add Thread.backtrace.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sun Jun 14 13:58:32 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): revert last commit because</div><div class='add'>+	  this change cause SEGV at test-all.</div><div class='add'>+</div><div class='add'>+Sun Jun 14 10:49:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext, rb_find_file): canonicalize absolute</div><div class='add'>+	  paths.  [ruby-core:23845]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_size): added rdoc.  a patch from Run Paint Run</div><div class='add'>+	  Run at [ruby-core:23839].</div><div class='add'>+</div><div class='add'>+Sun Jun 14 07:53:26 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_fdiv): use fdiv recursively.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_expt): reduced code.</div><div class='add'>+</div><div class='add'>+Sun Jun 14 03:37:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: remove wrong optimization.</div><div class='add'>+</div><div class='add'>+Sun Jun 14 01:53:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): can't build with VC9.</div><div class='add'>+</div><div class='add'>+Sun Jun 14 01:23:41 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_to_f): use fdiv.</div><div class='add'>+</div><div class='add'>+Sat Jun 13 15:03:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (load_lock): show backtrace at circular require.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_provide): assumes us-ascii only.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_require_safe): FilePathValue() implies rb_str_new4().</div><div class='add'>+</div><div class='add'>+	* load.c (rb_mod_autoload): try conversion to path like as</div><div class='add'>+	  require.  [ruby-core:23834]</div><div class='add'>+</div><div class='add'>+Sat Jun 13 09:58:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_ivar): should not set internal encoding ivar as an</div><div class='add'>+	  ordinary ivar.  [ruby-dev:38596]</div><div class='add'>+</div><div class='add'>+Sat Jun 13 07:08:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_local_variables): now returns symbols.  a patch from</div><div class='add'>+	  Run Paint Run Run at [ruby-core:23828].</div><div class='add'>+</div><div class='add'>+Sat Jun 13 07:06:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_catch): updated rdoc about generalized argument,</div><div class='add'>+	  and the case without arguments.  [ruby-core:23827]</div><div class='add'>+</div><div class='add'>+Sat Jun 13 06:50:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (Net::BufferedIO#rbuf_fill): TimeoutError is</div><div class='add'>+	  obsolete, use Timeout::Error instead.  [ruby-core:23821]</div><div class='add'>+</div><div class='add'>+Sat Jun 13 06:45:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_throw): fixed rdoc about exception.</div><div class='add'>+	  [ruby-core:23824]</div><div class='add'>+</div><div class='add'>+Fri Jun 12 14:56:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): associate the input encoding when</div><div class='add'>+	  copying an absolute path.  [ruby-dev:38594]</div><div class='add'>+</div><div class='add'>+Fri Jun 12 02:41:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace_shared): shared target must be frozen.</div><div class='add'>+	  [ruby-core:23727]</div><div class='add'>+</div><div class='add'>+Thu Jun 11 21:05:09 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (exp): omitted redundant function call.</div><div class='add'>+</div><div class='add'>+Thu Jun 11 17:49:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (gfCheckVal): never used.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpInit): fixed format modifiers.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VPrint): constified.</div><div class='add'>+</div><div class='add'>+Thu Jun 11 15:27:17 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb: documentation typo fixed.  a patch from okkez.</div><div class='add'>+	  [ruby-dev:38586]</div><div class='add'>+</div><div class='add'>+Wed Jun 10 18:15:17 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_getwd): directory path's encoding should be filesystem's</div><div class='add'>+	  one.</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: ditto (but not finished yet.)</div><div class='add'>+</div><div class='add'>+Wed Jun 10 06:28:15 2009  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Upgrade to RubyGems 1.3.4 r2223.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 22:38:09 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (log10): raised exception when the given number is</div><div class='add'>+	  a negative real.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 15:13:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): fixed rdoc.  a patch from Joseph Pecoraro a</div><div class='add'>+	  [ruby-core:23767].</div><div class='add'>+</div><div class='add'>+	* dir.c (sys_warning): get rid of type-punning function cast.</div><div class='add'>+</div><div class='add'>+	* dir.c (ruby_glob0): get rid of possible overflow.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 10:58:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (RMALL): need for distclean-rdoc.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 01:07:33 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: rename functions which require a parameter</div><div class='add'>+	  "rb_thread_t *", the prefix to be rb_threadptr_ instead of</div><div class='add'>+	  rb_thread_.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_add_event_hook(), rb_thread_remove_event_hook):</div><div class='add'>+	  change the parameter type from rb_thread_t * to VALUE.</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_error.c, eval_intern.h, signal.c, vm_core.h, vm_eval.c:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove decl of rb_thread_signal_raise() and</div><div class='add'>+	  rb_thread_signal_exit().</div><div class='add'>+</div><div class='add'>+Mon Jun  8 05:07:41 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): print fatal error</div><div class='add'>+	  message to stderr instead of using rb_bug().</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/test_fork.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Sun Jun  7 22:44:20 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (log): avoided redundant expression.</div><div class='add'>+</div><div class='add'>+Sat Jun  6 02:49:05 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_reject_bang): always check frozen status.</div><div class='add'>+	  [ruby-core:23715]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_reject_bang): call rb_hash_foreach() directly.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update_i): call st_insert() directly.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update_block_i): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun  5 07:12:32 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (#link_command): should dup CONFTEST_C which is</div><div class='add'>+	  frozen.  ref  [ruby-core:23675].  [ruby-core:23702]</div><div class='add'>+</div><div class='add'>+Thu Jun  4 02:25:51 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: typo fixed.  a patch from okkez.   [ruby-dev:38564]</div><div class='add'>+</div><div class='add'>+Wed Jun  3 09:03:23 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_first): should check negative length.</div><div class='add'>+</div><div class='add'>+Tue Jun  2 17:32:40 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (first_i): Enumerator#first should consume only what is</div><div class='add'>+	  needed.   a patch from Marc-Andre Lafortune.  [ruby-core:23661]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_first): call to_int once for an argument.  based on</div><div class='add'>+	  a patch from Marc-Andre Lafortune.</div><div class='add'>+</div><div class='add'>+Tue Jun  2 13:27:21 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_filter.rb: add tests. see [ruby-dev:37856]</div><div class='add'>+</div><div class='add'>+Tue Jun  2 07:44:43 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): modify check at the beginning.</div><div class='add'>+	  [ruby-core:23662]  ref [ruby-core:23657]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): ditto.  [ruby-core:23657]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chop_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): modify check added.  [ruby-core:23671]</div><div class='add'>+</div><div class='add'>+Mon Jun  1 11:21:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_capture, fiber_store): reraise transferred error.</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_switch): transfers dead fiber error to the previous</div><div class='add'>+	  or root fiber if the current fiber is dead.  [ruby-core:23651]</div><div class='add'>+</div><div class='add'>+Mon Jun  1 10:41:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_exc_new2): optimization for literal.</div><div class='add'>+</div><div class='add'>+Mon Jun  1 07:20:02 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): returns Inf if</div><div class='add'>+	  exp is bigger than DBL_MANT_DIG.</div><div class='add'>+</div><div class='add'>+Sun May 31 23:28:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): checks for duplication of source</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+Sun May 31 23:26:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (istrailinggarbage): fixed typo.</div><div class='add'>+</div><div class='add'>+Fri May 29 17:10:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (Init_Struct): made #to_s an alias to #inspect to</div><div class='add'>+	  reduce the result of recursive struct.  a patch from ujihisa a</div><div class='add'>+	  [ruby-dev:38554].</div><div class='add'>+</div><div class='add'>+Fri May 29 17:08:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): made #to_s an alias to #inspect to reduce</div><div class='add'>+	  the result of recursive hash.  a patch from ujihisa a</div><div class='add'>+	  [ruby-core:23601].  [ruby-dev:38555]</div><div class='add'>+</div><div class='add'>+Fri May 29 09:30:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (collect_all): checks interrupts.  [ruby-core:23594]</div><div class='add'>+</div><div class='add'>+Thu May 28 07:39:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (THREAD_MODEL): reject unknown value and checks</div><div class='add'>+	  pthread.h only when pthread.  [ruby-core:23577]</div><div class='add'>+</div><div class='add'>+Thu May 28 03:47:46 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/optparse/opttest.rb: typo fixed.  [ruby-dev:38544]</div><div class='add'>+</div><div class='add'>+Thu May 28 03:43:10 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): update RDoc according to info from</div><div class='add'>+	  Marc-Andre Lafortune in [ruby-core:23575].  [ruby-core:23564]</div><div class='add'>+</div><div class='add'>+Thu May 28 02:40:54 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri: don't set @parser if it is DEFAULT_PARSER for marshaling</div><div class='add'>+	  URI objects between Ruby 1.8 and Ruby 1.9.</div><div class='add'>+	  [ruby-dev:38377]</div><div class='add'>+</div><div class='add'>+Wed May 27 23:00:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct parser_params): lex_gets_ptr should be long.</div><div class='add'>+</div><div class='add'>+Wed May 27 18:00:15 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigand_int): new function to calculate bignum and</div><div class='add'>+	  fixnum without allocating internal bignum.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigor_int): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigxor_int): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigand_int): even less object allocation.</div><div class='add'>+</div><div class='add'>+Wed May 27 14:29:55 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_encoding): more compact encoding information for</div><div class='add'>+	  US-ASCII and UTF-8.  [incompatible] [experimental]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_ivar): restore :E encoding information.</div><div class='add'>+</div><div class='add'>+Wed May 27 14:08:39 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_insert2): new function with processing new key,</div><div class='add'>+	  e.g. copy.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): use st_insert2() to reduce redundant</div><div class='add'>+	  st_lookup calls.</div><div class='add'>+</div><div class='add'>+Wed May 27 02:31:38 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_getc): the function for</div><div class='add'>+	  rl_getc_function must be a byte function.</div><div class='add'>+	  so use getbyte method. [ruby-dev:38535]</div><div class='add'>+</div><div class='add'>+Tue May 26 14:24:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: fixed types.</div><div class='add'>+</div><div class='add'>+	* common.mk (bignum.o, numeric.o): depend on util.h.</div><div class='add'>+</div><div class='add'>+	* bignum.c, marshal.c: fixed types.</div><div class='add'>+</div><div class='add'>+	* numeric.c (infinite_value): use ruby_div0.</div><div class='add'>+</div><div class='add'>+	* include/ruby/util.h (ruby_div0): moved from marshal.c.</div><div class='add'>+</div><div class='add'>+Tue May 26 11:01:41 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use map! to replace strings in $objs array.</div><div class='add'>+</div><div class='add'>+Tue May 26 10:12:08 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignew_1): inline memory allocation.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigtrunc): call rb_big_resize() only when needed.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigfixize): declare inline.</div><div class='add'>+</div><div class='add'>+Tue May 26 05:39:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FilePathValue): prevent from GC.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2LONG): added GCC specific optimization.</div><div class='add'>+</div><div class='add'>+Tue May 26 03:41:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_gmtime, rb_localtime): gmtime and localtime return</div><div class='add'>+	  NULL on error.  [ruby-core:23551]</div><div class='add'>+</div><div class='add'>+Tue May 26 03:38:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char, rb_str_each_codepoint): string</div><div class='add'>+	  length must be long.</div><div class='add'>+</div><div class='add'>+Mon May 25 13:27:32 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: dont use gsub! method for frozen string.</div><div class='add'>+</div><div class='add'>+Mon May 25 11:47:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb, tool/instruby.rb: removed redundant code.</div><div class='add'>+</div><div class='add'>+Mon May 25 09:34:09 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): avoid calling rb_enc_str_asciionly_p().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): avoid redundant calling rb_str_new4().</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace): factor out replacement from</div><div class='add'>+	  rb_str_replace() without type check nor discarding the</div><div class='add'>+	  destination contents.</div><div class='add'>+</div><div class='add'>+Mon May 25 08:06:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition): should use the converted result.  a</div><div class='add'>+	  patch from Marc-Andre Lafortune at [ruby-core:23540].</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rpartition): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 25 06:25:38 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb (TestHash::test_equal2): recursive hashes</div><div class='add'>+	  are handled properly now. ref: [ruby-core:23402]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N#test_sprintf_p): test fixed</div><div class='add'>+</div><div class='add'>+Mon May 25 05:32:19 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::HTTP_STATUS): typo fixed.  a patch from</div><div class='add'>+	  Nobuhiro IMAI.  [ruby-dev:38538]</div><div class='add'>+</div><div class='add'>+Sun May 24 22:48:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_exec_recursive_paired): new function for proper</div><div class='add'>+	  handling of recursive arrays.  [EXPERIMENTAL] [ruby-core:23402]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal, rb_ary_eql, rb_ary_cmp): use above.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_equal): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 24 22:39:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): errno is int.</div><div class='add'>+</div><div class='add'>+Sun May 24 00:52:54 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in ($ridir): new configuration. [ruby-core:23520].</div><div class='add'>+	  c.f. [ruby-core:23519].</div><div class='add'>+</div><div class='add'>+	  (--with-ridir): new configure option.</div><div class='add'>+</div><div class='add'>+	* tool/instruby.rb (:doc, :rdoc): uses $ridir instead of</div><div class='add'>+	  a fixed path.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb: follows $ridir.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: removes RIDATADIR which is no longer used.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: generates the 'ridir' entry for RbConfig.</div><div class='add'>+	  removes RIDATADIR which is no longer used.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 23 23:52:33 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): return original string.</div><div class='add'>+	  [ruby-core:23499]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_codepoint): protect string from</div><div class='add'>+	  modification.</div><div class='add'>+</div><div class='add'>+Sat May 23 21:48:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_s_sym): added a method to access</div><div class='add'>+	  using RTLD_NEXT.  [ruby-dev:38152]</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (Init_dlhandle): added constants DEFAULT and</div><div class='add'>+	  NEXT which correspond to RTLD_DEFAULT and RTLD_NEXT.</div><div class='add'>+</div><div class='add'>+Sat May 23 18:53:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/cparser.rb (DL::CParser#parse_struct_signature):</div><div class='add'>+	  splitting with regexp source string is obsolete.  a patch from</div><div class='add'>+	  Minwoo Lee at [ruby-core:23494].</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_cmp): return signed value, and restrict</div><div class='add'>+	  to Fixnum.  [ruby-dev:38533]</div><div class='add'>+</div><div class='add'>+Fri May 22 23:22:53 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (errno): [BUG] fixes a compilation</div><div class='add'>+	  error on SIZEOF_LONG &gt; SIZEOF_INT.</div><div class='add'>+	  (BSD_vfprintf): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 22 23:20:48 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: follows runruby.rb's move at r23542.</div><div class='add'>+</div><div class='add'>+Fri May 22 21:38:55 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add Time#to_r.</div><div class='add'>+</div><div class='add'>+Fri May 22 20:29:01 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess: moved into tool/.</div><div class='add'>+</div><div class='add'>+	* config.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* install-sh: ditto</div><div class='add'>+</div><div class='add'>+	* configure.in: follows the moves.</div><div class='add'>+</div><div class='add'>+	* LEGAL: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 22 20:10:18 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: moved into tool/.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* runruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk: follows the moves.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 22 05:09:43 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): avoid call of rb_scan_args() unless</div><div class='add'>+	  it's really necessary.</div><div class='add'>+</div><div class='add'>+Thu May 21 22:17:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl, id.h (enum ruby_method_ids): added some IDs.</div><div class='add'>+</div><div class='add'>+	* debug.c (dummy_gdb_enums): added enum ruby_method_ids.</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): improved output of Symbol.</div><div class='add'>+</div><div class='add'>+Thu May 21 21:07:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): support for 'z' modifier.</div><div class='add'>+</div><div class='add'>+Thu May 21 18:55:33 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem.default_dir and misc.): use rubylibprefix.</div><div class='add'>+	  follows the change in r23368.</div><div class='add'>+</div><div class='add'>+Thu May 21 12:07:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RB_EVENT_HOOKS_HAVE_CALLBACK_DATA):</div><div class='add'>+	  new macro for compatibility check.</div><div class='add'>+</div><div class='add'>+Thu May 21 01:43:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_long2int, RARRAY_LENINT): check long to</div><div class='add'>+	  cast to int.  [ruby-dev:38508]</div><div class='add'>+</div><div class='add'>+	* struct.c, vm_eval.c, vm_insnhelper.c: use RARRAY_LENINT.</div><div class='add'>+</div><div class='add'>+Wed May 20 21:00:27 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* rb_enc_get_index: allows an arbitrary RData as the argument but not</div><div class='add'>+	  only what points a rb_encoding.</div><div class='add'>+</div><div class='add'>+Wed May 20 20:54:37 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/.gitignore: ignores rubyspec/ and mspec/.</div><div class='add'>+</div><div class='add'>+Wed May 20 19:41:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_new): get rid of too large alloca.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_hash): use long.</div><div class='add'>+</div><div class='add'>+Wed May 20 18:58:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c, vm_insnhelper.c: argument number is restricted to</div><div class='add'>+	  int, and fixed overflow.</div><div class='add'>+</div><div class='add'>+Wed May 20 18:34:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (zip_ary): should use long.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (inspect_enumerator): should use long.</div><div class='add'>+</div><div class='add'>+Wed May 20 09:18:44 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): optimized for 1byte string count by</div><div class='add'>+	  avoiding tr_setup_table().</div><div class='add'>+</div><div class='add'>+Wed May 20 06:25:29 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_fast_mbclen): faster mbclen for strings known</div><div class='add'>+	  to be valid.</div><div class='add'>+</div><div class='add'>+	* string.c (enc_strlen): coderange specified version of</div><div class='add'>+	  rb_enc_strlen().  use rb_enc_fast_mbclen() if coderange is 7bit</div><div class='add'>+	  or valid.</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): use rb_enc_fast_mbclen().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse, rb_str_split_m, rb_str_each_char,</div><div class='add'>+	  scan_once): ditto.</div><div class='add'>+</div><div class='add'>+Wed May 20 06:20:05 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink): close first for Windows.  a</div><div class='add'>+	  patch from Florian Frank.  [ruby-core:23505]</div><div class='add'>+</div><div class='add'>+Wed May 20 00:13:38 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codepoint_len): combine rb_enc_codepoint()</div><div class='add'>+	  and rb_enc_codelen() in one function to reduce calls.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codepoint): compatibility function.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): use rb_enc_codepoint_len().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect, rb_str_upcase_bang,</div><div class='add'>+	  rb_str_downcase_bang, rb_str_capitalize_bang,</div><div class='add'>+	  rb_str_swapcase_bang, trnext, tr_trans, rb_str_delete_bang,</div><div class='add'>+	  rb_str_squeeze_bang, rb_str_count, rb_str_split_m,</div><div class='add'>+	  rb_str_each_line, rb_str_each_codepoint, rb_str_lstrip_bang,</div><div class='add'>+	  sym_printable): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): use rb_enc_mbc_to_codepoint()</div><div class='add'>+</div><div class='add'>+Wed May 20 00:05:52 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_attr): should preserve encoding info.</div><div class='add'>+	  [ruby-dev:38498]</div><div class='add'>+</div><div class='add'>+Tue May 19 22:54:35 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): always return a Float.  [ruby-dev:38446]</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_r): new method.  [ruby-dev:38461]</div><div class='add'>+</div><div class='add'>+Tue May 19 13:59:35 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (clone_method): add cast to remove warning from</div><div class='add'>+	  rb_gc_write_barrier().</div><div class='add'>+</div><div class='add'>+Tue May 19 13:54:15 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_ivar_get): new function to avoid repeated</div><div class='add'>+	  rb_intern() calls.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_iv_get): use struct_ivar_get()</div><div class='add'>+</div><div class='add'>+	* struct.c (num_members): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_members): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): cache symbol to reduce calls to</div><div class='add'>+	  rb_intern().</div><div class='add'>+</div><div class='add'>+Tue May 19 07:52:05 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_time.rb: make tests timezone independent.</div><div class='add'>+	  reported by zunda.  [ruby-dev:38492]</div><div class='add'>+</div><div class='add'>+Mon May 18 21:40:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#sub): suppress a warning.  [ruby-dev:38488]</div><div class='add'>+</div><div class='add'>+Sun May 17 23:23:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (SRC_EXT): should be flat.</div><div class='add'>+	  http://twitter.com/_tad_/status/1825862632</div><div class='add'>+</div><div class='add'>+Sun May 17 23:05:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): VARIABLE_LIBPATH is always</div><div class='add'>+	  defined, see its value instead.</div><div class='add'>+</div><div class='add'>+Sun May 17 18:59:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (nd_line): NODE_LMASK is not needed.</div><div class='add'>+</div><div class='add'>+	* node.h (NOEX_SAFE): made int.</div><div class='add'>+</div><div class='add'>+Sun May 17 14:23:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (rb_parse_in_eval): returns true in true eval, not in</div><div class='add'>+	  main.  [ruby-dev:38382]</div><div class='add'>+</div><div class='add'>+	* parse.y (program): inherits dvars in eval or main.</div><div class='add'>+</div><div class='add'>+Sun May 17 14:02:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_script): sets also VM toplevel program name.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): no longer needs additional frame.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_get_sourceline): should not access out of bound.</div><div class='add'>+</div><div class='add'>+Sun May 17 09:47:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (cmdline_options_init): initialize encodings.</div><div class='add'>+</div><div class='add'>+	* ruby.c (add_modules, require_libraries, process_sflag):</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_sflag): not process twice.</div><div class='add'>+</div><div class='add'>+	* ruby.c (moreswitches): get rid of possible overflow.</div><div class='add'>+</div><div class='add'>+Sun May 17 09:31:05 2009  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (foletypelib_name): should return</div><div class='add'>+	  encoded name corresponding to WIN32OLE.codepage.</div><div class='add'>+</div><div class='add'>+Sun May 17 09:02:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): support for cygwin 1.7.  see</div><div class='add'>+	  [ruby-core:23241].</div><div class='add'>+	  gets rid of possible buffer overflow with realpath().</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): get rids of overrun.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:38:32 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: add nil check.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:36:01 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_atom_feed.rb: suppress warnings.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:33:15 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add RSS::Maker.supported?(version).</div><div class='add'>+</div><div class='add'>+Sat May 16 18:26:42 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, test/test_parser_1.0.rb: fix foaf:Image</div><div class='add'>+	  element causes parse error even if ignore_unknown_element mode.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:14:19 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb, lib/rss/maker/0.9.rb,</div><div class='add'>+	  test/test_maker_*.rb: add RSS::Maker.supported?</div><div class='add'>+</div><div class='add'>+Sat May 16 18:12:39 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/content/*, lib/rss/dublincore/*: fix circular require.</div><div class='add'>+	* test/test_maker_atom_feed.rb,</div><div class='add'>+	  test/test_maker_atom_entry.rb: suppress warnings.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:07:17 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/feed.rb, test/test_maker_atom_feed.rb:</div><div class='add'>+	  remove needless codes.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:05:07 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/entry.rb: fix a typo.</div><div class='add'>+</div><div class='add'>+Sat May 16 18:02:57 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/feed.rb, test/test_maker_atom_entry.rb,</div><div class='add'>+	  test/test_maker_atom_feed.rb: fix duplicated dc:date.</div><div class='add'>+	  Reported by Kazuhiro NISHIYAMA. Thanks!!! [ruby-list:46014]</div><div class='add'>+</div><div class='add'>+Sat May 16 18:02:16 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb, lib/rss/maker/1.0.rb, lib/rss/maker/feed.rb,</div><div class='add'>+	  test/rss/test_maker_1.0.rb, test/rss/test_maker_atom_feed.rb:</div><div class='add'>+	  RSS 1.0 and Atom feed maker treat maker.channel.language as</div><div class='add'>+	  maker.channel.dc_language.</div><div class='add'>+</div><div class='add'>+Sat May 16 17:57:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/callback.rb (DL#remove_callback_internal): ignore</div><div class='add'>+	  unbound function.  [ruby-dev:38474]</div><div class='add'>+</div><div class='add'>+Sat May 16 17:51:11 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/rss_recent.rb, sample/rss/list_description.rb: use</div><div class='add'>+	  UTF-8.</div><div class='add'>+</div><div class='add'>+Sat May 16 17:47:55 2009  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, test/rss/test_version.rb (RSS::VERSION):</div><div class='add'>+	  0.2.5 -&gt; 0.2.6.</div><div class='add'>+</div><div class='add'>+Sat May 16 17:26:04 2009  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_clone): use longlife object and insert write barrier.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_cref_push): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (COPY_CREF): insert write barrier.</div><div class='add'>+</div><div class='add'>+Sat May 16 13:49:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): gets rid of false warning.</div><div class='add'>+	  [ruby-core:23466]</div><div class='add'>+</div><div class='add'>+Sat May 16 10:59:54 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/drb/dhasenc.rb: add magic comment for encoding.</div><div class='add'>+</div><div class='add'>+	* sample/mine.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tcltklib/sample1.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 16 09:49:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (magic_comment_encoding): ignores unused emacs-style</div><div class='add'>+	  encoding comment, as like Vim styles.  [ruby-core:23470]</div><div class='add'>+</div><div class='add'>+Sat May 16 09:30:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defs/keywords (reserved_word): made inline function static.</div><div class='add'>+	  [ruby-core:23210]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_reserved_word): ordinary function for ripper.</div><div class='add'>+</div><div class='add'>+Sat May 16 09:19:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (magic_comment_encoding): use rb_compile_warning() to</div><div class='add'>+	  show the currently parsing file name.  [ruby-core:23469]</div><div class='add'>+</div><div class='add'>+Sat May 16 09:03:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby_version): now version.h includes</div><div class='add'>+	  include/ruby/version.h, so need to tell to cpp to see</div><div class='add'>+	  $(srcdir)/include.  [ruby-core:23468]</div><div class='add'>+</div><div class='add'>+Fri May 15 17:35:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift, rb_ary_shift_m): clears unused elements.</div><div class='add'>+	  [ruby-dev:38448]</div><div class='add'>+</div><div class='add'>+Fri May 15 15:15:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): checks if iv_tbl is valid.</div><div class='add'>+	  [ruby-dev:38456]</div><div class='add'>+</div><div class='add'>+Fri May 15 11:17:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (-version-): now version.h includes</div><div class='add'>+	  include/ruby/version.h, so need to tell to cpp to check</div><div class='add'>+	  $(srcdir)/include.</div><div class='add'>+	  reported by KIMURA Koichi at http://www.kt.rim.or.jp/%7ekbk/zakkicho/09/zakkicho0905b.html#D20090514-6</div><div class='add'>+</div><div class='add'>+Thu May 14 16:13:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getpwuid): use rb_uid_t.  [ruby-dev:38443]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetbyte): encoding should no</div><div class='add'>+	  be effective.</div><div class='add'>+</div><div class='add'>+Thu May 14 10:17:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (valid_syntax?): defaults to us-ascii.</div><div class='add'>+</div><div class='add'>+Wed May 13 22:34:31 2009  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: add longlife garbage collection. [ruby-dev:38423]</div><div class='add'>+	  (NORMAL_HEAPS_USED): new macro.</div><div class='add'>+	  (LONGLIFE_ALLOCATE_HEAPS_MIN): ditto.</div><div class='add'>+	  (add_longlife_heaps_slot): new function.</div><div class='add'>+	  (rb_newobj_from_longlife_heap): ditto.</div><div class='add'>+	  (rb_newobj_longlife): ditto.</div><div class='add'>+	  (rb_node_newnode_longlife): ditto.</div><div class='add'>+	  (rb_gc_write_barrier): ditto.</div><div class='add'>+	  (remembered_set_recycle): ditto.</div><div class='add'>+	  (rb_gc_mark_remembered_set): ditto.</div><div class='add'>+	  (clear_mark_longlife_heaps): ditto.</div><div class='add'>+	  (gc_sweep_for_longlife): ditto.</div><div class='add'>+	  (assign_heap_slot): new argument to longlife heaps slot.</div><div class='add'>+	  (add_freelist): ditto.</div><div class='add'>+	  (gc_sweep): avoid longlife heap slot. set longlife_collection</div><div class='add'>+	  flag at add heap.</div><div class='add'>+	  (rb_gc_force_recycle): avoid mark object and remembered_set</div><div class='add'>+	  object.</div><div class='add'>+	  (garbage_collect): add longlife collection.</div><div class='add'>+	  (rb_gc_start): invoke longlife collection.</div><div class='add'>+	  (gc_profile_record_get): for longlife collection profile.</div><div class='add'>+	  (gc_profile_result): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_gc_write_barrier): declared.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FL_REMEMBERED_SET): renamed from FL_RESERVED.</div><div class='add'>+</div><div class='add'>+	* debug.c (FL_REMEMBERED_SET): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def (setinlinecache): insert write barrier.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_search): ditto.</div><div class='add'>+</div><div class='add'>+	* set_relation (set_relation): use longlife object.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_define_method): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (NEW_INLINE_CACHE_ENTRY): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_add_method): ditto.</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_NODE_LONGLIFE): new macro.</div><div class='add'>+	  (rb_node_newnode_longlife): declared.</div><div class='add'>+</div><div class='add'>+Wed May 13 15:23:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/version.h: extracted the extensions interface and</div><div class='add'>+	  the never-changeable info.</div><div class='add'>+</div><div class='add'>+Wed May 13 03:20:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_init_1): unused variable removed.</div><div class='add'>+</div><div class='add'>+Tue May 12 21:03:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: support fixed UTC offset.  [ruby-dev:38326]</div><div class='add'>+	  (leap_year_v_p): new macro.</div><div class='add'>+	  (TIME_FIXOFF_P): new macro.</div><div class='add'>+	  (TIME_SET_FIXOFF): new macro.</div><div class='add'>+	  (time_init_0): renamed from time_init.</div><div class='add'>+	  (time_set_utc_offset): new function.</div><div class='add'>+	  (vtm_add_offset): new function.</div><div class='add'>+	  (utc_offset_arg): new function.</div><div class='add'>+	  (time_init_1): new function.</div><div class='add'>+	  (time_init): call time_init_0 or time_init_1 according argc.</div><div class='add'>+	  (validate_utc_offset): new function.</div><div class='add'>+	  (time_localtime_m): new function.</div><div class='add'>+	  (time_fixoff): new function.</div><div class='add'>+	  (time_getlocaltime): take optional UTC offset argument.</div><div class='add'>+	  (time_get_tm): support fixed UTC offset time.</div><div class='add'>+	  (Init_Time): make Time#{initialize,localtime,getlocal} varargs.</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): vtm-&gt;zone can be NULL now.</div><div class='add'>+</div><div class='add'>+Tue May 12 18:23:40 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* yarvtest: removed because it's outdated.</div><div class='add'>+</div><div class='add'>+Mon May 11 21:46:20 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: add semicolons to some grammar rules not terminated</div><div class='add'>+	  with them.  a patch from Dave B in [ruby-core:23422].</div><div class='add'>+</div><div class='add'>+Mon May 11 20:08:33 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): add constant File::NOATIME.  [ruby-core:23194]</div><div class='add'>+</div><div class='add'>+Mon May 11 13:08:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (rubylibdir): use rubylibprefix.  [ruby-dev:38426]</div><div class='add'>+</div><div class='add'>+Mon May 11 08:37:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): support</div><div class='add'>+	   coercing into Rational.   [ruby-core:23415]</div><div class='add'>+</div><div class='add'>+Mon May 11 04:39:45 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP#check_auth_args): should not change</div><div class='add'>+	  number of methods for the sake of compatibility.</div><div class='add'>+</div><div class='add'>+Sun May 10 11:36:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_instance_p): new function to check if</div><div class='add'>+	  the argument is an instance of DL::CFunc.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_initialize, rb_dlptr_s_malloc): checks</div><div class='add'>+	  if DL::CFunc.  [ruby-dev:38403].</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/cparser.rb (DL::CParser#parse_signature): strips</div><div class='add'>+	  spaces.  based on a patch from Takashi Tamura in [ruby-dev:38398].</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/value.rb (DL::ValueUtil#wrap_arg): block must be</div><div class='add'>+	  given if arg is not bound.  [ruby-dev:38404]</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_instance_p): new function to check if</div><div class='add'>+	  the argument is an instance of DL::CFunc.</div><div class='add'>+</div><div class='add'>+Sat May  9 19:57:00 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (TestFloat#test_sleep_with_Float): add a</div><div class='add'>+	  test. see [ruby-core:23282]</div><div class='add'>+</div><div class='add'>+Sat May  9 19:23:46 2009  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: use subsec instead of nsec.</div><div class='add'>+</div><div class='add'>+Sat May  9 12:19:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c: 3rd argument of rb_hash_foreach() is VALUE.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash, recursive_hash): use VALUE for hash.</div><div class='add'>+</div><div class='add'>+Sat May  9 11:14:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_catch): gets rid of issue with gcc 4.4.  a patch</div><div class='add'>+	  from Alexey Froloff in [ruby-core:23398].  [ruby-core:22924]</div><div class='add'>+</div><div class='add'>+Fri May  8 19:38:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_link0): removes waste dSYM directories left</div><div class='add'>+	  when debug and universal-binary are enabled.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): fixed wrong recurring result for</div><div class='add'>+	  intrinsic types.</div><div class='add'>+</div><div class='add'>+Fri May  8 10:14:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in, win32/Makefile.sub (RUBY_BASE_NAME):</div><div class='add'>+	  program base name.  [ruby-dev:38241]</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-soname): base name of shared library.</div><div class='add'>+	  [ruby-dev:38290]</div><div class='add'>+</div><div class='add'>+Fri May  8 10:07:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): clears temporary array.</div><div class='add'>+</div><div class='add'>+Fri May  8 02:30:14 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet#add): Do not require each newly added</div><div class='add'>+	  element to be Comparable but to respond to &lt;=&gt;. [ruby-dev:38371]</div><div class='add'>+</div><div class='add'>+Thu May  7 21:42:51 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_indentation_check): add a test</div><div class='add'>+	  for indentation check.  [ruby-dev:38382]</div><div class='add'>+</div><div class='add'>+Thu May  7 16:40:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): returns nil if nothing changed.</div><div class='add'>+	  a patch from Marc-Andre Lafortune in [ruby-core:23382].</div><div class='add'>+</div><div class='add'>+Thu May  7 14:26:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): negative sample number is invalid.</div><div class='add'>+	  [ruby-core:23374]</div><div class='add'>+</div><div class='add'>+Thu May  7 14:16:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c, include/ruby/encoding.h: fixed types.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_nth): long is used for index.</div><div class='add'>+</div><div class='add'>+Thu May  7 14:01:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (r_le): fixed types.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eql): fixed rdoc.</div><div class='add'>+</div><div class='add'>+Thu May  7 13:10:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): should be rb_pid_t.</div><div class='add'>+</div><div class='add'>+Wed May  6 16:50:20 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_gamma): use a table for positive small integers.</div><div class='add'>+</div><div class='add'>+Wed May  6 09:27:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.ja: code for THINK_C does not exist already.  [Bug #1435]</div><div class='add'>+</div><div class='add'>+Wed May  6 05:33:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): strips extra spaces.</div><div class='add'>+</div><div class='add'>+Tue May  5 11:29:07 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ifchange: Fix: arguments which begin with minus sign may</div><div class='add'>+	  parsed as options.  Because of older systems, don't use --</div><div class='add'>+	  but use parentheses.</div><div class='add'>+</div><div class='add'>+Tue May  5 10:42:28 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Update to JSON 1.1.4.</div><div class='add'>+</div><div class='add'>+Tue May  5 07:22:37 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: NOMAP is now multibyte direct map.</div><div class='add'>+</div><div class='add'>+	* transcode.c: remove ASIS.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h: ditto.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tb (ActionMap#generate_info): remove :asis.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tb (ActionMap#generate_info): add :nomap0.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: replace :asis by :nomap0.</div><div class='add'>+</div><div class='add'>+Sat May  2 22:53:02 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet): Fix document. [Bug #1429]</div><div class='add'>+</div><div class='add'>+Sat May  2 10:34:29 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac-tbl.rb: don't use Unicode escape.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: follow above.</div><div class='add'>+</div><div class='add'>+Sat May  2 09:19:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): made #to_s an alias to #inspect to reduce</div><div class='add'>+	  the result of recursive array.  a patch from ujihisa at</div><div class='add'>+	  [ruby-dev:38362]</div><div class='add'>+</div><div class='add'>+Fri May  1 16:50:05 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#merge): Only directly use the passed objects</div><div class='add'>+	  @hash instance variable when self and the passed object are</div><div class='add'>+	  instances of the same class. [Bug #118]</div><div class='add'>+</div><div class='add'>+Fri May  1 16:44:11 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet#add): Do not let an incomparable object</div><div class='add'>+	  in. [Bug #118]</div><div class='add'>+</div><div class='add'>+Fri May  1 13:18:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (_longjmp): never return.  see [ruby-core:23241]</div><div class='add'>+</div><div class='add'>+Fri May  1 01:31:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: use RbConfig instead of Config.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_config.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 30 21:23:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: use RbConfig::CONFIG instead of Config::CONFIG.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/report.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/runc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* tool/eval.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_config.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_platform.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 30 18:18:13 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: documentation typo fixed.  [ruby-core:23335]</div><div class='add'>+</div><div class='add'>+Thu Apr 30 15:27:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: get rid of a 1.9 feature for cross</div><div class='add'>+	  compile.</div><div class='add'>+</div><div class='add'>+Thu Apr 30 11:35:30 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): Change filesystem_encoding of</div><div class='add'>+	  Mac OS X to UTF-8.</div><div class='add'>+</div><div class='add'>+Wed Apr 29 21:23:40 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso_2022_jp.h: add CP50221.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: add converter for CP50221.</div><div class='add'>+</div><div class='add'>+Wed Apr 29 15:22:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): recursive array has no meaning as path</div><div class='add'>+	  name.  [ruby-core:23329]</div><div class='add'>+</div><div class='add'>+Tue Apr 28 19:09:45 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_timeout.rb (TestTimeout#test_timeout): add a test.</div><div class='add'>+</div><div class='add'>+Tue Apr 28 07:13:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Struct#pretty_print): coerce to a string since</div><div class='add'>+	  anonymous class has name no longer.  [ruby-dev:38349]</div><div class='add'>+</div><div class='add'>+Mon Apr 27 16:47:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby_version): uses sed instead of grep if the</div><div class='add'>+	  result is need, to get rid of GREP_OPTIONS.  [ruby-dev:38336]</div><div class='add'>+</div><div class='add'>+Mon Apr 27 01:25:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_getc): use rl_getc_function if</div><div class='add'>+	  possible, to get rid of hang up at EOF without a newline.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 23:19:32 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac.trans: Add converter for UTF8-MAC.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf8_mac-tbl.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_econv.rb: tests for above.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 22:17:02 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tb (ActionMap#each_firstbyte):</div><div class='add'>+	  if :asis collides other mappings, use another.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tb (ActionMap#generate_info):</div><div class='add'>+	  add :asis for ASIS.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 21:59:43 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (ASIS): added for multi byte direct map.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 20:33:12 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tb (ActionMap#generate_node):</div><div class='add'>+	  Use ActionMap#gennode instead of generate_node</div><div class='add'>+	  because of initialization.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 20:21:39 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gitignore: added.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 20:17:24 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb: use RbConfig::CONFIG instead of Config::CONFIG.</div><div class='add'>+</div><div class='add'>+	* lib/rbconfig/datadir.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 19:30:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): unused variable removed.</div><div class='add'>+</div><div class='add'>+Sun Apr 26 18:35:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): keeps pathv for prep_stdio.  [ruby-dev:38131]</div><div class='add'>+</div><div class='add'>+Sun Apr 26 15:13:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#parse_in_order): do not make an</div><div class='add'>+	  option from non-option argument.  [ruby-dev:38333]</div><div class='add'>+</div><div class='add'>+Sat Apr 25 19:11:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_daemon): use daemon(3) only on *BSD.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): double fork to ensure not having ctty.</div><div class='add'>+	  [ruby-core:23305]</div><div class='add'>+</div><div class='add'>+Sat Apr 25 16:19:48 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (month_arg): extracted from time_arg.</div><div class='add'>+	  (validate_vtm): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 25 16:03:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (TIME_COPY_GMT): new macro.</div><div class='add'>+	  (time_s_at): use TIME_COPY_GMT.</div><div class='add'>+	  (time_succ): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 25 15:54:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mload): use TIME_SET_UTC.</div><div class='add'>+</div><div class='add'>+Sat Apr 25 15:47:54 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_get_tm): take time_object instead of gmt.</div><div class='add'>+</div><div class='add'>+Sat Apr 25 15:39:44 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_succ): refactored to avoid gmt variable.</div><div class='add'>+	  (strftimev): use TIME_UTC_P.</div><div class='add'>+	  (time_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 25 15:21:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (TIME_UTC_P): new macro.</div><div class='add'>+	  (TIME_SET_UTC): ditto.</div><div class='add'>+	  (TIME_LOCALTIME_P): ditto.</div><div class='add'>+	  (TIME_SET_LOCALTIME): ditto.</div><div class='add'>+	  (time_utc_p): use the above macro.</div><div class='add'>+	  (time_localtime): ditto.</div><div class='add'>+	  (time_localtime): ditto.</div><div class='add'>+	  (time_gmtime): ditto.</div><div class='add'>+	  (time_to_s): ditto.</div><div class='add'>+	  (time_add): ditto.</div><div class='add'>+	  (time_sec): ditto.</div><div class='add'>+	  (time_min): ditto.</div><div class='add'>+	  (time_hour): ditto.</div><div class='add'>+	  (time_mday): ditto.</div><div class='add'>+	  (time_mon): ditto.</div><div class='add'>+	  (time_year): ditto.</div><div class='add'>+	  (time_wday): ditto.</div><div class='add'>+	  (wday_p): ditto.</div><div class='add'>+	  (time_yday): ditto.</div><div class='add'>+	  (time_isdst): ditto.</div><div class='add'>+	  (time_zone): ditto.</div><div class='add'>+	  (time_utc_offset): ditto.</div><div class='add'>+	  (time_to_a): ditto.</div><div class='add'>+	  (strftimev): ditto.</div><div class='add'>+	  (time_strftime): ditto.</div><div class='add'>+	  (time_mdump): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 23 01:30:37 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Zlib::GzipFile#path): New method.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 20:25:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): check out-of-range.  [ruby-core:23282]</div><div class='add'>+	  [Bug #1396]</div><div class='add'>+</div><div class='add'>+Wed Apr 22 19:33:13 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.parse): use year completion in Date._parse.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 11:12:15 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (GMTIME, LOCALTIME): should set result if not have *_r().</div><div class='add'>+</div><div class='add'>+	* time.c (localtime_with_gmtoff): now always needed tmbuf.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 10:38:47 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): C99(gcc)-ism.</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): GUESS macro needs the variable named ``result''</div><div class='add'>+	  always.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 09:27:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (localtime_with_gmtoff): fixed cross function jump.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 03:06:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time#rfc2822): pad leading zeros for year.</div><div class='add'>+	  (Time#httpdate): ditto.</div><div class='add'>+	  (Time#xmlschema): ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 02:10:48 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time#xmlschema): use subsec instead of nsec.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 01:27:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): use the year argument as-is.  [ruby-dev:38194]</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.parse): interpret small year 0..99 as 1950..2049.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 00:32:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (find_time_t): constified.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 00:11:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (leap_year_v_p): removed.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 23:52:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: remove time_t restriction from Time class.</div><div class='add'>+</div><div class='add'>+	* timev.h: new file to define struct vtm.</div><div class='add'>+</div><div class='add'>+	* strftime.c: format struct vtm instead of struct tm.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (mktime_do): don't use time_t;</div><div class='add'>+</div><div class='add'>+	[ruby-dev:38191]</div><div class='add'>+</div><div class='add'>+Tue Apr 21 09:25:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_path, dir_each, glob_helper): use readdir_r() if</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 09:20:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): needs default library path even if</div><div class='add'>+	  cross compiling.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 07:07:45 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_push): bypass rb_ary_store().</div><div class='add'>+</div><div class='add'>+Tue Apr 21 01:25:16 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsub_int): subtraction without making internal</div><div class='add'>+	  bignum values.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigadd_int): ditto for addition.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigtrunc): declare inline.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): fix condition.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 01:13:42 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config.h): added TIMET2NUM and NUM2TIMET to match</div><div class='add'>+	  the change in time.c</div><div class='add'>+</div><div class='add'>+Mon Apr 20 20:29:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): faster processing on 7bit strings.</div><div class='add'>+</div><div class='add'>+	* string.c (ascii_isspace): faster isspace() for 7bit strings.</div><div class='add'>+</div><div class='add'>+Sun Apr 19 14:43:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): the order of local variables on stack is</div><div class='add'>+	  undefined.  should use outermost VALUE for ruby_init_stack.</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_get_stack_grow_direction, Init_stack): allows volatile</div><div class='add'>+	  pointer.</div><div class='add'>+</div><div class='add'>+	* thread_*.c (ruby_init_stack): ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr 19 13:17:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (Gem::QuickLoader#push_gem_version_on_load_path):</div><div class='add'>+	  check for requirement if the gem is installed.  a patch from</div><div class='add'>+	  Kyosuke MOROHASHI at [ruby-dev:38020].</div><div class='add'>+</div><div class='add'>+Sun Apr 19 01:39:17 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_seteuid_m): defined to use rb_f_notimplement if not</div><div class='add'>+	  implemented.</div><div class='add'>+	  (proc_setegid_m): ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr 19 01:03:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setuid): use rb_f_notimplement if not implemented.</div><div class='add'>+	  (proc_setgid): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 18 23:07:18 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: use rb_f_notimplement for methods not</div><div class='add'>+	  implemented.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 18 21:07:34 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: use rb_f_notimplement for methods not</div><div class='add'>+	  implemented.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 01:51:17 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (rb_notimplement_body_p): declared.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (Init_eval_method): suppress a warning.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fsync): use rb_f_notimplement if not implemented.</div><div class='add'>+	  (rb_io_close_on_exec_p): ditto.</div><div class='add'>+	  (rb_io_set_close_on_exec): ditto.</div><div class='add'>+	  (rb_io_fcntl): ditto.</div><div class='add'>+	  (rb_f_syscall): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_tell): ditto.</div><div class='add'>+	  (dir_seek): ditto.</div><div class='add'>+	  (dir_s_chroot): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpgrp): ditto.</div><div class='add'>+	  (proc_setpgrp): ditto.</div><div class='add'>+	  (proc_getpgid): ditto.</div><div class='add'>+	  (proc_setpgid): ditto.</div><div class='add'>+	  (proc_setsid): ditto.</div><div class='add'>+	  (proc_getpriority): ditto.</div><div class='add'>+	  (proc_setpriority): ditto.</div><div class='add'>+	  (proc_getrlimit): ditto.</div><div class='add'>+	  (proc_setrlimit): ditto.</div><div class='add'>+	  (p_sys_setuid): ditto.</div><div class='add'>+	  (p_sys_setruid): ditto.</div><div class='add'>+	  (p_sys_seteuid): ditto.</div><div class='add'>+	  (p_sys_setreuid): ditto.</div><div class='add'>+	  (p_sys_setresuid): ditto.</div><div class='add'>+	  (p_sys_setgid): ditto.</div><div class='add'>+	  (p_sys_setrgid): ditto.</div><div class='add'>+	  (p_sys_setegid): ditto.</div><div class='add'>+	  (p_sys_setregid): ditto.</div><div class='add'>+	  (p_sys_setreuid): ditto.</div><div class='add'>+	  (p_sys_setresgid): ditto.</div><div class='add'>+	  (p_sys_issetugid): ditto.</div><div class='add'>+	  (proc_getgroups): ditto.</div><div class='add'>+	  (proc_setgroups): ditto.</div><div class='add'>+	  (proc_initgroups): ditto.</div><div class='add'>+	  (proc_daemon): ditto.</div><div class='add'>+	  (rb_proc_times): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lchown): ditto.</div><div class='add'>+	  (rb_file_s_link): ditto.</div><div class='add'>+	  (rb_file_s_symlink): ditto.</div><div class='add'>+	  (rb_file_s_readlink): ditto.</div><div class='add'>+	  (rb_file_s_truncate): ditto.</div><div class='add'>+	  (rb_file_truncate): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 00:53:47 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (read_multipart): When path is not defined,</div><div class='add'>+	  define local_path as a method always returning nil instead of</div><div class='add'>+	  aliasing.  This is because StringIO#path no longer exists.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 00:45:09 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (bracket): fix escape handling for range character in bracket</div><div class='add'>+	  of fnmatch pattern.  e.g., '[a\-c]' should not match 'b'.</div><div class='add'>+</div><div class='add'>+Thu Apr 16 23:09:03 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_method_id): use rb_define_notimplement_method_id</div><div class='add'>+	  if rb_f_notimplement is given.</div><div class='add'>+	  (rb_define_protected_method): ditto.</div><div class='add'>+	  (rb_define_private_method): ditto.</div><div class='add'>+	  (rb_define_method): use rb_define_method_id.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_f_notimplement): declared.</div><div class='add'>+	  (rb_define_notimplement_method_id): declared.</div><div class='add'>+</div><div class='add'>+	* proc.c (method_inspect): show not-implemented.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (notimplement_body): new variable.</div><div class='add'>+	  (rb_notimplement_body_p): new function.</div><div class='add'>+	  (rb_method_boundp): return false if not implemented.</div><div class='add'>+	  (rb_f_notimplement): new function.</div><div class='add'>+	  (rb_define_notimplement_method_id): new function.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): use rb_f_notimplement if not implemented.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lchmod): use rb_f_notimplement if not implemented.</div><div class='add'>+</div><div class='add'>+Wed Apr 15 20:24:49 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten): flatten(0) works as Array#dup.</div><div class='add'>+	  [ruby-core:23168]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Wed Apr 15 11:53:35 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch_helper): use rb_enc_precise_mbclen and</div><div class='add'>+	  fail if bytes are invalid. [ruby-dev:38307]</div><div class='add'>+</div><div class='add'>+Tue Apr 14 18:11:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (bracket): if same in bytes, path is matching.</div><div class='add'>+	  [ruby-dev:38305]</div><div class='add'>+</div><div class='add'>+Mon Apr 13 17:21:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): scan coderange incrementally.</div><div class='add'>+</div><div class='add'>+Mon Apr 13 11:35:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): optimize previous commit.</div><div class='add'>+	  [ruby-list:45954]</div><div class='add'>+</div><div class='add'>+Mon Apr 13 10:58:54 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): check encoding compatibility only on</div><div class='add'>+	  real parts.</div><div class='add'>+</div><div class='add'>+Sun Apr 12 19:54:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (bracket, fnmatch_helper): compare bytewise first, to get</div><div class='add'>+	  rid of invalid byte sequence.  [ruby-dev:38303]</div><div class='add'>+</div><div class='add'>+Sat Apr 11 08:45:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): phony ruby target needs empty command.</div><div class='add'>+</div><div class='add'>+Fri Apr 10 11:32:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (up): updates timestamp file.</div><div class='add'>+</div><div class='add'>+Fri Apr 10 04:54:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): info-program needs common.mk.</div><div class='add'>+</div><div class='add'>+Fri Apr 10 03:46:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_INSTALL_NAME): use --program-transform-name.</div><div class='add'>+</div><div class='add'>+	* instruby.rb, mkconfig.rb: deal with --program-transform-name</div><div class='add'>+	  better.  now supports s, y commands and single addressing.</div><div class='add'>+</div><div class='add'>+Thu Apr  9 23:59:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: don't override the rule for ruby.</div><div class='add'>+</div><div class='add'>+Wed Apr  8 21:58:12 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): buffer length plus one byte for null</div><div class='add'>+	  terminator.  [ruby-dev:38294]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_str_dump): add a test for above.</div><div class='add'>+</div><div class='add'>+Wed Apr  8 20:08:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.</div><div class='add'>+	  [ruby-core:23158]</div><div class='add'>+</div><div class='add'>+Wed Apr  8 17:29:29 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155]</div><div class='add'>+</div><div class='add'>+Wed Apr  8 14:00:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (what_type?): fixed typo, and refined for member of</div><div class='add'>+	  aggregation types.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): copy postponed output always.</div><div class='add'>+</div><div class='add'>+Wed Apr  8 09:45:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_SO): removed redundant additional version</div><div class='add'>+	  numbers.</div><div class='add'>+</div><div class='add'>+Tue Apr  7 13:35:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (info): shows configured names.</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): works even if RUBY_INSTALL_NAME</div><div class='add'>+	  contains macro.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_DLDFLAGS): compatibility version is</div><div class='add'>+	  ruby_version.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): defines type modifier prefix</div><div class='add'>+	  for printf.</div><div class='add'>+</div><div class='add'>+Tue Apr  7 02:27:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_DEFINT): should pass includes to</div><div class='add'>+	  AC_CHECK_SIZEOF and RUBY_CHECK_SIZEOF.</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): need ARCH_FLAG for universal</div><div class='add'>+	  binary.</div><div class='add'>+</div><div class='add'>+Tue Apr  7 01:08:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): reduce fragments if no precision lost.</div><div class='add'>+	  c.f. [ruby-core:23075]</div><div class='add'>+</div><div class='add'>+Mon Apr  6 23:16:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): override with $cflags and</div><div class='add'>+	  $cxxflags if not given.  [ruby-core:23130]</div><div class='add'>+</div><div class='add'>+Mon Apr  6 19:26:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utime_failed): refined the error message for EINVAL on</div><div class='add'>+	  DOSISH platforms, where it may fail depending on filesystems.</div><div class='add'>+	  see [ruby-dev:38277].</div><div class='add'>+</div><div class='add'>+Mon Apr  6 16:38:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (sys_fail2, rb_file_s_readlink, BUFCHECK, rmext),</div><div class='add'>+	  (rb_file_s_basename): get rid of overflow.</div><div class='add'>+</div><div class='add'>+Mon Apr  6 15:11:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): checks overflow.</div><div class='add'>+</div><div class='add'>+Mon Apr  6 10:49:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb (test_path): StringIO#path is no</div><div class='add'>+	  longer defined.  [ruby-dev:38254]</div><div class='add'>+</div><div class='add'>+Mon Apr  6 10:47:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_path): removed.  [ruby-dev:38254]</div><div class='add'>+</div><div class='add'>+Sun Apr  5 18:02:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_fd_resize): does nothing on Win32.</div><div class='add'>+</div><div class='add'>+Sat Apr  4 17:05:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (RB_NUM_COERCE_FUNCS_NEED_OPID): macro to</div><div class='add'>+	  check compatibility.  [ruby-dev:38162]</div><div class='add'>+</div><div class='add'>+Sat Apr  4 07:38:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (sitearch): default to arch.</div><div class='add'>+</div><div class='add'>+Fri Apr  3 14:02:42 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb (IRB::InputCompletor::Operators): Add</div><div class='add'>+	  overloadable negative operators.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#lex_init): Support overloadable</div><div class='add'>+	  negative operators.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#identify_identifier): Minus signs</div><div class='add'>+	  need to be escaped in regexp character class.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords, ruby-parse-partial):</div><div class='add'>+	  Support overloadable negative operators.</div><div class='add'>+</div><div class='add'>+Fri Apr  3 12:45:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: quotes arguments with spaces always.</div><div class='add'>+</div><div class='add'>+Thu Apr  2 14:50:06 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb: remove unused rdoc/usage from example.</div><div class='add'>+	   [ruby-core:23098]</div><div class='add'>+</div><div class='add'>+Thu Apr  2 07:42:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): updated.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 20:37:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_fork_with_pthread): fail if the child process</div><div class='add'>+	  fail.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 19:46:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): support for parallel make.  a</div><div class='add'>+	  patch from Takuto Matsuu at [ruby-dev:38220].</div><div class='add'>+</div><div class='add'>+Wed Apr  1 19:39:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_LDSHARED): use $(CC) instead of cc.</div><div class='add'>+	  a patch from Wataru Kimura at [ruby-dev:38225].</div><div class='add'>+</div><div class='add'>+Wed Apr  1 18:53:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): should not #include inside a</div><div class='add'>+	  function, since headers may have declarations.</div><div class='add'>+	  c.f. [ruby-core:23095]</div><div class='add'>+</div><div class='add'>+Wed Apr  1 18:44:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: ignores version numbers in config.status.  replaces</div><div class='add'>+	  all $$s in program_transform_name.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 15:12:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (.c.i): use CPP instead of CC, since gcc -E can'</div><div class='add'>+	  work with multiple -arch options.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 13:46:20 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_fd_select): new function to call select</div><div class='add'>+	  using rb_fdset_t.</div><div class='add'>+</div><div class='add'>+	* io.c (select_internal): use rb_thread_fd_select instead of</div><div class='add'>+	  rb_thread_select.  based on the patch from Kengo Matsuyama.</div><div class='add'>+	  [ruby-dev:38221]</div><div class='add'>+</div><div class='add'>+Wed Apr  1 13:16:19 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_sleep): RDoc disambiguation.  [ruby-talk:332632]</div><div class='add'>+</div><div class='add'>+Tue Mar 31 15:17:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fixed the help strings for the header and library</div><div class='add'>+	  dir switches, and updated to use AS_HELP_STRING.  patches from</div><div class='add'>+	  Richard Brown, c.f. [ruby-core:23067].</div><div class='add'>+</div><div class='add'>+Mon Mar 31 08:18:57 2009  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_interface.rb, test/csv/test_serialization.rb:</div><div class='add'>+	  Trying more fixes some failing tests on Windows.</div><div class='add'>+</div><div class='add'>+Mon Mar 30 19:04:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): show negative fixnum correctly.</div><div class='add'>+</div><div class='add'>+Mon Mar 30 12:12:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): replaces the message if</div><div class='add'>+	  frozen.  [ruby-dev:38208]</div><div class='add'>+</div><div class='add'>+Mon Mar 30 01:00:20 2009  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_interface.rb: Trying a fix for some failing tests</div><div class='add'>+	  on Windows.</div><div class='add'>+</div><div class='add'>+Sun Mar 29 08:59:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#relative_path_from): compares path</div><div class='add'>+	  components according to system default case-sensitiveness.</div><div class='add'>+	  [ruby-core:22829]</div><div class='add'>+</div><div class='add'>+Sat Mar 28 11:10:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ruby.imp): all symbols in static library need to be</div><div class='add'>+	  exported, so that encoding-extensions can be loaded.  based on a</div><div class='add'>+	  patch from Yutaka Kanemoto &lt;kinpoco AT gmail.com&gt; in</div><div class='add'>+	  [ruby-talk:332282].</div><div class='add'>+</div><div class='add'>+Sat Mar 28 08:49:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): checks if named argument given twice.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (GETNAMEARG): remembers named arg is used, to get rid</div><div class='add'>+	  of too many arguments warning.</div><div class='add'>+</div><div class='add'>+Sat Mar 28 03:16:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command, cc_command, cpp_command): should no</div><div class='add'>+	  override extout defined in extmk.rb.</div><div class='add'>+</div><div class='add'>+Fri Mar 27 12:56:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (what_type?): checks more restrictively, and</div><div class='add'>+	  supports universal binary.</div><div class='add'>+</div><div class='add'>+Fri Mar 27 01:33:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): negate the result of reverse comparison.</div><div class='add'>+</div><div class='add'>+Fri Mar 27 01:19:50 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cmpint): FIX2INT may fail on LP64 platforms.</div><div class='add'>+</div><div class='add'>+Thu Mar 26 12:22:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (String#is_binary_data?): TAB would be</div><div class='add'>+	  usually considered to be included in text data.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser.rb (RDoc::Parser.binary?): blksize may be nil</div><div class='add'>+	  and is irrelevant to whether a file is binary.  copied from</div><div class='add'>+	  above since TAB and newlines would be usually considered to be</div><div class='add'>+	  included in text data.</div><div class='add'>+</div><div class='add'>+Thu Mar 26 11:33:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths): considers</div><div class='add'>+	  --program-prefix and --program-suffix.  reapplied r19923.</div><div class='add'>+</div><div class='add'>+Wed Mar 25 07:45:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (target_alias): replaces cpu with universal too.</div><div class='add'>+</div><div class='add'>+	* configure.in (target): replaces cpu with arch by --with-arch.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (TOPDIR): chops arch in config instead of</div><div class='add'>+	  RUBY_PLATFORM which varies on universal_binary.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (MAJOR, MINOR, TEENY): reads from version.h always.</div><div class='add'>+</div><div class='add'>+Tue Mar 24 19:23:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): need to include $4.</div><div class='add'>+</div><div class='add'>+Tue Mar 24 17:08:52 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): Cannot access fptr-&gt;fd if fptr is NULL.</div><div class='add'>+	  This fixes a coredump caused by: ruby -e "class X &lt; IO; def</div><div class='add'>+	  initialize; end; end; p X.new.inspect"</div><div class='add'>+</div><div class='add'>+Mon Mar 23 22:01:00 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): use NUM2TIMET.</div><div class='add'>+	  (time_s_at): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 21:52:26 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): Better patch for eliminating an</div><div class='add'>+	  "unused variable".</div><div class='add'>+</div><div class='add'>+Mon Mar 23 21:41:14 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_initialize): Make the file variable</div><div class='add'>+	  volatile, because FilePathValue() currently does not protect the</div><div class='add'>+	  given variable from GC. (Probably it should)</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_initialize): Ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 19:22:14 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lstat): Back out.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 18:54:57 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_stat, rb_file_s_lstat): Remove repeated type</div><div class='add'>+	  checks.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 14:57:48 2009  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (init_heap): set default to heap slots length</div><div class='add'>+	  if HEAP_OBJ_LIMIT is larger than HEAP_MIN_SLOTS. [Bug #1310]</div><div class='add'>+	  (set_heaps_increment): increment next_heaps_length if</div><div class='add'>+	  next_heaps_length and heaps_used are same.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 14:32:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): use original command if not found.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 06:51:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend (link_so): replaces $(TARGET) with basename of the</div><div class='add'>+	  target.  [ruby-talk:330286]</div><div class='add'>+</div><div class='add'>+Sun Mar 22 14:51:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): use NULL as</div><div class='add'>+	  application name for batch files.</div><div class='add'>+</div><div class='add'>+Sat Mar 21 15:54:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (write_would_block): defined.</div><div class='add'>+	  (read_would_block): defined.</div><div class='add'>+	  (ossl_start_ssl): add nonblock argument.</div><div class='add'>+	  (ossl_ssl_connect): follow ossl_start_ssl change.</div><div class='add'>+	  (ossl_ssl_connect_nonblock): new method.</div><div class='add'>+	  (ossl_ssl_accept): follow ossl_start_ssl change.</div><div class='add'>+	  (ossl_ssl_accept_nonblock): new method.</div><div class='add'>+	  (ossl_ssl_read_internal): use write_would_block and</div><div class='add'>+	  read_would_block.</div><div class='add'>+	  (ossl_ssl_write_internal): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 21 08:19:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_exec): prints error message only on platforms</div><div class='add'>+	  neither close-on-exec nor spawnv is supported.</div><div class='add'>+</div><div class='add'>+Sat Mar 21 08:17:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): omit program name</div><div class='add'>+	  if actual program path is found.  [ruby-core:22960]</div><div class='add'>+</div><div class='add'>+Sat Mar 21 07:25:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): should pass program name even if multiple</div><div class='add'>+	  arguments are given.  fix for TestProcess::test_argv0.</div><div class='add'>+</div><div class='add'>+Sat Mar 21 02:37:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb</div><div class='add'>+	  (OpenSSL::Buffering#write_nonblock): new method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_write_nonblock): new method.</div><div class='add'>+	  (ossl_ssl_write_internal): defined.</div><div class='add'>+	  (ossl_ssl_write): use ossl_ssl_write_internal.</div><div class='add'>+</div><div class='add'>+Fri Mar 20 18:25:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (errmap): added ERROR_MOD_NOT_FOUND.</div><div class='add'>+</div><div class='add'>+Fri Mar 20 09:22:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (libprefix): must not append "lib" after $(libdir),</div><div class='add'>+	  when load_relative is not used on darwin.  a patch from Kenta</div><div class='add'>+	  Murata at [ruby-dev:38182].</div><div class='add'>+</div><div class='add'>+Thu Mar 19 20:29:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_mWaitReadable): defined.</div><div class='add'>+	  (rb_mWaitWritable): defined.</div><div class='add'>+	  (io_getpartial): extend IO::WaitReadable on EWOULDBLOCK and EAGAIN.</div><div class='add'>+	  (rb_io_write_nonblock): extend IO::WaitWritable on EWOULDBLOCK and</div><div class='add'>+	  EAGAIN.</div><div class='add'>+</div><div class='add'>+	* error.c (make_errno_exc): extracted from rb_sys_fail.</div><div class='add'>+	  (rb_mod_sys_fail): new function.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_mod_sys_fail): declared.</div><div class='add'>+	  (rb_mWaitReadable): declared.</div><div class='add'>+	  (rb_mWaitWritable): declared.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rsock_s_recvfrom_nonblock): extend</div><div class='add'>+	  IO::WaitReadable on EWOULDBLOCK and EAGAIN.</div><div class='add'>+	  (rsock_s_accept_nonblock): extend IO::WaitReadable on EWOULDBLOCK,</div><div class='add'>+	  EAGAIN, ECONNABORTED and EPROTO.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_connect_nonblock): extend IO::WaitWritable</div><div class='add'>+	  on EINPROGRESS.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal): extend</div><div class='add'>+	  IO::WaitWritable on EWOULDBLOCK and EAGAIN.</div><div class='add'>+	  (bsock_recvmsg_internal): extend IO::WaitReadable on EWOULDBLOCK and</div><div class='add'>+	  EAGAIN.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): raise SSLError</div><div class='add'>+	  extended by IO::WaitReadable/IO::WaitWritable on</div><div class='add'>+	  SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_make_error): extracted from ossl_raise.</div><div class='add'>+	  (ossl_exc_new): new function.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h (ossl_exc_new): declared.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (rbuf_fill): rescue IO::WaitReadable and</div><div class='add'>+	  IO::WaitWritable.</div><div class='add'>+</div><div class='add'>+	  [ruby-core:22539], [ruby-dev:38140]</div><div class='add'>+</div><div class='add'>+Thu Mar 19 18:49:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): allows qualified name.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): checks more strictly.</div><div class='add'>+</div><div class='add'>+	* configure.in (struct stat.st_size, struct stat.st_blocks),</div><div class='add'>+	  (struct stat.st_ino): check for size.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): allows qualified name.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_ino, rb_stat_blocks): check by size.</div><div class='add'>+</div><div class='add'>+Wed Mar 18 16:59:48 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_syslog.rb (TestSyslog#test_open): check</div><div class='add'>+	  param after block again. because detect not to call block.</div><div class='add'>+</div><div class='add'>+Wed Mar 18 16:54:04 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c: not use pktinfo.ipi_spec_dst if not defined</div><div class='add'>+	* ext/socket/extconf.rb: define HAVE_IPI_SPEC_DST</div><div class='add'>+</div><div class='add'>+Wed Mar 18 16:38:11 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_syslog.rb (TestSyslog#test_open): check</div><div class='add'>+	  block parameter in block. [ruby-dev:38180]</div><div class='add'>+</div><div class='add'>+Wed Mar 18 12:48:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (report_bug): rb_bug can be caused by extension</div><div class='add'>+	  libraries.</div><div class='add'>+</div><div class='add'>+Wed Mar 18 02:41:33 2009  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (open_server_inaddr_any): fixed multiple network</div><div class='add'>+	  families problem. a patch from Charl Matthee at [ruby-core:21033].</div><div class='add'>+</div><div class='add'>+Tue Mar 17 21:42:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): creates .revision.time and passes</div><div class='add'>+	  CHDIR to create prerequisite files.</div><div class='add'>+</div><div class='add'>+Tue Mar 17 18:00:55 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Enumerator#{each_,}{with_index,with_object}): Fix</div><div class='add'>+	  a bug where any parameter but the first one is dropped even if</div><div class='add'>+	  multiple values are yielded with. [Bug #1198]</div><div class='add'>+</div><div class='add'>+Tue Mar 17 14:25:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#sub): set $~ in block.binding.</div><div class='add'>+	  [ruby-dev:38173]</div><div class='add'>+</div><div class='add'>+Tue Mar 17 13:48:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): added RUBY_COREDLL.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_initialize): returns msvcrt if libc</div><div class='add'>+	  or RUBY_COREDLL is given.  [ruby-core:22828]</div><div class='add'>+</div><div class='add'>+Tue Mar 17 10:29:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c, dln.c, parse.y, re.c, ruby.c, sprintf.c, strftime.c,</div><div class='add'>+	  string.c, util.c, variable.c: use strlcpy, memcpy and snprintf</div><div class='add'>+	  instead of strcpy, strncpy and sprintf.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 17:15:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_win32.rb (Win32API): enclosed by DL::TestWin32.</div><div class='add'>+	  [ruby-core:22827]</div><div class='add'>+</div><div class='add'>+Mon Mar 16 16:37:22 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (eventloop_sleep, lib_eventloop_core),</div><div class='add'>+	  (lib_watchdog_core): tv_usec is not time_t.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 12:30:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (REVISION_H): keeps timestamp of revision.h.</div><div class='add'>+	  [ruby-core:22900]</div><div class='add'>+</div><div class='add'>+	* tool/ifchange, win32/ifchange.bat: extended --timestamp option.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 09:28:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, win32/Makefile.sub: added preprocessing rules.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 12:34:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb: fixed tests depending on the</div><div class='add'>+	  detail of floating point representation.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 12:01:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#shebang): fix for env</div><div class='add'>+	  shebang.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 11:15:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h ({RSTRING,RBIGNUM}_EMBED_LEN_MAX): made int.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (OBJ_{TAINTED,UNTRUSTED,FROZEN}): return int.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_CODERANGE): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 11:11:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_hash_uint, rb_hash_start, rb_hash_end): use VALUE</div><div class='add'>+	  rather than unsigned int.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 11:00:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): stop the timer thread before exec.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 09:17:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (.y.c): use SRC_FILE which contains slashes instead of</div><div class='add'>+	  backslashes.  [ruby-core:22891]</div><div class='add'>+</div><div class='add'>+Sun Mar 15 08:26:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (srcs-ext): creates ext/dl/callback/callback.c also.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 03:29:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (SAVED_GROUP_ID, p_gid_switch): should be rb_gid_t.</div><div class='add'>+</div><div class='add'>+Sun Mar 15 02:53:13 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat): accept capture name.</div><div class='add'>+	  (rb_str_aref): follow above change.</div><div class='add'>+	  (rb_str_aref_m): pass the 2nd argument to rb_str_subpat.</div><div class='add'>+	  (rb_str_subpat_set): accept capture name.</div><div class='add'>+	  (rb_str_aset): follow above change.</div><div class='add'>+	  (rb_str_partition): ditto.</div><div class='add'>+	  (rb_str_aset_m): pass the 2nd argument to rb_str_subpat_set.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_reg_backref_number): declared.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_backref_number): defined.</div><div class='add'>+</div><div class='add'>+	  [ruby-core:21057]</div><div class='add'>+</div><div class='add'>+Sun Mar 15 02:09:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (bmcall): should not uninitialized variable.  a patch from</div><div class='add'>+	  pegacorn at [ruby-dev:38169].</div><div class='add'>+</div><div class='add'>+Sat Mar 14 18:25:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_scan_oct, ruby_scan_hex): use size_t.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 18:18:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_call, rb_node_arity, bmcall, curry): checks</div><div class='add'>+	  overflow.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_parameters): unnamed_parameters() expects in</div><div class='add'>+	  not VALUE.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 17:54:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_each_words): assume no string exceeds INT_MAX.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 15:59:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): use int variable for status.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 14:45:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): use rb_pid_t for pid.</div><div class='add'>+	  (rb_spawn_internal): local variable renamed.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 14:16:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strdup, Balloc, rv_alloc): use size_t.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 13:53:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_qsort): the result of cmp must be signed, so ge</div><div class='add'>+	  rid of reuse of a variable.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 10:56:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname_len, dln_find_exe_r, dln_find_file_r): use</div><div class='add'>+	  size_t.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect, file_expand_path): ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_qsort): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 14 10:39:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CXX_EXT): checks for case-sensitive filesystem with</div><div class='add'>+	  FNM_SYSCASE rather than build_os.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 23:03:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (wait_connectable0): remove unreachable code.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 23:00:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): pass [include] to AC_CHECK_SIZEOF.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 20:58:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): compare fspace in size_t world.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 18:58:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): moved after warnflags.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 18:10:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_throw_obj): inverted call flow.  [ruby-core:22872]</div><div class='add'>+</div><div class='add'>+Fri Mar 13 17:04:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (bool): not define to get rid of conflict</div><div class='add'>+	  against curses.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 16:45:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.h (i2d_of_void): cast for callbacks.</div><div class='add'>+	  [ruby-core:22860]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): suppress a</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_flush_sessions): time_t may</div><div class='add'>+	  be larger than long.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_get_time),</div><div class='add'>+	  (ossl_ssl_session_get_timeout): use TIMET2NUM() to convert</div><div class='add'>+	  time_t.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 15:10:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): should use</div><div class='add'>+	  OPENSSL_free instead of free.  a patch from Charlie Savage at</div><div class='add'>+	  [ruby-core:22858].</div><div class='add'>+</div><div class='add'>+Fri Mar 13 21:11:51 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: should include "ruby/defines.h" as well for</div><div class='add'>+	  prototypes of compatibility functions on Win32 platform.</div><div class='add'>+	  [ruby-core:22870]</div><div class='add'>+</div><div class='add'>+Fri Mar 13 10:42:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_HEADER_STDBOOL): added.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2INT, rb_special_const_p): returns true</div><div class='add'>+	  and false instead of Qtrue and Qfalse for platforms where VALUE</div><div class='add'>+	  is bigger than int.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_stress_set), ext/openssl/ossl_asn1.c (decode_bool): go</div><div class='add'>+	  rid of variables named `bool'.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 10:16:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (struct stat.st_size): may be huge.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 09:30:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigfixize): zero length Bignum is 0.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 09:17:12 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#fu_get_gid): stringify group</div><div class='add'>+	  argument before making regexp match.  [ruby-dev:38155]</div><div class='add'>+</div><div class='add'>+Fri Mar 13 08:06:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (rv_strdup): macro to duplicate nul-terminated string.</div><div class='add'>+	  [ruby-core:22852]</div><div class='add'>+</div><div class='add'>+Thu Mar 12 22:41:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl: suppress warnings.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h (OSSL_Debug): don't use gcc extension for</div><div class='add'>+	  variadic macro.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 22:29:36 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (WARNFLAGS): warning 4996 is only in VC++8 or</div><div class='add'>+	  later.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 22:14:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_def_const): use INT2NUM because</div><div class='add'>+	  OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG doesn't fit into Fixnum.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 18:16:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,</div><div class='add'>+	  numeric.c, pack.c, strftime.c, string.c, thread.c, transcode.c,</div><div class='add'>+	  transcode_data.h, util.c, variable.c, vm_dump.c,</div><div class='add'>+	  include/ruby/encoding.h, missing/crypt.c, missing/vsnprintf.c:</div><div class='add'>+	  suppress VC type warnings.  [ruby-core:22726]</div><div class='add'>+</div><div class='add'>+	* marshal.c (div0), numeric.c (infinite_value): new functions to</div><div class='add'>+	  get rid of VC division by 0 warnings.</div><div class='add'>+</div><div class='add'>+	* st.c: use st_index_t for indexes instead of int.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_get_sourceline), vm_insnhelper.c (vm_throw): use</div><div class='add'>+	  rb_num_t.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 09:30:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): if same size type is found, no</div><div class='add'>+	  more calculation is needed.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_DEFINT): falls back to RUBY_CHECK_SIZEOF if</div><div class='add'>+	  size is not immediate.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 09:24:24 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h: suppress warnings of overflow.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 09:15:14 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: suppress warnings of overflow.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 05:49:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (warnflags): added some default flags,</div><div class='add'>+	  pointer-arith, write-strings and shorten-64-to-32, but suppress</div><div class='add'>+	  unused-parameter and missing-field-initializers, if possible.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_HUGE): checks whether a value range is</div><div class='add'>+	  larger than long.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_blocks): struct stat.st_blocks may be larger</div><div class='add'>+	  than long.</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_fallback_body): off_t may be larger than long.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_disasm): RSTRING_LEN() returns long.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_sleep): time() needs time_t.</div><div class='add'>+</div><div class='add'>+	* random.c (fill_random_seed): enclosed conditionally used</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): range of rlim_cur may be</div><div class='add'>+	  larger than int.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): commented out code which has</div><div class='add'>+	  no effect at all.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 02:10:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: strip spaces from ruby_version.</div><div class='add'>+	  Sun C 5.9 SunOS_i386 Build47_dlight 2007/05/22 generates</div><div class='add'>+	  `ruby_version= 1 "." 9 "." 1'.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 01:18:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_seek): use long for seekdir().</div><div class='add'>+</div><div class='add'>+Thu Mar 12 01:08:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ytab.sed: replaces backslashes with slash for nmake.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 21:23:06 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mload): don't clear tm_mday.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 20:13:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_sym): RTLD_NEXT is not for symbol</div><div class='add'>+	  name.   [ruby-dev:38150]</div><div class='add'>+</div><div class='add'>+Wed Mar 11 17:26:38 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/Win32API.rb: call by :stdcall as default.</div><div class='add'>+	  [ruby-core:22826]</div><div class='add'>+</div><div class='add'>+Wed Mar 11 13:27:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stack_type): uses VALUE which is able to be stored</div><div class='add'>+	  parser stack.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 13:22:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): set TMPDIR if none of TMPDIR, TMP,</div><div class='add'>+	  TEMP is set.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_telldir, rb_w32_seekdir): should use long,</div><div class='add'>+	  as defined by SUSv3.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 13:03:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_sym): fixed heap corruption.</div><div class='add'>+	  [ruby-core:22822]</div><div class='add'>+</div><div class='add'>+Wed Mar 11 06:12:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): expands libpath and removes</div><div class='add'>+	  last /lib.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 04:47:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_i, time_hash): time_t may be bigger than long</div><div class='add'>+	  and int.</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval, rb_time_timeval, obj2nsec, time_strftime),</div><div class='add'>+	  (time_mdump, time_mload): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): added TIMET2NUM and NUM2TIMET.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 04:29:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: suppress warnings.  based on a patch from Charlie</div><div class='add'>+	  Savage at [ruby-core:22804].</div><div class='add'>+</div><div class='add'>+Wed Mar 11 04:22:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_trap): suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Mar 10 20:07:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (WARNFLAGS): uses -wd4996 instead of</div><div class='add'>+	  CRTDEFFLAGS.  cf. [ruby-core:22725]</div><div class='add'>+</div><div class='add'>+Tue Mar 10 19:58:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (strcasecmp, strncasecmp): use _ prefixed</div><div class='add'>+	  versions to suppress warnings.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/mkcallback.rb (DLTYPE[FLOAT]): cast to suppress</div><div class='add'>+	  warnings.  [ruby-core:22792]</div><div class='add'>+</div><div class='add'>+	* array.c, bignum.c, gc.c, numeric.c, string.c, util.c, insns.def,</div><div class='add'>+	  missing/crypt.c, missing/vsnprintf.c, : suppress warnings.</div><div class='add'>+	  [ruby-core:22792]</div><div class='add'>+</div><div class='add'>+Tue Mar 10 13:45:54 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LDFLAGS): moved -link to TRY_LINK, LINK_SO</div><div class='add'>+	  and so on.  based on a patch by Charlie Savage at</div><div class='add'>+	  [ruby-core:22794]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): passes LDFLAGS to rbconfig.rb so</div><div class='add'>+	  that extconf.rb could refer it.  [ruby-core:22725]</div><div class='add'>+</div><div class='add'>+Tue Mar 10 11:36:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): too few arguments to function</div><div class='add'>+	  rb_ary_tmp_new().</div><div class='add'>+</div><div class='add'>+Tue Mar 10 10:53:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_compile_with_option): argument may be converted.</div><div class='add'>+</div><div class='add'>+Tue Mar 10 04:56:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIRUBY): keep macro into Makefile.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): fix for fallback.</div><div class='add'>+</div><div class='add'>+	* configure.in (MANGLED_PATH): defines for RUBYLIB_PREFIX.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): uses string as buffer.</div><div class='add'>+</div><div class='add'>+	* symbian/setup (config_h): defines MANGLED_PATH.</div><div class='add'>+</div><div class='add'>+Tue Mar 10 03:48:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/depend: fix for parallel build.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/extconf.rb: callback.h is no longer created.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/mkcallback.rb: creates main source first.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback/extconf.rb ($distcleanfiles): added callback.c.</div><div class='add'>+</div><div class='add'>+Tue Mar 10 00:06:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (load_relative): new option to enable load path</div><div class='add'>+	  relative to libruby_so.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): added the case using dladdr().</div><div class='add'>+</div><div class='add'>+Mon Mar  9 16:49:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake: updated to rake code to rake-0.8.4 source code base.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 16:03:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#initialize): env may</div><div class='add'>+	  not be under /usr/bin.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#shebang): uses /bin/sh</div><div class='add'>+	  if shebang has any options, since env shebang trick does no</div><div class='add'>+	  work with options.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 15:19:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (manpages): use basename to compare and for Tempfile.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 14:55:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (default gems): installs default gemspecs.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 14:48:08 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OPTFLAGS): simplified. see [ruby-core:22725]</div><div class='add'>+</div><div class='add'>+Mon Mar  9 14:33:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: prints names of the directories where files are</div><div class='add'>+	  installed to.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 02:25:54 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 01:38:00 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 01:12:37 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb: add a test for Object#method_missing.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 01:11:17 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: add tests for File#size and</div><div class='add'>+	  File.absolute_path.</div><div class='add'>+</div><div class='add'>+Sun Mar  8 23:02:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LDFLAGS): always prepends -link.</div><div class='add'>+</div><div class='add'>+Sun Mar  8 11:39:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_SIZEOF): dirty hack to compute multiple</div><div class='add'>+	  sizeof, for apple's universal binary.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 22:06:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (universal_binary): checks if sizes are same on all</div><div class='add'>+	  architectures.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 18:45:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: checks if cd really succeeded.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 14:24:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: don't use CONFIG_SHELL for testing shell feature in</div><div class='add'>+	  Makefile.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 14:07:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix the location of cdcmd.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 13:52:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: the shell which runs configure may be different from</div><div class='add'>+	  the shell for make.  configure likes bash but Makefile specifies</div><div class='add'>+	  SHELL=/bin/sh.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 12:31:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb: reverted space sensitive test results.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_parser_c.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_default_display.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar  6 23:35:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.urlsafe_base64): add optional</div><div class='add'>+	  argument to add padding.</div><div class='add'>+</div><div class='add'>+Fri Mar  6 19:25:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB_VERSION_STYLE): sets full or minor style</div><div class='add'>+	  not to show RUBY_VERSION_MAJOR and so on.</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_LIB_VERSION): makes from RUBY_LIB_VERSION_STYLE.</div><div class='add'>+</div><div class='add'>+	* configure.in, Makefile.in, win32/Makefile.sub (CHDIR): cd using</div><div class='add'>+	  physical directory.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (update-mspec): split from update-rubyspec.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (update-{rubyspec,mspec}): added.</div><div class='add'>+</div><div class='add'>+Fri Mar  6 14:28:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (INSNS): moved variable</div><div class='add'>+	  definition before rule.</div><div class='add'>+</div><div class='add'>+Fri Mar  6 13:47:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/loaders/makefile.rb (Rake::MakefileLoader#load): deals with</div><div class='add'>+	  escaped spaces.  incorporated from rake 0.8.4.</div><div class='add'>+</div><div class='add'>+	* lib/rake/testtask.rb (Rake::TestTask#define): passes each libs</div><div class='add'>+	  as each arguments with expanded.  incorporated from rake 0.8.4.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 18:36:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): keeps enough precision for round trip.</div><div class='add'>+	  [ruby-core:22325]</div><div class='add'>+</div><div class='add'>+Thu Mar  5 17:42:06 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): doc for Array#fill misses indication</div><div class='add'>+	  about negative value for the start argument.  [ruby-core:22497]</div><div class='add'>+</div><div class='add'>+Thu Mar  5 16:56:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir.tmpdir): not use USERPROFILE, and ignores</div><div class='add'>+	  non-existent directory.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 14:52:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_sysinit): initializes version info first.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_osid): always define for binary compatibility.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 11:52:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (make_insns_rules): rule to make rules for insns.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 11:27:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (miniruby.exe): workaround for a failure of</div><div class='add'>+	  mt.exe on Windows 7 beta.  [ruby-talk:330284]</div><div class='add'>+</div><div class='add'>+Thu Mar  5 10:32:17 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb: Add dragonfly to libc and libm switch.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 10:29:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_eql): extracted from rb_str_equal and rb_str_eql.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): keeps 7bit coderange.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 10:10:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (enc_initialized_p): ENC_UNINITIALIZED</div><div class='add'>+	  is not defined already.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_FROM_ENCINDEX): removed because</div><div class='add'>+	  depending on a static variable.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 04:42:52 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: fix wrong test, and add a test for</div><div class='add'>+	  sort_by!.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 04:32:38 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add some tests for coverage.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 00:06:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/README.win32 (Requirement): added unicows.lib and dll.</div><div class='add'>+</div><div class='add'>+Wed Mar  4 23:29:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/configure.bat (--enable-win95): new option</div><div class='add'>+	  to enable/disable win95 support.</div><div class='add'>+</div><div class='add'>+Wed Mar  4 21:21:51 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (SizedQueue#push): fix limit condition.</div><div class='add'>+	  [ruby-dev:38135]</div><div class='add'>+</div><div class='add'>+Wed Mar  4 20:27:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw): checks if unicows.lib is available.</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (WIN95): moved to config.h</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LIBS): links unicows.lib if available.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): defines WIN95 only if unicows.lib</div><div class='add'>+	  is available.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (-unicows-): checks if unicows.lib is available.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 17:10:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): removes object files no longer used and</div><div class='add'>+	  files to be removed by old distclean.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 16:51:51 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/resolv.rb: get rid of warning.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/func.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 16:25:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake), lib/mkmf.rb (create_makefile): $objs and</div><div class='add'>+	  $srcs are always Array or nil now.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 15:54:11 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/{registry,resolv}.rb: use dl/import instead</div><div class='add'>+	  of Win32API.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 15:53:20 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/func.rb (DL::Function.name): delegate to @cfunc.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 15:40:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_init_callbacks): autoloads callbacks.</div><div class='add'>+</div><div class='add'>+	* ext/dl/callback: split from dl.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/cparser.rb (DL::CParser::parse_signature): fixed</div><div class='add'>+	  variable name.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/pack.rb (DL::PackInfo): reduced redundant</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/stack.rb (DL::Stack): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/value.rb (DL::ValueUtil#wrap_arg): NULL for nil.</div><div class='add'>+</div><div class='add'>+	* test/dl: moved from ext/dl/test.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 14:57:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (main): passes $(MAKE) to mkmain_cmd</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (command_output): uses arguments to invoke make.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 01:56:03 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.urlsafe_base64): delete padding.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 21:39:08 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h (SS_LEN): defined unconditionally.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 21:26:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_socket_creds): suppress warnings.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 21:13:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (rsock_discard_cmsg_resource): defined</div><div class='add'>+	  unconditionally.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 21:06:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_mload): don't use "sun" variable</div><div class='add'>+	  for Solaris.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 21:01:36 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: include fcntl.h for O_RDONLY on Solaris.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 19:43:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#escape): escaped string is ascii</div><div class='add'>+	  only.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#unescape): converts bytewise.</div><div class='add'>+	  [ruby-dev:38005], [ruby-dev:38110]</div><div class='add'>+</div><div class='add'>+Mon Mar  2 16:40:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (Macros): added HAVE_RUBY_*_H.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 12:22:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): keeps wide chars as wide chars.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 11:01:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h (dlerror): fixed on Windows.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_initialize): returns handle to</div><div class='add'>+	  libruby if nil is given on Windows as dlopen.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_sym): get rid of buffer overrun,</div><div class='add'>+	  and try ASCII WINAPI versions too.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 10:29:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp), include/ruby/intern.h (ruby_cleanup): fixed</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 00:56:45 2009  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/observer.rb: The module observable uses now a hash to</div><div class='add'>+	  store listeners. merged a patch from Alessandro Di Maria in</div><div class='add'>+	  [ruby-core:22560].</div><div class='add'>+</div><div class='add'>+Sun Mar  1 22:59:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c: suppress warnings.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar  1 20:57:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ (rsock_getfamily): renamed from rb_sock_getfamily.</div><div class='add'>+</div><div class='add'>+Sun Mar  1 19:52:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/Win32API.rb (initialize): passes res</div><div class='add'>+	  arguments to DL.</div><div class='add'>+</div><div class='add'>+Sun Mar  1 19:38:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): suppress a warning.  a patch from</div><div class='add'>+	  Charlie Savage at [ruby-core:22607].</div><div class='add'>+</div><div class='add'>+Sun Mar  1 19:36:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_dtoa): allocates one more byte to get rid of buffer</div><div class='add'>+	  overrun.  a patch from Charlie Savage at [ruby-core:22604].</div><div class='add'>+</div><div class='add'>+Sun Mar  1 19:10:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (.y.c): removed extra backslash.  [ruby-core:22602]</div><div class='add'>+</div><div class='add'>+Sun Mar  1 19:02:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): fix for stdcall and missing</div><div class='add'>+	  argument numbers.  [ruby-core:22601]</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h (DLSTACK_PROTO0_): added.</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb (gencallback, gen_callback_file),</div><div class='add'>+	  (rb_dl_init_callbacks): omit stdcall functions unless supported.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb (SHGetFolderPath): stdcall.</div><div class='add'>+</div><div class='add'>+Sun Mar  1 17:27:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (gfDebug): uncommented out.</div><div class='add'>+	  [ruby-core:22600]</div><div class='add'>+</div><div class='add'>+Sun Mar  1 16:15:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): use wait_each() on no waitpid platforms.</div><div class='add'>+	  [ruby-dev:38054]</div><div class='add'>+</div><div class='add'>+Sun Mar  1 16:01:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): stops and restarts timer thread because</div><div class='add'>+	  daemon(3) implies fork(2).  [ruby-dev:38055]</div><div class='add'>+</div><div class='add'>+Sun Mar  1 15:45:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ (rsock_make_hostent): renamed from sock_make_hostent.</div><div class='add'>+	  (rsock_addrinfo): renamed from sock_addrinfo.</div><div class='add'>+	  (rsock_getaddrinfo): renamed from sock_getaddrinfo.</div><div class='add'>+	  (rsock_socket): renamed from ruby_socket.</div><div class='add'>+	  (rsock_sock_s_socketpair): renamed from sock_s_socketpair.</div><div class='add'>+	  (rsock_connect): renamed from ruby_connect.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_listen): make it static.</div><div class='add'>+</div><div class='add'>+Sun Mar  1 15:29:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket: add rsock_ prefix.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 21:52:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_iterate): use volatile to suppress warnings.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 20:09:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c (error_print): use volatile to suppress warnings.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_exec_recursive): ditto.</div><div class='add'>+</div><div class='add'>+	* eval_jump.c (rb_exec_end_proc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_node): ditto.</div><div class='add'>+	  (rb_longjmp): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 18:28:58 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_unix_rights): check message type.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 16:18:39 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: suppress warnings of non-existing instance variable</div><div class='add'>+	  access for SSL.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 14:50:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (BasicSocket#connect_address): returns ::1</div><div class='add'>+	  if the address is IPv4-mapped IPv6 address for 0.0.0.0 for MacOS X.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 00:18:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c: suppress strict-aliasing warning with</div><div class='add'>+	  gcc version 4.4.0 20090219 (Red Hat 4.4.0-0.21) on Fedora 11 Alpha.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h (SS_LEN): defined.</div><div class='add'>+	  (SET_SS_LEN): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 22:30:18 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): close FDs passed by</div><div class='add'>+	  SCM_RIGHTS unless :scm_rights=&gt;true is given.</div><div class='add'>+	  (discard_cmsg): extracted from rsock_discard_cmsg_resource.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 22:14:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: define Buffering module under</div><div class='add'>+	  OpenSSL.  [ruby-dev:37906]</div><div class='add'>+</div><div class='add'>+Fri Feb 27 22:09:24 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: don't define assert_not_* if already</div><div class='add'>+	  overridden.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 22:02:34 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c: fix SEGV by test_time.rb with</div><div class='add'>+	  gcc version 4.4.0 20090219 (Red Hat 4.4.0-0.21) on Fedora 11 Alpha.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 18:30:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (cdhash_type, iseq_set_sequence): should not call</div><div class='add'>+	  methods of the argument of case, to keep the semantics of</div><div class='add'>+	  case/when.  [ruby-dev:38079]</div><div class='add'>+</div><div class='add'>+Fri Feb 27 18:01:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_get_stack_grow_direction): no needs to use thread</div><div class='add'>+	  here, and not initialized yet.  [ruby-core:22439]</div><div class='add'>+</div><div class='add'>+Fri Feb 27 17:45:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_load_ok): checks if regular file, except for the</div><div class='add'>+	  platform disallows to open directories, e.g. dosish.</div><div class='add'>+	  [ruby-dev:38097], [Bug #1221]</div><div class='add'>+</div><div class='add'>+Fri Feb 27 14:39:40 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le, flo_eql): revert</div><div class='add'>+	  isnan() checks for VC++6.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_lt, opt_gt): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 14:23:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (modifiable): check if really frozen.</div><div class='add'>+	  [ruby-core:22559]</div><div class='add'>+</div><div class='add'>+Thu Feb 26 23:14:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (BasicSocket#connect_address): new method.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 19:29:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_foreach_iter): fix for prototype.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 18:36:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (INSNS, newline.c, miniprelude.c, prelude.c),</div><div class='add'>+	  (node_name.inc, known_errors.inc): unified from Makefile.in and</div><div class='add'>+	  win32/Makefile.sub.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 13:30:34 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (valid_filename): use our own implementation of open(),</div><div class='add'>+	  close() and unlink().</div><div class='add'>+</div><div class='add'>+Thu Feb 26 13:23:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (cdhash_each): resurrects internal literals.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 10:56:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (rb_w32_wopen): prototype forgotten.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_sysopen_internal): shouldn't replace undefined chars in this</div><div class='add'>+	  case.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 01:34:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: more MSG_* constants.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 00:21:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_level): extracted from sockopt_level_m.</div><div class='add'>+	  (sockopt_optname): extracted from sockopt_optname_m.</div><div class='add'>+	  (sockopt_data): apply StringValue.</div><div class='add'>+	  (sockopt_s_linger): new method.</div><div class='add'>+	  (sockopt_linger): new method.</div><div class='add'>+	  (inspect_linger): show onoff value if it is neither 0 nor 1.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 23:23:03 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_unix_rights): raise</div><div class='add'>+	  NotImplementedError if no fd passing feature.</div><div class='add'>+	  (ancillary_timestamp): raise NotImplementedError if no timestamp</div><div class='add'>+	  feature.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 23:18:53 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_s_unix_rights): new method.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 23:01:26 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c (unix_recv_io): prevent FD leak when 2 fd is</div><div class='add'>+	  sent on LP64 platform.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): declared.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (rsock_discard_cmsg_resource): renamed from</div><div class='add'>+	  discard_cmsg_resource.  export it.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 17:31:32 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (sysopen_func, rb_sysopen_internal, rb_sysopen): open file</div><div class='add'>+	  by UTF-16'ed filename on Windows.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_generic, rb_io_s_sysopen, rb_io_reopen,</div><div class='add'>+	  argf_next_argv): follow above change.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): no longer need to convert filepath here on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+	* win32/wio32.c (rb_w32_wopen): new function to open file by UTF-16'ed</div><div class='add'>+	  filename.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open): call rb_w32_open().</div><div class='add'>+</div><div class='add'>+Wed Feb 25 15:05:35 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): use un.rb as cp instead of</div><div class='add'>+	  cmd.exe's copy command.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): no longer need to convert path</div><div class='add'>+	  separator when copying file.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 12:27:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_force_encoding): should clear coderange at changing</div><div class='add'>+	  encoding.  [ruby-core:22437]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 12:06:09 2009    &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_1): enables limit even if rs is given.</div><div class='add'>+	  [ruby-core:22434]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 02:28:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): coderange may change.</div><div class='add'>+	  [ruby-core:22414]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 02:17:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): should recalculate coderange.</div><div class='add'>+	  [ruby-talk:329267]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 00:41:21 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args): Allow specifying the number of trailing</div><div class='add'>+	  mandatory arguments right after the number of optional arguments</div><div class='add'>+	  only if the number of leading mandatory arguments is not omitted.</div><div class='add'>+</div><div class='add'>+	* ext/socket/tcpserver.c (tcp_svr_init): Make use of it.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 00:28:25 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_size): new method added.  [ruby-core:22088]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 00:15:15 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_colors): new method added.  a patch</div><div class='add'>+	  from Alexander Beisig in [ruby-core:22331].</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_color_pairs): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 00:05:13 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args): Revamp rb_scan_args() to compute the</div><div class='add'>+	  number of required and optional arguments precisely to prepare</div><div class='add'>+	  for a more informative error message.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 23:58:52 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_index, rb_ary_rindex): Emit a warning that a</div><div class='add'>+	  given block is unused when an argument is specified.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 22:00:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sockaddr_obj): convert fe80:1::1 to fe80::1%1.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 19:56:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_timestamp): support SCM_BINTIME.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 19:45:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_timestamp): new method.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 19:01:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (main): split from exts and makes main program after</div><div class='add'>+	  building exts with miniruby, to get rid of overwriting running</div><div class='add'>+	  program.  [ruby-core:22339]</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (RUNCMD, MKMAIN_CMD): macros to</div><div class='add'>+	  run script file.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): added --command-output option which</div><div class='add'>+	  creates script file to make main program.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 17:58:07 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ripper.c): exec can't work on Windows.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (.SUFFIXES): nmake doesn't have .y by default.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (id.h): overwrites unconditionally.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 13:13:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): ptrdiff_t may be larger than</div><div class='add'>+	  long.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 11:21:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_disable_interrupt, rb_enable_interrupt): see</div><div class='add'>+	  USE_TRAP_MASK.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 10:49:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): last argument was missing.</div><div class='add'>+</div><div class='add'>+	* process.c (waitall_each): fixed typo.  a patch from shinichiro.h</div><div class='add'>+	  &lt;shinichiro.hamaji AT gmail.com&gt; at [ruby-dev:38054].</div><div class='add'>+</div><div class='add'>+Tue Feb 24 01:53:40 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq): remove unnecessary NaN check using isnan().</div><div class='add'>+	  comparison regarding NaN is false anyway.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_gt, flo_ge, flo_lt, flo_le, flo_eql): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 01:22:19 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: fix for environment where fork is not</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 01:19:38 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func): unlock all locked mutexes even when</div><div class='add'>+	  forking.  [ruby-core:22269]</div><div class='add'>+</div><div class='add'>+Tue Feb 24 00:54:16 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_minus): inline float operation.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_lt, opt_gt): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 00:24:13 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): check #succ only when it is really</div><div class='add'>+	  needed.  small performance improvement.</div><div class='add'>+</div><div class='add'>+	* math.c (Need_Float): call rb_to_float() only when it is really</div><div class='add'>+	  needed.  small performance improvement.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 00:19:33 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#foreachline): removed wrongly</div><div class='add'>+	  resurrected method.  [ruby-dev:38065]</div><div class='add'>+</div><div class='add'>+Mon Feb 23 20:39:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (inspect_timespec_as_abstime): new function to</div><div class='add'>+	  show struct timespec.</div><div class='add'>+	  (ancillary_inspect): use it for SCM_TIMESTAMPNS on GNU/Linux.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 20:30:06 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (inspect_bintime_as_abstime): new function to</div><div class='add'>+	  show struct bintime.</div><div class='add'>+	  (ancillary_inspect): use it for SCM_BINTIME on FreeBSD.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define SCM_BINTIME.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 20:18:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (inspect_timeval_as_abstime): use time_t</div><div class='add'>+	  variable to avoid a warning on environments which use long as</div><div class='add'>+	  tv_sec as NetBSD.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 15:53:30 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_index, rb_ary_rindex): We know that argc is not</div><div class='add'>+	  zero when we reach here.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize, rb_ary_index): Shrink a double</div><div class='add'>+	  space. (NFC)</div><div class='add'>+</div><div class='add'>+Mon Feb 23 14:47:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): added description for the case of</div><div class='add'>+	  different partitions.  [ruby-talk:329072]</div><div class='add'>+</div><div class='add'>+Mon Feb 23 10:19:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (USE_SYMBOL_AS_METHOD_NAME): Module#methods,</div><div class='add'>+	  #singleton_methods and so on return Symbols.  [ruby-talk:328775]</div><div class='add'>+</div><div class='add'>+Mon Feb 23 10:15:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: added macros for the Compatibilities.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 03:19:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define SO_TIMESTAMPNS and SCM_TIMESTAMPNS</div><div class='add'>+	  if available.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 02:54:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_inspect): use SCM_TIMESTAMP instead</div><div class='add'>+	  of SO_TIMESTAMP.  SCM_TIMESTAMP != SO_TIMESTAMP on MacOS X.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 02:44:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (inspect_timeval_as_abstime): new function.</div><div class='add'>+	  (ancillary_inspect): use it for SO_TIMESTAMP.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 02:26:44 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_timeval_as_interval): renamed from</div><div class='add'>+	  inspect_timeval.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 02:10:09 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_timeval): fix the size test.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 22:42:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should recalculate coderange.</div><div class='add'>+	  [ruby-core:22326] (reopened at [ruby-core:22328])</div><div class='add'>+</div><div class='add'>+Sun Feb 22 20:09:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_linger): message refined.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 19:28:08 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (s_recvfrom): use rb_io_wait_readable after</div><div class='add'>+	  recvfrom.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 18:40:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_errno): new function.</div><div class='add'>+	  (sockopt_inspect): use inspect_errno for SO_ERROR.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 15:11:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): define Regexp::FIXEDENCODING.  [ruby-dev:38066]</div><div class='add'>+</div><div class='add'>+Sun Feb 22 14:33:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should not be affected by the encoding of</div><div class='add'>+	  replacement unless actually modified.  [ruby-talk:328967]</div><div class='add'>+	  [ruby-core:22326]</div><div class='add'>+</div><div class='add'>+Sun Feb 22 13:38:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (s_recvfrom_nonblock): handles EAGAIN too.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (s_accept_nonblock): ditto, and EPROTO depends</div><div class='add'>+	  on platforms.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 13:03:12 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): the evaluator now expects iseq instead of tree.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 13:03:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (configure): unset PWD to use symlink to building</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (up): cd doesn't need LC_TIME, VCS needs.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 10:43:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (method_missing): should not pop cfp if missing method</div><div class='add'>+	  is method_missing.  [ruby-core:22298]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_raise_method_missing): new function to directly</div><div class='add'>+	  raise NoMethodError.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): fixed the case method_missing</div><div class='add'>+	  is missing.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 02:15:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): handle EMSGSIZE as</div><div class='add'>+	  well.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 02:03:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): check max length</div><div class='add'>+	  overflow.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 01:52:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): don't call</div><div class='add'>+	  discard_cmsg_resource when EMFILE.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 01:48:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): gc when SCM_RIGHTS</div><div class='add'>+	  hit the file descriptor limit.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 00:51:58 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getpartial): error message describes what should be</div><div class='add'>+	  waited after nonblocking error.</div><div class='add'>+	  (rb_io_write_nonblock): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (s_recvfrom_nonblock): ditto.</div><div class='add'>+	  (s_accept_nonblock): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_connect_nonblock): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal): ditto.</div><div class='add'>+	  (bsock_recvmsg_internal): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 00:31:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): check recvmsg error</div><div class='add'>+	  earlier.</div><div class='add'>+</div><div class='add'>+Fri Feb 20 23:28:11 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (rv_alloc, freedtoa): use our normal xmalloc()/xfree() because</div><div class='add'>+	  couldn't free the returned pointer from ruby_dtoa().</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (cvt): receive buffer and use/return it instead</div><div class='add'>+	  of returning the pointer returned from BSD__dtoa().</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): pass buf to cvt() as the buffer.</div><div class='add'>+	  [ruby-core:22184]</div><div class='add'>+</div><div class='add'>+Thu Feb 19 22:59:09 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (make_io_for_unix_rights): cmsg_len may be</div><div class='add'>+	  bigger than msg_controllen on 4.4BSD at least.</div><div class='add'>+	  freeze unix_rights array.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 22:17:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): fix exception.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 21:13:03 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_unix_rights): method renamed.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 15:47:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/fake.rb.in: extracted from Makefile.in.</div><div class='add'>+</div><div class='add'>+	* configure.in (fake.rb): prefixed with $(arch)-.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 15:39:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspbres_verify): OCSP_basic_verify</div><div class='add'>+	  returns positive value on success, not non-zero.  [ruby-core:21762]</div><div class='add'>+</div><div class='add'>+Thu Feb 19 15:17:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (@@systmpdir): File.expand_path also joins paths.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 15:14:25 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_each_group): defines only when Etc::Group is</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 15:11:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (translit_char): moved from ruby.c.</div><div class='add'>+</div><div class='add'>+	* load.c (load_ext): transliterates file separators and back if</div><div class='add'>+	  needed.</div><div class='add'>+</div><div class='add'>+	* symbian/setup (DLN_NEEDS_ALT_SEPARATOR): defined.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 14:48:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, */Makefile.sub (LOAD_RELATIVE): moved from ruby.c</div><div class='add'>+</div><div class='add'>+Thu Feb 19 14:39:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): uses -unexported_symbol option of ld instead</div><div class='add'>+	  of objcopy</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): makes dylib instead of so.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 14:22:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): added phony targets.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): creates target directories before</div><div class='add'>+	  copying.  [ruby-core:21958]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): removes directories in the depth</div><div class='add'>+	  order.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 13:56:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_home_dir): checks if HAVE_PWD_H.  [ruby-dev:38049]</div><div class='add'>+</div><div class='add'>+Thu Feb 19 08:45:48 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: add "#include &lt;sys/stat.h&gt;"</div><div class='add'>+</div><div class='add'>+Thu Feb 19 03:42:48 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_rights): new method.</div><div class='add'>+	  (make_io_for_rights): new function to allocate</div><div class='add'>+	  IOs for FDs in SCM_RIGHTS message.</div><div class='add'>+	  (bsock_recvmsg_internal): use make_io_for_rights.  So the FDs can be</div><div class='add'>+	  closed by GC.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 03:28:59 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: Improve the document about</div><div class='add'>+	  rb_scan_args() even more.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 03:12:51 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: skip some tests if euid == 0.</div><div class='add'>+	  a patch from Lucas Nussbaum in [ruby-core:22209].</div><div class='add'>+</div><div class='add'>+Thu Feb 19 03:00:49 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: Improve the document about</div><div class='add'>+	  rb_scan_args().</div><div class='add'>+</div><div class='add'>+Wed Feb 18 22:47:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (discard_cmsg_resource): new function to close</div><div class='add'>+	  file descriptors in control message.</div><div class='add'>+	  (bsock_recvmsg_internal): call discard_cmsg_resource before retrying</div><div class='add'>+	  recvmsg.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 21:47:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): prevent misalignment.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 21:34:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal): prevent misalignment.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 21:09:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): reduce code on</div><div class='add'>+	  environments which have no control message.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 20:27:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (OBJCOPY): set ac_cv_prog_ac_ct_OBJCOPY to do nothing</div><div class='add'>+	  on cygwin and mingw because symbols are exported by def file.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 15:35:36 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_chown): use chown unless HAVE_FCHOWN.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): sarg is always used unless HAVE_FORK.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 15:23:34 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: Use RUBY_DESCRIPTION if defined.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 14:33:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_resurrect), string.c (rb_str_resurrect): new</div><div class='add'>+	  functions based on [ruby-dev:37983]</div><div class='add'>+</div><div class='add'>+	* insns.def (putstring, duparray): use rb_{ary,str}_resurrect().</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_data_to_ary): needs to result TS_VALUE.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 12:35:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): fix for spaces before extension.</div><div class='add'>+	  [ruby-dev:38044]</div><div class='add'>+</div><div class='add'>+Wed Feb 18 12:00:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): suppress a warning.  named magic</div><div class='add'>+	  numbers.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 10:29:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): do not delete main thread from</div><div class='add'>+	  living_threads.  [ruby-core:19385], [ruby-core:22158]</div><div class='add'>+</div><div class='add'>+Wed Feb 18 01:05:05 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl: avoid cyclic require.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl-internal.rb: renamed from ssl.rb</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509-internal.rb: renamed from x509.rb.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: require openssl, instead of openssl/ssl.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: require openssl, instead of openssl/ssl.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:38018]</div><div class='add'>+</div><div class='add'>+Wed Feb 18 00:55:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Etc::Passwd.each, Etc::Group.each): new methods.</div><div class='add'>+	  [ruby-dev:37999]</div><div class='add'>+</div><div class='add'>+Tue Feb 17 23:25:01 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal): make the padding</div><div class='add'>+	  removing only on NetBSD.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 19:39:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal): should not remove the</div><div class='add'>+	  last padding of control messages, basically.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 12:50:57 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_shared_replace): no need for</div><div class='add'>+	  str_make_independent.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 05:41:08 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: fix to add "ensure" codes across "while" clause</div><div class='add'>+	  before "return" expression.  [ruby-dev:37967]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_flow.rb: add a test.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 01:53:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate rb_define_const directly for</div><div class='add'>+	  rdoc.</div><div class='add'>+</div><div class='add'>+	* ext/.document: add socket/constdefs.c.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (sock_define_const): removed.</div><div class='add'>+	  (sock_define_uconst): ditto.</div><div class='add'>+	  (rb_mSockConst): new static variable.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 23:14:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_sendmsg_internal) [OpenBSD]: don't remove</div><div class='add'>+	  the last padding to prevent sendmsg failure in test_udp_server in</div><div class='add'>+	  test/socket/test_socket.rb on OpenBSD 4.4.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 21:59:32 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/setup: Update Symbian config to match recent changes in missing/alloca.c</div><div class='add'>+</div><div class='add'>+Mon Feb 16 17:04:14 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args), README.EXT, README.EXT.ja: Add support</div><div class='add'>+	  for specifying the number of the trailing mandatory arguments.</div><div class='add'>+	  Update the documents accordingly. [ruby-dev:37995]</div><div class='add'>+</div><div class='add'>+Mon Feb 16 16:46:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (set_debug_option): added rtc_error option.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (CRTDEFFLAGS): separated from DEFS.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rtc_error_handler): ignores RTC errors unless</div><div class='add'>+	  rtc_error debug option is given.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_sysinit): suppress useless CRT assertions.</div><div class='add'>+	  [ruby-core:22116]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 21:43:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct#new_ostruct_member): checks if frozen.</div><div class='add'>+	  [ruby-talk:328195], [ruby-core:22142]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 21:22:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions): aliases</div><div class='add'>+	  assert_not_ methods.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 16:57:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.urlsafe_base64): new method.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 14:58:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_i): use Murmurhash.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 11:45:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_hooked_variable): suppress false assertion</div><div class='add'>+	  with VC9.  [ruby-core:22115]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 08:35:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_pp.rb: extract from lib/pp.rb.</div><div class='add'>+</div><div class='add'>+	* test/test_prettyprint.rb: extract from lib/prettyprint.rb.</div><div class='add'>+</div><div class='add'>+	* test/test_tsort.rb: extract from lib/tsort.rb.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 06:34:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.parse): raise ArgumentError if Date._parse don't</div><div class='add'>+	  extract date information.  [ruby-core:20912]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 04:48:08 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_hash_uint32, rb_hash_uint, rb_hash_start, rb_hash_end),</div><div class='add'>+	  include/ruby/intern.h: add Murmurhash API.  [ruby-dev:37784]</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_hash), array.c (rb_ary_hash), time.c (time_hash),</div><div class='add'>+	  string.c (rb_str_hash), object.c (rb_obj_hash), range.c</div><div class='add'>+	  (range_hash), struct.c (rb_struct_hash), hash.c (rb_any_hash),</div><div class='add'>+	  rational.c (nurat_hash): use Murmurhash.  [ruby-dev:37784]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 03:50:21 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash): always return a fixnum value because a return</div><div class='add'>+	  value of rb_hash may be used as a hash value itself and bignums have</div><div class='add'>+	  no unique VALUE.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 00:45:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang, rb_ary_uniq): unique by the result of</div><div class='add'>+	  given block.  [ruby-dev:37998]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 00:39:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_resize_capa): should not overwrite outside embedded</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 20:18:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_time.rb: extracted from lib/time.rb.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 19:20:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: obsolete methods removed.</div><div class='add'>+	  [ruby-core:21564]</div><div class='add'>+</div><div class='add'>+Sat Feb 14 15:46:01 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#binread): added.  [ruby-dev:37952]</div><div class='add'>+</div><div class='add'>+Sat Feb 14 13:14:18 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c: remove nil parameter from Proc#parameters</div><div class='add'>+	  after rest appeared.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 07:23:52 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_external_str_new_with_enc): change evaluation order</div><div class='add'>+	  for speed.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 02:20:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h (SET_SA_LEN): cast to void for suppressing a</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 23:37:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/Win32API.rb (Win32API#initialize): DL.dlopen</div><div class='add'>+	  raises DLError.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 21:13:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): define TCPServer#listen and</div><div class='add'>+	  UNIXServer#listen here for rdoc.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 20:59:48 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (extract_ipv6_pktinfo): set sa_len for 4.4BSD.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 15:34:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (simple_default_value): removed.  default values of optional</div><div class='add'>+	  parameters are not available still now.  [ruby-dev:37980]</div><div class='add'>+</div><div class='add'>+Fri Feb 13 15:11:11 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): use rb_vm_get_ruby_level_next_cfp()</div><div class='add'>+	  instead of vm_get_ruby_level_caller_cfp().  checking a upper frame</div><div class='add'>+	  is not enough.  [ruby-dev:37984]</div><div class='add'>+</div><div class='add'>+	* proc.c, vm_core.h: declare rb_vm_get_ruby_level_next_cfp()</div><div class='add'>+	  on vm_core.h.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 15:01:40 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_alive_p): fix to return true instead of 0.</div><div class='add'>+	  [ruby-dev:37991]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: add a test for Fiber#alive?</div><div class='add'>+</div><div class='add'>+Fri Feb 13 09:43:19 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_flock): using flock defined in</div><div class='add'>+	  win32/win32.c on mingw.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 01:45:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence, compile_dstr_fragments),</div><div class='add'>+	  (iseq_compile_each): hides other internal objects.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): just freeze xstr.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 00:48:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): try to autoload const to be overridden.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 23:22:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb (test_udp_server): filter out unreachable</div><div class='add'>+	  addresses.  [ruby-dev:37970]</div><div class='add'>+</div><div class='add'>+Thu Feb 12 22:51:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (hide_obj): OBJ_FREEZE() is not an expression.  a patch</div><div class='add'>+	  from nagachika &lt;nagachika00 AT gmail.com&gt; at [ruby-dev:37977].</div><div class='add'>+</div><div class='add'>+	* compile.c (insn_set_sc_state): fixed typo.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 12:36:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getpeereid): implemented for Solaris</div><div class='add'>+	  using getpeerucred.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check ucred.h and getpeerucred.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include ucred.h if available.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 19:42:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_array_, defined_expr, iseq_compile_each): hide</div><div class='add'>+	  and freeze internal literal objects, to prevent from modifying.</div><div class='add'>+	  [ruby-dev:37959]</div><div class='add'>+</div><div class='add'>+	* iseq.c (insn_operand_intern): copy internal literal objects.</div><div class='add'>+</div><div class='add'>+	* insns.def (putstring, duparray): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): exported.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 17:17:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): calculates new position</div><div class='add'>+	  before reallocation.  [Bug#1099]</div><div class='add'>+</div><div class='add'>+Thu Feb 12 16:50:27 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: a patch to build on GNU/kOpenSolaris from Rober</div><div class='add'>+	  Millan at [ruby-core:21888].</div><div class='add'>+</div><div class='add'>+Thu Feb 12 15:28:04 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (simple_default_value): allow plain strings as default</div><div class='add'>+	  values.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 18:09:41 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final, undefine_final): shouldn't add/remove finalizer</div><div class='add'>+	  of frozen objects.</div><div class='add'>+</div><div class='add'>+	* gc.c (undefine_final): should remove FL_FINALIZE flag.</div><div class='add'>+	  [ruby-dev:37964] (also see [ruby-dev:37959])</div><div class='add'>+</div><div class='add'>+Wed Feb 11 17:37:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.udp_server_sockets): call the block</div><div class='add'>+	  if given.  close the sockets when the block exits.</div><div class='add'>+	  (Socket.udp_server_loop): use udp_server_sockets in block form.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 17:34:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.tcp_server_sockets): call the block</div><div class='add'>+	  if given.  close the sockets when the block exits.</div><div class='add'>+	  (Socket.tcp_server_loop): use tcp_server_sockets in block form.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 17:01:52 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.unix_server_loop): use</div><div class='add'>+	  unix_server_socket with a block.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 16:54:26 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.unix_server_socket): close the</div><div class='add'>+	  socket when the block exits.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 16:50:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.unix_server_socket): call the block</div><div class='add'>+	  if given.  remove the socket file when the block exits.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 16:44:20 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_s_ip_pktinfo): make 3rd argument</div><div class='add'>+	  optional.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 15:47:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared): returns shared root array itself, and</div><div class='add'>+	  frozen array can be shared.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 14:46:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (setspecial, putstring): fixed typos in rdoc.</div><div class='add'>+</div><div class='add'>+	* insns.def (toregexp): uses rb_ary_tmp_new(), and clears it after</div><div class='add'>+	  used.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 14:08:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_socket_rights): return 1 on</div><div class='add'>+	  success.  0 on failure.</div><div class='add'>+	  (anc_inspect_passcred_credentials): ditto.</div><div class='add'>+	  (anc_inspect_socket_creds): ditto.</div><div class='add'>+	  (anc_inspect_socket_creds): ditto.</div><div class='add'>+	  (anc_inspect_socket_creds): ditto.</div><div class='add'>+	  (anc_inspect_ip_recvdstaddr): ditto.</div><div class='add'>+	  (anc_inspect_ip_pktinfo): ditto.</div><div class='add'>+	  (anc_inspect_ipv6_pktinfo): ditto.</div><div class='add'>+	  (ancillary_inspect): check family.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 12:55:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_ip_pktinfo): make result bit</div><div class='add'>+	  succinct.</div><div class='add'>+	  (Init_ancdata): fix number of arguments.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 11:47:41 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c (Init_ipsocket): undef getpeereid at IPSocket.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 10:16:34 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check getpeereid.</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getpeereid): new method.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 09:58:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket::UDPSource#inspect): fix variable</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 00:38:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_gethostname): use HOST_NAME_MAX.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (make_ipaddr): local variable renamed.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 23:44:53 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (struct recvfrom_arg): use struct</div><div class='add'>+	  sockaddr_storage.</div><div class='add'>+	  (recvfrom_blocking): follow struct recvfrom_arg change.</div><div class='add'>+	  (s_recvfrom): ditto.</div><div class='add'>+	  (s_recvfrom_nonblock): use struct sockaddr_storage.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_accept): use struct sockaddr_storage.</div><div class='add'>+	  (sock_accept_nonblock): ditto.</div><div class='add'>+	  (sock_sysaccept): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (bsock_recvmsg_internal): use struct</div><div class='add'>+	  sockaddr_storage.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 23:30:32 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getpeername): use struct</div><div class='add'>+	  sockaddr_storage.</div><div class='add'>+	  (bsock_local_address): ditto.</div><div class='add'>+	  (bsock_remote_address): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 21:26:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.udp_server_sockets): new method.</div><div class='add'>+	  (Socket.udp_server_loop_on): new method.</div><div class='add'>+	  (Socket.udp_server_loop): new method</div><div class='add'>+	  (Socket.ip_sockets_port0): extracted from tcp_server_sockets_port0.</div><div class='add'>+	  (Socket::UDPSource): new class.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 21:14:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sockaddr_obj): fill pfamily.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 21:09:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_s_bool): new method.</div><div class='add'>+	  (sockopt_bool): new method.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 20:58:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_family_m): renamed from sockopt_family.</div><div class='add'>+	  (sockopt_level_m): renamed from sockopt_level.</div><div class='add'>+	  (sockopt_optname_m): renamed from sockopt_optname.</div><div class='add'>+	  (inspect_local_peercred): follow the renaming.</div><div class='add'>+	  (Init_sockopt): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 20:56:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_socket_creds): refactored to avoid</div><div class='add'>+	  a rb_str_cat2 call.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 04:34:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (when): makes parentheses balanced.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 01:28:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ip_cmsg_type_to_sym): renamed from</div><div class='add'>+	  cmsg_type_to_sym.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 01:22:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_inspect): refactored.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 01:02:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate intern_family_noprefix.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_inspect): use intern_family_noprefix</div><div class='add'>+	  not to show AF_ prefix.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 23:21:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (level_arg): use unknown_level_to_int for</div><div class='add'>+	  non internet protocol.</div><div class='add'>+	  (optname_arg): use only so_optname_to_int for non internet protocol.</div><div class='add'>+	  (cmsg_type_arg): use only scm_optname_to_int for non internet</div><div class='add'>+	  protocol.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate unknown_level_to_int.</div><div class='add'>+	  rename iplevel_to_int to ip_level_to_int.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 23:04:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: rename level_to_int to iplevel_to_int.</div><div class='add'>+	  rename intern_level to intern_iplevel.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 22:52:13 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (level_arg): add family argument.</div><div class='add'>+	  (optname_arg): ditto.</div><div class='add'>+	  (cmsg_type_arg): ditto.</div><div class='add'>+	  (rb_sock_getfamily): declared.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (level_arg): add family argument.</div><div class='add'>+	  (optname_arg): ditto.</div><div class='add'>+	  (cmsg_type_arg): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (rb_sock_getfamily): defined.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_initialize): give family for level_arg</div><div class='add'>+	  and optname_arg.</div><div class='add'>+	  (sockopt_s_int): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_setsockopt): ditto.</div><div class='add'>+	  (bsock_getsockopt): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_initialize): ditto.</div><div class='add'>+	  (ancillary_s_int): ditto.</div><div class='add'>+	  (ancillary_cmsg_is_p): ditto.</div><div class='add'>+	  (bsock_sendmsg_internal): ditto.</div><div class='add'>+	  (bsock_recvmsg_internal): use rb_sock_getfamily.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 21:48:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_inspect): show address family.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 20:19:36 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getsockname): use sockaddr_storage.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 20:11:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (load_conv_function51932): fixed for the</div><div class='add'>+	  case IMultiLanguage is not available.  [ruby-dev:37950]</div><div class='add'>+</div><div class='add'>+Mon Feb  9 20:04:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_int): return 1/0 on success/failure.</div><div class='add'>+	  (inspect_uint): ditto.</div><div class='add'>+	  (inspect_linger): ditto.</div><div class='add'>+	  (inspect_socktype): ditto.</div><div class='add'>+	  (inspect_timeval): ditto.</div><div class='add'>+	  (inspect_peercred): ditto.</div><div class='add'>+	  (inspect_local_peercred): ditto.</div><div class='add'>+	  (sockopt_inspect): refactored.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 20:00:26 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: more constants for Solaris.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 19:59:18 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getsockopt): refine address family</div><div class='add'>+	  examination.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 19:52:32 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_initialize): argument conversion</div><div class='add'>+	  reordered.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 19:46:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (ancillary_initialize): add family argument.</div><div class='add'>+	  (ancdata_new): ditto.</div><div class='add'>+	  (ancillary_s_int): ditto.</div><div class='add'>+	  (ancillary_family): new function.</div><div class='add'>+	  (ancillary_family_m): new method.</div><div class='add'>+	  (ancillary_s_ip_pktinfo): follow ancdata_new change.</div><div class='add'>+	  (ancillary_s_ipv6_pktinfo): ditto.</div><div class='add'>+	  (bsock_recvmsg_internal): examine the socket address family.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 11:31:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): ignore second argument when external and</div><div class='add'>+	  internal are same. [ruby-dev:37939]</div><div class='add'>+</div><div class='add'>+Mon Feb  9 09:05:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_local_peercred): check version.</div><div class='add'>+	  (sockopt_inspect): suppress warning.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 02:04:03 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_peercred): struct ucred contains</div><div class='add'>+	  effective uid/gid.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 00:44:45 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_inspect): add ifdef guard for</div><div class='add'>+	  LOCAL_PEERCRED.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 00:37:06 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_local_peercred): cr_uid is a effective</div><div class='add'>+	  uid, not a real uid.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 00:30:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check sys/param.h and sys/ucred.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include sys/param.h and sys/ucred.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_local_peercred): new function to show</div><div class='add'>+	  LOCAL_PEERCRED socket option on FreeBSD.</div><div class='add'>+	  (sockopt_inspect): show as LOCAL_* socket option if AF_UNIX and level</div><div class='add'>+	  is 0.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 00:01:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (sockopt_new): add family argument.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (sockopt_initialize): add vfamily argument.</div><div class='add'>+	  (sockopt_new): add family argument and record it in the object.</div><div class='add'>+	  (sockopt_family): new method.</div><div class='add'>+	  (sockopt_s_int): add vfamily argument.</div><div class='add'>+	  (sockopt_inspect): show family.</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_getsockopt): check address family</div><div class='add'>+	  using getsockname.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 23:37:17 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_index): receives one argument which</div><div class='add'>+	  represents a start offset.  [ruby-dev:37921]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 23:28:05 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h, st.c: order entries by a linked list instead of</div><div class='add'>+	  a loop to fix iteration miss when hash is modified during iteration.</div><div class='add'>+	  [ruby-dev:37910]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 23:22:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (inspect_peercred): new function to show</div><div class='add'>+	  SO_PEERCRED socket option on GNU/Linux.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 22:44:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/backward/rubysig.h (rb_thread_blocking_region_begin),</div><div class='add'>+	  (rb_thread_blocking_region_end): marked as deprecated.</div><div class='add'>+</div><div class='add'>+	* include/ruby/backward/rubysig.h (TRAP_BEG): fix for C++.  a</div><div class='add'>+	  patch from Aman Gupta at [ruby-core:21934]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 21:47:50 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check struct cmsgcred.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_passcred_credentials): add</div><div class='add'>+	  "(ucred)".</div><div class='add'>+	  (anc_inspect_socket_creds): show struct cmsgcred too, for FreeBSD.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 21:05:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb (DRb::ExtServManager#invoke_service_command):</div><div class='add'>+	  detach spawned process.  [ruby-dev:37936]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 20:30:29 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check struct sockcred.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_socket_creds): new function to</div><div class='add'>+	  show SCM_CREDS on NetBSD.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 19:05:24 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/backward/rubysig.h: extern "C" was missing.</div><div class='add'>+	  [ruby-core:21929]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 18:46:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (anc_inspect_passcred_credentials): new</div><div class='add'>+	  function to show SCM_CREDENTIALS on GNU/Linux.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 18:34:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_binread): ensures file path.  [ruby-dev:37940]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 13:52:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (init_unix_addrinfo): add socktype argument.</div><div class='add'>+	  (addrinfo_initialize): follow init_unix_addrinfo change.</div><div class='add'>+	  (addrinfo_s_unix): add optional argument: socktype</div><div class='add'>+</div><div class='add'>+Sun Feb  8 13:09:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_APPEND_OPTION, RUBY_APPEND_OPTIONS),</div><div class='add'>+	  (RUBY_PREPEND_OPTION, RUBY_PREPEND_OPTIONS): add option(s)</div><div class='add'>+	  without duplication.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_DEFINE_IF): changed parameter order, now</div><div class='add'>+	  condition comes first.</div><div class='add'>+</div><div class='add'>+	* configure.in (universal_binary): checks architecture macros, and</div><div class='add'>+	  improved thin load paths.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 09:41:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: gets extout and arch from rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Sat Feb  7 21:26:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_addrinfo.rb (test_family_addrinfo): don't use</div><div class='add'>+	  www.ruby-lang.org.</div><div class='add'>+	  http://d.hatena.ne.jp/nagachika/20090204/working_for_0f0e</div><div class='add'>+</div><div class='add'>+Sat Feb  7 18:02:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-arch): added new option to support</div><div class='add'>+	  universal binary.  replaced --enable-fat-binary option which</div><div class='add'>+	  didn't work actually.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_FUNC_ATTRIBUTE): added conditional test.</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_type_getgroups): declared because getgroups()</div><div class='add'>+	  fills rest of the buffer with garbage on Rosetta.</div><div class='add'>+</div><div class='add'>+	* configure.in (alloca): defines only for powerpc, but always</div><div class='add'>+	  create empty object to suppress ld warning.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_DLDFLAGS): set compatibility version with</div><div class='add'>+	  TEENY.</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, LDFLAGS): separates ARCH_FLAG.</div><div class='add'>+</div><div class='add'>+	* configure.in (arch): renamed to "universal" from "fat".</div><div class='add'>+</div><div class='add'>+	* Makefile.in (ARCH_FLAG): added.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (WORDS_BIGENDIAN): uses</div><div class='add'>+	  AC_APPLE_UNIVERSAL_BUILD.</div><div class='add'>+</div><div class='add'>+	* missing/alloca.c (alloca): defines only if C_ALLOCA is defined.</div><div class='add'>+</div><div class='add'>+Sat Feb  7 12:31:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: added --precommand and --show options.</div><div class='add'>+</div><div class='add'>+	* runruby.rb: added --cpu option.</div><div class='add'>+</div><div class='add'>+	* runruby.rb: skips version check in rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Sat Feb  7 11:44:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_header): needs dependent headers if trying to</div><div class='add'>+	  compile.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: net/if.h depends on other headers.</div><div class='add'>+</div><div class='add'>+Sat Feb  7 04:02:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_read): don't disable rdoc.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 23:28:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): use rb_io_wait_readable for retry</div><div class='add'>+	  avoid Errno::EINTR on ruby -e 'trap(:CHLD) {}; spawn("sleep 1"); STDIN.read'</div><div class='add'>+</div><div class='add'>+Fri Feb  6 22:36:11 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_create) [__SYMBIAN32__]: reduced pthread stack size.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer) [__SYMBIAN32__]: compiled out unsupported yet signal-related functionality.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open) [__SYMBIAN32__]: fixed compile time error.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 22:11:46 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h [__SYMBIAN32__]: included &lt;sys/select.h&gt; for fd_set definition</div><div class='add'>+</div><div class='add'>+Fri Feb  6 21:58:24 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/missing-pips.c: added a stub for missing PIPS function execl.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec) [__SYMBIAN32__]: removed conditional around execl function call.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 20:37:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (register_sigaltstack): ignore sigaltstack error.</div><div class='add'>+	  It fails on OpenBSD 4.4 when pthread library is linked.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 18:18:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_readdir_with_enc): fallback to OS's conversion</div><div class='add'>+	  when ASCII-8BIT is passed.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 17:19:23 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{dir.h, win32.c} (rb_w32_readdir_with_enc): new function to</div><div class='add'>+	  read entry with specified enc.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (readdir_internal): extract from rb_w32_opendir().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (opendir_internal): extract from rb_w32_readdir().</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_read, dir_each): use new READDIR macro instead of readdir()</div><div class='add'>+	  to pass enc for special version of readdir, such as above.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 12:11:24 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set initial default_external before -r.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 12:03:47 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): -K and -E in shebang should be reflect to</div><div class='add'>+	  default_external. [ruby-dev:37920]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 07:52:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): type fixed.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 02:51:59 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_codepoint): update RDoc for</div><div class='add'>+	  String#codepoints.  a patch from Radoslaw Bulat in</div><div class='add'>+	  [ruby-core:21835]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 01:09:13 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_mark, cont_capture, cont_restore_1): use #else instead</div><div class='add'>+	  of #elif.  a patch from NISHIMATSU Takeshi &lt;t_nissie at yahoo.co.jp&gt;</div><div class='add'>+	  in [ruby-list:45856].</div><div class='add'>+</div><div class='add'>+Thu Feb  5 20:28:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_run_exec_options_err): renamed from</div><div class='add'>+	  rb_run_exec_options.</div><div class='add'>+	  (rb_exec_err): renamed from rb_exec.</div><div class='add'>+	  (rb_fork_err): renamed from rb_fork.</div><div class='add'>+	  (rb_spawn_err): renamed from rb_spawn.</div><div class='add'>+	  (rb_run_exec_options): declared with 1.9.1 compatible signature.</div><div class='add'>+	  (rb_exec): ditto.</div><div class='add'>+	  (rb_fork): ditto.</div><div class='add'>+	  (rb_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_run_exec_options_err): renamed from</div><div class='add'>+	  rb_run_exec_options.</div><div class='add'>+	  (rb_exec_err): renamed from rb_exec.</div><div class='add'>+	  (rb_fork_err): renamed from rb_fork.</div><div class='add'>+	  (rb_spawn_err): renamed from rb_spawn.</div><div class='add'>+	  (rb_run_exec_options): defined.</div><div class='add'>+	  (rb_exec): ditto.</div><div class='add'>+	  (rb_fork): ditto.</div><div class='add'>+	  (rb_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: follow above change.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: follow above change.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:37893]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 19:58:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket: AddrInfo is renamed to Addrinfo.  [ruby-dev:37876]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 16:18:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_SITE_LIB_PATH, RUBY_VENDOR_LIB_PATH): fix for</div><div class='add'>+	  NetBSD.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 16:04:29 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): follow recent changes about paths.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 14:26:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MAJOR, MINOR, TEENY): uses RUBY_VERSION_*.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (prefix): uses ruby_version in config.status.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 12:24:18 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq): gets rid of copying.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 12:01:53 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_add_hash): split from ary_make_hash().</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_hash): hide a Hash used internally.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_recycle_hash): clears internally used hash.  this</div><div class='add'>+	  name came from [ruby-dev:37908].</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_diff, rb_ary_and, rb_ary_or, rb_ary_uniq_bang):</div><div class='add'>+	  recycle hashes.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 11:21:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB_VERSION): added for library version, to</div><div class='add'>+	  split from core version.  [ruby-dev:37748]</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB_PATH, etc): moved actual version</div><div class='add'>+	  dependent stuff to version.c.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): ditto.</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_initial_load_paths): moved initial load path</div><div class='add'>+	  version depending on version from ruby.c.</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_VERSION_{MAJOR,MINOR,TEENY}): now mean library</div><div class='add'>+	  and API version, and reverted to 1.9.1.  [ruby-dev:37889]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 07:39:33 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): remove_history(0) may be</div><div class='add'>+	  NULL.  [ruby-dev:37891]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 03:55:22 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (LOCALTIME): should call tzset() before localtime_r().</div><div class='add'>+	  [ruby-dev:37896]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 02:12:35 2009  Alexander Zavorine  &lt;alexandre.zavorine@nokia.com&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/configure.bat: Updated Symbian configuration procedure to</div><div class='add'>+	  avoid creating files outside build directory</div><div class='add'>+</div><div class='add'>+	* symbian/pre-build: ditto</div><div class='add'>+</div><div class='add'>+	* symbian/setup: ditto</div><div class='add'>+</div><div class='add'>+	* symbian/rubyu.def: removed</div><div class='add'>+</div><div class='add'>+Thu Feb  5 01:44:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): refine error message for</div><div class='add'>+	  undefined conversion.  [ruby-core:21828]</div><div class='add'>+</div><div class='add'>+Thu Feb  5 01:18:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_socketpair): make 3rd argument optional.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c (unix_s_socketpair): follow the above</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (sock_s_socketpair): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 00:09:39 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_ipv6_to_ipv4): new method.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 21:59:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): show U+XXXX form for undefined</div><div class='add'>+	  conversion error from UTF-8.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 21:57:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): use MBCLEN_CHARFOUND_P properly.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 21:55:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: refine success message.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 19:10:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (id.h): updates from parse.h.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 11:45:06 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: shouldn't export DllMain.</div><div class='add'>+	  reported at http://pc11.2ch.net/test/read.cgi/tech/1233686068/21</div><div class='add'>+</div><div class='add'>+Wed Feb  4 10:12:05 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): should support 't' format</div><div class='add'>+	  modifier to handle PRIdPTRDIFF.  thanks for the info from</div><div class='add'>+	  Kazuhiro NISHIYAMA.  [ruby-core:21807]</div><div class='add'>+</div><div class='add'>+Wed Feb  4 01:28:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: fix struct in_pktinfo and struct in6_pktinfo</div><div class='add'>+	  detection.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 00:32:59 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb(test_getpwnam, test_getgrgid, test_getgrnam):</div><div class='add'>+	  support an environment that has duplicative entries.  a patch from</div><div class='add'>+	  Tomoyuki Chikanaga &lt;chikanag at nippon-control-system.co.jp&gt; in</div><div class='add'>+	  [ruby-dev:37882].</div><div class='add'>+</div><div class='add'>+Wed Feb  4 00:17:52 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): skip</div><div class='add'>+	  socket creation error.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 23:37:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): resets EOF flag after parse.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 23:13:34 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace): always returns non-nil array if lev is</div><div class='add'>+	  negative.  [ruby-core:21795]</div><div class='add'>+</div><div class='add'>+Tue Feb  3 21:19:06 2009  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checked rl_set_screen_size and</div><div class='add'>+	  rl_get_screen_size.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_screen_size): added</div><div class='add'>+	  Readline.set_screen_size.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_get_screen_size): added</div><div class='add'>+	  Readline.get_screen_size.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 21:07:19 2009  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_completion_proc): set</div><div class='add'>+	  default if proc is nil. fix #1095</div><div class='add'>+</div><div class='add'>+Tue Feb  3 16:36:06 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_by_bang): RDoc update.</div><div class='add'>+</div><div class='add'>+	* NEWS: add Array#sort_by!.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 16:23:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): new</div><div class='add'>+	  private function for allocating same port both IPv4 and IPv6.</div><div class='add'>+	  (Socket.tcp_server_sockets): use tcp_server_sockets_port0 for port 0.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 14:12:10 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: validate data before sending to a server.</div><div class='add'>+	  [ruby-core:20320]</div><div class='add'>+</div><div class='add'>+Tue Feb  3 12:35:41 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_array): replace match_check().</div><div class='add'>+</div><div class='add'>+	* re.c (match_values_at): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 12:09:08 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (hmac_md5): should use String#ord to get ascii</div><div class='add'>+	  code from the one-character string.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 11:25:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (load_lock): warn for circular require.  [ruby-core:20794],</div><div class='add'>+	  [ruby-core:20797]</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:35:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (Socket.tcp_server_sockets): extracted from</div><div class='add'>+	  Socket.tcp_server_loop.</div><div class='add'>+	  (Socket.accept_loop): ditto.</div><div class='add'>+	  (Socket.unix_server_socket): extracted from Socket.unix_server_loop.</div><div class='add'>+	  (Socket.unix_server_loop): use Socket.accept_loop.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:21:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb (make_pipe): readpartial does not</div><div class='add'>+	  work in text mode.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:18:26 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): uses mkexports.rb on cygwin too.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Cygwin): added.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:10:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (Doxyfile): moved from Makefile.in.</div><div class='add'>+</div><div class='add'>+	* template/Doxyfile.tmpl: split from Doxyfile.in.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:01:38 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write): use of cast expressions as lvalues</div><div class='add'>+	  is deprecated.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 07:57:58 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (in_pktinfo, in6_pktinfo),</div><div class='add'>+	  ext/socket/ancdata.c: defined in w32api/ws2tcpip.h on cygwin but</div><div class='add'>+	  cannot compile for some reason.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 07:02:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c (nl_langinfo_codeset): accepts iso-8859</div><div class='add'>+	  fragment.  [ruby-core:21757]</div><div class='add'>+</div><div class='add'>+Tue Feb  3 07:01:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (patchlevel): config.status may not contain</div><div class='add'>+	  PATCHLEVEL even if other version numbers exist.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 23:43:00 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (Init_addrinfo): add AddrInfo#to_s as an</div><div class='add'>+	  alias of AddrInfo#to_sockaddr.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c (Init_sockopt): add Socket::Option#to_s as an</div><div class='add'>+	  alias of Socket::Option#data.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:37873]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 21:04:13 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_by_bang): RDoc update.  [ruby-core:21742]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 20:49:24 2009  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: Introduce id_each to save rb_intern() and SYM2ID()</div><div class='add'>+	  calls.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 19:55:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_addrinfo.rb: use AddrInfo.getaddrinfo to generate</div><div class='add'>+	  IPv6 address.  AddrInfo.ip generates IPv4 address for IPv4 mapped</div><div class='add'>+	  IPv6 address if --with-lookup-order-hack=INET.</div><div class='add'>+	  [ruby-dev:37868]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 19:17:16 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/NEWS-1.9.1: typo fixed: collect_all -&gt; collect.</div><div class='add'>+	   [ruby-core:21706]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 17:23:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (dir.o, win32.o): depend on win32/dir.h.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 17:13:46 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: patchlevel is sometimes minus.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 17:11:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (cmsg_type_to_sym): add #ifdef for no IPv6</div><div class='add'>+	  environment.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 17:05:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): should not be infected from other</div><div class='add'>+	  load paths.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 16:33:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_home): new method.   [ruby-core:21454]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 16:06:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: bump up to 1.9.2 patchlevel -1.</div><div class='add'>+	  yugui recommend "-1" strongly.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: accept negative patchlevel.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 14:53:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_initialize): make 3rd argument, protocol,</div><div class='add'>+	  optional.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 14:47:53 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_by_bang): new method.  requested in</div><div class='add'>+	  [ruby-core:21709]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 14:22:56 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (cmsg_type_arg): INET6 check.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 14:18:20 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c: use INET6 instead of IPV6.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 12:47:47 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/{options,raddrinfo}.c: use INET6 instead of AF_INET6 for</div><div class='add'>+	  VC++6.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 12:41:52 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_signbit): regard NaN as a positive value.</div><div class='add'>+	  [ruby-dev:37861].</div><div class='add'>+</div><div class='add'>+Mon Feb  2 12:39:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (valid_syntax?), test/ruby/test_system.rb</div><div class='add'>+	  (TestSystem::valid_syntax?): use catch and throw instead of</div><div class='add'>+	  return inside BEGIN block.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 11:45:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (cmsg_type_arg): declared.</div><div class='add'>+	  (Init_ancdata): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (Init_socket_init): call Init_ancdata.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (cmsg_type_arg): defined.</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: add dependency for ancdata.o.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate scm_optname_to_int.</div><div class='add'>+	  more constants.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add ancdata.o.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c: new file.  new method</div><div class='add'>+	  BasicSocket#{sendmsg,sendmsg_nonblock,recvmsg,recvmsg_nonblock}</div><div class='add'>+</div><div class='add'>+Mon Feb  2 10:57:27 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/dir.h (open_dir_handle, rb_w32_opendir,</div><div class='add'>+	  move_to_next_entry, rb_w32_readdir, check_valid_dir): change backend</div><div class='add'>+	  API from A to W.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 10:48:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c (bsock_setsockopt): accept Socket::Option</div><div class='add'>+	  object.</div><div class='add'>+	  (bsock_getsockopt): return Socket::Option object.</div><div class='add'>+</div><div class='add'>+	* ext/socket/option.c: new file.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rb_cSockOpt): declared.</div><div class='add'>+	  (sockopt_new): ditto.</div><div class='add'>+	  (Init_sockopt): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (Init_socket_init): call Init_sockopt.</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: add dependency for option.o</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate intern_level, intern_so_optname,</div><div class='add'>+	  intern_ip_optname, intern_ipv6_optname, intern_tcp_optname,</div><div class='add'>+	  intern_udp_optname and intern_scm_optname.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add option.o.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 09:49:39 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): progname is not available at</div><div class='add'>+	  initializing phase.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 08:12:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (Server#serve): gets rid of hardcoded</div><div class='add'>+	  platform names.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::Hosts::DefaultFileName),</div><div class='add'>+	  (Resolv::DNS::Config.default_config_hash): tries win32/resolv on</div><div class='add'>+	  mswin64 too.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification#ruby_code):</div><div class='add'>+	  added mswin64.</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb (DRb::ExtServManager#invoke_service_command):</div><div class='add'>+	  spawn is better to start a process in background.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: uses FNM_SYSCASE.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: installs win32.h on mswin64 platform.</div><div class='add'>+	  [ruby-core:21722]</div><div class='add'>+</div><div class='add'>+Mon Feb  2 07:36:13 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace_each): now takes an iterator function.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_make_backtrace, rb_backtrace_each): added</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport), vm_eval.c (rb_backtrace): gets rid</div><div class='add'>+	  of allocating objects.  [ruby-core:21619]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_backtrace_each): new function which iterates over</div><div class='add'>+	  each backtrace info.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 06:51:36 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): Windows' filesystem encoding is</div><div class='add'>+	  sometimes ANSI code page and sometimes OEM code page. we should check</div><div class='add'>+	  whether code page is used.</div><div class='add'>+</div><div class='add'>+Sun Feb  1 21:27:55 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_ipv4_private_p): new method.</div><div class='add'>+	  (addrinfo_ipv4_loopback_p): ditto.</div><div class='add'>+	  (addrinfo_ipv4_multicast_p): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb  1 16:10:06 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (Switch#summarize): strips an equal sign from</div><div class='add'>+	  short option, and fills right sides in shorter lines.</div><div class='add'>+	  [ruby-talk:326414]</div><div class='add'>+</div><div class='add'>+Sun Feb  1 05:19:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0), vm_insnhelper.c (vm_get_ev_const):</div><div class='add'>+	  avoids infinite self recursion autoload.  [ruby-core:21696]</div><div class='add'>+</div><div class='add'>+Sat Jan 31 22:50:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_equal): show class in failure</div><div class='add'>+	  message if meaningful.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 22:38:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS#each_address): don't query IPv6 address</div><div class='add'>+	  if the host has no global IPv6 address.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 22:29:05 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (STR2CSTR): removed.</div><div class='add'>+	  (rb_str2cstr): removed.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str2cstr): removed.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 20:07:59 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_ipv6_unspecified_p): new method.</div><div class='add'>+	  (addrinfo_ipv6_loopback_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_multicast_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_linklocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_sitelocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_v4mapped_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_v4compat_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_mc_nodelocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_mc_linklocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_mc_sitelocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_mc_orglocal_p): ditto.</div><div class='add'>+	  (addrinfo_ipv6_mc_global_p): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 19:09:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_require_safe): raises when the path to be loaded is</div><div class='add'>+	  tainted.  [ruby-dev:37843]</div><div class='add'>+</div><div class='add'>+Sat Jan 31 18:08:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (optflags): defaulted to -O3 to get rid of slug of</div><div class='add'>+	  gcc 4.3.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 18:03:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (List#accept, parse_in_order): n option is no</div><div class='add'>+	  longer needed.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 14:12:43 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#each_child): new method.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 00:07:49 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb</div><div class='add'>+	  (Test::Unit::Assertions#assert_nothing_raised): suppress warning.</div><div class='add'>+	  [ruby-core:21312]</div><div class='add'>+</div><div class='add'>+Fri Jan 30 21:49:32 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#realdirpath): new method based on the</div><div class='add'>+	  patch in [ruby-dev:36560] by Akinori MUSHA.</div><div class='add'>+	  [ruby-dev:36290]</div><div class='add'>+</div><div class='add'>+Fri Jan 30 18:04:23 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write): limit write size to 32KB if the file</div><div class='add'>+	  seems to be console.  [ruby-core:21613]</div><div class='add'>+</div><div class='add'>+Fri Jan 30 16:12:32 2009  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (Init_curses): Curses#crmode and</div><div class='add'>+	  Curses#nocrmode changes to the module function.</div><div class='add'>+	  fix #916</div><div class='add'>+</div><div class='add'>+Fri Jan 30 14:31:14 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (prereq): remove enc.mk from tarball because</div><div class='add'>+	  BSD make checks $(srcdir)/enc.mk and try to run $(builddir)/enc.mk.</div><div class='add'>+</div><div class='add'>+Fri Jan 30 14:11:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: extract compile rules to each target for nmake.</div><div class='add'>+</div><div class='add'>+Fri Jan 30 12:59:49 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): depends on makefiles.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): adds DATA to non-function symbols</div><div class='add'>+	  which is not marked as T.</div><div class='add'>+</div><div class='add'>+Fri Jan 30 11:03:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_respond_to): gets rid of</div><div class='add'>+	  overcounting.   [ruby-dev:37703]</div><div class='add'>+</div><div class='add'>+Fri Jan 30 02:55:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_init_by_convpath_i): make it static.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 16:22:41 2009  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_provided): should not calculate len by pointer</div><div class='add'>+	  subtraction because feature may be a expanded path.</div><div class='add'>+	  [ruby-core:21267]</div><div class='add'>+</div><div class='add'>+Thu Jan 29 14:12:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BASERUBY): erases RUBYOPT at the test.</div><div class='add'>+</div><div class='add'>+	* configure.in (OBJCOPY): not used on Windows.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 13:16:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb (SecureRandom.uuid): uses unpacked array</div><div class='add'>+	  instead of string, because String#[] returns one length string.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 12:29:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (FileUtils#rake_system): no longer needs workaround</div><div class='add'>+	  on Windows.  [ruby-core:21339]</div><div class='add'>+</div><div class='add'>+	* lib/rake/win32.rb (Rake::Win32#rake_system): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rake/win32.rb (Rake::Win32#win32_system_dir): no longer</div><div class='add'>+	  needs environment variables other than APPDATA now.</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::Application#standard_system_dir): uses</div><div class='add'>+	  platform specific definition on Windows system.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 12:18:54 2009  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb: new method SecureRandom#uuid</div><div class='add'>+</div><div class='add'>+Thu Jan 29 11:22:19 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (inspect_sockaddr): if defined AF_INET6,</div><div class='add'>+	  perhaps can inspect IPv6 addresses if not defined INET6.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_ip_address_list): support Windows XP</div><div class='add'>+	  or later. (Win2k or earlier is still not supported)</div><div class='add'>+</div><div class='add'>+Thu Jan 29 00:24:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): previous change didn't resolve the</div><div class='add'>+	  problem.</div><div class='add'>+</div><div class='add'>+Wed Jan 28 22:51:12 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): desperately guard the variable.</div><div class='add'>+	  [ruby-core:20576]</div><div class='add'>+</div><div class='add'>+Wed Jan 28 15:24:11 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* math.c: SEGV is caused by implicit rb_to_float declaration</div><div class='add'>+	  test_complexrational.rb: [BUG] in IA-64 architecture</div><div class='add'>+</div><div class='add'>+Tue Jan 27 20:02:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c (socks_connect_blocking): moved from</div><div class='add'>+	  sockssocket.c.  [ruby-dev:37834]</div><div class='add'>+</div><div class='add'>+	* sockssocket.c (socks_init): don't omit "int" type.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 14:41:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): needs DATA marks to export</div><div class='add'>+	  non-function symbols.  [ruby-core:21582]</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mingw#each_export): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 12:59:55 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: use VPATH.</div><div class='add'>+	  If a platform doesn't support VPATH, Ruby doesn't support it:</div><div class='add'>+	  for example MSYS. [ruby-core:21570]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 12:21:17 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: lex.c's correct path is ../../lex.c.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 11:09:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_header): checks the header depending on</div><div class='add'>+	  platform.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_header, find_header): use try_header.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (try_header): uses try_compile to get rid of</div><div class='add'>+	  slow -E option of VC.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 11:03:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (distclean-enc, realclean-enc): do not call clean of</div><div class='add'>+	  enc.mk twice or more.</div><div class='add'>+</div><div class='add'>+	* enc/depend (cleanobjs): added deffile.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): removes deffile at clean instead</div><div class='add'>+	  of distclean.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (miniruby, LIBRUBY_SO): removes lib and exp</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean, distclean): have moved to common.mk.</div><div class='add'>+</div><div class='add'>+	* win32/rmdirs.bat: omits `not empty' message.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 10:15:33 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (struct rb_transcoding): added ary member for debug.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 10:10:14 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Doxyfile.in (FILE_VERSION_FILTER, INPUT_FILTER): should not use</div><div class='add'>+	  ./miniruby directly for cross compiling.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 04:02:53 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: fixed dependency path to lex.c.</div><div class='add'>+	  [ruby-core:21570]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 03:43:34 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash): fixed performance issues with nil, true,</div><div class='add'>+	  false as hash keys.  a patch from Matthias Waechter.</div><div class='add'>+	  [ruby-core:21568]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 03:23:43 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): should point correct path to</div><div class='add'>+	  ruby.h and defines.h.   [ruby-core:21569]</div><div class='add'>+</div><div class='add'>+Mon Jan 26 16:00:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aset): fixed arguments evaluation order.</div><div class='add'>+</div><div class='add'>+Mon Jan 26 15:49:42 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (chop_basename, prepend_prefix): use o option.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 16:35:44 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_ip_address_list): renamed from</div><div class='add'>+	  socket_s_list_ip_address.  [ruby-dev:37806]</div><div class='add'>+</div><div class='add'>+Sun Jan 25 12:17:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): needs read-only section too.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 12:02:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean-ext): condition of EXTS was inverted.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 11:50:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): fixed the variables order because</div><div class='add'>+	  converter proc refers the separator.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 11:25:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (RMDIRS): remove directory and</div><div class='add'>+	  parents.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (distclean-rdoc): added to remove</div><div class='add'>+	  temporary rdoc.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (clean-ext): skips non-existent</div><div class='add'>+	  directories.</div><div class='add'>+</div><div class='add'>+	* common.mk (clean, distclean): cleans rdoc.</div><div class='add'>+</div><div class='add'>+	* common.mk (clean-extout): removes extout directory.</div><div class='add'>+</div><div class='add'>+	* configure.in (RMDIRS, RMALL): added to clean extout.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#rmdir): added :parents option.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): cleans installed files at clean</div><div class='add'>+	  instead of distclean.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): added clean-so and clean-rb.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (def init_mkmf): added DISTCLEANDIRS.</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (rmdir): added -p option.</div><div class='add'>+</div><div class='add'>+	* tool/rmdirs, win32/rmdirs.bat: removes directory and the parents.</div><div class='add'>+</div><div class='add'>+	* win32/rm.bat: added -r option.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 09:09:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (join_path): use strlcat() to force link.</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): no strcpy() is needed since len is known.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 06:44:58 2009  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Server Name Indication support.</div><div class='add'>+	  new methods SSLContext#server_name_cb=, SSLSocket#hostname=.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb: Tests for above.</div><div class='add'>+</div><div class='add'>+Sat Jan 24 08:22:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): tools under the top source</div><div class='add'>+	  directory are not installed, so unusable outside extmk.rb.</div><div class='add'>+</div><div class='add'>+Fri Jan 23 17:24:31 2009  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Enumerator#inspect): avoid warning.</div><div class='add'>+</div><div class='add'>+Fri Jan 23 15:12:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (mkintpath): new function which converts native path</div><div class='add'>+	  to format acceptable in Makefile.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): leaves PATH_SEPARATOR unchanged.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): converts srcdir, topdir and hdrdir.</div><div class='add'>+	  a patch by Alexey Borzenkov &lt;snaury AT gmail.com&gt; at</div><div class='add'>+	  [ruby-core:21448].</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): got rid of c-mode confusion.</div><div class='add'>+</div><div class='add'>+Fri Jan 23 13:26:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap_handler): also accepts symbols.  [ruby-dev:37823]</div><div class='add'>+</div><div class='add'>+Thu Jan 22 18:14:04 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): removes installed files under</div><div class='add'>+	  extout at distclean.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 17:12:37 2009  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI.parse): generate only key on params hash</div><div class='add'>+	  if request have only key uri parameters.</div><div class='add'>+		(ex. index.cgi?aaa&amp;bbb=1 # params=&gt;{:aaa=&gt;[],:bbb=&gt;["1"]})</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_core.rb: fix test for key only params.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 16:29:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#initialize): fixed</div><div class='add'>+	  typos.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb (test_self_dir): removed false</div><div class='add'>+	  assertions.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb (test_self_set_paths): checks if paths</div><div class='add'>+	  are included.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_commands_install_command.rb</div><div class='add'>+	  (test_execute_remote): checks diagnostic message too.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_installer.rb (load): uses Gem.ruby.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/gemutilities.rb (Gem.ruby): initializes from the</div><div class='add'>+	  environment variable to run without installation.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/gemutilities.rb (RubyGemTestCase#util_build_gem):</div><div class='add'>+	  creates cache directory.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 16:12:51 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* revert previous revision.  it's already out-of-date.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 15:54:02 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, win32/win32.c (rb_w32_is_valid_fd): new function</div><div class='add'>+	  to validate fd.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): check fd with above function.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 14:53:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (MANDATORY_ENVS): needs RUBYLIB to run</div><div class='add'>+	  tests without install.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 12:19:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): cannot define finalizer for immediate</div><div class='add'>+	  values.  [ruby-core:21500]</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): freezes or hides internal values.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 11:33:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_time_timeval): made a real prototype.  a patch from</div><div class='add'>+	  Marcus Rueckert &lt;darix AT opensu.se&gt; at [ruby-core:21492].</div><div class='add'>+</div><div class='add'>+Wed Jan 21 21:43:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetbyte, rb_io_ungetc): allows nil to reset EOF</div><div class='add'>+	  flag with ungetting nothing.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): rests EOF flag to make possible to</div><div class='add'>+	  load from stdin after reading data.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 17:17:18 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_double_capa): a new function to expand array more</div><div class='add'>+	  aggressively.   [ruby-core:21460]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_store): use ary_double_capa().</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_splice): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 15:32:15 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetbyte, rb_io_ungetc): clears EOF flag.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 14:41:48 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (take_items): to_ary() raises ArgumentError if cannot to</div><div class='add'>+	  convert to Array. [ruby-dev:37797]</div><div class='add'>+</div><div class='add'>+Wed Jan 21 14:32:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (debug_lines): calls rb_intern() once.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 13:58:17 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_EOF): EOF flag on TTY.</div><div class='add'>+</div><div class='add'>+	* io.c (io_set_eof): sets EOF flag for TTY.</div><div class='add'>+</div><div class='add'>+	* io.c (io_seek): clears EOF flag.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fillbuf): returns EOF if already met EOF.  [ruby-dev:37798]</div><div class='add'>+</div><div class='add'>+	* io.c (io_fillbuf, io_fread, io_getpartial): sets EOF.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 08:22:04 2009  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.3.1 r4532.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 20:16:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socket_s_list_ip_address): new method.</div><div class='add'>+	  (sockaddr_obj): new function.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include ifaddrs.h, sys/ioctl.h,</div><div class='add'>+	  sys/sockio.h, net/if.h if available.</div><div class='add'>+	  (addrinfo_new): declared.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_new): exported.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check ifaddrs.h, sys/ioctl.h, sys/sockio.h,</div><div class='add'>+	  net/if.h and getifaddrs.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 20:05:21 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (pseudo_AF_FTIP): moved from mkconstants.rb.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: prepend header if -H is not given.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 17:50:00 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_buf): use nkf_char.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 16:17:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (ruby_Init_{Continuation_body,Fiber_as_Coroutine}): prefixed</div><div class='add'>+	  with ruby_ to export.</div><div class='add'>+</div><div class='add'>+	* ext/continuation/continuation.c, ext/fiber/fiber.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 15:32:29 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): renames and then removes, to get rid of</div><div class='add'>+	  EPERM on cygwin and mingw.</div><div class='add'>+</div><div class='add'>+	* Makefile.in ($(LIBRUBY_SO)): use wildcard option of objcopy.</div><div class='add'>+</div><div class='add'>+	* configure.in (DLDFLAGS): do not export all symbols.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (RUBYDEF): rejects symbols prefixed with</div><div class='add'>+	  Init_.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mingw): includes all symbols as</div><div class='add'>+	  well as mswin32, except for prefixed with Init_.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 13:03:50 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): fixed the tail bytes handling in the aligned</div><div class='add'>+	  access case.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 09:26:05 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_buf_push): maybe a bug.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (options): no need to support help option.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 06:48:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (take_items), enum.c (enum_zip): tries to convert to</div><div class='add'>+	  array first.  [ruby-core:21442]</div><div class='add'>+</div><div class='add'>+Tue Jan 20 03:50:37 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Update nkf to 2.0.9.</div><div class='add'>+	  revert -s meaning as Shift_JIS, etc.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 03:42:32 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): fixed typo.  [ruby-dev:37791]</div><div class='add'>+</div><div class='add'>+Tue Jan 20 01:15:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (SOMAXCONN): defined.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 22:31:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use erb for generating code.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 17:33:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): defaulted to MurmurHash 2.0.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 17:29:34 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (RUBY_ALIAS_FUNCTION_TYPE): added.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 17:24:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (vm_stack_dump_each): used only if debug mode.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 16:32:35 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): added MurmurHash 2.0.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 14:31:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): needs</div><div class='add'>+	  rb_signal_buff_size to be declared.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 13:34:25 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): reset th-&gt;parse_in_eval while</div><div class='add'>+	  loading libraries.  fixes [ruby-dev:37780]</div><div class='add'>+</div><div class='add'>+Mon Jan 19 11:46:39 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c, eval.c (rb_f_block_given_p): move definition of</div><div class='add'>+	  "iterator?" and "block_given?" to make static.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_get_ruby_level_caller_cfp): make it static.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, vm_insnhelper.c: move decl. of</div><div class='add'>+	  vm_get_ruby_level_caller_cfp()</div><div class='add'>+	  from eval_intern.h to vm_insnhelper.c.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 11:27:39 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: add a prefix "rb_" to exposed functions</div><div class='add'>+	  vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(),</div><div class='add'>+	  vm_stack_to_heap(), vm_make_proc(), vm_invoke_proc(),</div><div class='add'>+	  vm_get_sourceline(), vm_cref(), vm_localjump_error(),</div><div class='add'>+	  vm_make_jump_tag_but_local_jump(), vm_jump_tag_but_local_jump().</div><div class='add'>+	  This changes may affect only core because most of renamed functions</div><div class='add'>+	  require a pointer of not-exposed struct such as rb_thread_t or NODE.</div><div class='add'>+	  In short, they are core functions.</div><div class='add'>+</div><div class='add'>+	* cont.c, eval.c, eval_intern.h, load.c, proc.c, thread.c,</div><div class='add'>+	  vm_core.h, vm_dump.c, vm_eval.c, vm_exec.c, vm_insnhelper.c:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 11:22:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rb_cUNIXSocket, rb_cUNIXServer),</div><div class='add'>+	  (unixpath, unixaddr): UNIX domain sockets depend on sys/un.h.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 11:02:30 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: add a prefix "rb_vmdebug_" to</div><div class='add'>+	  vm_stack_dump_raw(), vm_stack_dump_raw_current(),</div><div class='add'>+	  vm_env_dump_raw(), vm_proc_dump_raw(), vm_stack_dump_th(),</div><div class='add'>+	  vm_debug_print_register(), vm_thread_dump_regs(),</div><div class='add'>+	  vm_debug_print_pre(), vm_debug_print_post(),</div><div class='add'>+	  vm_thread_dump_state().</div><div class='add'>+	  This change also may affect core (in fact, user of</div><div class='add'>+	  above functions may be only ko1).</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_exec.h (SDR2): remove duplicate definition.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 11:00:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_ip_port): use AF_INET6 only when</div><div class='add'>+	  defined, as well as addrinfo_ipv6_p().</div><div class='add'>+</div><div class='add'>+Mon Jan 19 10:43:38 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect_with_gvl): suppress warnings.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 10:34:32 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: workaround for nmake. files in depend without</div><div class='add'>+	  paths should converted by RULE_SUBST, but mkmf.rb cannot recognize</div><div class='add'>+	  macros currently.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 09:53:43 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c:</div><div class='add'>+	  rename ruby_iseq_disasm_insn() -&gt; rb_iseq_disasm_insn().</div><div class='add'>+	  rename ruby_iseq_disasm() -&gt; rb_iseq_disasm().</div><div class='add'>+</div><div class='add'>+	* compile.c:</div><div class='add'>+	  rename ruby_iseq_compile() -&gt; rb_iseq_compile_node().</div><div class='add'>+	  rename ruby_iseq_translate_threaded_code() -&gt;</div><div class='add'>+	         rb_iseq_translate_threaded_code().</div><div class='add'>+	  rename ruby_insns_name_array() -&gt; rb_insns_name_array().</div><div class='add'>+	  rename ruby_iseq_build_from_ary() -&gt; rb_iseq_build_from_ary().</div><div class='add'>+</div><div class='add'>+	* iseq.c, compile.c: remove ruby_insn_make_insn_table() and make</div><div class='add'>+	  static function insn_make_insn_table().</div><div class='add'>+</div><div class='add'>+	* iseq.h, ruby.c, vm.c, vm_core.h, vm_eval.c, vm_dump.c,</div><div class='add'>+	  blockinlining.c: ditto.</div><div class='add'>+	  Rename strange "ruby_" prefix to "rb_" prefix.</div><div class='add'>+	  This changes may affect only core because renamed functions</div><div class='add'>+	  require a pointer of rb_iseq_t which is not exposed.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 09:21:04 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define macros with default value in</div><div class='add'>+	  constdefs.h if not exist them.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_mdump, addrinfo_mload): support</div><div class='add'>+	  UNIX socket only on platforms which support it.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 08:56:53 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, vm_eval.c (rb_f_local_variables): move definition from eval.c</div><div class='add'>+	  to vm_eval.c because vm_collect_local_variables_in_heap() should</div><div class='add'>+	  be static function.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_collect_local_variables_in_heap): make it static.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 04:06:10 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_load): renamed from ruby_iseq_load, since it is</div><div class='add'>+	  for C extensions or the ruby core.  [ruby-core:21407]</div><div class='add'>+</div><div class='add'>+Mon Jan 19 03:06:22 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): fix: :xml option doesn't</div><div class='add'>+	  work on str.encode([options]) form without default_internal.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 16:56:46 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_inspect_sockaddr): new</div><div class='add'>+	  method AddrInfo#inspect_sockaddr.</div><div class='add'>+	  (inspect_sockaddr): extracted from addrinfo_inspect.</div><div class='add'>+	  (addrinfo_inspect): use inspect_sockaddr.</div><div class='add'>+	  (Init_addrinfo): define the new method.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 16:46:37 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_ip_address): new method</div><div class='add'>+	  AddrInfo#ip_address.</div><div class='add'>+	  (addrinfo_ip_port): new method AddrInfo#ip_port.</div><div class='add'>+	  (Init_addrinfo): define the methods above.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 14:29:52 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: redundant #ifdef removed.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 03:33:23 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_mdump): don't use symbol.</div><div class='add'>+	  (addrinfo_mload): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 03:05:20 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (addrinfo_mdump): new method.</div><div class='add'>+	  (addrinfo_mload): new method.</div><div class='add'>+	  (Init_addrinfo): define the method above.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c (constant_arg): str_to_int's first argument</div><div class='add'>+	  constified.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (gen_name_to_int_decl): generated</div><div class='add'>+	  function's first argument constified.</div><div class='add'>+	  (gen_name_to_int_func_in_guard): ditto.</div><div class='add'>+	  (ipproto_to_int): generated.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (IS_IP_FAMILY): moved from raddrinfo.c.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 01:37:50 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getnameinfo): accept AddrInfo object.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (rb_check_sockaddr_string_type): defined.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rb_check_sockaddr_string_type): declared.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 22:01:15 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb: new file.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 19:33:48 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (VCSUP): fixed the cases for git-svn or git.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (VCSUP): ditto.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (up): `cd' is necessary for git and git-svn.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 19:16:16 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate a header file for generated</div><div class='add'>+	  functions.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: include constdefs.h.  don't declare</div><div class='add'>+	  generated functions.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c: include constdefs.c instead of constants.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: dependency updated.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 17:58:22 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/xmp.rb: multilingualizes XMP::StringInputMethod.</div><div class='add'>+	  [ruby-core:21383].</div><div class='add'>+</div><div class='add'>+Sat Jan 17 15:01:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c (make_inspectname): add a res argument to</div><div class='add'>+	  suppress numeric inspectname.</div><div class='add'>+	  (init_addrinfo_getaddrinfo): call make_inspectname here.</div><div class='add'>+	  (addrinfo_firstonly_new): follow make_inspectname change.</div><div class='add'>+	  (addrinfo_list_new): ditto.</div><div class='add'>+	  (addrinfo_initialize): follow init_addrinfo_getaddrinfo change.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 14:52:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: don't cause an error for duplicate names.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 12:46:17 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket: split files for each class.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h: common header.</div><div class='add'>+</div><div class='add'>+	* ext/socket/basicsocket.c: new file for BasicSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ipsocket.c: new file for IPSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/tcpsocket.c: new file for TCPSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/tcpserver.c: new file for TCPServer.</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockssocket.c: new file for SOCKSSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/udpsocket.c: new file for UDPSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: new file for UNIXSocket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixserver.c: new file for UNIXServer.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: now for Socket.</div><div class='add'>+</div><div class='add'>+	* ext/socket/raddrinfo.c: new file for AddrInfo and name resolution.</div><div class='add'>+</div><div class='add'>+	* ext/socket/constants.c: new file for constants.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.c: new file for utilities.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: export *_to_int.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add new object files.</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: add dependencies for new files.</div><div class='add'>+</div><div class='add'>+	* ext/.document: add new files.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 11:12:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_0): padding size doesn't need to be large</div><div class='add'>+	  if alloca is used.  suppress warnings.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 11:12:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (vm_stack_dump_each): initialized at declarations.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): constified to suppress a warning.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 22:30:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: move addrinfo code.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 18:51:11 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (up): tell nmake that need to run command via</div><div class='add'>+	  shell.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 18:43:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): includes all rules and expand</div><div class='add'>+	  configured values from the environment to create *.inc, sets RM</div><div class='add'>+	  for ripper.c, and needs chdir if absolute path is given with</div><div class='add'>+	  -exported option.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 18:26:47 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (VALUE): use unsigned long or long long</div><div class='add'>+	  instead of uintptr_t, since many %lx and so on are still used.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 17:33:59 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): set VCS and VCSUP to support `git svn'</div><div class='add'>+	  and git.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (up): split from common.mk.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 12:24:39 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): call ruby_cleanup() if thread is</div><div class='add'>+	  main thread.  [ruby-dev:37624]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 12:27:50 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(INSNS), node_name.inc, known_errors.inc,</div><div class='add'>+	  miniprelude.c, newline.c): if dependencies is newer than targets or</div><div class='add'>+	  targets don't exist, try to create targets with BASERUBY. no need to</div><div class='add'>+	  detect errors there because the absence of BASERUBY is not abnormal.</div><div class='add'>+	  after the try, if the targets still don't exist, copy them from</div><div class='add'>+	  $(srcdir).</div><div class='add'>+</div><div class='add'>+Fri Jan 16 12:15:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI_PTRDIFF_PREFIX): must define as string.</div><div class='add'>+	  if not, cause compile error in using PRI?VALUE.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): add SIZEOF_INTPTR_T and</div><div class='add'>+	  SIZEOF_UINTPTR_T for SIZEOF_VALUE.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 11:51:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/pre-build (COMSPEC): should not overridden.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 11:47:56 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parse_in_main): fixed typo.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 11:41:23 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): does not define rb_ prefixed</div><div class='add'>+	  name if no default type is given.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_DEFINT): checks size.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI_PTRDIFF_PREFIX, PRI_SIZE_PREFIX):</div><div class='add'>+	  assumes usable if PRIdPTR is defined.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 02:25:46 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): if signal is already</div><div class='add'>+	  buffered, main thread should wait until timer thread delivers it.</div><div class='add'>+</div><div class='add'>+	* thread.c (timer_thread_function): should defer delivery of a signal</div><div class='add'>+	  if main thread does not yet trap a previous one.  [ruby-dev:37676]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 02:05:55 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (addrinfo_s_ip): new method AddrInfo.ip.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 01:42:50 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc): as Matz said ([ruby-core:21183]),</div><div class='add'>+	  should skip rb_str_new2() if rb_sourcefile() returns NULL.</div><div class='add'>+	  rb_sourcefile() returns NULL if frame is toplevel of Fiber.</div><div class='add'>+	  [ruby-core:21161] [Bug #985]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 01:09:37 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): decrement parse_in_eval to recognize</div><div class='add'>+	  parsing main or normal eval script.</div><div class='add'>+</div><div class='add'>+	* compile.c (rb_parse_in_main): return 1 if parsing main script.</div><div class='add'>+	 (if parse_in_eval is negative value, it means main script)</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile0): check rb_parse_in_main() to accumulate</div><div class='add'>+	  script text.  Bug #848 [ruby-core:20450]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:57:34 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: as wanabe-san pointed out,</div><div class='add'>+	  set_trace_func should be completely final task in debug.rb.</div><div class='add'>+	  Bug #847 [ruby-core:20449]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:27:03 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_inc_const_missing_count, ruby_vm_const_missing_count):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h: ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0), insns.def: Constants should not be</div><div class='add'>+	  cached if const_missing is called.  [ruby-core:21059] [Bug #967]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_class.rb: add a test.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:25:09 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: btest-ruby should receive option with OPTS.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:21:10 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(INSNS), node_name.inc, known_errors.inc,</div><div class='add'>+	  miniprelude.c, newline.c): shouldn't copy when $(srcdir) != ".", too.</div><div class='add'>+	  (this is a workaround.  we need more strict check.)</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(INSNS)): shouldn't remove BASERUBY.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:19:55 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_with_gvl): suppress warnings.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 20:44:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: RUBY_REVISION must be an integer.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 15:55:31 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_set_default_encoding): should not treat US-ASCII</div><div class='add'>+	  special here.  a patch from Yui NARUSE in [ruby-dev:37769].</div><div class='add'>+	  [ruby-dev:37699]</div><div class='add'>+</div><div class='add'>+Thu Jan 15 14:27:27 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL: Added information for missing/langinfo.c</div><div class='add'>+</div><div class='add'>+Thu Jan 15 14:17:57 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): explicit error for "Object::Far += foo 1" just</div><div class='add'>+	  as "Object::Far += 1".</div><div class='add'>+</div><div class='add'>+	* parse.y (command): moved return/break/next from command_call for</div><div class='add'>+	  better error message.</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): void value check added.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 13:10:58 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (COMPILERFLAG): for enc/trans/gb18030.c.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 13:10:09 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (MISSING): added langinfo on mingw</div><div class='add'>+	  and mswin.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): use environments on mingw and mswin.</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c (nl_langinfo_codeset): MS-Windows Japanese</div><div class='add'>+	  environment uses Windows-31J derived from Shift_JIS, not EUC-JP.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 12:10:39 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(INSNS), node_name.inc, known_errors.inc,</div><div class='add'>+	  miniprelude.c, newline.c): copy only when $(srcdir) != pwd.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 11:40:44 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): revert a part of previous commit. it may be a</div><div class='add'>+	  mistake.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 10:45:52 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* symbian/README.SYMBIAN: symbian support added.  great appreciate</div><div class='add'>+	  to &lt;alexandre.zavorine at symbian.com&gt;.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 00:06:12 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/gb18030.trans: get rid of a 1.9 feature for cross</div><div class='add'>+	  compile.  [ruby-core:21345]</div><div class='add'>+</div><div class='add'>+Wed Jan 14 23:57:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): fallback to codepage if no</div><div class='add'>+	  locale is found.  [ruby-core:21110]</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c (nl_langinfo_codeset): returns NULL if no</div><div class='add'>+	  locale is found.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 22:38:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (negative_size_allocation_error_with_gvl): abolish a warning.</div><div class='add'>+	  (negative_size_allocation_error): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_raise): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 20:05:05 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/gb18030.trans, gb18030-tbl.rb:</div><div class='add'>+	  new Chinese GB18030 transcoding (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for the above</div><div class='add'>+	  (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* transcode_data.h, transcode.c, tool/transcode_tblgen.rb:</div><div class='add'>+	  added support for GB18030-specific 4-byte sequences</div><div class='add'>+	  (with Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Wed Jan 14 16:16:19 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: check ncursesw earlier than ncurses to</div><div class='add'>+	  support UTF-8 strings.  non UTF-8 strings should be converted</div><div class='add'>+	  explicitly.  [ruby-core:21094]</div><div class='add'>+</div><div class='add'>+Wed Jan 14 14:42:30 2009  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: fix prototype declare of register_stack_extend</div><div class='add'>+</div><div class='add'>+Wed Jan 14 13:19:21 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): should not escape with caret</div><div class='add'>+	  unless using cmd.exe.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 13:09:00 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (gai_strerror): checks if available and if</div><div class='add'>+	  returns const pointer.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (gai_strerror): defines only if non</div><div class='add'>+	  available.  [ruby-core:21328]</div><div class='add'>+</div><div class='add'>+Wed Jan 14 12:39:16 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_readable, rb_io_wait_writable): need rb_fd_ptr.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): reformed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): reduced nest of rb_ensure of main block.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 22:56:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h (AI_NUMERICSERV): defined.</div><div class='add'>+	  (AI_MASK): add AI_NUMERICSERV.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (getaddrinfo): support AI_NUMERICSERV.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 21:45:53 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct#inspect): fixed the recursion check.</div><div class='add'>+	  Patch by Kornelius Kalnbach.  [ruby-core:20992].</div><div class='add'>+</div><div class='add'>+	* test/ostruct/test_ostruct.rb: test for inspect.</div><div class='add'>+	  Patch by Kornelius Kalnbach.  [ruby-core:20992].</div><div class='add'>+</div><div class='add'>+Tue Jan 13 21:44:30 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen, rb_io_init_copy): should register fptr to pipe_list</div><div class='add'>+	  when copying pipe fptr.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 21:38:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (rb_getaddrinfo): use getaddrinfo with GVL if</div><div class='add'>+	  getaddrinfo.c/getnameinfo.c is used.  They are not thread safe</div><div class='add'>+	  because gethostbyname/gethostbyaddr is used.</div><div class='add'>+	  (rb_getnameinfo): ditto.</div><div class='add'>+</div><div class='add'>+	* extconf.rb: define GETADDRINFO_EMU if getaddrinfo.c/getnameinfo.c is</div><div class='add'>+	  used.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 21:28:14 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_not_match): rdoc.</div><div class='add'>+	  Patch by Kornelius Kalnbach.  [ruby-core:20991]</div><div class='add'>+</div><div class='add'>+Tue Jan 13 18:21:44 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_read): call rb_io_fptr_cleanup() instead of</div><div class='add'>+	  fptr_finalize() because the fptr has special finalizer if it is a</div><div class='add'>+	  pipe.  [ruby-dev:37757] (3)</div><div class='add'>+</div><div class='add'>+Tue Jan 13 18:19:49 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): workaround for Windows. [ruby-dev:37686]</div><div class='add'>+	  (also see [ruby-dev:37721])</div><div class='add'>+</div><div class='add'>+Tue Jan 13 17:29:02 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb (converters): should not depend on the</div><div class='add'>+	  hash order for cross compile.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 16:39:11 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, thread.c, win32/Makefile.sub (rb_fdset_t,</div><div class='add'>+	  rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr, rb_fd_isset,</div><div class='add'>+	  rb_fd_select, rb_fd_ptr, rb_fd_max, HAVE_RB_FD_INIT): new type,</div><div class='add'>+	  functions, and macros for Windows.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (extract_fd, rb_w32_select): use rb_fdset_t to expand</div><div class='add'>+	  fd_array if needed.  [ruby-core:19946]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (copy_fd): new function for rb_w32_select().</div><div class='add'>+</div><div class='add'>+Tue Jan 13 12:31:54 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (get_revisions): fixes problem with</div><div class='add'>+	  svn on cygwin. [ruby-dev:37702].</div><div class='add'>+	  Patch by Kouhei Sutou.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 11:58:04 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb: IRB did not prompt for MSwin32.</div><div class='add'>+	  [ruby-dev:37686].</div><div class='add'>+	  Patch by arton &lt;artonx AT yahoo.co.jp&gt;.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 12:10:42 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/{getaddrinfo,getnameinfo}.c: need to include ws2tcpip.h</div><div class='add'>+	  on Windows.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 09:49:49 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: removed warning about unused variable 'rai'.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 03:07:28 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: require "tool/mdoc2man.rb" before chdir if needed.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 02:54:54 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: use headers instead of "netdb.h" in checking</div><div class='add'>+	  getnameinfo() and getaddrinfo() because Windows doesn't have it.</div><div class='add'>+	  [ruby-dev:37757] (1)</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h (SA_LEN): use sockaddr_in6 when defined AF_INET6</div><div class='add'>+	  if INET6 is not defined.  winsock2's getaddrinfo() returns</div><div class='add'>+	  sockaddr_in6 if ipv6 is available.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 02:21:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (internal_cmd_match): extracted from</div><div class='add'>+	  is_internal_cmd.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (argv_size, join_argv): escapes redirection, pipe</div><div class='add'>+	  and caret punctuations with carets.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): ditto, and redirections and pipe</div><div class='add'>+	  have no meanings.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 02:07:38 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: use Encoding.find("locale") instead of</div><div class='add'>+	  Encoding.locale_charmap</div><div class='add'>+</div><div class='add'>+Tue Jan 13 00:57:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): check too short</div><div class='add'>+	  sockaddr.</div><div class='add'>+	  (sock_s_unpack_sockaddr_un): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 23:55:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (addrinfo_ip_unpack): new method</div><div class='add'>+	  AddrInfo#ip_unpack.</div><div class='add'>+	  (addrinfo_unix_path): new method AddrInfo#unix_path.</div><div class='add'>+	  (Init_socket): define above methods.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 23:31:42 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (IS_IP_FAMILY): defined.</div><div class='add'>+	  (addrinfo_ip_p): use it.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 17:23:05 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_nothing_raised): removes the</div><div class='add'>+	  current trace to get rid of an issue of MiniTest::Unit#location.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 16:49:20 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install): erased a garbage.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 16:45:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (open_dir_handle): extracted from rb_w32_opendir.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (winnt_stat): gets rid of strange behavior of</div><div class='add'>+	  GetFileAttributes().  [ruby-core:21269]</div><div class='add'>+</div><div class='add'>+Mon Jan 12 12:43:55 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args, install): added --strip option.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): skips the directory if matched</div><div class='add'>+	  to a no_install pattern ending with a file separator.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 12:33:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: don't use bytesize because 1.9 dependent.</div><div class='add'>+	  [ruby-core:21266]</div><div class='add'>+</div><div class='add'>+Mon Jan 12 11:59:19 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc, ruby_xrealloc, ruby_xfree):</div><div class='add'>+	  enable to use them without GVL.</div><div class='add'>+	  if GC is invoked, acquire GVL during GC.</div><div class='add'>+	  if NoMemoryError is raised, acquire GVL and raise it.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 10:39:19 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: fix comment (terminology: Global VM Lock).</div><div class='add'>+</div><div class='add'>+	* thread.c (blocking_region_begin, blocking_region_end):</div><div class='add'>+	  save and clear th-&gt;blocking_region_buffer.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_call_with_gvl): check if it has GVL.</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_thread_has_gvl_p): added.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: add decls.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 10:21:11 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove unused decl.</div><div class='add'>+</div><div class='add'>+Sun Jan 11 16:53:14 2009  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (PercentScanner): remove PercentScanner. fixed % after</div><div class='add'>+	  %&gt; bug. [ruby-dev:37751] [Bug #997]</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun Jan 11 09:53:01 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (c_str): get rid of a 1.9 feature for</div><div class='add'>+	  cross compile.  [ruby-core:21243]</div><div class='add'>+</div><div class='add'>+Sun Jan 11 09:47:30 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): set nil as the value if assoc length</div><div class='add'>+	  is not enough.  [ruby-core:21249]</div><div class='add'>+</div><div class='add'>+Sat Jan 10 21:17:28 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: don't generate unintended newlines.</div><div class='add'>+</div><div class='add'>+Sat Jan 10 20:50:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: refactored to nest properly in statically</div><div class='add'>+	  and dynamically.</div><div class='add'>+</div><div class='add'>+Sat Jan 10 20:26:17 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: make version string succinct:</div><div class='add'>+	  "ruby 1.9.1p5000 (2009-01-10 trunk 21414) [i686-linux]".</div><div class='add'>+</div><div class='add'>+Sat Jan 10 19:05:13 2009  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1): should not be inlined.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 21:52:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_define_const): use INT2NUM.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 15:40:07 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: define macro if default_value is passed.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 13:20:08 2009  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: rescue abnormal Encoding.locale_charmap value.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 12:29:46 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (test-sample), rubytest.rb: use runruby.rb</div><div class='add'>+</div><div class='add'>+Fri Jan  9 10:40:52 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess::MANDATORY_ENVS): some</div><div class='add'>+	  platforms need environments for shared objects.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 23:19:38 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_shutdown): accept symbol/string as how.</div><div class='add'>+	  (shutdown_how_arg): new function.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate shutdown_how_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 23:16:37 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: easy code contains fewer bugs.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 22:59:30 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (gen_name_to_int_func): generate</div><div class='add'>+	  name_to_int functions, not only body.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 22:44:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: don't use AI_NUMERICSERV for platforms which</div><div class='add'>+	  not define it as old Windows.</div><div class='add'>+	  [ruby-dev:37736]</div><div class='add'>+</div><div class='add'>+Thu Jan  8 17:32:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: should not depend on a library which does not exist</div><div class='add'>+	  in 1.8.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 07:52:55 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_unix_addrinfo): don't return a value.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 07:30:52 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.redirectable?): reverted https redirection.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 00:31:58 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_no_match): don't count up as two</div><div class='add'>+	  assertions.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 00:26:35 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (addrinfo_getnameinfo): use NI_DGRAM if socktype</div><div class='add'>+	  is SOCK_DGRAM.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 00:16:22 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (host_str): add flags_ptr argument to specify</div><div class='add'>+	  AI_NUMERICHOST if host is numeric form.</div><div class='add'>+	  (port_str): add flags_ptr argument to specify AI_NUMERICSERV if port</div><div class='add'>+	  is numeric form.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 22:24:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (rb_cAddrInfo): new class AddrInfo.</div><div class='add'>+	  (s_recvfrom): return AddrInfo as address.</div><div class='add'>+	  (s_recvfrom_nonblock): ditto.</div><div class='add'>+	  (sock_accept): ditto.</div><div class='add'>+	  (sock_accept_nonblock): ditto.</div><div class='add'>+	  (sock_sysaccept): ditto.</div><div class='add'>+	  (bsock_send): accept AddrInfo as address argument.</div><div class='add'>+	  (sock_connect): ditto.</div><div class='add'>+	  (sock_connect_nonblock): ditto.</div><div class='add'>+	  (sock_bind): ditto.</div><div class='add'>+	  (sock_s_unpack_sockaddr_in): ditto.</div><div class='add'>+	  (sock_s_unpack_sockaddr_un): ditto.</div><div class='add'>+	  (bsock_local_address): new method BasicSocket#local_address.</div><div class='add'>+	  (bsock_remote_address): new method BasicSocket#remote_address.</div><div class='add'>+	  (addrinfo_initialize): new method AddrInfo#initialize.</div><div class='add'>+	  (addrinfo_inspect): new method AddrInfo#inspect.</div><div class='add'>+	  (addrinfo_afamily): new method AddrInfo#afamily.</div><div class='add'>+	  (addrinfo_pfamily): new method AddrInfo#pfamily.</div><div class='add'>+	  (addrinfo_socktype): new method AddrInfo#socktype.</div><div class='add'>+	  (addrinfo_protocol): new method AddrInfo#protocol.</div><div class='add'>+	  (addrinfo_to_sockaddr): new method AddrInfo#to_sockaddr.</div><div class='add'>+	  (addrinfo_canonname): new method AddrInfo#canonname.</div><div class='add'>+	  (addrinfo_ip_p): new method AddrInfo#ip?.</div><div class='add'>+	  (addrinfo_ipv4_p): new method AddrInfo#ipv4?.</div><div class='add'>+	  (addrinfo_ipv6_p): new method AddrInfo#ipv6?.</div><div class='add'>+	  (addrinfo_unix_p): new method AddrInfo#unix?.</div><div class='add'>+	  (addrinfo_getnameinfo): new method AddrInfo#getnameinfo.</div><div class='add'>+	  (addrinfo_s_getaddrinfo): new method AddrInfo.getaddrinfo.</div><div class='add'>+	  (addrinfo_s_tcp): new method AddrInfo.tcp.</div><div class='add'>+	  (addrinfo_s_udp): new method AddrInfo.udp.</div><div class='add'>+	  (addrinfo_s_unix): new method AddrInfo.unix.</div><div class='add'>+	  (Init_socket): define new class and methods.</div><div class='add'>+	  (sock_getaddrinfo): apply socktype hack regardless of ai_flags.</div><div class='add'>+	  (addrinfo_new): defined.</div><div class='add'>+	  (get_afamily): ditto.</div><div class='add'>+	  (fd_socket_addrinfo): ditto.</div><div class='add'>+	  (io_socket_addrinfo): ditto.</div><div class='add'>+	  (SockAddrStringValue): ditto.</div><div class='add'>+	  (SockAddrStringValuePtr): ditto.</div><div class='add'>+	  (sockaddr_string_value): ditto.</div><div class='add'>+	  (sockaddr_string_value_ptr): ditto.</div><div class='add'>+	  (rb_addrinfo_t): ditto.</div><div class='add'>+	  (addrinfo_mark): ditto.</div><div class='add'>+	  (addrinfo_free): ditto.</div><div class='add'>+	  (addrinfo_s_allocate): ditto.</div><div class='add'>+	  (IS_ADDRINFO): ditto.</div><div class='add'>+	  (check_addrinfo): ditto.</div><div class='add'>+	  (get_addrinfo): ditto.</div><div class='add'>+	  (alloc_addrinfo): ditto.</div><div class='add'>+	  (init_addrinfo): ditto.</div><div class='add'>+	  (addrinfo_new): ditto.</div><div class='add'>+	  (call_getaddrinfo): ditto.</div><div class='add'>+	  (init_addrinfo_getaddrinfo): ditto.</div><div class='add'>+	  (make_inspectname): ditto.</div><div class='add'>+	  (addrinfo_firstonly_new): ditto.</div><div class='add'>+	  (addrinfo_list_new): ditto.</div><div class='add'>+	  (init_unix_addrinfo): ditto.</div><div class='add'>+	  (ai_get_afamily): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate intern_protocol_family,</div><div class='add'>+	  intern_socktype and intern_ipproto.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:37692]</div><div class='add'>+</div><div class='add'>+Wed Jan  7 22:13:03 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (man, gem): fixed errors.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 17:14:40 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: use installed libraries.  [ruby-core:21006]</div><div class='add'>+</div><div class='add'>+	* instruby.rb (gem), lib/rubygems/defaults.rb (Gem.default_dir):</div><div class='add'>+	  use version invariant configuration.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 19:09:51 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_0): streamlined to ensure O(1) time.  based on</div><div class='add'>+	  a patch by Brent Roman &lt;brent AT mbari.org&gt;.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 00:34:25 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_close_before_exec): more heuristics to detect maximum fd.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 17:59:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (cygwin): needs properly implemented nl_langinfo().</div><div class='add'>+	  [ruby-core:21110]</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c: added as suggested at [ruby-core:21015], from</div><div class='add'>+	  http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.</div><div class='add'>+</div><div class='add'>+	* missing/langinfo.c (nl_langinfo_0): fixed typos for SJIS.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 17:38:40 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): use GetConsoleCP() instead of</div><div class='add'>+	  GetACP() because external encoding should be console's one.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): use GetOEMCP() instead of</div><div class='add'>+	  GetACP() because VFAT/FAT32 uses OEM CP.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 16:26:48 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): use ANSI codepage for file</div><div class='add'>+	  system on cygwin.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): reverted.  [ruby-core:21110]</div><div class='add'>+</div><div class='add'>+Mon Jan  5 16:15:00 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (free_window): use xfree instead of free.</div><div class='add'>+	  [ruby-dev:37200]</div><div class='add'>+</div><div class='add'>+Mon Jan  5 15:49:45 2009  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (rb_gdbm_fetch): remove needless cast.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 12:52:08 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): use user profile folder than personal</div><div class='add'>+	  folder.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 08:41:13 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_stat): need type check for non string values.</div><div class='add'>+	  [ruby-dev:37673]  fix: #964</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_size, rb_file_s_atime, rb_file_s_mtime,</div><div class='add'>+	  rb_file_s_ctime, rb_f_test): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 08:17:56 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): should not add up errors on loops.</div><div class='add'>+	  [ruby-dev:37691]</div><div class='add'>+</div><div class='add'>+Mon Jan  5 07:58:37 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_srand): update RDoc.  [ruby-core:21113]</div><div class='add'>+</div><div class='add'>+Mon Jan  5 06:39:56 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_max): max value from ... not defined for non</div><div class='add'>+	  Integer Numeric end values. [ruby-dev:37690] fix: #974</div><div class='add'>+</div><div class='add'>+Sun Jan  4 22:37:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (rb_getaddrinfo): defined for address lookup without GVL.</div><div class='add'>+	  (struct getaddrinfo_arg): defined.</div><div class='add'>+	  (nogvl_getaddrinfo): defined.</div><div class='add'>+	  (rb_getnameinfo): defined for name lookup without GVL.</div><div class='add'>+	  (getnameinfo_arg): defined.</div><div class='add'>+	  (nogvl_getnameinfo): defined.</div><div class='add'>+</div><div class='add'>+Sun Jan  4 18:10:10 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/gbk.trans, gbk-tbl.rb:</div><div class='add'>+	  new Chinese GBK transcoding (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for the above</div><div class='add'>+	  (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Sun Jan  4 17:55:55 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for GB2312</div><div class='add'>+	  (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* enc/trans/chinese.trans: set valid byte patterns for</div><div class='add'>+	  GB2312 and GB12345</div><div class='add'>+</div><div class='add'>+Sun Jan  4 17:39:39 2009  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/big5.trans, big5-tbl.rb:</div><div class='add'>+	  new Chinese Big5 transcoding (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests for the above</div><div class='add'>+	  (from Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Sun Jan  4 17:07:45 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem.set_home, Gem.set_paths): should not create</div><div class='add'>+	  directories stealthily.  [ruby-core:20990]</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem.find_home): expand_path deals with platform</div><div class='add'>+	  dependent environments.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::HOMEDIR): ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (gem): creates gem directories at installation.</div><div class='add'>+</div><div class='add'>+Sun Jan  4 15:41:37 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding, rb_locale_charmap): uses</div><div class='add'>+	  codepage on cygwin.  [ruby-core:20994]</div><div class='add'>+</div><div class='add'>+Sun Jan  4 11:58:43 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (ruby_float_step): extracted from num_step().</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): uses ruby_float_step() for float range.</div><div class='add'>+	  [ruby-dev:37691]</div><div class='add'>+</div><div class='add'>+Sun Jan  4 11:11:31 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): does not use both of makefile.rb and</div><div class='add'>+	  extconf.rb at the same time.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (DLLIB): depends on Makefile.  [ruby-core:21096]</div><div class='add'>+</div><div class='add'>+Sun Jan  4 09:27:41 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (constant_arg): constified.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (optname_arg): cygwin does not have</div><div class='add'>+	  IPPROTO_IPV6.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (ipv6_optname_to_int): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan  4 04:33:14 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: redundant #ifdef removed.</div><div class='add'>+</div><div class='add'>+Sun Jan  4 03:30:18 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (maygvl_copy_stream_wait_read): renamed to add prefix to</div><div class='add'>+	  express GVL state.</div><div class='add'>+	  (nogvl_copy_stream_wait_write): ditto.</div><div class='add'>+	  (nogvl_copy_stream_sendfile): ditto.</div><div class='add'>+	  (maygvl_copy_stream_read): ditto.</div><div class='add'>+	  (nogvl_copy_stream_write): ditto.</div><div class='add'>+	  (nogvl_copy_stream_read_write): ditto.</div><div class='add'>+	  (nogvl_copy_stream_func): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan  4 00:30:50 2009  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: merged r20850, r17881, r16811, r16763, r16748, r15829,</div><div class='add'>+	  r15794 and r15698 from ruby_1_8.</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  3 22:24:36 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in, win32/Makefile.sub (INSNS): move the macro</div><div class='add'>+	  definition from common.mk to {Makefile.in,win32/Makefile.sub}.</div><div class='add'>+	  [ruby-dev:37678]</div><div class='add'>+</div><div class='add'>+Sat Jan  3 15:30:09 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/chinese.trans: added for transcoding EUC-CN and GB12345.</div><div class='add'>+</div><div class='add'>+	* enc/trans/GB/: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  3 15:26:30 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/euc-cn.c: renamed from gb2312.c because GB2312 is</div><div class='add'>+	  the name of a CSS.  it's encoding name is "EUC-CN".</div><div class='add'>+</div><div class='add'>+Sat Jan  3 03:00:42 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in, win32/Makefile.sub ($(INSNS), node_name.inc,</div><div class='add'>+	  known_errors.inc, miniprelude.c, newline.c): move rules from common.mk</div><div class='add'>+	  to {Makefile.in,win32/Makefile.sub} for nmake.</div><div class='add'>+	  [ruby-core:20993]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 23:51:41 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sleep.rb (test_sleep_5sec): stop gc.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 23:36:10 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: don't apply socktype hack [ruby-core:184] for</div><div class='add'>+	  sock_s_getaddrinfo.</div><div class='add'>+	  (sock_getaddrinfo): add socktype_hack argument.</div><div class='add'>+	  (sock_addrinfo): call sock_getaddrinfo with socktype_hack.</div><div class='add'>+	  (sock_s_getaddrinfo): call sock_getaddrinfo without socktype_hack.</div><div class='add'>+	  [ruby-dev:37674]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 23:33:38 2009  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h, sprintf.c: get rid of a warning of VC++.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 22:25:46 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: use sigaction instead of sigset.  [ruby-core:21021]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 22:22:04 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: suppress error message.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 22:20:46 2009  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_wait_and_sigchild): remove debug</div><div class='add'>+	  output.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 17:45:19 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: rename family_to_str to intern_family.</div><div class='add'>+	  it returns ID now.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): use intern_family.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 17:20:31 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use ID in the values of</div><div class='add'>+	  family_to_str_hash.  family_to_str returns a VALUE.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): follow family_to_str change.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 17:01:51 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: refactored to gather stringizer</div><div class='add'>+	  description.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 15:30:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: make common prefix optional.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 14:59:52 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use hash for family_to_str to avoid</div><div class='add'>+	  linear search.  lenp argument removed.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): call family_to_str without lenp</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 14:33:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (gen_int_to_name): don't compare constants</div><div class='add'>+	  in preprocessor because the constants may be enum.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 14:11:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (gen_int_to_name): add lenp argument.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): follow argument change.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 10:20:24 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb: fix documentation. [ruby-core:21038]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 06:43:58 2009  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_signal_buff_size): defined for check whether signal</div><div class='add'>+	  is in the buffer or not.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): don't exit the loop when signal</div><div class='add'>+	  is in the buffer. [ruby-dev:37637]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 04:40:00 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: check duplicates.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 02:39:08 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (optname_arg): defined.</div><div class='add'>+	  (bsock_setsockopt): use optname_arg.</div><div class='add'>+	  (bsock_getsockopt): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate so_optname_to_int,</div><div class='add'>+	  ip_optname_to_int, ipv6_optname_to_int, tcp_optname_to_int and</div><div class='add'>+	  udp_optname_to_int.</div><div class='add'>+	  more constants.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 02:08:36 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (constant_arg): extracted from family_arg.</div><div class='add'>+	  (family_arg): use constant_arg.</div><div class='add'>+	  (socktype_arg): ditto.</div><div class='add'>+	  (level_arg): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 01:15:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (level_arg): defined.</div><div class='add'>+	  (bsock_setsockopt): use level_arg.</div><div class='add'>+	  (bsock_getsockopt): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate level_to_int.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 00:58:40 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (family_arg): accept symbols as well.</div><div class='add'>+	  (socktype_arg): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 00:49:44 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo): use socktype_arg.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 00:12:27 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (family_arg): extracted from</div><div class='add'>+	  setup_domain_and_type.</div><div class='add'>+	  (socktype_arg): ditto.</div><div class='add'>+	  (udp_init): use family_arg.</div><div class='add'>+	  (sock_s_gethostbyaddr): ditto.</div><div class='add'>+	  (sock_s_getaddrinfo): ditto.</div><div class='add'>+	  (sock_s_getnameinfo): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 22:27:55 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: fix for builddir != srcdir</div><div class='add'>+</div><div class='add'>+	* Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 21:26:05 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getnameinfo): use family_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 21:08:34 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: check all alias possibility.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 20:59:55 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: more possible aliases.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 20:54:02 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: AF_ISO and AF_OSI may be aliased.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 20:50:09 2009  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (before_exec): it makes no sense for a conditional</div><div class='add'>+	  expression to return a void value.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 20:47:09 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo): use family_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 20:17:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: include constants.h at top.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 19:53:33 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add valp argument for family_to_int and</div><div class='add'>+	  socktype_to_int.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setup_domain_and_type): use valp argument.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 19:36:57 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate family_to_str.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): use family_to_str.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 17:37:12 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate socktype_to_int.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setup_domain_and_type): use socktype_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 17:26:47 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setup_domain_and_type): initialize ptr.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 17:01:50 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: refine family_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 16:48:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate family_to_int().</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setup_domain_and_type): use family_to_int.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 15:08:46 2009  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: supports git repositories which are cloned</div><div class='add'>+	  from a git-svn gateway.</div><div class='add'>+	  Patch by Hongli Lai. [ruby-core:21020]</div><div class='add'>+</div><div class='add'>+Thu Jan  1 16:08:11 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: generate init_constants function.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): call init_constants.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 16:03:04 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb (Socket::AF_INET6): moved from socket.c.</div><div class='add'>+	  (Socket::PF_INET6): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 15:27:07 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use erb.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 15:07:56 2009  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add -o option.</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: use mkconstants.rb with -o option.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 07:42:36 2009  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb: fix indentation of RDoc text.  [ruby-core:21029]</div><div class='add'>+</div><div class='add'>+Thu Jan  1 07:16:44 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (distclean-ext, realclean-ext): use EXTS as default.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (distclean-ext, realclean-ext): try to remove ext</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+Thu Jan  1 06:56:28 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: unset PWD.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 23:37:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_socketpair): yield if a block is given.</div><div class='add'>+	  (io_call_close): defined.</div><div class='add'>+	  (io_close): defined.</div><div class='add'>+	  (pair_yield): defined.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 19:35:57 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/README: follows the change of directory structure in rubyspec.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: ditto. Also follows change of mspec command.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 17:16:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): show openssl error</div><div class='add'>+	  code in EWOULDBLOCK error.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 15:45:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body): don't check to_io because</div><div class='add'>+	  Zlib::GzipWriter#to_io returns the underlying IO.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 14:52:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c (GetDigestPtr): use StringValueCStr</div><div class='add'>+	  instead of STR2CSTR.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize): ditto.</div><div class='add'>+	  (ossl_ec_group_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 14:12:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_float): replaced by to_flo definition from</div><div class='add'>+	  math.c  [ruby-dev:37668]</div><div class='add'>+</div><div class='add'>+	* math.c (Need_Float): use rb_to_float().</div><div class='add'>+</div><div class='add'>+Wed Dec 31 13:49:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#read_nonblock):</div><div class='add'>+	  implemented.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (rb_sys_fail_path): removed.</div><div class='add'>+	  (fcntl.h): don't include.</div><div class='add'>+	  (ossl_ssl_read_internal): defined.</div><div class='add'>+	  (ossl_ssl_read): use ossl_ssl_read_internal.</div><div class='add'>+	  (ossl_ssl_read_nonblock): use ossl_ssl_read_internal.</div><div class='add'>+	  (Init_ossl_ssl): define sysread_nonblock, instead of read_nonblock.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 00:27:54 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_float): prohibit conversion from nil to float.</div><div class='add'>+	  [ruby-dev:37663]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): replace all rb_Float() to rb_to_float().</div><div class='add'>+	  [ruby-dev:37663]</div><div class='add'>+</div><div class='add'>+Tue Dec 30 21:17:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_*</div><div class='add'>+	  constants because Socket::INADDR_LOOPBACK should be 0x7f000001</div><div class='add'>+	  instead of -0xffffff.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_define_uconst): defined.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 18:23:10 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.3.1 r4506.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 17:59:59 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: Minor fixes and tweaks in documentation.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 17:03:51 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_import.rb: fix a prototype decl.</div><div class='add'>+	  pointed out by Takehiro Kubo [ruby-core:20971].</div><div class='add'>+</div><div class='add'>+Tue Dec 30 16:56:09 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): add a comment.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_call_without_gvl): added as a alias of</div><div class='add'>+	  rb_thread_blocking_region().</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_call_with_gvl): added.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_t#blocking_region_buffer): added for</div><div class='add'>+	  rb_thread_call_with_gvl().</div><div class='add'>+</div><div class='add'>+Mon Dec 29 23:41:42 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_base.rb: add libc search logic.</div><div class='add'>+	  this patch is written by Takehiro Kubo.</div><div class='add'>+	  [ruby-core:20963] [Bug #932]</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h: Add ",..." as the last argument.</div><div class='add'>+	  this patch is written by Takehiro Kubo.</div><div class='add'>+	  Bug #633 [ruby-core:19289]</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/stack.rb: add add_padding() to calculate</div><div class='add'>+	  alignment.  this patch is written by Takehiro Kubo.</div><div class='add'>+	  Bug #633 [ruby-core:19289]</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_func.rb: atof()'s return value is double.</div><div class='add'>+	  this patch is written by Takehiro Kubo.</div><div class='add'>+	  Bug #633 [ruby-core:19289]</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_import.rb:</div><div class='add'>+	  - atof()'s return value is double.</div><div class='add'>+	  - The types of qsort's second and third argument are size_t.</div><div class='add'>+	  - fprintf()'s return value is int.</div><div class='add'>+	  this patch is written by Takehiro Kubo.</div><div class='add'>+	  Bug #633 [ruby-core:19289]</div><div class='add'>+</div><div class='add'>+Mon Dec 29 22:37:17 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): retries waitpid when EINTR.</div><div class='add'>+	  [ruby-core:19744].</div><div class='add'>+</div><div class='add'>+Mon Dec 29 23:18:52 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): changed an error message.</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_strict): ditto.</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_strict): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 22:37:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): template f should not accept non float</div><div class='add'>+	  values.  [ruby-dev:37656]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_float): new function to type check floats.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 22:27:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): type check simplified.  strings are no</div><div class='add'>+	  longer allowed for argument.  [ruby-dev:37655]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.rb (TestRand::o.to_int): need override</div><div class='add'>+	  to_int.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 21:22:31 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: Infinity.numerator returns self. [experimental]</div><div class='add'>+</div><div class='add'>+	* numeric.c: Infinity.denominator returns 1. [experimental]</div><div class='add'>+</div><div class='add'>+Mon Dec 29 20:57:14 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/ri.1: new manpage.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 20:45:25 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: floor, ceil, truncate and round accept an extra</div><div class='add'>+	  argument like Float#round. [experimental]</div><div class='add'>+</div><div class='add'>+Mon Dec 29 18:24:49 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (distclean-local): removes Doxyfile and</div><div class='add'>+	  run.gdb at distclean'ing.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 17:53:24 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb: accepts options in more flexible styles.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 17:25:17 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB): m17n of ERB. adds rdoc.</div><div class='add'>+	  fixes #712. c.f. [ruby-dev:37516].</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler#compile): recognizes magic comments.</div><div class='add'>+	  returns a pair of compiled script and its script encoding.</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB#set_eoutvar): make generated scripts return a</div><div class='add'>+	  string in correct encoding.</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB#def_method): use Kernel#eval for encoding-awareness</div><div class='add'>+	  of the evaluated string.</div><div class='add'>+</div><div class='add'>+	* bin/erb.rb (ERB::Main.run): adds -E and -U options.</div><div class='add'>+	  String is no longer Enumerable.</div><div class='add'>+</div><div class='add'>+	* man/erb.1: new manpage.</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb_m17n.rb: new test case for m17n features.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 18:02:45 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (io_nread): returns number of bytes available</div><div class='add'>+	  for read.  response to feature request #936 in [ruby-core:20917].</div><div class='add'>+</div><div class='add'>+Mon Dec 29 17:52:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (io_ready_p): updated to follow RDoc.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 16:52:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom_nonblock): revert r21162.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 16:16:20 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_set_eval_stack, vm_set_main_stack, vm_set_top_stack):</div><div class='add'>+	  check stack overflow.  [ruby-dev:37646]</div><div class='add'>+</div><div class='add'>+Sun Dec 28 18:36:33 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_command.rb</div><div class='add'>+	  (test_add_option_overlapping_common_and_local_options):</div><div class='add'>+	  follows r21066.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 14:50:19 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (ext-clean): ext-clean always fails.</div><div class='add'>+</div><div class='add'>+	* ext/dl/ripper/extconf.rb: adds y.output into the clean list.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 11:58:39 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_trylock): return false if Mutex owned</div><div class='add'>+	  by current thread.  [ruby-core:20943]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_lock): check dead lock (recursive lock) here.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: add a test.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 10:58:54 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): move encoding conversion of file path</div><div class='add'>+	  from rb_scan_open_args.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 07:15:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: small RDoc fix mentioned from &lt;radek.bulat at gmail.com&gt;</div><div class='add'>+	  in [ruby-core:20921].</div><div class='add'>+</div><div class='add'>+Mon Dec 29 03:43:25 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set th-&gt;base_block only while</div><div class='add'>+	  it is needed.  [ruby-dev:37634] [Bug #939]</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): clear th-&gt;base_block before</div><div class='add'>+	  require libraries.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 21:33:52 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ext/dl/test_base.rb: add BSD's case.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 21:09:12 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb (DL::Importer#sizeof): follows</div><div class='add'>+	  a feature change in 1.9.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 21:03:07 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb (DL::Importer#extern): adds filename and</div><div class='add'>+	  line number to module_eval'ing for readability of backtrace.</div><div class='add'>+	  (DL::Importer#bind): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/struct.rb (DL::CStructBuilder#create): ditto.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 19:11:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): do not use snprintf/vsnprintf in</div><div class='add'>+	  msvcrt.</div><div class='add'>+</div><div class='add'>+	* sprintf.c: not force to override snprintf/vsnprintf.</div><div class='add'>+	  [ruby-core:20824]</div><div class='add'>+</div><div class='add'>+Sun Dec 28 17:21:36 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_ext_configure_builder.rb (test_self_build_fail):</div><div class='add'>+	  Extends pattern for FreeBSD's error message.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 17:10:13 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_dl2.rb: modify strncpy, strcpy, qsort, types.</div><div class='add'>+	  Patch by Takehiro Kubo.</div><div class='add'>+	  Bug #633 [ruby-core:19289]</div><div class='add'>+	* ext/dl/test/test_base.rb: /lib/libc.so is x86_64 binary in x86_64 architecture.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 12:53:10 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_base.rb: use libc.dylib when the platform is darwin.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 12:24:14 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_free, mutex_unlock): add qualifiers.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 10:28:04 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_free): GC thread (main thread) has failed to unlock</div><div class='add'>+	  a mutex that is locked by another thread, which makes the mutex</div><div class='add'>+	  dangling in keeping_mutexes and causes [BUG] or stuck finally.</div><div class='add'>+	  Now unlocking is performed as locking thread.</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_unlock, rb_mutex_unlock, rb_mutex_unlock_all):</div><div class='add'>+	  mutex_unlock receives a thread.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 05:44:44 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 1.3.1 r4505.</div><div class='add'>+	* test/minitest/*.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 00:43:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: refactored to modify ENV as once.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 22:41:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_info_formatting.rb (setup, teardown): uses</div><div class='add'>+	  mktmpdir and removes it after the test.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_session.rb (setup, teardown): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 21:46:10 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_base.rb: use lib64 when the architecture is x86_64.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 20:26:59 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_argv_size): if an argument is empty, it's size</div><div class='add'>+	  is 2, not 0, because it will be converted to "".</div><div class='add'>+</div><div class='add'>+Sat Dec 27 19:40:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (after_exec): needs to reset before restart timer</div><div class='add'>+	  thread.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): stops timer thread if forked in</div><div class='add'>+	  the new thread.   [ruby-core:19385]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork, rb_thread_atfork_before_exec): DRY.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 18:25:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_f_loop): return enumerator if no block given.</div><div class='add'>+	  [ruby-list:45747]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 17:08:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (dummy_gdb_enums.special_consts): forces to load debug</div><div class='add'>+	  info on Mac OS X.</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): added T_ZOMBIE.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 16:18:02 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_frame_callee, rb_frame_caller): rb_frame_callee()</div><div class='add'>+	  should return method id on current frame.</div><div class='add'>+	  add rb_frame_caller() to get method id on parent frame.</div><div class='add'>+	  Bug #884 [ruby-dev:37446]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_method_name): use rb_frame_caller()</div><div class='add'>+	  instead of rb_frame_callee().</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:28:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): show source and destination</div><div class='add'>+	  encoding.  [ruby-dev:37285]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:23:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_with_cfunc): rename parameter name</div><div class='add'>+	  "blockptr" to "blockargptr".</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:15:56 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (revision.h): ignores failure of file2lastrev.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:02:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): fix to untouch th-&gt;mild_compile_error.</div><div class='add'>+	  [ruby-dev:37621], [ruby-dev:37620]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 14:48:26 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.h, iseq.c (rb_iseq_new_main): add a type ISEQ_TYPE_MAIN.</div><div class='add'>+	  [ruby-dev:37619]</div><div class='add'>+</div><div class='add'>+	* compile.c (rb_dvar_defined, ruby_iseq_compile): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_data_to_ary, iseq_load): ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix to check ip-&gt;compile_data.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 14:29:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.redirectable?): permit https redirection.</div><div class='add'>+	  patch from Roman Shterenzon.  [ruby-core:20485]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 13:36:55 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (get_errinfo): return th-&gt;errinfo value</div><div class='add'>+	  if normal errinfo place (dynamic local variable) is not found.</div><div class='add'>+	  fixes Bug #732 [ruby-dev:37046].</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 13:10:43 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/irb.1: adds -v, -h, -E and -U.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 11:41:45 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method, vm_call_cfunc): use original id instead of</div><div class='add'>+	  calling id when NODE_CFUNC or NODE_BMETHOD.</div><div class='add'>+	  fixes Bug #632 [ruby-core:19282].</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0, vm_call_super): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method, rb_alias): store original id</div><div class='add'>+	  in nd_file field of NODE_METHOD.</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 09:48:54 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): create and define TOPLEVEL_BINDING at first.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_set_main_stack, rb_iseq_eval_main): added.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_compile_file): fix to check parse_in_eval flag.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_node): use rb_iseq_eval_main()</div><div class='add'>+	  instead of rb_iseq_eval().</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_new_main), vm_core.h: added.</div><div class='add'>+	  main script (specified by -e or script name) should be run</div><div class='add'>+	  under TOPLEVEL_BINDING using Kernel#eval.  Above changes</div><div class='add'>+	  simulate Kernel#eval behaviour.  [ruby-dev:37240]</div><div class='add'>+</div><div class='add'>+	* compile.c (make_name_for_block): skip iseq except block type.</div><div class='add'>+	  this fix is needed for [ruby-dev:37240], and also fixes</div><div class='add'>+	  [ruby-dev:35392].</div><div class='add'>+</div><div class='add'>+Sat Dec 27 09:14:17 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: rdoc for Fiber. patch by Muhammad Ali.</div><div class='add'>+	  [ruby-core:20894]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 05:38:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (after_fork): ignores a termination request in the</div><div class='add'>+	  parent process.  [ruby-dev:37447]</div><div class='add'>+</div><div class='add'>+Sat Dec 27 01:52:39 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Using a more robust transcoding scheme to produce</div><div class='add'>+	  ASCII compatible inspect() messages.  [ruby-dev:37591]</div><div class='add'>+</div><div class='add'>+Fri Dec 26 18:04:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): don't allocate objects if noraise.</div><div class='add'>+	  (finish_writeconv): add noalloc argument to be able to avoid</div><div class='add'>+	  object allocation.</div><div class='add'>+	  (finish_writeconv_arg): introduced again.</div><div class='add'>+	  (finish_writeconv_sync): follow the above change.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 17:04:14 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb (IRB::StdioInputMethod#initialize):</div><div class='add'>+	  removed a 'p' for debugging.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 15:50:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::List#summarize): gives priority</div><div class='add'>+	  to latter switches.  [ruby-dev:36692]</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#summarize): do not append</div><div class='add'>+	  unnecessary line terminator.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 14:01:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): close the IO object even if finish_writeconv or</div><div class='add'>+	  flush is failed.</div><div class='add'>+	  (finish_writeconv): don't raise.  return errno or exception.</div><div class='add'>+	  (finish_writeconv_arg): removed.</div><div class='add'>+	  (finish_writeconv_sync): follow finish_writeconv change.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_make_exception): new function.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_make_exception): declared.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 20:57:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): set encoding when String#encode was</div><div class='add'>+	  given explicit but the same destination and source encoding.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 20:01:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): unused variable removed.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 19:35:51 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (sym_ignore): remove useless symbol.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 18:36:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_close): removed.</div><div class='add'>+	  (pipe_yield): defined.</div><div class='add'>+	  (rb_io_s_pipe): use pipe_yield.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 17:49:45 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (decorate_convpath): show type of escaping for</div><div class='add'>+	  xml_attr_quote or some conversions.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 17:06:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): check fd validity.  [ruby-dev:36646]</div><div class='add'>+</div><div class='add'>+Thu Dec 25 16:23:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (flush_before_seek): check io_fflush result.</div><div class='add'>+	  (rb_io_check_readable): ditto.</div><div class='add'>+	  (rb_io_flush): ditto.</div><div class='add'>+	  (rb_io_fsync): ditto.</div><div class='add'>+	  (remain_size): ditto.</div><div class='add'>+	  (rb_io_write_nonblock): ditto.</div><div class='add'>+	  (finish_writeconv): ditto.</div><div class='add'>+	  (fptr_finalize): ditto.</div><div class='add'>+	  (io_reopen): ditto.</div><div class='add'>+	  (rb_io_reopen): ditto.</div><div class='add'>+	  (copy_stream_body): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 15:54:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): flush write buffer without write lock in</div><div class='add'>+	  finalizers.  [ruby-dev:37572]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): clear write lock before finalizing.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 15:07:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): close the IO object even if close(2) is failed.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 14:51:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser.rb (RDoc::Parser.binary?): should read in binary mode.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 14:32:23 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_search): fix control flow bug.</div><div class='add'>+	  (committed at r20981)</div><div class='add'>+</div><div class='add'>+Thu Dec 25 13:28:20 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flush): fsync() after buffer is flushed on win32.</div><div class='add'>+	  [ruby-core:20043]</div><div class='add'>+</div><div class='add'>+Thu Dec 25 13:13:00 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_search): return rb_cObject if there is no</div><div class='add'>+	  super class.  [ruby-dev:37587]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 12:49:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): should use proc_dup() if block has Proc.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_proc_from_block): should use rb_cProc for block.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_proc): add an assertion.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 12:44:27 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_with_cfunc): check block has Proc.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 05:53:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl, id.h (ruby_method_ids): not depend on if</div><div class='add'>+	  token are defined as macros.  [ruby-dev:37553]</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl, id.h (ruby_method_ids_check): enclosed in a</div><div class='add'>+	  struct.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 01:52:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): sets native thread key.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 01:09:23 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline_history.rb: check the encoding that</div><div class='add'>+	  is in the Readline::HISTORY.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 00:59:06 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline_history.rb: did not check the</div><div class='add'>+	  encoding that is in the Readline::HISTORY. I will fix it.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 22:36:06 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c, vm_dump.c: change message by rb_bug().</div><div class='add'>+</div><div class='add'>+Wed Dec 24 21:57:39 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_peephole_optimize): fix typo.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 13:38:04 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block_from_c): fix to point right cfp.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_proc, vm_make_proc_from_block), vm_core.h:</div><div class='add'>+	  remove unused parameter cfp.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c, proc.c (proc_new): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 20:59:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): == method should not raise Exception.</div><div class='add'>+	  [ruby-dev:37519]</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: fix test.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 20:33:45 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): use class of method defined</div><div class='add'>+	  instead of receiver's class on bmethod.  fixes [ruby-core:20786]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_setup_method): remove unused parameter klass.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (CALL_METHOD): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_eval.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 20:15:50 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb (get_revisions): fix to ignore end of line.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 13:33:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (HAVE_LONG_LONG, HAVE_OFF_T): revised for autoconf</div><div class='add'>+	  2.62 or later.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 06:29:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (OBJDUMP, OBJCOPY): autoconf list is not comma</div><div class='add'>+	  separated.</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_HEADER_STDC, AC_CHECK_HEADERS, AC_CHECK_FUNCS):</div><div class='add'>+	  removed duplicated checks.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 03:21:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: added comment to mention newer version</div><div class='add'>+	  bundled with Emacs 23 or later.  a patch from Phil Hagelberg</div><div class='add'>+	  &lt;phil at hagelb.org&gt; in [ruby-core:20838].</div><div class='add'>+</div><div class='add'>+Tue Dec 23 23:49:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_init_copy): call io_seek only if io_tell succeeds.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 22:57:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): don't propagate an error message if error</div><div class='add'>+	  buffer not given.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 21:55:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): propagate an error message from child to parent.</div><div class='add'>+	  (rb_f_exec): show details of error in child process on</div><div class='add'>+	  exception.</div><div class='add'>+	  (save_redirect_fd): add error message arguments.</div><div class='add'>+	  (run_exec_dup2): ditto.</div><div class='add'>+	  (run_exec_close): ditto.</div><div class='add'>+	  (run_exec_open): ditto.</div><div class='add'>+	  (run_exec_dup2_child): ditto.</div><div class='add'>+	  (run_exec_pgroup): ditto.</div><div class='add'>+	  (run_exec_rlimit): ditto.</div><div class='add'>+	  (rb_run_exec_options): ditto.</div><div class='add'>+	  (rb_exec): ditto.</div><div class='add'>+	  (rb_exec_atfork): ditto.</div><div class='add'>+	  (rb_spawn_internal): ditto.</div><div class='add'>+	  (rb_spawn): ditto.</div><div class='add'>+	  (rb_f_system): follow arguments change.</div><div class='add'>+	  (proc_daemon): ditto.</div><div class='add'>+	  (rb_f_spawn): show details of error in child process on exception.</div><div class='add'>+</div><div class='add'>+	* io.c (popen_exec): add error message arguments.</div><div class='add'>+	  (pipe_open): show details of error in child process on exception.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_run_exec_options): add error message</div><div class='add'>+	  arguments.</div><div class='add'>+	  (rb_exec): ditto.</div><div class='add'>+	  (rb_fork): ditto.</div><div class='add'>+	  (rb_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): add error message arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 20:28:28 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: rdoc for File::open and 1.9 feature in file modes.</div><div class='add'>+</div><div class='add'>+	* transcode.c: rdoc for String#encode</div><div class='add'>+</div><div class='add'>+Tue Dec 23 19:51:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): deals with quoted commands.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 18:44:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): use locale insensitive functions for tr_TR</div><div class='add'>+	  locale.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 17:38:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_equal): show small differences</div><div class='add'>+	  for Regexp and Float.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 16:49:48 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): support normal commands with arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 16:22:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): show fd number if there is no pathname.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 15:48:55 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: shouldn't use single quote in shell's command</div><div class='add'>+	  line if you want to support Windows.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 15:46:43 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: Math.sqrt(NaN) should be NaN. [ruby-dev:37537]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 15:46:47 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+	* gem_prelude.rb:  Match full RubyGems behavior when a gem can't be</div><div class='add'>+	  found.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 15:36:58 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: detects vcs directory properly on building</div><div class='add'>+	  outside of srcdir. [ruby-dev:37555] [ruby-dev:37561]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 15:30:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): need to initialize args.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 14:18:14 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h: need to include defines.h because LONG_LONG is</div><div class='add'>+	  defined there.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 13:52:05 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parser/c.rb:  Don't coalesce adjacent comment blocks.</div><div class='add'>+	  [bug#901]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 12:00:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_close): fix coding style.  [ruby-dev:37554]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 08:10:05 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Fix documentation.  [bug#827]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 08:04:58 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: Don't remove methods twice.  [bug#555]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 00:16:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): fix buffer overflow.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 19:31:19 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (revision.h): uses tool/file2lastrev.rb to support</div><div class='add'>+	  git-svn.</div><div class='add'>+</div><div class='add'>+	* version.h: changed version string as</div><div class='add'>+	  `ruby 1.9.1 (2008-12-22 patchlevel-5000 trunk 20912)</div><div class='add'>+	  [i386-darwin9.6.0]'.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 16:32:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): encoding of packed string only from 'm',</div><div class='add'>+	  'M', and 'u' should be US-ASCII.  [ruby-dev:37284]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): encoding of packed string only from 'U'</div><div class='add'>+	  should be UTF-8.  also upgrade US-ASCII strings to UTF-8.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 15:56:49 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Doxyfile.in: new file. Template of a configuration file.</div><div class='add'>+	  Introduces C-level API reference generation with Doxygen.</div><div class='add'>+</div><div class='add'>+	* tool/file2lastrev.rb: wrapper script that abstracts subversion</div><div class='add'>+	  and git-svn.</div><div class='add'>+</div><div class='add'>+	* tool/strip-rdoc.rb: filter for preventing doxygen from processing</div><div class='add'>+	  rdoc comments.</div><div class='add'>+</div><div class='add'>+	* configure.in: (Doxyfile): Doxyfile is generated together with</div><div class='add'>+	  Makefile.</div><div class='add'>+	  (PACKAGE): configuration $(PACKAGE) is necessary for $(docdir).</div><div class='add'>+</div><div class='add'>+	* instruby.rb: adds a new install target 'capi'</div><div class='add'>+</div><div class='add'>+	* common.mk (capi): new target that generates C API documents with</div><div class='add'>+	  Doxygen.</div><div class='add'>+	  (install-capi): new target.</div><div class='add'>+	  (pre-install-capi): ditto.</div><div class='add'>+	  (do-install-capi): ditto.</div><div class='add'>+	  (post-install-capi): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 21:31:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_ord): Integer#ord implemented.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 21:26:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): IO.pipe can take a block.</div><div class='add'>+	  (pipe_close): new function.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 21:08:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_nothing_raised): increment</div><div class='add'>+	  assertion count.  [ruby-dev:37480]</div><div class='add'>+</div><div class='add'>+Mon Dec 22 19:10:44 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (Init_native_thread): need to call</div><div class='add'>+	  ruby_thread_set_native() here.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 18:00:36 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fix wrong flag value.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 15:15:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (Net::BufferedIO#rbuf_fill): avoid calling</div><div class='add'>+	  read_nonblock in rescue.  use retry instead.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 14:35:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_external_str_new_with_enc): set ASCII-8BIT if</div><div class='add'>+	  encoding is US-ASCII and string contains 8bit characters.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 12:26:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (rubydll.def), win32/mkexports.rb</div><div class='add'>+	  (Exports#exports): added VERSION.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 12:25:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): fix for test_sprintf_comb.rb, by</div><div class='add'>+	  wanabe in [ruby-dev:36935].</div><div class='add'>+</div><div class='add'>+Mon Dec 22 12:05:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw): no longer uses snprintf and vsnprintf of</div><div class='add'>+	  msvcrt.  [Bug#6]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_vsnprintf, rb_w32_snprintf): removed.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): vsnprintf exists in VC7 or later.</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports#initialize): aliases</div><div class='add'>+	  rb_w32_vsnprintf and rb_w32_snprintf for binary compatibility.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): uses snprintf instead of sprintf.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s, rb_num2long, rb_num2ll): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 10:59:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): should return enumerator if called</div><div class='add'>+	  without block.  [ruby-dev:37526]</div><div class='add'>+</div><div class='add'>+Mon Dec 22 09:54:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable_gen): the encoding of __FILE__ should be</div><div class='add'>+	  rb_filesystem_encoding().  [ruby-list:45733]</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable_gen): __FILE__ should be ASCII-8BIT when</div><div class='add'>+	  filesystem encoding is US-ASCII and __FILE__ contains non 7bit</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 02:54:56 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: temporary patch for trouble on TkAqua (&gt; Tk8.4.9).</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget: set encoding to a demo-code string to</div><div class='add'>+	  avoid garbled text on the Code Window.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 14:55:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (SPLAT_PROC): splat values by hand.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 13:50:37 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb</div><div class='add'>+	  (TestReadline#test_some_characters_methods): checked encoding.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 12:23:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (SPLAT_PROC): fix for regexp.  [ruby-dev:37514]</div><div class='add'>+</div><div class='add'>+Sun Dec 21 10:43:10 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: rescue exception.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 18:28:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): supplements an extension for executable</div><div class='add'>+	  files on DOSish platforms.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): use rb_w32_aspawn() for array form.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec): no longer used.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn, rb_w32_aspawn): deals with batch</div><div class='add'>+	  files and commands with extensions.  [ruby-core:20695]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (has_redirection): supports environment variables</div><div class='add'>+	  references.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 15:34:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::FileList#egrep): change open mode to "rb",</div><div class='add'>+	  i.e. default to binary.    [ruby-dev:37385]</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::FileList#egrep): allow specifying reading</div><div class='add'>+	  encoding, e.g. FileList['*.rb'].egrep(/require/, encoding:</div><div class='add'>+	  "ascii-8bit")</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::MultiTask): invoke_prerequisites should be</div><div class='add'>+	  private.  a patch from okkez in [ruby-dev:37399]</div><div class='add'>+</div><div class='add'>+Sat Dec 20 10:59:16 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale#initialize)</div><div class='add'>+	  initializes instance variables to suppress warnings.</div><div class='add'>+	  typo fix to ignore LoadError: [ruby-dev:37508]</div><div class='add'>+</div><div class='add'>+Fri Dec 19 17:01:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_encoding_option): "internal_encoding: nil"</div><div class='add'>+	  to specify no-transcoding.  and other corner case fixed.</div><div class='add'>+	  [ruby-dev:37496]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_lookup2): new function to look-up hash with</div><div class='add'>+	  default value.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 15:51:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): get rid of warning on DOSISH.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 07:45:37 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): duck typing equal to make it transitive.</div><div class='add'>+	  [ruby-dev:34808]</div><div class='add'>+</div><div class='add'>+Thu Dec 18 19:31:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.opt_parse): (M17N) adds -U and -E as command</div><div class='add'>+	  line options. [ruby-dev:37161]. Fixes #711.</div><div class='add'>+	  improved long options.</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.set_encoding): new subroutine for IRB.opt_parse</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb (IRB::StdioInputMethod): (M17N) regards</div><div class='add'>+	  scripts that user types as encoded in the external_encoding.</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb (IRB::ReadlineInputMethod): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb (IRB::FileInputMethod): (M17N) respects</div><div class='add'>+	  magic comment.</div><div class='add'>+</div><div class='add'>+	* lib/irb/help.rb (IRB.print_usage): (M17N) respects magic comment</div><div class='add'>+	  in the resource file.</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/help-message: adds -U and -E.</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/help-message: ditto. re-encoded from ISO-2022-JP into UTF-8.</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/encoding_aliases.rb: new file. provides Japanese specific</div><div class='add'>+	  character encoding name table for backward compatibility.</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/error.rb: re-encoded from ISO-2022-JP into UTF-8.</div><div class='add'>+	  magic comment.</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb: integrated with Ruby 1.9's M17N support.</div><div class='add'>+</div><div class='add'>+	* lib/irb/magic-file.rb: new file. utility to handle files with magic</div><div class='add'>+	  comment and opens in the correct encoding.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#each_top_level_statement): recovers</div><div class='add'>+	  character encoding for a statement after it lexed so that irb can</div><div class='add'>+	  eval the statement in correct encoding.</div><div class='add'>+</div><div class='add'>+	* lib/irb/src_encoding.rb: new file. utility.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 21:12:28 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: fix bug for ignore session_id option.</div><div class='add'>+	  report from [ruby-core:18635], [Bug #572]</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb: use Encoding#find when encoding set.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_session.rb: test for session_id specified.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 17:00:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): string key copying only happen if key is</div><div class='add'>+	  an exact instance of String, not a subclass. based on a patch</div><div class='add'>+	  from Mike Gold &lt;mike.gold.4433 at gmail.com&gt; in [ruby-talk:322667].</div><div class='add'>+	  [incompatible] [ruby-talk:322417]</div><div class='add'>+</div><div class='add'>+Thu Dec 18 16:48:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse/version.rb: remove variable shadowing to stop</div><div class='add'>+	  warning.   [ruby-core:20612]</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb, lib/net/imap.rb, lib/prime.rb,</div><div class='add'>+	  lib/rinda/ring.rb, lib/racc/parser.rb,</div><div class='add'>+	  lib/shell/command-processor.rb, lib/yaml/yamlnode.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: remove space before parentheses.</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb, lib/shell/process-controller.rb:</div><div class='add'>+	  use parentheses around arguments.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/change-ws.rb, lib/rexml/validation/relaxng.rb,</div><div class='add'>+	  lib/yaml/baseemitter.rb: indentation fix.</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: small cosmetic change.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 08:15:04 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb:  Restricting method inspection to show only</div><div class='add'>+	  non-inherited public methods.  [ruby-core:20603]</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb:  Fixing method inspection so it doesn't</div><div class='add'>+	  trigger XMLRPC::FaultException when used.  [ruby-core:20604]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 19:39:44 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_recv_io): relax msg_controllen error</div><div class='add'>+	  check for x86_64-openbsd4.4.</div><div class='add'>+</div><div class='add'>+Wed Dec 17 19:37:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/extconf.rb: check util.h for OpenBSD.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: include util.h if available.  fix variable name.</div><div class='add'>+</div><div class='add'>+Wed Dec 17 19:23:28 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: shut up warning. [ruby-dev:37481] [Bug #899]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 15:44:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop_m): use enum ary_take_pos_flags.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_push_m): add modification check before actual</div><div class='add'>+	  operation.   [ruby-dev:37440]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 15:35:39 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (OBJDUMP, OBJCOPY):</div><div class='add'>+	  *BSD's ports and MacPorts prefix GNU binutils with 'g'.</div><div class='add'>+</div><div class='add'>+Wed Dec 17 11:39:39 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_hash):</div><div class='add'>+	  shut up warning.  see [ruby-dev:37437]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 11:01:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): gets rid of collisions between different</div><div class='add'>+	  encoding strings.  [ruby-core:20526]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 09:50:19 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_metaclass.rb: removed codes for my debugging.</div><div class='add'>+	  sorry. [ruby-dev:37470]</div><div class='add'>+</div><div class='add'>+Tue Dec 16 22:55:11 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/testrb: set $0.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 22:42:16 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit.setup_argv): sorry, fixed wrong commit.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 22:15:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb (MiniTest::Assertions#assert_instance_of):</div><div class='add'>+	  should assert by instance_of?, not ===.  [ruby-dev:37458]</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb (MiniTest::Assertions#assert_instance_of):</div><div class='add'>+	  typo fixed.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 21:59:29 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit.setup_argv): ALT_SEPARATOR support.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 21:59:02 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpToString): reverted modification</div><div class='add'>+	  (that caused a bug) in r20359.  [ruby-dev:37370]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_limit): comment update.</div><div class='add'>+	  [ruby-dev:37465]</div><div class='add'>+</div><div class='add'>+Tue Dec 16 20:34:44 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (getDevice): add nomesg argument.</div><div class='add'>+	  (get_device_once): add nomesg argument.  chmod slave tty to 0600</div><div class='add'>+	  if nomesg.  more error tests.</div><div class='add'>+	  (no_mesg): new function.</div><div class='add'>+	  (pty_open): make slave tty's mode 0600.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 20:24:20 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): m17n compliant.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 19:48:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/extconf.rb: check posix_openpt.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (get_device_once): use posix_openpt if available.